From e1a71a8fb0bf052358cdb6b197a5bf5b20341205 Mon Sep 17 00:00:00 2001
From: upsala <Stefan@Weinzierl-Stefan.de>
Date: Sun, 09 Dec 2018 17:37:58 +0100
Subject: [PATCH] Add MV-Freezer (#457)

---
 technic/machines/register/extractor_recipes.lua |  130 ++++++++++++++++++++----------------------
 1 files changed, 62 insertions(+), 68 deletions(-)

diff --git a/technic/machines/register/extractor_recipes.lua b/technic/machines/register/extractor_recipes.lua
index 2d19130..54baa61 100644
--- a/technic/machines/register/extractor_recipes.lua
+++ b/technic/machines/register/extractor_recipes.lua
@@ -1,77 +1,71 @@
 
 local S = technic.getter
 
-if unified_inventory and unified_inventory.register_craft_type then
-	unified_inventory.register_craft_type("extracting", {
-		description = S("Extracting"),
-		height = 1,
-		width = 1,
-	})
-end
-
-technic.extractor_recipes = {}
+technic.register_recipe_type("extracting", { description = S("Extracting") })
 
 function technic.register_extractor_recipe(data)
 	data.time = data.time or 4
-	local src = ItemStack(data.input):get_name()
-	technic.extractor_recipes[src] = data
-	if unified_inventory then
-		unified_inventory.register_craft({
-			type = "extracting",
-			output = data.output,
-			items = {data.input},
-			width = 0,
+	technic.register_recipe("extracting", data)
+end
+
+if minetest.get_modpath("dye") then
+	-- check if we are using dye or unifieddyes
+	local unifieddyes = minetest.get_modpath("unifieddyes")
+
+	-- register recipes with the same crafting ratios as `dye` provides
+	local dye_recipes = {
+		{"technic:coal_dust",                 "dye:black 2"},
+		{"default:grass_1",                   "dye:green 1"},
+		{"default:dry_shrub",                 "dye:brown 1"},
+		{"default:junglegrass",               "dye:green 2"},
+		{"default:cactus",                    "dye:green 4"},
+		{"flowers:geranium",                  "dye:blue 4"},
+		{"flowers:dandelion_white",           "dye:white 4"},
+		{"flowers:dandelion_yellow",          "dye:yellow 4"},
+		{"flowers:tulip",                     "dye:orange 4"},
+		{"flowers:rose",                      "dye:red 4"},
+		{"flowers:viola",                     "dye:violet 4"},
+		{"bushes:blackberry",                 unifieddyes and "unifieddyes:magenta_s50 4" or "dye:violet 4"},
+		{"bushes:blueberry",                  unifieddyes and "unifieddyes:magenta_s50 4" or "dye:magenta 4"},
+	}
+
+	for _, data in ipairs(dye_recipes) do
+		technic.register_extractor_recipe({input = {data[1]}, output = data[2]})
+	end
+
+	-- overwrite the existing crafting recipes
+	local dyes = {"white", "red", "yellow", "blue", "violet", "orange"}
+	for _, color in ipairs(dyes) do
+		minetest.clear_craft({
+			type = "shapeless",
+			recipe = {"group:flower,color_"..color},
+		})
+		minetest.register_craft({
+			type = "shapeless",
+			output = "dye:"..color.." 1",
+			recipe = {"group:flower,color_"..color},
+		})
+	end
+
+	minetest.clear_craft({
+		type = "shapeless",
+		recipe = {"group:coal"},
+	})
+	minetest.register_craft({
+		type = "shapeless",
+		output = "dye:black 1",
+		recipe = {"group:coal"},
+	})
+
+	if unifieddyes then
+		minetest.clear_craft({
+			type = "shapeless",
+			recipe = {"default:cactus"},
+		})
+		minetest.register_craft({
+			type = "shapeless",
+			output = "dye:green 1",
+			recipe = {"default:cactus"},
 		})
 	end
 end
-
--- Receive an ItemStack of result by an ItemStack input
-function technic.get_extractor_recipe(item)
-	if technic.extractor_recipes[item:get_name()] and
-	   item:get_count() >= ItemStack(technic.extractor_recipes[item:get_name()].input):get_count() then
-		return technic.extractor_recipes[item:get_name()]
-	else
-		return nil
-	end
-end
-
-minetest.after(0.01, function ()
-	for ingredient, recipe in pairs(technic.extractor_recipes) do
-		ingredient = minetest.registered_aliases[ingredient]
-		while ingredient do
-			technic.grinder_recipes[ingredient] = recipe
-			ingredient = minetest.registered_aliases[ingredient]
-		end
-	end
-end)
-
--- Receive an ItemStack of result by an ItemStack input
-function technic.get_grinder_recipe(itemstack)
-	return technic.grinder_recipes[itemstack:get_name()]
-end
-
-local recipes = {
-	-- Dyes
-	{"technic:coal_dust",                 "dye:black 2"},
-	{"default:cactus",                    "dye:green 2"},
-	{"default:dry_shrub",                 "dye:brown 2"},
-	{"flowers:geranium",                  "dye:blue 2"},
-	{"flowers:dandelion_white",           "dye:white 2"},
-	{"flowers:dandelion_yellow",          "dye:yellow 2"},
-	{"flowers:tulip",                     "dye:orange 2"},
-	{"flowers:rose",                      "dye:red 2"},
-	{"flowers:viola",                     "dye:violet 2"},
-	
-	-- Rubber
-	{"technic:raw_latex",                 "technic:rubber 3"},
-	{"moretrees:rubber_tree_trunk_empty", "technic:rubber"},
-	{"moretrees:rubber_tree_trunk",       "technic:rubber"},
-	
-	-- Other
-	{"technic:uranium 5",                 "technic:enriched_uranium"},
-}
-
-for _, data in pairs(recipes) do
-	technic.register_extractor_recipe({input = data[1], output = data[2]})
-end
-

--
Gitblit v1.8.0