aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorConnor-Colenso <52056774+Connor-Colenso@users.noreply.github.com>2022-07-30 13:48:43 +0100
committerGitHub <noreply@github.com>2022-07-30 19:48:43 +0700
commitf1cccfbe7de3362ae4ca8276df2523b8bb2be5a5 (patch)
treeaeebaf40b61ad6df457bd5b0a59b0b88dfdde9d6 /src
parent244578bc4bb2edb8ad990df0e7ef412d5ceb047f (diff)
downloadGT5-Unofficial-f1cccfbe7de3362ae4ca8276df2523b8bb2be5a5.tar.gz
GT5-Unofficial-f1cccfbe7de3362ae4ca8276df2523b8bb2be5a5.tar.bz2
GT5-Unofficial-f1cccfbe7de3362ae4ca8276df2523b8bb2be5a5.zip
Transcendent metal (almost) (#1171)
* New recipe methods. * Pulverise tesseracts * New pulveriser method * Cleanup code * Smelting/cooling methods * Super coolant * Add hot ingot Co-authored-by: GTNH-Colen <54497873+GTNH-Colen@users.noreply.github.com>
Diffstat (limited to 'src')
-rw-r--r--src/main/java/gregtech/api/enums/Materials.java9
-rw-r--r--src/main/java/gregtech/api/enums/OrePrefixes.java6
-rw-r--r--src/main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java2
-rw-r--r--src/main/java/gregtech/api/util/GT_ModHandler.java15
-rw-r--r--src/main/java/gregtech/common/GT_RecipeAdder.java8
-rw-r--r--src/main/java/gregtech/common/items/GT_MetaGenerated_Item_02.java1
-rw-r--r--src/main/java/gregtech/loaders/oreprocessing/ProcessingIngot.java6
-rw-r--r--src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java25
8 files changed, 69 insertions, 3 deletions
diff --git a/src/main/java/gregtech/api/enums/Materials.java b/src/main/java/gregtech/api/enums/Materials.java
index ea5f66f7d6..49a2cd3fe6 100644
--- a/src/main/java/gregtech/api/enums/Materials.java
+++ b/src/main/java/gregtech/api/enums/Materials.java
@@ -882,7 +882,7 @@ public class Materials implements IColorModulationContainer, ISubTagContainer {
public static Materials DimensionallyTranscendentResidue = new Materials( 589, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 0, 0, 0, 1, "DimensionallyTranscendentResidue" , "Dimensionally Transcendent Residue" , -1, -1, 25, 1, false, true, 1, 1, 1, Dyes.dyeBlack);
public static Materials SpaceTime = new Materials( 588, new TextureSet("spacetime", true) , 320.0F, 4*2621440, 25, 1|2|64|128, 255, 255, 255, 0, "SpaceTime" , "SpaceTime" , -1, -1, 0, 0, false, true, 2, 1, 1, Dyes._NULL , Arrays.asList(new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1)));
- public static Materials TranscendentMetal = new Materials( 581, new TextureSet("transcendentmetal", true) , 320.0F, 4*2621440, 25, 1|2|64|128, 50, 50, 50,255, "TranscendentMetal" , "Transcendent Metal" , -1, -1, 0, 0, false, true, 200, 1000, 1000, Dyes.dyeBlack , Arrays.asList(new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1)));
+ public static Materials TranscendentMetal = new Materials( 581, new TextureSet("transcendentmetal", true) , 320.0F, 4*2621440, 25, 1|2|64|128, 50, 50, 50,255, "TranscendentMetal" , "Transcendent Metal" , -1, -1, 0, 3000, false, true, 200, 1000, 1000, Dyes.dyeBlack , Arrays.asList(new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1))).disableAutoGeneratedBlastFurnaceRecipes();
static {
MaterialsKevlar.init();
@@ -999,6 +999,7 @@ public class Materials implements IColorModulationContainer, ISubTagContainer {
mUnificatable,
mBlastFurnaceRequired = false,
mAutoGenerateBlastFurnaceRecipes = true,
+ mAutoGenerateVacuumFreezerRecipes = true,
mTransparent = false,
mHasParentMod = true,
mHasPlasma = false,
@@ -2007,6 +2008,7 @@ public class Materials implements IColorModulationContainer, ISubTagContainer {
FreshWater
);
+ TranscendentMetal.add(SubTag.NO_SMELTING);
Wood.add(SubTag.WOOD, SubTag.FLAMMABLE, SubTag.NO_SMELTING, SubTag.NO_SMASHING);
WoodSealed.add(SubTag.WOOD, SubTag.FLAMMABLE, SubTag.NO_SMELTING, SubTag.NO_SMASHING, SubTag.NO_WORKING);
Peanutwood.add(SubTag.WOOD, SubTag.FLAMMABLE, SubTag.NO_SMELTING, SubTag.NO_SMASHING);
@@ -2503,6 +2505,11 @@ public class Materials implements IColorModulationContainer, ISubTagContainer {
return this;
}
+ public Materials disableAutoGeneratedVacuumFreezerRecipe() {
+ mAutoGenerateVacuumFreezerRecipes = false;
+ return this;
+ }
+
public Materials setTurbineMultipliers(float steamMultiplier, float gasMultiplier, float plasmaMultiplier) {
mSteamMultiplier = steamMultiplier;
mGasMultiplier = gasMultiplier;
diff --git a/src/main/java/gregtech/api/enums/OrePrefixes.java b/src/main/java/gregtech/api/enums/OrePrefixes.java
index 7b480ea995..0811fdac40 100644
--- a/src/main/java/gregtech/api/enums/OrePrefixes.java
+++ b/src/main/java/gregtech/api/enums/OrePrefixes.java
@@ -461,6 +461,8 @@ public enum OrePrefixes {
plate.mGeneratedItems.add(Materials.Electrotine);
plate.mGeneratedItems.add(Materials.Obsidian);
+ ingotHot.mGeneratedItems.add(Materials.TranscendentMetal);
+
plate.mGeneratedItems.add(Materials.Paper);
plateDouble.mGeneratedItems.add(Materials.Paper);
plateTriple.mGeneratedItems.add(Materials.Paper);
@@ -647,6 +649,7 @@ public enum OrePrefixes {
public static void initMaterialComponents() {
boolean enablePerItemSettings = GregTech_API.sMaterialComponents.get("general", "enablePerItemSettings", false);
+ boolean enableUnusedIngotHot = GregTech_API.sMaterialComponents.get("globalcomponents", "enableUnusedIngotHot", false);
boolean enableUnusedPlates = GregTech_API.sMaterialComponents.get("globalcomponents", "enableUnusedPlates", false);
boolean enableUnusedDoubleIngots = GregTech_API.sMaterialComponents.get("globalcomponents", "enableUnusedDoubleIngots", false);
boolean enableUnusedTripleIngots = GregTech_API.sMaterialComponents.get("globalcomponents", "enableUnusedTripleIngots", false);
@@ -706,6 +709,9 @@ public enum OrePrefixes {
aMaterial == Materials.EnderPearl || aMaterial == Materials.EnderEye || aMaterial == Materials.Glass || aMaterial == Materials.Copper || aMaterial == Materials.Tin || aMaterial == Materials.Redstone ||
aMaterial == Materials.Sodalite || aMaterial == Materials.Gallium || aMaterial == Materials.GalliumArsenide || aMaterial == Materials.IndiumGalliumPhosphide))
plate.mDisabledItems.add(aMaterial);
+ if (!enableUnusedIngotHot) {
+ ingotHot.mDisabledItems.add(aMaterial);
+ }
//Ingot/Plate Storage
if (!enableUnusedDoubleIngots) ingotDouble.mDisabledItems.add(aMaterial);
if (!enableUnusedTripleIngots) ingotTriple.mDisabledItems.add(aMaterial);
diff --git a/src/main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java b/src/main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java
index 3c241d4fa1..add54205ee 100644
--- a/src/main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java
+++ b/src/main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java
@@ -530,6 +530,8 @@ public interface IGT_RecipeAdder {
boolean addVacuumFreezerRecipe(FluidStack aInput1, FluidStack aOutput1, int aDuration, int aEUt);
+ boolean addVacuumFreezerRecipe(ItemStack[] aItemInput, FluidStack[] aFluidInput, ItemStack[] aItemOutput, FluidStack[] aFluidOutput, int aDuration, int aEUt);
+
/**
* Adds a Fuel for My Generators
*
diff --git a/src/main/java/gregtech/api/util/GT_ModHandler.java b/src/main/java/gregtech/api/util/GT_ModHandler.java
index febcb4ba32..1af913f4ee 100644
--- a/src/main/java/gregtech/api/util/GT_ModHandler.java
+++ b/src/main/java/gregtech/api/util/GT_ModHandler.java
@@ -581,6 +581,21 @@ public class GT_ModHandler {
return true;
}
+ public static boolean addPulverisationRecipe(ItemStack aInputItem, ItemStack[] aOutputArray, int[] aChanceArray, int aEUt, int aRecipeDurationInTicks) {
+
+ ItemStack[] aUnifiedOutputArray = new ItemStack[aOutputArray.length];
+ int counter = 0;
+
+ for (ItemStack item: aOutputArray) {
+ aUnifiedOutputArray[counter] = GT_OreDictUnificator.get(true, item);
+ counter++;
+ }
+
+ RA.addPulveriserRecipe(aInputItem, aOutputArray, aChanceArray, aRecipeDurationInTicks, aEUt);
+
+ return true;
+ }
+
public static boolean addImmersiveEngineeringRecipe(ItemStack aInput, ItemStack aOutput1, ItemStack aOutput2, int aChance2, ItemStack aOutput3, int aChance3){
return true;
}
diff --git a/src/main/java/gregtech/common/GT_RecipeAdder.java b/src/main/java/gregtech/common/GT_RecipeAdder.java
index b489ccd913..f95be05bc7 100644
--- a/src/main/java/gregtech/common/GT_RecipeAdder.java
+++ b/src/main/java/gregtech/common/GT_RecipeAdder.java
@@ -754,11 +754,19 @@ public class GT_RecipeAdder implements IGT_RecipeAdder {
if ((aInput1 == null) || (aOutput1 == null)) {
return false;
}
+
new GT_Recipe(aInput1, aOutput1, aDuration, aEUt);
return true;
}
@Override
+ public boolean addVacuumFreezerRecipe(ItemStack[] aItemInput, FluidStack[] aFluidInput, ItemStack[] aItemOutput, FluidStack[] aFluidOutput, int aDuration, int aEUt) {
+ GT_Recipe.GT_Recipe_Map.sVacuumRecipes.addRecipe(false, aItemInput, aItemOutput, null, aFluidInput, aFluidOutput, Math.max(1, aDuration), Math.max(1, aEUt), 0);
+ return true;
+ }
+
+
+ @Override
@Deprecated
public boolean addGrinderRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4) {
return false;
diff --git a/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_02.java b/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_02.java
index c1d5e797e8..bba9787820 100644
--- a/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_02.java
+++ b/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_02.java
@@ -392,6 +392,7 @@ public class GT_MetaGenerated_Item_02 extends GT_MetaGenerated_Item_X32 {
GT_ModHandler.addPulverisationRecipe(GT_ModHandler.getIC2Item("crop", 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L), null, 0, false);
GT_ModHandler.addPulverisationRecipe(new ItemStack(Items.stick, 1), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Wood, 2L), null, 0, false);
GT_ModHandler.addPulverisationRecipe(new ItemStack(Blocks.wool, 1, 32767), new ItemStack(Items.string, 2), new ItemStack(Items.string, 1), 50, false);
+ GT_ModHandler.addPulverisationRecipe(ItemList.Tesseract.get(1), new ItemStack[]{GT_OreDictUnificator.get(OrePrefixes.dust, Materials.TranscendentMetal, 1L)}, new int[] {10000}, 32_000_000, 100);
try {
ic2.api.crops.CropCard tCrop;
GT_Utility.getField(tCrop = ic2.api.crops.Crops.instance.getCropList()[13], "mDrop").set(tCrop, ItemList.Crop_Drop_Ferru.get(1L));
diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingIngot.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingIngot.java
index 55201276cc..5b8525597f 100644
--- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingIngot.java
+++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingIngot.java
@@ -99,8 +99,10 @@ public class ProcessingIngot implements gregtech.api.interfaces.IOreRecipeRegist
}
break;
case ingotHot:
- GT_Values.RA.addVacuumFreezerRecipe(GT_Utility.copyAmount(1L, aStack), GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L), (int) Math.max(aMaterialMass * 3L, 1L));
- break;
+ if (aMaterial.mAutoGenerateVacuumFreezerRecipes) {
+ GT_Values.RA.addVacuumFreezerRecipe(GT_Utility.copyAmount(1L, aStack), GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L), (int) Math.max(aMaterialMass * 3L, 1L));
+ break;
+ }
default:
break;
}
diff --git a/src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java b/src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java
index aa1246448a..8599e839d5 100644
--- a/src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java
+++ b/src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java
@@ -3936,6 +3936,31 @@ public class GT_MachineRecipeLoader implements Runnable {
GT_Values.RA.addBlastRecipe(Materials.Galena.getDust(1), GT_Values.NI, Materials.Oxygen.getGas(3000), Materials.SulfurDioxide.getGas(1000), Materials.RoastedLead.getDust(1), Materials.Ash.getDustTiny(1), 120, 120, 1200);
+ if (GregTech_API.mGTPlusPlus) {
+
+ GT_Values.RA.addBlastRecipe(
+ Materials.TranscendentMetal.getDust(1),
+ GT_Utility.getIntegratedCircuit(1),
+ Materials.Tungsten.getMolten(144),
+
+ new FluidStack(FluidRegistry.getFluid("molten.celestialtungsten"), 72),
+ GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.TranscendentMetal, 1L),
+ GT_Values.NI,
+
+ 180 * 20, 32_000_000, 11701
+ );
+
+ GT_Values.RA.addVacuumFreezerRecipe(
+ new ItemStack[]{GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.TranscendentMetal, 1L)},
+ new FluidStack[]{new FluidStack(FluidRegistry.getFluid("molten.titansteel"), 144), Materials.SuperCoolant.getFluid(1000)},
+
+ new ItemStack[]{GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.TranscendentMetal, 1L)},
+ new FluidStack[]{GT_Values.NF},
+
+ 50*20, 32_000_000
+ );
+ }
+
//Decomposition
GT_Values.RA.addBlastRecipe(Materials.Gypsum.getDust(8), GT_Values.NI, GT_Values.NF, Materials.DilutedSulfuricAcid.getFluid(1500), Materials.Quicklime.getDust(1), GT_Values.NI, 200, 480, 3200);