From 140042bbd47b39757bf5b575d466dbc0ffdd188b Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Sun, 15 May 2022 16:14:43 +0700 Subject: [PATCH] Cargo crates recipe and data --- .../ru/dbotthepony/mc/otm/datagen/DataGen.kt | 43 +++++++++++++++++++ .../ru/dbotthepony/mc/otm/registry/Tags.kt | 3 ++ .../tags/blocks/mineable/pickaxe.json | 17 ++++++++ .../tags/blocks/needs_iron_tool.json | 17 ++++++++ .../tags/items/industrial_glass.json | 40 +++++++++++++++++ .../tags/items/tritanium_crates.json | 21 +++++++++ 6 files changed, 141 insertions(+) create mode 100644 src/main/resources/data/overdrive_that_matters/tags/items/industrial_glass.json create mode 100644 src/main/resources/data/overdrive_that_matters/tags/items/tritanium_crates.json diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/DataGen.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/DataGen.kt index 2b4daeb74..c481fe4e0 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/DataGen.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/DataGen.kt @@ -4,7 +4,9 @@ import net.minecraft.core.Direction import net.minecraft.data.recipes.ShapedRecipeBuilder import net.minecraft.data.recipes.ShapelessRecipeBuilder import net.minecraft.resources.ResourceLocation +import net.minecraft.world.item.DyeColor import net.minecraft.world.item.ItemStack +import net.minecraft.world.item.crafting.Ingredient import net.minecraft.world.level.block.Block import net.minecraft.world.level.block.IronBarsBlock import net.minecraftforge.client.model.generators.ModelFile @@ -396,6 +398,47 @@ object DataGen { } } + with(recipeProvider) { + val crates = arrayOf( + DyeColor.WHITE to MBlocks.CARGO_CRATE_WHITE, + DyeColor.ORANGE to MBlocks.CARGO_CRATE_ORANGE, + DyeColor.MAGENTA to MBlocks.CARGO_CRATE_MAGENTA, + DyeColor.LIGHT_BLUE to MBlocks.CARGO_CRATE_LIGHT_BLUE, + DyeColor.YELLOW to MBlocks.CARGO_CRATE_YELLOW, + DyeColor.LIME to MBlocks.CARGO_CRATE_LIME, + DyeColor.PINK to MBlocks.CARGO_CRATE_PINK, + DyeColor.GRAY to MBlocks.CARGO_CRATE_GRAY, + DyeColor.LIGHT_GRAY to MBlocks.CARGO_CRATE_LIGHT_GRAY, + DyeColor.CYAN to MBlocks.CARGO_CRATE_CYAN, + DyeColor.PURPLE to MBlocks.CARGO_CRATE_PURPLE, + DyeColor.BLUE to MBlocks.CARGO_CRATE_BLUE, + DyeColor.BROWN to MBlocks.CARGO_CRATE_BROWN, + DyeColor.GREEN to MBlocks.CARGO_CRATE_GREEN, + DyeColor.RED to MBlocks.CARGO_CRATE_RED, + DyeColor.BLACK to MBlocks.CARGO_CRATE_BLACK, + ) + + for ((dye, crate) in crates) { + lambda { _, consumer -> + 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") + } + } + } + with(recipeProvider) { val baselineMetals = arrayOf("iron", "silver", "bronze", "lead", "constantan") val softMetals = arrayOf("gold", "aluminum", "aluminium", "brass", "copper", "electrum") 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 27237d276..a3cc9115d 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/Tags.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/Tags.kt @@ -4,8 +4,11 @@ import net.minecraft.resources.ResourceLocation import net.minecraft.tags.ItemTags import net.minecraft.tags.TagKey import net.minecraft.world.item.Item +import ru.dbotthepony.mc.otm.OverdriveThatMatters object MItemTags { val INGOT_TRITANIUM: TagKey = ItemTags.create(ResourceLocation("forge", "ingots/tritanium")) val PLATE_TRITANIUM: TagKey = ItemTags.create(ResourceLocation("forge", "plates/tritanium")) + val TRITANIUM_CRATES: TagKey = ItemTags.create(ResourceLocation(OverdriveThatMatters.MOD_ID, "tritanium_crates")) + val INDUSTRIAL_GLASS: TagKey = ItemTags.create(ResourceLocation(OverdriveThatMatters.MOD_ID, "industrial_glass")) } diff --git a/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json b/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json index d02e90bd3..0a55f034b 100644 --- a/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json +++ b/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json @@ -32,6 +32,23 @@ "overdrive_that_matters:crate_purple", "overdrive_that_matters:cargo_crate", + "overdrive_that_matters:cargo_crate_white", + "overdrive_that_matters:cargo_crate_orange", + "overdrive_that_matters:cargo_crate_magenta", + "overdrive_that_matters:cargo_crate_light_blue", + "overdrive_that_matters:cargo_crate_yellow", + "overdrive_that_matters:cargo_crate_lime", + "overdrive_that_matters:cargo_crate_pink", + "overdrive_that_matters:cargo_crate_gray", + "overdrive_that_matters:cargo_crate_light_gray", + "overdrive_that_matters:cargo_crate_cyan", + "overdrive_that_matters:cargo_crate_purple", + "overdrive_that_matters:cargo_crate_blue", + "overdrive_that_matters:cargo_crate_brown", + "overdrive_that_matters:cargo_crate_green", + "overdrive_that_matters:cargo_crate_red", + "overdrive_that_matters:cargo_crate_black", + "overdrive_that_matters:industrial_glass", "overdrive_that_matters:industrial_glass_pane", diff --git a/src/main/resources/data/minecraft/tags/blocks/needs_iron_tool.json b/src/main/resources/data/minecraft/tags/blocks/needs_iron_tool.json index d4eab14aa..debe5cfea 100644 --- a/src/main/resources/data/minecraft/tags/blocks/needs_iron_tool.json +++ b/src/main/resources/data/minecraft/tags/blocks/needs_iron_tool.json @@ -18,6 +18,23 @@ "overdrive_that_matters:tritanium_striped_block", "overdrive_that_matters:carbon_fibre_block", + "overdrive_that_matters:cargo_crate_white", + "overdrive_that_matters:cargo_crate_orange", + "overdrive_that_matters:cargo_crate_magenta", + "overdrive_that_matters:cargo_crate_light_blue", + "overdrive_that_matters:cargo_crate_yellow", + "overdrive_that_matters:cargo_crate_lime", + "overdrive_that_matters:cargo_crate_pink", + "overdrive_that_matters:cargo_crate_gray", + "overdrive_that_matters:cargo_crate_light_gray", + "overdrive_that_matters:cargo_crate_cyan", + "overdrive_that_matters:cargo_crate_purple", + "overdrive_that_matters:cargo_crate_blue", + "overdrive_that_matters:cargo_crate_brown", + "overdrive_that_matters:cargo_crate_green", + "overdrive_that_matters:cargo_crate_red", + "overdrive_that_matters:cargo_crate_black", + "overdrive_that_matters:industrial_glass", "overdrive_that_matters:industrial_glass_pane", diff --git a/src/main/resources/data/overdrive_that_matters/tags/items/industrial_glass.json b/src/main/resources/data/overdrive_that_matters/tags/items/industrial_glass.json new file mode 100644 index 000000000..84db7d0a1 --- /dev/null +++ b/src/main/resources/data/overdrive_that_matters/tags/items/industrial_glass.json @@ -0,0 +1,40 @@ +{ + "replace": false, + "values": [ + "overdrive_that_matters:industrial_glass", + "overdrive_that_matters:industrial_glass_pane", + + "overdrive_that_matters:industrial_glass_white", + "overdrive_that_matters:industrial_glass_pane_white", + "overdrive_that_matters:industrial_glass_orange", + "overdrive_that_matters:industrial_glass_pane_orange", + "overdrive_that_matters:industrial_glass_magenta", + "overdrive_that_matters:industrial_glass_pane_magenta", + "overdrive_that_matters:industrial_glass_light_blue", + "overdrive_that_matters:industrial_glass_pane_light_blue", + "overdrive_that_matters:industrial_glass_yellow", + "overdrive_that_matters:industrial_glass_pane_yellow", + "overdrive_that_matters:industrial_glass_lime", + "overdrive_that_matters:industrial_glass_pane_lime", + "overdrive_that_matters:industrial_glass_pink", + "overdrive_that_matters:industrial_glass_pane_pink", + "overdrive_that_matters:industrial_glass_gray", + "overdrive_that_matters:industrial_glass_pane_gray", + "overdrive_that_matters:industrial_glass_light_gray", + "overdrive_that_matters:industrial_glass_pane_light_gray", + "overdrive_that_matters:industrial_glass_cyan", + "overdrive_that_matters:industrial_glass_pane_cyan", + "overdrive_that_matters:industrial_glass_purple", + "overdrive_that_matters:industrial_glass_pane_purple", + "overdrive_that_matters:industrial_glass_blue", + "overdrive_that_matters:industrial_glass_pane_blue", + "overdrive_that_matters:industrial_glass_brown", + "overdrive_that_matters:industrial_glass_pane_brown", + "overdrive_that_matters:industrial_glass_green", + "overdrive_that_matters:industrial_glass_pane_green", + "overdrive_that_matters:industrial_glass_red", + "overdrive_that_matters:industrial_glass_pane_red", + "overdrive_that_matters:industrial_glass_black", + "overdrive_that_matters:industrial_glass_pane_black" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/overdrive_that_matters/tags/items/tritanium_crates.json b/src/main/resources/data/overdrive_that_matters/tags/items/tritanium_crates.json new file mode 100644 index 000000000..4d54802b8 --- /dev/null +++ b/src/main/resources/data/overdrive_that_matters/tags/items/tritanium_crates.json @@ -0,0 +1,21 @@ +{ + "replace": false, + "values": [ + "overdrive_that_matters:cargo_crate_white", + "overdrive_that_matters:cargo_crate_orange", + "overdrive_that_matters:cargo_crate_magenta", + "overdrive_that_matters:cargo_crate_light_blue", + "overdrive_that_matters:cargo_crate_yellow", + "overdrive_that_matters:cargo_crate_lime", + "overdrive_that_matters:cargo_crate_pink", + "overdrive_that_matters:cargo_crate_gray", + "overdrive_that_matters:cargo_crate_light_gray", + "overdrive_that_matters:cargo_crate_cyan", + "overdrive_that_matters:cargo_crate_purple", + "overdrive_that_matters:cargo_crate_blue", + "overdrive_that_matters:cargo_crate_brown", + "overdrive_that_matters:cargo_crate_green", + "overdrive_that_matters:cargo_crate_red", + "overdrive_that_matters:cargo_crate_black" + ] +} \ No newline at end of file