diff options
Diffstat (limited to 'controller.lua')
| -rw-r--r-- | controller.lua | 162 |
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) |
