aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabriel Pérez-Cerezo <gabriel@gpcf.eu>2019-01-24 14:22:11 +0100
committerGabriel Pérez-Cerezo <gabriel@gpcf.eu>2019-01-24 14:22:11 +0100
commit9ece7b9b49273e2c28ebfa55bcf91dae05ec4d98 (patch)
tree8cb4a2a4a9f255bd639e0f184b481ae8e0178e6d
parent3a7a592504ae483768289ae458f83d8a24d59da9 (diff)
parentffedde3bd611a8f29398f9db71b198be5b23c4dc (diff)
downloadelevator-9ece7b9b49273e2c28ebfa55bcf91dae05ec4d98.tar.gz
elevator-9ece7b9b49273e2c28ebfa55bcf91dae05ec4d98.tar.bz2
elevator-9ece7b9b49273e2c28ebfa55bcf91dae05ec4d98.zip
Merge branch 'master' of https://github.com/shacknetisp/elevator
-rw-r--r--init.lua56
-rw-r--r--mod.conf3
-rw-r--r--screenshot.pngbin0 -> 98660 bytes
3 files changed, 46 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,
diff --git a/mod.conf b/mod.conf
new file mode 100644
index 0000000..b86b042
--- /dev/null
+++ b/mod.conf
@@ -0,0 +1,3 @@
+name = elevator
+depends = default
+optional_depends = technic, homedecor, chains, farming
diff --git a/screenshot.png b/screenshot.png
new file mode 100644
index 0000000..9a3c9bc
--- /dev/null
+++ b/screenshot.png
Binary files differ