From 4775d98fb7e12f7210cf778351767828e551011d Mon Sep 17 00:00:00 2001 From: SmallJoker <mk939@ymail.com> Date: Thu, 20 Oct 2022 20:08:56 +0200 Subject: [PATCH] Unify and simplify LED/Lamp node definition --- technic_chests/register.lua | 18 ++++++++++++++---- 1 files changed, 14 insertions(+), 4 deletions(-) diff --git a/technic_chests/register.lua b/technic_chests/register.lua index 0d5150e..f23888d 100644 --- a/technic_chests/register.lua +++ b/technic_chests/register.lua @@ -1,7 +1,7 @@ local S = rawget(_G, "intllib") and intllib.Getter() or function(s) return s end local pipeworks = rawget(_G, "pipeworks") -local fs_helpers = rawget(_G, "fs_helpers") +local fs_helpers local tubelib_exists = minetest.global_exists("tubelib") local allow_label = "" @@ -84,7 +84,6 @@ local function set_formspec(pos, data, page) local meta = minetest.get_meta(pos) - local node = minetest.get_node(pos) local formspec = data.base_formspec formspec = formspec..fs_helpers.cycling_button( meta, @@ -98,7 +97,8 @@ if data.autosort then local status = meta:get_int("autosort") - formspec = formspec.."button["..(data.hileft+2)..","..(data.height+1.1)..";3,0.8;autosort_to_"..(1-status)..";"..S("Auto-sort is %s"):format(status == 1 and S("On") or S("Off")).."]" + formspec = formspec.."button["..(data.hileft+2)..","..(data.height+1.1)..";3,0.8;autosort_to_"..(1-status)..";".. + S("Auto-sort is %s"):format(status == 1 and S("On") or S("Off")).."]" end if data.infotext then local formspec_infotext = minetest.formspec_escape(meta:get_string("infotext")) @@ -159,6 +159,16 @@ return function(pos, formname, fields, sender) local meta = minetest.get_meta(pos) local page = "main" + + local owner = meta:get_string("owner") + if owner ~= "" then + -- prevent modification of locked chests + if owner ~= sender:get_player_name() then return end + elseif not fields.quit then + -- prevent modification of protected chests + if minetest.is_protected(pos, sender:get_player_name()) then return end + end + if fields.sort or (data.autosort and fields.quit and meta:get_int("autosort") == 1) then sort_inventory(meta:get_inventory()) end @@ -212,7 +222,6 @@ data.lotop = data.height + 2 data.ovheight = data.lotop + 4 - local locked_after_place = nil local front = {"technic_"..lname.."_chest_front.png"} data.base_formspec = "size["..data.ovwidth..","..data.ovheight.."]".. "label[0,0;"..S("%s Chest"):format(name).."]".. @@ -230,6 +239,7 @@ data.base_formspec = data.base_formspec..get_color_buttons(data.coleft, data.lotop) end + local locked_after_place if data.locked then locked_after_place = function(pos, placer) local meta = minetest.get_meta(pos) -- Gitblit v1.8.0