diff options
| author | Raven Szewczyk <git@eigenraven.me> | 2024-05-24 19:50:35 +0100 |
|---|---|---|
| committer | Raven Szewczyk <git@eigenraven.me> | 2024-05-24 19:50:35 +0100 |
| commit | 6d1b2216464d4dad449ac6fcfec476832224a55e (patch) | |
| tree | 526a0c15f7056313c80e6c0386e025e9b3f61781 /src/main/java/gtPlusPlus/xmod/gregtech/loaders/recipe | |
| parent | b5d35f40afa606ed1b07061dad82e0521a59c186 (diff) | |
| download | GT5-Unofficial-6d1b2216464d4dad449ac6fcfec476832224a55e.tar.gz GT5-Unofficial-6d1b2216464d4dad449ac6fcfec476832224a55e.tar.bz2 GT5-Unofficial-6d1b2216464d4dad449ac6fcfec476832224a55e.zip | |
Merge addon sources
Diffstat (limited to 'src/main/java/gtPlusPlus/xmod/gregtech/loaders/recipe')
9 files changed, 3163 insertions, 0 deletions
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_AlgaeFarm.java b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_AlgaeFarm.java new file mode 100644 index 0000000000..69d79cdc4b --- /dev/null +++ b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_AlgaeFarm.java @@ -0,0 +1,192 @@ +package gtPlusPlus.xmod.gregtech.loaders.recipe; + +import java.util.HashMap; + +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.util.GT_Recipe; +import gtPlusPlus.api.objects.Logger; +import gtPlusPlus.api.objects.data.AutoMap; +import gtPlusPlus.api.objects.data.WeightedCollection; +import gtPlusPlus.core.item.chemistry.AgriculturalChem; +import gtPlusPlus.core.util.math.MathUtils; +import gtPlusPlus.core.util.minecraft.ItemUtils; + +public class RecipeLoader_AlgaeFarm { + + private static final HashMap<Integer, AutoMap<GT_Recipe>> mRecipeCache = new HashMap<>(); + private static final HashMap<Integer, AutoMap<GT_Recipe>> mRecipeCompostCache = new HashMap<>(); + + public static void generateRecipes() { + for (int i = 0; i < 10; i++) { + getTieredRecipeFromCache(i, false); + } + for (int i = 0; i < 10; i++) { + getTieredRecipeFromCache(i, true); + } + } + + public static GT_Recipe getTieredRecipeFromCache(int aTier, boolean aCompost) { + HashMap<Integer, AutoMap<GT_Recipe>> aMap = aCompost ? mRecipeCompostCache : mRecipeCache; + String aComp = aCompost ? "(Compost)" : ""; + + AutoMap<GT_Recipe> aTemp = aMap.get(aTier); + if (aTemp == null || aTemp.isEmpty()) { + aTemp = new AutoMap<>(); + aMap.put(aTier, aTemp); + Logger.INFO("Tier " + aTier + aComp + " had no recipes, initialising new map."); + } + if (aTemp.size() < 500) { + Logger + .INFO("Tier " + aTier + aComp + " has less than 500 recipes, generating " + (500 - aTemp.size()) + "."); + for (int i = aTemp.size(); i < 500; i++) { + aTemp.put(generateBaseRecipe(aCompost, aTier)); + } + } + int aIndex = MathUtils.randInt(0, aTemp.isEmpty() ? 1 : aTemp.size()); + Logger.INFO("Using recipe with index of " + aIndex + ". " + aComp); + return aTemp.get(aIndex); + } + + public static int compostForTier(int aTier) { + return aTier > 1 ? (int) Math.min(64, Math.pow(2, aTier - 1)) : 1; + } + + private static GT_Recipe generateBaseRecipe(boolean aUsingCompost, int aTier) { + + // Type Safety + if (aTier < 0) { + return null; + } + + WeightedCollection<Float> aOutputTimeMulti = new WeightedCollection<>(); + for (int i = 100; i > 0; i--) { + float aValue = 0; + if (i < 10) { + aValue = 3f; + } else if (i < 20) { + aValue = 2f; + } else { + aValue = 1f; + } + aOutputTimeMulti.put(i, aValue); + } + + final int[] aDurations = new int[] { 2000, 1800, 1600, 1400, 1200, 1000, 512, 256, 128, 64, 32, 16, 8, 4, 2, + 1 }; + + ItemStack[] aInputs = new ItemStack[] {}; + + if (aUsingCompost) { + // Make it use 4 compost per tier if we have some available + // Compost consumption maxes out at 1 stack per cycle + ItemStack aCompost = ItemUtils.getSimpleStack(AgriculturalChem.mCompost, compostForTier(aTier)); + aInputs = new ItemStack[] { aCompost }; + // Boost Tier by one if using compost so it gets a speed boost + aTier++; + } + + // We set these elsewhere + ItemStack[] aOutputs = getOutputsForTier(aTier); + + GT_Recipe tRecipe = new GT_Recipe( + false, + aInputs, + aOutputs, + (Object) null, + new int[] {}, + new FluidStack[] { GT_Values.NF }, + new FluidStack[] { GT_Values.NF }, + (int) (aDurations[aTier] * aOutputTimeMulti.get() / 2), // Time + 0, + 0); + + tRecipe.mSpecialValue = tRecipe.hashCode(); + + return tRecipe; + } + + private static ItemStack[] getOutputsForTier(int aTier) { + + // Create an Automap to dump contents into + AutoMap<ItemStack> aOutputMap = new AutoMap<>(); + + // Add loot relevant to tier and also add any from lower tiers. + + if (aTier >= 0) { + aOutputMap.put(ItemUtils.getSimpleStack(AgriculturalChem.mAlgaeBiosmass, 2)); + aOutputMap.put(ItemUtils.getSimpleStack(AgriculturalChem.mAlgaeBiosmass, 4)); + if (MathUtils.randInt(0, 10) > 9) { + aOutputMap.put(ItemUtils.getSimpleStack(AgriculturalChem.mGreenAlgaeBiosmass, 2)); + } + } + + if (aTier >= 1) { + aOutputMap.put(ItemUtils.getSimpleStack(AgriculturalChem.mAlgaeBiosmass, 4)); + aOutputMap.put(ItemUtils.getSimpleStack(AgriculturalChem.mGreenAlgaeBiosmass, 2)); + if (MathUtils.randInt(0, 10) > 9) { + aOutputMap.put(ItemUtils.getSimpleStack(AgriculturalChem.mGreenAlgaeBiosmass, 4)); + } + } + if (aTier >= 2) { + aOutputMap.put(ItemUtils.getSimpleStack(AgriculturalChem.mGreenAlgaeBiosmass, 2)); + aOutputMap.put(ItemUtils.getSimpleStack(AgriculturalChem.mGreenAlgaeBiosmass, 3)); + if (MathUtils.randInt(0, 10) > 9) { + aOutputMap.put(ItemUtils.getSimpleStack(AgriculturalChem.mGreenAlgaeBiosmass, 8)); + } + } + if (aTier >= 3) { + aOutputMap.put(ItemUtils.getSimpleStack(AgriculturalChem.mGreenAlgaeBiosmass, 4)); + aOutputMap.put(ItemUtils.getSimpleStack(AgriculturalChem.mBrownAlgaeBiosmass, 1)); + if (MathUtils.randInt(0, 10) > 9) { + aOutputMap.put(ItemUtils.getSimpleStack(AgriculturalChem.mBrownAlgaeBiosmass, 4)); + } + } + if (aTier >= 4) { + aOutputMap.put(ItemUtils.getSimpleStack(AgriculturalChem.mBrownAlgaeBiosmass, 2)); + aOutputMap.put(ItemUtils.getSimpleStack(AgriculturalChem.mBrownAlgaeBiosmass, 3)); + if (MathUtils.randInt(0, 10) > 9) { + aOutputMap.put(ItemUtils.getSimpleStack(AgriculturalChem.mGoldenBrownAlgaeBiosmass, 4)); + } + } + if (aTier >= 5) { + aOutputMap.put(ItemUtils.getSimpleStack(AgriculturalChem.mBrownAlgaeBiosmass, 4)); + aOutputMap.put(ItemUtils.getSimpleStack(AgriculturalChem.mGoldenBrownAlgaeBiosmass, 2)); + if (MathUtils.randInt(0, 10) > 9) { + aOutputMap.put(ItemUtils.getSimpleStack(AgriculturalChem.mRedAlgaeBiosmass, 4)); + } + } + // Tier 6 is Highest for outputs + if (aTier >= 6) { + aOutputMap.put(ItemUtils.getSimpleStack(AgriculturalChem.mGoldenBrownAlgaeBiosmass, 4)); + aOutputMap.put(ItemUtils.getSimpleStack(AgriculturalChem.mRedAlgaeBiosmass, 2)); + if (MathUtils.randInt(0, 10) > 9) { + aOutputMap.put(ItemUtils.getSimpleStack(AgriculturalChem.mRedAlgaeBiosmass, 8)); + } + } + + // Iterate a special loop at higher tiers to provide more Red/Gold Algae. + for (int i2 = 0; i2 < 20; i2++) { + if (aTier >= (6 + i2)) { + int aMulti = i2 + 1; + aOutputMap.put(ItemUtils.getSimpleStack(AgriculturalChem.mGreenAlgaeBiosmass, aMulti * 4)); + aOutputMap.put(ItemUtils.getSimpleStack(AgriculturalChem.mBrownAlgaeBiosmass, aMulti * 3)); + aOutputMap.put(ItemUtils.getSimpleStack(AgriculturalChem.mGoldenBrownAlgaeBiosmass, aMulti * 2)); + aOutputMap.put(ItemUtils.getSimpleStack(AgriculturalChem.mRedAlgaeBiosmass, aMulti)); + } else { + i2 = 20; + } + } + + // Map the AutoMap contents to an Itemstack Array. + ItemStack[] aOutputs = new ItemStack[aOutputMap.size()]; + for (int i = 0; i < aOutputMap.size(); i++) { + aOutputs[i] = aOutputMap.get(i); + } + + // Return filled ItemStack Array. + return aOutputs; + } +} diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_ChemicalSkips.java b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_ChemicalSkips.java new file mode 100644 index 0000000000..dfa6d9dea6 --- /dev/null +++ b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_ChemicalSkips.java @@ -0,0 +1,661 @@ +package gtPlusPlus.xmod.gregtech.loaders.recipe; + +import static gregtech.api.enums.Mods.BartWorks; +import static gregtech.api.enums.Mods.EternalSingularity; +import static gregtech.api.enums.Mods.GalaxySpace; +import static gregtech.api.enums.Mods.GoodGenerator; +import static gregtech.api.enums.Mods.NewHorizonsCoreMod; +import static gregtech.api.recipe.RecipeMaps.assemblerRecipes; +import static gregtech.api.util.GT_ModHandler.getModItem; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; + +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidStack; + +import com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader; +import com.github.technus.tectech.recipe.TT_recipeAdder; +import com.github.technus.tectech.thing.block.QuantumGlassBlock; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.MaterialsKevlar; +import gregtech.api.enums.MaterialsUEVplus; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.TierEU; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; +import gregtech.common.items.CombType; +import gregtech.loaders.misc.GT_Bees; +import gtPlusPlus.core.item.chemistry.GenericChem; +import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.core.material.ALLOY; +import gtPlusPlus.core.material.ELEMENT; +import gtPlusPlus.core.material.MISC_MATERIALS; +import gtPlusPlus.core.material.Particle; +import gtPlusPlus.core.recipe.common.CI; +import gtPlusPlus.core.util.minecraft.FluidUtils; +import gtPlusPlus.core.util.minecraft.ItemUtils; +import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList; + +public class RecipeLoader_ChemicalSkips { + + public static void generate() { + createRecipes(); + } + + private static void createRecipes() { + quantumTransformerRecipes(); + fusionReactorRecipes(); + catalystRecipes(); + tieredCasingRecipes(); + } + + // All the recipes that the QFT can do. Each recipe has a machine tier. + // -> Tier 1 is UEV (UEV circuits and 1 Eternal Singularity); + // -> Tier 2 needs new item from QFT, plus stacks of Infinity; + // -> Tier 3 needs new item from QFT, plus stacks of Transcendent Metal; + // -> Tier 4 needs new item from QFT, plus stacks of Spacetime; + // (Until they are created, the new items are represented by + // HSS-G for Tier 2, HSS-S for Tier 3 and HSS-E for Tier 4) + + private static void quantumTransformerRecipes() { + ItemStack stemcells = GT_Utility.copyAmountUnsafe(64 * 32, ItemList.Circuit_Chip_Stemcell.get(1)); + ItemStack biocells = GT_Utility.copyAmountUnsafe(64 * 32, ItemList.Circuit_Chip_Biocell.get(1)); + // Platline + CORE.RA.addQuantumTransformerRecipe( + new ItemStack[] { WerkstoffLoader.PTMetallicPowder.get(OrePrefixes.dust, 32), + ItemUtils.getSimpleStack(GenericChem.mPlatinumGroupCatalyst, 0) }, + new FluidStack[] {}, + new FluidStack[] {}, + new ItemStack[] { Materials.Platinum.getDust(64), Materials.Palladium.getDust(64), + Materials.Iridium.getDust(64), Materials.Osmium.getDust(64), + WerkstoffLoader.Rhodium.get(OrePrefixes.dust, 64), + WerkstoffLoader.Ruthenium.get(OrePrefixes.dust, 64) }, + new int[] { 1667, 1667, 1667, 1667, 1667, 1667 }, + 20 * 20, + (int) TierEU.RECIPE_UV, + 1); + + // Early Plastics + CORE.RA.addQuantumTransformerRecipe( + new ItemStack[] { Materials.Carbon.getDust(64), + ItemUtils.getSimpleStack(GenericChem.mPlasticPolymerCatalyst, 0) }, + new FluidStack[] { Materials.Oxygen.getGas(1000 * 16), Materials.Hydrogen.getGas(1000 * 16), + Materials.Chlorine.getGas(1000 * 16), Materials.Fluorine.getGas(1000 * 16) }, + new FluidStack[] { Materials.Plastic.getMolten(144 * 256), Materials.PolyvinylChloride.getMolten(144 * 128), + Materials.Polystyrene.getMolten(144 * 64), Materials.Polytetrafluoroethylene.getMolten(144 * 128), + Materials.Epoxid.getMolten(144 * 64), Materials.Polybenzimidazole.getMolten(144 * 64) }, + null, + new int[] { 2000, 2000, 2000, 2000, 2000, 2000 }, + 20 * 20, + (int) TierEU.RECIPE_ZPM, + 1); + + // Early Rubbers/Cable Materials + CORE.RA.addQuantumTransformerRecipe( + new ItemStack[] { Materials.Carbon.getDust(64), + ItemUtils.getSimpleStack(GenericChem.mRubberPolymerCatalyst, 0) }, + new FluidStack[] { Materials.Oxygen.getGas(1000 * 16), Materials.Hydrogen.getGas(1000 * 16), + Materials.Chlorine.getGas(1000 * 16) }, + new FluidStack[] { Materials.Silicone.getMolten(144 * 64), + Materials.StyreneButadieneRubber.getMolten(144 * 64), + Materials.PolyphenyleneSulfide.getMolten(144 * 128), Materials.Rubber.getMolten(144 * 256) }, + null, + new int[] { 2500, 2500, 2500, 2500 }, + 20 * 20, + (int) TierEU.RECIPE_ZPM, + 1); + + // Glues and Solders + CORE.RA.addQuantumTransformerRecipe( + new ItemStack[] { Materials.Carbon.getDust(32), Materials.Bismuth.getDust(32), + ItemUtils.getSimpleStack(GenericChem.mAdhesionPromoterCatalyst, 0) }, + new FluidStack[] { Materials.Oxygen.getGas(10000), Materials.Hydrogen.getGas(10000) }, + new FluidStack[] { MISC_MATERIALS.ETHYL_CYANOACRYLATE.getFluidStack(1000 * 32), + Materials.AdvancedGlue.getFluid(1000 * 16), ALLOY.INDALLOY_140.getFluidStack(144 * 64), + Materials.SolderingAlloy.getMolten(144 * 128) }, + new ItemStack[] { ItemList.StableAdhesive.get(1) }, + new int[] { 2000, 2000, 2000, 2000, 2000 }, + 20 * 20, + (int) TierEU.RECIPE_UV, + 1); + + // Titanium, Tungsten, Indium + CORE.RA.addQuantumTransformerRecipe( + new ItemStack[] { Materials.Lead.getDust(16), Materials.Bauxite.getDust(32), + Materials.Tungstate.getDust(16), ItemUtils.getSimpleStack(GenericChem.mTitaTungstenIndiumCatalyst, 0) }, + new FluidStack[] {}, + new FluidStack[] {}, + new ItemStack[] { Materials.Titanium.getDust(64), Materials.TungstenSteel.getDust(64), + Materials.TungstenCarbide.getDust(64), Materials.Indium.getDust(64) }, + new int[] { 2500, 2500, 2500, 2500 }, + 20 * 20, + (int) TierEU.RECIPE_UV, + 1); + + // Thorium, Uranium, Plutonium + CORE.RA.addQuantumTransformerRecipe( + new ItemStack[] { Materials.Thorium.getDust(32), Materials.Uranium.getDust(32), + ItemUtils.getSimpleStack(GenericChem.mRadioactivityCatalyst, 0) }, + new FluidStack[] {}, + new FluidStack[] {}, + new ItemStack[] { ELEMENT.getInstance().THORIUM232.getDust(64), + ELEMENT.getInstance().URANIUM233.getDust(64), Materials.Uranium235.getDust(64), + ELEMENT.getInstance().PLUTONIUM238.getDust(64), Materials.Plutonium.getDust(64), + Materials.Plutonium241.getDust(64) }, + new int[] { 1667, 1667, 1667, 1667, 1667, 1667 }, + 20 * 20, + (int) TierEU.RECIPE_UV, + 1); + + // Monaline + CORE.RA.addQuantumTransformerRecipe( + new ItemStack[] { Materials.Monazite.getDust(32), + ItemUtils.getSimpleStack(GenericChem.mRareEarthGroupCatalyst, 0) }, + new FluidStack[] {}, + new FluidStack[] {}, + new ItemStack[] { Materials.Cerium.getDust(64), Materials.Gadolinium.getDust(64), + Materials.Samarium.getDust(64), getModItem(BartWorks.ID, "gt.bwMetaGenerateddust", 64L, 11002), // Hafnia + getModItem(BartWorks.ID, "gt.bwMetaGenerateddust", 64L, 11007), // Zirconium + ItemList.SuperconductorComposite.get(1) }, + new int[] { 1667, 1667, 1667, 1667, 1667, 1667 }, + 20 * 20, + (int) TierEU.RECIPE_UHV, + 2); + + // Bastline + CORE.RA.addQuantumTransformerRecipe( + new ItemStack[] { Materials.Bastnasite.getDust(32), + ItemUtils.getSimpleStack(GenericChem.mRareEarthGroupCatalyst, 0) }, + null, + null, + new ItemStack[] { Materials.Holmium.getDust(64), Materials.Cerium.getDust(64), + Materials.Samarium.getDust(64), Materials.Gadolinium.getDust(64), Materials.Lanthanum.getDust(64) }, + new int[] { 2000, 2000, 2000, 2000, 2000 }, + 20 * 20, + (int) TierEU.RECIPE_UHV, + 2); + + // Early Waterline skip (first 4 tiers) + CORE.RA.addQuantumTransformerRecipe( + new ItemStack[] { ItemUtils.getSimpleStack(GenericChem.mLimpidWaterCatalyst, 0) }, + new FluidStack[] { Materials.Water.getFluid(40000L) }, + new FluidStack[] { Materials.Grade1PurifiedWater.getFluid(20000L), + Materials.Grade2PurifiedWater.getFluid(10000L), Materials.Grade3PurifiedWater.getFluid(5000L), + Materials.Grade4PurifiedWater.getFluid(1000L) }, + new ItemStack[] {}, + new int[] { 2500, 2500, 2500, 2500 }, + 20 * 20, + (int) TierEU.RECIPE_UHV, + 2); + + // Stem Cells + CORE.RA.addQuantumTransformerRecipe( + new ItemStack[] { Materials.Calcium.getDust(32), Materials.MeatRaw.getDust(32), + getModItem(NewHorizonsCoreMod.ID, "GTNHBioItems", 32, 2), + ItemUtils.getSimpleStack(GenericChem.mRawIntelligenceCatalyst, 0) }, + new FluidStack[] {}, + new FluidStack[] { Materials.GrowthMediumRaw.getFluid(1000 * 1024), + Materials.GrowthMediumSterilized.getFluid(1000 * 512) }, + new ItemStack[] { stemcells }, + new int[] { 3333, 3333, 3333 }, + 20 * 20, + (int) TierEU.RECIPE_UEV, + 3); + + // Unknown Particles + CORE.RA.addQuantumTransformerRecipe( + new ItemStack[] { ItemUtils.getSimpleStack(GenericChem.mParticleAccelerationCatalyst, 0) }, + new FluidStack[] { Materials.Hydrogen.getGas(10000L), Materials.Deuterium.getGas(1000L) }, + new FluidStack[] { FluidUtils.getFluidStack("plasma.hydrogen", 1000) }, + new ItemStack[] { Particle.getBaseParticle(Particle.UNKNOWN), Particle.getBaseParticle(Particle.GRAVITON), + Particle.getBaseParticle(Particle.PROTON), Particle.getBaseParticle(Particle.ELECTRON) }, + new int[] { 2000, 2000, 2000, 2000, 2000 }, + 5 * 20, + (int) TierEU.RECIPE_UEV, + 3); + + // Lategame Plastics (Missing Radox Polymer and Heavy Radox) + CORE.RA.addQuantumTransformerRecipe( + new ItemStack[] { Materials.Carbon.getDust(64), Materials.Osmium.getDust(24), + ItemUtils.getSimpleStack(GenericChem.mUltimatePlasticCatalyst, 0) }, + new FluidStack[] { Materials.Hydrogen.getGas(1000 * 16), Materials.Nitrogen.getGas(1000 * 16) }, + new FluidStack[] { FluidUtils.getFluidStack("xenoxene", 1000 * 16), + FluidUtils.getFluidStack("molten.radoxpoly", 144 * 64), + FluidUtils.getFluidStack("heavyradox", 1000 * 16), MaterialsKevlar.Kevlar.getMolten(144 * 64) }, + new ItemStack[] {}, + new int[] { 2500, 2500, 2500, 2500 }, + 20 * 20, + (int) TierEU.RECIPE_UIV, + 4); + + // Lategame Kevlar using Kevlar bee comb + CORE.RA.addQuantumTransformerRecipe( + new ItemStack[] { GT_Bees.combs.getStackForType(CombType.KEVLAR, 24), Materials.Carbon.getDust(64), + ItemUtils.getSimpleStack(GenericChem.mUltimatePlasticCatalyst, 0) }, + new FluidStack[] { Materials.Nitrogen.getGas(1000 * 16), Materials.Hydrogen.getGas(1000 * 16) }, + new FluidStack[] { MaterialsKevlar.PolyurethaneResin.getFluid(1000 * 32), + MaterialsKevlar.LiquidCrystalKevlar.getFluid(144 * 32), MaterialsKevlar.Kevlar.getMolten(144 * 64) }, + new ItemStack[] {}, + new int[] { 2500, 2500, 2500, 2500 }, + 20 * 20, + (int) TierEU.RECIPE_UIV, + 4); + // Platline skip using Platline Combs (Palladium, Osmium, Iridium, Platinum) + CORE.RA.addQuantumTransformerRecipe( + new ItemStack[] { GT_Bees.combs.getStackForType(CombType.PLATINUM, 32), + GT_Bees.combs.getStackForType(CombType.PALLADIUM, 32), + GT_Bees.combs.getStackForType(CombType.OSMIUM, 32), GT_Bees.combs.getStackForType(CombType.IRIDIUM, 32), + ItemUtils.getSimpleStack(GenericChem.mPlatinumGroupCatalyst, 0) }, + new FluidStack[] {}, + new FluidStack[] { Materials.Osmium.getMolten(144 * 256), Materials.Palladium.getMolten(144 * 256), + Materials.Iridium.getMolten(144 * 256), Materials.Platinum.getMolten(144 * 256) }, + new ItemStack[] {}, + new int[] { 2500, 2500, 2500, 2500 }, + 20 * 20, + (int) TierEU.RECIPE_UV, + 1); + // Bio Cells and Mutated Solder + CORE.RA.addQuantumTransformerRecipe( + new ItemStack[] { ItemList.Circuit_Chip_Stemcell.get(16), Materials.InfinityCatalyst.getDust(4), + ItemUtils.getSimpleStack(GenericChem.mBiologicalIntelligenceCatalyst, 0) }, + new FluidStack[] {}, + new FluidStack[] { MISC_MATERIALS.MUTATED_LIVING_SOLDER.getFluidStack(144 * 128), + Materials.BioMediumSterilized.getFluid(1000 * 256), Materials.BioMediumRaw.getFluid(1000 * 512) }, + new ItemStack[] { biocells }, + new int[] { 2500, 2500, 2500, 2500 }, + 20 * 20, + (int) TierEU.RECIPE_UIV, + 4); + + // Advanced Waterline skip (last 4 tiers) + CORE.RA.addQuantumTransformerRecipe( + new ItemStack[] { ItemUtils.getSimpleStack(GenericChem.mFlawlessWaterCatalyst, 0) }, + new FluidStack[] { Materials.Water.getFluid(40000L) }, + new FluidStack[] { Materials.Grade5PurifiedWater.getFluid(20000L), + Materials.Grade6PurifiedWater.getFluid(10000L), Materials.Grade7PurifiedWater.getFluid(5000L), + Materials.Grade8PurifiedWater.getFluid(1000L) }, + new ItemStack[] {}, + new int[] { 2500, 2500, 2500, 2500 }, + 20 * 20, + (int) TierEU.RECIPE_UIV, + 4); + + // Rare Particles + CORE.RA.addQuantumTransformerRecipe( + new ItemStack[] { ItemUtils.getSimpleStack(GenericChem.mSynchrotronCapableCatalyst, 0), + GregtechItemList.Laser_Lens_Special.get(1) }, + new FluidStack[] { FluidUtils.getFluidStack("plasma.hydrogen", 30000), Materials.Helium.getPlasma(30000L), + Materials.Americium.getPlasma(30000L), + new FluidStack(ELEMENT.STANDALONE.CELESTIAL_TUNGSTEN.getPlasma(), 30000) }, + new FluidStack[] {}, + new ItemStack[] { Particle.getBaseParticle(Particle.Z_BOSON), Particle.getBaseParticle(Particle.W_BOSON), + Particle.getBaseParticle(Particle.LAMBDA), Particle.getBaseParticle(Particle.OMEGA), + Particle.getBaseParticle(Particle.HIGGS_BOSON) }, + new int[] { 2000, 2000, 2000, 2000, 2000 }, + 200 * 20, + (int) TierEU.RECIPE_UIV, + 4); + + if (GalaxySpace.isModLoaded()) { + // Seaweed + ItemStack seaweed = GT_Utility + .copyAmountUnsafe(64 * 32, getModItem(GalaxySpace.ID, "tcetiedandelions", 1, 4)); + CORE.RA.addQuantumTransformerRecipe( + new ItemStack[] { GT_OreDictUnificator.get("cropSeaweed", 64), Materials.Mytryl.getDust(16), + ItemUtils.getSimpleStack(GenericChem.mAlgagenicGrowthPromoterCatalyst, 0) }, + new FluidStack[] { FluidUtils.getFluidStack("unknowwater", 25_000) }, + new FluidStack[] { FluidUtils.getFluidStack("seaweedbroth", 50_000), + FluidUtils.getFluidStack("iodine", 64_000) }, + new ItemStack[] { seaweed, getModItem(NewHorizonsCoreMod.ID, "item.TCetiESeaweedExtract", 16) }, + new int[] { 2_500, 2_500, 2_500, 2_500 }, + 20 * SECONDS, + (int) TierEU.RECIPE_UIV, + 4); + } + } + + private static void fusionReactorRecipes() { + GT_Values.RA.addFusionReactorRecipe( + new FluidStack[] { Materials.Radon.getPlasma(100), Materials.Nitrogen.getPlasma(100) }, + new FluidStack[] { new FluidStack(ELEMENT.getInstance().NEPTUNIUM.getPlasma(), 100) }, + 30 * 20, + (int) TierEU.RECIPE_UHV, + 1_000_000_000); + + GT_Values.RA.addFusionReactorRecipe( + new FluidStack[] { Materials.Americium.getPlasma(100), Materials.Boron.getPlasma(100) }, + new FluidStack[] { new FluidStack(ELEMENT.getInstance().FERMIUM.getPlasma(), 100) }, + 30 * 20, + (int) TierEU.RECIPE_UHV, + 1_000_000_000); + + // MK5 versions + GT_Values.RA.addFusionReactorRecipe( + new FluidStack[] { new FluidStack(ELEMENT.getInstance().XENON.getPlasma(), 288), + Materials.Yttrium.getMolten(288) }, + new FluidStack[] { new FluidStack(ELEMENT.getInstance().NEPTUNIUM.getPlasma(), 288) }, + 1 * SECONDS + 12 * TICKS, + (int) TierEU.RECIPE_UEV, + 1_000_000_000); + + GT_Values.RA.addFusionReactorRecipe( + new FluidStack[] { new FluidStack(ELEMENT.STANDALONE.FORCE.getPlasma(), 288), + Materials.Rubidium.getMolten(288) }, + new FluidStack[] { new FluidStack(ELEMENT.getInstance().FERMIUM.getPlasma(), 288) }, + 1 * SECONDS + 12 * TICKS, + (int) TierEU.RECIPE_UEV, + 1_000_000_000); + } + + private static void catalystRecipes() { + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedCircuit(10), CI.getEmptyCatalyst(1), + getModItem(BartWorks.ID, "gt.bwMetaGenerateddust", 64L, 88), Materials.Osmiridium.getDust(64), + Materials.Carbon.getNanite(64) }, + ELEMENT.STANDALONE.HYPOGEN.getFluidStack(360), + ItemUtils.getSimpleStack(GenericChem.mPlatinumGroupCatalyst, 1), + 60 * 20, + (int) TierEU.RECIPE_UEV); + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedCircuit(10), CI.getEmptyCatalyst(1), + Materials.Polybenzimidazole.getDust(64), Materials.Polytetrafluoroethylene.getDust(64), + Materials.Carbon.getNanite(64) }, + ELEMENT.STANDALONE.HYPOGEN.getFluidStack(360), + ItemUtils.getSimpleStack(GenericChem.mPlasticPolymerCatalyst, 1), + 60 * 20, + (int) TierEU.RECIPE_UEV); + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedCircuit(10), CI.getEmptyCatalyst(1), Materials.Silicone.getDust(64), + Materials.StyreneButadieneRubber.getDust(64), Materials.Carbon.getNanite(64) }, + ELEMENT.STANDALONE.HYPOGEN.getFluidStack(360), + ItemUtils.getSimpleStack(GenericChem.mRubberPolymerCatalyst, 1), + 60 * 20, + (int) TierEU.RECIPE_UEV); + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedCircuit(10), CI.getEmptyCatalyst(1), ALLOY.INDALLOY_140.getDust(64), + MISC_MATERIALS.ETHYL_CYANOACRYLATE.getCell(64), Materials.Carbon.getNanite(64) }, + ELEMENT.STANDALONE.HYPOGEN.getFluidStack(360), + ItemUtils.getSimpleStack(GenericChem.mAdhesionPromoterCatalyst, 1), + 60 * 20, + (int) TierEU.RECIPE_UHV); + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedCircuit(10), CI.getEmptyCatalyst(1), Materials.TungstenSteel.getDust(64), + Materials.Indium.getDust(64), Materials.Carbon.getNanite(64) }, + ELEMENT.STANDALONE.HYPOGEN.getFluidStack(360), + ItemUtils.getSimpleStack(GenericChem.mTitaTungstenIndiumCatalyst, 1), + 60 * 20, + (int) TierEU.RECIPE_UHV); + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedCircuit(10), CI.getEmptyCatalyst(1), + ELEMENT.getInstance().URANIUM235.getDust(64), ELEMENT.getInstance().PLUTONIUM241.getDust(64), + Materials.Carbon.getNanite(64) }, + ELEMENT.STANDALONE.HYPOGEN.getFluidStack(360), + ItemUtils.getSimpleStack(GenericChem.mRadioactivityCatalyst, 1), + 60 * 20, + (int) TierEU.RECIPE_UHV); + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedCircuit(10), CI.getEmptyCatalyst(1), Materials.Samarium.getDust(64), + Materials.Gadolinium.getDust(64), Materials.Silver.getNanite(1) }, + ELEMENT.STANDALONE.HYPOGEN.getFluidStack(9216), + ItemUtils.getSimpleStack(GenericChem.mRareEarthGroupCatalyst, 1), + 60 * 20, + (int) TierEU.RECIPE_UEV); + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedCircuit(10), CI.getEmptyCatalyst(1), + WerkstoffLoader.Hedenbergit.get(OrePrefixes.lens, 1), + GT_OreDictUnificator.get(OrePrefixes.nanite, Materials.Silver, 1, false), + ItemList.Circuit_Silicon_Wafer6.get(64) }, + ELEMENT.STANDALONE.HYPOGEN.getFluidStack(9216), + ItemUtils.getSimpleStack(GenericChem.mLimpidWaterCatalyst, 1), + 60 * 20, + (int) TierEU.RECIPE_UEV); + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedCircuit(10), CI.getEmptyCatalyst(1), Materials.Naquadah.getDust(64), + Materials.Adamantium.getDust(64), Materials.Silver.getNanite(1) }, + ELEMENT.STANDALONE.HYPOGEN.getFluidStack(9216), + ItemUtils.getSimpleStack(GenericChem.mSimpleNaquadahCatalyst, 1), + 60 * 20, + (int) TierEU.RECIPE_UEV); + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedCircuit(10), CI.getEmptyCatalyst(1), Materials.Naquadria.getDust(64), + Materials.Trinium.getDust(64), Materials.Gold.getNanite(1) }, + MaterialsUEVplus.SpaceTime.getMolten(9216L), + ItemUtils.getSimpleStack(GenericChem.mAdvancedNaquadahCatalyst, 1), + 60 * 20, + (int) TierEU.RECIPE_UIV); + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedCircuit(10), CI.getEmptyCatalyst(1), ItemList.Circuit_Chip_Stemcell.get(64), + Materials.Gold.getNanite(1) }, + MaterialsUEVplus.SpaceTime.getMolten(9216L), + ItemUtils.getSimpleStack(GenericChem.mRawIntelligenceCatalyst, 1), + 60 * 20, + (int) TierEU.RECIPE_UIV); + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedCircuit(10), CI.getEmptyCatalyst(1), + GregtechItemList.Laser_Lens_Special.get(64), + GT_ModHandler.getModItem(EternalSingularity.ID, "eternal_singularity", 10) }, + MaterialsUEVplus.SpaceTime.getMolten(9216L), + ItemUtils.getSimpleStack(GenericChem.mParticleAccelerationCatalyst, 1), + 60 * 20, + (int) TierEU.RECIPE_UIV); + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedCircuit(10), CI.getEmptyCatalyst(1), MaterialsKevlar.Kevlar.getDust(64), + MaterialsUEVplus.TranscendentMetal.getNanite(1) }, + FluidUtils.getFluidStack("molten.shirabon", 92160), + ItemUtils.getSimpleStack(GenericChem.mUltimatePlasticCatalyst, 1), + 60 * 20, + (int) TierEU.RECIPE_UMV); + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedCircuit(10), CI.getEmptyCatalyst(1), ItemList.Circuit_Chip_Biocell.get(64), + MaterialsUEVplus.TranscendentMetal.getNanite(1) }, + FluidUtils.getFluidStack("molten.shirabon", 92160), + ItemUtils.getSimpleStack(GenericChem.mBiologicalIntelligenceCatalyst, 1), + 60 * 20, + (int) TierEU.RECIPE_UMV); + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedCircuit(10), CI.getEmptyCatalyst(1), + WerkstoffLoader.Hedenbergit.get(OrePrefixes.lens, 64), + GT_OreDictUnificator.get(OrePrefixes.nanite, Materials.Silver, 64, false), + ItemList.Circuit_Silicon_Wafer6.get(64) }, + FluidUtils.getFluidStack("molten.shirabon", 92160), + ItemUtils.getSimpleStack(GenericChem.mFlawlessWaterCatalyst, 1), + 60 * 20, + (int) TierEU.RECIPE_UMV); + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedCircuit(10), CI.getEmptyCatalyst(1), + Particle.getBaseParticle(Particle.HIGGS_BOSON), Particle.getIon("Helium", 0), + Particle.getIon("Hydrogen", 0), MaterialsUEVplus.Eternity.getNanite(16) }, + FluidUtils.getFluidStack("molten.shirabon", 92160), + ItemUtils.getSimpleStack(GenericChem.mSynchrotronCapableCatalyst, 1), + 60 * 20, + (int) TierEU.RECIPE_UMV); + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { CI.getNumberedCircuit(10), CI.getEmptyCatalyst(1), + GT_OreDictUnificator.get("blockShirabon", 16), MaterialsUEVplus.Universium.getNanite(1), + ItemList.Timepiece.get(1) }, + Materials.DarkIron.getMolten(92160), + ItemUtils.getSimpleStack(GenericChem.TemporalHarmonyCatalyst, 1), + 60 * 20, + (int) TierEU.RECIPE_UXV); + + GT_Values.RA.stdBuilder() + .itemInputs( + CI.getNumberedCircuit(10), + CI.getEmptyCatalyst(1), + getModItem(NewHorizonsCoreMod.ID, "item.TCetiESeaweedExtract", 64), + GT_OreDictUnificator.get("dustIodine", 64), + MaterialsUEVplus.TranscendentMetal.getNanite(1)) + .itemOutputs(ItemUtils.getSimpleStack(GenericChem.mAlgagenicGrowthPromoterCatalyst, 1)) + .fluidInputs(FluidUtils.getFluidStack("molten.shirabon", 92_160)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_UMV) + .addTo(assemblerRecipes); + } + + private static void tieredCasingRecipes() { + TT_recipeAdder.addResearchableAssemblylineRecipe( + GregtechItemList.ForceFieldGlass.get(1), + 1024 * 30 * 20, + 1024, + (int) TierEU.RECIPE_ |
