diff options
Diffstat (limited to 'pilantern.lua')
| -rw-r--r-- | pilantern.lua | 150 |
1 files changed, 75 insertions, 75 deletions
diff --git a/pilantern.lua b/pilantern.lua index a2ded98..5b2a7e4 100644 --- a/pilantern.lua +++ b/pilantern.lua @@ -8,33 +8,33 @@ local boringside = "[combine:64x64".. ":32,32=celevator_cabinet_sides.png" local displaytex = boringside..":16,40=celevator_pi_background.png" -minetest.register_entity("celevator:pi_entity",{ +core.register_entity("celevator:pi_entity",{ initial_properties = { visual = "upright_sprite", physical = false, collisionbox = {0,0,0,0,0,0,}, textures = {"celevator_transparent.png",}, static_save = false, - glow = minetest.LIGHT_MAX, + glow = core.LIGHT_MAX, }, }) -minetest.register_entity("celevator:incar_pi_entity",{ +core.register_entity("celevator:incar_pi_entity",{ initial_properties = { visual = "upright_sprite", physical = false, collisionbox = {0,0,0,0,0,0,}, textures = {"celevator_transparent.png",}, static_save = false, - glow = minetest.LIGHT_MAX, + glow = core.LIGHT_MAX, }, on_step = function(self) if not self.object then return end local pos = self.object:get_pos() - if not minetest.compare_block_status(pos,"active") then return self.object:remove() end + if not core.compare_block_status(pos,"active") then return self.object:remove() end local props = self.object:get_properties() if props.breath_max and props.breath_max ~= 0 then - local carinfo = minetest.deserialize(celevator.storage:get_string(string.format("car%d",props.breath_max))) + local carinfo = core.deserialize(celevator.storage:get_string(string.format("car%d",props.breath_max))) if not carinfo then return end local text = carinfo.pitext or "--" if string.len(text) < 3 then text = string.rep(" ",3-string.len(text))..text end @@ -50,7 +50,7 @@ minetest.register_entity("celevator:incar_pi_entity",{ self.object:set_properties({textures = {etex}}) else local carpos = vector.round(pos) - local carmeta = minetest.get_meta(carpos) + local carmeta = core.get_meta(carpos) local carid = carmeta:get_int("carid") if carid > 0 then self.object:set_properties({breath_max=carid}) end end @@ -58,7 +58,7 @@ minetest.register_entity("celevator:incar_pi_entity",{ }) function celevator.pi.removeentity(pos) - local entitiesnearby = minetest.get_objects_inside_radius(pos,0.5) + local entitiesnearby = core.get_objects_inside_radius(pos,0.5) for _,i in pairs(entitiesnearby) do if i:get_luaentity() and (i:get_luaentity().name == "celevator:pi_entity" or i:get_luaentity().name == "celevator:incar_pi_entity") then i:remove() @@ -82,16 +82,16 @@ end function celevator.pi.updatedisplay(pos) celevator.pi.removeentity(pos) - local meta = minetest.get_meta(pos) + local meta = core.get_meta(pos) local text = meta:get_string("text") - local entity = minetest.add_entity(pos,"celevator:pi_entity") - local fdir = minetest.facedir_to_dir(celevator.get_node(pos).param2) + local entity = core.add_entity(pos,"celevator:pi_entity") + local fdir = core.facedir_to_dir(celevator.get_node(pos).param2) local uparrow = meta:get_int("uparrow") > 0 local downarrow = meta:get_int("downarrow") > 0 local flash_fs = meta:get_int("flash_fs") > 0 local flash_is = meta:get_int("flash_is") > 0 local flashtimer = meta:get_int("flashtimer") > 0 - local islantern = minetest.get_item_group(celevator.get_node(pos).name,"_celevator_lantern") == 1 + local islantern = core.get_item_group(celevator.get_node(pos).name,"_celevator_lantern") == 1 local etex = celevator.pi.generatetexture(text,uparrow,downarrow,islantern) if flash_fs then if flashtimer then etex = celevator.pi.generatetexture(" FS",uparrow,downarrow,islantern) end @@ -108,8 +108,8 @@ function celevator.pi.updatedisplay(pos) end function celevator.pi.flash(pos,what) - if minetest.get_item_group(celevator.get_node(pos).name,"_celevator_pi") ~= 1 then return end - local meta = minetest.get_meta(pos) + if core.get_item_group(celevator.get_node(pos).name,"_celevator_pi") ~= 1 then return end + local meta = core.get_meta(pos) if what == "FS" then meta:set_int("flash_is",0) meta:set_int("flash_fs",1) @@ -125,8 +125,8 @@ end function celevator.pi.settext(pos,text) if not text then text = " --" end - if minetest.get_item_group(celevator.get_node(pos).name,"_celevator_pi") ~= 1 then return end - local meta = minetest.get_meta(pos) + if core.get_item_group(celevator.get_node(pos).name,"_celevator_pi") ~= 1 then return end + local meta = core.get_meta(pos) if string.len(text) < 3 then text = string.rep(" ",3-string.len(text))..text end @@ -135,8 +135,8 @@ function celevator.pi.settext(pos,text) end function celevator.pi.setarrow(pos,which,active) - if minetest.get_item_group(celevator.get_node(pos).name,"_celevator_pi") ~= 1 then return end - local meta = minetest.get_meta(pos) + if core.get_item_group(celevator.get_node(pos).name,"_celevator_pi") ~= 1 then return end + local meta = core.get_meta(pos) if which == "up" then meta:set_int("uparrow",active and 1 or 0) elseif which == "down" then @@ -145,7 +145,7 @@ function celevator.pi.setarrow(pos,which,active) celevator.pi.updatedisplay(pos) end -minetest.register_node("celevator:pi",{ +core.register_node("celevator:pi",{ description = "Elevator Position Indicator", groups = { dig_immediate = 2, @@ -171,17 +171,17 @@ minetest.register_node("celevator:pi",{ }, }, after_place_node = function(pos) - local meta = minetest.get_meta(pos) + local meta = core.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]") end, on_receive_fields = function(pos,_,fields) if tonumber(fields.carid) then local carid = tonumber(fields.carid) - local carinfo = minetest.deserialize(celevator.storage:get_string(string.format("car%d",carid))) + local carinfo = core.deserialize(celevator.storage:get_string(string.format("car%d",carid))) if not (carinfo and carinfo.pis) then return end table.insert(carinfo.pis,{pos=pos}) - celevator.storage:set_string(string.format("car%d",carid),minetest.serialize(carinfo)) - local meta = minetest.get_meta(pos) + celevator.storage:set_string(string.format("car%d",carid),core.serialize(carinfo)) + local meta = core.get_meta(pos) meta:set_int("carid",carid) meta:set_string("formspec","") celevator.pi.settext(pos,carinfo.pitext) @@ -189,20 +189,20 @@ minetest.register_node("celevator:pi",{ end, on_destruct = function(pos) celevator.pi.removeentity(pos) - local meta = minetest.get_meta(pos) + local meta = core.get_meta(pos) local carid = meta:get_int("carid") if carid == 0 then return end - local carinfo = minetest.deserialize(celevator.storage:get_string(string.format("car%d",carid))) + local carinfo = core.deserialize(celevator.storage:get_string(string.format("car%d",carid))) if not (carinfo and carinfo.pis) then return end for i,pi in pairs(carinfo.pis) do if vector.equals(pos,pi.pos) then table.remove(carinfo.pis,i) - celevator.storage:set_string(string.format("car%d",carid),minetest.serialize(carinfo)) + celevator.storage:set_string(string.format("car%d",carid),core.serialize(carinfo)) end end end, on_construct = function(pos) - local meta = minetest.get_meta(pos) + local meta = core.get_meta(pos) meta:set_string("text","--") celevator.pi.updatedisplay(pos) end, @@ -210,49 +210,49 @@ minetest.register_node("celevator:pi",{ function celevator.lantern.setlight(pos,dir,newstate) local node = celevator.get_node(pos) - if minetest.get_item_group(node.name,"_celevator_lantern") ~= 1 then return end + if core.get_item_group(node.name,"_celevator_lantern") ~= 1 then return end if dir == "up" then - if minetest.get_item_group(node.name,"_celevator_lantern_has_up") ~= 1 then return end - local lit = minetest.get_item_group(node.name,"_celevator_lantern_up_lit") == 1 + if core.get_item_group(node.name,"_celevator_lantern_has_up") ~= 1 then return end + local lit = core.get_item_group(node.name,"_celevator_lantern_up_lit") == 1 if lit == newstate then return end local newname = "celevator:lantern_" - if minetest.get_item_group(node.name,"_celevator_pi") == 1 then newname = "celevator:pilantern_" end - if minetest.get_item_group(node.name,"_celevator_lantern_vertical") == 1 then newname = "celevator:lantern_vertical_" end - if minetest.get_item_group(node.name,"_celevator_lantern_has_down") == 1 then + if core.get_item_group(node.name,"_celevator_pi") == 1 then newname = "celevator:pilantern_" end + if core.get_item_group(node.name,"_celevator_lantern_vertical") == 1 then newname = "celevator:lantern_vertical_" end + if core.get_item_group(node.name,"_celevator_lantern_has_down") == 1 then newname = newname.."both" else newname = newname.."up" end if newstate then newname = newname.."_upon" - minetest.sound_play("celevator_chime_up",{pos = pos},true) + core.sound_play("celevator_chime_up",{pos = pos},true) end - if minetest.get_item_group(node.name,"_celevator_lantern_down_lit") == 1 then + if core.get_item_group(node.name,"_celevator_lantern_down_lit") == 1 then newname = newname.."_downon" end node.name = newname - minetest.swap_node(pos,node) + core.swap_node(pos,node) elseif dir == "down" then - if minetest.get_item_group(node.name,"_celevator_lantern_has_down") ~= 1 then return end - local lit = minetest.get_item_group(node.name,"_celevator_lantern_down_lit") == 1 + if core.get_item_group(node.name,"_celevator_lantern_has_down") ~= 1 then return end + local lit = core.get_item_group(node.name,"_celevator_lantern_down_lit") == 1 if lit == newstate then return end local newname = "celevator:lantern_" - if minetest.get_item_group(node.name,"_celevator_pi") == 1 then newname = "celevator:pilantern_" end - if minetest.get_item_group(node.name,"_celevator_lantern_vertical") == 1 then newname = "celevator:lantern_vertical_" end - if minetest.get_item_group(node.name,"_celevator_lantern_has_up") == 1 then + if core.get_item_group(node.name,"_celevator_pi") == 1 then newname = "celevator:pilantern_" end + if core.get_item_group(node.name,"_celevator_lantern_vertical") == 1 then newname = "celevator:lantern_vertical_" end + if core.get_item_group(node.name,"_celevator_lantern_has_up") == 1 then newname = newname.."both" else newname = newname.."down" end - if minetest.get_item_group(node.name,"_celevator_lantern_up_lit") == 1 then + if core.get_item_group(node.name,"_celevator_lantern_up_lit") == 1 then newname = newname.."_upon" end if newstate then newname = newname.."_downon" - minetest.sound_play("celevator_chime_down",{pos = pos},true) + core.sound_play("celevator_chime_down",{pos = pos},true) end node.name = newname - minetest.swap_node(pos,node) + core.swap_node(pos,node) end end @@ -353,7 +353,7 @@ for _,state in ipairs(validstates) do end local idle = not (state[2] or state[3]) 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,{ + core.register_node(nname,{ description = description, groups = { dig_immediate = 2, @@ -386,19 +386,19 @@ for _,state in ipairs(validstates) do }, }, after_place_node = function(pos) - local meta = minetest.get_meta(pos) + local meta = core.get_meta(pos) meta:set_string("formspec","formspec_version[7]size[8,5]field[0.5,0.5;7,1;carid;Car ID;]field[0.5,2;7,1;landing;Landing Number;]button[3,3.5;2,1;save;Save]") end, on_receive_fields = function(pos,_,fields) if tonumber(fields.carid) and tonumber(fields.landing) then local carid = tonumber(fields.carid) local landing = tonumber(fields.landing) - local carinfo = minetest.deserialize(celevator.storage:get_string(string.format("car%d",carid))) + local carinfo = core.deserialize(celevator.storage:get_string(string.format("car%d",carid))) if not (carinfo and carinfo.pis and carinfo.lanterns) then return end table.insert(carinfo.pis,{pos=pos}) table.insert(carinfo.lanterns,{pos=pos,landing=landing}) - celevator.storage:set_string(string.format("car%d",carid),minetest.serialize(carinfo)) - local meta = minetest.get_meta(pos) + celevator.storage:set_string(string.format("car%d",carid),core.serialize(carinfo)) + local meta = core.get_meta(pos) meta:set_int("carid",carid) meta:set_string("formspec","") celevator.pi.settext(pos,carinfo.pitext) @@ -406,26 +406,26 @@ for _,state in ipairs(validstates) do end, on_destruct = function(pos) celevator.pi.removeentity(pos) - local meta = minetest.get_meta(pos) + local meta = core.get_meta(pos) local carid = meta:get_int("carid") if carid == 0 then return end - local carinfo = minetest.deserialize(celevator.storage:get_string(string.format("car%d",carid))) + local carinfo = core.deserialize(celevator.storage:get_string(string.format("car%d",carid))) if not (carinfo and carinfo.pis and carinfo.lanterns) then return end for i,pi in pairs(carinfo.pis) do if vector.equals(pos,pi.pos) then table.remove(carinfo.pis,i) - celevator.storage:set_string(string.format("car%d",carid),minetest.serialize(carinfo)) + celevator.storage:set_string(string.format("car%d",carid),core.serialize(carinfo)) end end for i,lantern in pairs(carinfo.lanterns) do if vector.equals(pos,lantern.pos) then table.remove(carinfo.lanterns,i) - celevator.storage:set_string(string.format("car%d",carid),minetest.serialize(carinfo)) + celevator.storage:set_string(string.format("car%d",carid),core.serialize(carinfo)) end end end, on_construct = function(pos) - local meta = minetest.get_meta(pos) + local meta = core.get_meta(pos) meta:set_string("text","--") celevator.pi.updatedisplay(pos) end, @@ -436,7 +436,7 @@ for _,state in ipairs(validstates) do if state[3] then nname = nname.."_downon" end idle = not (state[2] or state[3]) description = string.format("Elevator %s Lantern%s",state[4],(idle and "" or " (on state, you hacker you!)")) - minetest.register_node(nname,{ + core.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 = { @@ -458,32 +458,32 @@ for _,state in ipairs(validstates) do makelanterntex(state[1],state[2],state[3]) }, after_place_node = function(pos) - local meta = minetest.get_meta(pos) + local meta = core.get_meta(pos) meta:set_string("formspec","formspec_version[7]size[8,5]field[0.5,0.5;7,1;carid;Car ID;]field[0.5,2;7,1;landing;Landing Number;]button[3,3.5;2,1;save;Save]") end, on_receive_fields = function(pos,_,fields) if tonumber(fields.carid) and tonumber(fields.landing) then local carid = tonumber(fields.carid) local landing = tonumber(fields.landing) - local carinfo = minetest.deserialize(celevator.storage:get_string(string.format("car%d",carid))) + local carinfo = core.deserialize(celevator.storage:get_string(string.format("car%d",carid))) if not (carinfo and carinfo.lanterns) then return end table.insert(carinfo.lanterns,{pos=pos,landing=landing}) - celevator.storage:set_string(string.format("car%d",carid),minetest.serialize(carinfo)) - local meta = minetest.get_meta(pos) + celevator.storage:set_string(string.format("car%d",carid),core.serialize(carinfo)) + local meta = core.get_meta(pos) meta:set_int("carid",carid) meta:set_string("formspec","") end end, on_destruct = function(pos) - local meta = minetest.get_meta(pos) + local meta = core.get_meta(pos) local carid = meta:get_int("carid") if carid == 0 then return end - local carinfo = minetest.deserialize(celevator.storage:get_string(string.format("car%d",carid))) + local carinfo = core.deserialize(celevator.storage:get_string(string.format("car%d",carid))) if not (carinfo and carinfo.lanterns) then return end for i,lantern in pairs(carinfo.lanterns) do if vector.equals(pos,lantern.pos) then table.remove(carinfo.lanterns,i) - celevator.storage:set_string(string.format("car%d",carid),minetest.serialize(carinfo)) + celevator.storage:set_string(string.format("car%d",carid),core.serialize(carinfo)) end end end, @@ -503,7 +503,7 @@ for _,state in ipairs(validstates) do if state[2] then nname = nname.."_upon" end if state[3] then nname = nname.."_downon" end description = string.format("Elevator %s Lantern (vertical)%s",state[4],(idle and "" or " (on state, you hacker you!)")) - minetest.register_node(nname,{ + core.register_node(nname,{ description = description, inventory_image = string.format("[combine:40x40:10,0=celevator_lantern_vertical_background_%s.png",(state[1] == "both" and "updown" or state[1])), groups = { @@ -526,32 +526,32 @@ for _,state in ipairs(validstates) do makeverticallanterntex(state[1],state[2],state[3]) }, after_place_node = function(pos) - local meta = minetest.get_meta(pos) + local meta = core.get_meta(pos) meta:set_string("formspec","formspec_version[7]size[8,5]field[0.5,0.5;7,1;carid;Car ID;]field[0.5,2;7,1;landing;Landing Number;]button[3,3.5;2,1;save;Save]") end, on_receive_fields = function(pos,_,fields) if tonumber(fields.carid) and tonumber(fields.landing) then local carid = tonumber(fields.carid) local landing = tonumber(fields.landing) - local carinfo = minetest.deserialize(celevator.storage:get_string(string.format("car%d",carid))) + local carinfo = core.deserialize(celevator.storage:get_string(string.format("car%d",carid))) if not (carinfo and carinfo.lanterns) then return end table.insert(carinfo.lanterns,{pos=pos,landing=landing}) - celevator.storage:set_string(string.format("car%d",carid),minetest.serialize(carinfo)) - local meta = minetest.get_meta(pos) + celevator.storage:set_string(string.format("car%d",carid),core.serialize(carinfo)) + local meta = core.get_meta(pos) meta:set_int("carid",carid) meta:set_string("formspec","") end end, on_destruct = function(pos) - local meta = minetest.get_meta(pos) + local meta = core.get_meta(pos) local carid = meta:get_int("carid") if carid == 0 then return end - local carinfo = minetest.deserialize(celevator.storage:get_string(string.format("car%d",carid))) + local carinfo = core.deserialize(celevator.storage:get_string(string.format("car%d",carid))) if not (carinfo and carinfo.lanterns) then return end for i,lantern in pairs(carinfo.lanterns) do if vector.equals(pos,lantern.pos) then table.remove(carinfo.lanterns,i) - celevator.storage:set_string(string.format("car%d",carid),minetest.serialize(carinfo)) + celevator.storage:set_string(string.format("car%d",carid),core.serialize(carinfo)) end end end, @@ -568,29 +568,29 @@ for _,state in ipairs(validstates) do }) end -minetest.register_abm({ +core.register_abm({ label = "Respawn / Flash PI displays", nodenames = {"group:_celevator_pi"}, interval = 1, chance = 1, action = function(pos) - local meta = minetest.get_meta(pos) + local meta = core.get_meta(pos) local flashtimer = meta:get_int("flashtimer") > 0 meta:set_int("flashtimer",flashtimer and 0 or 1) celevator.pi.updatedisplay(pos) end, }) -minetest.register_abm({ +core.register_abm({ label = "Check PIs/lanterns for missing/replaced controllers", nodenames = {"group:_celevator_pi","group:_celevator_lantern"}, interval = 15, chance = 1, action = function(pos) - local meta = minetest.get_meta(pos) + local meta = core.get_meta(pos) local carid = meta:get_int("carid") if not (carid and carid > 0) then return end --Not set up yet - local carinfo = minetest.deserialize(celevator.storage:get_string("car"..carid)) + local carinfo = core.deserialize(celevator.storage:get_string("car"..carid)) if not carinfo then celevator.pi.settext(pos," --") meta:set_string("infotext","Error reading car information!\nPlease remove and replace this node.") |
