aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMary <33456283+FourIsTheNumber@users.noreply.github.com>2024-09-04 20:24:20 -0400
committerGitHub <noreply@github.com>2024-09-05 00:24:20 +0000
commitd143e39d90e22b8a0fac78ce5c4617b9f554ca6e (patch)
treeedf5e0ba135b0d1e0272b1faf563a94be4d16088 /src/main/java
parenteb25cb901172dfa4d68f44de8f61d52958f53cfa (diff)
downloadGT5-Unofficial-d143e39d90e22b8a0fac78ce5c4617b9f554ca6e.tar.gz
GT5-Unofficial-d143e39d90e22b8a0fac78ce5c4617b9f554ca6e.tar.bz2
GT5-Unofficial-d143e39d90e22b8a0fac78ce5c4617b9f554ca6e.zip
Add superdense plates (#3050)
Co-authored-by: Martin Robertz <dream-master@gmx.net> Co-authored-by: boubou19 <miisterunknown@gmail.com>
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/gregtech/api/enums/Materials.java2
-rw-r--r--src/main/java/gregtech/api/enums/OrePrefixes.java8
-rw-r--r--src/main/java/gregtech/api/enums/SubTag.java4
-rw-r--r--src/main/java/gregtech/api/enums/TextureSet.java2
-rw-r--r--src/main/java/gregtech/api/util/GTLanguageManager.java2
-rw-r--r--src/main/java/gregtech/common/items/MetaGeneratedItem01.java1
-rw-r--r--src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate.java24
-rw-r--r--src/main/java/gregtech/loaders/preload/GTPreLoad.java4
-rw-r--r--src/main/java/gtPlusPlus/core/item/base/BaseItemComponent.java3
9 files changed, 45 insertions, 5 deletions
diff --git a/src/main/java/gregtech/api/enums/Materials.java b/src/main/java/gregtech/api/enums/Materials.java
index 3a963ca322..e29a03bea4 100644
--- a/src/main/java/gregtech/api/enums/Materials.java
+++ b/src/main/java/gregtech/api/enums/Materials.java
@@ -2474,6 +2474,8 @@ public class Materials implements IColorModulationContainer, ISubTagContainer {
Carbon.add(SubTag.NO_SMELTING);
Boron.add(SubTag.SMELTING_TO_FLUID);
+
+ Infinity.add(SubTag.BLACK_HOLE);
}
public static void init() {
diff --git a/src/main/java/gregtech/api/enums/OrePrefixes.java b/src/main/java/gregtech/api/enums/OrePrefixes.java
index 5f1ca97e83..f757d34a7b 100644
--- a/src/main/java/gregtech/api/enums/OrePrefixes.java
+++ b/src/main/java/gregtech/api/enums/OrePrefixes.java
@@ -156,6 +156,8 @@ public enum OrePrefixes {
/** 9 Plates combined in one Item. */
plateDense("Dense Plates", "Dense ", " Plate", true, true, false, false, false, false, true, true, false, false,
B[1], M * 9, 64, 22),
+ plateSuperdense("Superdense Plates", "Superdense ", " Plate", true, true, false, false, false, false, true, true,
+ false, false, B[1], M * 64, 64, 125),
plateQuintuple("5x Plates", "Quintuple ", " Plate", true, true, false, false, false, false, true, true, false,
false, B[1], M * 5, 64, 21),
plateQuadruple("4x Plates", "Quadruple ", " Plate", true, true, false, false, false, false, true, true, false,
@@ -691,6 +693,7 @@ public enum OrePrefixes {
plateTriple.mNotGeneratedItems.add(MaterialsUEVplus.MagnetohydrodynamicallyConstrainedStarMatter);
plateQuadruple.mNotGeneratedItems.add(MaterialsUEVplus.MagnetohydrodynamicallyConstrainedStarMatter);
plateQuintuple.mNotGeneratedItems.add(MaterialsUEVplus.MagnetohydrodynamicallyConstrainedStarMatter);
+ plateSuperdense.mNotGeneratedItems.add(MaterialsUEVplus.MagnetohydrodynamicallyConstrainedStarMatter);
cell.mNotGeneratedItems.add(MaterialsUEVplus.MagnetohydrodynamicallyConstrainedStarMatter);
ingotDouble.mNotGeneratedItems.add(MaterialsUEVplus.MagnetohydrodynamicallyConstrainedStarMatter);
ingotTriple.mNotGeneratedItems.add(MaterialsUEVplus.MagnetohydrodynamicallyConstrainedStarMatter);
@@ -880,6 +883,7 @@ public enum OrePrefixes {
SubTag.STRETCHY);
plateDense.mCondition = new ICondition.Or<>(new ICondition.Not<>(SubTag.NO_SMASHING), SubTag.STRETCHY);
+ plateSuperdense.mCondition = new ICondition.Or<>(new ICondition.Not<>(SubTag.NO_SMASHING), SubTag.STRETCHY);
ingotDouble.mCondition = new ICondition.Or<>(new ICondition.Not<>(SubTag.NO_SMASHING), SubTag.STRETCHY);
ingotTriple.mCondition = new ICondition.Or<>(new ICondition.Not<>(SubTag.NO_SMASHING), SubTag.STRETCHY);
@@ -972,6 +976,7 @@ public enum OrePrefixes {
OrePrefixes.plateQuadruple,
OrePrefixes.plateQuintuple,
OrePrefixes.plateDense,
+ OrePrefixes.plateSuperdense,
OrePrefixes.stick,
OrePrefixes.round,
OrePrefixes.bolt,
@@ -1286,6 +1291,9 @@ public enum OrePrefixes {
case plateDense -> {
return "Strong Cardboard";
}
+ case plateSuperdense -> {
+ return "Impossibly Strong Cardboard";
+ }
}
}
case "MeatRaw" -> {
diff --git a/src/main/java/gregtech/api/enums/SubTag.java b/src/main/java/gregtech/api/enums/SubTag.java
index e62e5437f8..6d0a1a5277 100644
--- a/src/main/java/gregtech/api/enums/SubTag.java
+++ b/src/main/java/gregtech/api/enums/SubTag.java
@@ -236,6 +236,10 @@ public final class SubTag implements ICondition<ISubTagContainer> {
* Projectile Tag for Arrows
*/
public static final SubTag PROJECTILE_ARROW = getNewSubTag("PROJECTILE_ARROW");
+ /**
+ * If this material cannot be made superdense using the HIP unit
+ */
+ public static final SubTag BLACK_HOLE = getNewSubTag("BLACK_HOLE");
public final Collection<ISubTagContainer> mRelevantTaggedItems = new HashSet<>(1);
diff --git a/src/main/java/gregtech/api/enums/TextureSet.java b/src/main/java/gregtech/api/enums/TextureSet.java
index 9e9b182c39..4a13dcc9b4 100644
--- a/src/main/java/gregtech/api/enums/TextureSet.java
+++ b/src/main/java/gregtech/api/enums/TextureSet.java
@@ -47,7 +47,7 @@ public class TextureSet {
"/crateGtPlate", "/turbineBlade", aTextVoidDir, aTextVoidDir, aTextVoidDir, aTextVoidDir, aTextVoidDir,
aTextVoidDir, aTextVoidDir, aTextVoidDir, aTextVoidDir, aTextVoidDir, aTextVoidDir, aTextVoidDir, aTextVoidDir,
aTextVoidDir, aTextVoidDir, aTextVoidDir, aTextVoidDir, aTextVoidDir, aTextVoidDir, aTextVoidDir, aTextVoidDir,
- aTextVoidDir, aTextVoidDir, aTextVoidDir, aTextVoidDir, "/handleMallet", "/toolHeadMallet", };
+ aTextVoidDir, aTextVoidDir, aTextVoidDir, "/plateSuperdense", "/handleMallet", "/toolHeadMallet", };
public boolean is_custom = false;
diff --git a/src/main/java/gregtech/api/util/GTLanguageManager.java b/src/main/java/gregtech/api/util/GTLanguageManager.java
index d68b438027..73e503e75a 100644
--- a/src/main/java/gregtech/api/util/GTLanguageManager.java
+++ b/src/main/java/gregtech/api/util/GTLanguageManager.java
@@ -549,7 +549,7 @@ public class GTLanguageManager {
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_508", "Requires 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: ");
diff --git a/src/main/java/gregtech/common/items/MetaGeneratedItem01.java b/src/main/java/gregtech/common/items/MetaGeneratedItem01.java
index ab9917435c..b17ad3e32e 100644
--- a/src/main/java/gregtech/common/items/MetaGeneratedItem01.java
+++ b/src/main/java/gregtech/common/items/MetaGeneratedItem01.java
@@ -584,6 +584,7 @@ public class MetaGeneratedItem01 extends MetaGeneratedItemX32 {
OrePrefixes.plateQuadruple,
OrePrefixes.plateQuintuple,
OrePrefixes.plateDense,
+ OrePrefixes.plateSuperdense,
OrePrefixes.stick,
OrePrefixes.lens,
OrePrefixes.round,
diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate.java
index 574af24531..9c1c4904db 100644
--- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate.java
+++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate.java
@@ -7,6 +7,7 @@ import static gregtech.api.enums.GTValues.W;
import static gregtech.api.recipe.RecipeMaps.alloySmelterRecipes;
import static gregtech.api.recipe.RecipeMaps.assemblerRecipes;
import static gregtech.api.recipe.RecipeMaps.benderRecipes;
+import static gregtech.api.recipe.RecipeMaps.compressorRecipes;
import static gregtech.api.recipe.RecipeMaps.cutterRecipes;
import static gregtech.api.recipe.RecipeMaps.extruderRecipes;
import static gregtech.api.recipe.RecipeMaps.fluidSolidifierRecipes;
@@ -17,6 +18,7 @@ import static gregtech.api.util.GTRecipeBuilder.MINUTES;
import static gregtech.api.util.GTRecipeBuilder.SECONDS;
import static gregtech.api.util.GTRecipeBuilder.TICKS;
import static gregtech.api.util.GTRecipeBuilder.WILDCARD;
+import static gregtech.api.util.GTRecipeConstants.COMPRESSION_TIER;
import static gregtech.api.util.GTRecipeConstants.FUEL_TYPE;
import static gregtech.api.util.GTRecipeConstants.FUEL_VALUE;
import static gregtech.api.util.GTUtility.calculateRecipeEU;
@@ -37,6 +39,7 @@ import gregtech.api.enums.TextureSet;
import gregtech.api.enums.TierEU;
import gregtech.api.enums.ToolDictNames;
import gregtech.api.recipe.RecipeCategories;
+import gregtech.api.recipe.metadata.CompressionTierKey;
import gregtech.api.render.TextureFactory;
import gregtech.api.util.GTModHandler;
import gregtech.api.util.GTOreDictUnificator;
@@ -53,6 +56,7 @@ public class ProcessingPlate implements gregtech.api.interfaces.IOreRecipeRegist
OrePrefixes.plateQuadruple.add(this);
OrePrefixes.plateQuintuple.add(this);
OrePrefixes.plateDense.add(this);
+ OrePrefixes.plateSuperdense.add(this);
OrePrefixes.plateAlloy.add(this);
OrePrefixes.itemCasing.add(this);
}
@@ -82,6 +86,7 @@ public class ProcessingPlate implements gregtech.api.interfaces.IOreRecipeRegist
case plateQuadruple -> registerPlateQuadruple(aMaterial, aStack, aNoSmashing, aMaterialMass, aNoWorking);
case plateQuintuple -> registerPlateQuintuple(aMaterial, aStack, aNoSmashing, aMaterialMass);
case plateDense -> registerPlateDense(aMaterial, aStack, aNoSmashing, aMaterialMass);
+ case plateSuperdense -> registerPlateSuperdense(aMaterial, aStack, aNoSmashing, aMaterialMass);
case itemCasing -> registerItemCasing(aPrefix, aMaterial, aStack, aNoSmashing);
case plateAlloy -> registerPlateAlloy(aOreDictName, aStack);
default -> {}
@@ -429,6 +434,25 @@ public class ProcessingPlate implements gregtech.api.interfaces.IOreRecipeRegist
}
}
+ final CompressionTierKey COMPRESSION_TIER = CompressionTierKey.INSTANCE;
+
+ private void registerPlateSuperdense(final Materials aMaterial, final ItemStack aStack, final boolean aNoSmashing,
+ final long aMaterialMass) {
+ GTModHandler.removeRecipeByOutputDelayed(aStack);
+
+ if (!aNoSmashing || aMaterial.contains(SubTag.STRETCHY)) {
+ int compression_tier = (aMaterial.processingMaterialTierEU >= TierEU.RECIPE_UIV
+ || aMaterial.contains(SubTag.BLACK_HOLE)) ? 2 : 1;
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTOreDictUnificator.get(OrePrefixes.plate, aMaterial, 64))
+ .itemOutputs(GTUtility.copyAmount(1, aStack))
+ .duration(Math.max(aMaterialMass * 64L, 1L))
+ .eut(calculateRecipeEU(aMaterial, 96))
+ .metadata(COMPRESSION_TIER, compression_tier)
+ .addTo(compressorRecipes);
+ }
+ }
+
private void registerItemCasing(final OrePrefixes aPrefix, final Materials aMaterial, final ItemStack aStack,
final boolean aNoSmashing) {
diff --git a/src/main/java/gregtech/loaders/preload/GTPreLoad.java b/src/main/java/gregtech/loaders/preload/GTPreLoad.java
index f0eb4c6d8c..a0f5e368c1 100644
--- a/src/main/java/gregtech/loaders/preload/GTPreLoad.java
+++ b/src/main/java/gregtech/loaders/preload/GTPreLoad.java
@@ -262,7 +262,7 @@ public class GTPreLoad {
null, "ingot", "ingotHot", "ingotDouble", "ingotTriple", "ingotQuadruple",
"ingotQuintuple", "plate", "plateDouble", "plateTriple", "plateQuadruple",
"plateQuintuple", "plateDense", "stick", "lens", "round", "bolt", "screw", "ring",
- "foil", "cell", "cellPlasma", "cellMolten", "rawOre" };
+ "foil", "cell", "cellPlasma", "cellMolten", "rawOre", "plateSuperdense" };
if (mIt == 2) tags = new String[] { "toolHeadSword", "toolHeadPickaxe",
"toolHeadShovel", "toolHeadAxe", "toolHeadHoe", "toolHeadHammer", "toolHeadFile",
"toolHeadSaw", "toolHeadDrill", "toolHeadChainsaw", "toolHeadWrench",
@@ -294,7 +294,7 @@ public class GTPreLoad {
"toolHeadUniversalSpade", "toolHeadSense", "toolHeadPlow", "toolHeadArrow", "toolHeadBuzzSaw",
"turbineBlade", "wireFine", "gearGtSmall", "rotor", "stickLong", "springSmall", "spring", "arrowGtWood",
"arrowGtPlastic", "gemChipped", "gemFlawed", "gemFlawless", "gemExquisite", "gearGt", "nanite",
- "cellMolten", "rawOre" };
+ "cellMolten", "rawOre", "plateSuperdense" };
List<String> mMTTags = new ArrayList<>();
oreTags.stream()
diff --git a/src/main/java/gtPlusPlus/core/item/base/BaseItemComponent.java b/src/main/java/gtPlusPlus/core/item/base/BaseItemComponent.java
index 5a7bc4fa45..50b59ea42a 100644
--- a/src/main/java/gtPlusPlus/core/item/base/BaseItemComponent.java
+++ b/src/main/java/gtPlusPlus/core/item/base/BaseItemComponent.java
@@ -425,7 +425,8 @@ public class BaseItemComponent extends Item {
SPRING("Spring", "@ Spring", "spring", OrePrefixes.spring),
SMALLSPRING("SmallSpring", "Small @ Spring", "springSmall", OrePrefixes.springSmall),
FINEWIRE("FineWire", "Fine @ Wire", "wireFine", OrePrefixes.wireFine),
- PLATEDENSE("PlateDense", "Dense @ Plate", "plateDense", OrePrefixes.plateDense),;
+ PLATEDENSE("PlateDense", "Dense @ Plate", "plateDense", OrePrefixes.plateDense),
+ PLATESUPERDENSE("PlateSuperDense", "Superdense @ Plate", "plateSuperdense", OrePrefixes.plateSuperdense);
private final String COMPONENT_NAME;
private final String DISPLAY_NAME;