From 9e49bc6167e9ee9900fdd205026c3143687ed33e Mon Sep 17 00:00:00 2001
From: Vanessa Dannenberg <vanessa.e.dannenberg@gmail.com>
Date: Sat, 25 May 2019 04:52:36 -0400
Subject: update homedecor, basic_materials, led_marquee, signs_lib,
 unifieddyes removed the inspector mod

---
 signs_lib/init.lua | 103 ++++++++++++++++++++++++++++++++++++-----------------
 1 file changed, 70 insertions(+), 33 deletions(-)

(limited to 'signs_lib')

diff --git a/signs_lib/init.lua b/signs_lib/init.lua
index 82a0f1b..360bc02 100644
--- a/signs_lib/init.lua
+++ b/signs_lib/init.lua
@@ -41,6 +41,11 @@ local wall_dir_change = {
 }
 
 signs_lib.wallmounted_rotate = function(pos, node, user, mode)
+	if minetest.is_protected(pos, user:get_player_name()) then
+		minetest.record_protection_violation(pos,
+		sender:get_player_name())
+		return false
+	end
 	if mode ~= screwdriver.ROTATE_FACE then return false end 
 	minetest.swap_node(pos, { name = node.name, param2 = wall_dir_change[node.param2 % 6] })
 	signs_lib.update_sign(pos,nil,nil,node)
@@ -48,6 +53,11 @@ signs_lib.wallmounted_rotate = function(pos, node, user, mode)
 end
 
 signs_lib.facedir_rotate = function(pos, node, user, mode)
+	if minetest.is_protected(pos, user:get_player_name()) then
+		minetest.record_protection_violation(pos,
+		sender:get_player_name())
+		return false
+	end
 	if mode ~= screwdriver.ROTATE_FACE then return false end
 	local newparam2 = (node.param2 %8) + 1
 	if newparam2 == 5 then
@@ -61,6 +71,11 @@ signs_lib.facedir_rotate = function(pos, node, user, mode)
 end
 
 signs_lib.facedir_rotate_simple = function(pos, node, user, mode)
+	if minetest.is_protected(pos, user:get_player_name()) then
+		minetest.record_protection_violation(pos,
+		sender:get_player_name())
+		return false
+	end
 	if mode ~= screwdriver.ROTATE_FACE then return false end
 	local newparam2 = (node.param2 %8) + 1
 	if newparam2 > 3 then newparam2 = 0 end
@@ -892,43 +907,65 @@ minetest.register_node(":locked_sign:sign_wall_locked", {
 		return pname == owner or pname == minetest.settings:get("name")
 			or minetest.check_player_privs(pname, {sign_editor=true})
 	end,
-	on_rotate = signs_lib.wallmounted_rotate
+	on_rotate = function(pos, node, user, mode)
+		local meta = minetest.get_meta(pos)
+		local owner = meta:get_string("owner")
+		if owner == user:get_player_name() then
+			signs_lib.wallmounted_rotate(pos, node, user, mode)
+		else
+			return false
+		end
+	end
 })
 
 -- default metal sign, if defined
 
-if minetest.registered_nodes["default:sign_wall_steel"] then
-	minetest.register_node(":"..default_sign_metal, {
-		description = S("Sign"),
-		inventory_image = default_sign_metal_image,
-		wield_image = default_sign_metal_image,
-		node_placement_prediction = "",
-		sunlight_propagates = true,
-		paramtype = "light",
-		paramtype2 = "wallmounted",
-		drawtype = "nodebox",
-		node_box = signs_lib.regular_wall_sign_model.nodebox,
-		tiles = {"signs_wall_sign_metal.png"},
-		groups = sign_groups,
-
-		on_place = function(itemstack, placer, pointed_thing)
-			return signs_lib.determine_sign_type(itemstack, placer, pointed_thing)
-		end,
-		on_construct = function(pos)
-			signs_lib.construct_sign(pos)
-		end,
-		on_destruct = function(pos)
-			signs_lib.destruct_sign(pos)
-		end,
-		on_receive_fields = function(pos, formname, fields, sender)
-			signs_lib.receive_fields(pos, formname, fields, sender)
-		end,
-		on_punch = function(pos, node, puncher)
-			signs_lib.update_sign(pos,nil,nil,node)
-		end,
-		on_rotate = signs_lib.wallmounted_rotate
-	})
-end
+minetest.register_node(":"..default_sign_metal, {
+	description = S("Sign"),
+	inventory_image = default_sign_metal_image,
+	wield_image = default_sign_metal_image,
+	node_placement_prediction = "",
+	sunlight_propagates = true,
+	paramtype = "light",
+	paramtype2 = "wallmounted",
+	drawtype = "nodebox",
+	node_box = signs_lib.regular_wall_sign_model.nodebox,
+	tiles = {"signs_wall_sign_metal.png"},
+	groups = sign_groups,
+
+	on_place = function(itemstack, placer, pointed_thing)
+		return signs_lib.determine_sign_type(itemstack, placer, pointed_thing)
+	end,
+	on_construct = function(pos)
+		signs_lib.construct_sign(pos)
+	end,
+	on_destruct = function(pos)
+		signs_lib.destruct_sign(pos)
+	end,
+	on_receive_fields = function(pos, formname, fields, sender)
+		local meta = minetest.get_meta(pos)
+		local owner = meta:get_string("owner")
+		local pname = sender:get_player_name() or ""
+		if pname ~= owner and pname ~= minetest.settings:get("name")
+		  and not minetest.check_player_privs(pname, {sign_editor=true}) then
+			return
+		end
+		signs_lib.receive_fields(pos, formname, fields, sender, true)
+	end,
+	on_punch = function(pos, node, puncher)
+		signs_lib.update_sign(pos,nil,nil,node)
+	end,
+	on_rotate = function(pos, node, user, mode)
+		local meta = minetest.get_meta(pos)
+		local owner = meta:get_string("owner")
+		if owner == user:get_player_name() then
+			signs_lib.wallmounted_rotate(pos, node, user, mode)
+		else
+			return false
+		end
+	end
+})
+
 
 -- metal, colored signs
 if enable_colored_metal_signs then
-- 
cgit v1.2.3