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(-) (limited to 'init.lua') 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 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'init.lua') 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() -- 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(-) (limited to 'init.lua') 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