aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/gregtech/api/enums/Materials.java16
-rw-r--r--src/main/java/gregtech/api/recipe/RecipeMaps.java6
-rw-r--r--src/main/java/gregtech/api/recipe/maps/PurificationUnitLaserFrontend.java36
-rw-r--r--src/main/java/gregtech/api/recipe/maps/PurificationUnitParticleExtractorFrontend.java36
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/purification/GT_MetaTileEntity_PurificationUnitParticleExtractor.java54
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/purification/GT_MetaTileEntity_PurificationUnitUVTreatment.java5
-rw-r--r--src/main/java/gregtech/loaders/postload/chains/GT_PurifiedWaterRecipes.java89
7 files changed, 210 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);
}
}