From 03f8ac57b99f8fa26975151ad39cb1a78667db73 Mon Sep 17 00:00:00 2001 From: Mary <33456283+FourIsTheNumber@users.noreply.github.com> Date: Thu, 29 Aug 2024 11:15:21 -0400 Subject: Compressor Multiblock (#2861) * Compressor boilerplate * Getting test structure working * Structure fixes * Implemented basic HIP and Black Hole structure elements complete with heat and black hole stabilization mechanics * Cooling glow, also HIP cools much slower than it heats * Got blue cooling texture working * spotless :3 * Force structure checks every 10 seconds like nano forge * Neutronium compressor recipemap created * Various strange changes attempting to get a neutronium compressor map working. Shelved for now * Absolutely going hog wild with neutronium testing * BIG RECIPE * Added Ollie author tag * Added a bunch of neutronium compressor recipes * Deeply cursed recipemap combining * Neutronium compressor structure * Black hole requirement for recipes established * Black hole implementation changed * Added black hole catalyzation * spotless * Removed neutronium compressor recipes from gt5u * Made eternal singularity work somehow * Boilerplate for new hatches * Tinkering * Split the multi in 4 * Fix refactor * Implemented the new black hole mechanic with catalysts. * Give speed bonuses/nerfs to recipes based on black hole. Shuffled some logic around * Imported real structures * Proper HIP implementation with heat sensor * Cut HIP mechanics from Neutronium * Restore Gangue for use in a black hole recipe * Made Gangue blocks load * sa+update deps * Added t1/t2 casings * Temporary casings for neutronium * SA from merge * Temporary HIP Textures * Temporary Black Hole textures * Support machinemode for black hole, support special value for compression * Don't let neutronium compressor do black hole recipes * Get all of the numbers in * Tooltip adjustments for readability * Casing fix and more tooltips * Correct structure tooltips * Improve legibility of HIP tooltip * 1 parallel per tier when overheated * Lost my privates * Fixed modern cast and imported the new textures * Removed very unnecessary logic * Nerf HIP parallels to 4 to make black hole better * Change all special value stuff to proper metadata --------- Co-authored-by: Martin Robertz --- src/main/java/gregtech/api/enums/GT_Values.java | 1 + src/main/java/gregtech/api/enums/ItemList.java | 20 + .../java/gregtech/api/enums/MetaTileEntityIDs.java | 7 +- src/main/java/gregtech/api/enums/Textures.java | 21 +- .../gregtech/api/gui/modularui/GT_UITextures.java | 4 + src/main/java/gregtech/api/recipe/RecipeMaps.java | 21 + .../recipe/check/CheckRecipeResultRegistry.java | 10 + .../api/recipe/metadata/CompressionTierKey.java | 33 + .../java/gregtech/api/util/GT_LanguageManager.java | 2 + .../java/gregtech/api/util/GT_RecipeConstants.java | 7 + .../gregtech/common/blocks/GT_Block_Casings10.java | 32 +- .../gregtech/common/blocks/GT_Block_Glass1.java | 9 +- .../gregtech/common/blocks/GT_Item_Glass1.java | 21 + .../common/items/GT_MetaGenerated_Item_01.java | 419 +++++++++- .../java/gregtech/common/items/ID_MetaItem_01.java | 2 + .../GT_MetaTileEntity_BlackHoleCompressor.java | 539 ++++++++++++ .../GT_MetaTileEntity_HIPCompressor.java | 525 ++++++++++++ .../compressor/GT_MetaTileEntity_HeatSensor.java | 188 +++++ .../GT_MetaTileEntity_IndustrialCompressor.java | 244 ++++++ .../GT_MetaTileEntity_NeutroniumCompressor.java | 261 ++++++ .../preload/GT_Loader_MetaTileEntities.java | 915 ++++++++++++++++++++- 21 files changed, 3271 insertions(+), 10 deletions(-) create mode 100644 src/main/java/gregtech/api/recipe/metadata/CompressionTierKey.java create mode 100644 src/main/java/gregtech/common/tileentities/machines/multi/compressor/GT_MetaTileEntity_BlackHoleCompressor.java create mode 100644 src/main/java/gregtech/common/tileentities/machines/multi/compressor/GT_MetaTileEntity_HIPCompressor.java create mode 100644 src/main/java/gregtech/common/tileentities/machines/multi/compressor/GT_MetaTileEntity_HeatSensor.java create mode 100644 src/main/java/gregtech/common/tileentities/machines/multi/compressor/GT_MetaTileEntity_IndustrialCompressor.java create mode 100644 src/main/java/gregtech/common/tileentities/machines/multi/compressor/GT_MetaTileEntity_NeutroniumCompressor.java (limited to 'src/main/java/gregtech') 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 + .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 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 + .comparing(recipe -> recipe.getMetadataOrDefault(CompressionTierKey.INSTANCE, 0)) + .thenComparing(GT_Recipe::compareTo)) + .build(); public static final RecipeMap 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 { + + 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 @@ -143,6 +143,12 @@ public class GT_RecipeConstants { public static final RecipeMetadataKey QFT_FOCUS_TIER = SimpleRecipeMetadataKey .create(Integer.class, "qft_focus_tier"); + /** + * Tier of advanced compression (HIP/black hole) + */ + public static final RecipeMetadataKey COMPRESSION_TIER = SimpleRecipeMetadataKey + .create(Integer.class, "compression"); + /** * Dissolution Tank Ratio. */ @@ -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); diff --git a/src/main/java/gregtech/common/blocks/GT_Block_Casings10.java b/src/main/java/gregtech/common/blocks/GT_Block_Casings10.java index 9c9db0a7e9..1a0902da97 100644 --- a/src/main/java/gregtech/common/blocks/GT_Block_Casings10.java +++ b/src/main/java/gregtech/common/blocks/GT_Block_Casings10.java @@ -19,14 +19,33 @@ public class GT_Block_Casings10 extends GT_Block_Casings_Abstract { super(GT_Item_Casings10.class, "gt.blockcasings10", GT_Material_Casings.INSTANCE, 16); GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".0.name", "MagTech Casing"); GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".1.name", "Laser Containment Casing"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".2.name", "Quark Exclusion Casing"); GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".3.name", "Pressure Containment Casing"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".4.name", "Electric Compressor Casing"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".5.name", "Compression Pipe Casing"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".6.name", "Neutronium Casing"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".7.name", "Active Neutronium Casing"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".8.name", "Neutronium Stabilization Casing"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".9.name", "Coolant Duct"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".10.name", "Heating Duct"); + GT_LanguageManager + .addStringLocalization(getUnlocalizedName() + ".11.name", "Extreme Density Space-Bending Casing"); + GT_LanguageManager + .addStringLocalization(getUnlocalizedName() + ".12.name", "Background Radiation Absorbent Casing"); ItemList.Casing_Electromagnetic_Separator.set(new ItemStack(this, 1, 0)); - ItemList.BlockQuarkContainmentCasing.set(new ItemStack(this, 1, 2)); ItemList.Casing_Laser.set(new ItemStack(this, 1, 1)); + ItemList.BlockQuarkContainmentCasing.set(new ItemStack(this, 1, 2)); ItemList.Casing_Autoclave.set(new ItemStack(this, 1, 3)); + ItemList.Compressor_Casing.set(new ItemStack(this, 1, 4)); + ItemList.Compressor_Pipe_Casing.set(new ItemStack(this, 1, 5)); + ItemList.Neutronium_Casing.set(new ItemStack(this, 1, 6)); + ItemList.Neutronium_Active_Casing.set(new ItemStack(this, 1, 7)); + ItemList.Neutronium_Stable_Casing.set(new ItemStack(this, 1, 8)); + ItemList.Coolant_Duct_Casing.set(new ItemStack(this, 1, 9)); + ItemList.Heating_Duct_Casing.set(new ItemStack(this, 1, 10)); + ItemList.Extreme_Density_Casing.set(new ItemStack(this, 1, 11)); + ItemList.Background_Radiation_Casing.set(new ItemStack(this, 1, 12)); } @Override @@ -42,6 +61,15 @@ public class GT_Block_Casings10 extends GT_Block_Casings_Abstract { case 1 -> Textures.BlockIcons.MACHINE_CASING_LASER.getIcon(); case 2 -> Textures.BlockIcons.BLOCK_QUARK_CONTAINMENT_CASING.getIcon(); case 3 -> Textures.BlockIcons.MACHINE_CASING_AUTOCLAVE.getIcon(); + case 4 -> Textures.BlockIcons.COMPRESSOR_CASING.getIcon(); + case 5 -> Textures.BlockIcons.COMPRESSOR_PIPE_CASING.getIcon(); + case 6 -> Textures.BlockIcons.NEUTRONIUM_CASING.getIcon(); + case 7 -> Textures.BlockIcons.NEUTRONIUM_ACTIVE_CASING.getIcon(); + case 8 -> Textures.BlockIcons.NEUTRONIUM_STABLE_CASING.getIcon(); + case 9 -> Textures.BlockIcons.MACHINE_CASING_PIPE_TUNGSTENSTEEL.getIcon(); + case 10 -> Textures.BlockIcons.MACHINE_CASING_PIPE_BRONZE.getIcon(); + case 11 -> Textures.BlockIcons.EXTREME_DENSITY_CASING.getIcon(); + case 12 -> Textures.BlockIcons.RADIATION_ABSORBENT_CASING.getIcon(); default -> Textures.BlockIcons.MACHINE_CASING_ROBUST_TUNGSTENSTEEL.getIcon(); }; } diff --git a/src/main/java/gregtech/common/blocks/GT_Block_Glass1.java b/src/main/java/gregtech/common/blocks/GT_Block_Glass1.java index 0665411259..2aa5613d11 100644 --- a/src/main/java/gregtech/common/blocks/GT_Block_Glass1.java +++ b/src/main/java/gregtech/common/blocks/GT_Block_Glass1.java @@ -26,20 +26,20 @@ public class GT_Block_Glass1 extends GT_Block_Casings_Abstract { this.opaque = false; GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".0.name", "Chemical Grade Glass"); - GT_LanguageManager.addStringLocalization( - getUnlocalizedName() + ".0.tooltip", - "Able to resist the most extreme chemical conditions."); - GT_LanguageManager .addStringLocalization(getUnlocalizedName() + ".1.name", "Electron-Permeable Neutronium Coated Glass"); GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".2.name", "Omni-Purpose Infinity Fused Glass"); GT_LanguageManager .addStringLocalization(getUnlocalizedName() + ".3.name", "Non-Photonic Matter Exclusion Glass"); + GT_LanguageManager + .addStringLocalization(getUnlocalizedName() + ".4.name", "Hawking Radiation Realignment Focus"); ItemList.GlassPHResistant.set(new ItemStack(this, 1, 0)); ItemList.GlassUVResistant.set(new ItemStack(this, 1, 1)); ItemList.GlassOmniPurposeInfinityFused.set(new ItemStack(this, 1, 2)); ItemList.GlassQuarkContainment.set(new ItemStack(this, 1, 3)); + ItemList.GlassQuarkContainment.set(new ItemStack(this, 1, 3)); + ItemList.Hawking_Glass.set(new ItemStack(this, 1, 4)); } @Override @@ -77,6 +77,7 @@ public class GT_Block_Glass1 extends GT_Block_Casings_Abstract { case 1 -> Textures.BlockIcons.NEUTRONIUM_COATED_UV_RESISTANT_GLASS.getIcon(); case 2 -> Textures.BlockIcons.OMNI_PURPOSE_INFINITY_FUSED_GLASS.getIcon(); case 3 -> Textures.BlockIcons.GLASS_QUARK_CONTAINMENT.getIcon(); + case 4 -> Textures.BlockIcons.HAWKING_GLASS.getIcon(); default -> Textures.BlockIcons.MACHINE_CASING_ROBUST_TUNGSTENSTEEL.getIcon(); }; } diff --git a/src/main/java/gregtech/common/blocks/GT_Item_Glass1.java b/src/main/java/gregtech/common/blocks/GT_Item_Glass1.java index 7fbb33ff6e..e8d0b6c236 100644 --- a/src/main/java/gregtech/common/blocks/GT_Item_Glass1.java +++ b/src/main/java/gregtech/common/blocks/GT_Item_Glass1.java @@ -1,6 +1,12 @@ package gregtech.common.blocks; +import java.util.List; + import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; + +import gregtech.api.util.GT_LanguageManager; /** * The glass types are split into separate files because they are registered as regular blocks, and a regular block can @@ -9,7 +15,22 @@ import net.minecraft.block.Block; */ public class GT_Item_Glass1 extends GT_Item_Casings_Abstract { + protected final String chemicalGlassTooltip = GT_LanguageManager.addStringLocalization( + getUnlocalizedName() + ".0.tooltip", + "Able to resist the most extreme chemical conditions."); + protected final String hawkingGlassTooltip = GT_LanguageManager.addStringLocalization( + getUnlocalizedName() + ".4.tooltip", + "Controls the outward flow of Hawking Radiation to stabilize a black hole."); + public GT_Item_Glass1(Block block) { super(block); } + + @Override + public void addInformation(ItemStack aStack, EntityPlayer aPlayer, List aList, boolean aF3_H) { + switch (getDamage(aStack)) { + case 0 -> aList.add(chemicalGlassTooltip); + case 4 -> aList.add(hawkingGlassTooltip); + } + } } diff --git a/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java b/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java index 17d0c13f03..f7463ae576 100644 --- a/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java +++ b/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java @@ -48,7 +48,410 @@ import static gregtech.client.GT_TooltipHandler.Tier.UV; import static gregtech.client.GT_TooltipHandler.Tier.UXV; import static gregtech.client.GT_TooltipHandler.Tier.ZPM; import static gregtech.client.GT_TooltipHandler.registerTieredTooltip; -import static gregtech.common.items.ID_MetaItem_01.*; +import static gregtech.common.items.ID_MetaItem_01.BatteryHull_EV; +import static gregtech.common.items.ID_MetaItem_01.BatteryHull_EV_Full; +import static gregtech.common.items.ID_MetaItem_01.BatteryHull_IV; +import static gregtech.common.items.ID_MetaItem_01.BatteryHull_IV_Full; +import static gregtech.common.items.ID_MetaItem_01.BatteryHull_LuV; +import static gregtech.common.items.ID_MetaItem_01.BatteryHull_LuV_Full; +import static gregtech.common.items.ID_MetaItem_01.BatteryHull_UEV; +import static gregtech.common.items.ID_MetaItem_01.BatteryHull_UEV_Full; +import static gregtech.common.items.ID_MetaItem_01.BatteryHull_UHV; +import static gregtech.common.items.ID_MetaItem_01.BatteryHull_UHV_Full; +import static gregtech.common.items.ID_MetaItem_01.BatteryHull_UIV; +import static gregtech.common.items.ID_MetaItem_01.BatteryHull_UIV_Full; +import static gregtech.common.items.ID_MetaItem_01.BatteryHull_UMV; +import static gregtech.common.items.ID_MetaItem_01.BatteryHull_UMV_Full; +import static gregtech.common.items.ID_MetaItem_01.BatteryHull_UV; +import static gregtech.common.items.ID_MetaItem_01.BatteryHull_UV_Full; +import static gregtech.common.items.ID_MetaItem_01.BatteryHull_UxV; +import static gregtech.common.items.ID_MetaItem_01.BatteryHull_UxV_Full; +import static gregtech.common.items.ID_MetaItem_01.BatteryHull_ZPM; +import static gregtech.common.items.ID_MetaItem_01.BatteryHull_ZPM_Full; +import static gregtech.common.items.ID_MetaItem_01.Battery_Hull_HV; +import static gregtech.common.items.ID_MetaItem_01.Battery_Hull_LV; +import static gregtech.common.items.ID_MetaItem_01.Battery_Hull_MV; +import static gregtech.common.items.ID_MetaItem_01.Battery_RE_HV_Cadmium; +import static gregtech.common.items.ID_MetaItem_01.Battery_RE_HV_Lithium; +import static gregtech.common.items.ID_MetaItem_01.Battery_RE_HV_Sodium; +import static gregtech.common.items.ID_MetaItem_01.Battery_RE_LV_Cadmium; +import static gregtech.common.items.ID_MetaItem_01.Battery_RE_LV_Lithium; +import static gregtech.common.items.ID_MetaItem_01.Battery_RE_LV_Sodium; +import static gregtech.common.items.ID_MetaItem_01.Battery_RE_MV_Cadmium; +import static gregtech.common.items.ID_MetaItem_01.Battery_RE_MV_Lithium; +import static gregtech.common.items.ID_MetaItem_01.Battery_RE_MV_Sodium; +import static gregtech.common.items.ID_MetaItem_01.Battery_RE_ULV_Tantalum; +import static gregtech.common.items.ID_MetaItem_01.Battery_SU_HV_Mercury; +import static gregtech.common.items.ID_MetaItem_01.Battery_SU_HV_Sulfuric_Acid; +import static gregtech.common.items.ID_MetaItem_01.Battery_SU_LV_Mercury; +import static gregtech.common.items.ID_MetaItem_01.Battery_SU_LV_Sulfuric_Acid; +import static gregtech.common.items.ID_MetaItem_01.Battery_SU_MV_Mercury; +import static gregtech.common.items.ID_MetaItem_01.Battery_SU_MV_Sulfuric_Acid; +import static gregtech.common.items.ID_MetaItem_01.Black_Hole_Closer; +import static gregtech.common.items.ID_MetaItem_01.Black_Hole_Opener; +import static gregtech.common.items.ID_MetaItem_01.Book_Written_01; +import static gregtech.common.items.ID_MetaItem_01.Book_Written_02; +import static gregtech.common.items.ID_MetaItem_01.Book_Written_03; +import static gregtech.common.items.ID_MetaItem_01.Circuit_Advanced; +import static gregtech.common.items.ID_MetaItem_01.Circuit_Basic; +import static gregtech.common.items.ID_MetaItem_01.Circuit_Board_Advanced; +import static gregtech.common.items.ID_MetaItem_01.Circuit_Board_Basic; +import static gregtech.common.items.ID_MetaItem_01.Circuit_Board_Elite; +import static gregtech.common.items.ID_MetaItem_01.Circuit_Data; +import static gregtech.common.items.ID_MetaItem_01.Circuit_Elite; +import static gregtech.common.items.ID_MetaItem_01.Circuit_Good; +import static gregtech.common.items.ID_MetaItem_01.Circuit_Master; +import static gregtech.common.items.ID_MetaItem_01.Circuit_Parts_Advanced; +import static gregtech.common.items.ID_MetaItem_01.Circuit_Parts_Crystal_Chip_Elite; +import static gregtech.common.items.ID_MetaItem_01.Circuit_Parts_Crystal_Chip_Master; +import static gregtech.common.items.ID_MetaItem_01.Circuit_Parts_Crystal_Chip_Wetware; +import static gregtech.common.items.ID_MetaItem_01.Circuit_Parts_Wiring_Advanced; +import static gregtech.common.items.ID_MetaItem_01.Circuit_Parts_Wiring_Basic; +import static gregtech.common.items.ID_MetaItem_01.Circuit_Parts_Wiring_Elite; +import static gregtech.common.items.ID_MetaItem_01.Circuit_Primitive; +import static gregtech.common.items.ID_MetaItem_01.Component_Filter; +import static gregtech.common.items.ID_MetaItem_01.Component_Grinder_Diamond; +import static gregtech.common.items.ID_MetaItem_01.Component_Grinder_Tungsten; +import static gregtech.common.items.ID_MetaItem_01.Component_Minecraft_Wheels_Iron; +import static gregtech.common.items.ID_MetaItem_01.Component_Minecraft_Wheels_Steel; +import static gregtech.common.items.ID_MetaItem_01.Component_Sawblade_Diamond; +import static gregtech.common.items.ID_MetaItem_01.Compressed_Fireclay; +import static gregtech.common.items.ID_MetaItem_01.Conveyor_Module_EV; +import static gregtech.common.items.ID_MetaItem_01.Conveyor_Module_HV; +import static gregtech.common.items.ID_MetaItem_01.Conveyor_Module_IV; +import static gregtech.common.items.ID_MetaItem_01.Conveyor_Module_LV; +import static gregtech.common.items.ID_MetaItem_01.Conveyor_Module_LuV; +import static gregtech.common.items.ID_MetaItem_01.Conveyor_Module_MAX; +import static gregtech.common.items.ID_MetaItem_01.Conveyor_Module_MV; +import static gregtech.common.items.ID_MetaItem_01.Conveyor_Module_UEV; +import static gregtech.common.items.ID_MetaItem_01.Conveyor_Module_UHV; +import static gregtech.common.items.ID_MetaItem_01.Conveyor_Module_UIV; +import static gregtech.common.items.ID_MetaItem_01.Conveyor_Module_UMV; +import static gregtech.common.items.ID_MetaItem_01.Conveyor_Module_UV; +import static gregtech.common.items.ID_MetaItem_01.Conveyor_Module_UXV; +import static gregtech.common.items.ID_MetaItem_01.Conveyor_Module_ZPM; +import static gregtech.common.items.ID_MetaItem_01.Cover_ActivityDetector; +import static gregtech.common.items.ID_MetaItem_01.Cover_Chest_Advanced; +import static gregtech.common.items.ID_MetaItem_01.Cover_Chest_Basic; +import static gregtech.common.items.ID_MetaItem_01.Cover_Chest_Good; +import static gregtech.common.items.ID_MetaItem_01.Cover_Controller; +import static gregtech.common.items.ID_MetaItem_01.Cover_Crafting; +import static gregtech.common.items.ID_MetaItem_01.Cover_Drain; +import static gregtech.common.items.ID_MetaItem_01.Cover_EnergyDetector; +import static gregtech.common.items.ID_MetaItem_01.Cover_FLuidStorageMonitor; +import static gregtech.common.items.ID_MetaItem_01.Cover_FluidDetector; +import static gregtech.common.items.ID_MetaItem_01.Cover_FluidLimiter; +import static gregtech.common.items.ID_MetaItem_01.Cover_ItemDetector; +import static gregtech.common.items.ID_MetaItem_01.Cover_NeedsMaintenance; +import static gregtech.common.items.ID_MetaItem_01.Cover_PlayerDetector; +import static gregtech.common.items.ID_MetaItem_01.Cover_RedstoneReceiverExternal; +import static gregtech.common.items.ID_MetaItem_01.Cover_RedstoneReceiverInternal; +import static gregtech.common.items.ID_MetaItem_01.Cover_RedstoneTransmitterExternal; +import static gregtech.common.items.ID_MetaItem_01.Cover_RedstoneTransmitterInternal; +import static gregtech.common.items.ID_MetaItem_01.Cover_Screen; +import static gregtech.common.items.ID_MetaItem_01.Cover_Shutter; +import static gregtech.common.items.ID_MetaItem_01.Cover_SolarPanel; +import static gregtech.common.items.ID_MetaItem_01.Cover_SolarPanel_8V; +import static gregtech.common.items.ID_MetaItem_01.Cover_SolarPanel_EV; +import static gregtech.common.items.ID_MetaItem_01.Cover_SolarPanel_HV; +import static gregtech.common.items.ID_MetaItem_01.Cover_SolarPanel_IV; +import static gregtech.common.items.ID_MetaItem_01.Cover_SolarPanel_LV; +import static gregtech.common.items.ID_MetaItem_01.Cover_SolarPanel_LuV; +import static gregtech.common.items.ID_MetaItem_01.Cover_SolarPanel_MV; +import static gregtech.common.items.ID_MetaItem_01.Cover_SolarPanel_UV; +import static gregtech.common.items.ID_MetaItem_01.Cover_SolarPanel_ZPM; +import static gregtech.common.items.ID_MetaItem_01.Crate_Empty; +import static gregtech.common.items.ID_MetaItem_01.Duct_Tape; +import static gregtech.common.items.ID_MetaItem_01.Electric_Motor_EV; +import static gregtech.common.items.ID_MetaItem_01.Electric_Motor_HV; +import static gregtech.common.items.ID_MetaItem_01.Electric_Motor_IV; +import static gregtech.common.items.ID_MetaItem_01.Electric_Motor_LV; +import static gregtech.common.items.ID_MetaItem_01.Electric_Motor_LuV; +import static gregtech.common.items.ID_MetaItem_01.Electric_Motor_MAX; +import static gregtech.common.items.ID_MetaItem_01.Electric_Motor_MV; +import static gregtech.common.items.ID_MetaItem_01.Electric_Motor_UEV; +import static gregtech.common.items.ID_MetaItem_01.Electric_Motor_UHV; +import static gregtech.common.items.ID_MetaItem_01.Electric_Motor_UIV; +import static gregtech.common.items.ID_MetaItem_01.Electric_Motor_UMV; +import static gregtech.common.items.ID_MetaItem_01.Electric_Motor_UV; +import static gregtech.common.items.ID_MetaItem_01.Electric_Motor_UXV; +import static gregtech.common.items.ID_MetaItem_01.Electric_Motor_ZPM; +import static gregtech.common.items.ID_MetaItem_01.Electric_Piston_EV; +import static gregtech.common.items.ID_MetaItem_01.Electric_Piston_HV; +import static gregtech.common.items.ID_MetaItem_01.Electric_Piston_IV; +import static gregtech.common.items.ID_MetaItem_01.Electric_Piston_LV; +import static gregtech.common.items.ID_MetaItem_01.Electric_Piston_LuV; +import static gregtech.common.items.ID_MetaItem_01.Electric_Piston_MAX; +import static gregtech.common.items.ID_MetaItem_01.Electric_Piston_MV; +import static gregtech.common.items.ID_MetaItem_01.Electric_Piston_UEV; +import static gregtech.common.items.ID_MetaItem_01.Electric_Piston_UHV; +import static gregtech.common.items.ID_MetaItem_01.Electric_Piston_UIV; +import static gregtech.common.items.ID_MetaItem_01.Electric_Piston_UMV; +import static gregtech.common.items.ID_MetaItem_01.Electric_Piston_UV; +import static gregtech.common.items.ID_MetaItem_01.Electric_Piston_UXV; +import static gregtech.common.items.ID_MetaItem_01.Electric_Piston_ZPM; +import static gregtech.common.items.ID_MetaItem_01.Electric_Pump_EV; +import static gregtech.common.items.ID_MetaItem_01.Electric_Pump_HV; +import static gregtech.common.items.ID_MetaItem_01.Electric_Pump_IV; +import static gregtech.common.items.ID_MetaItem_01.Electric_Pump_LV; +import static gregtech.common.items.ID_MetaItem_01.Electric_Pump_LuV; +import static gregtech.common.items.ID_MetaItem_01.Electric_Pump_MAX; +import static gregtech.common.items.ID_MetaItem_01.Electric_Pump_MV; +import static gregtech.common.items.ID_MetaItem_01.Electric_Pump_UEV; +import static gregtech.common.items.ID_MetaItem_01.Electric_Pump_UHV; +import static gregtech.common.items.ID_MetaItem_01.Electric_Pump_UIV; +import static gregtech.common.items.ID_MetaItem_01.Electric_Pump_UMV; +import static gregtech.common.items.ID_MetaItem_01.Electric_Pump_UV; +import static gregtech.common.items.ID_MetaItem_01.Electric_Pump_UXV; +import static gregtech.common.items.ID_MetaItem_01.Electric_Pump_ZPM; +import static gregtech.common.items.ID_MetaItem_01.Electromagnet_Iron; +import static gregtech.common.items.ID_MetaItem_01.Electromagnet_Neodymium; +import static gregtech.common.items.ID_MetaItem_01.Electromagnet_Samarium; +import static gregtech.common.items.ID_MetaItem_01.Electromagnet_Steel; +import static gregtech.common.items.ID_MetaItem_01.Electromagnet_Tengam; +import static gregtech.common.items.ID_MetaItem_01.Emitter_EV; +import static gregtech.common.items.ID_MetaItem_01.Emitter_HV; +import static gregtech.common.items.ID_MetaItem_01.Emitter_IV; +import static gregtech.common.items.ID_MetaItem_01.Emitter_LV; +import static gregtech.common.items.ID_MetaItem_01.Emitter_LuV; +import static gregtech.common.items.ID_MetaItem_01.Emitter_MAX; +import static gregtech.common.items.ID_MetaItem_01.Emitter_MV; +import static gregtech.common.items.ID_MetaItem_01.Emitter_UEV; +import static gregtech.common.items.ID_MetaItem_01.Emitter_UHV; +import static gregtech.common.items.ID_MetaItem_01.Emitter_UIV; +import static gregtech.common.items.ID_MetaItem_01.Emitter_UMV; +import static gregtech.common.items.ID_MetaItem_01.Emitter_UV; +import static gregtech.common.items.ID_MetaItem_01.Emitter_UXV; +import static gregtech.common.items.ID_MetaItem_01.Emitter_ZPM; +import static gregtech.common.items.ID_MetaItem_01.Empty_Board_Basic; +import static gregtech.common.items.ID_MetaItem_01.Empty_Board_Elite; +import static gregtech.common.items.ID_MetaItem_01.EnergisedTesseract; +import static gregtech.common.items.ID_MetaItem_01.Energy_Cluster; +import static gregtech.common.items.ID_MetaItem_01.Energy_Lapotronic_Orb; +import static gregtech.common.items.ID_MetaItem_01.Energy_Lapotronic_orb_2; +import static gregtech.common.items.ID_MetaItem_01.Energy_Module; +import static gregtech.common.items.ID_MetaItem_01.Field_Generator_EV; +import static gregtech.common.items.ID_MetaItem_01.Field_Generator_HV; +import static gregtech.common.items.ID_MetaItem_01.Field_Generator_IV; +import static gregtech.common.items.ID_MetaItem_01.Field_Generator_LV; +import static gregtech.common.items.ID_MetaItem_01.Field_Generator_LuV; +import static gregtech.common.items.ID_MetaItem_01.Field_Generator_MAX; +import static gregtech.common.items.ID_MetaItem_01.Field_Generator_MV; +import static gregtech.common.items.ID_MetaItem_01.Field_Generator_UEV; +import static gregtech.common.items.ID_MetaItem_01.Field_Generator_UHV; +import static gregtech.common.items.ID_MetaItem_01.Field_Generator_UIV; +import static gregtech.common.items.ID_MetaItem_01.Field_Generator_UMV; +import static gregtech.common.items.ID_MetaItem_01.Field_Generator_UV; +import static gregtech.common.items.ID_MetaItem_01.Field_Generator_UXV; +import static gregtech.common.items.ID_MetaItem_01.Field_Generator_ZPM; +import static gregtech.common.items.ID_MetaItem_01.Firebrick; +import static gregtech.common.items.ID_MetaItem_01.FluidFilter; +import static gregtech.common.items.ID_MetaItem_01.FluidRegulator_EV; +import static gregtech.common.items.ID_MetaItem_01.FluidRegulator_HV; +import static gregtech.common.items.ID_MetaItem_01.FluidRegulator_IV; +import static gregtech.common.items.ID_MetaItem_01.FluidRegulator_LV; +import static gregtech.common.items.ID_MetaItem_01.FluidRegulator_LuV; +import static gregtech.common.items.ID_MetaItem_01.FluidRegulator_MV; +import static gregtech.common.items.ID_MetaItem_01.FluidRegulator_UV; +import static gregtech.common.items.ID_MetaItem_01.FluidRegulator_ZPM; +import static gregtech.common.items.ID_MetaItem_01.Fuel_Can_Plastic_Empty; +import static gregtech.common.items.ID_MetaItem_01.Fuel_Can_Plastic_Filled; +import static gregtech.common.items.ID_MetaItem_01.GigaChad; +import static gregtech.common.items.ID_MetaItem_01.Gravistar; +import static gregtech.common.items.ID_MetaItem_01.Ingot_Heavy1; +import static gregtech.common.items.ID_MetaItem_01.Ingot_Heavy2; +import static gregtech.common.items.ID_MetaItem_01.Ingot_Heavy3; +import static gregtech.common.items.ID_MetaItem_01.Ingot_Iridium_Alloy; +import static gregtech.common.items.ID_MetaItem_01.ItemFilter_Export; +import static gregtech.common.items.ID_MetaItem_01.ItemFilter_Import; +import static gregtech.common.items.ID_MetaItem_01.Large_Fluid_Cell_Aluminium; +import static gregtech.common.items.ID_MetaItem_01.Large_Fluid_Cell_Chrome; +import static gregtech.common.items.ID_MetaItem_01.Large_Fluid_Cell_Iridium; +import static gregtech.common.items.ID_MetaItem_01.Large_Fluid_Cell_Neutronium; +import static gregtech.common.items.ID_MetaItem_01.Large_Fluid_Cell_Osmium; +import static gregtech.common.items.ID_MetaItem_01.Large_Fluid_Cell_StainlessSteel; +import static gregtech.common.items.ID_MetaItem_01.Large_Fluid_Cell_Steel; +import static gregtech.common.items.ID_MetaItem_01.Large_Fluid_Cell_Titanium; +import static gregtech.common.items.ID_MetaItem_01.Large_Fluid_Cell_TungstenSteel; +import static gregtech.common.items.ID_MetaItem_01.McGuffium_239; +import static gregtech.common.items.ID_MetaItem_01.NC_SensorKit; +import static gregtech.common.items.ID_MetaItem_01.NaquadriaSupersolid; +import static gregtech.common.items.ID_MetaItem_01.Paper_Magic_Empty; +import static gregtech.common.items.ID_MetaItem_01.Paper_Magic_Page; +import static gregtech.common.items.ID_MetaItem_01.Paper_Magic_Pages; +import static gregtech.common.items.ID_MetaItem_01.Paper_Printed_Pages; +import static gregtech.common.items.ID_MetaItem_01.Paper_Punch_Card_Empty; +import static gregtech.common.items.ID_MetaItem_01.Paper_Punch_Card_Encoded; +import static gregtech.common.items.ID_MetaItem_01.QuantumEye; +import static gregtech.common.items.ID_MetaItem_01.QuantumStar; +import static gregtech.common.items.ID_MetaItem_01.Robot_Arm_EV; +import static gregtech.common.items.ID_MetaItem_01.Robot_Arm_HV; +import static gregtech.common.items.ID_MetaItem_01.Robot_Arm_IV; +import static gregtech.common.items.ID_MetaItem_01.Robot_Arm_LV; +import static gregtech.common.items.ID_MetaItem_01.Robot_Arm_LuV; +import static gregtech.common.items.ID_MetaItem_01.Robot_Arm_MAX; +import static gregtech.common.items.ID_MetaItem_01.Robot_Arm_MV; +import static gregtech.common.items.ID_MetaItem_01.Robot_Arm_UEV; +import static gregtech.common.items.ID_MetaItem_01.Robot_Arm_UHV; +import static gregtech.common.items.ID_MetaItem_01.Robot_Arm_UIV; +import static gregtech.common.items.ID_MetaItem_01.Robot_Arm_UMV; +import static gregtech.common.items.ID_MetaItem_01.Robot_Arm_UV; +import static gregtech.common.items.ID_MetaItem_01.Robot_Arm_UXV; +import static gregtech.common.items.ID_MetaItem_01.Robot_Arm_ZPM; +import static gregtech.common.items.ID_MetaItem_01.Schematic; +import static gregtech.common.items.ID_MetaItem_01.Schematic_1by1; +import static gregtech.common.items.ID_MetaItem_01.Schematic_2by2; +import static gregtech.common.items.ID_MetaItem_01.Schematic_3by3; +import static gregtech.common.items.ID_MetaItem_01.Schematic_Crafting; +import static gregtech.common.items.ID_MetaItem_01.Schematic_Dust; +import static gregtech.common.items.ID_MetaItem_01.Sensor_EV; +import static gregtech.common.items.ID_MetaItem_01.Sensor_HV; +import static gregtech.common.items.ID_MetaItem_01.Sensor_IV; +import static gregtech.common.items.ID_MetaItem_01.Sensor_LV; +import static gregtech.common.items.ID_MetaItem_01.Sensor_LuV; +import static gregtech.common.items.ID_MetaItem_01.Sensor_MAX; +import static gregtech.common.items.ID_MetaItem_01.Sensor_MV; +import static gregtech.common.items.ID_MetaItem_01.Sensor_UEV; +import static gregtech.common.items.ID_MetaItem_01.Sensor_UHV; +import static gregtech.common.items.ID_MetaItem_01.Sensor_UIV; +import static gregtech.common.items.ID_MetaItem_01.Sensor_UMV; +import static gregtech.common.items.ID_MetaItem_01.Sensor_UV; +import static gregtech.common.items.ID_MetaItem_01.Sensor_UXV; +import static gregtech.common.items.ID_MetaItem_01.Sensor_ZPM; +import static gregtech.common.items.ID_MetaItem_01.Shape_Empty; +import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Axe; +import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Block; +import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Bolt; +import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Bottle; +import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Casing; +import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Cell; +import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_File; +import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Gear; +import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Hammer; +import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Hoe; +import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Ingot; +import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Pickaxe; +import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Pipe_Huge; +import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Pipe_Large; +import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Pipe_Medium; +import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Pipe_Small; +import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Pipe_Tiny; +import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Plate; +import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Ring; +import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Rod; +import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Rotor; +import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Saw; +import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Shovel; +import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Small_Gear; +import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Sword; +import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Tool_Head_Drill; +import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Turbine_Blade; +import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Wire; +import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Anvil; +import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Arrow; +import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Baguette; +import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Ball; +import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Block; +import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Bolt; +import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Bottle; +import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Bread; +import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Bun; +import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Casing; +import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Credit; +import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Cylinder; +import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Gear; +import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Gear_Small; +import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Ingot; +import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Name; +import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Nugget; +import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Pipe_Huge; +import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Pipe_Large; +import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Pipe_Medium; +import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Pipe_Small; +import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Pipe_Tiny; +import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Plate; +import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Ring; +import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Rod; +import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Rod_Long; +import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Rotor; +import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Round; +import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Screw; +import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Tool_Head_Drill; +import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Turbine_Blade; +import static gregtech.common.items.ID_MetaItem_01.Shape_Slicer_Flat; +import static gregtech.common.items.ID_MetaItem_01.Shape_Slicer_Stripes; +import static gregtech.common.items.ID_MetaItem_01.Spray_Color_0; +import static gregtech.common.items.ID_MetaItem_01.Spray_Color_1; +import static gregtech.common.items.ID_MetaItem_01.Spray_Color_10; +import static gregtech.common.items.ID_MetaItem_01.Spray_Color_11; +import static gregtech.common.items.ID_MetaItem_01.Spray_Color_12; +import static gregtech.common.items.ID_MetaItem_01.Spray_Color_13; +import static gregtech.common.items.ID_MetaItem_01.Spray_Color_14; +import static gregtech.common.items.ID_MetaItem_01.Spray_Color_15; +import static gregtech.common.items.ID_MetaItem_01.Spray_Color_2; +import static gregtech.common.items.ID_MetaItem_01.Spray_Color_3; +import static gregtech.common.items.ID_MetaItem_01.Spray_Color_4; +import static gregtech.common.items.ID_MetaItem_01.Spray_Color_5; +import static gregtech.common.items.ID_MetaItem_01.Spray_Color_6; +import static gregtech.common.items.ID_MetaItem_01.Spray_Color_7; +import static gregtech.common.items.ID_MetaItem_01.Spray_Color_8; +import static gregtech.common.items.ID_MetaItem_01.Spray_Color_9; +import static gregtech.common.items.ID_MetaItem_01.Spray_Color_Remover; +import static gregtech.common.items.ID_MetaItem_01.Spray_Color_Remover_Empty; +import static gregtech.common.items.ID_MetaItem_01.Spray_Color_Used_0; +import static gregtech.common.items.ID_MetaItem_01.Spray_Color_Used_1; +import static gregtech.common.items.ID_MetaItem_01.Spray_Color_Used_10; +import static gregtech.common.items.ID_MetaItem_01.Spray_Color_Used_11; +import static gregtech.common.items.ID_MetaItem_01.Spray_Color_Used_12; +import static gregtech.common.items.ID_MetaItem_01.Spray_Color_Used_13; +import static gregtech.common.items.ID_MetaItem_01.Spray_Color_Used_14; +import static gregtech.common.items.ID_MetaItem_01.Spray_Color_Used_15; +import static gregtech.common.items.ID_MetaItem_01.Spray_Color_Used_2; +import static gregtech.common.items.ID_MetaItem_01.Spray_Color_Used_3; +import static gregtech.common.items.ID_MetaItem_01.Spray_Color_Used_4; +import static gregtech.common.items.ID_MetaItem_01.Spray_Color_Used_5; +import static gregtech.common.items.ID_MetaItem_01.Spray_Color_Used_6; +import static gregtech.common.items.ID_MetaItem_01.Spray_Color_Used_7; +import static gregtech.common.items.ID_MetaItem_01.Spray_Color_Used_8; +import static gregtech.common.items.ID_MetaItem_01.Spray_Color_Used_9; +import static gregtech.common.items.ID_MetaItem_01.Spray_Color_Used_Remover; +import static gregtech.common.items.ID_MetaItem_01.Spray_Empty; +import static gregtech.common.items.ID_MetaItem_01.StableAdhesive; +import static gregtech.common.items.ID_MetaItem_01.Steam_Regulator_EV; +import static gregtech.common.items.ID_MetaItem_01.Steam_Regulator_HV; +import static gregtech.common.items.ID_MetaItem_01.Steam_Regulator_IV; +import static gregtech.common.items.ID_MetaItem_01.Steam_Regulator_LV; +import static gregtech.common.items.ID_MetaItem_01.Steam_Regulator_MV; +import static gregtech.common.items.ID_MetaItem_01.Steam_Valve_EV; +import static gregtech.common.items.ID_MetaItem_01.Steam_Valve_HV; +import static gregtech.common.items.ID_MetaItem_01.Steam_Valve_IV; +import static gregtech.common.items.ID_MetaItem_01.Steam_Valve_LV; +import static gregtech.common.items.ID_MetaItem_01.Steam_Valve_MV; +import static gregtech.common.items.ID_MetaItem_01.SuperconductorComposite; +import static gregtech.common.items.ID_MetaItem_01.Tesseract; +import static gregtech.common.items.ID_MetaItem_01.Thermos_Can_Empty; +import static gregtech.common.items.ID_MetaItem_01.Tool_Cheat; +import static gregtech.common.items.ID_MetaItem_01.Tool_Cover_Copy_Paste; +import static gregtech.common.items.ID_MetaItem_01.Tool_DataOrb; +import static gregtech.common.items.ID_MetaItem_01.Tool_DataStick; +import static gregtech.common.items.ID_MetaItem_01.Tool_Lighter_Invar_Empty; +import static gregtech.common.items.ID_MetaItem_01.Tool_Lighter_Invar_Full; +import static gregtech.common.items.ID_MetaItem_01.Tool_Lighter_Invar_Used; +import static gregtech.common.items.ID_MetaItem_01.Tool_Lighter_Platinum_Empty; +import static gregtech.common.items.ID_MetaItem_01.Tool_Lighter_Platinum_Full; +import static gregtech.common.items.ID_MetaItem_01.Tool_Lighter_Platinum_Used; +import static gregtech.common.items.ID_MetaItem_01.Tool_MatchBox_Full; +import static gregtech.common.items.ID_MetaItem_01.Tool_MatchBox_Used; +import static gregtech.common.items.ID_MetaItem_01.Tool_Matches; +import static gregtech.common.items.ID_MetaItem_01.Tool_Scanner; +import static gregtech.common.items.ID_MetaItem_01.Tool_Sonictron; +import static gregtech.common.items.ID_MetaItem_01.Upgrade_Lock; +import static gregtech.common.items.ID_MetaItem_01.Upgrade_Muffler; +import static gregtech.common.items.ID_MetaItem_01.ZPM2; +import static gregtech.common.items.ID_MetaItem_01.ZPM3; +import static gregtech.common.items.ID_MetaItem_01.ZPM4; +import static gregtech.common.items.ID_MetaItem_01.ZPM5; +import static gregtech.common.items.ID_MetaItem_01.ZPM6; import java.util.Collection; import java.util.HashMap; @@ -2754,6 +3157,20 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { EnumChatFormatting.GREEN + "Tengam Electromagnet", MagnetTiers.buildMagnetTooltip(MagnetTiers.Tengam), new TC_Aspects.TC_AspectStack(TC_Aspects.MAGNETO, 40))); + ItemList.Black_Hole_Opener.set( + addItem( + Black_Hole_Opener.ID, + "Black Hole Activation Catalyst", + "Opens a semi-stable black hole", + new TC_Aspects.TC_AspectStack(TC_Aspects.ALIENIS, 32), + new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 64))); + ItemList.Black_Hole_Closer.set( + addItem( + Black_Hole_Closer.ID, + "Black Hole Deactivation Catalyst", + "Safely closes a semi-stable black hole", + new TC_Aspects.TC_AspectStack(TC_Aspects.ALIENIS, 32), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERDITIO, 64))); // Empty battery hulls ItemList.BatteryHull_EV.set( diff --git a/src/main/java/gregtech/common/items/ID_MetaItem_01.java b/src/main/java/gregtech/common/items/ID_MetaItem_01.java index 1de01d7bef..5748442f86 100644 --- a/src/main/java/gregtech/common/items/ID_MetaItem_01.java +++ b/src/main/java/gregtech/common/items/ID_MetaItem_01.java @@ -152,6 +152,8 @@ public enum ID_MetaItem_01 { Tesseract(415), GigaChad(416), EnergisedTesseract(417), + Black_Hole_Opener(418), + Black_Hole_Closer(419), StableAdhesive(427), SuperconductorComposite(428), NaquadriaSupersolid(429), diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/compressor/GT_MetaTileEntity_BlackHoleCompressor.java b/src/main/java/gregtech/common/tileentities/machines/multi/compressor/GT_MetaTileEntity_BlackHoleCompressor.java new file mode 100644 index 0000000000..0b36d35cf8 --- /dev/null +++ b/src/main/java/gregtech/common/tileentities/machines/multi/compressor/GT_MetaTileEntity_BlackHoleCompressor.java @@ -0,0 +1,539 @@ +package gregtech.common.tileentities.machines.multi.compressor; + +import static com.gtnewhorizon.structurelib.structure.StructureUtility.*; +import static gregtech.api.enums.GT_HatchElement.*; +import static gregtech.api.enums.GT_Values.AuthorFourIsTheNumber; +import static gregtech.api.enums.GT_Values.Ollie; +import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_MULTI_COMPRESSOR; +import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_MULTI_COMPRESSOR_ACTIVE; +import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_MULTI_COMPRESSOR_ACTIVE_GLOW; +import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_MULTI_COMPRESSOR_GLOW; +import static gregtech.api.util.GT_StructureUtility.buildHatchAdder; +import static gregtech.api.util.GT_StructureUtility.ofFrame; + +import java.util.Arrays; +import java.util.Collection; +import java.util.List; +import java.util.stream.Stream; + +import javax.annotation.Nonnull; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.StatCollector; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.FluidStack; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructable; +import com.gtnewhorizon.structurelib.structure.IStructureDefinition; +import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment; +import com.gtnewhorizon.structurelib.structure.StructureDefinition; + +import gregtech.api.GregTech_API; +import gregtech.api.enums.Materials; +import gregtech.api.enums.MaterialsUEVplus; +import gregtech.api.enums.Textures; +import gregtech.api.gui.modularui.GT_UITextures; +import gregtech.api.interfaces.ITexture; +import gregtech.api.interfaces.metatileentity.IMetaTileEntity; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.logic.ProcessingLogic; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_ExtendedPowerMultiBlockBase; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input; +import gregtech.api.recipe.RecipeMap; +import gregtech.api.recipe.RecipeMaps; +import gregtech.api.recipe.check.CheckRecipeResult; +import gregtech.api.recipe.check.CheckRecipeResultRegistry; +import gregtech.api.recipe.metadata.CompressionTierKey; +import gregtech.api.render.TextureFactory; +import gregtech.api.util.GT_Multiblock_Tooltip_Builder; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_Utility; +import gregtech.common.blocks.GT_Block_Casings10; +import gregtech.common.items.GT_MetaGenerated_Item_01; +import gtPlusPlus.core.util.minecraft.PlayerUtils; +import mcp.mobius.waila.api.IWailaConfigHandler; +import mcp.mobius.waila.api.IWailaDataAccessor; + +public class GT_MetaTileEntity_BlackHoleCompressor + extends GT_MetaTileEntity_ExtendedPowerMultiBlockBase + implements ISurvivalConstructable { + + private static final String STRUCTURE_PIECE_MAIN = "main"; + private static final IStructureDefinition STRUCTURE_DEFINITION = StructureDefinition + .builder() + .addShape( + STRUCTURE_PIECE_MAIN, + // spotless:off + transpose(new String[][]{ + {" "," "," "," "," "," "," "," "," "," CC CC "," CC CC "," CC CC "," CCC CCC "," CCC CCC "," CCCCC CCCCC "," CCCC CCCC "," "," "," "," CCCC CCCC "," CCCCC CCCCC "," CCC CCC "," CCC CCC "," CC CC "," CC CC "," CC CC "," "," "," "," "," "," "," "," "," "}, + {" "," "," "," "," "," "," "," CC CC "," CC CC "," CCC CCC "," CCC CCC "," CCCC CCCC "," CCCCC CCCCC "," CCCCCC CCCCCC "," CCCCCCC CCCCCCC "," CCCCCC CCCCCC "," "," "," "," CCCCCC CCCCCC "," CCCCCCC CCCCCCC "," CCCCCC CCCCCC "," CCCCC CCCCC "," CCCC CCCC "," CCC CCC "," CCC CCC "," CC CC "," CC CC "," "," "," "," "," "," "," "}, + {" "," "," "," "," "," "," CCBBBCC "," BBCCCCCCCBB "," BCCCCCCCCCCCB "," BCCCCCCCCCCCCCB "," BCCCCCCCCCCCCCCCB "," BCCCCCCCCCCCCCCCCCB "," BCCCCCCCBBBBBCCCCCCCB "," BCCCCCCB BCCCCCCB "," CCCCCCCB BCCCCCCC "," CCCCCCB BBB BCCCCCC "," BCCCCCB B B BCCCCCB "," BCCCCCB B B BCCCCCB "," BCCCCCB B B BCCCCCB "," CCCCCCB BBB BCCCCCC "," CCCCCCCB BCCCCCCC "," BCCCCCCB BCCCCCCB "," BCCCCCCCBBBBBCCCCCCCB "," BCCCCCCCCCCCCCCCCCB "," BCCCCCCCCCCCCCCCB "," BCCCCCCCCCCCCCB "," BCCCCCCCCCCCB "," BBCCCCCCCBB "," CCBBBCC "," "," "," "," "," "," "}, + {" "," ","