aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/api')
-rw-r--r--src/main/java/gregtech/api/GregTech_API.java2
-rw-r--r--src/main/java/gregtech/api/enums/GT_Values.java7
-rw-r--r--src/main/java/gregtech/api/enums/ItemList.java47
-rw-r--r--src/main/java/gregtech/api/enums/Materials.java68
-rw-r--r--src/main/java/gregtech/api/enums/MetaTileEntityIDs.java13
-rw-r--r--src/main/java/gregtech/api/enums/SoundResource.java6
-rw-r--r--src/main/java/gregtech/api/enums/Textures.java26
-rw-r--r--src/main/java/gregtech/api/gui/modularui/GT_UITextures.java11
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java17
-rw-r--r--src/main/java/gregtech/api/recipe/RecipeMaps.java95
-rw-r--r--src/main/java/gregtech/api/recipe/maps/PurificationUnitClarifierFrontend.java72
-rw-r--r--src/main/java/gregtech/api/recipe/maps/PurificationUnitFlocculatorFrontend.java99
-rw-r--r--src/main/java/gregtech/api/recipe/maps/PurificationUnitOzonationFrontend.java51
-rw-r--r--src/main/java/gregtech/api/recipe/maps/PurificationUnitPhAdjustmentFrontend.java79
-rw-r--r--src/main/java/gregtech/api/recipe/maps/PurificationUnitPlasmaHeaterFrontend.java59
-rw-r--r--src/main/java/gregtech/api/recipe/maps/PurificationUnitRecipeMapFrontend.java124
-rw-r--r--src/main/java/gregtech/api/recipe/metadata/PurificationPlantBaseChanceKey.java28
-rw-r--r--src/main/java/gregtech/api/util/GT_RecipeConstants.java154
18 files changed, 941 insertions, 17 deletions
diff --git a/src/main/java/gregtech/api/GregTech_API.java b/src/main/java/gregtech/api/GregTech_API.java
index f252a12965..e82c5952ee 100644
--- a/src/main/java/gregtech/api/GregTech_API.java
+++ b/src/main/java/gregtech/api/GregTech_API.java
@@ -297,6 +297,8 @@ public class GregTech_API {
sBlockCasings8, sBlockCasings9, sBlockCasings10, sBlockCasings11, sSolenoidCoilCasings;
public static Block sBlockLongDistancePipes;
public static Block sDroneRender;
+ public static Block sBlockGlass1;
+ public static Block sBlockTintedGlass;
public static Block sLaserRender;
/**
* Getting assigned by the Config
diff --git a/src/main/java/gregtech/api/enums/GT_Values.java b/src/main/java/gregtech/api/enums/GT_Values.java
index 74c392ce67..b0e48a46bb 100644
--- a/src/main/java/gregtech/api/enums/GT_Values.java
+++ b/src/main/java/gregtech/api/enums/GT_Values.java
@@ -678,6 +678,13 @@ public class GT_Values {
+ "Gold";
public static final String AuthorVolence = "Author: " + EnumChatFormatting.AQUA + "Volence";
+ public static final String AuthorNotAPenguin = "Author: " + EnumChatFormatting.WHITE
+ + EnumChatFormatting.BOLD
+ + "Not"
+ + EnumChatFormatting.AQUA
+ + EnumChatFormatting.BOLD
+ + "APenguin";
+
// 7.5F comes from GT_Tool_Turbine_Large#getBaseDamage() given huge turbines are the most efficient now.
public static double getMaxPlasmaTurbineEfficiencyFromMaterial(Materials material) {
return (5F + (7.5F + material.mToolQuality)) / 10.0;
diff --git a/src/main/java/gregtech/api/enums/ItemList.java b/src/main/java/gregtech/api/enums/ItemList.java
index d1c30a0935..1f5d223a6b 100644
--- a/src/main/java/gregtech/api/enums/ItemList.java
+++ b/src/main/java/gregtech/api/enums/ItemList.java
@@ -1152,7 +1152,16 @@ public enum ItemList implements IItemContainer {
Machine_Multi_ImplosionCompressor,
Machine_Multi_VacuumFreezer,
Machine_Multi_Furnace,
-
+ Machine_Multi_PurificationPlant,
+ Machine_Multi_PurificationUnitClarifier,
+ Machine_Multi_PurificationUnitFlocculator,
+ Machine_Multi_PurificationUnitPhAdjustment,
+ Machine_Multi_PurificationUnitOzonation,
+ Machine_Multi_PurificationUnitPlasmaHeater,
+ Machine_Multi_PurificationUnitUVTreatment,
+ Machine_Multi_PurificationUnitDegasifier,
+ Machine_Multi_PurificationUnitParticleExtractor,
+ Hatch_DegasifierControl,
Machine_LV_AlloySmelter,
Machine_MV_AlloySmelter,
Machine_HV_AlloySmelter,
@@ -2031,7 +2040,41 @@ public enum ItemList implements IItemContainer {
TierdDrone1,
TierdDrone2,
Hatch_DroneDownLink,
- Casing_Shielded_Accelerator;
+ Hatch_pHSensor,
+ Hatch_LensHousing,
+ Hatch_LensIndicator,
+ ActivatedCarbonFilterMesh,
+ BlockIndustrialStrengthConcrete,
+ GlassPHResistant,
+ GlassTintedIndustrialWhite,
+ GlassTintedIndustrialLightGray,
+ GlassTintedIndustrialGray,
+ GlassTintedIndustrialBlack,
+ BlockIndustrialWaterPlantCasing,
+ BlockSterileWaterPlantCasing,
+ BlockFlocculationCasing,
+ BlockNaquadahReinforcedWaterPlantCasing,
+ BlockExtremeCorrosionResistantCasing,
+ BlockHighPressureResistantCasing,
+ BlockOzoneCasing,
+ BlockPlasmaHeatingCasing,
+ BlockNaquadriaReinforcedWaterPlantCasing,
+ GlassUVResistant,
+ BlockUltraVioletLaserEmitter,
+ Quark_Catalyst_Housing,
+ Quark_Creation_Catalyst_Up,
+ Quark_Creation_Catalyst_Down,
+ Quark_Creation_Catalyst_Strange,
+ Quark_Creation_Catalyst_Charm,
+ Quark_Creation_Catalyst_Bottom,
+ Quark_Creation_Catalyst_Top,
+ Quark_Creation_Catalyst_Unaligned,
+ Casing_Shielded_Accelerator,
+ GlassOmniPurposeInfinityFused,
+ GlassQuarkContainment,
+ BlockQuarkPipe,
+ BlockQuarkReleaseChamber,
+ BlockQuarkContainmentCasing;
public static final ItemList[] DYE_ONLY_ITEMS = { Color_00, Color_01, Color_02, Color_03, Color_04, Color_05,
Color_06, Color_07, Color_08, Color_09, Color_10, Color_11, Color_12, Color_13, Color_14, Color_15 },
diff --git a/src/main/java/gregtech/api/enums/Materials.java b/src/main/java/gregtech/api/enums/Materials.java
index f8f6f4636e..2435e1aad7 100644
--- a/src/main/java/gregtech/api/enums/Materials.java
+++ b/src/main/java/gregtech/api/enums/Materials.java
@@ -150,14 +150,15 @@ 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 , 0, 0, 255, 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 , 0, 0, 250, 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 , 0, 0, 245, 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 , 0, 0, 240, 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 , 0, 0, 235, 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 , 0, 0, 230, 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 , 0, 0, 225, 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 , 0, 0, 220, 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 , 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 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
@@ -946,6 +947,55 @@ public class Materials implements IColorModulationContainer, ISubTagContainer {
public static Materials TengamAttuned = new MaterialBuilder(112, TextureSet.SET_MAGNETIC, "Attuned Tengam") .addDustItems().addGearItems().addMetalItems().addToolHeadItems().setAspects(Arrays.asList(new TC_AspectStack(TC_Aspects.MAGNETO, 4), new TC_AspectStack(TC_Aspects.ELECTRUM, 1))).setColor(Dyes.dyeLime).setName("TengamAttuned") .setRGB(213, 255, 128).constructMaterial().setProcessingMaterialTierEU(TierEU.RECIPE_UV);
public static Materials TengamRaw = new MaterialBuilder(110, TextureSet.SET_ROUGH, "Raw Tengam") .addOreItems() .setAspects(Arrays.asList(new TC_AspectStack(TC_Aspects.MAGNETO, 1), new TC_AspectStack(TC_Aspects.ELECTRUM, 4))).setColor(Dyes.dyeLime).setName("TengamRaw") .setRGB(160, 191, 96).constructMaterial().setProcessingMaterialTierEU(TierEU.RECIPE_UV);
+ // Activated Carbon Line
+ public static Materials ActivatedCarbon = new MaterialBuilder(563, TextureSet.SET_DULL, "Activated Carbon")
+ .addDustItems()
+ .setRGB(20, 20, 20)
+ .setName("ActivatedCarbon")
+ .setOreValue(0)
+ .setMaterialList(new MaterialStack(Carbon, 1))
+ .constructMaterial()
+ .disableAutoGeneratedRecycleRecipes();
+ public static Materials PreActivatedCarbon = new MaterialBuilder(564, TextureSet.SET_DULL, "Pre-Activated Carbon")
+ .addDustItems()
+ .setRGB(15, 51, 65)
+ .setName("PreActivatedCarbon")
+ .setOreValue(0)
+ .setMaterialList(new MaterialStack(Carbon, 1), new MaterialStack(PhosphoricAcid, 1))
+ .constructMaterial()
+ .disableAutoGeneratedRecycleRecipes();
+ public static Materials DirtyActivatedCarbon = new MaterialBuilder(565, TextureSet.SET_DULL, "Dirty Activated Carbon")
+ .addDustItems()
+ .setRGB(110, 110, 110)
+ .setName("carbonactivateddirty") // don't change this to the more sensible name or a centrifuge recipe appears
+ .setOreValue(0)
+ .setMaterialList(new MaterialStack(Carbon, 1), new MaterialStack(PhosphoricAcid, 1))
+ .constructMaterial()
+ .disableAutoGeneratedRecycleRecipes();
+
+ // Advanced glue uses id 567?? ok
+ public static Materials PolyAluminiumChloride = new MaterialBuilder(566, TextureSet.SET_FLUID, "Polyaluminium Chloride")
+ .addFluid()
+ .addCell()
+ .setRGB(252, 236, 5)
+ .setName("PolyaluminiumChloride")
+ .constructMaterial();
+
+ public static Materials Ozone = new MaterialBuilder(568, TextureSet.SET_FLUID, "Ozone")
+ .addGas()
+ .addCell()
+ .setRGB(190, 244, 250)
+ .setName("Ozone")
+ .setMaterialList(new MaterialStack(Oxygen, 3))
+ .constructMaterial();
+
+ public static Materials StableBaryonicMatter = new MaterialBuilder(569, TextureSet.SET_FLUID, "Stabilised Baryonic Matter")
+ .addFluid()
+ .addCell()
+ .setRGB(20, 10, 20)
+ .setName("StableBaryonicMatter")
+ .constructMaterial();
+
// spotless:on
static {
@@ -1949,11 +1999,13 @@ public class Materials implements IColorModulationContainer, ISubTagContainer {
Grade6PurifiedWater.mChemicalFormula = "H\u2082O";
Grade7PurifiedWater.mChemicalFormula = "H\u2082O";
Grade8PurifiedWater.mChemicalFormula = "H\u2082O";
+ FlocculationWasteLiquid.mChemicalFormula = "Al\u2082(OH)\u2083??Cl\u2083";
TengamRaw.mChemicalFormula = "";
TengamPurified.mChemicalFormula = "M";
TengamAttuned.mChemicalFormula = "M";
MaterialsUEVplus.ExcitedDTSC.mChemicalFormula = "[-Stellar-Stellar-]";
MaterialsUEVplus.DimensionallyTranscendentStellarCatalyst.mChemicalFormula = "Stellar";
+ PolyAluminiumChloride.mChemicalFormula = "Al\u2082(OH)\u2083Cl\u2083";
}
private static void initSubTags() {
diff --git a/src/main/java/gregtech/api/enums/MetaTileEntityIDs.java b/src/main/java/gregtech/api/enums/MetaTileEntityIDs.java
index b34c5d79f0..78bc31ec57 100644
--- a/src/main/java/gregtech/api/enums/MetaTileEntityIDs.java
+++ b/src/main/java/gregtech/api/enums/MetaTileEntityIDs.java
@@ -684,6 +684,19 @@ public enum MetaTileEntityIDs {
INDUSTRIAL_APIARY(9399),
Drone_Centre(9400),
DroneDownLink(9401),
+ PURIFICATION_PLANT_CONTROLLER(9402),
+ PURIFICATION_UNIT_CLARIFIER(9403),
+ PURIFICATION_UNIT_OZONATION(9404),
+ PURIFICATION_UNIT_FLOCCULATOR(9405),
+ PURIFICATION_UNIT_PH_ADJUSTMENT(9406),
+ HATCH_PH_SENSOR(9407),
+ PURIFICATION_UNIT_PLASMA_HEATER(9408),
+ PURIFICATION_UNIT_UV_TREATMENT(9409),
+ HATCH_LENS_HOUSING(9410),
+ HATCH_LENS_INDICATOR(9411),
+ PURIFICATION_UNIT_DEGASIFIER(9412),
+ HATCH_DEGASIFIER_CONTROL(9413),
+ PURIFICATION_UNIT_PARTICLE_EXTRACTOR(9414),
sofc1(13101),
sofc2(13102),
tfft(13104),
diff --git a/src/main/java/gregtech/api/enums/SoundResource.java b/src/main/java/gregtech/api/enums/SoundResource.java
index 54a2162541..712c1b5016 100644
--- a/src/main/java/gregtech/api/enums/SoundResource.java
+++ b/src/main/java/gregtech/api/enums/SoundResource.java
@@ -63,6 +63,12 @@ public enum SoundResource {
GT_MACHINES_WATER_PUMP_LOOP(234, GregTech.ID, "machines.WaterPumpLoop"),
GT_MACHINES_STEAM_CENTRIFUGE_LOOP(235, GregTech.ID, "machines.SteamCentrifugeLoop"),
+ GT_MACHINES_PURIFICATIONPLANT_LOOP(233, GregTech.ID, "machines.PurificationPlantLoop"),
+ GT_MACHINES_PURIFICATION_PH_LOOP(234, GregTech.ID, "machines.PurificationPhLoop"),
+ GT_MACHINES_COAGULATION_LOOP(235, GregTech.ID, "machines.PurificationCoagulationLoop"),
+ GT_MACHINES_OZONATION_LOOP(236, GregTech.ID, "machines.PurificationOzonationLoop"),
+ GT_MACHINES_PURIFICATION_PLASMA_LOOP(237, "machines.PurificationPlasmaLoop"),
+
GUI_BUTTON_DOWN(-1, GregTech.ID, "gui.buttonDown"),
GUI_BUTTON_UP(-1, GregTech.ID, "gui.buttonUp"),
diff --git a/src/main/java/gregtech/api/enums/Textures.java b/src/main/java/gregtech/api/enums/Textures.java
index b190d60d00..300f2281ae 100644
--- a/src/main/java/gregtech/api/enums/Textures.java
+++ b/src/main/java/gregtech/api/enums/Textures.java
@@ -1346,6 +1346,8 @@ public class Textures {
OVERLAY_ME_CRAFTING_HATCH_ACTIVE,
OVERLAY_ME_FLUID_HATCH,
OVERLAY_ME_FLUID_HATCH_ACTIVE,
+ OVERLAY_HATCH_PH_SENSOR,
+ OVERLAY_HATCH_PH_SENSOR_GLOW,
STRUCTURE_MARK,
@@ -1404,7 +1406,29 @@ public class Textures {
LARGETURBINE_NEW_EMPTY6,
LARGETURBINE_NEW_EMPTY7,
LARGETURBINE_NEW_EMPTY8,
- LARGETURBINE_NEW_EMPTY9,;
+ LARGETURBINE_NEW_EMPTY9,
+ INDUSTRIAL_STRENGTH_CONCRETE,
+ GLASS_PH_RESISTANT,
+ GLASS_TINTED_INDUSTRIAL_WHITE,
+ GLASS_TINTED_INDUSTRIAL_LIGHT_GRAY,
+ GLASS_TINTED_INDUSTRIAL_GRAY,
+ GLASS_TINTED_INDUSTRIAL_BLACK,
+ MACHINE_CASING_INDUSTRIAL_WATER_PLANT,
+ WATER_PLANT_CONCRETE_CASING,
+ MACHINE_CASING_FLOCCULATION,
+ MACHINE_CASING_NAQUADAH_REINFORCED_WATER_PLANT,
+ MACHINE_CASING_EXTREME_CORROSION_RESISTANT,
+ MACHINE_CASING_HIGH_PRESSURE_RESISTANT,
+ MACHINE_CASING_OZONE,
+ MACHINE_CASING_PLASMA_HEATER,
+ NAQUADRIA_REINFORCED_WATER_PLANT_CASING,
+ UV_BACKLIGHT_STERILIZER_CASING,
+ NEUTRONIUM_COATED_UV_RESISTANT_GLASS,
+ OMNI_PURPOSE_INFINITY_FUSED_GLASS,
+ GLASS_QUARK_CONTAINMENT,
+ BLOCK_QUARK_PIPE,
+ BLOCK_QUARK_RELEASE_CHAMBER,
+ BLOCK_QUARK_CONTAINMENT_CASING,;
/**
* Icon for Fresh CFoam
diff --git a/src/main/java/gregtech/api/gui/modularui/GT_UITextures.java b/src/main/java/gregtech/api/gui/modularui/GT_UITextures.java
index 100c39ea1a..b456026dbd 100644
--- a/src/main/java/gregtech/api/gui/modularui/GT_UITextures.java
+++ b/src/main/java/gregtech/api/gui/modularui/GT_UITextures.java
@@ -26,7 +26,8 @@ public class GT_UITextures {
.of(GregTech.ID, "gui/background/text_field_light_gray", 61, 12, 1);
public static final AdaptableUITexture BACKGROUND_NEI_SINGLE_RECIPE = AdaptableUITexture
.of(GregTech.ID, "gui/background/nei_single_recipe.png", 64, 64, 2);
-
+ public static final UITexture BACKGROUND_FLOCCULATION_RECIPE = UITexture
+ .fullImage(GregTech.ID, "gui/background/flocculation_recipe.png");
public static final SteamTexture SLOT_ITEM_STEAM = SteamTexture.fullImage(GregTech.ID, "gui/slot/item_%s");
public static final SteamTexture SLOT_FLUID_STEAM = SteamTexture.fullImage(GregTech.ID, "gui/slot/fluid_%s");
public static final AdaptableUITexture SLOT_DARK_GRAY = AdaptableUITexture
@@ -205,6 +206,14 @@ public class GT_UITextures {
public static final UITexture PROGRESSBAR_SLICE = UITexture.fullImage(GregTech.ID, "gui/progressbar/slice");
public static final UITexture PROGRESSBAR_STORED_EU = UITexture.fullImage(GregTech.ID, "gui/progressbar/stored_eu");
public static final UITexture PROGRESSBAR_WIREMILL = UITexture.fullImage(GregTech.ID, "gui/progressbar/wiremill");
+ public static final UITexture PROGRESSBAR_FLOCCULATION = UITexture
+ .fullImage(GregTech.ID, "gui/progressbar/flocculation");
+ public static final UITexture PROGRESSBAR_CLARIFIER = UITexture.fullImage(GregTech.ID, "gui/progressbar/clarifier");
+ public static final UITexture PROGRESSBAR_PH_NEUTRALIZATION = UITexture
+ .fullImage(GregTech.ID, "gui/progressbar/phneutralization");
+ public static final UITexture PROGRESSBAR_OZONATION = UITexture.fullImage(GregTech.ID, "gui/progressbar/ozonation");
+ public static final UITexture PROGRESSBAR_PLASMA_HEATER = UITexture
+ .fullImage(GregTech.ID, "gui/progressbar/water_plasma_heater");
public static FallbackableUITexture fallbackableProgressbar(String name, UITexture fallback) {
return new FallbackableUITexture(UITexture.fullImage(GregTech.ID, "gui/progressbar/" + name), fallback);
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java
index f4c4eb6a14..089aec53e0 100644
--- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java
+++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java
@@ -302,11 +302,18 @@ public class GT_MetaTileEntity_Hatch_InputBus extends GT_MetaTileEntity_Hatch
buildContext.addCloseListener(() -> uiButtonCount = 0);
addSortStacksButton(builder);
addOneStackLimitButton(builder);
- switch (mTier) {
- case 0 -> getBaseMetaTileEntity().add1by1Slot(builder);
- case 1 -> getBaseMetaTileEntity().add2by2Slots(builder);
- case 2 -> getBaseMetaTileEntity().add3by3Slots(builder);
- default -> getBaseMetaTileEntity().add4by4Slots(builder);
+ // Remove one for ghost circuit slot
+ int slotCount = getSizeInventory();
+ if (allowSelectCircuit()) {
+ slotCount = slotCount - 1;
+ }
+ // We do this to decouple slot count from tier in here, since there is no reason to do so.
+ switch (slotCount) {
+ case 1 -> getBaseMetaTileEntity().add1by1Slot(builder);
+ case 4 -> getBaseMetaTileEntity().add2by2Slots(builder);
+ case 9 -> getBaseMetaTileEntity().add3by3Slots(builder);
+ case 16 -> getBaseMetaTileEntity().add4by4Slots(builder);
+ default -> {}
}
}
diff --git a/src/main/java/gregtech/api/recipe/RecipeMaps.java b/src/main/java/gregtech/api/recipe/RecipeMaps.java
index c42b8725b4..6d614d27d0 100644
--- a/src/main/java/gregtech/api/recipe/RecipeMaps.java
+++ b/src/main/java/gregtech/api/recipe/RecipeMaps.java
@@ -59,12 +59,18 @@ import gregtech.api.recipe.maps.LargeNEIFrontend;
import gregtech.api.recipe.maps.MicrowaveBackend;
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.PurificationUnitOzonationFrontend;
+import gregtech.api.recipe.maps.PurificationUnitPhAdjustmentFrontend;
+import gregtech.api.recipe.maps.PurificationUnitPlasmaHeaterFrontend;
import gregtech.api.recipe.maps.RecyclerBackend;
import gregtech.api.recipe.maps.ReplicatorBackend;
import gregtech.api.recipe.maps.SpaceProjectFrontend;
import gregtech.api.recipe.maps.TranscendentPlasmaMixerFrontend;
import gregtech.api.recipe.maps.UnpackagerBackend;
import gregtech.api.recipe.metadata.PCBFactoryTierKey;
+import gregtech.api.recipe.metadata.PurificationPlantBaseChanceKey;
import gregtech.api.util.GT_Config;
import gregtech.api.util.GT_ModHandler;
import gregtech.api.util.GT_OreDictUnificator;
@@ -72,6 +78,7 @@ import gregtech.api.util.GT_Recipe;
import gregtech.api.util.GT_RecipeConstants;
import gregtech.api.util.GT_RecipeMapUtil;
import gregtech.api.util.GT_Utility;
+import gregtech.common.tileentities.machines.multi.purification.PurifiedWaterHelpers;
import gregtech.nei.formatter.FuelSpecialValueFormatter;
import gregtech.nei.formatter.FusionSpecialValueFormatter;
import gregtech.nei.formatter.HeatingCoilSpecialValueFormatter;
@@ -297,6 +304,22 @@ public final class RecipeMaps {
.slotOverlays(
(index, isFluid, isOutput,
isSpecial) -> !isFluid && !isOutput && index != 0 ? GT_UITextures.OVERLAY_SLOT_LENS : null)
+ // Add a simple ordering so lower tier purified water is displayed first, otherwise it gets really confusing
+ .neiRecipeComparator((a, b) -> {
+ // Find lens, if no lens was present we can use the default comparator
+ if (a.mInputs.length > 1 && b.mInputs.length > 1) {
+ ItemStack firstLens = a.mInputs[1];
+ ItemStack secondLens = b.mInputs[1];
+ // Find purified water/any fluid, if none was present simply use the lens to compare
+ if (ItemStack.areItemStacksEqual(firstLens, secondLens) && a.mFluidInputs.length > 0
+ && b.mFluidInputs.length > 0) {
+ return Comparator
+ .<GT_Recipe, Integer>comparing(r -> PurifiedWaterHelpers.getWaterTier(r.mFluidInputs[0]))
+ .compare(a, b);
+ }
+ }
+ return a.compareTo(b);
+ })
.recipeConfigFile("laserengraving", FIRST_ITEM_OUTPUT)
.build();
public static final RecipeMap<RecipeMapBackend> mixerRecipes = RecipeMapBuilder.of("gt.recipe.mixer")
@@ -1149,6 +1172,78 @@ public final class RecipeMaps {
.<GT_Recipe, Integer>comparing(recipe -> recipe.getMetadataOrDefault(PCBFactoryTierKey.INSTANCE, 1))
.thenComparing(GT_Recipe::compareTo))
.build();
+ public static final RecipeMap<RecipeMapBackend> purificationClarifierRecipes = RecipeMapBuilder
+ .of("gt.recipe.purificationplantclarifier")
+ .maxIO(1, 4, 1, 1)
+ .minInputs(0, 1)
+ .frontend(PurificationUnitClarifierFrontend::new)
+ .disableOptimize()
+ .build();
+ public static final RecipeMap<RecipeMapBackend> purificationOzonationRecipes = RecipeMapBuilder
+ .of("gt.recipe.purificationplantozonation")
+ .maxIO(0, 4, 2, 1)
+ .minInputs(0, 2)
+ .progressBar(GT_UITextures.PROGRESSBAR_BATH)
+ .neiRecipeComparator(
+ Comparator
+ .<GT_Recipe, Float>comparing(
+ recipe -> recipe.getMetadataOrDefault(PurificationPlantBaseChanceKey.INSTANCE, 0.0f))
+ .thenComparing(GT_Recipe::compareTo))
+ .frontend(PurificationUnitOzonationFrontend::new)
+ .disableOptimize()
+ .build();
+ public static final RecipeMap<RecipeMapBackend> purificationFlocculationRecipes = RecipeMapBuilder
+ .of("gt.recipe.purificationplantflocculation")
+ .maxIO(0, 3, 2, 2)
+ .minInputs(0, 1)
+ .progressBar(GT_UITextures.PROGRESSBAR_BATH)
+ .neiRecipeComparator(
+ Comparator
+ .<GT_Recipe, Float>comparing(
+ recipe -> recipe.getMetadataOrDefault(PurificationPlantBaseChanceKey.INSTANCE, 0.0f))
+ .thenComparing(GT_Recipe::compareTo))
+ .frontend(PurificationUnitFlocculatorFrontend::new)
+ .disableOptimize()
+ .build();
+
+ public static final RecipeMap<RecipeMapBackend> purificationPhAdjustmentRecipes = RecipeMapBuilder
+ .of("gt.recipe.purificationplantphadjustment")
+ .maxIO(0, 0, 1, 1)
+ .minInputs(0, 1)
+ .progressBar(GT_UITextures.PROGRESSBAR_MIXER)
+ .frontend(PurificationUnitPhAdjustmentFrontend::new)
+ .disableOptimize()
+ .build();
+
+ public static final RecipeMap<RecipeMapBackend> purificationPlasmaHeatingRecipes = RecipeMapBuilder
+ .of("gt.recipe.purificationplantplasmaheating")
+ .maxIO(0, 0, 1, 1)
+ .minInputs(0, 1)
+ .progressBar(GT_UITextures.PROGRESSBAR_BOILER_HEAT)
+ .frontend(PurificationUnitPlasmaHeaterFrontend::new)
+ .disableOptimize()
+ .build();
+ public static final RecipeMap<RecipeMapBackend> purificationUVTreatmentRecipes = RecipeMapBuilder
+ .of("gt.recipe.purificationplantuvtreatment")
+ .maxIO(0, 0, 1, 1)
+ .minInputs(0, 1)
+ .progressBar(GT_UITextures.PROGRESSBAR_ARROW)
+ .disableOptimize()
+ .build();
+ public static final RecipeMap<RecipeMapBackend> purificationDegasifierRecipes = RecipeMapBuilder
+ .of("gt.recipe.purificationplantdegasifier")
+ .maxIO(0, 3, 1, 2)
+ .minInputs(0, 1)
+ .progressBar(GT_UITextures.PROGRESSBAR_ARROW)
+ .disableOptimize()
+ .build();
+ public static final RecipeMap<RecipeMapBackend> purificationParticleExtractionRecipes = RecipeMapBuilder
+ .of("gt.recipe.purificationplantquarkextractor")
+ .maxIO(2, 1, 1, 2)
+ .minInputs(0, 1)
+ .progressBar(GT_UITextures.PROGRESSBAR_ARROW)
+ .disableOptimize()
+ .build();
public static final RecipeMap<RecipeMapBackend> ic2NuclearFakeRecipes = RecipeMapBuilder.of("gt.recipe.ic2nuke")
.maxIO(1, 1, 0, 0)
.minInputs(1, 0)
diff --git a/src/main/java/gregtech/api/recipe/maps/PurificationUnitClarifierFrontend.java b/src/main/java/gregtech/api/recipe/maps/PurificationUnitClarifierFrontend.java
new file mode 100644
index 0000000000..c7dad7ea3a
--- /dev/null
+++ b/src/main/java/gregtech/api/recipe/maps/PurificationUnitClarifierFrontend.java
@@ -0,0 +1,72 @@
+package gregtech.api.recipe.maps;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.annotation.ParametersAreNonnullByDefault;
+
+import com.gtnewhorizons.modularui.api.drawable.FallbackableUITexture;
+import com.gtnewhorizons.modularui.api.math.Pos2d;
+import com.gtnewhorizons.modularui.api.math.Size;
+
+import codechicken.nei.PositionedStack;
+import gregtech.api.enums.ItemList;
+import gregtech.api.gui.modularui.GT_UITextures;
+import gregtech.api.recipe.BasicUIPropertiesBuilder;
+import gregtech.api.recipe.NEIRecipePropertiesBuilder;
+import gregtech.api.util.MethodsReturnNonnullByDefault;
+import gregtech.common.gui.modularui.UIHelper;
+import gregtech.common.tileentities.machines.multi.purification.GT_MetaTileEntity_PurificationUnitClarifier;
+import gregtech.nei.GT_NEI_DefaultHandler;
+
+@ParametersAreNonnullByDefault
+@MethodsReturnNonnullByDefault
+public class PurificationUnitClarifierFrontend extends PurificationUnitRecipeMapFrontend {
+
+ public PurificationUnitClarifierFrontend(BasicUIPropertiesBuilder uiPropertiesBuilder,
+ NEIRecipePropertiesBuilder neiPropertiesBuilder) {
+ super(
+ 80,
+ uiPropertiesBuilder.logoPos(new Pos2d(160, 100))
+ .progressBarTexture(new FallbackableUITexture(GT_UITextures.PROGRESSBAR_CLARIFIER))
+ .logoPos(new Pos2d(152, 90)),
+ neiPropertiesBuilder.recipeBackgroundSize(new Size(170, 120)));
+ }
+
+ @Override
+ public List<Pos2d> getFluidInputPositions(int fluidInputCount) {
+ ArrayList<Pos2d> positions = new ArrayList<>();
+ positions.add(new Pos2d(6, 7));
+ return positions;
+ }
+
+ @Override
+ public List<Pos2d> getFluidOutputPositions(int fluidOutputCount) {
+ ArrayList<Pos2d> positions = new ArrayList<>();
+ positions.add(new Pos2d(154, 7));
+ return positions;
+ }
+
+ @Override
+ public List<Pos2d> getItemInputPositions(int itemInputCount) {
+ ArrayList<Pos2d> positions = new ArrayList<>();
+ positions.add(new Pos2d(79, 43));
+ return positions;
+ }
+
+ @Override
+ public List<Pos2d> getItemOutputPositions(int itemOutputCount) {
+ return UIHelper.getGridPositions(itemOutputCount, 136, 43, 2, 2);
+ }
+
+ @Override
+ public void drawNEIOverlays(GT_NEI_DefaultHandler.CachedDefaultRecipe neiCachedRecipe) {
+ super.drawNEIOverlays(neiCachedRecipe);
+
+ for (PositionedStack stack : neiCachedRecipe.mInputs) {
+ if (stack.item.isItemEqual(ItemList.ActivatedCarbonFilterMesh.get(1))) {
+ drawNEIOverlayText((int) (GT_MetaTileEntity_PurificationUnitClarifier.FILTER_DAMAGE_RATE) + "%", stack);
+ }
+ }
+ }
+}
diff --git a/src/main/java/gregtech/api/recipe/maps/PurificationUnitFlocculatorFrontend.java b/src/main/java/gregtech/api/recipe/maps/PurificationUnitFlocculatorFrontend.java
new file mode 100644
index 0000000000..9366237b67
--- /dev/null
+++ b/src/main/java/gregtech/api/recipe/maps/PurificationUnitFlocculatorFrontend.java
@@ -0,0 +1,99 @@
+package gregtech.api.recipe.maps;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.annotation.ParametersAreNonnullByDefault;
+
+import net.minecraft.item.ItemStack;
+
+import org.jetbrains.annotations.NotNull;
+
+import com.gtnewhorizons.modularui.api.drawable.FallbackableUITexture;
+import com.gtnewh