Fix hacky_swap_node to not repeatedly swap the same node in over and over
authorPilcrow <pilcrowjesus@gmail.com>
Fri, 13 Sep 2013 15:09:57 +0000 (11:09 -0400)
committerVanessa Ezekowitz <vanessaezekowitz@gmail.com>
Fri, 13 Sep 2013 15:09:57 +0000 (11:09 -0400)
deployer.lua
node_breaker.lua

index 4a17ddf6c1083371df97d63b2c5a3a11e61a5220..1e8ae170c122fd67f81ae2e2a043f879f086f0cc 100644 (file)
@@ -88,13 +88,16 @@ minetest.register_craft({
 })
 
 function hacky_swap_node(pos,name)
-       local node=minetest.get_node(pos)
-       local meta=minetest.get_meta(pos)
-       local meta0=meta:to_table()
-       node.name=name
-       minetest.add_node(pos, node)
-       local meta=minetest.get_meta(pos)
-       meta:from_table(meta0)
+    local node=minetest.get_node(pos)
+    local meta=minetest.get_meta(pos)
+    local meta0=meta:to_table()
+    if node.name == name then
+        return
+    end
+    node.name=name
+    minetest.add_node(pos, node)
+    local meta=minetest.get_meta(pos)
+    meta:from_table(meta0)
 end
 
 deployer_on = function(pos, node)
index ed12d9e4f4cc4c79845d5be6c0d625114598f55f..5ed7f86e09200916318a92977b8527fee0fe6e66 100644 (file)
@@ -15,13 +15,16 @@ minetest.register_craft({
 })
 
 function hacky_swap_node(pos,name)
-       local node=minetest.get_node(pos)
-       local meta=minetest.get_meta(pos)
-       local meta0=meta:to_table()
-       node.name=name
-       minetest.add_node(pos, node)
-       local meta=minetest.get_meta(pos)
-       meta:from_table(meta0)
+    local node=minetest.get_node(pos)
+    local meta=minetest.get_meta(pos)
+    local meta0=meta:to_table()
+    if node.name == name then
+        return
+    end
+    node.name=name
+    minetest.add_node(pos, node)
+    local meta=minetest.get_meta(pos)
+    meta:from_table(meta0)
 end
 
 --define the functions from https://github.com/minetest/minetest/pull/834 while waiting for the devs to notice it