diff options
Diffstat (limited to 'src/main')
21 files changed, 240 insertions, 32 deletions
diff --git a/src/main/java/gregtech/api/enums/Materials.java b/src/main/java/gregtech/api/enums/Materials.java index b7b9c63ebd..8bfbc94699 100644 --- a/src/main/java/gregtech/api/enums/Materials.java +++ b/src/main/java/gregtech/api/enums/Materials.java @@ -150,14 +150,14 @@ public class Materials implements IColorModulationContainer, ISubTagContainer { public static Materials Ytterbium = new Materials( 77, TextureSet.SET_SHINY , 1.0F, 0, 2, 1|2 |8 |32 , 44, 199, 80, 0, "Ytterbium" , "Ytterbium" , 0, 0, 1097, 1097, true, false, 4, 1, 1, Dyes._NULL , Element.Yb , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))); public static Materials Yttrium = new Materials( 45, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 220, 250, 220, 0, "Yttrium" , "Yttrium" , 0, 0, 1799, 1799, true, false, 4, 1, 1, Dyes._NULL , Element.Y , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))); public static Materials Zinc = new Materials( 36, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1|2 |8 |32 , 250, 240, 240, 0, "Zinc" , "Zinc" , 0, 0, 692, 0, false, false, 2, 1, 1, Dyes.dyeWhite , Element.Zn , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.SANO, 1))); - public static Materials Grade1PurifiedWater = new Materials( 554, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 34, 35, 52, 0, "Grade1PurifiedWater" , "Grade 1 Purified Water" , 0, 0, 273, 0, false, true, 2, 1, 1, Dyes.dyeBlue , Collections.singletonList(new TC_AspectStack(TC_Aspects.AQUA, 1))).setHasCorrespondingFluid(true); - public static Materials Grade2PurifiedWater = new Materials( 555, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 42, 41, 77, 0, "Grade2PurifiedWater" , "Grade 2 Purified Water" , 0, 0, 273, 0, false, true, 2, 1, 1, Dyes.dyeBlue , Collections.singletonList(new TC_AspectStack(TC_Aspects.AQUA, 1))).setHasCorrespondingFluid(true); - public static Materials Grade3PurifiedWater = new Materials( 556, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 49, 47, 103, 0, "Grade3PurifiedWater" , "Grade 3 Purified Water" , 0, 0, 273, 0, false, true, 2, 1, 1, Dyes.dyeBlue , Collections.singletonList(new TC_AspectStack(TC_Aspects.AQUA, 1))).setHasCorrespondingFluid(true); - public static Materials Grade4PurifiedWater = new Materials( 557, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 54, 53, 132, 0, "Grade4PurifiedWater" , "Grade 4 Purified Water" , 0, 0, 273, 0, false, true, 2, 1, 1, Dyes.dyeBlue , Collections.singletonList(new TC_AspectStack(TC_Aspects.AQUA, 1))).setHasCorrespondingFluid(true); - public static Materials Grade5PurifiedWater = new Materials( 558, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 58, 58, 161, 0, "Grade5PurifiedWater" , "Grade 5 Purified Water" , 0, 0, 273, 0, false, true, 2, 1, 1, Dyes.dyeBlue , Collections.singletonList(new TC_AspectStack(TC_Aspects.AQUA, 1))).setHasCorrespondingFluid(true); - public static Materials Grade6PurifiedWater = new Materials( 559, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 61, 64, 191, 0, "Grade6PurifiedWater" , "Grade 6 Purified Water" , 0, 0, 273, 0, false, true, 2, 1, 1, Dyes.dyeBlue , Collections.singletonList(new TC_AspectStack(TC_Aspects.AQUA, 1))).setHasCorrespondingFluid(true); - public static Materials Grade7PurifiedWater = new Materials( 560, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 63, 70, 221, 0, "Grade7PurifiedWater" , "Grade 7 Purified Water" , 0, 0, 273, 0, false, true, 2, 1, 1, Dyes.dyeBlue , Collections.singletonList(new TC_AspectStack(TC_Aspects.AQUA, 1))).setHasCorrespondingFluid(true); - public static Materials Grade8PurifiedWater = new Materials( 561, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 63, 76, 253, 0, "Grade8PurifiedWater" , "Grade 8 Purified Water" , 0, 0, 273, 0, false, true, 2, 1, 1, Dyes.dyeBlue , Collections.singletonList(new TC_AspectStack(TC_Aspects.AQUA, 1))).setHasCorrespondingFluid(true); + public static Materials Grade1PurifiedWater = new Materials( 554, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 63, 76, 253, 0, "Grade1PurifiedWater" , "Grade 1 Purified Water" , 0, 0, 273, 0, false, true, 2, 1, 1, Dyes.dyeBlue , Collections.singletonList(new TC_AspectStack(TC_Aspects.AQUA, 1))).setHasCorrespondingFluid(true); + public static Materials Grade2PurifiedWater = new Materials( 555, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 93, 93, 254, 0, "Grade2PurifiedWater" , "Grade 2 Purified Water" , 0, 0, 273, 0, false, true, 2, 1, 1, Dyes.dyeBlue , Collections.singletonList(new TC_AspectStack(TC_Aspects.AQUA, 1))).setHasCorrespondingFluid(true); + public static Materials Grade3PurifiedWater = new Materials( 556, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 115, 109, 254, 0, "Grade3PurifiedWater" , "Grade 3 Purified Water" , 0, 0, 273, 0, false, true, 2, 1, 1, Dyes.dyeBlue , Collections.singletonList(new TC_AspectStack(TC_Aspects.AQUA, 1))).setHasCorrespondingFluid(true); + public static Materials Grade4PurifiedWater = new Materials( 557, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 135, 126, 255, 0, "Grade4PurifiedWater" , "Grade 4 Purified Water" , 0, 0, 273, 0, false, true, 2, 1, 1, Dyes.dyeBlue , Collections.singletonList(new TC_AspectStack(TC_Aspects.AQUA, 1))).setHasCorrespondingFluid(true); + public static Materials Grade5PurifiedWater = new Materials( 558, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 152, 144, 255, 0, "Grade5PurifiedWater" , "Grade 5 Purified Water" , 0, 0, 273, 0, false, true, 2, 1, 1, Dyes.dyeBlue , Collections.singletonList(new TC_AspectStack(TC_Aspects.AQUA, 1))).setHasCorrespondingFluid(true); + public static Materials Grade6PurifiedWater = new Materials( 559, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 168, 161, 255, 0, "Grade6PurifiedWater" , "Grade 6 Purified Water" , 0, 0, 273, 0, false, true, 2, 1, 1, Dyes.dyeBlue , Collections.singletonList(new TC_AspectStack(TC_Aspects.AQUA, 1))).setHasCorrespondingFluid(true); + public static Materials Grade7PurifiedWater = new Materials( 560, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 183, 179, 255, 0, "Grade7PurifiedWater" , "Grade 7 Purified Water" , 0, 0, 273, 0, false, true, 2, 1, 1, Dyes.dyeBlue , Collections.singletonList(new TC_AspectStack(TC_Aspects.AQUA, 1))).setHasCorrespondingFluid(true); + public static Materials Grade8PurifiedWater = new Materials( 561, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 197, 197, 255, 0, "Grade8PurifiedWater" , "Grade 8 Purified Water" , 0, 0, 273, 0, false, true, 2, 1, 1, Dyes.dyeBlue , Collections.singletonList(new TC_AspectStack(TC_Aspects.AQUA, 1))).setHasCorrespondingFluid(true); public static Materials FlocculationWasteLiquid = new Materials(562, TextureSet.SET_FLUID, 1.0f, 0, 2, 16, 61, 58, 82, 0, "FlocculationWasteLiquid", "Flocculation Waste Liquid", 0, 0, 273, 0, false, true, 2, 1, 1, Dyes.dyeBlue , Collections.singletonList(new TC_AspectStack(TC_Aspects.AQUA, 1))).setHasCorrespondingFluid(true); //GT++ materials diff --git a/src/main/java/gregtech/api/recipe/RecipeMaps.java b/src/main/java/gregtech/api/recipe/RecipeMaps.java index 6d614d27d0..a2f053922c 100644 --- a/src/main/java/gregtech/api/recipe/RecipeMaps.java +++ b/src/main/java/gregtech/api/recipe/RecipeMaps.java @@ -61,7 +61,9 @@ import gregtech.api.recipe.maps.OilCrackerBackend; import gregtech.api.recipe.maps.PrinterBackend; import gregtech.api.recipe.maps.PurificationUnitClarifierFrontend; import gregtech.api.recipe.maps.PurificationUnitFlocculatorFrontend; +import gregtech.api.recipe.maps.PurificationUnitLaserFrontend; import gregtech.api.recipe.maps.PurificationUnitOzonationFrontend; +import gregtech.api.recipe.maps.PurificationUnitParticleExtractorFrontend; import gregtech.api.recipe.maps.PurificationUnitPhAdjustmentFrontend; import gregtech.api.recipe.maps.PurificationUnitPlasmaHeaterFrontend; import gregtech.api.recipe.maps.RecyclerBackend; @@ -1225,9 +1227,10 @@ public final class RecipeMaps { .build(); public static final RecipeMap<RecipeMapBackend> purificationUVTreatmentRecipes = RecipeMapBuilder .of("gt.recipe.purificationplantuvtreatment") - .maxIO(0, 0, 1, 1) + .maxIO(9, 0, 1, 1) .minInputs(0, 1) .progressBar(GT_UITextures.PROGRESSBAR_ARROW) + .frontend(PurificationUnitLaserFrontend::new) .disableOptimize() .build(); public static final RecipeMap<RecipeMapBackend> purificationDegasifierRecipes = RecipeMapBuilder @@ -1242,6 +1245,7 @@ public final class RecipeMaps { .maxIO(2, 1, 1, 2) .minInputs(0, 1) .progressBar(GT_UITextures.PROGRESSBAR_ARROW) + .frontend(PurificationUnitParticleExtractorFrontend::new) .disableOptimize() .build(); public static final RecipeMap<RecipeMapBackend> ic2NuclearFakeRecipes = RecipeMapBuilder.of("gt.recipe.ic2nuke") diff --git a/src/main/java/gregtech/api/recipe/maps/PurificationUnitLaserFrontend.java b/src/main/java/gregtech/api/recipe/maps/PurificationUnitLaserFrontend.java new file mode 100644 index 0000000000..df42259864 --- /dev/null +++ b/src/main/java/gregtech/api/recipe/maps/PurificationUnitLaserFrontend.java @@ -0,0 +1,36 @@ +package gregtech.api.recipe.maps; + +import java.util.List; + +import net.minecraft.item.ItemStack; + +import com.gtnewhorizons.modularui.api.math.Pos2d; + +import codechicken.nei.PositionedStack; +import gregtech.api.recipe.BasicUIPropertiesBuilder; +import gregtech.api.recipe.NEIRecipePropertiesBuilder; +import gregtech.api.recipe.RecipeMapFrontend; +import gregtech.common.gui.modularui.UIHelper; +import gregtech.common.tileentities.machines.multi.purification.GT_MetaTileEntity_PurificationUnitUVTreatment; +import gregtech.nei.GT_NEI_DefaultHandler; + +public class PurificationUnitLaserFrontend extends RecipeMapFrontend { + + public PurificationUnitLaserFrontend(BasicUIPropertiesBuilder uiPropertiesBuilder, + NEIRecipePropertiesBuilder neiPropertiesBuilder) { + super(uiPropertiesBuilder, neiPropertiesBuilder); + } + + @Override + public void drawNEIOverlays(GT_NEI_DefaultHandler.CachedDefaultRecipe neiCachedRecipe) { + final int numLenses = GT_MetaTileEntity_PurificationUnitUVTreatment.LENS_ITEMS.size(); + List<Pos2d> positions = UIHelper.getGridPositions(numLenses, 12, -4, 3, 3); + // Put in lens items + for (int i = 0; i < numLenses; ++i) { + Pos2d position = positions.get(i); + ItemStack lens = GT_MetaTileEntity_PurificationUnitUVTreatment.LENS_ITEMS.get(i); + neiCachedRecipe.mInputs.add(new PositionedStack(lens, position.x, position.y, false)); + } + super.drawNEIOverlays(neiCachedRecipe); + } +} diff --git a/src/main/java/gregtech/api/recipe/maps/PurificationUnitParticleExtractorFrontend.java b/src/main/java/gregtech/api/recipe/maps/PurificationUnitParticleExtractorFrontend.java new file mode 100644 index 0000000000..bbbd88fd5f --- /dev/null +++ b/src/main/java/gregtech/api/recipe/maps/PurificationUnitParticleExtractorFrontend.java @@ -0,0 +1,36 @@ +package gregtech.api.recipe.maps; + +import java.util.ArrayList; +import java.util.List; + +import net.minecraft.item.ItemStack; + +import com.gtnewhorizons.modularui.api.math.Pos2d; + +import codechicken.nei.PositionedStack; +import gregtech.api.recipe.BasicUIPropertiesBuilder; +import gregtech.api.recipe.NEIRecipePropertiesBuilder; +import gregtech.api.recipe.RecipeMapFrontend; +import gregtech.common.gui.modularui.UIHelper; +import gregtech.nei.GT_NEI_DefaultHandler; + +public class PurificationUnitParticleExtractorFrontend extends RecipeMapFrontend { + + public static final ArrayList<ItemStack> inputItems = new ArrayList<>(); + public static final ArrayList<ItemStack> inputItemsShuffled = new ArrayList<>(); + + public PurificationUnitParticleExtractorFrontend(BasicUIPropertiesBuilder uiPropertiesBuilder, + NEIRecipePropertiesBuilder neiPropertiesBuilder) { + super(uiPropertiesBuilder, neiPropertiesBuilder); + } + + @Override + public void drawNEIOverlays(GT_NEI_DefaultHandler.CachedDefaultRecipe neiCachedRecipe) { + List<Pos2d> positions = UIHelper.getGridPositions(2, 30, 14, 2, 1); + Pos2d pos1 = positions.get(0); + Pos2d pos2 = positions.get(1); + neiCachedRecipe.mInputs.set(0, new PositionedStack(inputItems, pos1.x, pos1.y, true)); + neiCachedRecipe.mInputs.set(1, new PositionedStack(inputItemsShuffled, pos2.x, pos2.y, true)); + super.drawNEIOverlays(neiCachedRecipe); + } +} diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/purification/GT_MetaTileEntity_PurificationUnitParticleExtractor.java b/src/main/java/gregtech/common/tileentities/machines/multi/purification/GT_MetaTileEntity_PurificationUnitParticleExtractor.java index 54c5ad9c09..974040b82a 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/purification/GT_MetaTileEntity_PurificationUnitParticleExtractor.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/purification/GT_MetaTileEntity_PurificationUnitParticleExtractor.java @@ -3,6 +3,7 @@ package gregtech.common.tileentities.machines.multi.purification; import static com.gtnewhorizon.structurelib.structure.StructureUtility.lazy; import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofBlock; import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofChain; +import static com.gtnewhorizon.structurelib.structure.StructureUtility.onElementPass; import static gregtech.api.enums.GT_HatchElement.InputBus; import static gregtech.api.enums.GT_HatchElement.InputHatch; import static gregtech.api.enums.GT_HatchElement.OutputBus; @@ -94,7 +95,7 @@ public class GT_MetaTileEntity_PurificationUnitParticleExtractor .dot(1) .casingIndex(CASING_INDEX_MAIN) .build()), - ofBlock(GregTech_API.sBlockCasings10, 2))) + onElementPass(t -> t.numCasings++, ofBlock(GregTech_API.sBlockCasings10, 2)))) // Particle Beam Guidance Pipe Casing .addElement('B', ofBlock(GregTech_API.sBlockCasings9, 14)) // Femtometer-Calibrated Particle Beam Casing @@ -163,6 +164,8 @@ public class GT_MetaTileEntity_PurificationUnitParticleExtractor private ArrayList<ItemStack> insertedCatalysts = new ArrayList<>(); private int correctIndexA = -1, correctIndexB = -1; + private int numCasings = 0; + private static final int MIN_CASINGS = 300; public GT_MetaTileEntity_PurificationUnitParticleExtractor(int aID, String aName, String aNameRegional) { super(aID, aName, aNameRegional); @@ -236,7 +239,9 @@ public class GT_MetaTileEntity_PurificationUnitParticleExtractor @Override public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + numCasings = 0; if (!checkPiece(STRUCTURE_PIECE_MAIN, STRUCTURE_X_OFFSET, STRUCTURE_Y_OFFSET, STRUCTURE_Z_OFFSET)) return false; + if (numCasings < MIN_CASINGS) return false; return super.checkMachine(aBaseMetaTileEntity, aStack); } @@ -297,6 +302,41 @@ public class GT_MetaTileEntity_PurificationUnitParticleExtractor + "This ultimately creates both Stabilised Baryonic Matter and, most importantly, absolutely perfectly purified water.") .addInfo(AuthorNotAPenguin) .beginStructureBlock(17, 17, 17, false) + .addCasingInfoMinColored( + "Quark Exclusion Casing", + EnumChatFormatting.GRAY, + MIN_CASINGS, + EnumChatFormatting.GOLD, + false) + .addCasingInfoExactlyColored( + "Femtometer-Calibrated Particle Beam Casing", + EnumChatFormatting.GRAY, + 96, + EnumChatFormatting.GOLD, + false) + .addCasingInfoExactlyColored( + "Particle Beam Guidance Pipe Casing", + EnumChatFormatting.GRAY, + 37, + EnumChatFormatting.GOLD, + false) + .addCasingInfoExactlyColored( + "Non-Photonic Matter Exclusion Glass", + EnumChatFormatting.GRAY, + 240, + EnumChatFormatting.GOLD, + false) + .addCasingInfoExactlyColored( + "Bedrockium Frame Box", + EnumChatFormatting.GRAY, + 108, + EnumChatFormatting.GOLD, + false) + .addController("Front Center") + .addInputBus("Any Quark Exclusion Casing", 1) + .addInputHatch("Any Quark Exclusion Casing", 1) + .addOutputBus("Any Quark Exclusion Casing", 1) + .addOutputHatch("Any Quark Exclusion Casing", 1) .toolTipFinisher("GregTech"); return tt; } @@ -437,12 +477,12 @@ public class GT_MetaTileEntity_PurificationUnitParticleExtractor public EnumChatFormatting getQuarkColor(ItemStack stack) { int meta = stack.getItemDamage() - 32000; - if (meta == ID_MetaItem_03.Quark_Creation_Catalyst_Up.ID) return EnumChatFormatting.RED; - if (meta == ID_MetaItem_03.Quark_Creation_Catalyst_Down.ID) return EnumChatFormatting.YELLOW; - if (meta == ID_MetaItem_03.Quark_Creation_Catalyst_Strange.ID) return EnumChatFormatting.DARK_PURPLE; - if (meta == ID_MetaItem_03.Quark_Creation_Catalyst_Charm.ID) return EnumChatFormatting.LIGHT_PURPLE; - if (meta == ID_MetaItem_03.Quark_Creation_Catalyst_Bottom.ID) return EnumChatFormatting.GREEN; - if (meta == ID_MetaItem_03.Quark_Creation_Catalyst_Top.ID) return EnumChatFormatting.BLUE; + if (meta == ID_MetaItem_03.Quark_Creation_Catalyst_Up.ID) return EnumChatFormatting.BLUE; + if (meta == ID_MetaItem_03.Quark_Creation_Catalyst_Down.ID) return EnumChatFormatting.LIGHT_PURPLE; + if (meta == ID_MetaItem_03.Quark_Creation_Catalyst_Strange.ID) return EnumChatFormatting.YELLOW; + if (meta == ID_MetaItem_03.Quark_Creation_Catalyst_Charm.ID) return EnumChatFormatting.GREEN; + if (meta == ID_MetaItem_03.Quark_Creation_Catalyst_Bottom.ID) return EnumChatFormatting.AQUA; + if (meta == ID_MetaItem_03.Quark_Creation_Catalyst_Top.ID) return EnumChatFormatting.RED; return EnumChatFormatting.GRAY; } diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/purification/GT_MetaTileEntity_PurificationUnitUVTreatment.java b/src/main/java/gregtech/common/tileentities/machines/multi/purification/GT_MetaTileEntity_PurificationUnitUVTreatment.java index 444b3cad4d..86cdd4664f 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/purification/GT_MetaTileEntity_PurificationUnitUVTreatment.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/purification/GT_MetaTileEntity_PurificationUnitUVTreatment.java @@ -82,6 +82,8 @@ public class GT_MetaTileEntity_PurificationUnitUVTreatment */ public static final int MIN_TIME_BETWEEN_SWAPS = MAX_TIME_BETWEEN_SWAPS / 4; + public static final ArrayList<ItemStack> LENS_ITEMS = new ArrayList<>(); + private int numSwapsPerformed = 0; private int timeUntilNextSwap = 0; @@ -318,8 +320,7 @@ public class GT_MetaTileEntity_PurificationUnitUVTreatment public CheckRecipeResult checkProcessing() { CheckRecipeResult result = super.checkProcessing(); if (result.wasSuccessful()) { - // Note that this cast is fine, look at GT_PurifiedWaterRecipes.java - this.lensCycle = new UVTreatmentLensCycle((List<ItemStack>) this.currentRecipe.mSpecialItems); + this.lensCycle = new UVTreatmentLensCycle(LENS_ITEMS); } return result; } diff --git a/src/main/java/gregtech/loaders/postload/chains/GT_PurifiedWaterRecipes.java b/src/main/java/gregtech/loaders/postload/chains/GT_PurifiedWaterRecipes.java index b776f60554..4967f51699 100644 --- a/src/main/java/gregtech/loaders/postload/chains/GT_PurifiedWaterRecipes.java +++ b/src/main/java/gregtech/loaders/postload/chains/GT_PurifiedWaterRecipes.java @@ -17,13 +17,15 @@ import static gregtech.api.recipe.RecipeMaps.purificationParticleExtractionRecip import static gregtech.api.recipe.RecipeMaps.purificationPhAdjustmentRecipes; import static gregtech.api.recipe.RecipeMaps.purificationPlasmaHeatingRecipes; import static gregtech.api.recipe.RecipeMaps.purificationUVTreatmentRecipes; +import static gregtech.api.util.GT_RecipeBuilder.HOURS; import static gregtech.api.util.GT_RecipeBuilder.MINUTES; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeConstants.AssemblyLine; import static gregtech.api.util.GT_RecipeConstants.COIL_HEAT; +import static gregtech.api.util.GT_RecipeConstants.RESEARCH_ITEM; +import static gregtech.api.util.GT_RecipeConstants.RESEARCH_TIME; import static gregtech.common.tileentities.machines.multi.purification.GT_MetaTileEntity_PurificationUnitParticleExtractor.BARYONIC_MATTER_OUTPUT; -import java.util.Arrays; - import net.minecraft.init.Items; import net.minecraft.item.ItemStack; @@ -35,11 +37,13 @@ import gregtech.api.enums.Materials; import gregtech.api.enums.MaterialsUEVplus; import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.TierEU; +import gregtech.api.recipe.maps.PurificationUnitParticleExtractorFrontend; import gregtech.api.recipe.metadata.PurificationPlantBaseChanceKey; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import gregtech.common.tileentities.machines.multi.purification.GT_MetaTileEntity_PurificationPlant; +import gregtech.common.tileentities.machines.multi.purification.GT_MetaTileEntity_PurificationUnitUVTreatment; import gtPlusPlus.core.material.Particle; public class GT_PurifiedWaterRecipes { @@ -178,22 +182,27 @@ public class GT_PurifiedWaterRecipes { .metadata(BASE_CHANCE, 0.0f) .addTo(purificationPlasmaHeatingRecipes); + GT_MetaTileEntity_PurificationUnitUVTreatment.LENS_ITEMS.add(MyMaterial.orundum.get(OrePrefixes.lens, 1)); + GT_MetaTileEntity_PurificationUnitUVTreatment.LENS_ITEMS + .add(GT_OreDictUnificator.get(OrePrefixes.lens, Materials.Amber, 1)); + GT_MetaTileEntity_PurificationUnitUVTreatment.LENS_ITEMS + .add(GT_OreDictUnificator.get(OrePrefixes.lens, Materials.InfusedAir, 1)); + GT_MetaTileEntity_PurificationUnitUVTreatment.LENS_ITEMS + .add(GT_OreDictUnificator.get(OrePrefixes.lens, Materials.Emerald, 1)); + GT_MetaTileEntity_PurificationUnitUVTreatment.LENS_ITEMS + .add(GT_OreDictUnificator.get(OrePrefixes.lens, ManaDiamond, 1)); + GT_MetaTileEntity_PurificationUnitUVTreatment.LENS_ITEMS + .add(GT_OreDictUnificator.get(OrePrefixes.lens, Materials.BlueTopaz, 1)); + GT_MetaTileEntity_PurificationUnitUVTreatment.LENS_ITEMS + .add(GT_OreDictUnificator.get(OrePrefixes.lens, Materials.Amethyst, 1)); + GT_MetaTileEntity_PurificationUnitUVTreatment.LENS_ITEMS.add(FluorBuergerit.get(OrePrefixes.lens, 1)); + GT_MetaTileEntity_PurificationUnitUVTreatment.LENS_ITEMS + .add(GT_OreDictUnificator.get(OrePrefixes.lens, Materials.Dilithium, 1)); + // Grade 6 - UV treatment GT_Values.RA.stdBuilder() .fluidInputs(Materials.Grade5PurifiedWater.getFluid(1000L)) .fluidOutputs(Materials.Grade6PurifiedWater.getFluid(900L)) - // These are not actually consumed and are purely for display purposes - .special( - Arrays.asList( - MyMaterial.orundum.get(OrePrefixes.lens, 1), - GT_OreDictUnificator.get(OrePrefixes.lens, Materials.Amber, 1), - GT_OreDictUnificator.get(OrePrefixes.lens, Materials.InfusedAir, 1), - GT_OreDictUnificator.get(OrePrefixes.lens, Materials.Emerald, 1), - GT_OreDictUnificator.get(OrePrefixes.lens, ManaDiamond, 1), - GT_OreDictUnificator.get(OrePrefixes.lens, Materials.BlueTopaz, 1), - GT_OreDictUnificator.get(OrePrefixes.lens, Materials.Amethyst, 1), - FluorBuergerit.get(OrePrefixes.lens, 1), - GT_OreDictUnificator.get(OrePrefixes.lens, Materials.Dilithium, 1))) .ignoreCollision() .duration(duration) .eut(TierEU.RECIPE_UV) @@ -217,6 +226,15 @@ public class GT_PurifiedWaterRecipes { ItemList.Quark_Creation_Catalyst_Top.get(1L), ItemList.Quark_Creation_Catalyst_Strange.get(1L), ItemList.Quark_Creation_Catalyst_Charm.get(1L) }; + // Add all combinations of input items to the frontend map + for (int i = 0; i < catalystInputs.length; ++i) { + for (int j = 1; j < catalystInputs.length; ++j) { + PurificationUnitParticleExtractorFrontend.inputItems.add(catalystInputs[i]); + PurificationUnitParticleExtractorFrontend.inputItemsShuffled + .add(catalystInputs[(i + j) % catalystInputs.length]); + } + } + // Add re-alignment recipes for (int i = 0; i < catalystInputs.length; ++i) { GT_Values.RA.stdBuilder() @@ -248,6 +266,48 @@ public class GT_PurifiedWaterRecipes { .addTo(plasmaForgeRecipes); } + // Recipe for quark catalyst housing + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, ItemList.Electromagnet_Tengam.get(1)) + .metadata(RESEARCH_TIME, 1 * HOURS) + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Neutronium, 16), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Infinity, 16), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Tritanium, 16), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.CosmicNeutronium, 16), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Neutronium, 64), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Infinity, 64), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Tritanium, 64), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.CosmicNeutronium, 64), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.UHV, 16), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.UEV, 8), + ItemList.Field_Generator_UEV.get(4)) + .fluidInputs( + Materials.Neutronium.getMolten(16 * 144), + Materials.Infinity.getMolten(16 * 144), + Materials.Tritanium.getMolten(16 * 144), + Materials.CosmicNeutronium.getMolten(16 * 144)) + .itemOutputs(ItemList.Quark_Catalyst_Housing.get(1)) + .eut(TierEU.RECIPE_UIV) + .duration(60 * SECONDS) + .addTo(AssemblyLine); + + GT_Values.RA.stdBuilder() + // Fake item inputs + .itemInputs(ItemList.Quark_Creation_Catalyst_Charm.get(1), ItemList.Quark_Creation_Catalyst_Strange.get(1)) + .fluidInputs(Materials.Grade7PurifiedWater.getFluid(1000L)) + .fluidOutputs( + Materials.Grade8PurifiedWater.getFluid(900L), + Materials.StableBaryonicMatter.getFluid(BARYONIC_MATTER_OUTPUT)) + .itemOutputs(ItemList.Quark_Creation_Catalyst_Unaligned.get(2L)) + .ignoreCollision() + .duration(duration) + .eut(TierEU.RECIPE_UEV) + .metadata(BASE_CHANCE, 0.0f) + .fake() + .addTo(purificationParticleExtractionRecipes); + + // real recipe GT_Values.RA.stdBuilder() .fluidInputs(Materials.Grade7PurifiedWater.getFluid(1000L)) .fluidOutputs( @@ -258,6 +318,7 @@ public class GT_PurifiedWaterRecipes { .duration(duration) .eut(TierEU.RECIPE_UEV) .metadata(BASE_CHANCE, 0.0f) + .hidden() .addTo(purificationParticleExtractionRecipes); } } diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/234.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/234.png Binary files differindex 377a385ee1..f88e3bed5c 100644 --- a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/234.png +++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/234.png diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/235.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/235.png Binary files differindex e51fab970d..919357f3ac 100644 --- a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/235.png +++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/235.png diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/235.png.mcmeta b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/235.png.mcmeta new file mode 100644 index 0000000000..0645f48c62 --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/235.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 2 + } +} diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/236.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/236.png Binary files differindex 1b46a70159..053c541bca 100644 --- a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/236.png +++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/236.png diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/236.png.mcmeta b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/236.png.mcmeta new file mode 100644 index 0000000000..0645f48c62 --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/236.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 2 + } +} diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/237.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/237.png Binary files differindex 657460fd9b..dc73ca84b6 100644 --- a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/237.png +++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/237.png diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/237.png.mcmeta b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/237.png.mcmeta new file mode 100644 index 0000000000..0645f48c62 --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/237.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 2 + } +} diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/238.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/238.png Binary files differnew file mode 100644 index 0000000000..42b660e4d8 --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/238.png diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/238.png.mcmeta b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/238.png.mcmeta new file mode 100644 index 0000000000..0645f48c62 --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/238.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 2 + } +} diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/239.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/239.png Binary files differnew file mode 100644 index 0000000000..648d738cb9 --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/239.png diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/239.png.mcmeta b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/239.png.mcmeta new file mode 100644 index 0000000000..0645f48c62 --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/239.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 2 + } +} diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/240.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/240.png Binary files differnew file mode 100644 index 0000000000..7e30c7778d --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/240.png diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/240.png.mcmeta b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/240.png.mcmeta new file mode 100644 index 0000000000..0645f48c62 --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/240.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 2 + } +} diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/241.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/241.png Binary files differnew file mode 100644 index 0000000000..05b3cb8ba0 --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/241.png |