From 6731db14e580ddccace186f5a8ac03dad0661e0c Mon Sep 17 00:00:00 2001
From: Gábriel <38207624+gabriel1379@users.noreply.github.com>
Date: Sun, 07 Jul 2024 18:53:15 +0200
Subject: [PATCH] Add compressor recipes for nether racks (#644)

---
 technic/machines/register/recipes.lua |   51 +++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 43 insertions(+), 8 deletions(-)

diff --git a/technic/machines/register/recipes.lua b/technic/machines/register/recipes.lua
index f9e2458..ba4a5e1 100644
--- a/technic/machines/register/recipes.lua
+++ b/technic/machines/register/recipes.lua
@@ -1,4 +1,6 @@
 local have_ui = minetest.get_modpath("unified_inventory")
+local have_cg = minetest.get_modpath("craftguide")
+local have_i3 = minetest.get_modpath("i3")
 
 technic.recipes = { cooking = { input_size = 1, output_size = 1 } }
 function technic.register_recipe_type(typename, origdata)
@@ -6,12 +8,24 @@
 	for k, v in pairs(origdata) do data[k] = v end
 	data.input_size = data.input_size or 1
 	data.output_size = data.output_size or 1
-	if have_ui and unified_inventory.register_craft_type and data.output_size == 1 then
-		unified_inventory.register_craft_type(typename, {
-			description = data.description,
-			width = data.input_size,
-			height = 1,
-		})
+	if data.output_size == 1 then
+		if have_ui and unified_inventory.register_craft_type then
+			unified_inventory.register_craft_type(typename, {
+				description = data.description,
+				width = data.input_size,
+				height = 1,
+			})
+		end
+		if have_cg and craftguide.register_craft_type then
+			craftguide.register_craft_type(typename, {
+				description = data.description,
+			})
+		end
+		if have_i3 then
+			i3.register_craft_type(typename, {
+				description = data.description,
+			})
+		end
 	end
 	data.recipes = {}
 	technic.recipes[typename] = data
@@ -39,7 +53,7 @@
 	else
 		data.output = ItemStack(data.output):to_string()
 	end
-	
+
 	local recipe = {time = data.time, input = {}, output = data.output}
 	local index = get_recipe_index(data.input)
 	if not index then
@@ -49,7 +63,7 @@
 	for _, stack in ipairs(data.input) do
 		recipe.input[ItemStack(stack):get_name()] = ItemStack(stack):get_count()
 	end
-	
+
 	technic.recipes[typename].recipes[index] = recipe
 	if have_ui and technic.recipes[typename].output_size == 1 then
 		unified_inventory.register_craft({
@@ -59,6 +73,27 @@
 			width = 0,
 		})
 	end
+	if (have_cg or have_i3) and technic.recipes[typename].output_size == 1 then
+		local result = data.output
+		if (type(result)=="table") then
+			result = result[1]
+		end
+		local items = table.concat(data.input, ", ")
+		if have_cg and craftguide.register_craft then
+			craftguide.register_craft({
+				type = typename,
+				result = result,
+				items = {items},
+			})
+		end
+		if have_i3 then
+			i3.register_craft({
+				type = typename,
+				result = result,
+				items = {items},
+			})
+		end
+	end
 end
 
 function technic.register_recipe(typename, data)

--
Gitblit v1.8.0