summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcheapie <no-email-for-you@example.com>2024-04-18 20:38:05 -0500
committercheapie <no-email-for-you@example.com>2024-04-18 20:38:05 -0500
commit3d078bb99a75d10f8f11142341554bd81fb1d923 (patch)
treec64d8463d3460e0cac4223672d6021fdd0807d00
parentfd8693671d81eda7ab62c397b77d9496c39cc2f2 (diff)
downloadcelevator-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.lua24
-rw-r--r--car.lua110
-rw-r--r--controller.lua2
-rw-r--r--doors.lua112
-rw-r--r--drive_entity.lua98
-rw-r--r--drive_null.lua1
-rw-r--r--fs1switch.lua5
-rw-r--r--pilantern.lua9
-rw-r--r--textures/celevator_car_inventory.pngbin0 -> 5017 bytes
-rw-r--r--textures/celevator_car_wield.pngbin0 -> 4870 bytes
-rw-r--r--textures/celevator_door_glass_inventory.pngbin0 -> 573 bytes
-rw-r--r--textures/celevator_machine_inventory.pngbin0 -> 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,
diff --git a/car.lua b/car.lua
index 5dfda79..cb870d4 100644
--- a/car.lua
+++ b/car.lua
@@ -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,
},
diff --git a/doors.lua b/doors.lua
index c443347..fb26a87 100644
--- a/doors.lua
+++ b/doors.lua
@@ -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
new file mode 100644
index 0000000..2f4263b
--- /dev/null
+++ b/textures/celevator_car_inventory.png
Binary files differ
diff --git a/textures/celevator_car_wield.png b/textures/celevator_car_wield.png
new file mode 100644
index 0000000..e2f301d
--- /dev/null
+++ b/textures/celevator_car_wield.png
Binary files differ
diff --git a/textures/celevator_door_glass_inventory.png b/textures/celevator_door_glass_inventory.png
new file mode 100644
index 0000000..4ebf6f9
--- /dev/null
+++ b/textures/celevator_door_glass_inventory.png
Binary files differ
diff --git a/textures/celevator_machine_inventory.png b/textures/celevator_machine_inventory.png
new file mode 100644
index 0000000..04e7f85
--- /dev/null
+++ b/textures/celevator_machine_inventory.png
Binary files differ