From 71e9c0b57e47e167f8c3abfe32d0a732c44f267c Mon Sep 17 00:00:00 2001 From: YuRaNnNzZZ Date: Tue, 6 Sep 2022 06:04:58 +0300 Subject: [PATCH] =?UTF-8?q?=D1=83=D1=80=D0=B0=20=D0=B1=D0=B0=D0=BB=D0=B0?= =?UTF-8?q?=D0=BD=D1=81=D0=B8=D0=BC=20=D1=88=D0=BB=D0=B5=D0=BC=D0=B0=D0=BA?= =?UTF-8?q?=20(#68)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../datagen/recipes/CraftingTableRecipes.kt | 660 +++++++++--------- 1 file changed, 330 insertions(+), 330 deletions(-) diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/CraftingTableRecipes.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/CraftingTableRecipes.kt index 668335b3c..56ded6834 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/CraftingTableRecipes.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/CraftingTableRecipes.kt @@ -1,330 +1,330 @@ -package ru.dbotthepony.mc.otm.datagen.recipes - -import net.minecraft.data.recipes.FinishedRecipe -import net.minecraft.data.recipes.ShapedRecipeBuilder -import net.minecraft.data.recipes.ShapelessRecipeBuilder -import net.minecraft.data.recipes.SimpleCookingRecipeBuilder -import net.minecraft.resources.ResourceLocation -import net.minecraft.world.item.DyeColor -import net.minecraft.world.item.Items -import net.minecraft.world.item.crafting.Ingredient -import net.minecraft.world.level.block.Blocks -import net.minecraftforge.common.Tags -import net.minecraftforge.common.Tags.Items.COBBLESTONE -import ru.dbotthepony.mc.otm.OverdriveThatMatters -import ru.dbotthepony.mc.otm.registry.MBlocks -import ru.dbotthepony.mc.otm.registry.MItemTags -import ru.dbotthepony.mc.otm.registry.MItems -import ru.dbotthepony.mc.otm.registry.MRegistry -import ru.dbotthepony.mc.otm.core.registryName -import java.util.function.Consumer - -fun addCraftingTableRecipes(consumer: Consumer) { - for ((dye, crate) in MRegistry.CARGO_CRATES.mappedColoredBlocks) { - ShapedRecipeBuilder(crate, 1) - .define('P', MItemTags.PLATE_TRITANIUM) - .define('C', Tags.Items.CHESTS) - .define('D', dye.tag) - .pattern(" D ").pattern("PCP") - // .unlockedBy("has_dye", has(dye.tag)) - .unlockedBy("has_tritanium_plate", has(MItemTags.PLATE_TRITANIUM)) - .unlockedBy("has_chest", has(Tags.Items.CHESTS)) - .save(consumer) - - ShapelessRecipeBuilder(crate, 1) - .requires(Ingredient.of(MItemTags.TRITANIUM_CRATES), 1) - .requires(Ingredient.of(dye.tag), 1) - .unlockedBy("has_tritanium_crate", has(MItemTags.TRITANIUM_CRATES)) - .save(consumer, "${crate.registryName}_alt") - } - - ShapedRecipeBuilder(MRegistry.CARGO_CRATES.item, 1) - .define('P', MItemTags.PLATE_TRITANIUM) - .define('C', Tags.Items.CHESTS) - .pattern("PCP") - .unlockedBy("has_tritanium_plate", has(MItemTags.PLATE_TRITANIUM)) - .unlockedBy("has_chest", has(Tags.Items.CHESTS)) - .save(consumer) - - for ((color, item) in MRegistry.TRITANIUM_BLOCK.mappedColoredItemsAll) { - MatteryRecipe(item, 24) - .rowAB(color?.tag, MItemTags.PLATE_TRITANIUM) - .row(MItemTags.PLATE_TRITANIUM, COBBLESTONE, MItemTags.PLATE_TRITANIUM) - .rowB(MItemTags.PLATE_TRITANIUM) - .unlockedBy(MItemTags.PLATE_TRITANIUM) - .also { if (color != null) it.unlockedBy(color.tag) } - .build(consumer) - } - - MatteryRecipe(MBlocks.PLATE_PRESS) - .row(MItems.ELECTRIC_PARTS, MItems.ENERGY_BUS, MItems.ELECTRIC_PARTS) - .row(MItemTags.INGOT_TRITANIUM, Items.BLAST_FURNACE, MItemTags.INGOT_TRITANIUM) - .row(MItemTags.PISTONS, MItemTags.INGOT_TRITANIUM, MItemTags.PISTONS) - .unlockedBy(MItemTags.INGOT_TRITANIUM) - .unlockedBy(MItems.ELECTRIC_PARTS) - .build(consumer) - - MatteryRecipe(MBlocks.PLATE_PRESS) - .rowB(MItemTags.BASIC_CIRCUIT) - .row(MItemTags.PLATE_TRITANIUM, MItems.MACHINE_FRAME, MItemTags.PLATE_TRITANIUM) - .rowAC(MItemTags.PISTONS, MItemTags.PISTONS) - .unlockedBy(MItemTags.INGOT_TRITANIUM) - .unlockedBy(MItems.ELECTRIC_PARTS) - .build(consumer, "advanced") - - MatteryRecipe(MBlocks.TRITANIUM_STRIPED_BLOCK, 24) - .rowB(MItemTags.PLATE_TRITANIUM) - .row(MItemTags.PLATE_TRITANIUM, COBBLESTONE, MItemTags.PLATE_TRITANIUM) - .rowAB(Tags.Items.DYES_YELLOW, MItemTags.PLATE_TRITANIUM) - .unlockedBy(MItemTags.PLATE_TRITANIUM) - .unlockedBy(Tags.Items.DYES_YELLOW) - .build(consumer) - - MatteryRecipe(MBlocks.TRITANIUM_STRIPED_BLOCK, 24) - .rowB(MItemTags.PLATE_TRITANIUM) - .row(MItemTags.PLATE_TRITANIUM, COBBLESTONE, MItemTags.PLATE_TRITANIUM) - .rowBC(MItemTags.PLATE_TRITANIUM, Tags.Items.DYES_YELLOW) - .unlockedBy(MItemTags.PLATE_TRITANIUM) - .unlockedBy(Tags.Items.DYES_YELLOW) - .build(consumer, "alt") - - for ((item, colors) in MRegistry.TRITANIUM_STRIPED_BLOCK.itemsWithColor) { - val (base, stripe) = colors - - MatteryRecipe(item, 24) - .rowAB(a = base.tag, b = MItemTags.PLATE_TRITANIUM) - .row(MItemTags.PLATE_TRITANIUM, COBBLESTONE, MItemTags.PLATE_TRITANIUM) - .rowAB(a = stripe.tag, b = MItemTags.PLATE_TRITANIUM) - .unlockedBy(MItemTags.PLATE_TRITANIUM) - .unlockedBy(base.tag) - .unlockedBy(stripe.tag) - .build(consumer, "1") - - MatteryRecipe(item, 24) - .rowBC(c = base.tag, b = MItemTags.PLATE_TRITANIUM) - .row(MItemTags.PLATE_TRITANIUM, COBBLESTONE, MItemTags.PLATE_TRITANIUM) - .rowBC(c = stripe.tag, b = MItemTags.PLATE_TRITANIUM) - .unlockedBy(MItemTags.PLATE_TRITANIUM) - .unlockedBy(base.tag) - .unlockedBy(stripe.tag) - .build(consumer, "2") - - MatteryRecipe(item, 24) - .rowAB(a = base.tag, b = MItemTags.PLATE_TRITANIUM) - .row(MItemTags.PLATE_TRITANIUM, COBBLESTONE, MItemTags.PLATE_TRITANIUM) - .rowBC(c = stripe.tag, b = MItemTags.PLATE_TRITANIUM) - .unlockedBy(MItemTags.PLATE_TRITANIUM) - .unlockedBy(base.tag) - .unlockedBy(stripe.tag) - .build(consumer, "3") - - MatteryRecipe(item, 24) - .rowBC(c = base.tag, b = MItemTags.PLATE_TRITANIUM) - .row(MItemTags.PLATE_TRITANIUM, COBBLESTONE, MItemTags.PLATE_TRITANIUM) - .rowAB(a = stripe.tag, b = MItemTags.PLATE_TRITANIUM) - .unlockedBy(MItemTags.PLATE_TRITANIUM) - .unlockedBy(base.tag) - .unlockedBy(stripe.tag) - .build(consumer, "4") - } - - for ((color, item) in MRegistry.VENT.mappedColoredItemsAll) { - MatteryRecipe(item, 24) - .rowAB(color?.tag, MItemTags.PLATE_TRITANIUM) - .row(MItemTags.PLATE_TRITANIUM, Items.IRON_BARS, MItemTags.PLATE_TRITANIUM) - .rowB(MItemTags.PLATE_TRITANIUM) - .unlockedBy(MItemTags.PLATE_TRITANIUM) - .also { if (color != null) it.unlockedBy(color.tag) } - .build(consumer) - } - - for ((color, item) in MRegistry.VENT_ALTERNATIVE.mappedColoredItemsAll) { - val other = MRegistry.VENT.mappedColoredItemsAll[color]!! - ShapelessRecipeBuilder(item, 1).requires(other).unlockedBy(item).save(consumer) - ShapelessRecipeBuilder(other, 1).requires(item).unlockedBy(other).save(consumer, ResourceLocation(OverdriveThatMatters.MOD_ID, "${other.registryName!!.path}_from_alt")) - } - - for ((crate, color) in listOf( - MItems.CRATE_RED to Tags.Items.DYES_RED, - MItems.CRATE_BLUE to Tags.Items.DYES_BLUE, - MItems.CRATE_YELLOW to Tags.Items.DYES_YELLOW, - MItems.CRATE_GREEN to Tags.Items.DYES_GREEN, - MItems.CRATE_BLACK to Tags.Items.DYES_BLACK, - MItems.CRATE_PINK to Tags.Items.DYES_PINK, - MItems.CRATE_PURPLE to Tags.Items.DYES_PURPLE, - )) { - MatteryRecipe(crate, 24) - .rowAB(color, MItemTags.PLATE_IRON) - .row(MItemTags.PLATE_IRON, COBBLESTONE, MItemTags.PLATE_IRON) - .rowB(MItemTags.PLATE_IRON) - .unlockedBy(MItemTags.PLATE_IRON) - .unlockedBy(color) - .build(consumer, "1") - - MatteryRecipe(crate, 24) - .rowBC(MItemTags.PLATE_IRON, color) - .row(MItemTags.PLATE_IRON, COBBLESTONE, MItemTags.PLATE_IRON) - .rowB(MItemTags.PLATE_IRON) - .unlockedBy(MItemTags.PLATE_IRON) - .unlockedBy(color) - .build(consumer, "2") - - MatteryRecipe(crate, 24) - .rowB(MItemTags.PLATE_IRON) - .row(MItemTags.PLATE_IRON, COBBLESTONE, MItemTags.PLATE_IRON) - .rowAB(color, MItemTags.PLATE_IRON) - .unlockedBy(MItemTags.PLATE_IRON) - .unlockedBy(color) - .build(consumer, "3") - - MatteryRecipe(crate, 24) - .rowB(MItemTags.PLATE_IRON) - .row(MItemTags.PLATE_IRON, COBBLESTONE, MItemTags.PLATE_IRON) - .rowBC(MItemTags.PLATE_IRON, color) - .unlockedBy(MItemTags.PLATE_IRON) - .unlockedBy(color) - .build(consumer, "4") - } - - // Машины - MatteryRecipe(MItems.MATTER_RECYCLER) - .row(MItems.MATTER_CAPACITOR_PARTS, Items.HOPPER, MItemTags.BASIC_CIRCUIT) - .row(MItemTags.PLATE_TRITANIUM, MItems.MACHINE_FRAME, MItemTags.PLATE_TRITANIUM) - .row(MItems.MATTER_CABLE, MItems.MATTER_IO_PORT, MItems.MATTER_CABLE) - .unlockedBy(MItems.MATTER_CABLE) - .build(consumer) - - // Блоки - MatteryRecipe(MItems.MATTER_CAPACITOR_BANK) - .row(Tags.Items.GLASS, MItemTags.PLATE_IRON, Tags.Items.GLASS) - .row(MItemTags.PLATE_IRON, MItems.MACHINE_FRAME, MItemTags.PLATE_IRON) - .row(MItems.MATTER_CABLE, MItems.MATTER_IO_PORT, MItems.MATTER_CABLE) - .unlockedBy(MItems.MATTER_CABLE) - .build(consumer) - - MatteryRecipe(MItems.BATTERY_BANK) - .row(Tags.Items.GLASS, MItemTags.PLATE_IRON, Tags.Items.GLASS) - .row(MItemTags.PLATE_IRON, MItems.MACHINE_FRAME, MItemTags.PLATE_IRON) - .row(MItems.ELECTRIC_PARTS, MItems.ENERGY_BUS, MItems.ELECTRIC_PARTS) - .unlockedBy(MItems.ENERGY_BUS) - .build(consumer) - - MatteryRecipe(MItems.GRAVITATION_STABILIZER) - .row(MItemTags.ADVANCED_CIRCUIT, MItems.GRAVITATION_FIELD_SENSOR, MItemTags.ADVANCED_CIRCUIT) - .row(MItems.MATTER_TRANSFORM_MATRIX, MItems.MACHINE_FRAME, MItems.MATTER_TRANSFORM_MATRIX) - .row(MItemTags.PLATE_TRITANIUM, MItems.GRAVITATION_FIELD_LIMITER, MItemTags.PLATE_TRITANIUM) - .unlockedBy(MItems.GRAVITATION_FIELD_LIMITER) - .unlockedBy(MItems.GRAVITATION_FIELD_SENSOR) - .build(consumer) - - MatteryRecipe(MItems.PORTABLE_GRAVITATION_STABILIZER) - .rowB(MItemTags.PLATE_TRITANIUM) - .row(MItemTags.PLATE_TRITANIUM, MItems.GRAVITATION_FIELD_SENSOR, MItemTags.PLATE_TRITANIUM) - .row(MItemTags.PLATE_TRITANIUM, MItems.GRAVITATION_FIELD_LIMITER, MItemTags.PLATE_TRITANIUM) - .unlockedBy(MItems.GRAVITATION_FIELD_LIMITER) - .unlockedBy(MItems.GRAVITATION_FIELD_SENSOR) - .build(consumer) - - MatteryRecipe(MItems.GRAVITATION_FIELD_SENSOR) - .rowB(MItemTags.BASIC_CIRCUIT) - .row(MItemTags.COPPER_WIRES, Tags.Items.ENDER_PEARLS, MItemTags.COPPER_WIRES) - .rowB(MItemTags.PLATE_IRON) - .build(consumer) - - MatteryRecipe(MItems.GRAVITATION_FIELD_LIMITER) - .row(Tags.Items.ENDER_PEARLS, MItemTags.ADVANCED_CIRCUIT, Tags.Items.ENDER_PEARLS) - .row(MItemTags.GOLD_WIRES, null as Ingredient?, MItemTags.GOLD_WIRES) - .rowB(MItemTags.PLATE_TRITANIUM) - .build(consumer) - - MatteryRecipe(MItems.BLACK_HOLE_SCANNER) - .row(MItemTags.PLATE_IRON, Tags.Items.GLASS_PANES_COLORLESS, MItemTags.PLATE_IRON) - .row(MItemTags.GOLD_WIRES, MItems.GRAVITATION_FIELD_SENSOR, MItemTags.ADVANCED_CIRCUIT) - .rowAC(Tags.Items.DUSTS_GLOWSTONE, MItemTags.PLATE_TRITANIUM) - .unlockedBy(MItems.GRAVITATION_FIELD_SENSOR) - .build(consumer) - - // броня - MatteryRecipe(MItems.TRITANIUM_HELMET) - .row(MItemTags.PLATE_TRITANIUM, MItemTags.PLATE_IRON, MItemTags.PLATE_TRITANIUM) - .rowAC(MItemTags.PLATE_TRITANIUM, MItemTags.PLATE_TRITANIUM) - .unlockedBy(MItemTags.PLATE_TRITANIUM) - .build(consumer) - - MatteryRecipe(MItems.TRITANIUM_PANTS) - .row(MItemTags.PLATE_TRITANIUM, MItemTags.PLATE_TRITANIUM, MItemTags.PLATE_TRITANIUM) - .row(MItemTags.PLATE_TRITANIUM, MItemTags.PLATE_IRON, MItemTags.PLATE_TRITANIUM) - .rowAC(MItemTags.PLATE_TRITANIUM, MItemTags.PLATE_TRITANIUM) - .unlockedBy(MItemTags.PLATE_TRITANIUM) - .build(consumer) - - MatteryRecipe(MItems.TRITANIUM_CHESTPLATE) - .row(MItemTags.PLATE_TRITANIUM, MItemTags.PLATE_IRON, MItemTags.PLATE_TRITANIUM) - .row(MItemTags.PLATE_TRITANIUM, MItemTags.PLATE_TRITANIUM, MItemTags.PLATE_TRITANIUM) - .row(MItemTags.PLATE_TRITANIUM, MItemTags.PLATE_TRITANIUM, MItemTags.PLATE_TRITANIUM) - .unlockedBy(MItemTags.PLATE_TRITANIUM) - .build(consumer) - - MatteryRecipe(MItems.TRITANIUM_BOOTS) - .rowAC(MItemTags.PLATE_TRITANIUM, MItemTags.PLATE_TRITANIUM) - .row(MItemTags.PLATE_TRITANIUM, MItemTags.PLATE_IRON, MItemTags.PLATE_TRITANIUM) - .unlockedBy(MItemTags.PLATE_TRITANIUM) - .build(consumer) - - // простые батарейки - MatteryRecipe(MItems.BATTERY_CRUDE) - .rowB(Tags.Items.DUSTS_REDSTONE) - // .rowB(MItems.ELECTRIC_PARTS) - // .rowB(MItemTags.PLATE_IRON) - .rowB(Tags.Items.INGOTS_IRON) - .build(consumer) - - MatteryRecipe(MItems.BATTERY_BASIC) - .rowB(Tags.Items.DUSTS_REDSTONE) - .rowB(MItems.ELECTRIC_PARTS) - .rowB(MItemTags.PLATE_IRON) - .build(consumer) - - MatteryRecipe(MItems.BATTERY_NORMAL) - .row(Tags.Items.DUSTS_REDSTONE, MItemTags.COPPER_WIRES, Tags.Items.DUSTS_REDSTONE) - .row(MItems.ELECTRIC_PARTS, MItemTags.PLATE_IRON, MItems.ELECTRIC_PARTS) - .build(consumer) - - MatteryRecipe(MItems.BATTERY_DENSE) - .row(Tags.Items.DUSTS_REDSTONE, MItems.ENERGY_BUS, Tags.Items.DUSTS_REDSTONE) - .row(MItemTags.GOLD_WIRES, MItemTags.PLATE_TRITANIUM, MItemTags.GOLD_WIRES) - .row(Tags.Items.DUSTS_REDSTONE, Tags.Items.DUSTS_REDSTONE, Tags.Items.DUSTS_REDSTONE) - .build(consumer) - - MatteryRecipe(MItems.BATTERY_CAPACITOR) - .row(Tags.Items.DUSTS_REDSTONE, MItems.ENERGY_BUS, Tags.Items.DUSTS_REDSTONE) - .row(MItemTags.GOLD_WIRES, MItemTags.PLATE_TRITANIUM, MItemTags.GOLD_WIRES) - .row(MItemTags.GOLD_WIRES, Tags.Items.DUSTS_REDSTONE, MItemTags.GOLD_WIRES) - .build(consumer) - - // накопители материи - MatteryRecipe(MItems.MATTER_CAPACITOR_DENSE) - .row(MItems.MATTER_CAPACITOR_PARTS, Tags.Items.GLASS, MItems.MATTER_CAPACITOR_PARTS) - .row(MItemTags.PLATE_TRITANIUM, Tags.Items.ENDER_PEARLS, MItemTags.PLATE_TRITANIUM) - .rowAC(Tags.Items.GEMS_DIAMOND, Tags.Items.GEMS_DIAMOND) - .build(consumer) - - // Напольная плитка - for ((color, unrefinedItem) in MRegistry.UNREFINED_FLOOR_TILES.mappedColoredItems) { - MatteryRecipe(unrefinedItem, 24) - .row(Items.CLAY, Items.SAND, Items.CLAY) - .row(Items.SAND, color.tag, Items.SAND) - .row(Items.CLAY, Items.SAND, Items.CLAY) - .unlockedBy(Items.CLAY) - .build(consumer) - } - - for ((color, refinedItem) in MRegistry.FLOOR_TILES.mappedColoredItems) { - SimpleCookingRecipeBuilder.smelting( - Ingredient.of(MRegistry.UNREFINED_FLOOR_TILES.mappedColoredItems[color]!!), - refinedItem, - 0.15f, - 200 - ).unlockedBy("has_unrefined_block", has(MRegistry.UNREFINED_FLOOR_TILES.mappedColoredItems[color]!!)).save(consumer) - } -} +package ru.dbotthepony.mc.otm.datagen.recipes + +import net.minecraft.data.recipes.FinishedRecipe +import net.minecraft.data.recipes.ShapedRecipeBuilder +import net.minecraft.data.recipes.ShapelessRecipeBuilder +import net.minecraft.data.recipes.SimpleCookingRecipeBuilder +import net.minecraft.resources.ResourceLocation +import net.minecraft.world.item.DyeColor +import net.minecraft.world.item.Items +import net.minecraft.world.item.crafting.Ingredient +import net.minecraft.world.level.block.Blocks +import net.minecraftforge.common.Tags +import net.minecraftforge.common.Tags.Items.COBBLESTONE +import ru.dbotthepony.mc.otm.OverdriveThatMatters +import ru.dbotthepony.mc.otm.registry.MBlocks +import ru.dbotthepony.mc.otm.registry.MItemTags +import ru.dbotthepony.mc.otm.registry.MItems +import ru.dbotthepony.mc.otm.registry.MRegistry +import ru.dbotthepony.mc.otm.core.registryName +import java.util.function.Consumer + +fun addCraftingTableRecipes(consumer: Consumer) { + for ((dye, crate) in MRegistry.CARGO_CRATES.mappedColoredBlocks) { + ShapedRecipeBuilder(crate, 1) + .define('P', MItemTags.PLATE_TRITANIUM) + .define('C', Tags.Items.CHESTS) + .define('D', dye.tag) + .pattern(" D ").pattern("PCP") + // .unlockedBy("has_dye", has(dye.tag)) + .unlockedBy("has_tritanium_plate", has(MItemTags.PLATE_TRITANIUM)) + .unlockedBy("has_chest", has(Tags.Items.CHESTS)) + .save(consumer) + + ShapelessRecipeBuilder(crate, 1) + .requires(Ingredient.of(MItemTags.TRITANIUM_CRATES), 1) + .requires(Ingredient.of(dye.tag), 1) + .unlockedBy("has_tritanium_crate", has(MItemTags.TRITANIUM_CRATES)) + .save(consumer, "${crate.registryName}_alt") + } + + ShapedRecipeBuilder(MRegistry.CARGO_CRATES.item, 1) + .define('P', MItemTags.PLATE_TRITANIUM) + .define('C', Tags.Items.CHESTS) + .pattern("PCP") + .unlockedBy("has_tritanium_plate", has(MItemTags.PLATE_TRITANIUM)) + .unlockedBy("has_chest", has(Tags.Items.CHESTS)) + .save(consumer) + + for ((color, item) in MRegistry.TRITANIUM_BLOCK.mappedColoredItemsAll) { + MatteryRecipe(item, 24) + .rowAB(color?.tag, MItemTags.PLATE_TRITANIUM) + .row(MItemTags.PLATE_TRITANIUM, COBBLESTONE, MItemTags.PLATE_TRITANIUM) + .rowB(MItemTags.PLATE_TRITANIUM) + .unlockedBy(MItemTags.PLATE_TRITANIUM) + .also { if (color != null) it.unlockedBy(color.tag) } + .build(consumer) + } + + MatteryRecipe(MBlocks.PLATE_PRESS) + .row(MItems.ELECTRIC_PARTS, MItems.ENERGY_BUS, MItems.ELECTRIC_PARTS) + .row(MItemTags.INGOT_TRITANIUM, Items.BLAST_FURNACE, MItemTags.INGOT_TRITANIUM) + .row(MItemTags.PISTONS, MItemTags.INGOT_TRITANIUM, MItemTags.PISTONS) + .unlockedBy(MItemTags.INGOT_TRITANIUM) + .unlockedBy(MItems.ELECTRIC_PARTS) + .build(consumer) + + MatteryRecipe(MBlocks.PLATE_PRESS) + .rowB(MItemTags.BASIC_CIRCUIT) + .row(MItemTags.PLATE_TRITANIUM, MItems.MACHINE_FRAME, MItemTags.PLATE_TRITANIUM) + .rowAC(MItemTags.PISTONS, MItemTags.PISTONS) + .unlockedBy(MItemTags.INGOT_TRITANIUM) + .unlockedBy(MItems.ELECTRIC_PARTS) + .build(consumer, "advanced") + + MatteryRecipe(MBlocks.TRITANIUM_STRIPED_BLOCK, 24) + .rowB(MItemTags.PLATE_TRITANIUM) + .row(MItemTags.PLATE_TRITANIUM, COBBLESTONE, MItemTags.PLATE_TRITANIUM) + .rowAB(Tags.Items.DYES_YELLOW, MItemTags.PLATE_TRITANIUM) + .unlockedBy(MItemTags.PLATE_TRITANIUM) + .unlockedBy(Tags.Items.DYES_YELLOW) + .build(consumer) + + MatteryRecipe(MBlocks.TRITANIUM_STRIPED_BLOCK, 24) + .rowB(MItemTags.PLATE_TRITANIUM) + .row(MItemTags.PLATE_TRITANIUM, COBBLESTONE, MItemTags.PLATE_TRITANIUM) + .rowBC(MItemTags.PLATE_TRITANIUM, Tags.Items.DYES_YELLOW) + .unlockedBy(MItemTags.PLATE_TRITANIUM) + .unlockedBy(Tags.Items.DYES_YELLOW) + .build(consumer, "alt") + + for ((item, colors) in MRegistry.TRITANIUM_STRIPED_BLOCK.itemsWithColor) { + val (base, stripe) = colors + + MatteryRecipe(item, 24) + .rowAB(a = base.tag, b = MItemTags.PLATE_TRITANIUM) + .row(MItemTags.PLATE_TRITANIUM, COBBLESTONE, MItemTags.PLATE_TRITANIUM) + .rowAB(a = stripe.tag, b = MItemTags.PLATE_TRITANIUM) + .unlockedBy(MItemTags.PLATE_TRITANIUM) + .unlockedBy(base.tag) + .unlockedBy(stripe.tag) + .build(consumer, "1") + + MatteryRecipe(item, 24) + .rowBC(c = base.tag, b = MItemTags.PLATE_TRITANIUM) + .row(MItemTags.PLATE_TRITANIUM, COBBLESTONE, MItemTags.PLATE_TRITANIUM) + .rowBC(c = stripe.tag, b = MItemTags.PLATE_TRITANIUM) + .unlockedBy(MItemTags.PLATE_TRITANIUM) + .unlockedBy(base.tag) + .unlockedBy(stripe.tag) + .build(consumer, "2") + + MatteryRecipe(item, 24) + .rowAB(a = base.tag, b = MItemTags.PLATE_TRITANIUM) + .row(MItemTags.PLATE_TRITANIUM, COBBLESTONE, MItemTags.PLATE_TRITANIUM) + .rowBC(c = stripe.tag, b = MItemTags.PLATE_TRITANIUM) + .unlockedBy(MItemTags.PLATE_TRITANIUM) + .unlockedBy(base.tag) + .unlockedBy(stripe.tag) + .build(consumer, "3") + + MatteryRecipe(item, 24) + .rowBC(c = base.tag, b = MItemTags.PLATE_TRITANIUM) + .row(MItemTags.PLATE_TRITANIUM, COBBLESTONE, MItemTags.PLATE_TRITANIUM) + .rowAB(a = stripe.tag, b = MItemTags.PLATE_TRITANIUM) + .unlockedBy(MItemTags.PLATE_TRITANIUM) + .unlockedBy(base.tag) + .unlockedBy(stripe.tag) + .build(consumer, "4") + } + + for ((color, item) in MRegistry.VENT.mappedColoredItemsAll) { + MatteryRecipe(item, 24) + .rowAB(color?.tag, MItemTags.PLATE_TRITANIUM) + .row(MItemTags.PLATE_TRITANIUM, Items.IRON_BARS, MItemTags.PLATE_TRITANIUM) + .rowB(MItemTags.PLATE_TRITANIUM) + .unlockedBy(MItemTags.PLATE_TRITANIUM) + .also { if (color != null) it.unlockedBy(color.tag) } + .build(consumer) + } + + for ((color, item) in MRegistry.VENT_ALTERNATIVE.mappedColoredItemsAll) { + val other = MRegistry.VENT.mappedColoredItemsAll[color]!! + ShapelessRecipeBuilder(item, 1).requires(other).unlockedBy(item).save(consumer) + ShapelessRecipeBuilder(other, 1).requires(item).unlockedBy(other).save(consumer, ResourceLocation(OverdriveThatMatters.MOD_ID, "${other.registryName!!.path}_from_alt")) + } + + for ((crate, color) in listOf( + MItems.CRATE_RED to Tags.Items.DYES_RED, + MItems.CRATE_BLUE to Tags.Items.DYES_BLUE, + MItems.CRATE_YELLOW to Tags.Items.DYES_YELLOW, + MItems.CRATE_GREEN to Tags.Items.DYES_GREEN, + MItems.CRATE_BLACK to Tags.Items.DYES_BLACK, + MItems.CRATE_PINK to Tags.Items.DYES_PINK, + MItems.CRATE_PURPLE to Tags.Items.DYES_PURPLE, + )) { + MatteryRecipe(crate, 24) + .rowAB(color, MItemTags.PLATE_IRON) + .row(MItemTags.PLATE_IRON, COBBLESTONE, MItemTags.PLATE_IRON) + .rowB(MItemTags.PLATE_IRON) + .unlockedBy(MItemTags.PLATE_IRON) + .unlockedBy(color) + .build(consumer, "1") + + MatteryRecipe(crate, 24) + .rowBC(MItemTags.PLATE_IRON, color) + .row(MItemTags.PLATE_IRON, COBBLESTONE, MItemTags.PLATE_IRON) + .rowB(MItemTags.PLATE_IRON) + .unlockedBy(MItemTags.PLATE_IRON) + .unlockedBy(color) + .build(consumer, "2") + + MatteryRecipe(crate, 24) + .rowB(MItemTags.PLATE_IRON) + .row(MItemTags.PLATE_IRON, COBBLESTONE, MItemTags.PLATE_IRON) + .rowAB(color, MItemTags.PLATE_IRON) + .unlockedBy(MItemTags.PLATE_IRON) + .unlockedBy(color) + .build(consumer, "3") + + MatteryRecipe(crate, 24) + .rowB(MItemTags.PLATE_IRON) + .row(MItemTags.PLATE_IRON, COBBLESTONE, MItemTags.PLATE_IRON) + .rowBC(MItemTags.PLATE_IRON, color) + .unlockedBy(MItemTags.PLATE_IRON) + .unlockedBy(color) + .build(consumer, "4") + } + + // Машины + MatteryRecipe(MItems.MATTER_RECYCLER) + .row(MItems.MATTER_CAPACITOR_PARTS, Items.HOPPER, MItemTags.BASIC_CIRCUIT) + .row(MItemTags.PLATE_TRITANIUM, MItems.MACHINE_FRAME, MItemTags.PLATE_TRITANIUM) + .row(MItems.MATTER_CABLE, MItems.MATTER_IO_PORT, MItems.MATTER_CABLE) + .unlockedBy(MItems.MATTER_CABLE) + .build(consumer) + + // Блоки + MatteryRecipe(MItems.MATTER_CAPACITOR_BANK) + .row(Tags.Items.GLASS, MItemTags.PLATE_IRON, Tags.Items.GLASS) + .row(MItemTags.PLATE_IRON, MItems.MACHINE_FRAME, MItemTags.PLATE_IRON) + .row(MItems.MATTER_CABLE, MItems.MATTER_IO_PORT, MItems.MATTER_CABLE) + .unlockedBy(MItems.MATTER_CABLE) + .build(consumer) + + MatteryRecipe(MItems.BATTERY_BANK) + .row(Tags.Items.GLASS, MItemTags.PLATE_IRON, Tags.Items.GLASS) + .row(MItemTags.PLATE_IRON, MItems.MACHINE_FRAME, MItemTags.PLATE_IRON) + .row(MItems.ELECTRIC_PARTS, MItems.ENERGY_BUS, MItems.ELECTRIC_PARTS) + .unlockedBy(MItems.ENERGY_BUS) + .build(consumer) + + MatteryRecipe(MItems.GRAVITATION_STABILIZER) + .row(MItemTags.ADVANCED_CIRCUIT, MItems.GRAVITATION_FIELD_SENSOR, MItemTags.ADVANCED_CIRCUIT) + .row(MItems.MATTER_TRANSFORM_MATRIX, MItems.MACHINE_FRAME, MItems.MATTER_TRANSFORM_MATRIX) + .row(MItemTags.PLATE_TRITANIUM, MItems.GRAVITATION_FIELD_LIMITER, MItemTags.PLATE_TRITANIUM) + .unlockedBy(MItems.GRAVITATION_FIELD_LIMITER) + .unlockedBy(MItems.GRAVITATION_FIELD_SENSOR) + .build(consumer) + + MatteryRecipe(MItems.PORTABLE_GRAVITATION_STABILIZER) + .rowB(MItemTags.PLATE_TRITANIUM) + .row(MItemTags.PLATE_TRITANIUM, MItems.GRAVITATION_FIELD_SENSOR, MItemTags.PLATE_TRITANIUM) + .row(MItemTags.PLATE_TRITANIUM, MItems.GRAVITATION_FIELD_LIMITER, MItemTags.PLATE_TRITANIUM) + .unlockedBy(MItems.GRAVITATION_FIELD_LIMITER) + .unlockedBy(MItems.GRAVITATION_FIELD_SENSOR) + .build(consumer) + + MatteryRecipe(MItems.GRAVITATION_FIELD_SENSOR) + .rowB(MItemTags.BASIC_CIRCUIT) + .row(MItemTags.COPPER_WIRES, Tags.Items.ENDER_PEARLS, MItemTags.COPPER_WIRES) + .rowB(MItemTags.PLATE_IRON) + .build(consumer) + + MatteryRecipe(MItems.GRAVITATION_FIELD_LIMITER) + .row(Tags.Items.ENDER_PEARLS, MItemTags.ADVANCED_CIRCUIT, Tags.Items.ENDER_PEARLS) + .row(MItemTags.GOLD_WIRES, null as Ingredient?, MItemTags.GOLD_WIRES) + .rowB(MItemTags.PLATE_TRITANIUM) + .build(consumer) + + MatteryRecipe(MItems.BLACK_HOLE_SCANNER) + .row(MItemTags.PLATE_IRON, Tags.Items.GLASS_PANES_COLORLESS, MItemTags.PLATE_IRON) + .row(MItemTags.GOLD_WIRES, MItems.GRAVITATION_FIELD_SENSOR, MItemTags.ADVANCED_CIRCUIT) + .rowAC(Tags.Items.DUSTS_GLOWSTONE, MItemTags.PLATE_TRITANIUM) + .unlockedBy(MItems.GRAVITATION_FIELD_SENSOR) + .build(consumer) + + // броня + MatteryRecipe(MItems.TRITANIUM_HELMET) + .row(MItemTags.PLATE_TRITANIUM, MItemTags.PLATE_TRITANIUM, MItemTags.PLATE_TRITANIUM) + .row(MItemTags.PLATE_TRITANIUM, MItemTags.PLATE_IRON, MItemTags.PLATE_TRITANIUM) + .unlockedBy(MItemTags.PLATE_TRITANIUM) + .build(consumer) + + MatteryRecipe(MItems.TRITANIUM_PANTS) + .row(MItemTags.PLATE_TRITANIUM, MItemTags.PLATE_TRITANIUM, MItemTags.PLATE_TRITANIUM) + .row(MItemTags.PLATE_TRITANIUM, MItemTags.PLATE_IRON, MItemTags.PLATE_TRITANIUM) + .rowAC(MItemTags.PLATE_TRITANIUM, MItemTags.PLATE_TRITANIUM) + .unlockedBy(MItemTags.PLATE_TRITANIUM) + .build(consumer) + + MatteryRecipe(MItems.TRITANIUM_CHESTPLATE) + .row(MItemTags.PLATE_TRITANIUM, MItemTags.PLATE_IRON, MItemTags.PLATE_TRITANIUM) + .row(MItemTags.PLATE_TRITANIUM, MItemTags.PLATE_TRITANIUM, MItemTags.PLATE_TRITANIUM) + .row(MItemTags.PLATE_TRITANIUM, MItemTags.PLATE_TRITANIUM, MItemTags.PLATE_TRITANIUM) + .unlockedBy(MItemTags.PLATE_TRITANIUM) + .build(consumer) + + MatteryRecipe(MItems.TRITANIUM_BOOTS) + .rowAC(MItemTags.PLATE_TRITANIUM, MItemTags.PLATE_TRITANIUM) + .row(MItemTags.PLATE_TRITANIUM, MItemTags.PLATE_IRON, MItemTags.PLATE_TRITANIUM) + .unlockedBy(MItemTags.PLATE_TRITANIUM) + .build(consumer) + + // простые батарейки + MatteryRecipe(MItems.BATTERY_CRUDE) + .rowB(Tags.Items.DUSTS_REDSTONE) + // .rowB(MItems.ELECTRIC_PARTS) + // .rowB(MItemTags.PLATE_IRON) + .rowB(Tags.Items.INGOTS_IRON) + .build(consumer) + + MatteryRecipe(MItems.BATTERY_BASIC) + .rowB(Tags.Items.DUSTS_REDSTONE) + .rowB(MItems.ELECTRIC_PARTS) + .rowB(MItemTags.PLATE_IRON) + .build(consumer) + + MatteryRecipe(MItems.BATTERY_NORMAL) + .row(Tags.Items.DUSTS_REDSTONE, MItemTags.COPPER_WIRES, Tags.Items.DUSTS_REDSTONE) + .row(MItems.ELECTRIC_PARTS, MItemTags.PLATE_IRON, MItems.ELECTRIC_PARTS) + .build(consumer) + + MatteryRecipe(MItems.BATTERY_DENSE) + .row(Tags.Items.DUSTS_REDSTONE, MItems.ENERGY_BUS, Tags.Items.DUSTS_REDSTONE) + .row(MItemTags.GOLD_WIRES, MItemTags.PLATE_TRITANIUM, MItemTags.GOLD_WIRES) + .row(Tags.Items.DUSTS_REDSTONE, Tags.Items.DUSTS_REDSTONE, Tags.Items.DUSTS_REDSTONE) + .build(consumer) + + MatteryRecipe(MItems.BATTERY_CAPACITOR) + .row(Tags.Items.DUSTS_REDSTONE, MItems.ENERGY_BUS, Tags.Items.DUSTS_REDSTONE) + .row(MItemTags.GOLD_WIRES, MItemTags.PLATE_TRITANIUM, MItemTags.GOLD_WIRES) + .row(MItemTags.GOLD_WIRES, Tags.Items.DUSTS_REDSTONE, MItemTags.GOLD_WIRES) + .build(consumer) + + // накопители материи + MatteryRecipe(MItems.MATTER_CAPACITOR_DENSE) + .row(MItems.MATTER_CAPACITOR_PARTS, Tags.Items.GLASS, MItems.MATTER_CAPACITOR_PARTS) + .row(MItemTags.PLATE_TRITANIUM, Tags.Items.ENDER_PEARLS, MItemTags.PLATE_TRITANIUM) + .rowAC(Tags.Items.GEMS_DIAMOND, Tags.Items.GEMS_DIAMOND) + .build(consumer) + + // Напольная плитка + for ((color, unrefinedItem) in MRegistry.UNREFINED_FLOOR_TILES.mappedColoredItems) { + MatteryRecipe(unrefinedItem, 24) + .row(Items.CLAY, Items.SAND, Items.CLAY) + .row(Items.SAND, color.tag, Items.SAND) + .row(Items.CLAY, Items.SAND, Items.CLAY) + .unlockedBy(Items.CLAY) + .build(consumer) + } + + for ((color, refinedItem) in MRegistry.FLOOR_TILES.mappedColoredItems) { + SimpleCookingRecipeBuilder.smelting( + Ingredient.of(MRegistry.UNREFINED_FLOOR_TILES.mappedColoredItems[color]!!), + refinedItem, + 0.15f, + 200 + ).unlockedBy("has_unrefined_block", has(MRegistry.UNREFINED_FLOOR_TILES.mappedColoredItems[color]!!)).save(consumer) + } +}