From: oilboi <47129783+oilboi@users.noreply.github.com> Date: Thu, 2 Jul 2020 06:14:18 +0000 (-0400) Subject: Fix weird problems with update queueing repeaters and inverters X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=497ac72c4c6b9e1bb669e90da9b3a14e38d32f94;p=Crafter.git Fix weird problems with update queueing repeaters and inverters --- diff --git a/mods/redstone/inverter.lua b/mods/redstone/inverter.lua index 4582d88..8239dd1 100644 --- a/mods/redstone/inverter.lua +++ b/mods/redstone/inverter.lua @@ -44,8 +44,11 @@ minetest.register_node("redstone:inverter_on", { redstone.update(pos) end, after_destruct = function(pos, oldnode) + local param2 = oldnode.param2 + local dir = minetest.facedir_to_dir(param2) redstone.inject(pos,nil) redstone.update(pos) + redstone.update(vector.add(pos,dir)) end }) @@ -65,7 +68,7 @@ redstone.register_activator({ output = vector.add(pos,dir), dir = dir }) - + redstone.update(pos) redstone.update(vector.add(pos,dir)) end }) @@ -131,8 +134,11 @@ minetest.register_node("redstone:inverter_off", { redstone.update(pos) end, after_destruct = function(pos, oldnode) + local param2 = oldnode.param2 + local dir = minetest.facedir_to_dir(param2) redstone.inject(pos,nil) redstone.update(pos) + redstone.update(vector.add(pos,dir)) end }) @@ -150,6 +156,7 @@ redstone.register_activator({ output = vector.add(pos,dir), dir = dir }) + redstone.update(pos) redstone.update(vector.add(pos,dir)) end }) diff --git a/mods/redstone/repeater.lua b/mods/redstone/repeater.lua index bd72677..0d3df2d 100644 --- a/mods/redstone/repeater.lua +++ b/mods/redstone/repeater.lua @@ -68,10 +68,8 @@ minetest.register_node("redstone:repeater_on_"..level, { output = vector.add(pos,dir), dir = dir }) - minetest.after(0,function() - redstone.update(pos) - redstone.update(vector.add(pos,dir)) - end) + redstone.update(pos) + redstone.update(vector.add(pos,dir)) end, after_destruct = function(pos, oldnode) @@ -179,10 +177,8 @@ minetest.register_node("redstone:repeater_off_"..level, { output = vector.add(pos,dir), dir = dir }) - minetest.after(0,function() - redstone.update(pos) - redstone.update(vector.add(pos,dir)) - end) + redstone.update(pos) + redstone.update(vector.add(pos,dir)) end, on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)