diff options
author | cheapie <no-email-for-you@example.com> | 2024-04-04 18:06:20 -0500 |
---|---|---|
committer | cheapie <no-email-for-you@example.com> | 2024-04-04 18:06:20 -0500 |
commit | c1759eac9c4fa2bb335c5b01b91a99121c5174a8 (patch) | |
tree | 8a4c52540918f605ce3d64d04053b71b72b9d223 /controller.lua | |
parent | 15fd61d88ab31d9199604c37614d4459792c1016 (diff) | |
download | celevator-c1759eac9c4fa2bb335c5b01b91a99121c5174a8.tar celevator-c1759eac9c4fa2bb335c5b01b91a99121c5174a8.tar.gz celevator-c1759eac9c4fa2bb335c5b01b91a99121c5174a8.tar.bz2 celevator-c1759eac9c4fa2bb335c5b01b91a99121c5174a8.tar.xz celevator-c1759eac9c4fa2bb335c5b01b91a99121c5174a8.zip |
Convert PIs and lanterns to new communication system
Existing PIs/lanterns will need to be removed and replaced
Diffstat (limited to 'controller.lua')
-rw-r--r-- | controller.lua | 31 |
1 files changed, 14 insertions, 17 deletions
diff --git a/controller.lua b/controller.lua index 3fde24f..cc4f68d 100644 --- a/controller.lua +++ b/controller.lua @@ -453,10 +453,9 @@ function celevator.controller.finish(pos,mem,changedinterrupts) local oldpitext = oldmem.pifloor or "--" local newpitext = mem.pifloor or "--" if oldpitext ~= newpitext then - local pis = minetest.deserialize(meta:get_string("pis")) or {} - for hash in pairs(pis) do - local pipos = minetest.get_position_from_hash(hash) - celevator.pi.settext(pipos,newpitext) + local pis = carinfo.pis + for _,pi in pairs(pis) do + celevator.pi.settext(pi.pos,newpitext) end end local oldpiuparrow = oldmem.piuparrow @@ -464,26 +463,24 @@ function celevator.controller.finish(pos,mem,changedinterrupts) local oldpidownarrow = oldmem.pidownarrow local newpidownarrow = mem.pidownarrow if oldpiuparrow ~= newpiuparrow then - local pis = minetest.deserialize(meta:get_string("pis")) or {} - for hash in pairs(pis) do - local pipos = minetest.get_position_from_hash(hash) - celevator.pi.setarrow(pipos,"up",newpiuparrow) + local pis = carinfo.pis + for _,pi in pairs(pis) do + celevator.pi.setarrow(pi.pos,"up",newpiuparrow) end end if oldpidownarrow ~= newpidownarrow then - local pis = minetest.deserialize(meta:get_string("pis")) or {} - for hash in pairs(pis) do - local pipos = minetest.get_position_from_hash(hash) - celevator.pi.setarrow(pipos,"down",newpidownarrow) + local pis = carinfo.pis + for _,pi in pairs(pis) do + celevator.pi.setarrow(pi.pos,"down",newpidownarrow) end end local oldlanterns = oldmem.lanterns or {} local newlanterns = mem.lanterns or {} - local lanterns = minetest.deserialize(meta:get_string("lanterns")) or {} - for hash,landing in pairs(lanterns) do - if oldlanterns[landing] ~= newlanterns[landing] then - celevator.lantern.setlight(minetest.get_position_from_hash(hash),"up",newlanterns[landing] == "up") - celevator.lantern.setlight(minetest.get_position_from_hash(hash),"down",newlanterns[landing] == "down") + local lanterns = carinfo.lanterns + for _,lantern in pairs(lanterns) do + if oldlanterns[lantern.landing] ~= newlanterns[lantern.landing] then + celevator.lantern.setlight(lantern.pos,"up",newlanterns[lantern.landing] == "up") + celevator.lantern.setlight(lantern.pos,"down",newlanterns[lantern.landing] == "down") end end meta:set_string("mem",minetest.serialize(mem)) |