Allow custom liquids to have drops
authorsfan5 <sfan5@live.de>
Sun, 8 Jun 2014 20:53:48 +0000 (22:53 +0200)
committersfan5 <sfan5@live.de>
Sun, 8 Jun 2014 21:25:13 +0000 (23:25 +0200)
builtin/game/falling.lua

index 1a81916ae195e31cf45ca83f1fc4494509e6417b..b3d5a9a8b536517e39dd825b74d54b00458c26ad 100644 (file)
@@ -79,22 +79,17 @@ core.register_entity(":__builtin:falling_node", {
                        local np = {x=bcp.x, y=bcp.y+1, z=bcp.z}
                        -- Check what's here
                        local n2 = core.get_node(np)
-                       -- If it's not air or liquid, remove node and replace it with
-                       -- it's drops
-                       if n2.name ~= "air" and (not core.registered_nodes[n2.name] or
-                                       core.registered_nodes[n2.name].liquidtype == "none") then
-                               local drops = core.get_node_drops(n2.name, "")
-                               core.remove_node(np)
-                               -- Add dropped items
-                               local _, dropped_item
-                               for _, dropped_item in ipairs(drops) do
-                                       core.add_item(np, dropped_item)
-                               end
-                               -- Run script hook
-                               local _, callback
-                               for _, callback in ipairs(core.registered_on_dignodes) do
-                                       callback(np, n2, nil)
-                               end
+                       -- remove node and replace it with it's drops
+                       local drops = core.get_node_drops(n2.name, "")
+                       core.remove_node(np)
+                       local _, dropped_item
+                       for _, dropped_item in ipairs(drops) do
+                               core.add_item(np, dropped_item)
+                       end
+                       -- Run script hook
+                       local _, callback
+                       for _, callback in ipairs(core.registered_on_dignodes) do
+                               callback(np, n2, nil)
                        end
                        -- Create node and remove entity
                        core.add_node(np, self.node)
@@ -168,7 +163,7 @@ function nodeupdate_single(p, delay)
                                        core.registered_nodes[n_bottom.name].liquidtype == "none") and
                                (n.name ~= n_bottom.name or (core.registered_nodes[n_bottom.name].leveled and
                                        core.get_node_level(p_bottom) < core.get_node_max_level(p_bottom))) and
-                               (not core.registered_nodes[n_bottom.name].walkable or 
+                               (not core.registered_nodes[n_bottom.name].walkable or
                                        core.registered_nodes[n_bottom.name].buildable_to) then
                        if delay then
                                core.after(0.1, nodeupdate_single, {x=p.x, y=p.y, z=p.z}, false)
@@ -180,7 +175,7 @@ function nodeupdate_single(p, delay)
                        end
                end
        end
-       
+
        if core.get_item_group(n.name, "attached_node") ~= 0 then
                if not check_attached_node(p, n) then
                        drop_attached_node(p)
@@ -194,7 +189,7 @@ function nodeupdate(p, delay)
        p.x = math.floor(p.x+0.5)
        p.y = math.floor(p.y+0.5)
        p.z = math.floor(p.z+0.5)
-       
+
        for x = -1,1 do
        for y = -1,1 do
        for z = -1,1 do