diff --git a/shaft.lua b/shaft.lua deleted file mode 100644 index c1e4673..0000000 --- a/shaft.lua +++ /dev/null @@ -1,105 +0,0 @@ ---[[ - - Hyperloop Mod - ============= - - Copyright (C) 2017 Joachim Stolberg - - LGPLv2.1+ - See LICENSE.txt for more information - - History: - see init.lua - -]]-- - - --- simple shaft without logic or "memory" -minetest.register_node("hyperloop:shaft", { - description = "Hyperloop Elevator Shaft", - tiles = { - -- up, down, right, left, back, front - 'hyperloop_tube_open.png', - 'hyperloop_tube_open.png', - "hyperloop_tube_locked.png^[transformR90]", - "hyperloop_tube_locked.png^[transformR90]", - "hyperloop_tube_locked.png^[transformR90]", - "hyperloop_tube_locked.png^[transformR90]", - }, - - after_place_node = function(pos, placer, itemstack, pointed_thing) - local npos = table.copy(pos) - -- check above - npos.y = npos.y + 1 - if minetest.get_node_or_nil(npos).name == "hyperloop:shaft" then - local node = minetest.get_node(npos) - node.name = "hyperloop:shaft2" - minetest.swap_node(npos, node) - return - elseif minetest.get_node_or_nil(npos).name == "hyperloop:elevator_top" then - npos.y = npos.y - 1 - hyperloop.update_elevator(npos) - npos.y = npos.y + 1 - return - end - - -- check below - npos.y = npos.y - 2 - if minetest.get_node_or_nil(npos).name == "hyperloop:shaft" then - local node = minetest.get_node(npos) - node.name = "hyperloop:shaft2" - minetest.swap_node(npos, node) - elseif minetest.get_node_or_nil(npos).name == "hyperloop:elevator_top" then - npos.y = npos.y - 1 - hyperloop.update_elevator(npos) - else - minetest.remove_node(pos) - return itemstack - end - end, - - after_destruct = function(pos) - local npos = table.copy(pos) - npos.y = npos.y - 1 - if minetest.get_node_or_nil(npos).name == "hyperloop:shaft2" then - local node = minetest.get_node(npos) - node.name = "hyperloop:shaft" - minetest.swap_node(npos, node) - elseif minetest.get_node_or_nil(npos).name == "hyperloop:elevator_top" then - npos.y = npos.y - 1 - hyperloop.update_elevator(npos) - end - npos.y = npos.y + 2 - if minetest.get_node_or_nil(npos).name == "hyperloop:shaft2" then - local node = minetest.get_node(npos) - node.name = "hyperloop:shaft" - minetest.swap_node(npos, node) - end - end, - - on_rotate = screwdriver.disallow, - light_source = 6, - paramtype2 = "facedir", - groups = {cracky=1}, - is_ground_content = false, -}) - --- simple shaft without logic or "memory" -minetest.register_node("hyperloop:shaft2", { - description = "Hyperloop Elevator Shaft", - tiles = { - -- up, down, right, left, back, front - "hyperloop_tube_locked.png^[transformR90]", - "hyperloop_tube_locked.png^[transformR90]", - "hyperloop_tube_locked.png^[transformR90]", - "hyperloop_tube_locked.png^[transformR90]", - "hyperloop_tube_locked.png^[transformR90]", - "hyperloop_tube_locked.png^[transformR90]", - }, - - on_rotate = screwdriver.disallow, - diggable = false, - paramtype2 = "facedir", - groups = {cracky=1, not_in_creative_inventory=1}, - is_ground_content = false, -}) diff --git a/tube.lua b/tube.lua index 9c6aa31..68ce850 100644 --- a/tube.lua +++ b/tube.lua @@ -237,7 +237,7 @@ minetest.register_node("hyperloop:tubeA", { sunlight_propagates = true, is_ground_content = false, groups = {cracky = 1, not_in_creative_inventory=1}, - drop = "hyperloop:shaft", + drop = "hyperloop:tubeS", sounds = default.node_sound_metal_defaults(), }) diff --git a/tubecrowbar.lua b/tubecrowbar.lua index 6a58a03..2e606f3 100644 --- a/tubecrowbar.lua +++ b/tubecrowbar.lua @@ -63,12 +63,23 @@ local function repair_tubes(itemstack, placer, pointed_thing) end end +local function add_to_inventory(placer, item_name) + local inv = placer:get_inventory() + local item = ItemStack(item_name) + if inv and item and inv:room_for_item("main", item) then + inv:add_item("main", item) + end +end + local function remove_tube(itemstack, placer, pointed_thing) if minetest.check_player_privs(placer:get_player_name(), "hyperloop") then if pointed_thing.type == "node" then local pos = pointed_thing.under - Shaft:tool_remove_tube(pos, "default_break_glass") - Tube:tool_remove_tube(pos, "default_break_glass") + if Shaft:tool_remove_tube(pos, "default_break_glass") then + add_to_inventory(placer, "hyperloop:shaft") + elseif Tube:tool_remove_tube(pos, "default_break_glass") then + add_to_inventory(placer, "hyperloop:tubeS") + end end else minetest.chat_send_player(placer:get_player_name(), "You don't have the necessary privs!")