Modified movestone pistons mvps for all liquid

This commit is contained in:
Jat 2012-08-29 02:51:57 +02:00
parent bcd6634811
commit e10bff62f0
5 changed files with 22 additions and 34 deletions

View File

@ -99,8 +99,8 @@ mesecon:register_on_signal_on(function (pos, node)
end
until checknode.name=="air"
or checknode.name=="ignore"
or checknode.name=="default:water"
or checknode.name=="default:water_flowing"
or string.find(checknode.name, "_source")
or string.find(checknode.name, "_flowing")
minetest.env:remove_node(pos)
nodeupdate(pos)
minetest.env:add_entity(pos, "mesecons_movestones:movestone_entity")
@ -177,8 +177,8 @@ mesecon:register_on_signal_on(function (pos, node)
end
until checknode.name=="air"
or checknode.name=="ignore"
or checknode.name=="default:water"
or checknode.name=="default:water_flowing"
or string.find(checknode.name, "_source")
or string.find(checknode.name, "_flowing")
repeat -- Check if it collides with a stopper (pull direction)
collpos={x=collpos.x-direction.x, y=collpos.y-direction.y, z=collpos.z-direction.z}
checknode=minetest.env:get_node(collpos)
@ -187,8 +187,8 @@ mesecon:register_on_signal_on(function (pos, node)
end
until checknode.name=="air"
or checknode.name=="ignore"
or checknode.name=="default:water"
or checknode.name=="default:water_flowing"
or string.find(checknode.name, "_source")
or string.find(checknode.name, "_flowing")
minetest.env:remove_node(pos)
nodeupdate(pos)

View File

@ -29,7 +29,7 @@ function mesecon:mvps_push(pos, direction) -- pos: pos of mvps; direction: direc
local lnode = minetest.env:get_node(lpos)
local newnode
minetest.env:remove_node(lpos)
while not(lnode.name == "ignore" or lnode.name == "air" or lnode.name == "default:water" or lnode.name == "default:water_flowing") do
while not(lnode.name == "ignore" or lnode.name == "air" or string.find(lnode.name, "_source") or string.find(lnode.name, "_flowing") do
lpos.x=lpos.x+direction.x
lpos.y=lpos.y+direction.y
lpos.z=lpos.z+direction.z
@ -46,8 +46,8 @@ function mesecon:mvps_pull_all(pos, direction) -- pos: pos of mvps; direction: d
local lpos2 = {x=pos.x-direction.x*2, y=pos.y-direction.y*2, z=pos.z-direction.z*2} -- 2 away
local lnode2 = minetest.env:get_node(lpos2)
if lnode.name ~= "ignore" and lnode.name ~= "air" and lnode.name ~= "default:water" and lnode.name ~= "default:water_flowing" then return end
if lnode2.name == "ignore" or lnode2.name == "air" or lnode2.name == "default:water" or lnode2.name == "default:water_flowing" then return end
if lnode.name ~= "ignore" and lnode.name ~= "air" and not(string.find(lnode.name, "_flowing")) and not(string.find(lnode.name, "_source")) then return end
if lnode2.name == "ignore" or lnode2.name == "air" or string.find(lnode2.name, "_source") or string.find(lnode2.name, "_flowing") then return end
local oldpos = {x=lpos2.x+direction.x, y=lpos2.y+direction.y, z=lpos2.z+direction.z}
repeat
@ -58,7 +58,7 @@ function mesecon:mvps_pull_all(pos, direction) -- pos: pos of mvps; direction: d
lpos2.y = lpos2.y-direction.y
lpos2.z = lpos2.z-direction.z
lnode = minetest.env:get_node(lpos2)
until lnode.name=="air" or lnode.name=="ignore" or lnode.name=="default:water" or lnode.name=="default:water_flowing"
until lnode.name=="air" or lnode.name=="ignore" or string.find(lnode.name, "_source") or string.find(lnode.name, "_flowing")
minetest.env:remove_node(oldpos)
end

View File

@ -135,10 +135,8 @@ mesecon:register_on_signal_on(function(pos, node)
--check for column end
if checknode.name == "air"
or checknode.name == "ignore"
or checknode.name == "default:water_source"
or checknode.name == "default:water_flowing"
or checknode.name == "default:lava_source"
or checknode.name == "default:lava_flowing" then
or string.find(checknode.name, "_source")
or string.find(checknode.name, "_flowing") then
break
end
@ -203,10 +201,8 @@ mesecon:register_on_signal_off(function(pos, node)
checknode = minetest.env:get_node(checkpos)
if checknode.name ~= "air"
and checknode.name ~= "ignore"
and checknode.name ~= "default:water_source"
and checknode.name ~= "default:water_flowing"
and checknode.name ~= "default:lava_source"
and checknode.name ~= "default:lava_flowing"
and string.find(checknode.name, "_source")
and string.find(checknode.name, "_flowing")
and not mesecon:is_mvps_stopper(checknode.name) then
minetest.env:set_node(pos, checknode)
minetest.env:remove_node(checkpos)

View File

@ -141,10 +141,8 @@ mesecon:register_on_signal_on(function(pos, node)
--check for column end
if checknode.name == "air"
or checknode.name == "ignore"
or checknode.name == "default:water_source"
or checknode.name == "default:water_flowing"
or checknode.name == "default:lava_source"
or checknode.name == "default:lava_flowing" then
or string.find(checknode.name, "_flowing")
or string.find(checknode.name, "_source") then
break
end
@ -209,10 +207,8 @@ mesecon:register_on_signal_off(function(pos, node)
checknode = minetest.env:get_node(checkpos)
if checknode.name ~= "air"
and checknode.name ~= "ignore"
and checknode.name ~= "default:water_source"
and checknode.name ~= "default:water_flowing"
and checknode.name ~= "default:lava_source"
and checknode.name ~= "default:lava_flowing"
and string.find(checknode.name, "_source")
and string.find(checknode.name, "_flowing")
and not mesecon:is_mvps_stopper(checknode.name) then
minetest.env:remove_node(checkpos)
mesecon:updatenode(checkpos)

View File

@ -129,10 +129,8 @@ mesecon:register_on_signal_on(function(pos, node)
--check for column end
if checknode.name == "air"
or checknode.name == "ignore"
or checknode.name == "default:water_source"
or checknode.name == "default:water_flowing"
or checknode.name == "default:lava_source"
or checknode.name == "default:lava_flowing" then
or string.find(checknode.name, "_source")
or string.find(checknode.name, "_flowing") then
break
end
@ -197,10 +195,8 @@ mesecon:register_on_signal_off(function(pos, node)
checknode = minetest.env:get_node(checkpos)
if checknode.name ~= "air"
and checknode.name ~= "ignore"
and checknode.name ~= "default:water_source"
and checknode.name ~= "default:water_flowing"
and checknode.name ~= "default:lava_source"
and checknode.name ~= "default:lava_flowing"
and string.find(checknode.name, "_source")
and string.find(checknode.name, "_flowing")
and not mesecon:is_mvps_stopper(checknode.name) then
minetest.env:remove_node(checkpos)
mesecon:updatenode(checkpos)