From 54ddb29a0431d9bb09e3480b2bd471b10b91733d Mon Sep 17 00:00:00 2001 From: CloudyProton <34248863+CloudyProton@users.noreply.github.com> Date: Mon, 21 May 2018 10:27:40 -0400 Subject: Do not show floor set label option to non-owners Change elevator formspec to hide set label option of elevators which are protected from players who do not own them. This avoids confusing players. Unprotected elevators are properly unaffected and forms with culled label option are shrunk in height by 1.6 units respectively. --- init.lua | 43 ++++++++++++++++++++++++++++++++----------- 1 file changed, 32 insertions(+), 11 deletions(-) diff --git a/init.lua b/init.lua index a02f8ad..0c039d2 100644 --- a/init.lua +++ b/init.lua @@ -481,29 +481,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, -- cgit v1.2.3 From fd374c37d23df92838cd25f0a2b2a5cc56da485c Mon Sep 17 00:00:00 2001 From: Beha Date: Tue, 25 Sep 2018 11:24:03 -0400 Subject: Fix saving, add mod.conf. Closes #7. --- init.lua | 13 +++++++++++-- mod.conf | 3 +++ 2 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 mod.conf diff --git a/init.lua b/init.lua index 0c039d2..450d767 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("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() 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 -- cgit v1.2.3 From 52b78a67f0db3e7941aceec9351cc82edbd2fa8f Mon Sep 17 00:00:00 2001 From: Beha Date: Thu, 27 Sep 2018 09:25:17 -0400 Subject: Add screenshot. --- screenshot.png | Bin 0 -> 98660 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 screenshot.png diff --git a/screenshot.png b/screenshot.png new file mode 100644 index 0000000..9a3c9bc Binary files /dev/null and b/screenshot.png differ -- cgit v1.2.3 From ffedde3bd611a8f29398f9db71b198be5b23c4dc Mon Sep 17 00:00:00 2001 From: Beha Date: Thu, 27 Sep 2018 09:58:05 -0400 Subject: Compat. --- init.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init.lua b/init.lua index 450d767..84ea482 100644 --- a/init.lua +++ b/init.lua @@ -23,7 +23,7 @@ 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("data") then + 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 -- cgit v1.2.3