summaryrefslogtreecommitdiff
path: root/controller.lua
diff options
context:
space:
mode:
Diffstat (limited to 'controller.lua')
-rw-r--r--controller.lua162
1 files changed, 81 insertions, 81 deletions
diff --git a/controller.lua b/controller.lua
index 2921f81..d8fb873 100644
--- a/controller.lua
+++ b/controller.lua
@@ -1,20 +1,20 @@
celevator.controller = {}
-celevator.controller.iqueue = minetest.deserialize(celevator.storage:get_string("controller_iqueue")) or {}
+celevator.controller.iqueue = core.deserialize(celevator.storage:get_string("controller_iqueue")) or {}
-celevator.controller.equeue = minetest.deserialize(celevator.storage:get_string("controller_equeue")) or {}
+celevator.controller.equeue = core.deserialize(celevator.storage:get_string("controller_equeue")) or {}
celevator.controller.running = {}
-local fw,err = loadfile(minetest.get_modpath("celevator")..DIR_DELIM.."controllerfw.lua")
+local fw,err = loadfile(core.get_modpath("celevator")..DIR_DELIM.."controllerfw.lua")
if not fw then error(err) end
-minetest.register_chatcommand("celevator_reloadcontroller",{
+core.register_chatcommand("celevator_reloadcontroller",{
params = "",
description = "Reload celevator controller firmware from disk",
privs = {server = true},
func = function()
- local newfw,loaderr = loadfile(minetest.get_modpath("celevator")..DIR_DELIM.."controllerfw.lua")
+ local newfw,loaderr = loadfile(core.get_modpath("celevator")..DIR_DELIM.."controllerfw.lua")
if newfw then
fw = newfw
return true,"Firmware reloaded successfully"
@@ -25,32 +25,32 @@ minetest.register_chatcommand("celevator_reloadcontroller",{
})
local function after_place(pos,placer)
- local node = minetest.get_node(pos)
+ local node = core.get_node(pos)
local toppos = {x=pos.x,y=pos.y + 1,z=pos.z}
- local topnode = minetest.get_node(toppos)
+ local topnode = core.get_node(toppos)
local placername = placer:get_player_name()
if topnode.name ~= "air" then
if placer:is_player() then
- minetest.chat_send_player(placername,"Can't place cabinet - no room for the top half!")
+ core.chat_send_player(placername,"Can't place cabinet - no room for the top half!")
end
- minetest.set_node(pos,{name="air"})
+ core.set_node(pos,{name="air"})
return true
end
- if minetest.is_protected(toppos,placername) and not minetest.check_player_privs(placername,{protection_bypass=true}) then
+ if core.is_protected(toppos,placername) and not core.check_player_privs(placername,{protection_bypass=true}) then
if placer:is_player() then
- minetest.chat_send_player(placername,"Can't place cabinet - top half is protected!")
- minetest.record_protection_violation(toppos,placername)
+ core.chat_send_player(placername,"Can't place cabinet - top half is protected!")
+ core.record_protection_violation(toppos,placername)
end
- minetest.set_node(pos,{name="air"})
+ core.set_node(pos,{name="air"})
return true
end
node.name = "celevator:controller_top"
- minetest.set_node(toppos,node)
+ core.set_node(toppos,node)
end
local function ondestruct(pos)
pos.y = pos.y + 1
- local topnode = minetest.get_node(pos)
+ local topnode = core.get_node(pos)
local controllertops = {
["celevator:controller_top"] = true,
["celevator:controller_top_running"] = true,
@@ -58,26 +58,26 @@ local function ondestruct(pos)
["celevator:controller_top_open_running"] = true,
}
if controllertops[topnode.name] then
- minetest.set_node(pos,{name="air"})
+ core.set_node(pos,{name="air"})
end
- celevator.controller.equeue[minetest.hash_node_position(pos)] = nil
- celevator.storage:set_string("controller_equeue",minetest.serialize(celevator.controller.equeue))
- local carid = minetest.get_meta(pos):get_int("carid")
+ celevator.controller.equeue[core.hash_node_position(pos)] = nil
+ celevator.storage:set_string("controller_equeue",core.serialize(celevator.controller.equeue))
+ local carid = core.get_meta(pos):get_int("carid")
if carid ~= 0 then celevator.storage:set_string(string.format("car%d",carid),"") end
end
local function onrotate(controllerpos,node,user,mode,new_param2)
- if not minetest.global_exists("screwdriver") then
+ if not core.global_exists("screwdriver") then
return false
end
local ret = screwdriver.rotate_simple(controllerpos,node,user,mode,new_param2)
- minetest.after(0,function(pos)
- local newnode = minetest.get_node(pos)
+ core.after(0,function(pos)
+ local newnode = core.get_node(pos)
local param2 = newnode.param2
pos.y = pos.y + 1
- local topnode = minetest.get_node(pos)
+ local topnode = core.get_node(pos)
topnode.param2 = param2
- minetest.set_node(pos,topnode)
+ core.set_node(pos,topnode)
end,controllerpos)
return ret
end
@@ -99,20 +99,20 @@ local function controllerleds(pos,running)
}
if node.name == "celevator:controller_top_open" and running then
node.name = "celevator:controller_top_open_running"
- minetest.swap_node(toppos,node)
- minetest.sound_play("celevator_controller_start",sparams,true)
+ core.swap_node(toppos,node)
+ core.sound_play("celevator_controller_start",sparams,true)
elseif node.name == "celevator:controller_top" and running then
node.name = "celevator:controller_top_running"
- minetest.swap_node(toppos,node)
- minetest.sound_play("celevator_controller_start",sparams,true)
+ core.swap_node(toppos,node)
+ core.sound_play("celevator_controller_start",sparams,true)
elseif node.name == "celevator:controller_top_open_running" and not running then
node.name = "celevator:controller_top_open"
- minetest.swap_node(toppos,node)
- minetest.sound_play("celevator_controller_stop",sparams,true)
+ core.swap_node(toppos,node)
+ core.sound_play("celevator_controller_stop",sparams,true)
elseif node.name == "celevator:controller_top_running" and not running then
node.name = "celevator:controller_top"
- minetest.swap_node(toppos,node)
- minetest.sound_play("celevator_controller_stop",sparams,true)
+ core.swap_node(toppos,node)
+ core.sound_play("celevator_controller_stop",sparams,true)
end
end
@@ -121,12 +121,12 @@ local function candig(_,player)
if controls.sneak then
return true
else
- minetest.chat_send_player(player:get_player_name(),"Hold the sneak button while digging to remove.")
+ core.chat_send_player(player:get_player_name(),"Hold the sneak button while digging to remove.")
return false
end
end
-minetest.register_node("celevator:controller",{
+core.register_node("celevator:controller",{
description = "Elevator Controller",
groups = {
cracky = 1,
@@ -160,15 +160,15 @@ minetest.register_node("celevator:controller",{
on_receive_fields = handlefields,
can_dig = candig,
on_construct = function(pos)
- local meta = minetest.get_meta(pos)
- meta:set_string("mem",minetest.serialize({}))
+ local meta = core.get_meta(pos)
+ meta:set_string("mem",core.serialize({}))
meta:mark_as_private("mem")
local event = {}
event.type = "program"
local carid = celevator.storage:get_int("maxcarid")+1
meta:set_int("carid",carid)
celevator.storage:set_int("maxcarid",carid)
- celevator.storage:set_string(string.format("car%d",carid),minetest.serialize({controllerpos=pos,pis={},lanterns={},callbuttons={},fs1switches={}}))
+ celevator.storage:set_string(string.format("car%d",carid),core.serialize({controllerpos=pos,pis={},lanterns={},callbuttons={},fs1switches={}}))
celevator.controller.run(pos,event)
end,
on_punch = function(pos,node,puncher)
@@ -176,24 +176,24 @@ minetest.register_node("celevator:controller",{
return
end
local name = puncher:get_player_name()
- if minetest.is_protected(pos,name) and not minetest.check_player_privs(name,{protection_bypass=true}) then
- minetest.chat_send_player(name,"Can't open cabinet - cabinet is locked.")
- minetest.record_protection_violation(pos,name)
+ if core.is_protected(pos,name) and not core.check_player_privs(name,{protection_bypass=true}) then
+ core.chat_send_player(name,"Can't open cabinet - cabinet is locked.")
+ core.record_protection_violation(pos,name)
return
end
node.name = "celevator:controller_open"
- minetest.swap_node(pos,node)
- local meta = minetest.get_meta(pos)
+ core.swap_node(pos,node)
+ local meta = core.get_meta(pos)
meta:set_string("formspec",meta:get_string("formspec_hidden"))
pos.y = pos.y + 1
- node = minetest.get_node(pos)
+ node = core.get_node(pos)
if node.name == "celevator:controller_top_running" then
node.name = "celevator:controller_top_open_running"
else
node.name = "celevator:controller_top_open"
end
- minetest.swap_node(pos,node)
- minetest.sound_play("celevator_cabinet_open",{
+ core.swap_node(pos,node)
+ core.sound_play("celevator_cabinet_open",{
pos = pos,
gain = 0.5,
max_hear_distance = 10
@@ -201,7 +201,7 @@ minetest.register_node("celevator:controller",{
end,
})
-minetest.register_node("celevator:controller_open",{
+core.register_node("celevator:controller_open",{
description = "Controller (door open - you hacker you!)",
groups = {
cracky = 1,
@@ -243,18 +243,18 @@ minetest.register_node("celevator:controller_open",{
return
end
node.name = "celevator:controller"
- minetest.swap_node(pos,node)
- local meta = minetest.get_meta(pos)
+ core.swap_node(pos,node)
+ local meta = core.get_meta(pos)
meta:set_string("formspec","")
pos.y = pos.y + 1
- node = minetest.get_node(pos)
+ node = core.get_node(pos)
if node.name == "celevator:controller_top_open_running" then
node.name = "celevator:controller_top_running"
else
node.name = "celevator:controller_top"
end
- minetest.swap_node(pos,node)
- minetest.sound_play("celevator_cabinet_close",{
+ core.swap_node(pos,node)
+ core.sound_play("celevator_cabinet_close",{
pos = pos,
gain = 0.5,
max_hear_distance = 10
@@ -262,7 +262,7 @@ minetest.register_node("celevator:controller_open",{
end,
})
-minetest.register_node("celevator:controller_top",{
+core.register_node("celevator:controller_top",{
description = "Controller (top section - you hacker you!)",
groups = {
not_in_creative_inventory = 1,
@@ -293,7 +293,7 @@ minetest.register_node("celevator:controller_top",{
},
})
-minetest.register_node("celevator:controller_top_running",{
+core.register_node("celevator:controller_top_running",{
description = "Controller (top section, car in motion - you hacker you!)",
groups = {
not_in_creative_inventory = 1,
@@ -324,7 +324,7 @@ minetest.register_node("celevator:controller_top_running",{
},
})
-minetest.register_node("celevator:controller_top_open",{
+core.register_node("celevator:controller_top_open",{
description = "Controller (top section, open - you hacker you!)",
groups = {
not_in_creative_inventory = 1,
@@ -360,7 +360,7 @@ minetest.register_node("celevator:controller_top_open",{
},
})
-minetest.register_node("celevator:controller_top_open_running",{
+core.register_node("celevator:controller_top_open_running",{
description = "Controller (top section, open, car in motion - you hacker you!)",
groups = {
not_in_creative_inventory = 1,
@@ -403,24 +403,24 @@ end
function celevator.controller.finddrive(pos)
local node = celevator.get_node(pos)
- local dir = minetest.facedir_to_dir(node.param2)
+ local dir = core.facedir_to_dir(node.param2)
local drivepos = vector.add(pos,vector.new(0,1,0))
drivepos = vector.add(drivepos,vector.rotate_around_axis(dir,vector.new(0,-1,0),math.pi/2))
drivepos = vector.round(drivepos)
local drivename = celevator.get_node(drivepos).name
- return drivepos,minetest.registered_nodes[drivename]._celevator_drive_type
+ return drivepos,core.registered_nodes[drivename]._celevator_drive_type
end
function celevator.controller.finish(pos,mem,changedinterrupts)
if not celevator.controller.iscontroller(pos) then
return
else
- local meta = minetest.get_meta(pos)
+ local meta = core.get_meta(pos)
local carid = meta:get_int("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)))
local carinfodirty = false
if not carinfo then
- minetest.log("error","[celevator] [controller] Bad car info for controller at "..minetest.pos_to_string(pos))
+ core.log("error","[celevator] [controller] Bad car info for controller at "..core.pos_to_string(pos))
return
end
local drivepos,drivetype = celevator.controller.finddrive(pos)
@@ -435,7 +435,7 @@ function celevator.controller.finish(pos,mem,changedinterrupts)
elseif command.command == "estop" then
celevator.drives[drivetype].estop(drivepos)
elseif command.command == "open" then
- minetest.after(0.25,celevator.drives[drivetype].movedoors,drivepos,"open")
+ core.after(0.25,celevator.drives[drivetype].movedoors,drivepos,"open")
elseif command.command == "close" then
celevator.drives[drivetype].movedoors(drivepos,"close",command.nudge)
elseif command.command == "resetfault" then
@@ -449,7 +449,7 @@ function celevator.controller.finish(pos,mem,changedinterrupts)
end
end
local node = celevator.get_node(pos)
- local oldmem = minetest.deserialize(meta:get_string("mem")) or {}
+ local oldmem = core.deserialize(meta:get_string("mem")) or {}
local oldupbuttonlights = oldmem.upcalls or {}
local olddownbuttonlights = oldmem.dncalls or {}
local newupbuttonlights = mem.upcalls or {}
@@ -542,10 +542,10 @@ function celevator.controller.finish(pos,mem,changedinterrupts)
meta:set_string("copformspec",mem.copformspec)
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)
+ core.after(0.25,celevator.drives[drivetype].updatecopformspec,drivepos)
end
for _,message in ipairs(mem.messages) do
- local destinfo = minetest.deserialize(celevator.storage:get_string(string.format("car%d",message.carid)))
+ local destinfo = core.deserialize(celevator.storage:get_string(string.format("car%d",message.carid)))
if destinfo and destinfo.dispatcherpos then
celevator.dispatcher.run(destinfo.dispatcherpos,{
type = "controllermsg",
@@ -555,26 +555,26 @@ function celevator.controller.finish(pos,mem,changedinterrupts)
})
end
end
- meta:set_string("mem",minetest.serialize(mem))
+ meta:set_string("mem",core.serialize(mem))
if node.name == "celevator:controller_open" then meta:set_string("formspec",mem.formspec or "") end
meta:set_string("formspec_hidden",mem.formspec or "")
meta:set_string("infotext",mem.infotext or "")
- local hash = minetest.hash_node_position(pos)
+ local hash = core.hash_node_position(pos)
if not celevator.controller.iqueue[hash] then celevator.controller.iqueue[hash] = mem.interrupts end
for iid in pairs(changedinterrupts) do
celevator.controller.iqueue[hash][iid] = mem.interrupts[iid]
end
- celevator.storage:set_string("controller_iqueue",minetest.serialize(celevator.controller.iqueue))
+ celevator.storage:set_string("controller_iqueue",core.serialize(celevator.controller.iqueue))
controllerleds(pos,mem.showrunning)
celevator.controller.running[hash] = nil
if #celevator.controller.equeue[hash] > 0 then
local event = celevator.controller.equeue[hash][1]
table.remove(celevator.controller.equeue[hash],1)
- celevator.storage:set_string("controller_equeue",minetest.serialize(celevator.controller.equeue))
+ celevator.storage:set_string("controller_equeue",core.serialize(celevator.controller.equeue))
celevator.controller.run(pos,event)
end
if carinfodirty then
- 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
@@ -583,25 +583,25 @@ function celevator.controller.run(pos,event)
if not celevator.controller.iscontroller(pos) then
return
else
- local hash = minetest.hash_node_position(pos)
+ local hash = core.hash_node_position(pos)
if not celevator.controller.equeue[hash] then
celevator.controller.equeue[hash] = {}
- celevator.storage:set_string("controller_equeue",minetest.serialize(celevator.controller.equeue))
+ celevator.storage:set_string("controller_equeue",core.serialize(celevator.controller.equeue))
end
if celevator.controller.running[hash] then
table.insert(celevator.controller.equeue[hash],event)
- celevator.storage:set_string("controller_equeue",minetest.serialize(celevator.controller.equeue))
+ celevator.storage:set_string("controller_equeue",core.serialize(celevator.controller.equeue))
if #celevator.controller.equeue[hash] > 5 then
local message = "[celevator] [controller] Async process for controller at %s is falling behind, %d events in queue"
- minetest.log("warning",string.format(message,minetest.pos_to_string(pos),#celevator.controller.equeue[hash]))
+ core.log("warning",string.format(message,core.pos_to_string(pos),#celevator.controller.equeue[hash]))
end
return
end
celevator.controller.running[hash] = true
- local meta = minetest.get_meta(pos)
- local mem = minetest.deserialize(meta:get_string("mem"))
+ local meta = core.get_meta(pos)
+ local mem = core.deserialize(meta:get_string("mem"))
if not mem then
- minetest.log("error","[celevator] [controller] Failed to load controller memory at "..minetest.pos_to_string(pos))
+ core.log("error","[celevator] [controller] Failed to load controller memory at "..core.pos_to_string(pos))
return
end
mem.drive = {}
@@ -611,9 +611,9 @@ function celevator.controller.run(pos,event)
mem.drive.type = drivetype
mem.drive.status = celevator.drives[drivetype].getstatus(drivepos)
end
- mem.interrupts = celevator.controller.iqueue[minetest.hash_node_position(pos)] or {}
+ mem.interrupts = celevator.controller.iqueue[core.hash_node_position(pos)] or {}
mem.carid = meta:get_int("carid")
- minetest.handle_async(fw,celevator.controller.finish,pos,event,mem)
+ core.handle_async(fw,celevator.controller.finish,pos,event,mem)
end
end
@@ -644,7 +644,7 @@ end
function celevator.controller.checkiqueue(dtime)
for hash,iqueue in pairs(celevator.controller.iqueue) do
- local pos = minetest.get_position_from_hash(hash)
+ local pos = core.get_position_from_hash(hash)
local noneleft = true
for iid,time in pairs(iqueue) do
noneleft = false
@@ -659,9 +659,9 @@ function celevator.controller.checkiqueue(dtime)
end
if noneleft then
celevator.controller.iqueue[hash] = nil
- celevator.storage:set_string("controller_iqueue",minetest.serialize(celevator.controller.iqueue))
+ celevator.storage:set_string("controller_iqueue",core.serialize(celevator.controller.iqueue))
end
end
end
-minetest.register_globalstep(celevator.controller.checkiqueue)
+core.register_globalstep(celevator.controller.checkiqueue)