diff options
-rw-r--r-- | compat.lua | 151 |
1 files changed, 75 insertions, 76 deletions
@@ -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) +}) |