summaryrefslogtreecommitdiff
path: root/drive_entity.lua
diff options
context:
space:
mode:
authorcheapie <no-email-for-you@example.com>2024-04-13 20:23:08 -0500
committercheapie <no-email-for-you@example.com>2024-04-13 20:23:08 -0500
commit4f04035bc45719872d07326599628429192bcc5b (patch)
tree5dcdfd1cc0773518e2f258047005fbdb04998289 /drive_entity.lua
parenta50ceb4d277020a9b1259f759b1f1d13211f740d (diff)
downloadcelevator-4f04035bc45719872d07326599628429192bcc5b.tar
celevator-4f04035bc45719872d07326599628429192bcc5b.tar.gz
celevator-4f04035bc45719872d07326599628429192bcc5b.tar.bz2
celevator-4f04035bc45719872d07326599628429192bcc5b.tar.xz
celevator-4f04035bc45719872d07326599628429192bcc5b.zip
Add in-car switch panel and independent service, also fix a few bugs
Switches for fire service phase 2 (not yet implemented) and car fan and light (no plans) are also available
Diffstat (limited to 'drive_entity.lua')
-rw-r--r--drive_entity.lua10
1 files changed, 8 insertions, 2 deletions
diff --git a/drive_entity.lua b/drive_entity.lua
index b651538..d5b8287 100644
--- a/drive_entity.lua
+++ b/drive_entity.lua
@@ -484,6 +484,9 @@ function celevator.drives.entity.estop(pos)
celevator.drives.entity.entitiestonodes(handles)
stopbuzz(pos)
motorsound(pos,"idle")
+ local carid = meta:get_int("carid")
+ if carid ~= 0 then celevator.drives.entity.sheavetonode(carid) end
+ minetest.after(0.25,celevator.drives.entity.updatecopformspec,pos)
end
@@ -800,7 +803,8 @@ function celevator.drives.entity.updatecopformspec(drivepos)
if carid == 0 then return end
local carinfo = minetest.deserialize(celevator.storage:get_string(string.format("car%d",carid)))
if not carinfo then return end
- local formspec = minetest.get_meta(carinfo.controllerpos):get_string("copformspec")
+ local copformspec = minetest.get_meta(carinfo.controllerpos):get_string("copformspec")
+ local switchformspec = minetest.get_meta(carinfo.controllerpos):get_string("switchformspec")
local origin = minetest.string_to_pos(drivemeta:get_string("origin"))
if not origin then
minetest.log("error","[celevator] [entity drive] Invalid origin for drive at "..minetest.pos_to_string(drivepos))
@@ -814,7 +818,9 @@ function celevator.drives.entity.updatecopformspec(drivepos)
local piecepos = minetest.get_position_from_hash(hash)
local piece = minetest.get_node(piecepos)
if piece.name == "celevator:car_010" then
- minetest.get_meta(piecepos):set_string("formspec",formspec)
+ minetest.get_meta(piecepos):set_string("formspec",copformspec)
+ elseif piece.name == "celevator:car_000" then
+ minetest.get_meta(piecepos):set_string("formspec",switchformspec)
end
end
end