From 0f7810e53895f5742ab577559584539e6533a0dc Mon Sep 17 00:00:00 2001
From: auouymous <5005204+auouymous@users.noreply.github.com>
Date: Sat, 06 Feb 2021 12:41:09 +0100
Subject: [PATCH] Public/private mode for self-contained injector (#567)

---
 technic/machines/other/injector.lua |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/technic/machines/other/injector.lua b/technic/machines/other/injector.lua
index c192614..6bd5a83 100644
--- a/technic/machines/other/injector.lua
+++ b/technic/machines/other/injector.lua
@@ -40,7 +40,7 @@
 				end
 			end
 		end
-		
+
 end
 
 minetest.register_craft({
@@ -61,6 +61,9 @@
 		(is_stack and
 			"button[0,1;2,1;mode_item;"..S("Stackwise").."]" or
 			"button[0,1;2,1;mode_stack;"..S("Itemwise").."]")..
+		(meta:get_int("public") == 1 and
+			"button[2,1;2,1;mode_private;"..S("Public").."]" or
+			"button[2,1;2,1;mode_public;"..S("Private").."]")..
 		"list[current_name;main;0,2;8,2;]"..
 		"list[current_player;main;0,5;8,4;]"..
 		"listring[]"..
@@ -117,10 +120,15 @@
 		return inv:is_empty("main")
 	end,
 	on_receive_fields = function(pos, formanme, fields, sender)
+		if minetest.is_protected(pos, sender:get_player_name()) then return end
+
 		local meta = minetest.get_meta(pos)
 		if fields.mode_item then meta:set_string("mode", "single items") end
 		if fields.mode_stack then meta:set_string("mode", "whole stacks") end
 
+		if fields.mode_private then meta:set_int("public", 0) end
+		if fields.mode_public then meta:set_int("public", 1) end
+
 		if fields["fs_helpers_cycling:0:splitstacks"]
 		  or fields["fs_helpers_cycling:1:splitstacks"] then
 			if not pipeworks.may_configure(pos, sender) then return end

--
Gitblit v1.8.0