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/enums/GT_Values.java1
-rw-r--r--src/main/java/gregtech/api/enums/ItemList.java20
-rw-r--r--src/main/java/gregtech/api/enums/MetaTileEntityIDs.java7
-rw-r--r--src/main/java/gregtech/api/enums/Textures.java21
-rw-r--r--src/main/java/gregtech/api/gui/modularui/GT_UITextures.java4
-rw-r--r--src/main/java/gregtech/api/recipe/RecipeMaps.java21
-rw-r--r--src/main/java/gregtech/api/recipe/check/CheckRecipeResultRegistry.java10
-rw-r--r--src/main/java/gregtech/api/recipe/metadata/CompressionTierKey.java33
-rw-r--r--src/main/java/gregtech/api/util/GT_LanguageManager.java2
-rw-r--r--src/main/java/gregtech/api/util/GT_RecipeConstants.java7
10 files changed, 124 insertions, 2 deletions
diff --git a/src/main/java/gregtech/api/enums/GT_Values.java b/src/main/java/gregtech/api/enums/GT_Values.java
index ec4a6ce5c7..88972e45fc 100644
--- a/src/main/java/gregtech/api/enums/GT_Values.java
+++ b/src/main/java/gregtech/api/enums/GT_Values.java
@@ -651,6 +651,7 @@ public class GT_Values {
+ EnumChatFormatting.WHITE
+ EnumChatFormatting.ITALIC
+ "Number";
+ public static final String Ollie = "" + EnumChatFormatting.GREEN + EnumChatFormatting.BOLD + "Ollie";
public static final String authorBaps = "Author: " + EnumChatFormatting.GOLD
+ "Ba"
+ EnumChatFormatting.LIGHT_PURPLE
diff --git a/src/main/java/gregtech/api/enums/ItemList.java b/src/main/java/gregtech/api/enums/ItemList.java
index bf9fa4ec90..766525c958 100644
--- a/src/main/java/gregtech/api/enums/ItemList.java
+++ b/src/main/java/gregtech/api/enums/ItemList.java
@@ -1091,6 +1091,8 @@ public enum ItemList implements IItemContainer {
Hatch_DataAccess_LuV,
Hatch_DataAccess_UV,
+ Hatch_HeatSensor,
+
Battery_Buffer_1by1_ULV,
Battery_Buffer_1by1_LV,
Battery_Buffer_1by1_MV,
@@ -1474,6 +1476,24 @@ public enum ItemList implements IItemContainer {
Electromagnet_Tengam,
Machine_Multi_Canner,
+
+ Machine_Multi_IndustrialCompressor,
+ Machine_Multi_HIPCompressor,
+ Machine_Multi_NeutroniumCompressor,
+ Machine_Multi_BlackHoleCompressor,
+ Compressor_Casing,
+ Compressor_Pipe_Casing,
+ Heating_Duct_Casing,
+ Coolant_Duct_Casing,
+ Neutronium_Casing,
+ Neutronium_Active_Casing,
+ Neutronium_Stable_Casing,
+ Background_Radiation_Casing,
+ Extreme_Density_Casing,
+ Hawking_Glass,
+ Black_Hole_Opener,
+ Black_Hole_Closer,
+
Machine_Multi_IndustrialLaserEngraver,
Laser_Plate,
Casing_Laser,
diff --git a/src/main/java/gregtech/api/enums/MetaTileEntityIDs.java b/src/main/java/gregtech/api/enums/MetaTileEntityIDs.java
index d55d1bbcf9..7793a2f6b2 100644
--- a/src/main/java/gregtech/api/enums/MetaTileEntityIDs.java
+++ b/src/main/java/gregtech/api/enums/MetaTileEntityIDs.java
@@ -626,7 +626,12 @@ public enum MetaTileEntityIDs {
INPUT_HATCH_ME(2717),
INPUT_BUS_ME(2718),
INDUSTRIAL_LASER_ENGRAVER_CONTROLLER(3004),
- INDUSTRIAL_EXTRACTOR_CONTROLLER(3005),
+ INDUSTRIAL_COMPRESSOR_CONTROLLER(3005),
+ HIP_COMPRESSOR_CONTROLLER(3006),
+ NEUTRONIUM_COMPRESSOR_CONTROLLER(3007),
+ BLACKHOLE_COMPRESSOR_CONTROLLER(3008),
+ HEAT_DETECTOR_HATCH(3009),
+ INDUSTRIAL_EXTRACTOR_CONTROLLER(3010),
DraconicEvolutionFusionCrafterController(5001),
CHEST_BUFFER_ULV(9230),
CHEST_BUFFER_LV(9231),
diff --git a/src/main/java/gregtech/api/enums/Textures.java b/src/main/java/gregtech/api/enums/Textures.java
index d00c5dccb9..4a5142138a 100644
--- a/src/main/java/gregtech/api/enums/Textures.java
+++ b/src/main/java/gregtech/api/enums/Textures.java
@@ -336,6 +336,13 @@ public class Textures {
OVERLAY_FRONT_MULTI_CANNER_ACTIVE_GLOW,
OVERLAY_FRONT_MULTI_CANNER_GLOW,
+ OVERLAY_FRONT_MULTI_COMPRESSOR,
+ OVERLAY_FRONT_MULTI_COMPRESSOR_ACTIVE,
+ OVERLAY_FRONT_MULTI_COMPRESSOR_ACTIVE_GLOW,
+ OVERLAY_FRONT_MULTI_COMPRESSOR_GLOW,
+ OVERLAY_FRONT_MULTI_COMPRESSOR_COOLING,
+ OVERLAY_FRONT_MULTI_COMPRESSOR_COOLING_GLOW,
+
OVERLAY_FRONT_INDUSTRIAL_EXTRACTOR,
OVERLAY_FRONT_INDUSTRIAL_EXTRACTOR_ACTIVE,
OVERLAY_FRONT_INDUSTRIAL_EXTRACTOR_ACTIVE_GLOW,
@@ -347,6 +354,7 @@ public class Textures {
OVERLAY_FRONT_ENGRAVER_ACTIVE,
OVERLAY_FRONT_ENGRAVER_ACTIVE_GLOW,
OVERLAY_FRONT_ENGRAVER_GLOW,
+
OVERLAY_FRONT_MULTI_LATHE,
OVERLAY_FRONT_MULTI_LATHE_ACTIVE,
OVERLAY_FRONT_MULTI_LATHE_ACTIVE_GLOW,
@@ -1330,6 +1338,9 @@ public class Textures {
OVERLAY_HATCH_PH_SENSOR,
OVERLAY_HATCH_PH_SENSOR_GLOW,
+ OVERLAY_HATCH_BLACKHOLE,
+ OVERLAY_HATCH_BLACKHOLE_GLOW,
+
STRUCTURE_MARK,
MV_TOP_CYCLOTRON_SOLENOID,
@@ -1409,7 +1420,15 @@ public class Textures {
GLASS_QUARK_CONTAINMENT,
BLOCK_QUARK_PIPE,
BLOCK_QUARK_RELEASE_CHAMBER,
- BLOCK_QUARK_CONTAINMENT_CASING,;
+ BLOCK_QUARK_CONTAINMENT_CASING,
+ COMPRESSOR_CASING,
+ COMPRESSOR_PIPE_CASING,
+ NEUTRONIUM_CASING,
+ NEUTRONIUM_ACTIVE_CASING,
+ NEUTRONIUM_STABLE_CASING,
+ EXTREME_DENSITY_CASING,
+ RADIATION_ABSORBENT_CASING,
+ HAWKING_GLASS;
/**
* 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 526ba1aa18..6031399c06 100644
--- a/src/main/java/gregtech/api/gui/modularui/GT_UITextures.java
+++ b/src/main/java/gregtech/api/gui/modularui/GT_UITextures.java
@@ -441,6 +441,10 @@ public class GT_UITextures {
.fullImage(GregTech.ID, "gui/overlay_button/machine_mode_slicing");
public static final UITexture OVERLAY_BUTTON_MACHINEMODE_CUTTING = UITexture
.fullImage(GregTech.ID, "gui/overlay_button/machine_mode_cutting");
+ public static final UITexture OVERLAY_BUTTON_MACHINEMODE_COMPRESSING = UITexture
+ .fullImage(GregTech.ID, "gui/overlay_button/machine_mode_compressing");
+ public static final UITexture OVERLAY_BUTTON_MACHINEMODE_SINGULARITY = UITexture
+ .fullImage(GregTech.ID, "gui/overlay_button/machine_mode_singularity");
/**
* Can adjust size as needed.
diff --git a/src/main/java/gregtech/api/recipe/RecipeMaps.java b/src/main/java/gregtech/api/recipe/RecipeMaps.java
index 82dd60441a..293b4f36b5 100644
--- a/src/main/java/gregtech/api/recipe/RecipeMaps.java
+++ b/src/main/java/gregtech/api/recipe/RecipeMaps.java
@@ -1,8 +1,10 @@
package gregtech.api.recipe;
+import static gregtech.api.enums.Mods.Avaritia;
import static gregtech.api.enums.Mods.GTNHIntergalactic;
import static gregtech.api.enums.Mods.NEICustomDiagrams;
import static gregtech.api.enums.Mods.Railcraft;
+import static gregtech.api.util.GT_ModHandler.getModItem;
import static gregtech.api.util.GT_RecipeConstants.ADDITIVE_AMOUNT;
import static gregtech.api.util.GT_RecipeConstants.FUEL_VALUE;
import static gregtech.api.util.GT_RecipeMapUtil.GT_RecipeTemplate;
@@ -63,6 +65,7 @@ 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.CompressionTierKey;
import gregtech.api.recipe.metadata.PCBFactoryTierKey;
import gregtech.api.recipe.metadata.PurificationPlantBaseChanceKey;
import gregtech.api.util.GT_ModHandler;
@@ -125,9 +128,27 @@ public final class RecipeMaps {
(index, isFluid, isOutput, isSpecial) -> !isFluid && !isOutput ? GT_UITextures.OVERLAY_SLOT_COMPRESSOR_STEAM
: null)
.progressBarSteam(GT_UITextures.PROGRESSBAR_COMPRESS_STEAM)
+ .neiRecipeComparator(
+ Comparator
+ .<GT_Recipe, Integer>comparing(recipe -> recipe.getMetadataOrDefault(CompressionTierKey.INSTANCE, 0))
+ .thenComparing(GT_Recipe::compareTo))
// Avoid steam machine being used as handler icon
.neiHandlerInfo(builder -> builder.setDisplayStack(ItemList.Machine_LV_Compressor.get(1)))
.build();
+ public static final RecipeMap<RecipeMapBackend> neutroniumCompressorRecipes = RecipeMapBuilder
+ .of("gt.recipe.neutroniumcompressor")
+ .maxIO(1, 1, 1, 0)
+ .slotOverlays(
+ (index, isFluid, isOutput, isSpecial) -> !isFluid && !isOutput ? GT_UITextures.OVERLAY_SLOT_COMPRESSOR
+ : null)
+ .progressBar(GT_UITextures.PROGRESSBAR_COMPRESS)
+ .neiHandlerInfo(builder -> builder.setDisplayStack(getModItem(Avaritia.ID, "Singularity", 1L, 0)))
+ .disableOptimize()
+ .neiRecipeComparator(
+ Comparator
+ .<GT_Recipe, Integer>comparing(recipe -> recipe.getMetadataOrDefault(CompressionTierKey.INSTANCE, 0))
+ .thenComparing(GT_Recipe::compareTo))
+ .build();
public static final RecipeMap<RecipeMapBackend> extractorRecipes = RecipeMapBuilder.of("gt.recipe.extractor")
.maxIO(1, 1, 0, 0)
.minInputs(1, 0)
diff --git a/src/main/java/gregtech/api/recipe/check/CheckRecipeResultRegistry.java b/src/main/java/gregtech/api/recipe/check/CheckRecipeResultRegistry.java
index 5844a49180..dc7fc0d6a6 100644
--- a/src/main/java/gregtech/api/recipe/check/CheckRecipeResultRegistry.java
+++ b/src/main/java/gregtech/api/recipe/check/CheckRecipeResultRegistry.java
@@ -109,6 +109,16 @@ public final class CheckRecipeResultRegistry {
public static final CheckRecipeResult BACKFILLER_NO_CONCRETE = SimpleCheckRecipeResult
.ofFailure("backfiller_no_concrete");
+ /**
+ * Black Hole Compressor does not have an active black hole
+ */
+ public static final CheckRecipeResult NO_BLACK_HOLE = SimpleCheckRecipeResult.ofFailure("no_black_hole");
+ /**
+ * Black Hole Compressor became unstable
+ */
+ public static final CheckRecipeResult UNSTABLE_BLACK_HOLE = SimpleCheckRecipeResult
+ .ofFailure("unstable_black_hole");
+
public static final CheckRecipeResult NO_SEE_SKY = SimpleCheckRecipeResult.ofFailure("no_see_sky");
/**
diff --git a/src/main/java/gregtech/api/recipe/metadata/CompressionTierKey.java b/src/main/java/gregtech/api/recipe/metadata/CompressionTierKey.java
new file mode 100644
index 0000000000..384b5ce2d9
--- /dev/null
+++ b/src/main/java/gregtech/api/recipe/metadata/CompressionTierKey.java
@@ -0,0 +1,33 @@
+package gregtech.api.recipe.metadata;
+
+import static gregtech.api.util.GT_Utility.trans;
+
+import javax.annotation.Nullable;
+import javax.annotation.ParametersAreNonnullByDefault;
+
+import gregtech.api.recipe.RecipeMetadataKey;
+import gregtech.api.util.MethodsReturnNonnullByDefault;
+import gregtech.nei.RecipeDisplayInfo;
+
+/**
+ * Tier of advanced compression required
+ */
+@ParametersAreNonnullByDefault
+@MethodsReturnNonnullByDefault
+public class CompressionTierKey extends RecipeMetadataKey<Integer> {
+
+ public static final CompressionTierKey INSTANCE = new CompressionTierKey();
+
+ private CompressionTierKey() {
+ super(Integer.class, "compression_tier");
+ }
+
+ @Override
+ public void drawInfo(RecipeDisplayInfo recipeInfo, @Nullable Object value) {
+ int tier = cast(value, 1);
+ switch (tier) {
+ case 1 -> recipeInfo.drawText(trans("509", "Requires HIP Unit"));
+ case 2 -> recipeInfo.drawText(trans("508", "Requires Stabilized Black Hole"));
+ }
+ }
+}
diff --git a/src/main/java/gregtech/api/util/GT_LanguageManager.java b/src/main/java/gregtech/api/util/GT_LanguageManager.java
index e153b8e15f..4a9dc878ed 100644
--- a/src/main/java/gregtech/api/util/GT_LanguageManager.java
+++ b/src/main/java/gregtech/api/util/GT_LanguageManager.java
@@ -549,6 +549,8 @@ public class GT_LanguageManager {
addStringLocalization("Interaction_DESCRIPTION_Index_505", "Enable with Signal (Safe)");
addStringLocalization("Interaction_DESCRIPTION_Index_506", "Disable with Signal (Safe)");
addStringLocalization("Interaction_DESCRIPTION_Index_507", "Safe Mode");
+ addStringLocalization("Interaction_DESCRIPTION_Index_508", "Needs Stabilized Black Hole");
+ addStringLocalization("Interaction_DESCRIPTION_Index_509", "Requires HIP Unit");
addStringLocalization("Interaction_DESCRIPTION_Index_602", "Use Private Frequency");
addStringLocalization("Interaction_DESCRIPTION_Index_756", "Connectable: ");
addStringLocalization("Interaction_DESCRIPTION_Index_ALL", "All");
diff --git a/src/main/java/gregtech/api/util/GT_RecipeConstants.java b/src/main/java/gregtech/api/util/GT_RecipeConstants.java
index a8cdb19b7a..c8a002c6c2 100644
--- a/src/main/java/gregtech/api/util/GT_RecipeConstants.java
+++ b/src/main/java/gregtech/api/util/GT_RecipeConstants.java
@@ -144,6 +144,12 @@ public class GT_RecipeConstants {
.create(Integer.class, "qft_focus_tier");
/**
+ * Tier of advanced compression (HIP/black hole)
+ */
+ public static final RecipeMetadataKey<Integer> COMPRESSION_TIER = SimpleRecipeMetadataKey
+ .create(Integer.class, "compression");
+
+ /**
* Dissolution Tank Ratio.
*/
public static final RecipeMetadataKey<Integer> DISSOLUTION_TANK_RATIO = SimpleRecipeMetadataKey
@@ -677,6 +683,7 @@ public class GT_RecipeConstants {
GT_RecipeMapUtil.SPECIAL_VALUE_ALIASES.add(NKE_RANGE);
GT_RecipeMapUtil.SPECIAL_VALUE_ALIASES.add(PRECISE_ASSEMBLER_CASING_TIER);
GT_RecipeMapUtil.SPECIAL_VALUE_ALIASES.add(COAL_CASING_TIER);
+ GT_RecipeMapUtil.SPECIAL_VALUE_ALIASES.add(COMPRESSION_TIER);
GT_RecipeMapUtil.SPECIAL_VALUE_ALIASES.add(RESEARCH_STATION_DATA);
GT_RecipeMapUtil.SPECIAL_VALUE_ALIASES.add(SIEVERTS);
GT_RecipeMapUtil.SPECIAL_VALUE_ALIASES.add(DECAY_TICKS);