From 5f5214fb5d13242ed27cbc508070282641744324 Mon Sep 17 00:00:00 2001 From: YoungOnion <39562198+YoungOnionMC@users.noreply.github.com> Date: Thu, 19 Dec 2024 00:16:48 -0700 Subject: [PATCH] Stone Block Recipes (#2563) Co-authored-by: Karthi Suresh <75553966+JuiceyBeans@users.noreply.github.com> --- .../resources/assets/gtceu/lang/en_ud.json | 1 + .../resources/assets/gtceu/lang/en_us.json | 1 + .../api/data/chemical/ChemicalHelper.java | 2 + .../gtceu/common/data/GTMaterials.java | 2 + .../gtceu/common/data/GTRecipes.java | 1 + .../data/materials/HigherDegreeMaterials.java | 7 + .../gtceu/data/recipe/StoneTypeEntry.java | 238 ++++++ .../data/recipe/VanillaRecipeHelper.java | 11 + .../recipe/configurable/RecipeAddition.java | 144 +--- .../recipe/configurable/RecipeRemoval.java | 125 +++- .../data/recipe/misc/MachineRecipeLoader.java | 14 +- .../data/recipe/misc/StoneMachineRecipes.java | 676 ++++++++++++++++++ .../recipe/misc/VanillaStandardRecipes.java | 75 +- .../data/recipe/misc/WoodMachineRecipes.java | 6 +- 14 files changed, 1100 insertions(+), 203 deletions(-) create mode 100644 src/main/java/com/gregtechceu/gtceu/data/recipe/StoneTypeEntry.java create mode 100644 src/main/java/com/gregtechceu/gtceu/data/recipe/misc/StoneMachineRecipes.java diff --git a/src/generated/resources/assets/gtceu/lang/en_ud.json b/src/generated/resources/assets/gtceu/lang/en_ud.json index ed0f62ed20..18580338c0 100644 --- a/src/generated/resources/assets/gtceu/lang/en_ud.json +++ b/src/generated/resources/assets/gtceu/lang/en_ud.json @@ -4706,6 +4706,7 @@ "material.gtceu.black_bronze": "ǝzuoɹᗺ ʞɔɐןᗺ", "material.gtceu.black_dye": "ǝʎᗡ ʞɔɐןᗺ", "material.gtceu.black_steel": "ןǝǝʇS ʞɔɐןᗺ", + "material.gtceu.blackstone": "ǝuoʇsʞɔɐןᗺ", "material.gtceu.blaze": "ǝzɐןᗺ", "material.gtceu.blue_alloy": "ʎoןןⱯ ǝnןᗺ", "material.gtceu.blue_dye": "ǝʎᗡ ǝnןᗺ", diff --git a/src/generated/resources/assets/gtceu/lang/en_us.json b/src/generated/resources/assets/gtceu/lang/en_us.json index ae2cce5ea1..b3fdb619c0 100644 --- a/src/generated/resources/assets/gtceu/lang/en_us.json +++ b/src/generated/resources/assets/gtceu/lang/en_us.json @@ -4706,6 +4706,7 @@ "material.gtceu.black_bronze": "Black Bronze", "material.gtceu.black_dye": "Black Dye", "material.gtceu.black_steel": "Black Steel", + "material.gtceu.blackstone": "Blackstone", "material.gtceu.blaze": "Blaze", "material.gtceu.blue_alloy": "Blue Alloy", "material.gtceu.blue_dye": "Blue Dye", diff --git a/src/main/java/com/gregtechceu/gtceu/api/data/chemical/ChemicalHelper.java b/src/main/java/com/gregtechceu/gtceu/api/data/chemical/ChemicalHelper.java index 21f89238db..d9c46aa516 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/data/chemical/ChemicalHelper.java +++ b/src/main/java/com/gregtechceu/gtceu/api/data/chemical/ChemicalHelper.java @@ -12,6 +12,7 @@ import com.gregtechceu.gtceu.api.data.tag.TagUtil; import com.gregtechceu.gtceu.api.fluids.store.FluidStorageKey; import com.gregtechceu.gtceu.common.data.GTItems; +import com.gregtechceu.gtceu.data.recipe.misc.StoneMachineRecipes; import com.gregtechceu.gtceu.data.recipe.misc.WoodMachineRecipes; import com.gregtechceu.gtceu.data.tags.TagsHandler; import com.gregtechceu.gtceu.utils.SupplierMemoizer; @@ -414,5 +415,6 @@ public static void reinitializeUnification() { } GTItems.toUnify.forEach(ChemicalHelper::registerUnificationItems); WoodMachineRecipes.registerUnificationInfo(); + StoneMachineRecipes.registerUnificationInfo(); } } diff --git a/src/main/java/com/gregtechceu/gtceu/common/data/GTMaterials.java b/src/main/java/com/gregtechceu/gtceu/common/data/GTMaterials.java index dba0102070..b6ff2a27c3 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/data/GTMaterials.java +++ b/src/main/java/com/gregtechceu/gtceu/common/data/GTMaterials.java @@ -177,6 +177,7 @@ public static void init() { rock.setIgnored(Endstone, Blocks.END_STONE); rock.setIgnored(Deepslate, Blocks.DEEPSLATE); rock.setIgnored(Basalt, Blocks.BASALT); + rock.setIgnored(Blackstone, Blocks.BLACKSTONE); block.setIgnored(Sculk, Blocks.SCULK); block.setIgnored(Concrete, SupplierMemoizer.memoizeBlockSupplier(() -> GTBlocks.DARK_CONCRETE.get())); block.setIgnored(Concrete, SupplierMemoizer.memoizeBlockSupplier(() -> GTBlocks.LIGHT_CONCRETE.get())); @@ -911,6 +912,7 @@ private static void excludeAllGemsButNormal(Material material) { public static Material Marble; public static Material Deepslate; public static Material GraniteRed; + public static Material Blackstone; public static Material VanadiumMagnetite; public static Material QuartzSand; public static Material Pollucite; diff --git a/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipes.java b/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipes.java index 681e7373b5..f914450666 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipes.java +++ b/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipes.java @@ -60,6 +60,7 @@ public static void recipeAddition(Consumer originalConsumer) { MiscRecipeLoader.init(consumer); VanillaStandardRecipes.init(consumer); WoodMachineRecipes.init(consumer); + StoneMachineRecipes.init(consumer); CraftingRecipeLoader.init(consumer); FuelRecipes.init(consumer); FusionLoader.init(consumer); diff --git a/src/main/java/com/gregtechceu/gtceu/common/data/materials/HigherDegreeMaterials.java b/src/main/java/com/gregtechceu/gtceu/common/data/materials/HigherDegreeMaterials.java index bac1301218..91668a033a 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/data/materials/HigherDegreeMaterials.java +++ b/src/main/java/com/gregtechceu/gtceu/common/data/materials/HigherDegreeMaterials.java @@ -214,5 +214,12 @@ public static void register() { .flags(DECOMPOSITION_BY_CENTRIFUGING) .components(PotassiumIodide, 5, PrussianBlue, 3, DiethylenetriaminepentaaceticAcid, 5) .buildAndRegister(); + + Blackstone = new Material.Builder(GTCEu.id("blackstone")) + .dust() + .color(0x090a0a).iconSet(ROUGH) + .flags(NO_SMASHING) + .components(DarkAsh, 2, Basalt, 1, Stone, 5) + .buildAndRegister(); } } diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/StoneTypeEntry.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/StoneTypeEntry.java new file mode 100644 index 0000000000..ebb8a59128 --- /dev/null +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/StoneTypeEntry.java @@ -0,0 +1,238 @@ +package com.gregtechceu.gtceu.data.recipe; + +import com.gregtechceu.gtceu.api.GTValues; +import com.gregtechceu.gtceu.api.data.chemical.material.Material; + +import net.minecraft.world.item.Item; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +public class StoneTypeEntry { + + @NotNull + public final String modid; + @NotNull + public final String stoneName; + @Nullable + public final Item stone; + @Nullable + public final Item polishedStone; + @Nullable + public final Item smeltStone; + @Nullable + public final Item chiselStone; + @Nullable + public final Item crackedStone; + @Nullable + public final Item slab; + @Nullable + public final Item stair; + @Nullable + public final Item button; + @Nullable + public final Item pressurePlate; + @Nullable + public final Item wall; + public final Material material; + public final long materialAmount; + public final boolean addStoneOreDict; + public final boolean addPolishedStoneOreDict; + public final boolean addSlabOreDict; + public final boolean addStairOreDict; + public final boolean addButtonOreDict; + public final boolean addWallOreDict; + public final boolean addPressurePlateOreDict; + public final boolean addStoneUnificationInfo; + public final boolean addPolishedStoneUnificationInfo; + public final boolean addSmeltStoneUnificationInfo; + public final boolean addChiselStoneUnificationInfo; + public final boolean addCrackedStoneUnificationInfo; + public final boolean addSlabUnificationInfo; + public final boolean addStairUnificationInfo; + public final boolean addButtonUnificationInfo; + public final boolean addWallUnificationInfo; + public final boolean addPressurePlateUnificationInfo; + + private StoneTypeEntry(@NotNull String modid, @NotNull String stoneName, + @Nullable Item stone, @Nullable Item polishedStone, + @Nullable Item smeltStone, @Nullable Item chiselStone, + @Nullable Item crackedStone, @Nullable Item slab, + @Nullable Item stair, @Nullable Item button, + @Nullable Item wall, @Nullable Item pressurePlate, + @Nullable Material material, long materialAmount, + boolean addStoneOreDict, boolean addPolishedStoneOreDict, + boolean addSlabOreDict, + boolean addStairOreDict, boolean addButtonOreDict, + boolean addWallOreDict, boolean addPressurePlateOreDict, + boolean addStoneUnificationInfo, boolean addPolishedStoneUnificationInfo, + boolean addSmeltStoneUnificationInfo, boolean addChiselStoneUnificationInfo, + boolean addCrackedStoneUnificationInfo, boolean addSlabUnificationInfo, + boolean addStairUnificationInfo, boolean addButtonUnificationInfo, + boolean addWallUnificationInfo, boolean addPressurePlateUnificationInfo) { + this.modid = modid; + this.stoneName = stoneName; + this.stone = stone; + this.polishedStone = polishedStone; + this.smeltStone = smeltStone; + this.chiselStone = chiselStone; + this.crackedStone = crackedStone; + this.slab = slab; + this.stair = stair; + this.button = button; + this.wall = wall; + this.pressurePlate = pressurePlate; + this.material = material; + this.materialAmount = materialAmount; + this.addStoneOreDict = addStoneOreDict; + this.addPolishedStoneOreDict = addPolishedStoneOreDict; + this.addSlabOreDict = addSlabOreDict; + this.addStairOreDict = addStairOreDict; + this.addButtonOreDict = addButtonOreDict; + this.addWallOreDict = addWallOreDict; + this.addPressurePlateOreDict = addPressurePlateOreDict; + this.addStoneUnificationInfo = addStoneUnificationInfo; + this.addPolishedStoneUnificationInfo = addPolishedStoneUnificationInfo; + this.addChiselStoneUnificationInfo = addChiselStoneUnificationInfo; + this.addCrackedStoneUnificationInfo = addCrackedStoneUnificationInfo; + this.addSmeltStoneUnificationInfo = addSmeltStoneUnificationInfo; + this.addSlabUnificationInfo = addSlabUnificationInfo; + this.addStairUnificationInfo = addStairUnificationInfo; + this.addButtonUnificationInfo = addButtonUnificationInfo; + this.addWallUnificationInfo = addWallUnificationInfo; + this.addPressurePlateUnificationInfo = addPressurePlateUnificationInfo; + } + + public static class Builder { + + public final String modid; + public final String stoneName; + public Item stone = null; + public Item polishedStone = null; + public Item smeltStone = null; + public Item chiselStone = null; + public Item crackedStone = null; + public Item slab = null; + public Item stair = null; + public Item button = null; + public Item wall = null; + public Item pressurePlate = null; + @Nullable + private Material material = null; + private long materialAmount = GTValues.M; + public boolean addStoneOreDict = false; + public boolean addPolishedStoneOreDict = false; + public boolean addSlabOreDict = false; + public boolean addStairOreDict = false; + public boolean addButtonOreDict = false; + public boolean addWallOreDict = false; + public boolean addPressurePlateOreDict = false; + public boolean addStoneUnificationInfo = false; + public boolean addPolishedStoneUnificationInfo = false; + public boolean addSmeltStoneUnificationInfo = false; + public boolean addChiselStoneUnificationInfo = false; + public boolean addCrackedStoneUnificationInfo = false; + public boolean addSlabUnificationInfo = false; + public boolean addStairUnificationInfo = false; + public boolean addButtonUnificationInfo = false; + public boolean addWallUnificationInfo = false; + public boolean addPressurePlateUnificationInfo = false; + + public Builder(@NotNull String modid, @NotNull String stoneName) { + this.modid = modid; + this.stoneName = stoneName; + } + + public Builder stone(@NotNull Item stone) { + this.stone = stone; + return this; + } + + public Builder polishedStone(@NotNull Item polishedStone) { + this.polishedStone = polishedStone; + return this; + } + + public Builder smeltStone(@NotNull Item smeltStone) { + this.smeltStone = smeltStone; + return this; + } + + public Builder chiselStone(@NotNull Item chiselStone) { + this.chiselStone = chiselStone; + return this; + } + + public Builder crackedStone(@NotNull Item crackedStone) { + this.crackedStone = crackedStone; + return this; + } + + public Builder slab(@NotNull Item slab) { + this.slab = slab; + return this; + } + + public Builder stair(@NotNull Item stair) { + this.stair = stair; + return this; + } + + public Builder button(@NotNull Item button) { + this.button = button; + return this; + } + + public Builder wall(@NotNull Item wall) { + this.wall = wall; + return this; + } + + public Builder pressurePlate(@NotNull Item pressurePlate) { + this.pressurePlate = pressurePlate; + return this; + } + + public Builder material(@NotNull Material material) { + return material(material, GTValues.M); + } + + public Builder material(@NotNull Material material, long materialAmount) { + this.material = material; + this.materialAmount = materialAmount; + return this; + } + + public Builder registerAllUnificationInfo() { + return registerUnificationInfo(true, true, true, true, true, true, true, true, true); + } + + public Builder registerUnificationInfo(boolean stone, boolean polishedStone, boolean smeltStone, + boolean chiselStone, boolean slab, boolean stair, boolean button, + boolean wall, boolean pressurePlate) { + this.addStoneUnificationInfo = stone; + this.addPolishedStoneUnificationInfo = polishedStone; + this.addSmeltStoneUnificationInfo = smeltStone; + this.addChiselStoneUnificationInfo = chiselStone; + this.addSlabUnificationInfo = slab; + this.addStairUnificationInfo = stair; + this.addButtonUnificationInfo = button; + this.addWallUnificationInfo = wall; + this.addPressurePlateUnificationInfo = pressurePlate; + return this; + } + + public StoneTypeEntry build() { + return new StoneTypeEntry(modid, stoneName, + stone, polishedStone, smeltStone, chiselStone, crackedStone, slab, stair, button, wall, + pressurePlate, + material, materialAmount, + addStoneOreDict, addPolishedStoneOreDict, addSlabOreDict, addStairOreDict, + addButtonOreDict, addWallOreDict, addPressurePlateOreDict, + addStoneUnificationInfo, addPolishedStoneUnificationInfo, addSmeltStoneUnificationInfo, + addChiselStoneUnificationInfo, addCrackedStoneUnificationInfo, addSlabUnificationInfo, + addStairUnificationInfo, addButtonUnificationInfo, + addWallUnificationInfo, addPressurePlateUnificationInfo); + } + } +} diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/VanillaRecipeHelper.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/VanillaRecipeHelper.java index 6694452f07..74a6996fa2 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/VanillaRecipeHelper.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/VanillaRecipeHelper.java @@ -161,6 +161,17 @@ public static void addSmeltingRecipe(Consumer provider, @NotNull addSmeltingRecipe(provider, GTCEu.id(regName), input, output, 0.0f); } + public static void addSmeltingRecipe(Consumer provider, @NotNull String regName, Item input, + Item output) { + addSmeltingRecipe(provider, GTCEu.id(regName), input.getDefaultInstance(), output.getDefaultInstance(), 0.0f); + } + + public static void addSmeltingRecipe(Consumer provider, @NotNull String regName, Item input, + Item output, float experience) { + addSmeltingRecipe(provider, GTCEu.id(regName), input.getDefaultInstance(), output.getDefaultInstance(), + experience); + } + public static void addSmeltingRecipe(Consumer provider, @NotNull String regName, ItemStack input, ItemStack output, float experience) { addSmeltingRecipe(provider, GTCEu.id(regName), input, output, experience); diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/configurable/RecipeAddition.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/configurable/RecipeAddition.java index ae6ac42345..edc39b7b86 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/configurable/RecipeAddition.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/configurable/RecipeAddition.java @@ -44,7 +44,7 @@ public static void init(Consumer provider) { if (ConfigHolder.INSTANCE.recipes.nerfPaperCrafting) nerfPaperCrafting(provider); if (ConfigHolder.INSTANCE.recipes.hardAdvancedIronRecipes) hardAdvancedIronRecipes(provider); if (ConfigHolder.INSTANCE.recipes.flintAndSteelRequireSteel) flintAndSteelRequireSteel(provider); - if (ConfigHolder.INSTANCE.recipes.removeVanillaBlockRecipes) removeVanillaBlockRecipes(provider); + if (ConfigHolder.INSTANCE.recipes.removeVanillaBlockRecipes) vanillaBlockRecipes(provider); } private static void steelSteamMultiblocks(Consumer provider) { @@ -275,18 +275,6 @@ private static void hardRedstoneRecipes(Consumer provider) { .outputItems(new ItemStack(Blocks.PISTON, 16)) .duration(800).EUt(VA[LV]).save(provider); - VanillaRecipeHelper.addShapedRecipe(provider, "stone_pressure_plate", - new ItemStack(Blocks.STONE_PRESSURE_PLATE, 2), "ShS", "LCL", "SdS", - 'S', new UnificationEntry(TagPrefix.screw, GTMaterials.Iron), - 'L', new ItemStack(Blocks.STONE_SLAB), - 'C', new UnificationEntry(TagPrefix.spring, GTMaterials.Iron)); - - VanillaRecipeHelper.addShapedRecipe(provider, "polished_blackstone_pressure_plate", - new ItemStack(Blocks.POLISHED_BLACKSTONE_PRESSURE_PLATE, 2), "ShS", "LCL", "SdS", - 'S', new UnificationEntry(TagPrefix.screw, GTMaterials.Iron), - 'L', new ItemStack(Blocks.POLISHED_BLACKSTONE_SLAB), - 'C', new UnificationEntry(TagPrefix.spring, GTMaterials.Iron)); - VanillaRecipeHelper.addShapedRecipe(provider, "heavy_weighted_pressure_plate", new ItemStack(Blocks.LIGHT_WEIGHTED_PRESSURE_PLATE), "ShS", "LCL", "SdS", 'S', new UnificationEntry(TagPrefix.screw, GTMaterials.Steel), @@ -299,18 +287,6 @@ private static void hardRedstoneRecipes(Consumer provider) { 'L', new UnificationEntry(TagPrefix.plate, GTMaterials.Iron), 'C', new UnificationEntry(TagPrefix.spring, GTMaterials.Steel)); - ASSEMBLER_RECIPES.recipeBuilder("stone_pressure_plate") - .inputItems(TagPrefix.spring, GTMaterials.Iron) - .inputItems(new ItemStack(Blocks.STONE_SLAB, 2)) - .outputItems(new ItemStack(Blocks.STONE_PRESSURE_PLATE, 2)) - .duration(100).EUt(VA[ULV]).save(provider); - - ASSEMBLER_RECIPES.recipeBuilder("polished_blackstone_pressure_plate") - .inputItems(TagPrefix.spring, GTMaterials.Iron) - .inputItems(new ItemStack(Blocks.POLISHED_BLACKSTONE_SLAB, 2)) - .outputItems(new ItemStack(Blocks.POLISHED_BLACKSTONE_PRESSURE_PLATE, 2)) - .duration(100).EUt(VA[ULV]).save(provider); - ASSEMBLER_RECIPES.recipeBuilder("light_weighted_pressure_plate") .inputItems(TagPrefix.spring, GTMaterials.Steel) .inputItems(TagPrefix.plate, GTMaterials.Gold) @@ -323,13 +299,6 @@ private static void hardRedstoneRecipes(Consumer provider) { .outputItems(new ItemStack(Blocks.HEAVY_WEIGHTED_PRESSURE_PLATE)) .duration(200).EUt(16).save(provider); - VanillaRecipeHelper.addShapedRecipe(provider, "stone_button", new ItemStack(Blocks.STONE_BUTTON, 6), "sP", - 'P', new ItemStack(Blocks.STONE_PRESSURE_PLATE)); - - VanillaRecipeHelper.addShapedRecipe(provider, "blackstone_button", - new ItemStack(Blocks.POLISHED_BLACKSTONE_BUTTON, 6), "sP", - 'P', new ItemStack(Blocks.POLISHED_BLACKSTONE_PRESSURE_PLATE)); - CUTTER_RECIPES.recipeBuilder("stone_button") .inputItems(new ItemStack(Blocks.STONE_PRESSURE_PLATE)) .outputItems(new ItemStack(Blocks.STONE_BUTTON, 12)) @@ -1248,6 +1217,15 @@ private static void hardMiscRecipes(Consumer provider) { } } + private static void vanillaBlockRecipes(Consumer provider) { + COMPRESSOR_RECIPES.recipeBuilder("mud_bricks") + .inputItems(Items.PACKED_MUD, 1) + .outputItems(Items.MUD_BRICKS, 1) + .duration(200) + .EUt(4) + .save(provider); + } + private static void addBedRecipe(Consumer provider, DyeColor color) { String colorName = color.getName(); VanillaRecipeHelper.addShapedRecipe(provider, colorName + "_bed", @@ -1331,108 +1309,6 @@ private static void flintAndSteelRequireSteel(Consumer provider) 'S', new UnificationEntry(TagPrefix.springSmall, GTMaterials.Steel)); } - private static void removeVanillaBlockRecipes(Consumer provider) { - VanillaRecipeHelper.addShapedRecipe(provider, "stone_slab_saw", new ItemStack(Blocks.STONE_SLAB), "sS", 'S', - new ItemStack(Blocks.STONE)); - VanillaRecipeHelper.addShapedRecipe(provider, "smooth_stone_slab_saw", new ItemStack(Blocks.SMOOTH_STONE_SLAB), - "sS", 'S', new ItemStack(Blocks.SMOOTH_STONE)); - VanillaRecipeHelper.addShapedRecipe(provider, "andesite_slab_saw", new ItemStack(Blocks.ANDESITE_SLAB), "sS", - 'S', new ItemStack(Blocks.ANDESITE)); - VanillaRecipeHelper.addShapedRecipe(provider, "granite_slab_saw", new ItemStack(Blocks.GRANITE_SLAB), "sS", 'S', - new ItemStack(Blocks.GRANITE)); - VanillaRecipeHelper.addShapedRecipe(provider, "diorite_slab_saw", new ItemStack(Blocks.DIORITE_SLAB), "sS", 'S', - new ItemStack(Blocks.DIORITE)); - VanillaRecipeHelper.addShapedRecipe(provider, "polished_andesite_slab_saw", - new ItemStack(Blocks.POLISHED_ANDESITE_SLAB), "sS", 'S', new ItemStack(Blocks.POLISHED_ANDESITE)); - VanillaRecipeHelper.addShapedRecipe(provider, "polished_granite_slab_saw", - new ItemStack(Blocks.POLISHED_GRANITE_SLAB), "sS", 'S', new ItemStack(Blocks.POLISHED_GRANITE)); - VanillaRecipeHelper.addShapedRecipe(provider, "polished_diorite_slab_saw", - new ItemStack(Blocks.POLISHED_DIORITE_SLAB), "sS", 'S', new ItemStack(Blocks.POLISHED_DIORITE)); - VanillaRecipeHelper.addShapedRecipe(provider, "sandstone_slab_saw", new ItemStack(Blocks.SANDSTONE_SLAB), "sS", - 'S', new ItemStack(Blocks.SANDSTONE)); - VanillaRecipeHelper.addShapedRecipe(provider, "smooth_sandstone_slab_saw", - new ItemStack(Blocks.SMOOTH_SANDSTONE_SLAB), "sS", 'S', new ItemStack(Blocks.SMOOTH_SANDSTONE)); - VanillaRecipeHelper.addShapedRecipe(provider, "red_sandstone_slab_saw", - new ItemStack(Blocks.RED_SANDSTONE_SLAB), "sS", 'S', new ItemStack(Blocks.RED_SANDSTONE)); - VanillaRecipeHelper.addShapedRecipe(provider, "smooth_red_sandstone_slab_saw", - new ItemStack(Blocks.SMOOTH_RED_SANDSTONE_SLAB), "sS", 'S', new ItemStack(Blocks.SMOOTH_RED_SANDSTONE)); - VanillaRecipeHelper.addShapedRecipe(provider, "cobblestone_slab_saw", new ItemStack(Blocks.COBBLESTONE_SLAB), - "sS", 'S', new ItemStack(Blocks.COBBLESTONE)); - VanillaRecipeHelper.addShapedRecipe(provider, "blackstone_slab_saw", new ItemStack(Blocks.BLACKSTONE_SLAB), - "sS", 'S', new ItemStack(Blocks.BLACKSTONE)); - VanillaRecipeHelper.addShapedRecipe(provider, "polished_blackstone_slab_saw", - new ItemStack(Blocks.POLISHED_BLACKSTONE_SLAB), "sS", 'S', new ItemStack(Blocks.POLISHED_BLACKSTONE)); - VanillaRecipeHelper.addShapedRecipe(provider, "polished_blackstone_brick_slab_saw", - new ItemStack(Blocks.POLISHED_BLACKSTONE_BRICK_SLAB), "sS", 'S', - new ItemStack(Blocks.POLISHED_BLACKSTONE_BRICKS)); - VanillaRecipeHelper.addShapedRecipe(provider, "brick_slab_saw", new ItemStack(Blocks.BRICK_SLAB), "sS", 'S', - new ItemStack(Blocks.BRICKS)); - VanillaRecipeHelper.addShapedRecipe(provider, "mud_brick_slab_saw", new ItemStack(Blocks.MUD_BRICK_SLAB), "sS", - 'S', new ItemStack(Blocks.MUD_BRICKS)); - VanillaRecipeHelper.addShapedRecipe(provider, "stone_brick_slab_saw", new ItemStack(Blocks.STONE_BRICK_SLAB), - "sS", 'S', new ItemStack(Blocks.STONE_BRICKS)); // DO NOT USE STONE BRICKS ITEM TAG - VanillaRecipeHelper.addShapedRecipe(provider, "nether_brick_slab_saw", new ItemStack(Blocks.NETHER_BRICK_SLAB), - "sS", 'S', new ItemStack(Blocks.NETHER_BRICKS)); - VanillaRecipeHelper.addShapedRecipe(provider, "red_nether_brick_slab_saw", - new ItemStack(Blocks.RED_NETHER_BRICK_SLAB), "sS", 'S', new ItemStack(Blocks.RED_NETHER_BRICKS)); - VanillaRecipeHelper.addShapedRecipe(provider, "quartz_slab_saw", new ItemStack(Blocks.QUARTZ_SLAB), "sS", 'S', - new ItemStack(Blocks.QUARTZ_BLOCK)); - VanillaRecipeHelper.addShapedRecipe(provider, "smooth_quartz_slab_saw", - new ItemStack(Blocks.SMOOTH_QUARTZ_SLAB), "sS", 'S', new ItemStack(Blocks.SMOOTH_QUARTZ)); - VanillaRecipeHelper.addShapedRecipe(provider, "cut_copper_slab_saw", new ItemStack(Blocks.CUT_COPPER_SLAB), - "sS", 'S', new ItemStack(Blocks.CUT_COPPER)); - VanillaRecipeHelper.addShapedRecipe(provider, "exposed_cut_copper_slab_saw", - new ItemStack(Blocks.EXPOSED_CUT_COPPER_SLAB), "sS", 'S', new ItemStack(Blocks.EXPOSED_CUT_COPPER)); - VanillaRecipeHelper.addShapedRecipe(provider, "oxidized_cut_copper_slab_saw", - new ItemStack(Blocks.OXIDIZED_CUT_COPPER_SLAB), "sS", 'S', new ItemStack(Blocks.OXIDIZED_CUT_COPPER)); - VanillaRecipeHelper.addShapedRecipe(provider, "weathered_cut_copper_slab_saw", - new ItemStack(Blocks.WEATHERED_CUT_COPPER_SLAB), "sS", 'S', new ItemStack(Blocks.WEATHERED_CUT_COPPER)); - VanillaRecipeHelper.addShapedRecipe(provider, "waxed_cut_copper_slab_saw", - new ItemStack(Blocks.WAXED_CUT_COPPER_SLAB), "sS", 'S', new ItemStack(Blocks.WAXED_CUT_COPPER)); - VanillaRecipeHelper.addShapedRecipe(provider, "waxed_exposed_cut_copper_slab_saw", - new ItemStack(Blocks.WAXED_EXPOSED_CUT_COPPER_SLAB), "sS", 'S', - new ItemStack(Blocks.WAXED_EXPOSED_CUT_COPPER)); - VanillaRecipeHelper.addShapedRecipe(provider, "waxed_oxidized_cut_copper_slab_saw", - new ItemStack(Blocks.WAXED_OXIDIZED_CUT_COPPER_SLAB), "sS", 'S', - new ItemStack(Blocks.WAXED_OXIDIZED_CUT_COPPER)); - VanillaRecipeHelper.addShapedRecipe(provider, "waxed_weathered_cut_copper_slab_saw", - new ItemStack(Blocks.WAXED_WEATHERED_CUT_COPPER_SLAB), "sS", 'S', - new ItemStack(Blocks.WAXED_WEATHERED_CUT_COPPER)); - VanillaRecipeHelper.addShapedRecipe(provider, "purpur_slab_saw", new ItemStack(Blocks.PURPUR_SLAB), "sS", 'S', - new ItemStack(Blocks.PURPUR_BLOCK)); - VanillaRecipeHelper.addShapedRecipe(provider, "end_stone_brick_slab_saw", - new ItemStack(Blocks.END_STONE_BRICK_SLAB), "sS", 'S', new ItemStack(Blocks.END_STONE_BRICKS)); - VanillaRecipeHelper.addShapedRecipe(provider, "prismarine_slab_saw", new ItemStack(Blocks.PRISMARINE_SLAB), - "sS", 'S', new ItemStack(Blocks.PRISMARINE)); - VanillaRecipeHelper.addShapedRecipe(provider, "prismarine_brick_slab_saw", - new ItemStack(Blocks.PRISMARINE_BRICK_SLAB), "sS", 'S', new ItemStack(Blocks.PRISMARINE_BRICKS)); - VanillaRecipeHelper.addShapedRecipe(provider, "dark_prismarine_slab_saw", - new ItemStack(Blocks.DARK_PRISMARINE_SLAB), "sS", 'S', new ItemStack(Blocks.DARK_PRISMARINE)); - VanillaRecipeHelper.addShapedRecipe(provider, "mossy_cobblestone_slab_saw", - new ItemStack(Blocks.MOSSY_COBBLESTONE_SLAB), "sS", 'S', new ItemStack(Blocks.MOSSY_COBBLESTONE)); - VanillaRecipeHelper.addShapedRecipe(provider, "mossy_stone_brick_slab_saw", - new ItemStack(Blocks.MOSSY_STONE_BRICK_SLAB), "sS", 'S', new ItemStack(Blocks.MOSSY_STONE_BRICKS)); - VanillaRecipeHelper.addShapedRecipe(provider, "cut_sandstone_slab_saw", - new ItemStack(Blocks.CUT_SANDSTONE_SLAB), "sS", 'S', new ItemStack(Blocks.CUT_SANDSTONE)); - VanillaRecipeHelper.addShapedRecipe(provider, "cut_red_sandstone_slab_saw", - new ItemStack(Blocks.CUT_RED_SANDSTONE_SLAB), "sS", 'S', new ItemStack(Blocks.CUT_RED_SANDSTONE)); - VanillaRecipeHelper.addShapedRecipe(provider, "bamboo_mosaic_slab_saw", - new ItemStack(Blocks.BAMBOO_MOSAIC_SLAB), "sS", 'S', new ItemStack(Blocks.BAMBOO_MOSAIC)); - CUTTER_RECIPES.recipeBuilder("bamboo_mosaic_slab") - .inputItems(new ItemStack(Items.BAMBOO_MOSAIC)) - .outputItems(new ItemStack(Items.BAMBOO_MOSAIC_SLAB, 2)) - .duration(200).EUt(VA[ULV]) - .save(provider); - VanillaRecipeHelper.addShapedRecipe(provider, "cobbled_deepslate_slab_saw", - new ItemStack(Blocks.COBBLED_DEEPSLATE_SLAB), "sS", 'S', new ItemStack(Blocks.COBBLED_DEEPSLATE)); - VanillaRecipeHelper.addShapedRecipe(provider, "polished_deepslate_slab_saw", - new ItemStack(Blocks.POLISHED_DEEPSLATE_SLAB), "sS", 'S', new ItemStack(Blocks.POLISHED_DEEPSLATE)); - VanillaRecipeHelper.addShapedRecipe(provider, "deepslate_brick_slab_saw", - new ItemStack(Blocks.DEEPSLATE_BRICK_SLAB), "sS", 'S', new ItemStack(Blocks.DEEPSLATE_BRICKS)); - VanillaRecipeHelper.addShapedRecipe(provider, "deepslate_tile_slab_saw", - new ItemStack(Blocks.DEEPSLATE_TILE_SLAB), "sS", 'S', new ItemStack(Blocks.DEEPSLATE_TILES)); - } - private static void createShovelRecipe(Consumer provider, String regName, ItemStack output, Material material) { VanillaRecipeHelper.addShapedRecipe(provider, regName, output, "hPf", " S ", " S ", diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/configurable/RecipeRemoval.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/configurable/RecipeRemoval.java index 943a0f9ee9..a5c02a81fd 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/configurable/RecipeRemoval.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/configurable/RecipeRemoval.java @@ -163,6 +163,7 @@ private static void hardRedstoneRecipes(Consumer registry) { registry.accept(new ResourceLocation("minecraft:light_weighted_pressure_plate")); registry.accept(new ResourceLocation("minecraft:stone_button")); registry.accept(new ResourceLocation("minecraft:polished_blackstone_button")); + registry.accept(new ResourceLocation("minecraft:calibrated_sculk_sensor")); } private static void hardToolArmorRecipes(Consumer registry) { @@ -355,7 +356,6 @@ private static void removeVanillaBlockRecipes(Consumer registr registry.accept(new ResourceLocation("minecraft:polished_diorite")); registry.accept(new ResourceLocation("minecraft:polished_granite")); registry.accept(new ResourceLocation("minecraft:coarse_dirt")); - registry.accept(new ResourceLocation("minecraft:smooth_sandstone")); registry.accept(new ResourceLocation("minecraft:chiseled_sandstone")); registry.accept(new ResourceLocation("minecraft:chiseled_quartz_block")); registry.accept(new ResourceLocation("minecraft:stone_bricks")); @@ -365,43 +365,43 @@ private static void removeVanillaBlockRecipes(Consumer registr registry.accept(new ResourceLocation("minecraft:red_nether_bricks")); registry.accept(new ResourceLocation("minecraft:red_sandstone")); registry.accept(new ResourceLocation("minecraft:chiseled_red_sandstone")); - registry.accept(new ResourceLocation("minecraft:smooth_red_sandstone")); registry.accept(new ResourceLocation("minecraft:bookshelf")); registry.accept(new ResourceLocation("minecraft:quartz_pillar")); registry.accept(new ResourceLocation("minecraft:sea_lantern")); registry.accept(new ResourceLocation("minecraft:white_wool_from_string")); - // TODO Add extruder/laser engraver recipes for all vanilla stones to keep parity with GT stones registry.accept(new ResourceLocation("minecraft:cracked_stone_bricks")); registry.accept(new ResourceLocation("minecraft:mossy_cobblestone_from_moss_block")); registry.accept(new ResourceLocation("minecraft:mossy_cobblestone_from_vine")); - // TODO add recipes for ALL of these. sigh where do the nitpicks end - // registry.accept(new ResourceLocation("minecraft:deepslate_bricks")); - // registry.accept(new ResourceLocation("minecraft:cracked_nether_bricks")); - // registry.accept(new ResourceLocation("minecraft:chiseled_nether_bricks")); - // registry.accept(new ResourceLocation("minecraft:polished_blackstone_bricks")); - // registry.accept(new ResourceLocation("minecraft:cracked_polished_blackstone_bricks")); - // registry.accept(new ResourceLocation("minecraft:quartz_bricks")); - // registry.accept(new ResourceLocation("minecraft:polished_deepslate")); - // registry.accept(new ResourceLocation("minecraft:polished_basalt")); - // registry.accept(new ResourceLocation("minecraft:chiseled_polished_blackstone")); - // registry.accept(new ResourceLocation("minecraft:deepslate_tiles")); - // registry.accept(new ResourceLocation("minecraft:cracked_deepslate_tiles")); - // registry.accept(new ResourceLocation("minecraft:chiseled_deepslate")); - // registry.accept(new ResourceLocation("minecraft:cracked_deepslate_bricks")); - // registry.accept(new ResourceLocation("minecraft:cut_red_sandstone")); - // registry.accept(new ResourceLocation("minecraft:polished_basalt")); - // registry.accept(new ResourceLocation("minecraft:polished_blackstone")); - // registry.accept(new ResourceLocation("minecraft:cut_copper")); - // registry.accept(new ResourceLocation("minecraft:exposed_cut_copper")); - // registry.accept(new ResourceLocation("minecraft:weathered_cut_copper")); - // registry.accept(new ResourceLocation("minecraft:oxidized_cut_copper")); - // registry.accept(new ResourceLocation("minecraft:waxed_cut_copper")); - // registry.accept(new ResourceLocation("minecraft:waxed_exposed_cut_copper")); - // registry.accept(new ResourceLocation("minecraft:waxed_weathered_cut_copper")); - // registry.accept(new ResourceLocation("minecraft:waxed_oxidized_cut_copper")); - // registry.accept(new ResourceLocation("minecraft:end_crystal")); + registry.accept(new ResourceLocation("minecraft:deepslate_bricks")); + registry.accept(new ResourceLocation("minecraft:cracked_nether_bricks")); + registry.accept(new ResourceLocation("minecraft:chiseled_nether_bricks")); + registry.accept(new ResourceLocation("minecraft:polished_blackstone_bricks")); + registry.accept(new ResourceLocation("minecraft:cracked_polished_blackstone_bricks")); + registry.accept(new ResourceLocation("minecraft:quartz_bricks")); + registry.accept(new ResourceLocation("minecraft:polished_deepslate")); + registry.accept(new ResourceLocation("minecraft:polished_basalt")); + registry.accept(new ResourceLocation("minecraft:chiseled_polished_blackstone")); + registry.accept(new ResourceLocation("minecraft:deepslate_tiles")); + registry.accept(new ResourceLocation("minecraft:cracked_deepslate_tiles")); + registry.accept(new ResourceLocation("minecraft:chiseled_deepslate")); + registry.accept(new ResourceLocation("minecraft:cracked_deepslate_bricks")); + registry.accept(new ResourceLocation("minecraft:cut_red_sandstone")); + registry.accept(new ResourceLocation("minecraft:polished_basalt")); + registry.accept(new ResourceLocation("minecraft:polished_blackstone")); + registry.accept(new ResourceLocation("minecraft:cut_copper")); + registry.accept(new ResourceLocation("minecraft:exposed_cut_copper")); + registry.accept(new ResourceLocation("minecraft:weathered_cut_copper")); + registry.accept(new ResourceLocation("minecraft:oxidized_cut_copper")); + registry.accept(new ResourceLocation("minecraft:waxed_cut_copper")); + registry.accept(new ResourceLocation("minecraft:waxed_exposed_cut_copper")); + registry.accept(new ResourceLocation("minecraft:waxed_weathered_cut_copper")); + registry.accept(new ResourceLocation("minecraft:waxed_oxidized_cut_copper")); + registry.accept(new ResourceLocation("minecraft:end_crystal")); registry.accept(new ResourceLocation("minecraft:end_rod")); - // registry.accept(new ResourceLocation("minecraft:mud_bricks")); //no other way to obtain these rn + registry.accept(new ResourceLocation("minecraft:mud_bricks")); + registry.accept(new ResourceLocation("minecraft:mossy_stone_bricks_from_vine")); + registry.accept(new ResourceLocation("minecraft:mossy_stone_bricks_from_moss_block")); + registry.accept(new ResourceLocation("minecraft:packed_mud")); // Carpet replacement for (DyeColor color : DyeColor.values()) { @@ -456,5 +456,70 @@ private static void removeVanillaBlockRecipes(Consumer registr registry.accept(new ResourceLocation("minecraft:polished_deepslate_slab")); registry.accept(new ResourceLocation("minecraft:deepslate_brick_slab")); registry.accept(new ResourceLocation("minecraft:deepslate_tile_slab")); + // stair + registry.accept(new ResourceLocation("minecraft:stone_stairs")); + registry.accept(new ResourceLocation("minecraft:cobblestone_stairs")); + registry.accept(new ResourceLocation("minecraft:mossy_cobblestone_stairs")); + registry.accept(new ResourceLocation("minecraft:stone_brick_stairs")); + registry.accept(new ResourceLocation("minecraft:mossy_stone_brick_stairs")); + registry.accept(new ResourceLocation("minecraft:granite_stairs")); + registry.accept(new ResourceLocation("minecraft:polished_granite_stairs")); + registry.accept(new ResourceLocation("minecraft:diorite_stairs")); + registry.accept(new ResourceLocation("minecraft:polished_diorite_stairs")); + registry.accept(new ResourceLocation("minecraft:andesite_stairs")); + registry.accept(new ResourceLocation("minecraft:polished_andesite_stairs")); + registry.accept(new ResourceLocation("minecraft:cobbled_deepslate_stairs")); + registry.accept(new ResourceLocation("minecraft:polished_deepslate_stairs")); + registry.accept(new ResourceLocation("minecraft:deepslate_brick_stairs")); + registry.accept(new ResourceLocation("minecraft:deepslate_tile_stairs")); + registry.accept(new ResourceLocation("minecraft:brick_stairs")); + registry.accept(new ResourceLocation("minecraft:mud_brick_stairs")); + registry.accept(new ResourceLocation("minecraft:sandstone_stairs")); + registry.accept(new ResourceLocation("minecraft:smooth_sandstone_stairs")); + registry.accept(new ResourceLocation("minecraft:red_sandstone_stairs")); + registry.accept(new ResourceLocation("minecraft:smooth_red_sandstone_stairs")); + registry.accept(new ResourceLocation("minecraft:prismarine_stairs")); + registry.accept(new ResourceLocation("minecraft:prismarine_brick_stairs")); + registry.accept(new ResourceLocation("minecraft:dark_prismarine_stairs")); + registry.accept(new ResourceLocation("minecraft:nether_brick_stairs")); + registry.accept(new ResourceLocation("minecraft:red_nether_brick_stairs")); + registry.accept(new ResourceLocation("minecraft:blackstone_stairs")); + registry.accept(new ResourceLocation("minecraft:polished_blackstone_stairs")); + registry.accept(new ResourceLocation("minecraft:polished_blackstone_brick_stairs")); + registry.accept(new ResourceLocation("minecraft:end_stone_brick_stairs")); + registry.accept(new ResourceLocation("minecraft:purpur_stairs")); + registry.accept(new ResourceLocation("minecraft:quartz_stairs")); + registry.accept(new ResourceLocation("minecraft:smooth_quartz_stairs")); + registry.accept(new ResourceLocation("minecraft:cut_copper_stairs")); + registry.accept(new ResourceLocation("minecraft:exposed_cut_copper_stairs")); + registry.accept(new ResourceLocation("minecraft:weathered_cut_copper_stairs")); + registry.accept(new ResourceLocation("minecraft:oxidized_cut_copper_stairs")); + registry.accept(new ResourceLocation("minecraft:waxed_cut_copper_stairs")); + registry.accept(new ResourceLocation("minecraft:waxed_exposed_cut_copper_stairs")); + registry.accept(new ResourceLocation("minecraft:waxed_weathered_cut_copper_stairs")); + registry.accept(new ResourceLocation("minecraft:waxed_oxidized_cut_copper_stairs")); + // wall + registry.accept(new ResourceLocation("minecraft:cobblestone_wall")); + registry.accept(new ResourceLocation("minecraft:mossy_cobblestone_wall")); + registry.accept(new ResourceLocation("minecraft:stone_brick_wall")); + registry.accept(new ResourceLocation("minecraft:mossy_stone_brick_wall")); + registry.accept(new ResourceLocation("minecraft:granite_wall")); + registry.accept(new ResourceLocation("minecraft:diorite_wall")); + registry.accept(new ResourceLocation("minecraft:andesite_wall")); + registry.accept(new ResourceLocation("minecraft:cobbled_deepslate_wall")); + registry.accept(new ResourceLocation("minecraft:polished_deepslate_wall")); + registry.accept(new ResourceLocation("minecraft:deepslate_brick_wall")); + registry.accept(new ResourceLocation("minecraft:deepslate_tile_wall")); + registry.accept(new ResourceLocation("minecraft:brick_wall")); + registry.accept(new ResourceLocation("minecraft:mud_brick_wall")); + registry.accept(new ResourceLocation("minecraft:sandstone_wall")); + registry.accept(new ResourceLocation("minecraft:red_sandstone_wall")); + registry.accept(new ResourceLocation("minecraft:prismarine_wall")); + registry.accept(new ResourceLocation("minecraft:nether_brick_wall")); + registry.accept(new ResourceLocation("minecraft:red_nether_brick_wall")); + registry.accept(new ResourceLocation("minecraft:blackstone_wall")); + registry.accept(new ResourceLocation("minecraft:polished_blackstone_wall")); + registry.accept(new ResourceLocation("minecraft:polished_blackstone_brick_wall")); + registry.accept(new ResourceLocation("minecraft:end_stone_brick_wall")); } } diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MachineRecipeLoader.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MachineRecipeLoader.java index e4017afe43..9e58686112 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MachineRecipeLoader.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MachineRecipeLoader.java @@ -1299,11 +1299,19 @@ private static void registerMossRecipe(Consumer provider, List mossStack) { for (int i = 0; i < regularStack.size(); i++) { ResourceLocation mossId = BuiltInRegistries.ITEM.getKey(mossStack.get(i).getItem()); - CHEMICAL_BATH_RECIPES.recipeBuilder("bath_" + mossId.getPath()) + MIXER_RECIPES.recipeBuilder(mossId.getPath() + "_from_moss_block") .inputItems(regularStack.get(i)) - .inputFluids(Water.getFluid(100)) + .inputItems(new ItemStack(Blocks.MOSS_BLOCK)) + .inputFluids(Water.getFluid(250)) .outputItems(mossStack.get(i)) - .duration(50).EUt(16).save(provider); + .duration(40).EUt(1).save(provider); + + MIXER_RECIPES.recipeBuilder(mossId.getPath() + "_from_vine") + .inputItems(regularStack.get(i)) + .inputItems(new ItemStack(Blocks.VINE)) + .inputFluids(Water.getFluid(250)) + .outputItems(mossStack.get(i)) + .duration(40).EUt(1).save(provider); } } diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/StoneMachineRecipes.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/StoneMachineRecipes.java new file mode 100644 index 0000000000..5c3ba0a04d --- /dev/null +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/StoneMachineRecipes.java @@ -0,0 +1,676 @@ +package com.gregtechceu.gtceu.data.recipe.misc; + +import com.gregtechceu.gtceu.GTCEu; +import com.gregtechceu.gtceu.api.GTValues; +import com.gregtechceu.gtceu.api.data.chemical.ChemicalHelper; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.ItemMaterialInfo; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialStack; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.UnificationEntry; +import com.gregtechceu.gtceu.api.data.tag.TagPrefix; +import com.gregtechceu.gtceu.common.data.GTItems; +import com.gregtechceu.gtceu.common.data.GTMaterials; +import com.gregtechceu.gtceu.common.data.GTRecipeTypes; +import com.gregtechceu.gtceu.config.ConfigHolder; +import com.gregtechceu.gtceu.data.recipe.StoneTypeEntry; +import com.gregtechceu.gtceu.data.recipe.VanillaRecipeHelper; + +import net.minecraft.data.recipes.FinishedRecipe; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; + +import org.jetbrains.annotations.NotNull; + +import java.util.Arrays; +import java.util.List; +import java.util.function.Consumer; + +import static com.gregtechceu.gtceu.api.GTValues.ULV; +import static com.gregtechceu.gtceu.api.GTValues.VA; +import static com.gregtechceu.gtceu.common.data.GTRecipeTypes.ASSEMBLER_RECIPES; + +public class StoneMachineRecipes { + + public static void init(Consumer provider) { + registerStoneRecipes(provider); + } + + private static List DEFAULT_ENTRIES; + + private static List getDefaultEntries() { + if (DEFAULT_ENTRIES == null) { + final String mcModID = "minecraft"; + return DEFAULT_ENTRIES = Arrays.asList( + new StoneTypeEntry.Builder(mcModID, "stone") + .stone(Items.STONE) + .crackedStone(Items.COBBLESTONE) + .polishedStone(Items.STONE_BRICKS) + .slab(Items.STONE_SLAB) + .stair(Items.STONE_STAIRS) + .button(Items.STONE_BUTTON) + .pressurePlate(Items.STONE_PRESSURE_PLATE) + .material(GTMaterials.Stone) + .registerAllUnificationInfo() + .build(), + new StoneTypeEntry.Builder(mcModID, "smooth_stone") + .stone(Items.SMOOTH_STONE) + .slab(Items.SMOOTH_STONE_SLAB) + .material(GTMaterials.Stone) + .registerAllUnificationInfo() + .build(), + new StoneTypeEntry.Builder(mcModID, "stone_brick") + .stone(Items.STONE_BRICKS) + .crackedStone(Items.CRACKED_STONE_BRICKS) + .chiselStone(Items.CHISELED_STONE_BRICKS) + .slab(Items.STONE_BRICK_SLAB) + .stair(Items.STONE_BRICK_STAIRS) + .wall(Items.STONE_BRICK_WALL) + .material(GTMaterials.Stone) + .registerAllUnificationInfo() + .build(), + new StoneTypeEntry.Builder(mcModID, "andesite") + .stone(Items.ANDESITE) + .polishedStone(Items.POLISHED_ANDESITE) + .slab(Items.ANDESITE_SLAB) + .stair(Items.ANDESITE_STAIRS) + .wall(Items.ANDESITE_WALL) + .material(GTMaterials.Andesite) + .registerAllUnificationInfo() + .build(), + new StoneTypeEntry.Builder(mcModID, "polished_andesite") + .stone(Items.POLISHED_ANDESITE) + .slab(Items.POLISHED_ANDESITE_SLAB) + .stair(Items.POLISHED_ANDESITE_STAIRS) + .material(GTMaterials.Andesite) + .registerAllUnificationInfo() + .build(), + new StoneTypeEntry.Builder(mcModID, "granite") + .stone(Items.GRANITE) + .polishedStone(Items.POLISHED_GRANITE) + .slab(Items.GRANITE_SLAB) + .stair(Items.GRANITE_STAIRS) + .wall(Items.GRANITE_WALL) + .material(GTMaterials.Granite) + .registerAllUnificationInfo() + .build(), + new StoneTypeEntry.Builder(mcModID, "polished_granite") + .stone(Items.POLISHED_GRANITE) + .slab(Items.POLISHED_GRANITE_SLAB) + .stair(Items.POLISHED_GRANITE_STAIRS) + .material(GTMaterials.Granite) + .registerAllUnificationInfo() + .build(), + new StoneTypeEntry.Builder(mcModID, "diorite") + .stone(Items.DIORITE) + .polishedStone(Items.POLISHED_DIORITE) + .slab(Items.DIORITE_SLAB) + .stair(Items.DIORITE_STAIRS) + .wall(Items.DIORITE_WALL) + .material(GTMaterials.Diorite) + .registerAllUnificationInfo() + .build(), + new StoneTypeEntry.Builder(mcModID, "polished_diorite") + .stone(Items.POLISHED_DIORITE) + .slab(Items.POLISHED_DIORITE_SLAB) + .stair(Items.POLISHED_DIORITE_STAIRS) + .material(GTMaterials.Diorite) + .registerAllUnificationInfo() + .build(), + new StoneTypeEntry.Builder(mcModID, "sandstone") + .stone(Items.SANDSTONE) + .polishedStone(Items.CUT_SANDSTONE) + .chiselStone(Items.CHISELED_SANDSTONE) + .slab(Items.SANDSTONE_SLAB) + .stair(Items.SANDSTONE_STAIRS) + .wall(Items.SANDSTONE_WALL) + .material(GTMaterials.QuartzSand) + .registerAllUnificationInfo() + .build(), + new StoneTypeEntry.Builder(mcModID, "smooth_sandstone") + .stone(Items.SMOOTH_SANDSTONE) + .slab(Items.SMOOTH_SANDSTONE_SLAB) + .stair(Items.SMOOTH_SANDSTONE_STAIRS) + .material(GTMaterials.QuartzSand) + .registerAllUnificationInfo() + .build(), + new StoneTypeEntry.Builder(mcModID, "cut_sandstone") + .stone(Items.CUT_SANDSTONE) + .slab(Items.CUT_STANDSTONE_SLAB) + .material(GTMaterials.QuartzSand) + .registerAllUnificationInfo() + .build(), + new StoneTypeEntry.Builder(mcModID, "red_sandstone") + .stone(Items.RED_SANDSTONE) + .polishedStone(Items.CUT_RED_SANDSTONE) + .chiselStone(Items.CHISELED_RED_SANDSTONE) + .slab(Items.RED_SANDSTONE_SLAB) + .stair(Items.RED_SANDSTONE_STAIRS) + .wall(Items.RED_SANDSTONE_WALL) + .material(GTMaterials.QuartzSand) + .registerAllUnificationInfo() + .build(), + new StoneTypeEntry.Builder(mcModID, "smooth_red_sandstone") + .stone(Items.SMOOTH_RED_SANDSTONE) + .slab(Items.SMOOTH_RED_SANDSTONE_SLAB) + .stair(Items.SMOOTH_RED_SANDSTONE_STAIRS) + .material(GTMaterials.QuartzSand) + .registerAllUnificationInfo() + .build(), + new StoneTypeEntry.Builder(mcModID, "cut_red_sandstone") + .stone(Items.CUT_RED_SANDSTONE) + .slab(Items.CUT_RED_SANDSTONE_SLAB) + .material(GTMaterials.QuartzSand) + .registerAllUnificationInfo() + .build(), + new StoneTypeEntry.Builder(mcModID, "cobblestone") + .stone(Items.COBBLESTONE) + .slab(Items.COBBLESTONE_SLAB) + .stair(Items.COBBLESTONE_STAIRS) + .wall(Items.COBBLESTONE_WALL) + .material(GTMaterials.Stone) + .registerAllUnificationInfo() + .build(), + new StoneTypeEntry.Builder(mcModID, "mossy_cobblestone") + .stone(Items.MOSSY_COBBLESTONE) + .slab(Items.MOSSY_COBBLESTONE_SLAB) + .stair(Items.MOSSY_COBBLESTONE_STAIRS) + .wall(Items.MOSSY_COBBLESTONE_WALL) + .material(GTMaterials.Stone) + .registerAllUnificationInfo() + .build(), + new StoneTypeEntry.Builder(mcModID, "mossy_stone_brick") + .stone(Items.MOSSY_STONE_BRICKS) + .slab(Items.MOSSY_STONE_BRICK_SLAB) + .stair(Items.MOSSY_STONE_BRICK_STAIRS) + .wall(Items.MOSSY_STONE_BRICK_WALL) + .material(GTMaterials.Stone) + .registerAllUnificationInfo() + .build(), + new StoneTypeEntry.Builder(mcModID, "blackstone") + .stone(Items.BLACKSTONE) + .polishedStone(Items.POLISHED_BLACKSTONE) + .slab(Items.BLACKSTONE_SLAB) + .stair(Items.BLACKSTONE_STAIRS) + .wall(Items.BLACKSTONE_WALL) + .material(GTMaterials.Blackstone) + .registerAllUnificationInfo() + .build(), + new StoneTypeEntry.Builder(mcModID, "polished_blackstone") + .stone(Items.POLISHED_BLACKSTONE) + .polishedStone(Items.POLISHED_BLACKSTONE_BRICKS) + .chiselStone(Items.CHISELED_POLISHED_BLACKSTONE) + .crackedStone(Items.CRACKED_POLISHED_BLACKSTONE_BRICKS) + .slab(Items.POLISHED_BLACKSTONE_SLAB) + .stair(Items.POLISHED_BLACKSTONE_STAIRS) + .wall(Items.POLISHED_BLACKSTONE_WALL) + .pressurePlate(Items.POLISHED_BLACKSTONE_PRESSURE_PLATE) + .material(GTMaterials.Blackstone) + .registerAllUnificationInfo() + .build(), + new StoneTypeEntry.Builder(mcModID, "polished_blackstone_brick") + .stone(Items.POLISHED_BLACKSTONE_BRICKS) + .slab(Items.POLISHED_BLACKSTONE_BRICK_SLAB) + .stair(Items.POLISHED_BLACKSTONE_BRICK_STAIRS) + .button(Items.POLISHED_BLACKSTONE_BUTTON) + .wall(Items.POLISHED_BLACKSTONE_BRICK_WALL) + .material(GTMaterials.Blackstone) + .registerAllUnificationInfo() + .build(), + new StoneTypeEntry.Builder(mcModID, "brick") + .stone(Items.BRICKS) + .slab(Items.BRICK_SLAB) + .stair(Items.BRICK_STAIRS) + .wall(Items.BRICK_WALL) + .material(GTMaterials.Brick) + .registerAllUnificationInfo() + .build(), + new StoneTypeEntry.Builder(mcModID, "mud_brick") + .stone(Items.MUD_BRICKS) + .slab(Items.MUD_BRICK_SLAB) + .stair(Items.MUD_BRICK_STAIRS) + .wall(Items.MUD_BRICK_WALL) + .material(GTMaterials.Clay) // maybe? + .registerAllUnificationInfo() + .build(), + new StoneTypeEntry.Builder(mcModID, "nether_bricks") + .stone(Items.NETHER_BRICKS) + .crackedStone(Items.CRACKED_NETHER_BRICKS) + .chiselStone(Items.CHISELED_NETHER_BRICKS) + .slab(Items.NETHER_BRICK_SLAB) + .stair(Items.NETHER_BRICK_STAIRS) + .wall(Items.NETHER_BRICK_WALL) + .material(GTMaterials.Netherrack) + .registerAllUnificationInfo() + .build(), + new StoneTypeEntry.Builder(mcModID, "red_nether_brick") + .stone(Items.RED_NETHER_BRICKS) + .slab(Items.RED_NETHER_BRICK_SLAB) + .stair(Items.RED_NETHER_BRICK_STAIRS) + .wall(Items.RED_NETHER_BRICK_WALL) + .material(GTMaterials.Netherrack) + .registerAllUnificationInfo() + .build(), + new StoneTypeEntry.Builder(mcModID, "quartz") + .stone(Items.QUARTZ_BLOCK) + .polishedStone(Items.QUARTZ_BRICKS) + .chiselStone(Items.CHISELED_QUARTZ_BLOCK) + .slab(Items.QUARTZ_SLAB) + .stair(Items.QUARTZ_STAIRS) + .material(GTMaterials.NetherQuartz) + .registerAllUnificationInfo() + .build(), + new StoneTypeEntry.Builder(mcModID, "smooth_quartz") + .stone(Items.SMOOTH_QUARTZ) + .slab(Items.SMOOTH_QUARTZ_SLAB) + .stair(Items.SMOOTH_QUARTZ_STAIRS) + .material(GTMaterials.NetherQuartz) + .registerAllUnificationInfo() + .build(), + new StoneTypeEntry.Builder(mcModID, "cut_copper") + .stone(Items.CUT_COPPER) + .slab(Items.CUT_COPPER_SLAB) + .stair(Items.CUT_COPPER_STAIRS) + .material(GTMaterials.Copper, 9 * GTValues.M / 4) + .registerAllUnificationInfo() + .build(), + new StoneTypeEntry.Builder(mcModID, "exposed_cut_copper") + .stone(Items.EXPOSED_CUT_COPPER) + .slab(Items.EXPOSED_CUT_COPPER_SLAB) + .stair(Items.EXPOSED_CUT_COPPER_STAIRS) + .material(GTMaterials.Copper, 9 * GTValues.M / 4) + .registerAllUnificationInfo() + .build(), + new StoneTypeEntry.Builder(mcModID, "oxidized_cut_copper") + .stone(Items.OXIDIZED_CUT_COPPER) + .slab(Items.OXIDIZED_CUT_COPPER_SLAB) + .stair(Items.OXIDIZED_CUT_COPPER_STAIRS) + .material(GTMaterials.Copper, 9 * GTValues.M / 4) + .registerAllUnificationInfo() + .build(), + new StoneTypeEntry.Builder(mcModID, "weathered_cut_copper") + .stone(Items.WEATHERED_CUT_COPPER) + .slab(Items.WEATHERED_CUT_COPPER_SLAB) + .stair(Items.WEATHERED_CUT_COPPER_STAIRS) + .material(GTMaterials.Copper, 9 * GTValues.M / 4) + .registerAllUnificationInfo() + .build(), + new StoneTypeEntry.Builder(mcModID, "waxed_cut_copper") + .stone(Items.WAXED_CUT_COPPER) + .slab(Items.WAXED_CUT_COPPER_SLAB) + .stair(Items.WAXED_CUT_COPPER_STAIRS) + .material(GTMaterials.Copper, 9 * GTValues.M / 4) + .registerAllUnificationInfo() + .build(), + new StoneTypeEntry.Builder(mcModID, "waxed_exposed_cut_copper") + .stone(Items.WAXED_EXPOSED_CUT_COPPER) + .slab(Items.WAXED_EXPOSED_CUT_COPPER_SLAB) + .stair(Items.WAXED_EXPOSED_CUT_COPPER_STAIRS) + .material(GTMaterials.Copper, 9 * GTValues.M / 4) + .registerAllUnificationInfo() + .build(), + new StoneTypeEntry.Builder(mcModID, "waxed_oxidized_cut_copper") + .stone(Items.WAXED_OXIDIZED_CUT_COPPER) + .slab(Items.WAXED_OXIDIZED_CUT_COPPER_SLAB) + .stair(Items.WAXED_OXIDIZED_CUT_COPPER_STAIRS) + .material(GTMaterials.Copper, 9 * GTValues.M / 4) + .registerAllUnificationInfo() + .build(), + new StoneTypeEntry.Builder(mcModID, "waxed_weathered_cut_copper") + .stone(Items.WAXED_WEATHERED_CUT_COPPER) + .slab(Items.WAXED_WEATHERED_CUT_COPPER_SLAB) + .stair(Items.WAXED_WEATHERED_CUT_COPPER_STAIRS) + .material(GTMaterials.Copper, 9 * GTValues.M / 4) + .registerAllUnificationInfo() + .build(), + new StoneTypeEntry.Builder(mcModID, "purpur") + .stone(Items.PURPUR_BLOCK) + .chiselStone(Items.PURPUR_PILLAR) + .slab(Items.PURPUR_SLAB) + .stair(Items.PURPUR_STAIRS) + // .material() // TODO purpur material? + .registerAllUnificationInfo() + .build(), + new StoneTypeEntry.Builder(mcModID, "end_stone") + .stone(Items.END_STONE) + .polishedStone(Items.END_STONE_BRICKS) + .slab(Items.END_STONE_BRICK_SLAB) + .stair(Items.END_STONE_BRICK_STAIRS) + .wall(Items.END_STONE_BRICK_WALL) + .material(GTMaterials.Endstone) + .registerAllUnificationInfo() + .build(), + new StoneTypeEntry.Builder(mcModID, "prismarine") + .stone(Items.PRISMARINE) + .slab(Items.PRISMARINE_SLAB) + .stair(Items.PRISMARINE_STAIRS) + .wall(Items.PRISMARINE_WALL) + // .material() // TODO prismarine material? + .registerAllUnificationInfo() + .build(), + new StoneTypeEntry.Builder(mcModID, "dark_prismarine") + .stone(Items.DARK_PRISMARINE) + .slab(Items.DARK_PRISMARINE_SLAB) + .stair(Items.DARK_PRISMARINE_STAIRS) + .registerAllUnificationInfo() + .build(), + new StoneTypeEntry.Builder(mcModID, "prismarine_brick") + .stone(Items.PRISMARINE_BRICKS) + .slab(Items.PRISMARINE_BRICK_SLAB) + .stair(Items.PRISMARINE_BRICK_STAIRS) + .registerAllUnificationInfo() + .build(), + new StoneTypeEntry.Builder(mcModID, "bamboo_mosaic") + .stone(Items.BAMBOO_MOSAIC) + .slab(Items.BAMBOO_MOSAIC_SLAB) + .stair(Items.BAMBOO_MOSAIC_STAIRS) + .material(GTMaterials.Wood) + .registerAllUnificationInfo() + .build(), + new StoneTypeEntry.Builder(mcModID, "deepslate") + .stone(Items.DEEPSLATE) + .crackedStone(Items.COBBLED_DEEPSLATE) + .build(), + new StoneTypeEntry.Builder(mcModID, "cobbled_deepslate") + .stone(Items.COBBLED_DEEPSLATE) + .polishedStone(Items.POLISHED_DEEPSLATE) + .chiselStone(Items.CHISELED_DEEPSLATE) + .slab(Items.COBBLED_DEEPSLATE_SLAB) + .stair(Items.COBBLED_DEEPSLATE_STAIRS) + .wall(Items.COBBLED_DEEPSLATE_WALL) + .material(GTMaterials.Deepslate) + .registerAllUnificationInfo() + .build(), + new StoneTypeEntry.Builder(mcModID, "polished_deepslate") + .stone(Items.POLISHED_DEEPSLATE) + .polishedStone(Items.DEEPSLATE_BRICKS) + .slab(Items.POLISHED_DEEPSLATE_SLAB) + .stair(Items.POLISHED_DEEPSLATE_STAIRS) + .wall(Items.POLISHED_DEEPSLATE_WALL) + .material(GTMaterials.Deepslate) + .registerAllUnificationInfo() + .build(), + new StoneTypeEntry.Builder(mcModID, "deepslate_bricks") + .stone(Items.DEEPSLATE_BRICKS) + .polishedStone(Items.DEEPSLATE_TILES) + .crackedStone(Items.CRACKED_DEEPSLATE_BRICKS) + .slab(Items.DEEPSLATE_BRICK_SLAB) + .stair(Items.DEEPSLATE_BRICK_STAIRS) + .wall(Items.DEEPSLATE_BRICK_WALL) + .material(GTMaterials.Deepslate) + .registerAllUnificationInfo() + .build(), + new StoneTypeEntry.Builder(mcModID, "deepslate_tile") + .stone(Items.DEEPSLATE_TILES) + .crackedStone(Items.CRACKED_DEEPSLATE_TILES) + .slab(Items.DEEPSLATE_TILE_SLAB) + .stair(Items.DEEPSLATE_TILE_STAIRS) + .wall(Items.DEEPSLATE_TILE_WALL) + .material(GTMaterials.Deepslate) + .registerAllUnificationInfo() + .build(), + new StoneTypeEntry.Builder(mcModID, "basalt") + .stone(Items.BASALT) + .polishedStone(Items.POLISHED_BASALT) + .material(GTMaterials.Basalt) + .registerAllUnificationInfo() + .build() + + ); + } + return DEFAULT_ENTRIES; + } + + public static void registerUnificationInfo() { + for (StoneTypeEntry entry : getDefaultEntries()) { + registerStoneUnificationInfo(entry); + } + } + + public static void registerStoneUnificationInfo(@NotNull StoneTypeEntry entry) { + if (entry.material != null && entry.stone != null) { + if (entry.addStoneOreDict) { + ChemicalHelper.registerUnificationItems(TagPrefix.block, entry.material, entry.stone); + } + if (entry.addStoneUnificationInfo) { + ChemicalHelper.registerMaterialInfo(entry.stone, + new ItemMaterialInfo(new MaterialStack(entry.material, entry.materialAmount))); + } + } + + if (entry.material != null && entry.polishedStone != null) { + if (entry.addStoneOreDict) { + ChemicalHelper.registerUnificationItems(TagPrefix.block, entry.material, entry.polishedStone); + } + if (entry.addPolishedStoneUnificationInfo) { + ChemicalHelper.registerMaterialInfo(entry.polishedStone, + new ItemMaterialInfo(new MaterialStack(entry.material, entry.materialAmount))); + } + } + + if (entry.material != null && entry.smeltStone != null) { + if (entry.addStoneOreDict) { + ChemicalHelper.registerUnificationItems(TagPrefix.block, entry.material, entry.smeltStone); + } + if (entry.addSmeltStoneUnificationInfo) { + ChemicalHelper.registerMaterialInfo(entry.smeltStone, + new ItemMaterialInfo(new MaterialStack(entry.material, entry.materialAmount))); + } + } + + if (entry.material != null && entry.chiselStone != null) { + if (entry.addStoneOreDict) { + ChemicalHelper.registerUnificationItems(TagPrefix.block, entry.material, entry.chiselStone); + } + if (entry.addChiselStoneUnificationInfo) { + ChemicalHelper.registerMaterialInfo(entry.chiselStone, + new ItemMaterialInfo(new MaterialStack(entry.material, entry.materialAmount))); + } + } + + if (entry.material != null && entry.crackedStone != null) { + if (entry.addStoneOreDict) { + ChemicalHelper.registerUnificationItems(TagPrefix.block, entry.material, entry.crackedStone); + } + if (entry.addCrackedStoneUnificationInfo) { + ChemicalHelper.registerMaterialInfo(entry.crackedStone, + new ItemMaterialInfo(new MaterialStack(entry.material, entry.materialAmount))); + } + } + + if (entry.material != null && entry.slab != null) { + if (entry.addSlabOreDict) { + ChemicalHelper.registerUnificationItems(TagPrefix.slab, entry.material, entry.slab); + } + if (entry.addSlabUnificationInfo) { + ChemicalHelper.registerMaterialInfo(entry.slab, + new ItemMaterialInfo(new MaterialStack(entry.material, entry.materialAmount / 2))); + } + } + + if (entry.material != null && entry.stair != null) { + if (entry.addStairOreDict) { + ChemicalHelper.registerUnificationItems(TagPrefix.stairs, entry.material, entry.stair); + } + if (entry.addStairUnificationInfo) { + ChemicalHelper.registerMaterialInfo(entry.stair, + new ItemMaterialInfo(new MaterialStack(entry.material, (3 * entry.materialAmount) / 4))); + } + } + + if (entry.material != null && entry.wall != null) { + if (entry.addWallOreDict) { + ChemicalHelper.registerUnificationItems(TagPrefix.fence, entry.material, entry.wall); + } + if (entry.addWallUnificationInfo) { + ChemicalHelper.registerMaterialInfo(entry.wall, + new ItemMaterialInfo(new MaterialStack(entry.material, entry.materialAmount))); + } + } + + if (entry.material != null && entry.pressurePlate != null && entry.addPressurePlateUnificationInfo) { + ChemicalHelper.registerMaterialInfo(entry.pressurePlate, + new ItemMaterialInfo(new MaterialStack(entry.material, entry.materialAmount / 4))); + } + + if (entry.material != null && entry.button != null && entry.addButtonUnificationInfo) { + ChemicalHelper.registerMaterialInfo(entry.button, + new ItemMaterialInfo(new MaterialStack(entry.material, entry.materialAmount / 6))); + } + } + + private static void registerStoneRecipes(Consumer provider) { + for (StoneTypeEntry entry : getDefaultEntries()) { + registerStoneTypeRecipes(provider, entry); + } + } + + public static void registerStoneTypeRecipes(Consumer provider, @NotNull StoneTypeEntry entry) { + if (entry.stone == null) { + GTCEu.LOGGER.error("could not find stone form of StoneTypeEntry, id: {}", entry.stoneName); + return; + } + + if (entry.polishedStone != null) { + if (ConfigHolder.INSTANCE.recipes.removeVanillaBlockRecipes) { + VanillaRecipeHelper.addShapedRecipe(provider, entry.stoneName + "_polish_hammer", + new ItemStack(entry.polishedStone), + "hSS", " SS", + 'S', entry.stone); + } + + GTRecipeTypes.ASSEMBLER_RECIPES.recipeBuilder("assemble_" + entry.stoneName + "_into_polished") + .inputItems(entry.stone) + .circuitMeta(4) + .outputItems(entry.polishedStone) + .duration(80) + .EUt(1) + .save(provider); + } + + if (entry.crackedStone != null) { + if (ConfigHolder.INSTANCE.recipes.removeVanillaBlockRecipes) { + VanillaRecipeHelper.addShapedRecipe(provider, entry.stoneName + "_hammer", + new ItemStack(entry.crackedStone), + "h", "S", + 'S', entry.stone); + } + + GTRecipeTypes.FORGE_HAMMER_RECIPES.recipeBuilder("hammer_" + entry.stoneName + "_into_cracked") + .inputItems(entry.stone) + .outputItems(entry.crackedStone) + .duration(12).EUt(4).save(provider); + } + + if (entry.smeltStone != null) { + VanillaRecipeHelper.addSmeltingRecipe(provider, "smelt_" + entry.stoneName + "_into_" + entry.smeltStone, + entry.stone, entry.smeltStone, 0.1f); + } + + if (entry.slab != null) { + if (ConfigHolder.INSTANCE.recipes.removeVanillaBlockRecipes) { + VanillaRecipeHelper.addShapedRecipe(provider, entry.stoneName + "_slab_saw", new ItemStack(entry.slab), + "sS", + 'S', entry.stone); + } + + GTRecipeTypes.CUTTER_RECIPES.recipeBuilder("cut_" + entry.stoneName + "_into_slab") + .inputItems(entry.stone) + .outputItems(entry.slab, 2) + .duration(40) + .EUt(8) + .save(provider); + + if (entry.chiselStone != null) { + if (ConfigHolder.INSTANCE.recipes.removeVanillaBlockRecipes) { + VanillaRecipeHelper.addShapedRecipe(provider, entry.stoneName + "_polished_hammer", + new ItemStack(entry.chiselStone), + "mSd", " S", " S", + 'S', entry.slab); + } + GTRecipeTypes.FORMING_PRESS_RECIPES.recipeBuilder("form_" + entry.stoneName + "_slab_into_pillar") + .inputItems(entry.slab, 2) + .outputItems(entry.chiselStone) + .duration(80) + .EUt(8) + .save(provider); + } + } + + if (entry.button != null) { + if (ConfigHolder.INSTANCE.recipes.hardRedstoneRecipes && entry.pressurePlate != null) { + VanillaRecipeHelper.addShapedRecipe(provider, "stone_button", new ItemStack(entry.button, 6), "sP", + 'P', entry.pressurePlate); + } + + if (entry.slab != null) { + GTRecipeTypes.CUTTER_RECIPES.recipeBuilder("cut_" + entry.stoneName + "slab_into_button") + .inputItems(entry.slab) + .outputItems(entry.button, 3) + .duration(60) + .EUt(8) + .save(provider); + } else { + GTRecipeTypes.FORMING_PRESS_RECIPES.recipeBuilder("cut_" + entry.stoneName + "_into_button") + .inputItems(entry.stone) + .notConsumable(GTItems.SHAPE_MOLD_NUGGET) + .outputItems(entry.button, 6) + .duration(60) + .EUt(8) + .save(provider); + } + } + + if (entry.pressurePlate != null) { + + if (ConfigHolder.INSTANCE.recipes.hardRedstoneRecipes && entry.slab != null) { + VanillaRecipeHelper.addShapedRecipe(provider, entry.stoneName + "_pressure_plate", + new ItemStack(entry.pressurePlate, 2), "ShS", "LCL", "SdS", + 'S', new UnificationEntry(TagPrefix.screw, GTMaterials.Iron), + 'L', entry.slab, + 'C', new UnificationEntry(TagPrefix.spring, GTMaterials.Iron)); + + ASSEMBLER_RECIPES.recipeBuilder(entry.stoneName + "_pressure_plate") + .inputItems(TagPrefix.spring, GTMaterials.Iron) + .inputItems(entry.stone, 2) + .outputItems(entry.pressurePlate, 2) + .duration(100) + .EUt(VA[ULV]) + .save(provider); + } else if (ConfigHolder.INSTANCE.recipes.removeVanillaBlockRecipes) { + + } + } + + if (entry.stair != null) { + if (ConfigHolder.INSTANCE.recipes.removeVanillaBlockRecipes) { + VanillaRecipeHelper.addShapedRecipe(provider, entry.stoneName + "_stair_saw", + new ItemStack(entry.stair, 3), + "Ss ", "SS ", "SSS", + 'S', entry.stone); + } + + GTRecipeTypes.ASSEMBLER_RECIPES.recipeBuilder("assemble_" + entry.stoneName + "_into_stair") + .inputItems(entry.stone, 3) + .circuitMeta(7) + .outputItems(entry.stair, 4) + .duration(80) + .EUt(8) + .save(provider); + } + + if (entry.wall != null) { + if (ConfigHolder.INSTANCE.recipes.removeVanillaBlockRecipes) { + VanillaRecipeHelper.addShapedRecipe(provider, entry.stoneName + "_wall_saw", + new ItemStack(entry.wall, 2), + "sS", " S", " S", + 'S', entry.stone); + } + GTRecipeTypes.ASSEMBLER_RECIPES.recipeBuilder("assemble_" + entry.stoneName + "_into_wall") + .inputItems(entry.stone) + .circuitMeta(13) + .outputItems(entry.wall) + .duration(100) + .EUt(8) + .save(provider); + } + } +} diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/VanillaStandardRecipes.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/VanillaStandardRecipes.java index 3a802f0fb2..5b36c217a4 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/VanillaStandardRecipes.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/VanillaStandardRecipes.java @@ -53,14 +53,13 @@ private static void compressingRecipes(Consumer provider) { .outputItems(new ItemStack(Blocks.STONE)) .save(provider); - // todo autogenerate 2x2 recipes? COMPRESSOR_RECIPES.recipeBuilder("sandstone").duration(300).EUt(2) - .inputItems(new ItemStack(Blocks.SAND, 4)) + .inputItems(new ItemStack(Blocks.SAND, 2)) .outputItems(new ItemStack(Blocks.SANDSTONE)) .save(provider); COMPRESSOR_RECIPES.recipeBuilder("red_sandstone").duration(300).EUt(2) - .inputItems(new ItemStack(Blocks.RED_SAND)) + .inputItems(new ItemStack(Blocks.RED_SAND), 2) .outputItems(new ItemStack(Blocks.RED_SANDSTONE)) .save(provider); @@ -270,23 +269,6 @@ private static void glassRecipes(Consumer provider) { * Adds smashing related recipes for vanilla blocks and items */ private static void smashingRecipes(Consumer provider) { - VanillaRecipeHelper.addShapedRecipe(provider, "cobblestone_hammer", new ItemStack(Blocks.COBBLESTONE), "h", "C", - 'C', new ItemStack(Blocks.STONE)); - VanillaRecipeHelper.addShapedRecipe(provider, "cobbled_deepslate_hammer", - new ItemStack(Blocks.COBBLED_DEEPSLATE), "h", "C", 'C', new ItemStack(Blocks.DEEPSLATE)); - - FORGE_HAMMER_RECIPES.recipeBuilder("stone_to_cobblestone") - .inputItems(new ItemStack(Blocks.STONE)) - .outputItems(new ItemStack(Blocks.COBBLESTONE)) - .EUt(16).duration(10) - .save(provider); - - FORGE_HAMMER_RECIPES.recipeBuilder("deepslate_to_cobbled_deepslate") - .inputItems(new ItemStack(Blocks.DEEPSLATE)) - .outputItems(new ItemStack(Blocks.COBBLED_DEEPSLATE)) - .EUt(16).duration(10) - .save(provider); - FORGE_HAMMER_RECIPES.recipeBuilder("cobblestone_to_gravel") .inputItems(ItemTags.STONE_CRAFTING_MATERIALS) .outputItems(new ItemStack(Blocks.GRAVEL)) @@ -337,11 +319,6 @@ private static void smashingRecipes(Consumer provider) { .outputItems(new ItemStack(Blocks.RED_SAND)) .EUt(2).duration(400).save(provider); - FORGE_HAMMER_RECIPES.recipeBuilder("cracked_stone_bricks") - .inputItems(new ItemStack(Blocks.STONE_BRICKS)) - .outputItems(new ItemStack(Blocks.CRACKED_STONE_BRICKS)) - .EUt(2).duration(400).save(provider); - VanillaRecipeHelper.addShapelessRecipe(provider, "clay_block_to_dust", ChemicalHelper.get(dust, Clay), 'm', Blocks.CLAY); VanillaRecipeHelper.addShapelessRecipe(provider, "clay_ball_to_dust", ChemicalHelper.get(dustSmall, Clay), 'm', @@ -864,7 +841,7 @@ private static void metalRecipes(Consumer provider) { .circuitMeta(7) .duration(700).EUt(4).save(provider); - ASSEMBLER_RECIPES.recipeBuilder("iron_nars") + ASSEMBLER_RECIPES.recipeBuilder("iron_bars") .inputItems(rod, Iron, 3) .outputItems(new ItemStack(Blocks.IRON_BARS, 4)) .circuitMeta(3) @@ -982,27 +959,31 @@ private static void miscRecipes(Consumer provider) { .outputItems(new ItemStack(Blocks.WHITE_WOOL)) .duration(100).EUt(4).save(provider); - ASSEMBLER_RECIPES.recipeBuilder("mossy_cobblestone_from_vine") + MIXER_RECIPES.recipeBuilder("mossy_cobblestone_from_vine") .inputItems(new ItemStack(Blocks.COBBLESTONE)) .inputItems(new ItemStack(Blocks.VINE)) + .inputFluids(Water.getFluid(250)) .outputItems(new ItemStack(Blocks.MOSSY_COBBLESTONE)) .duration(40).EUt(1).save(provider); - ASSEMBLER_RECIPES.recipeBuilder("mossy_cobblestone_from_moss_block") + MIXER_RECIPES.recipeBuilder("mossy_cobblestone_from_moss_block") .inputItems(new ItemStack(Blocks.COBBLESTONE)) .inputItems(new ItemStack(Blocks.MOSS_BLOCK)) + .inputFluids(Water.getFluid(250)) .outputItems(new ItemStack(Blocks.MOSSY_COBBLESTONE)) .duration(40).EUt(1).save(provider); - ASSEMBLER_RECIPES.recipeBuilder("mossy_stone_bricks_from_vine") + MIXER_RECIPES.recipeBuilder("mossy_stone_bricks_from_vine") .inputItems(new ItemStack(Blocks.STONE_BRICKS)) .inputItems(new ItemStack(Blocks.VINE)) + .inputFluids(Water.getFluid(250)) .outputItems(new ItemStack(Blocks.MOSSY_STONE_BRICKS)) .duration(40).EUt(1).save(provider); - ASSEMBLER_RECIPES.recipeBuilder("mossy_stone_bricks_from_moss_block") + MIXER_RECIPES.recipeBuilder("mossy_stone_bricks_from_moss_block") .inputItems(new ItemStack(Blocks.STONE_BRICKS)) .inputItems(new ItemStack(Blocks.MOSS_BLOCK)) + .inputFluids(Water.getFluid(250)) .outputItems(new ItemStack(Blocks.MOSSY_STONE_BRICKS)) .duration(40).EUt(1).save(provider); @@ -1027,9 +1008,9 @@ private static void miscRecipes(Consumer provider) { .inputItems(new ItemStack(Items.POPPED_CHORUS_FRUIT)).inputItems(new ItemStack(Items.BLAZE_ROD)) .outputItems(new ItemStack(Blocks.END_ROD, 4)).save(provider); - ASSEMBLER_RECIPES.recipeBuilder("purple_shulker_box").duration(100).EUt(VA[ULV]) + ASSEMBLER_RECIPES.recipeBuilder("shulker_box").duration(100).EUt(VA[ULV]) .inputItems(Tags.Items.CHESTS_WOODEN).inputItems(new ItemStack(Items.SHULKER_SHELL, 2)) - .outputItems(new ItemStack(Blocks.PURPLE_SHULKER_BOX)).save(provider); + .outputItems(new ItemStack(Blocks.SHULKER_BOX)).save(provider); ASSEMBLER_RECIPES.recipeBuilder("painting").duration(100).EUt(4).circuitMeta(1).inputItems(ItemTags.WOOL) .inputItems(new ItemStack(Items.STICK, 8)).outputItems(new ItemStack(Items.PAINTING)).save(provider); @@ -1194,6 +1175,34 @@ private static void miscRecipes(Consumer provider) { .inputItems(new ItemStack(Items.NAUTILUS_SHELL, 8)) .outputItems(new ItemStack(Blocks.CONDUIT)) .duration(200).EUt(16).save(provider); + + ALLOY_SMELTER_RECIPES.recipeBuilder("granite") + .inputItems(new ItemStack(Items.DIORITE)) + .inputItems(new ItemStack(Items.QUARTZ)) + .outputItems(new ItemStack(Items.GRANITE)) + .duration(80).EUt(4).save(provider); + ALLOY_SMELTER_RECIPES.recipeBuilder("diorite") + .inputItems(new ItemStack(Items.COBBLESTONE, 2)) + .inputItems(new ItemStack(Items.QUARTZ, 2)) + .outputItems(new ItemStack(Items.DIORITE, 2)) + .duration(80).EUt(4).save(provider); + ALLOY_SMELTER_RECIPES.recipeBuilder("andesite") + .inputItems(new ItemStack(Items.DIORITE)) + .inputItems(new ItemStack(Items.COBBLESTONE)) + .outputItems(new ItemStack(Items.ANDESITE, 2)) + .duration(80).EUt(4).save(provider); + + ASSEMBLER_RECIPES.recipeBuilder("assemble_block_of_quartz_into_quartz_pillar") + .inputItems(new ItemStack(Items.QUARTZ_BLOCK)) + .circuitMeta(5) + .outputItems(new ItemStack(Items.QUARTZ_PILLAR)) + .duration(80).EUt(1).save(provider); + + MIXER_RECIPES.recipeBuilder("packed_mud") + .inputItems(new ItemStack(Items.MUD)) + .inputItems(new ItemStack(Items.WHEAT)) + .outputItems(new ItemStack(Items.PACKED_MUD)) + .duration(80).EUt(4).save(provider); } /** @@ -1346,7 +1355,7 @@ private static void dyeRecipes(Consumer provider) { .save(provider); CHEMICAL_BATH_RECIPES.recipeBuilder("dark_prismarine") - .inputItems(new ItemStack(Items.PRISMARINE_SHARD, 8)) + .inputItems(new ItemStack(Items.PRISMARINE_SHARD, 4)) .inputFluids(DyeBlack.getFluid(L)) .outputItems(new ItemStack(Blocks.DARK_PRISMARINE)) .duration(20).EUt(VA[ULV]).save(provider); diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/WoodMachineRecipes.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/WoodMachineRecipes.java index ceed565ac0..31bb3e2dab 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/WoodMachineRecipes.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/WoodMachineRecipes.java @@ -389,7 +389,7 @@ public static void registerWoodUnificationInfo(@NotNull WoodTypeEntry entry) { } if (entry.addFenceGatesUnificationInfo) { ChemicalHelper.registerMaterialInfo(entry.fenceGate, - new ItemMaterialInfo(new MaterialStack(entry.material, M * 3))); + new ItemMaterialInfo(new MaterialStack(entry.material, M * 2))); } } @@ -399,7 +399,7 @@ public static void registerWoodUnificationInfo(@NotNull WoodTypeEntry entry) { } if (entry.addStairsUnificationInfo) { ChemicalHelper.registerMaterialInfo(entry.stairs, - new ItemMaterialInfo(new MaterialStack(entry.material, (3 * M) / 2))); + new ItemMaterialInfo(new MaterialStack(entry.material, (3 * M) / 4))); } } @@ -420,7 +420,7 @@ public static void registerWoodUnificationInfo(@NotNull WoodTypeEntry entry) { if (entry.pressurePlate != null && entry.addPressurePlatesUnificationInfo) { ChemicalHelper.registerMaterialInfo(entry.pressurePlate, - new ItemMaterialInfo(new MaterialStack(entry.material, M))); + new ItemMaterialInfo(new MaterialStack(entry.material, M / 4))); } }