diff options
Diffstat (limited to 'src/main/java/gregtech/api')
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); |