technic/technic/machines/register/extractor_recipes.lua

118 lines
4.3 KiB
Lua

local S = technic.getter
technic.register_recipe_type("extracting", { description = S("Extracting") })
function technic.register_extractor_recipe(data)
data.time = data.time or 4
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:blueberries", "dye:violet 2"},
{"default:grass_1", "dye:green 1"},
{"default:dry_shrub", "dye:brown 4"},
{"default:junglegrass", "dye:green 2"},
{"default:cactus", "dye:green 4"},
{"flowers:chrysanthemum_green", "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:tulip_black", "dye:black 8"},
{"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"},
}
if minetest.get_modpath("hunger") and minetest.get_modpath("ethereal") then
table.insert(dye_recipes, {"ethereal:willow_twig 12", "technic:aspirin_pill"})
end
if minetest.get_modpath("farming") then
-- Dyes ---
-- better recipes for farming's crafting methods (twice the output)
table.insert(dye_recipes, {"farming:chili_pepper", "dye:red 4"})
table.insert(dye_recipes, {"farming:beans", "dye:green 4"})
table.insert(dye_recipes, {"farming:grapes", "dye:violet 4"})
table.insert(dye_recipes, {"farming:cocoa_beans", "dye:brown 4"})
-- Some extra recipes:
-- Himalayan rhubarb root can give yellow dye IRL
table.insert(dye_recipes, {"farming:rhubarb", "dye:yellow 4"})
table.insert(dye_recipes, {"farming:onion", "dye:yellow 4"})
table.insert(dye_recipes, {"farming:blueberries", "dye:blue 4"})
table.insert(dye_recipes, {"farming:raspberries", "dye:red 4"})
end
if minetest.get_modpath("ethereal") then
table.insert(dye_recipes, {"ethereal:seaweed", "dye:dark_green 6"})
table.insert(dye_recipes, {"ethereal:coral2", "dye:cyan 6"})
table.insert(dye_recipes, {"ethereal:coral3", "dye:orange 6"})
table.insert(dye_recipes, {"ethereal:coral4", "dye:pink 6"})
table.insert(dye_recipes, {"ethereal:coral5", "dye:green 6"})
table.insert(dye_recipes, {"ethereal:fern", "dye:dark_green 4"})
table.insert(dye_recipes, {"ethereal:snowygrass", "dye:grey 4"})
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"})
end
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