]> git.lizzy.rs Git - Crafter.git/commitdiff
Fix weird problems with update queueing repeaters and inverters
authoroilboi <47129783+oilboi@users.noreply.github.com>
Thu, 2 Jul 2020 06:14:18 +0000 (02:14 -0400)
committeroilboi <47129783+oilboi@users.noreply.github.com>
Thu, 2 Jul 2020 06:14:18 +0000 (02:14 -0400)
mods/redstone/inverter.lua
mods/redstone/repeater.lua

index 4582d88571176d7588a725ad3241732709908a70..8239dd1851b303b38ab4b89210b587d612f879dd 100644 (file)
@@ -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
 })
index bd72677d11062f5c3eadcb334a202946376637cf..0d3df2dbd7f0591eb26ec6d65522749dc46c4154 100644 (file)
@@ -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)