summaryrefslogtreecommitdiff
path: root/controller.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 /controller.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 'controller.lua')
-rw-r--r--controller.lua18
1 files changed, 17 insertions, 1 deletions
diff --git a/controller.lua b/controller.lua
index 884f620..b4c36c7 100644
--- a/controller.lua
+++ b/controller.lua
@@ -467,6 +467,10 @@ function celevator.controller.finish(pos,mem,changedinterrupts)
local newpiuparrow = mem.piuparrow
local oldpidownarrow = oldmem.pidownarrow
local newpidownarrow = mem.pidownarrow
+ local oldflashfs = oldmem.flash_fs
+ local newflashfs = mem.flash_fs
+ local oldflashis = oldmem.flash_is
+ local newflashis = mem.flash_is
if oldpiuparrow ~= newpiuparrow then
carinfodirty = true
carinfo.piuparrow = newpiuparrow
@@ -483,6 +487,17 @@ function celevator.controller.finish(pos,mem,changedinterrupts)
celevator.pi.setarrow(pi.pos,"down",newpidownarrow)
end
end
+ if oldflashfs ~= newflashfs or oldflashis ~= newflashis then
+ carinfodirty = true
+ carinfo.flash_fs = newflashfs
+ carinfo.flash_is = newflashis
+ local pis = carinfo.pis
+ local what = newflashis and "IS"
+ if newflashfs then what = "FS" end
+ for _,pi in pairs(pis) do
+ celevator.pi.flash(pi.pos,what)
+ end
+ end
local oldlanterns = oldmem.lanterns or {}
local newlanterns = mem.lanterns or {}
local lanterns = carinfo.lanterns
@@ -493,7 +508,8 @@ function celevator.controller.finish(pos,mem,changedinterrupts)
end
end
meta:set_string("copformspec",mem.copformspec)
- if mem.copformspec ~= oldmem.copformspec and drivetype then
+ meta:set_string("switchformspec",mem.switchformspec)
+ if (mem.copformspec ~= oldmem.copformspec or mem.switchformspec ~= oldmem.switchformspec) and drivetype then
minetest.after(0.25,celevator.drives[drivetype].updatecopformspec,drivepos)
end
meta:set_string("mem",minetest.serialize(mem))