From 82b46d462d2efd22b0ba9f4ae799468d45d19f6c Mon Sep 17 00:00:00 2001 From: ALongStringOfNumbers <31759736+ALongStringOfNumbers@users.noreply.github.com> Date: Thu, 6 May 2021 14:34:11 -0700 Subject: [PATCH] Fix incorrect cable recipe removals (#143) Fixes #140 --- .../recipes/GAMachineRecipeRemoval.java | 35 +++++++++++++------ 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/src/main/java/gregicadditions/recipes/GAMachineRecipeRemoval.java b/src/main/java/gregicadditions/recipes/GAMachineRecipeRemoval.java index b6ed8431..044b629f 100644 --- a/src/main/java/gregicadditions/recipes/GAMachineRecipeRemoval.java +++ b/src/main/java/gregicadditions/recipes/GAMachineRecipeRemoval.java @@ -18,10 +18,12 @@ import gregtech.api.unification.material.MarkerMaterials.Color; import gregtech.api.unification.material.Materials; import gregtech.api.unification.material.type.DustMaterial; +import gregtech.api.unification.material.type.FluidMaterial; import gregtech.api.unification.material.type.IngotMaterial; import gregtech.api.unification.material.type.Material; import gregtech.api.unification.ore.OrePrefix; import gregtech.api.unification.stack.MaterialStack; +import gregtech.api.util.GTUtility; import gregtech.common.blocks.BlockMachineCasing; import gregtech.common.blocks.MetaBlocks; import gregtech.common.items.MetaItems; @@ -31,6 +33,9 @@ import net.minecraft.util.ResourceLocation; import net.minecraftforge.fluids.FluidStack; +import static gregtech.loaders.oreprocessing.WireRecipeHandler.INSULATION_MATERIALS; + + public class GAMachineRecipeRemoval { private static final MaterialStack[] solderingList = { new MaterialStack(Materials.Tin, 2L), new MaterialStack(Materials.SolderingAlloy, 1L), new MaterialStack(Materials.Lead, 4L) }; @@ -49,19 +54,29 @@ public static void init() { } //Remove EV+ Cable Recipes + //Since the cables are EV+ tier, they are only covered with SBR and SR if (GAConfig.GT5U.CablesGT5U) { if(m instanceof IngotMaterial) { if(((IngotMaterial) m).cableProperties != null && ((IngotMaterial) m).cableProperties.voltage >= GTValues.EV) { - removeRecipesByInputs(RecipeMaps.ASSEMBLER_RECIPES, new ItemStack[] { OreDictUnifier.get(OrePrefix.wireGtSingle, m), IntCircuitIngredient.getIntegratedCircuit(24) }, new FluidStack[] { Materials.Rubber.getFluid(144) }); - removeRecipesByInputs(RecipeMaps.ASSEMBLER_RECIPES, new ItemStack[] { OreDictUnifier.get(OrePrefix.wireGtSingle, m, 2), IntCircuitIngredient.getIntegratedCircuit(25) }, new FluidStack[] { Materials.Rubber.getFluid(288) }); - removeRecipesByInputs(RecipeMaps.ASSEMBLER_RECIPES, new ItemStack[] { OreDictUnifier.get(OrePrefix.wireGtSingle, m, 4), IntCircuitIngredient.getIntegratedCircuit(26) }, new FluidStack[] { Materials.Rubber.getFluid(576) }); - removeRecipesByInputs(RecipeMaps.ASSEMBLER_RECIPES, new ItemStack[] { OreDictUnifier.get(OrePrefix.wireGtSingle, m, 8), IntCircuitIngredient.getIntegratedCircuit(27) }, new FluidStack[] { Materials.Rubber.getFluid(1152) }); - removeRecipesByInputs(RecipeMaps.ASSEMBLER_RECIPES, new ItemStack[] { OreDictUnifier.get(OrePrefix.wireGtSingle, m, 16), IntCircuitIngredient.getIntegratedCircuit(28) }, new FluidStack[] { Materials.Rubber.getFluid(2304) }); - removeRecipesByInputs(RecipeMaps.ASSEMBLER_RECIPES, new ItemStack[] { OreDictUnifier.get(OrePrefix.wireGtDouble, m), IntCircuitIngredient.getIntegratedCircuit(24) }, new FluidStack[] { Materials.Rubber.getFluid(288) }); - removeRecipesByInputs(RecipeMaps.ASSEMBLER_RECIPES, new ItemStack[] { OreDictUnifier.get(OrePrefix.wireGtQuadruple, m), IntCircuitIngredient.getIntegratedCircuit(24) }, new FluidStack[] { Materials.Rubber.getFluid(576) }); - removeRecipesByInputs(RecipeMaps.ASSEMBLER_RECIPES, new ItemStack[] { OreDictUnifier.get(OrePrefix.wireGtOctal, m), IntCircuitIngredient.getIntegratedCircuit(24) }, new FluidStack[] { Materials.Rubber.getFluid(1152) }); - removeRecipesByInputs(RecipeMaps.ASSEMBLER_RECIPES, new ItemStack[] { OreDictUnifier.get(OrePrefix.wireGtHex, m), IntCircuitIngredient.getIntegratedCircuit(24) }, new FluidStack[] { Materials.Rubber.getFluid(2304) }); - + for(FluidMaterial insulationMaterial : INSULATION_MATERIALS.keySet()) { + + int cableTier = GTUtility.getTierByVoltage(((IngotMaterial) m).cableProperties.voltage); + int insulationTier = INSULATION_MATERIALS.get(insulationMaterial); + if(cableTier > insulationTier) { + continue; + } + int fluidAmount = Math.max(36, 144 / (1 + (insulationTier - cableTier) / 2)); + + removeRecipesByInputs(RecipeMaps.ASSEMBLER_RECIPES, new ItemStack[] { OreDictUnifier.get(OrePrefix.wireGtSingle, m), IntCircuitIngredient.getIntegratedCircuit(24) }, new FluidStack[] { insulationMaterial.getFluid(fluidAmount) }); + removeRecipesByInputs(RecipeMaps.ASSEMBLER_RECIPES, new ItemStack[] { OreDictUnifier.get(OrePrefix.wireGtSingle, m, 2), IntCircuitIngredient.getIntegratedCircuit(25) }, new FluidStack[] { insulationMaterial.getFluid(fluidAmount * 2)}); + removeRecipesByInputs(RecipeMaps.ASSEMBLER_RECIPES, new ItemStack[] { OreDictUnifier.get(OrePrefix.wireGtSingle, m, 4), IntCircuitIngredient.getIntegratedCircuit(26) }, new FluidStack[] { insulationMaterial.getFluid(fluidAmount * 4)}); + removeRecipesByInputs(RecipeMaps.ASSEMBLER_RECIPES, new ItemStack[] { OreDictUnifier.get(OrePrefix.wireGtSingle, m, 8), IntCircuitIngredient.getIntegratedCircuit(27) }, new FluidStack[] { insulationMaterial.getFluid(fluidAmount * 8)}); + removeRecipesByInputs(RecipeMaps.ASSEMBLER_RECIPES, new ItemStack[] { OreDictUnifier.get(OrePrefix.wireGtSingle, m, 16), IntCircuitIngredient.getIntegratedCircuit(28) }, new FluidStack[] { insulationMaterial.getFluid(fluidAmount * 16)}); + removeRecipesByInputs(RecipeMaps.ASSEMBLER_RECIPES, new ItemStack[] { OreDictUnifier.get(OrePrefix.wireGtDouble, m), IntCircuitIngredient.getIntegratedCircuit(24) }, new FluidStack[] { insulationMaterial.getFluid(fluidAmount * 2)}); + removeRecipesByInputs(RecipeMaps.ASSEMBLER_RECIPES, new ItemStack[] { OreDictUnifier.get(OrePrefix.wireGtQuadruple, m), IntCircuitIngredient.getIntegratedCircuit(24) }, new FluidStack[] { insulationMaterial.getFluid(fluidAmount * 4)}); + removeRecipesByInputs(RecipeMaps.ASSEMBLER_RECIPES, new ItemStack[] { OreDictUnifier.get(OrePrefix.wireGtOctal, m), IntCircuitIngredient.getIntegratedCircuit(24) }, new FluidStack[] { insulationMaterial.getFluid(fluidAmount * 8)}); + removeRecipesByInputs(RecipeMaps.ASSEMBLER_RECIPES, new ItemStack[] { OreDictUnifier.get(OrePrefix.wireGtHex, m), IntCircuitIngredient.getIntegratedCircuit(24) }, new FluidStack[] { insulationMaterial.getFluid(fluidAmount * 16)}); + } } } }