forked from minetest-mods/mesecons
Fix a rare piston pushing bug and make piston updating faster.
This commit is contained in:
parent
618fd31f43
commit
aaddd9e74d
@ -134,7 +134,7 @@ local update = function(pos, node)
|
||||
|
||||
local timer = minetest.env:get_node_timer(pos)
|
||||
timer:stop()
|
||||
timer:set(0.1, 0)
|
||||
timer:start(0)
|
||||
end
|
||||
mesecon:register_on_signal_on(update) --push action
|
||||
mesecon:register_on_signal_off(update) --pull action
|
||||
@ -150,14 +150,13 @@ function mesecon:piston_push(pos)
|
||||
while true do
|
||||
local checknode = minetest.env:get_node(checkpos)
|
||||
|
||||
--check for collision with stopper
|
||||
if mesecon:is_mvps_stopper(checknode.name) then
|
||||
--check for collision with stopper or bounds
|
||||
if mesecon:is_mvps_stopper(checknode.name) or checknode.name == "ignore" then
|
||||
return
|
||||
end
|
||||
|
||||
--check for column end
|
||||
if checknode.name == "air"
|
||||
or checknode.name == "ignore"
|
||||
or not(minetest.registered_nodes[checknode.name].liquidtype == "none") then
|
||||
break
|
||||
end
|
||||
|
@ -133,14 +133,13 @@ mesecon:register_on_signal_on(function(pos, node)
|
||||
while true do
|
||||
local checknode = minetest.env:get_node(checkpos)
|
||||
|
||||
--check for collision with stopper
|
||||
if mesecon:is_mvps_stopper(checknode.name) then
|
||||
--check for collision with stopper or bounds
|
||||
if mesecon:is_mvps_stopper(checknode.name) or checknode.name == "ignore" then
|
||||
return
|
||||
end
|
||||
|
||||
--check for column end
|
||||
if checknode.name == "air"
|
||||
or checknode.name == "ignore"
|
||||
or not(minetest.registered_nodes[checknode.name].liquidtype == "none") then
|
||||
break
|
||||
end
|
||||
|
@ -121,14 +121,13 @@ mesecon:register_on_signal_on(function(pos, node)
|
||||
while true do
|
||||
local checknode = minetest.env:get_node(checkpos)
|
||||
|
||||
--check for collision with stopper
|
||||
if mesecon:is_mvps_stopper(checknode.name) then
|
||||
--check for collision with stopper or bounds
|
||||
if mesecon:is_mvps_stopper(checknode.name) or checknode.name == "ignore" then
|
||||
return
|
||||
end
|
||||
|
||||
--check for column end
|
||||
if checknode.name == "air"
|
||||
or checknode.name == "ignore"
|
||||
or not(minetest.registered_nodes[checknode.name].liquidtype == "none") then
|
||||
break
|
||||
end
|
||||
|
Loading…
Reference in New Issue
Block a user