diff options
author | Connor-Colenso <52056774+Connor-Colenso@users.noreply.github.com> | 2022-07-30 13:48:43 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-30 19:48:43 +0700 |
commit | f1cccfbe7de3362ae4ca8276df2523b8bb2be5a5 (patch) | |
tree | aeebaf40b61ad6df457bd5b0a59b0b88dfdde9d6 /src | |
parent | 244578bc4bb2edb8ad990df0e7ef412d5ceb047f (diff) | |
download | GT5-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')
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); |