| | |
| | | |
| | | 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:blueberries", "dye:violet 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 |
| | | |