diff options
author | cheapie <no-email-for-you@example.com> | 2024-04-18 20:38:05 -0500 |
---|---|---|
committer | cheapie <no-email-for-you@example.com> | 2024-04-18 20:38:05 -0500 |
commit | 3d078bb99a75d10f8f11142341554bd81fb1d923 (patch) | |
tree | c64d8463d3460e0cac4223672d6021fdd0807d00 | |
parent | fd8693671d81eda7ab62c397b77d9496c39cc2f2 (diff) | |
download | celevator-3d078bb99a75d10f8f11142341554bd81fb1d923.tar celevator-3d078bb99a75d10f8f11142341554bd81fb1d923.tar.gz celevator-3d078bb99a75d10f8f11142341554bd81fb1d923.tar.bz2 celevator-3d078bb99a75d10f8f11142341554bd81fb1d923.tar.xz celevator-3d078bb99a75d10f8f11142341554bd81fb1d923.zip |
Improve setup experience and inventory items
-rw-r--r-- | callbuttons.lua | 24 | ||||
-rw-r--r-- | car.lua | 110 | ||||
-rw-r--r-- | controller.lua | 2 | ||||
-rw-r--r-- | doors.lua | 112 | ||||
-rw-r--r-- | drive_entity.lua | 98 | ||||
-rw-r--r-- | drive_null.lua | 1 | ||||
-rw-r--r-- | fs1switch.lua | 5 | ||||
-rw-r--r-- | pilantern.lua | 9 | ||||
-rw-r--r-- | textures/celevator_car_inventory.png | bin | 0 -> 5017 bytes | |||
-rw-r--r-- | textures/celevator_car_wield.png | bin | 0 -> 4870 bytes | |||
-rw-r--r-- | textures/celevator_door_glass_inventory.png | bin | 0 -> 573 bytes | |||
-rw-r--r-- | textures/celevator_machine_inventory.png | bin | 0 -> 1256 bytes |
12 files changed, 325 insertions, 36 deletions
diff --git a/callbuttons.lua b/callbuttons.lua index 46875fe..6858c10 100644 --- a/callbuttons.lua +++ b/callbuttons.lua @@ -1,19 +1,32 @@ celevator.callbutton = {} -local function makebuttontex(dir,upon,downon) +local function makebuttontex(dir,upon,downon,inventory) local tex = "[combine:64x64:0,0=celevator_cabinet_sides.png:32,0=celevator_cabinet_sides.png:0,32=celevator_cabinet_sides.png:32,32=celevator_cabinet_sides.png:22,24=celevator_callbutton_panel.png" + if inventory then tex = "[combine:32x32:5,0=celevator_callbutton_panel.png" end if dir == "up" then - tex = tex..":24,35=celevator_callbutton_up.png" + if inventory then + tex = tex..":7,11=celevator_callbutton_up.png" + else + tex = tex..":24,35=celevator_callbutton_up.png" + end if upon then tex = tex..":33,36=celevator_callbutton_light.png" end elseif dir == "down" then - tex = tex..":24,35=celevator_callbutton_down.png" + if inventory then + tex = tex..":7,11=celevator_callbutton_down.png" + else + tex = tex..":24,35=celevator_callbutton_down.png" + end if downon then tex = tex..":33,36=celevator_callbutton_light.png" end elseif dir == "both" then - tex = tex..":24,28=celevator_callbutton_up.png:24,43=celevator_callbutton_down.png" + if inventory then + tex = tex..":7,4=celevator_callbutton_up.png:7,19=celevator_callbutton_down.png" + else + tex = tex..":24,28=celevator_callbutton_up.png:24,43=celevator_callbutton_down.png" + end if upon then tex = tex..":33,29=celevator_callbutton_light.png" end @@ -105,7 +118,7 @@ for _,state in ipairs(validstates) do if state[2] then nname = nname.."_upon" end if state[3] then nname = nname.."_downon" end local idle = not (state[2] or state[3]) - local description = string.format("%s Call Button%s",state[4],(idle and "" or " (on state, you hacker you!)")) + local description = string.format("Elevator %s Call Button%s%s",state[4],(state[1] == "both" and "s" or ""),(idle and "" or " (on state, you hacker you!)")) minetest.register_node(nname,{ description = description, groups = { @@ -117,6 +130,7 @@ for _,state in ipairs(validstates) do _celevator_callbutton_up_lit = (state[2] and 1 or 0), _celevator_callbutton_down_lit = (state[3] and 1 or 0), }, + inventory_image = makebuttontex(state[1],state[2],state[3],true), drop = dropname, tiles = { boringside, @@ -408,7 +408,7 @@ local pieces = { for _,def in ipairs(pieces) do def.groups = { - dig_immediate = 2, + not_in_creative_inventory = 1, _celevator_car = 1, } local xp = tonumber(string.sub(def._position,1,1)) @@ -435,8 +435,9 @@ for _,def in ipairs(pieces) do def.paramtype = "light" def.paramtype2 = "4dir" def.drawtype = "nodebox" - def.description = "Car "..def._position + def.description = "Car "..def._position.." (you hacker you!)" def.light_source = 9 + def.drop = "" def.on_receive_fields = function(pos,_,fields,player) local meta = minetest.get_meta(pos) local carid = meta:get_int("carid") @@ -471,6 +472,22 @@ for _,def in ipairs(pieces) do def.on_construct = function(pos) minetest.get_meta(pos):set_string("doorstate","closed") end + def.on_punch = function(pos,_,player) + if player.is_fake_player then return end + local name = player:get_player_name() + local sneak = player:get_player_control().sneak + if not sneak then return end + if minetest.is_protected(pos,name) and not minetest.check_player_privs(name,{protection_bypass=true}) then + minetest.record_protection_violation(pos,name) + return + end + local hash = minetest.hash_node_position(pos) + local fs = "formspec_version[7]size[6,4]" + fs = fs.."label[0.5,1;Really remove this car?]" + fs = fs.."button_exit[0.5,2;2,1;yes;Yes]" + fs = fs.."button_exit[3,2;2,1;no;No]" + minetest.show_formspec(name,string.format("celevator:remove_car_%d",hash),fs) + end end minetest.register_node("celevator:car_"..def._position,def) end @@ -577,3 +594,92 @@ minetest.register_abm({ chance = 1, action = updatecartopbox, }) + +minetest.register_node("celevator:car",{ + description = "Elevator Car", + paramtype2 = "4dir", + buildable_to = true, + inventory_image = "celevator_car_inventory.png", + wield_image = "celevator_car_wield.png", + wield_scale = vector.new(1,1,10), + tiles = {"celevator_transparent.png"}, + after_place_node = function(pos,player) + if not player:is_player() then + minetest.remove_node(pos) + return true + end + local name = player:get_player_name() + local newnode = minetest.get_node(pos) + local facedir = minetest.dir_to_yaw(minetest.fourdir_to_dir(newnode.param2)) + for x=0,1,1 do + for y=0,2,1 do + for z=0,2,1 do + local offsetdesc = string.format("%dm to the right, %dm up, and %dm back",x,y,z) + local placeoffset = vector.new(x,y,z) + local placepos = vector.add(pos,vector.rotate_around_axis(placeoffset,vector.new(0,1,0),facedir)) + local replaces = minetest.get_node(placepos).name + if not (minetest.registered_nodes[replaces] and minetest.registered_nodes[replaces].buildable_to) then + minetest.chat_send_player(name,string.format("Can't place car here - position %s is blocked!",offsetdesc)) + minetest.remove_node(pos) + return true + end + if minetest.is_protected(placepos,name) and not minetest.check_player_privs(name,{protection_bypass=true}) then + minetest.chat_send_player(name,string.format("Can't place car here - position %s is protected!",offsetdesc)) + minetest.record_protection_violation(placepos,name) + minetest.remove_node(pos) + return true + end + end + end + end + for x=0,1,1 do + for y=0,2,1 do + for z=0,2,1 do + local piecename = string.format("celevator:car_%d%d%d",x,y,z) + local placeoffset = vector.new(x,y,z) + local placepos = vector.add(pos,vector.rotate_around_axis(placeoffset,vector.new(0,1,0),facedir)) + minetest.set_node(placepos,{name=piecename,param2=newnode.param2}) + end + end + end + end, +}) + +minetest.register_on_player_receive_fields(function(_,formname,fields) + if string.sub(formname,1,21) ~= "celevator:remove_car_" then return false end + if not fields.yes then return true end + local hash = tonumber(string.sub(formname,22,-1)) + if not hash then return true end + local rootpos = minetest.get_position_from_hash(hash) + local rootdir = minetest.dir_to_yaw(minetest.fourdir_to_dir(minetest.get_node(rootpos).param2)) + local toberemoved = { + ["celevator:car_top_box"] = true, + ["celevator:incar_pi_entity"] = true, + ["celevator:car_door"] = true, + } + for x=0,1,1 do + for y=0,2,1 do + for z=0,2,1 do + local piecename = string.format("celevator:car_%d%d%d",x,y,z) + local pieceoffset = vector.new(x,y,z) + local piecepos = vector.add(rootpos,vector.rotate_around_axis(pieceoffset,vector.new(0,1,0),rootdir)) + if minetest.get_node(piecepos).name == piecename then + minetest.remove_node(piecepos) + local erefs = minetest.get_objects_inside_radius(piecepos,0.5) + for _,ref in pairs(erefs) do + if toberemoved[ref:get_luaentity().name] then + ref:remove() + end + end + end + end + end + end + local cartopboxpos = vector.add(rootpos,vector.rotate_around_axis(vector.new(0,3,1),vector.new(0,1,0),rootdir)) + local erefs = minetest.get_objects_inside_radius(cartopboxpos,0.5) + for _,ref in pairs(erefs) do + if toberemoved[ref:get_luaentity().name] then + ref:remove() + end + end +end) diff --git a/controller.lua b/controller.lua index cb212ce..ce5c666 100644 --- a/controller.lua +++ b/controller.lua @@ -117,7 +117,7 @@ local function controllerleds(pos,running) end minetest.register_node("celevator:controller",{ - description = "Controller", + description = "Elevator Controller", groups = { cracky = 1, }, @@ -3,7 +3,7 @@ celevator.doors = {} celevator.doors.erefs = {} minetest.register_node("celevator:hwdoor_fast_glass_bottom",{ - description = "Glass Hoistway Door (fast, bottom)", + description = "Glass Hoistway Door (fast, bottom - you hacker you!)", tiles = { "celevator_transparent.png", "celevator_door_glass_edge.png", @@ -13,9 +13,11 @@ minetest.register_node("celevator:hwdoor_fast_glass_bottom",{ "celevator_door_glass_topbottom.png^[transformFY", }, groups = { - dig_immediate = 2, + not_in_creative_inventory = 1, _celevator_hwdoor_root = 1, + oddly_breakable_by_hand = 2, }, + drop = "celevator:hwdoor_glass", paramtype = "light", paramtype2 = "4dir", drawtype = "nodebox", @@ -26,10 +28,30 @@ minetest.register_node("celevator:hwdoor_fast_glass_bottom",{ {-0.5,-0.5,0.4,0.5,0.5,0.5}, }, }, + after_dig_node = function(pos,node) + local facedir = minetest.dir_to_yaw(minetest.fourdir_to_dir(node.param2)) + local xnames = { + [0] = "fast", + [1] = "slow", + } + local ynames = { + [0] = "bottom", + [1] = "middle", + [2] = "top", + } + for x=0,1,1 do + for y=0,2,1 do + local piecename = string.format("celevator:hwdoor_%s_glass_%s",xnames[x],ynames[y]) + local pieceoffset = vector.new(x,y,0) + local piecepos = vector.add(pos,vector.rotate_around_axis(pieceoffset,vector.new(0,1,0),facedir)) + if minetest.get_node(piecepos).name == piecename then minetest.remove_node(piecepos) end + end + end + end, }) minetest.register_node("celevator:hwdoor_fast_glass_middle",{ - description = "Glass Hoistway Door (fast, middle)", + description = "Glass Hoistway Door (fast, middle - you hacker you!)", tiles = { "celevator_transparent.png", "celevator_transparent.png", @@ -39,8 +61,9 @@ minetest.register_node("celevator:hwdoor_fast_glass_middle",{ "celevator_door_glass_middle.png", }, groups = { - dig_immediate = 2, + not_in_creative_inventory = 1, }, + drop = "", paramtype = "light", paramtype2 = "4dir", drawtype = "nodebox", @@ -54,7 +77,7 @@ minetest.register_node("celevator:hwdoor_fast_glass_middle",{ }) minetest.register_node("celevator:hwdoor_fast_glass_top",{ - description = "Glass Hoistway Door (fast, top)", + description = "Glass Hoistway Door (fast, top - you hacker you!)", tiles = { "celevator_door_glass_edge.png", "celevator_transparent.png", @@ -64,8 +87,9 @@ minetest.register_node("celevator:hwdoor_fast_glass_top",{ "celevator_door_glass_topbottom.png", }, groups = { - dig_immediate = 2, + not_in_creative_inventory = 1, }, + drop = "", paramtype = "light", paramtype2 = "4dir", drawtype = "nodebox", @@ -79,7 +103,7 @@ minetest.register_node("celevator:hwdoor_fast_glass_top",{ }) minetest.register_node("celevator:hwdoor_slow_glass_bottom",{ - description = "Glass Hoistway Door (slow, bottom)", + description = "Glass Hoistway Door (slow, bottom - you hacker you!)", tiles = { "celevator_transparent.png", "celevator_door_glass_edge.png", @@ -89,8 +113,9 @@ minetest.register_node("celevator:hwdoor_slow_glass_bottom",{ "celevator_door_glass_topbottom.png^[transformFY", }, groups = { - dig_immediate = 2, + not_in_creative_inventory = 1, }, + drop = "", paramtype = "light", paramtype2 = "4dir", drawtype = "nodebox", @@ -104,7 +129,7 @@ minetest.register_node("celevator:hwdoor_slow_glass_bottom",{ }) minetest.register_node("celevator:hwdoor_slow_glass_middle",{ - description = "Glass Hoistway Door (slow, middle)", + description = "Glass Hoistway Door (slow, middle - you hacker you!)", tiles = { "celevator_transparent.png", "celevator_transparent.png", @@ -114,8 +139,9 @@ minetest.register_node("celevator:hwdoor_slow_glass_middle",{ "celevator_door_glass_middle.png", }, groups = { - dig_immediate = 2, + not_in_creative_inventory = 1, }, + drop = "", paramtype = "light", paramtype2 = "4dir", drawtype = "nodebox", @@ -129,7 +155,7 @@ minetest.register_node("celevator:hwdoor_slow_glass_middle",{ }) minetest.register_node("celevator:hwdoor_slow_glass_top",{ - description = "Glass Hoistway Door (slow, top)", + description = "Glass Hoistway Door (slow, top - you hacker you!)", tiles = { "celevator_door_glass_edge.png", "celevator_transparent.png", @@ -139,8 +165,9 @@ minetest.register_node("celevator:hwdoor_slow_glass_top",{ "celevator_door_glass_topbottom.png", }, groups = { - dig_immediate = 2, + not_in_creative_inventory = 1, }, + drop = "", paramtype = "light", paramtype2 = "4dir", drawtype = "nodebox", @@ -154,10 +181,14 @@ minetest.register_node("celevator:hwdoor_slow_glass_top",{ }) minetest.register_node("celevator:hwdoor_placeholder",{ - description = "Hoistway Door Open-State Placeholder", + description = "Hoistway Door Open-State Placeholder (you hacker you!)", + groups = { + not_in_creative_inventory = 1, + }, tiles = { "celevator_transparent.png", }, + drop = "", paramtype = "light", paramtype2 = "4dir", drawtype = "airlike", @@ -538,3 +569,58 @@ minetest.register_abm({ celevator.doors.spawncardoors(pos,fdir) end, }) + +minetest.register_node("celevator:hwdoor_glass",{ + description = "Glass Elevator Hoistway Door", + paramtype2 = "4dir", + buildable_to = true, + inventory_image = "celevator_door_glass_inventory.png", + wield_image = "celevator_door_glass_inventory.png", + wield_scale = vector.new(1,3,1), + tiles = {"celevator_transparent.png"}, + after_place_node = function(pos,player) + if not player:is_player() then + minetest.remove_node(pos) + return true + end + local name = player:get_player_name() + local newnode = minetest.get_node(pos) + local facedir = minetest.dir_to_yaw(minetest.fourdir_to_dir(newnode.param2)) + local xnames = { + [0] = "fast", + [1] = "slow", + } + local ynames = { + [0] = "bottom", + [1] = "middle", + [2] = "top", + } + for x=0,1,1 do + for y=0,2,1 do + local offsetdesc = string.format("%dm to the right and %dm up",x,y) + local placeoffset = vector.new(x,y,0) + local placepos = vector.add(pos,vector.rotate_around_axis(placeoffset,vector.new(0,1,0),facedir)) + local replaces = minetest.get_node(placepos).name + if not (minetest.registered_nodes[replaces] and minetest.registered_nodes[replaces].buildable_to) then + minetest.chat_send_player(name,string.format("Can't place car here - position %s is blocked!",offsetdesc)) + minetest.remove_node(pos) + return true + end + if minetest.is_protected(placepos,name) and not minetest.check_player_privs(name,{protection_bypass=true}) then + minetest.chat_send_player(name,string.format("Can't place car here - position %s is protected!",offsetdesc)) + minetest.record_protection_violation(placepos,name) + minetest.remove_node(pos) + return true + end + end + end + for x=0,1,1 do + for y=0,2,1 do + local piecename = string.format("celevator:hwdoor_%s_glass_%s",xnames[x],ynames[y]) + local placeoffset = vector.new(x,y,0) + local placepos = vector.add(pos,vector.rotate_around_axis(placeoffset,vector.new(0,1,0),facedir)) + minetest.set_node(placepos,{name=piecename,param2=newnode.param2}) + end + end + end, +}) diff --git a/drive_entity.lua b/drive_entity.lua index 7702a92..657f3d6 100644 --- a/drive_entity.lua +++ b/drive_entity.lua @@ -137,7 +137,7 @@ local function decelsound(pos) end minetest.register_node("celevator:drive",{ - description = celevator.drives.entity.name, + description = "Elevator "..celevator.drives.entity.name, groups = { cracky = 1, _celevator_drive = 1, @@ -673,7 +673,7 @@ local function updatecarpos(pos) end minetest.register_node("celevator:machine",{ - description = "Hoist Machine", + description = "Elevator Hoist Machine", groups = { dig_immediate = 2, _celevator_machine = 1, @@ -688,6 +688,9 @@ minetest.register_node("celevator:machine",{ "celevator_machine_front.png", "celevator_machine_front.png", }, + inventory_image = "celevator_machine_inventory.png", + wield_image = "celevator_machine_inventory.png", + wield_scale = vector.new(1,1,3), drawtype = "nodebox", node_box = { type = "fixed", @@ -705,10 +708,68 @@ minetest.register_node("celevator:machine",{ {-0.5,-0.25,-0.05,-0.35,-0.15,0.05} -- Shaft from motor }, }, - after_place_node = function(pos) - updatecarpos(pos) + selection_box = { + type = "fixed", + fixed = { + {-1.5,-0.5,-0.5,0.5,0.5,0.5}, + {-0.5,-0.5,-0.8,0.5,0.5,-0.5}, + }, + }, + after_place_node = function(pos,player) + if not player:is_player() then + minetest.remove_node(pos) + return true + end + local newnode = minetest.get_node(pos) + local facedir = minetest.dir_to_yaw(minetest.fourdir_to_dir(newnode.param2)) + local motorpos = vector.add(pos,vector.rotate_around_axis(vector.new(-1,0,0),vector.new(0,1,0),facedir)) + local motorreplaces = minetest.get_node(motorpos).name + local sheavepos = vector.add(pos,vector.rotate_around_axis(vector.new(0,0,-1),vector.new(0,1,0),facedir)) + local sheavereplaces = minetest.get_node(sheavepos).name + local name = player:get_player_name() + if not (minetest.registered_nodes[motorreplaces] and minetest.registered_nodes[motorreplaces].buildable_to) then + minetest.chat_send_player(name,"Can't place machine here - no room for the motor (to the left)!") + minetest.remove_node(pos) + return true + end + if minetest.is_protected(motorpos,name) and not minetest.check_player_privs(name,{protection_bypass=true}) then + minetest.chat_send_player(name,"Can't place machine here - space for the motor (to the left) is protected!") + minetest.record_protection_violation(motorpos,name) + minetest.remove_node(pos) + return true + end + if not (minetest.registered_nodes[sheavereplaces] and minetest.registered_nodes[sheavereplaces].buildable_to) then + minetest.chat_send_player(name,"Can't place machine here - no room for the sheave (in front)!") + minetest.remove_node(pos) + return true + end + if minetest.is_protected(sheavepos,name) and not minetest.check_player_privs(name,{protection_bypass=true}) then + minetest.chat_send_player(name,"Can't place machine here - space for the sheave (in front) is protected!") + minetest.record_protection_violation(sheavepos,name) + minetest.remove_node(pos) + return true + end local meta = minetest.get_meta(pos) meta:set_string("formspec","formspec_version[7]size[8,5]field[0.5,0.5;7,1;carid;Car ID;]button[3,3.5;2,1;save;Save]") + minetest.set_node(motorpos,{name="celevator:motor",param2=newnode.param2}) + minetest.set_node(sheavepos,{name="celevator:sheave",param2=newnode.param2}) + end, + after_dig_node = function(pos,node) + local facedir = minetest.dir_to_yaw(minetest.fourdir_to_dir(node.param2)) + local motorpos = vector.add(pos,vector.rotate_around_axis(vector.new(-1,0,0),vector.new(0,1,0),facedir)) + if minetest.get_node(motorpos).name == "celevator:motor" then + minetest.remove_node(motorpos) + end + local sheavepos = vector.add(pos,vector.rotate_around_axis(vector.new(0,0,-1),vector.new(0,1,0),facedir)) + if minetest.get_node(sheavepos).name == "celevator:sheave" then + minetest.remove_node(sheavepos) + end + local erefs = minetest.get_objects_inside_radius(sheavepos,0.5) + for _,ref in pairs(erefs) do + if ref:get_luaentity().name == "celevator:sheave_moving" then + ref:remove() + end + end end, on_punch = function(pos) local meta = minetest.get_meta(pos) @@ -726,15 +787,17 @@ minetest.register_node("celevator:machine",{ local meta = minetest.get_meta(pos) meta:set_int("carid",carid) meta:set_string("formspec","") + updatecarpos(pos) end end, }) minetest.register_node("celevator:motor",{ - description = "Hoist Motor", + description = "Hoist Motor (you hacker you!)", groups = { - dig_immediate = 2, + not_in_creative_inventory = 1, }, + drop = "", paramtype = "light", paramtype2 = "4dir", tiles = { @@ -757,13 +820,18 @@ minetest.register_node("celevator:motor",{ {-0.4,0.1,-0.2,0,0.3,0.2}, -- Junction box }, }, + selection_box = { + type = "fixed", + fixed = {}, + }, }) minetest.register_node("celevator:sheave",{ - description = "Sheave", + description = "Sheave (you hacker you!)", groups = { - dig_immediate = 2, + not_in_creative_inventory = 1, }, + drop = "", paramtype = "light", paramtype2 = "4dir", tiles = { @@ -785,13 +853,18 @@ minetest.register_node("celevator:sheave",{ {-0.2,-0.3,0.2,0.2,-0.2,0.5}, }, }, + selection_box = { + type = "fixed", + fixed = {}, + }, }) minetest.register_node("celevator:sheave_centered",{ - description = "Centered Sheave", + description = "Centered Sheave (you hacker you!)", groups = { - dig_immediate = 2, + not_in_creative_inventory = 1, }, + drop = "", paramtype = "light", paramtype2 = "4dir", tiles = { @@ -813,6 +886,10 @@ minetest.register_node("celevator:sheave_centered",{ {-0.2,-0.4,0.2,0.2,-0.3,0.5}, }, }, + selection_box = { + type = "fixed", + fixed = {}, + }, }) minetest.register_entity("celevator:sheave_moving",{ @@ -821,6 +898,7 @@ minetest.register_entity("celevator:sheave_moving",{ visual_size = vector.new(0.667,0.667,0.667), wield_item = "celevator:sheave_centered", static_save = false, + pointable = false, }, }) diff --git a/drive_null.lua b/drive_null.lua index 9cf4875..beb7d4d 100644 --- a/drive_null.lua +++ b/drive_null.lua @@ -55,6 +55,7 @@ minetest.register_node("celevator:drive_null",{ description = celevator.drives.null.name, groups = { cracky = 1, + not_in_creative_inventory = 1, }, tiles = { "celevator_cabinet_sides.png", diff --git a/fs1switch.lua b/fs1switch.lua index d0f4349..8c426cc 100644 --- a/fs1switch.lua +++ b/fs1switch.lua @@ -98,12 +98,13 @@ local switchstates = {"off","on","reset"} for _,switchpos in ipairs(switchstates) do minetest.register_node("celevator:fs1switch_"..switchpos,{ - description = "Fire Service Phase 1 Keyswitch"..(switchpos == "off" and "" or string.format(" (%s state - you hacker you!)",switchpos)), + description = "Elevator Fire Service Phase 1 Keyswitch"..(switchpos == "off" and "" or string.format(" (%s state - you hacker you!)",switchpos)), groups = { dig_immediate = 2, not_in_creative_inventory = (switchpos == "off" and 0 or 1), _celevator_fs1switch = 1, }, + inventory_image = "celevator_fs1switch_off.png", drop = "celevator:fs1switch_off", tiles = { "celevator_cabinet_sides.png", @@ -140,7 +141,7 @@ for _,switchpos in ipairs(switchstates) do on_destruct = unpair, }) minetest.register_node("celevator:fs1switch_"..switchpos.."_lit",{ - description = "Fire Service Phase 1 Keyswitch"..string.format(" (%s state, lit - you hacker you!)",switchpos), + description = "Elevator Fire Service Phase 1 Keyswitch"..string.format(" (%s state, lit - you hacker you!)",switchpos), groups = { dig_immediate = 2, not_in_creative_inventory = 1, diff --git a/pilantern.lua b/pilantern.lua index 3856c5d..71394e4 100644 --- a/pilantern.lua +++ b/pilantern.lua @@ -135,7 +135,7 @@ function celevator.pi.setarrow(pos,which,active) end minetest.register_node("celevator:pi",{ - description = "Position Indicator", + description = "Elevator Position Indicator", groups = { dig_immediate = 2, _celevator_pi = 1, @@ -148,6 +148,7 @@ minetest.register_node("celevator:pi",{ boringside, displaytex, }, + inventory_image = "[combine:32x32:0,5=celevator_pi_background.png", paramtype = "light", paramtype2 = "facedir", drawtype = "nodebox", @@ -305,7 +306,7 @@ for _,state in ipairs(validstates) do if state[2] then nname = nname.."_upon" end if state[3] then nname = nname.."_downon" end local idle = not (state[2] or state[3]) - local description = string.format("%s Position Indicator/Lantern Combo%s",state[4],(idle and "" or " (on state, you hacker you!)")) + local description = string.format("Elevator %s Position Indicator/Lantern Combo%s",state[4],(idle and "" or " (on state, you hacker you!)")) minetest.register_node(nname,{ description = description, groups = { @@ -327,6 +328,7 @@ for _,state in ipairs(validstates) do boringside, makepilanterntex(state[1],state[2],state[3]) }, + inventory_image = string.format("[combine:42x42:5,0=celevator_pi_lantern_background_%s.png",(state[1] == "both" and "updown" or state[1])), paramtype = "light", paramtype2 = "facedir", drawtype = "nodebox", @@ -385,9 +387,10 @@ for _,state in ipairs(validstates) do if state[2] then nname = nname.."_upon" end if state[3] then nname = nname.."_downon" end idle = not (state[2] or state[3]) - description = string.format("%s Lantern%s",state[4],(idle and "" or " (on state, you hacker you!)")) + description = string.format("Elevator %s Lantern%s",state[4],(idle and "" or " (on state, you hacker you!)")) minetest.register_node(nname,{ description = description, + inventory_image = string.format("[combine:32x32:0,5=celevator_lantern_background_%s.png",(state[1] == "both" and "updown" or state[1])), groups = { dig_immediate = 2, not_in_creative_inventory = (idle and 0 or 1), diff --git a/textures/celevator_car_inventory.png b/textures/celevator_car_inventory.png Binary files differnew file mode 100644 index 0000000..2f4263b --- /dev/null +++ b/textures/celevator_car_inventory.png diff --git a/textures/celevator_car_wield.png b/textures/celevator_car_wield.png Binary files differnew file mode 100644 index 0000000..e2f301d --- /dev/null +++ b/textures/celevator_car_wield.png diff --git a/textures/celevator_door_glass_inventory.png b/textures/celevator_door_glass_inventory.png Binary files differnew file mode 100644 index 0000000..4ebf6f9 --- /dev/null +++ b/textures/celevator_door_glass_inventory.png diff --git a/textures/celevator_machine_inventory.png b/textures/celevator_machine_inventory.png Binary files differnew file mode 100644 index 0000000..04e7f85 --- /dev/null +++ b/textures/celevator_machine_inventory.png |