summaryrefslogtreecommitdiff
path: root/pilantern.lua
diff options
context:
space:
mode:
Diffstat (limited to 'pilantern.lua')
-rw-r--r--pilantern.lua150
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.")