From bccc2294b6a993e1d10b6c9ede152a7f10c9046a Mon Sep 17 00:00:00 2001
From: h-v-smacker <hans-von-smacker+github@gmail.com>
Date: Tue, 8 May 2018 05:11:52 +0300
Subject: recipe adjustment

---
 technic/machines/register/alloy_recipes.lua | 3 ++-
 technic/tools/planter.lua                   | 4 +++-
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/technic/machines/register/alloy_recipes.lua b/technic/machines/register/alloy_recipes.lua
index 633e878..0d40b77 100644
--- a/technic/machines/register/alloy_recipes.lua
+++ b/technic/machines/register/alloy_recipes.lua
@@ -50,8 +50,9 @@ if minetest.get_modpath("bakedclay") then
 	              "green", "cyan", "blue", "magenta", "orange", 
 	              "violet", "brown", "pink", "dark_grey", "dark_green"}
 
+	-- the recipe of the bakedclay mod yields 8 blocks, so we'll do two times better
 	for _,c in ipairs(clay) do
-		table.insert(recipes, {"default:clay 8", "dye:" .. c, "bakedclay:" .. c})
+		table.insert(recipes, {"default:clay 8", "dye:" .. c, "bakedclay:" .. c .. " 16"})
 	end
 	
 end
diff --git a/technic/tools/planter.lua b/technic/tools/planter.lua
index c5a22ba..1aefa7c 100644
--- a/technic/tools/planter.lua
+++ b/technic/tools/planter.lua
@@ -143,8 +143,10 @@ local function work_on_soil(itemstack, user, pointed_thing)
 				ref = nil
 			}
 		end
+		
 
-		if (minetest.registered_items[meta.selected] or {on_place=minetest.item_place}).on_place(ItemStack({name=meta.selected, count=1}), user, work_pos) then
+		local k = (minetest.registered_items[meta.selected] or {on_place=minetest.item_place}).on_place(ItemStack({name=meta.selected, count=1}), user, work_pos)
+		if k then
 			c = c + 1
 		end
 		
-- 
cgit v1.2.3


From b72c312924f5b4f2dd7ccca9c71d0d7c56eed2e1 Mon Sep 17 00:00:00 2001
From: h-v-smacker <hans-von-smacker+github@gmail.com>
Date: Wed, 9 May 2018 00:20:10 +0300
Subject: The return of the sandstone

---
 technic/machines/register/grinder_recipes.lua | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/technic/machines/register/grinder_recipes.lua b/technic/machines/register/grinder_recipes.lua
index b0e5f9e..3726053 100644
--- a/technic/machines/register/grinder_recipes.lua
+++ b/technic/machines/register/grinder_recipes.lua
@@ -60,11 +60,13 @@ end
 -- defuse the sandstone -> 4 sand recipe to avoid infinite sand bugs (also consult the inverse compressor recipe)
 -- this snippet, when executed, also corrupts some dye+wool combinations. A remedial
 -- workaround is included in extractor recipes, since it's where we work with dyes.
-minetest.clear_craft({
-	recipe = {
-		{"default:sandstone"}
-	}
-})
+-- UPD: after due consideration, this recipe removal is rejected altogether. 
+-- The dye workaround, however, stays, just to be safe.
+-- minetest.clear_craft({
+-- 	recipe = {
+-- 		{"default:sandstone"}
+-- 	}
+-- })
 
 if minetest.get_modpath("farming") then
 	table.insert(recipes, {"farming:seed_wheat",   "farming:flour 1"})
-- 
cgit v1.2.3


From b0484272fe934aff2141f3c46b9f22a73336ae64 Mon Sep 17 00:00:00 2001
From: h-v-smacker <hans-von-smacker+github@gmail.com>
Date: Sat, 12 May 2018 15:09:24 +0300
Subject: nodebreaker+trimmer bug fix

---
 technic/tools/lawn_trimmer.lua | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/technic/tools/lawn_trimmer.lua b/technic/tools/lawn_trimmer.lua
index 1be0d52..6ba1427 100644
--- a/technic/tools/lawn_trimmer.lua
+++ b/technic/tools/lawn_trimmer.lua
@@ -65,7 +65,7 @@ end
 
 
 -- Perform the trimming action
-local function trim_the_lawn(itemstack, user)
+local function trim_the_lawn(itemstack, user, pointed_thing)
 	local meta = minetest.deserialize(itemstack:get_metadata())
 	local keys = user:get_player_control()
 	
@@ -79,7 +79,13 @@ local function trim_the_lawn(itemstack, user)
 		return -- no charge for even a single node, aborting
 	end
 	
-	local pos = user:get_pos()
+	local pos
+	if user.get_pos ~= nil then
+		pos = user:get_pos()
+	else
+		-- we are held in a node breaker
+		pos = pointed_thing.under
+	end
 	
 	minetest.sound_play("technic_lawn_trimmer", {
 -- 		to_player = user:get_player_name(),
-- 
cgit v1.2.3


From 8f342ec824b1db32cb884c6304d14352ca22e2cb Mon Sep 17 00:00:00 2001
From: h-v-smacker <hans-von-smacker+github@gmail.com>
Date: Sun, 13 May 2018 07:59:31 +0300
Subject: locked switch

---
 extranodes/depends.txt                             |   1 +
 extranodes/extramesecons.lua                       |  57 +++++++++++++++++++++
 extranodes/init.lua                                |   1 +
 .../textures/mesecons_switch_locked_frame.png      | Bin 0 -> 178 bytes
 4 files changed, 59 insertions(+)
 create mode 100644 extranodes/extramesecons.lua
 create mode 100644 extranodes/textures/mesecons_switch_locked_frame.png

diff --git a/extranodes/depends.txt b/extranodes/depends.txt
index 2ded643..fa27879 100644
--- a/extranodes/depends.txt
+++ b/extranodes/depends.txt
@@ -1,6 +1,7 @@
 default
 technic?
 pipeworks?
+mesecons?
 technic_worldgen
 concrete
 unifieddyes?
diff --git a/extranodes/extramesecons.lua b/extranodes/extramesecons.lua
new file mode 100644
index 0000000..1dd712d
--- /dev/null
+++ b/extranodes/extramesecons.lua
@@ -0,0 +1,57 @@
+local S = rawget(_G, "intllib") and intllib.Getter() or function(s) return s end
+
+if minetest.get_modpath("mesecons") then
+
+	mesecon.register_node("extranodes:mesecon_switch_protected", {
+		paramtype2="facedir",
+		description="Switch (protected)",
+		is_ground_content = false,
+		sounds = default.node_sound_stone_defaults(),
+		after_place_node = function(pos, placer, itemstack, pointed_thing)
+			local meta = minetest:get_meta(pos)
+			meta:set_string("owner", placer:get_player_name() or "")
+		end,
+		on_rightclick = function (pos, node, player)
+			local meta = minetest:get_meta(pos)
+			local owner = meta:get_string("owner")
+			local pname = player:get_player_name();
+			if owner ~= pname then
+				minetest.chat_send_player(pname, "This switch can only be used by " .. owner)
+				return
+			end
+			if(mesecon.flipstate(pos, node) == "on") then
+				mesecon.receptor_on(pos)
+			else
+				mesecon.receptor_off(pos)
+			end
+			minetest.sound_play("mesecons_switch", {pos=pos})
+		end
+	},{
+		groups = {dig_immediate=2},
+		tiles = {	"mesecons_switch_side.png", "mesecons_switch_side.png",
+					"mesecons_switch_side.png^default_key.png", "mesecons_switch_side.png^default_key.png",
+					"mesecons_switch_side.png", "mesecons_switch_off.png^mesecons_switch_locked_frame.png"},
+		mesecons = {receptor = { state = mesecon.state.off }}
+	},{
+		groups = {dig_immediate=2, not_in_creative_inventory=1},
+		tiles = {	"mesecons_switch_side.png", "mesecons_switch_side.png",
+					"mesecons_switch_side.png^default_key.png", "mesecons_switch_side.png^default_key.png",
+					"mesecons_switch_side.png", "mesecons_switch_on.png^mesecons_switch_locked_frame.png"},
+		mesecons = {receptor = { state = mesecon.state.on }}
+	})
+
+	minetest.register_craft({
+		output = "extranodes:mesecon_switch_protected_off 2",
+		recipe = {
+			{"default:steel_ingot", "default:cobble", "default:steel_ingot"},
+			{"group:mesecon_conductor_craftable","default:skeleton_key", "group:mesecon_conductor_craftable"},
+		}
+	})
+	
+	minetest.register_craft({
+		output = "extranodes:mesecon_switch_protected_off",
+		type = "shapeless",
+		recipe = {"default:skeleton_key", "mesecons_switch:mesecon_switch_off"}
+	})
+
+end
\ No newline at end of file
diff --git a/extranodes/init.lua b/extranodes/init.lua
index 118dc0a..69cb820 100644
--- a/extranodes/init.lua
+++ b/extranodes/init.lua
@@ -8,6 +8,7 @@ local path = string.gsub(technic.modpath, "technic/technic", "technic/extranodes
 dofile(path.."/aspirin.lua")
 dofile(path.."/trampoline.lua")
 dofile(path.."/extratubes.lua")
+dofile(path.."/extramesecons.lua")
 dofile(path.."/lox.lua")
 
 if minetest.get_modpath("bakedclay") then
diff --git a/extranodes/textures/mesecons_switch_locked_frame.png b/extranodes/textures/mesecons_switch_locked_frame.png
new file mode 100644
index 0000000..239f97e
Binary files /dev/null and b/extranodes/textures/mesecons_switch_locked_frame.png differ
-- 
cgit v1.2.3


From f042bbdfe3ed948d1a67d2420e3de1c24a153111 Mon Sep 17 00:00:00 2001
From: h-v-smacker <hans-von-smacker+github@gmail.com>
Date: Sun, 13 May 2018 08:38:33 +0300
Subject: bakedclay dyes

---
 technic/machines/register/extractor_recipes.lua | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/technic/machines/register/extractor_recipes.lua b/technic/machines/register/extractor_recipes.lua
index 2627dd7..34d97ab 100644
--- a/technic/machines/register/extractor_recipes.lua
+++ b/technic/machines/register/extractor_recipes.lua
@@ -63,6 +63,14 @@ if minetest.get_modpath("dye") then
 		table.insert(dye_recipes, {"ethereal:crystalgrass", "dye:blue 4"})
 	end
 	
+	if minetest.get_modpath("bakedclay") then
+		table.insert(dye_recipes, {"bakedclay:delphinium", "dye:cyan 8"})
+		table.insert(dye_recipes, {"bakedclay:thistle", "dye:magenta 8"})
+		table.insert(dye_recipes, {"bakedclay:lazarus", "dye:pink 8"})
+		table.insert(dye_recipes, {"bakedclay:mannagrass", "dye:dark_green 8"})
+	end
+
+	
 	if minetest.get_modpath("bonemeal") then
 		table.insert(dye_recipes, {"bonemeal:bone", "dye:white 8"})
 		table.insert(dye_recipes, {"bonemeal:bonemeal", "dye:white 4"})
-- 
cgit v1.2.3