get rid of the old pipeworks clone node function
authorVanessa Ezekowitz <vanessaezekowitz@gmail.com>
Wed, 30 Jul 2014 18:13:17 +0000 (14:13 -0400)
committerVanessa Ezekowitz <vanessaezekowitz@gmail.com>
Wed, 30 Jul 2014 18:13:17 +0000 (14:13 -0400)
use minetest.override_item() instead

compat.lua

index e80fa6274715f38f94e38c55bd84fbef9c760c5f..d96eeef5e13de005be36c145df9348d026b2e14d 100644 (file)
@@ -1,25 +1,17 @@
 -- this bit of code modifies the default chests and furnaces to be compatible
 -- with pipeworks.
 
-function pipeworks.clone_node(name)
-       local node2 = {}
-       local node = minetest.registered_nodes[name]
-       for k, v in pairs(node) do
-               node2[k] = v
-       end
-       return node2
-end
-
-local furnace = pipeworks.clone_node("default:furnace")
-       furnace.tiles[1] = "default_furnace_top.png^pipeworks_tube_connection_stony.png"
-       furnace.tiles[2] = "default_furnace_bottom.png^pipeworks_tube_connection_stony.png"
-       furnace.tiles[3] = "default_furnace_side.png^pipeworks_tube_connection_stony.png"
-       furnace.tiles[4] = "default_furnace_side.png^pipeworks_tube_connection_stony.png"
-       furnace.tiles[5] = "default_furnace_side.png^pipeworks_tube_connection_stony.png"
-       -- note we don't redefine entry 6 ( front)
-       furnace.groups.tubedevice = 1
-       furnace.groups.tubedevice_receiver = 1
-       furnace.tube = {
+minetest.override_item("default:furnace", {
+       tiles = {
+               "default_furnace_top.png^pipeworks_tube_connection_stony.png",
+               "default_furnace_bottom.png^pipeworks_tube_connection_stony.png",
+               "default_furnace_side.png^pipeworks_tube_connection_stony.png",
+               "default_furnace_side.png^pipeworks_tube_connection_stony.png",
+               "default_furnace_side.png^pipeworks_tube_connection_stony.png",
+               "default_furnace_front.png"
+       },
+       groups = {cracky=2, tubedevice = 1, tubedevice_receiver = 1 },
+       tube = {
                insert_object = function(pos, node, stack, direction)
                        local meta = minetest.get_meta(pos)
                        local inv = meta:get_inventory()
@@ -40,26 +32,35 @@ local furnace = pipeworks.clone_node("default:furnace")
                end,
                input_inventory = "dst",
                connect_sides = {left=1, right=1, back=1, front=1, bottom=1, top=1}
-       }
-       furnace.after_place_node = function(pos)
+       },
+       after_place_node = function(pos)
                pipeworks.scan_for_tube_objects(pos)
-       end
-       furnace.after_dig_node = function(pos)
+       end,
+       after_dig_node = function(pos)
                pipeworks.scan_for_tube_objects(pos)
        end
+})
 
-minetest.register_node(":default:furnace", furnace)
-
-local furnace_active = pipeworks.clone_node("default:furnace_active")
-       furnace_active.tiles[1] = "default_furnace_top.png^pipeworks_tube_connection_stony.png"
-       furnace_active.tiles[2] = "default_furnace_bottom.png^pipeworks_tube_connection_stony.png"
-       furnace_active.tiles[3] = "default_furnace_side.png^pipeworks_tube_connection_stony.png"
-       furnace_active.tiles[4] = "default_furnace_side.png^pipeworks_tube_connection_stony.png"
-       furnace_active.tiles[5] = "default_furnace_side.png^pipeworks_tube_connection_stony.png"
-       -- note we don't redefine entry 6 (front)
-       furnace_active.groups.tubedevice = 1
-       furnace_active.groups.tubedevice_receiver = 1
-       furnace_active.tube = {
+minetest.override_item("default:furnace_active", {
+       tiles = {
+               "default_furnace_top.png^pipeworks_tube_connection_stony.png",
+               "default_furnace_bottom.png^pipeworks_tube_connection_stony.png",
+               "default_furnace_side.png^pipeworks_tube_connection_stony.png",
+               "default_furnace_side.png^pipeworks_tube_connection_stony.png",
+               "default_furnace_side.png^pipeworks_tube_connection_stony.png",
+               {
+                       image = "default_furnace_front_active.png",
+                       backface_culling = false,
+                       animation = {
+                               type = "vertical_frames",
+                               aspect_w = 16,
+                               aspect_h = 16,
+                               length = 1.5
+                       },
+               }
+       },
+       groups = {cracky=2, tubedevice = 1, tubedevice_receiver = 1 },
+       tube = {
                insert_object = function(pos,node,stack,direction)
                        local meta = minetest.get_meta(pos)
                        local inv = meta:get_inventory()
@@ -80,27 +81,26 @@ local furnace_active = pipeworks.clone_node("default:furnace_active")
                end,
                input_inventory = "dst",
                connect_sides = {left=1, right=1, back=1, front=1, bottom=1, top=1}
-       }
-       furnace_active.after_place_node= function(pos)
+       },
+       after_place_node= function(pos)
                pipeworks.scan_for_tube_objects(pos)
-       end
-       furnace_active.after_dig_node = function(pos)
+       end,
+       after_dig_node = function(pos)
                pipeworks.scan_for_tube_objects(pos)
        end
+})
 
-minetest.register_node(":default:furnace_active", furnace_active)
-
-
-local chest = pipeworks.clone_node("default:chest")
-       chest.tiles[1] = "default_chest_top.png^pipeworks_tube_connection_wooden.png"
-       chest.tiles[2] = "default_chest_top.png^pipeworks_tube_connection_wooden.png"
-       chest.tiles[3] = "default_chest_side.png^pipeworks_tube_connection_wooden.png"
-       chest.tiles[4] = "default_chest_side.png^pipeworks_tube_connection_wooden.png"
-       chest.tiles[5] = "default_chest_side.png^pipeworks_tube_connection_wooden.png"
-       -- note we don't redefine entry 6 (front).
-       chest.groups.tubedevice = 1
-       chest.groups.tubedevice_receiver = 1
-       chest.tube = {
+minetest.override_item("default:chest", {
+       tiles = {
+               "default_chest_top.png^pipeworks_tube_connection_wooden.png",
+               "default_chest_top.png^pipeworks_tube_connection_wooden.png",
+               "default_chest_side.png^pipeworks_tube_connection_wooden.png",
+               "default_chest_side.png^pipeworks_tube_connection_wooden.png",
+               "default_chest_side.png^pipeworks_tube_connection_wooden.png",
+               "default_chest_front.png"
+       },
+       groups = { choppy=2, oddly_breakable_by_hand=2, tubedevice = 1, tubedevice_receiver = 1 },
+       tube = {
                insert_object = function(pos, node, stack, direction)
                        local meta = minetest.get_meta(pos)
                        local inv = meta:get_inventory()
@@ -113,27 +113,28 @@ local chest = pipeworks.clone_node("default:chest")
                end,
                input_inventory = "main",
                connect_sides = {left=1, right=1, back=1, front=1, bottom=1, top=1}
-       }
-       chest.after_place_node = function(pos)
+       },
+       after_place_node = function(pos)
                pipeworks.scan_for_tube_objects(pos)
-       end
-       chest.after_dig_node = function(pos)
+       end,
+       after_dig_node = function(pos)
                pipeworks.scan_for_tube_objects(pos)
        end
+})
 
-minetest.register_node(":default:chest", chest)
-
+local old_locked_chest_after_place = minetest.registered_nodes["default:chest_locked"].after_place_node
 
-local chest_locked = pipeworks.clone_node("default:chest_locked")
-       chest_locked.tiles[1] = "default_chest_top.png^pipeworks_tube_connection_wooden.png"
-       chest_locked.tiles[2] = "default_chest_top.png^pipeworks_tube_connection_wooden.png"
-       chest_locked.tiles[3] = "default_chest_side.png^pipeworks_tube_connection_wooden.png"
-       chest_locked.tiles[4] = "default_chest_side.png^pipeworks_tube_connection_wooden.png"
-       chest_locked.tiles[5] = "default_chest_side.png^pipeworks_tube_connection_wooden.png"
-       -- note we don't redefine entry 6 (front).
-       chest_locked.groups.tubedevice = 1
-       chest_locked.groups.tubedevice_receiver = 1
-       chest_locked.tube = {
+minetest.override_item("default:chest_locked", {
+       tiles = {
+               "default_chest_top.png^pipeworks_tube_connection_wooden.png",
+               "default_chest_top.png^pipeworks_tube_connection_wooden.png",
+               "default_chest_side.png^pipeworks_tube_connection_wooden.png",
+               "default_chest_side.png^pipeworks_tube_connection_wooden.png",
+               "default_chest_side.png^pipeworks_tube_connection_wooden.png",
+               "default_chest_lock.png"
+       },
+       groups = { choppy=2, oddly_breakable_by_hand=2, tubedevice = 1, tubedevice_receiver = 1 },
+       tube = {
                insert_object = function(pos, node, stack, direction)
                        local meta = minetest.env:get_meta(pos)
                        local inv = meta:get_inventory()
@@ -145,14 +146,12 @@ local chest_locked = pipeworks.clone_node("default:chest_locked")
                        return inv:room_for_item("main", stack)
                end,
                connect_sides = {left=1, right=1, back=1, front=1, bottom=1, top=1}
-       }
-       local old_after_place = minetest.registered_nodes["default:chest_locked"].after_place_node
-       chest_locked.after_place_node = function(pos, placer)
+       },
+       after_place_node = function(pos, placer)
                pipeworks.scan_for_tube_objects(pos)
-               old_after_place(pos, placer)
-       end
-       chest_locked.after_dig_node = function(pos)
+               old_locked_chest_after_place(pos, placer)
+       end,
+       after_dig_node = function(pos)
                pipeworks.scan_for_tube_objects(pos)
        end
-
-minetest.register_node(":default:chest_locked", chest_locked)
+})