]> git.lizzy.rs Git - Crafter.git/commitdiff
Remove undefined behavior of capacitors and repeaters
authoroilboi <47129783+oilboi@users.noreply.github.com>
Wed, 1 Jul 2020 20:25:11 +0000 (16:25 -0400)
committeroilboi <47129783+oilboi@users.noreply.github.com>
Wed, 1 Jul 2020 20:25:11 +0000 (16:25 -0400)
mods/redstone/capacitors.lua
mods/redstone/repeater.lua

index 5dbfa4cd16f2cfd18669991603cfe6dd951454cb..10a30b166eb5e011e69d6a0513dd4a31b3556781 100644 (file)
@@ -10,12 +10,11 @@ minetest.override_item("main:ironblock",{
             redstone.update(pos,true)
         end)
     end,
-    after_destruct = function(pos, oldnode)
+    on_destruct = function(pos)
         redstone.inject(pos,nil)
+        
+        redstone.update(pos,true)
         --redstone.update(pos)
-        minetest.after(0,function()
-            redstone.update(pos,true)
-        end)
     end
 })
 
@@ -29,8 +28,8 @@ redstone.register_activator({
             source    = true,
             activator = true,
         })
-        redstone.update(pos)
         redstone.update(pos,true)
+        redstone.update(pos)
     end,
   })
 
@@ -82,12 +81,11 @@ minetest.register_node(":main:ironblock_on", {
             redstone.update(pos,true)
         end)
     end,
-    after_destruct = function(pos, oldnode)
+    on_destruct = function(pos)
         redstone.inject(pos,nil)
-        --redstone.update(pos)
-        minetest.after(0,function()
-            redstone.update(pos,true)
-        end)
+
+        redstone.update(pos,true)
+        redstone.update(pos)
     end,
 })
 
@@ -102,7 +100,6 @@ redstone.register_activator({
             capacitor = 0,
             activator = true,
         })
-        redstone.update(pos)
         redstone.update(pos,true)
     end,
 })
index fa9a8419a1571f0ecb229a9ab81cee9de213b856..81cb377c87f0a2f135afd1b35b6ce4e2445c6f91 100644 (file)
@@ -68,8 +68,10 @@ minetest.register_node("redstone:repeater_on_"..level, {
                        output = vector.add(pos,dir),
                        dir = dir
                })
-               redstone.update(pos)
-               redstone.update(vector.add(pos,dir))
+               minetest.after(0,function()
+                       redstone.update(pos)
+                       redstone.update(vector.add(pos,dir))
+               end)
        end,
 
        after_destruct = function(pos, oldnode)
@@ -176,8 +178,10 @@ minetest.register_node("redstone:repeater_off_"..level, {
                        output = vector.add(pos,dir),
                        dir = dir
                })
-               redstone.update(pos)
-               redstone.update(vector.add(pos,dir))
+               minetest.after(0,function()
+                       redstone.update(pos)
+                       redstone.update(vector.add(pos,dir))
+               end)
        end,
 
        on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)