From c8f098effb1867c5ebcab9193d2a28a8abc61590 Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Sun, 28 Aug 2022 18:56:48 +0700 Subject: [PATCH] Moar recipes! --- .../datagen/recipes/CraftingTableRecipes.kt | 123 ++++++++++++++++++ .../mc/otm/datagen/recipes/MatteryRecipe.kt | 6 +- .../ru/dbotthepony/mc/otm/registry/Tags.kt | 6 + .../machines/matter_capacitor_bank.json | 22 ---- 4 files changed, 134 insertions(+), 23 deletions(-) delete mode 100644 src/main/resources/data/overdrive_that_matters/recipes/machines/matter_capacitor_bank.json 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 83aabfe2a..36d922695 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 @@ -168,4 +168,127 @@ fun addCraftingTableRecipes(consumer: Consumer) { .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) } diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/MatteryRecipe.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/MatteryRecipe.kt index 4c58914a8..bf112878b 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/MatteryRecipe.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/MatteryRecipe.kt @@ -121,13 +121,17 @@ class MatteryRecipe(val result: ItemLike, val count: Int = 1) { } fun build(consumer: Consumer, name: String? = null) { + if (index == 0) { + throw NoSuchElementException("No recipe rows were defined") + } + val builder = ShapedRecipeBuilder(result, count) val pairs = ArrayList>() val iterator = charlist.iterator() for (row in rows) { - row ?: continue + row ?: break val a = findOrGetNextChar(iterator, row.a, pairs, builder) val b = findOrGetNextChar(iterator, row.b, pairs, builder) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/Tags.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/Tags.kt index d4511b099..4b2d7c53e 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/Tags.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/Tags.kt @@ -12,4 +12,10 @@ object MItemTags { val PLATE_IRON: TagKey = ItemTags.create(ResourceLocation("forge", "plates/iron")) val TRITANIUM_CRATES: TagKey = ItemTags.create(ResourceLocation(OverdriveThatMatters.MOD_ID, "tritanium_crates")) val INDUSTRIAL_GLASS: TagKey = ItemTags.create(ResourceLocation(OverdriveThatMatters.MOD_ID, "industrial_glass")) + + val BASIC_CIRCUIT: TagKey = ItemTags.create(ResourceLocation("forge", "circuits/basic")) + val ADVANCED_CIRCUIT: TagKey = ItemTags.create(ResourceLocation("forge", "circuits/advanced")) + + val COPPER_WIRES: TagKey = ItemTags.create(ResourceLocation("forge", "wires/copper")) + val GOLD_WIRES: TagKey = ItemTags.create(ResourceLocation("forge", "wires/gold")) } diff --git a/src/main/resources/data/overdrive_that_matters/recipes/machines/matter_capacitor_bank.json b/src/main/resources/data/overdrive_that_matters/recipes/machines/matter_capacitor_bank.json deleted file mode 100644 index 86766bb26..000000000 --- a/src/main/resources/data/overdrive_that_matters/recipes/machines/matter_capacitor_bank.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - - "pattern": [ - "GTG", - "TFT", - "-I-" - ], - - "key": { - "G": {"tag": "forge:glass"}, - "I": {"item": "overdrive_that_matters:matter_io_port"}, - "F": {"item": "overdrive_that_matters:machine_frame"}, - "-": {"item": "overdrive_that_matters:matter_cable"}, - "T": {"tag": "forge:plates/iron"} - }, - - "result": { - "item": "overdrive_that_matters:matter_capacitor_bank", - "count": 1 - } -} \ No newline at end of file