Fire: Optimize spreading ABM.
authorAuke Kok <sofar@foo-projects.org>
Sun, 13 Mar 2016 01:50:09 +0000 (17:50 -0800)
committerparamat <mat.gregory@virginmedia.com>
Tue, 15 Mar 2016 16:22:50 +0000 (16:22 +0000)
No need to find_node_near twice with the same params.

mods/fire/init.lua

index ce53ed1e5f6f9cf04663e3f331b7c7fa7c438e03..1fc942b8f8c85160995087fbe18e97aeeaa3163c 100644 (file)
@@ -254,22 +254,20 @@ else
                catch_up = false,
                action = function(p0, node, _, _)
                        -- If there are no flammable nodes around flame, remove flame
-                       if not minetest.find_node_near(p0, 1, {"group:flammable"}) then
+                       local p = minetest.find_node_near(p0, 1, {"group:flammable"})
+                       if not p then
                                minetest.remove_node(p0)
                                return
                        end
                        if math.random(1, 4) == 1 then
                                -- remove flammable nodes around flame
-                               local p = minetest.find_node_near(p0, 1, {"group:flammable"})
-                               if p then
-                                       local node = minetest.get_node(p)
-                                       local def = minetest.registered_nodes[node.name]
-                                       if def.on_burn then
-                                               def.on_burn(p)
-                                       else 
-                                               minetest.remove_node(p)
-                                               nodeupdate(p)
-                                       end
+                               local node = minetest.get_node(p)
+                               local def = minetest.registered_nodes[node.name]
+                               if def.on_burn then
+                                       def.on_burn(p)
+                               else
+                                       minetest.remove_node(p)
+                                       nodeupdate(p)
                                end
                        end
                end,