aboutsummaryrefslogtreecommitdiff
path: root/init.lua
diff options
context:
space:
mode:
Diffstat (limited to 'init.lua')
-rw-r--r--init.lua56
1 files changed, 43 insertions, 13 deletions
diff --git a/init.lua b/init.lua
index a02f8ad..84ea482 100644
--- a/init.lua
+++ b/init.lua
@@ -18,9 +18,15 @@ local elevator = {
motors = {},
}
+local str = minetest.get_mod_storage and minetest.get_mod_storage()
+
local elevator_file = minetest.get_worldpath() .. "/elevator"
local function load_elevator()
+ if str and ((str.contains and str:contains("data")) or (str:get_string("data") and str:get_string("data") ~= "")) then
+ elevator = minetest.deserialize(str:get_string("data"))
+ return
+ end
local file = io.open(elevator_file)
if file then
elevator = minetest.deserialize(file:read("*all")) or {}
@@ -29,10 +35,13 @@ local function load_elevator()
end
local function save_elevator()
- local f = io.open(elevator_file .. ".tmp", "w")
+ if str then
+ str:set_string("data", minetest.serialize(elevator))
+ return
+ end
+ local f = io.open(elevator_file, "w")
f:write(minetest.serialize(elevator))
f:close()
- os.rename(elevator_file .. ".tmp", elevator_file)
end
load_elevator()
@@ -481,29 +490,50 @@ for _,mode in ipairs({"on", "off"}) do
end
formspecs[sender:get_player_name()] = {pos, tpnames}
if #tpnames > 0 then
- formspec = "size[4,6]"
- .."label[0,0;Click once to travel.]"
- .."textlist[-0.1,0.5;4,4;target;"..table.concat(tpnames_l, ",").."]"
- .."field[0.25,5.25;4,0;label;;"..minetest.formspec_escape(meta:get_string("label")).."]"
- .."button_exit[-0.05,5.5;4,1;setlabel;Set label]"
+ if not minetest.is_protected(pos, sender:get_player_name()) then
+ formspec = "size[4,6]"
+ .."label[0,0;Click once to travel.]"
+ .."textlist[-0.1,0.5;4,4;target;"..table.concat(tpnames_l, ",").."]"
+ .."field[0.25,5.25;4,0;label;;"..minetest.formspec_escape(meta:get_string("label")).."]"
+ .."button_exit[-0.05,5.5;4,1;setlabel;Set label]"
+ else
+ formspec = "size[4,4.4]"
+ .."label[0,0;Click once to travel.]"
+ .."textlist[-0.1,0.5;4,4;target;"..table.concat(tpnames_l, ",").."]"
+ end
else
- formspec = "size[4,2]"
- .."label[0,0;No targets available.]"
- .."field[0.25,1.25;4,0;label;;"..minetest.formspec_escape(meta:get_string("label")).."]"
- .."button_exit[-0.05,1.5;4,1;setlabel;Set label]"
+ if not minetest.is_protected(pos, sender:get_player_name()) then
+ formspec = "size[4,2]"
+ .."label[0,0;No targets available.]"
+ .."field[0.25,1.25;4,0;label;;"..minetest.formspec_escape(meta:get_string("label")).."]"
+ .."button_exit[-0.05,1.5;4,1;setlabel;Set label]"
+ else
+ formspec = "size[4,0.4]"
+ .."label[0,0;No targets available.]"
+ end
end
minetest.show_formspec(sender:get_player_name(), "elevator:elevator", formspec)
elseif not elevator.motors[meta:get_string("motor")] then
- formspec = "size[4,2]"
+ if not minetest.is_protected(pos, sender:get_player_name()) then
+ formspec = "size[4,2]"
.."label[0,0;This elevator is inactive.]"
.."field[0.25,1.25;4,0;label;;"..minetest.formspec_escape(meta:get_string("label")).."]"
.."button_exit[-0.05,1.5;4,1;setlabel;Set label]"
+ else
+ formspec = "size[4,0.4]"
+ .."label[0,0;This elevator is inactive.]"
+ end
minetest.show_formspec(sender:get_player_name(), "elevator:elevator", formspec)
elseif boxes[meta:get_string("motor")] then
- formspec = "size[4,2]"
+ if not minetest.is_protected(pos, sender:get_player_name()) then
+ formspec = "size[4,2]"
.."label[0,0;This elevator is in use.]"
.."field[0.25,1.25;4,0;label;;"..minetest.formspec_escape(meta:get_string("label")).."]"
.."button_exit[-0.05,1.5;4,1;setlabel;Set label]"
+ else
+ formspec = "size[4,0.4]"
+ .."label[0,0;This elevator is in use.]"
+ end
minetest.show_formspec(sender:get_player_name(), "elevator:elevator", formspec)
end
end,