aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/loaders
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/gregtech/loaders
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/gregtech/loaders')
-rw-r--r--src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate.java24
-rw-r--r--src/main/java/gregtech/loaders/preload/GTPreLoad.java4
2 files changed, 26 insertions, 2 deletions
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()