From dda0f8bb1ed2211b2df492d7bd53751e47de305f Mon Sep 17 00:00:00 2001 From: GDCloud <93287602+GDCloudstrike@users.noreply.github.com> Date: Sun, 1 Sep 2024 19:59:32 +0200 Subject: Godforge continuation (#2950) * fix wrong offset * improve item insertion window * finish upgrade material functionality * add tooltip to material button * add rhugnor gear * half serious upgrade costs (will definitely change) * fix stocking hatch not working for fuel supply * add information window * add heat formula info * add autobuild hint dot info * add phonon related items and fluids * first iteration of glitchy material renderer * tweak renderer overlay opacity * add new material * add phononic seed crystal and six-phased copper block * add recipes for phonon transfer medium chain * add solenoid block replacement * add creon * decouple smelting module structure * spotless weirdness * add most casing recipes and late loading method (for the special singularities) * add new singularity recipes * more recipes * add glow * generate more dragonblood parts * add upgrade costs * fix upgrade tree window scrollable weirdness * forgor glow texture * add last upgrade text + a random comma * re-add phonon medium abs recipe * add six-phased copper nanite recipe * fix button overlay being off by 1 pixel * fix merge mishaps * forgot to adjust debug buttons * fix stocking bus fuel insertion and fuel int overflow * add graviton shard ejection * minor structure oopsie * ejection button registration * ejection button tooltip * add graviton shard item * eject the right item + save ejection status to nbt * fix input bus amount npe * change rendering block offset * adapt eoh rendering to allow changing the star's size * initial rendering changes (make the blue star render) * change seed crystal recipes * another small seed crystal change * adjust item renderer * add tooltips * circuit oredict fix * tooltips, upgrade names, some experimental ui changes and small fixes * author * make star bigger * fix recipes * remove unnecessary tooltips * spotless * recipe adjustments * make magneto resonatic block craftable * change magneto resonatic gem autoclave times + spotless * add structurecheck button to modules * more recipe adjustments * fix extra material crash * more recipe adjustments * lower eternal singularity amounts * display recipetimes <1 sec properly * try to fix hasShiftDown crash * adjust plasma module recipes * swap placeholder names * implement rings disappearing/reappearing for renderer * utility for structure strings * buff plasma module parallel * fix itemlist * Spotless apply for branch godforge for #2950 (#3013) spotlessApply Co-authored-by: GitHub GTNH Actions <> --------- Co-authored-by: Martin Robertz Co-authored-by: boubou19 Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .../ElectricImplosionCompressorRecipes.java | 45 +- .../processingLoaders/AdditionalRecipes.java | 4 +- .../java/com/github/technus/tectech/TecTech.java | 1 + .../github/technus/tectech/loader/MainLoader.java | 5 + .../technus/tectech/loader/recipe/Godforge.java | 117 +- .../loader/recipe/ResearchStationAssemblyLine.java | 361 ++++++ .../tectech/loader/thing/MachineLoader.java | 7 + .../tectech/recipe/GodforgePlasmaFrontend.java | 5 +- .../tectech/rendering/EOH/EOH_RenderingUtils.java | 16 +- .../technus/tectech/rendering/EOH/EOH_TESR.java | 2 +- .../technus/tectech/thing/CustomItemList.java | 13 +- .../tectech/thing/block/RenderForgeOfGods.java | 119 +- .../tectech/thing/block/TileForgeOfGods.java | 5 + .../thing/casing/GT_Item_Casings_Godforge.java | 12 + .../tectech/thing/casing/GodforgeCasings.java | 19 +- .../tectech/thing/gui/TecTechUITextures.java | 10 +- .../tectech/thing/item/RenderForgeOfGodsItem.java | 70 +- .../multi/ForgeOfGodsRingsStructureString.java | 4 + .../multi/ForgeOfGodsStructureString.java | 70 +- .../multi/GT_MetaTileEntity_EM_ForgeOfGods.java | 1179 ++++++++++++++++---- .../GT_MetaTileEntity_EM_BaseModule.java | 97 +- .../GT_MetaTileEntity_EM_ExoticModule.java | 31 +- .../GT_MetaTileEntity_EM_MoltenModule.java | 33 +- .../GT_MetaTileEntity_EM_PlasmaModule.java | 32 +- .../GT_MetaTileEntity_EM_SmeltingModule.java | 30 +- .../github/technus/tectech/util/GodforgeMath.java | 2 +- .../github/technus/tectech/util/TT_Utility.java | 20 + src/main/java/gregtech/api/enums/ItemList.java | 3 + src/main/java/gregtech/api/enums/Materials.java | 15 + .../java/gregtech/api/enums/MaterialsUEVplus.java | 160 +++ src/main/java/gregtech/api/enums/OrePrefixes.java | 8 +- src/main/java/gregtech/api/enums/Textures.java | 3 +- .../common/items/GT_MetaGenerated_Item_03.java | 10 + .../java/gregtech/common/items/ID_MetaItem_03.java | 5 +- .../common/render/items/GlitchEffectRenderer.java | 124 ++ .../loaders/postload/chains/GT_NaniteChain.java | 17 + .../loaders/postload/recipes/AssemblerRecipes.java | 26 + .../loaders/postload/recipes/AutoclaveRecipes.java | 19 + .../loaders/postload/recipes/BenderRecipes.java | 8 + .../postload/recipes/BlastFurnaceRecipes.java | 22 + .../postload/recipes/ChemicalBathRecipes.java | 12 + .../postload/recipes/CompressorRecipes.java | 9 + .../postload/recipes/FusionReactorRecipes.java | 9 + .../loaders/postload/recipes/MixerRecipes.java | 16 + .../postload/recipes/PlasmaForgeRecipes.java | 20 + .../recipes/TranscendentPlasmaMixerRecipes.java | 18 + .../postload/recipes/VacuumFreezerRecipes.java | 9 + .../preload/GT_Loader_Item_Block_And_Fluid.java | 20 +- src/main/java/gtPlusPlus/core/item/ModItems.java | 5 +- .../gtPlusPlus/core/recipe/RECIPES_GREGTECH.java | 18 + 50 files changed, 2332 insertions(+), 533 deletions(-) create mode 100644 src/main/java/gregtech/common/render/items/GlitchEffectRenderer.java (limited to 'src/main/java') diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/loaders/ElectricImplosionCompressorRecipes.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/loaders/ElectricImplosionCompressorRecipes.java index dfc3ab7e83..d616829fbd 100644 --- a/src/main/java/com/github/bartimaeusnek/bartworks/common/loaders/ElectricImplosionCompressorRecipes.java +++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/loaders/ElectricImplosionCompressorRecipes.java @@ -16,6 +16,7 @@ import static gregtech.api.enums.Mods.UniversalSingularities; import static gregtech.api.util.GT_ModHandler.getModItem; import static gregtech.api.util.GT_RecipeBuilder.MINUTES; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; import net.minecraft.item.ItemStack; @@ -26,6 +27,7 @@ import gregtech.api.enums.MaterialsUEVplus; import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.TierEU; import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; public class ElectricImplosionCompressorRecipes implements Runnable { @@ -43,7 +45,7 @@ public class ElectricImplosionCompressorRecipes implements Runnable { .noOptimize() .addTo(electricImplosionCompressorRecipes); - if (UniversalSingularities.isModLoaded()) + if (UniversalSingularities.isModLoaded()) { // Raw Exposed Optical Chip GT_Values.RA.stdBuilder() .itemInputs( @@ -55,6 +57,29 @@ public class ElectricImplosionCompressorRecipes implements Runnable { .eut(TierEU.RECIPE_UMV) .noOptimize() .addTo(electricImplosionCompressorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + // fluxed electrum singularity + getModItem(UniversalSingularities.ID, "universal.general.singularity", 1L, 20)) + .fluidInputs(MaterialsUEVplus.Mellion.getMolten(4 * 144L)) + // spaghettic singularity + .itemOutputs(getModItem(EternalSingularity.ID, "combined_singularity", 1L, 2)) + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_UMV) + .addTo(electricImplosionCompressorRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + // iron singularity + getModItem(Avaritia.ID, "Singularity", 1L, 0)) + .fluidInputs(MaterialsUEVplus.Creon.getMolten(4 * 144L)) + // cryptic singularity + .itemOutputs(getModItem(EternalSingularity.ID, "combined_singularity", 1L, 4)) + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_UMV) + .addTo(electricImplosionCompressorRecipes); + } } GT_Values.RA.stdBuilder() @@ -124,6 +149,24 @@ public class ElectricImplosionCompressorRecipes implements Runnable { .eut(TierEU.RECIPE_UIV) .noOptimize() .addTo(electricImplosionCompressorRecipes); + + // Copper Singularity + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Copper.getMolten(3648 * 9 * 144L)) + .itemOutputs(getModItem(Avaritia.ID, "Singularity", 1L, 5)) + .duration(1 * TICKS) + .eut(TierEU.RECIPE_UIV) + .addTo(electricImplosionCompressorRecipes); + + ItemStack diamondBlocks = GT_Utility + .copyAmountUnsafe(729, GT_OreDictUnificator.get(OrePrefixes.block, Materials.Diamond, 1L)); + // Diamond Singularity + GT_Values.RA.stdBuilder() + .itemInputs(diamondBlocks) + .itemOutputs(getModItem(UniversalSingularities.ID, "universal.vanilla.singularity", 1L, 2)) + .duration(1 * TICKS) + .eut(TierEU.RECIPE_UIV) + .addTo(electricImplosionCompressorRecipes); } // MHDCSM V2 GT_Values.RA.stdBuilder() diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/processingLoaders/AdditionalRecipes.java b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/processingLoaders/AdditionalRecipes.java index a1398f57e3..51398d2914 100644 --- a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/processingLoaders/AdditionalRecipes.java +++ b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/processingLoaders/AdditionalRecipes.java @@ -422,7 +422,7 @@ public class AdditionalRecipes { .itemOutputs(WerkstoffLoader.MagnetoResonaticDust.get(gemChipped, 9)) .outputChances(90_00) .fluidInputs(WerkstoffLoader.Neon.getFluidOrGas(1000)) - .duration(3 * MINUTES + 45 * SECONDS) + .duration(25 * SECONDS) .eut(TierEU.RECIPE_IV) .addTo(autoclaveRecipes); @@ -430,7 +430,7 @@ public class AdditionalRecipes { .itemInputs(WerkstoffLoader.MagnetoResonaticDust.get(dust)) .itemOutputs(WerkstoffLoader.MagnetoResonaticDust.get(gem)) .fluidInputs(WerkstoffLoader.Krypton.getFluidOrGas(1000)) - .duration(3 * MINUTES + 45 * SECONDS) + .duration(25 * SECONDS) .eut(TierEU.RECIPE_IV) .addTo(autoclaveRecipes); diff --git a/src/main/java/com/github/technus/tectech/TecTech.java b/src/main/java/com/github/technus/tectech/TecTech.java index c8946ec80d..c31f9a878d 100644 --- a/src/main/java/com/github/technus/tectech/TecTech.java +++ b/src/main/java/com/github/technus/tectech/TecTech.java @@ -113,6 +113,7 @@ public class TecTech { @SuppressWarnings("unused") public void onLoadCompleted(FMLLoadCompleteEvent event) { eyeOfHarmonyRecipeStorage = new EyeOfHarmonyRecipeStorage(); + MainLoader.onLoadCompleted(); } public static EyeOfHarmonyRecipeStorage eyeOfHarmonyRecipeStorage = null; diff --git a/src/main/java/com/github/technus/tectech/loader/MainLoader.java b/src/main/java/com/github/technus/tectech/loader/MainLoader.java index 01d63392e5..915b113fe9 100644 --- a/src/main/java/com/github/technus/tectech/loader/MainLoader.java +++ b/src/main/java/com/github/technus/tectech/loader/MainLoader.java @@ -18,6 +18,7 @@ import net.minecraftforge.fluids.FluidStack; import com.github.technus.tectech.TecTech; import com.github.technus.tectech.loader.gui.CreativeTabTecTech; import com.github.technus.tectech.loader.recipe.BaseRecipeLoader; +import com.github.technus.tectech.loader.recipe.ResearchStationAssemblyLine; import com.github.technus.tectech.loader.thing.CoverLoader; import com.github.technus.tectech.loader.thing.MachineLoader; import com.github.technus.tectech.loader.thing.ThingsLoader; @@ -199,4 +200,8 @@ public final class MainLoader { safeSetResistance(GameRegistry.findBlock("TwilightForest", "tile.TFDeadrock"), 5); } } + + public static void onLoadCompleted() { + new ResearchStationAssemblyLine().runLateRecipes(); + } } diff --git a/src/main/java/com/github/technus/tectech/loader/recipe/Godforge.java b/src/main/java/com/github/technus/tectech/loader/recipe/Godforge.java index a2dc61132d..80f10fc44f 100644 --- a/src/main/java/com/github/technus/tectech/loader/recipe/Godforge.java +++ b/src/main/java/com/github/technus/tectech/loader/recipe/Godforge.java @@ -3,7 +3,11 @@ package com.github.technus.tectech.loader.recipe; import static com.github.technus.tectech.recipe.TecTechRecipeMaps.godforgeExoticMatterRecipes; import static com.github.technus.tectech.recipe.TecTechRecipeMaps.godforgePlasmaRecipes; import static com.github.technus.tectech.util.GodforgeMath.getRandomIntInRange; +import static gregtech.api.enums.Mods.EternalSingularity; +import static gregtech.api.enums.Mods.GalaxySpace; +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 static gregtech.api.util.GT_RecipeConstants.FOG_EXOTIC_TIER; import static gregtech.api.util.GT_RecipeConstants.FOG_PLASMA_TIER; @@ -15,12 +19,21 @@ import java.util.List; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidStack; +import com.github.technus.tectech.thing.CustomItemList; + +import goodgenerator.items.MyMaterial; +import goodgenerator.util.ItemRefer; import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.MaterialsUEVplus; +import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.TierEU; +import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; +import gtPlusPlus.core.material.ALLOY; import gtPlusPlus.core.material.ELEMENT; +import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList; public class Godforge implements Runnable { @@ -29,6 +42,7 @@ public class Godforge implements Runnable { public static final HashMap exoticModulePlasmaItemMap = new HashMap<>(); public static final HashMap exoticModulePlasmaFluidMap = new HashMap<>(); public static final HashMap exoticModuleMagmatterItemMap = new HashMap<>(); + public static final HashMap godforgeUpgradeMats = new HashMap<>(); public static final List quarkGluonFluidItemsForNEI = new ArrayList<>(); public static final List quarkGluonItemsForNEI = new ArrayList<>(); public static final List magmatterTimeFluidItemsForNEI = new ArrayList<>(); @@ -112,7 +126,7 @@ public class Godforge implements Runnable { GT_Values.RA.stdBuilder() .itemInputs(solids_t0_1step[i]) .fluidOutputs(solid_plasmas_t0_1step[i]) - .duration(1 * SECONDS) + .duration(10 * TICKS) .eut(TierEU.RECIPE_MAX) .special(multistep) .metadata(FOG_PLASMA_TIER, 0) @@ -145,7 +159,7 @@ public class Godforge implements Runnable { GT_Values.RA.stdBuilder() .itemInputs(solids_t0_xstep[i]) .fluidOutputs(solid_plasmas_t0_xstep[i]) - .duration(3 * SECONDS) + .duration(2 * SECONDS) .eut(TierEU.RECIPE_MAX) .special(multistep) .metadata(FOG_PLASMA_TIER, 0) @@ -249,16 +263,16 @@ public class Godforge implements Runnable { // Fusion tier 1-3 { // Single step - FluidStack[] fluids_t0_1step = { Materials.Helium.getGas(1000), Materials.Nitrogen.getGas(1000), - Materials.Argon.getGas(1000), Materials.Chlorine.getGas(1000), Materials.Deuterium.getGas(1000), - Materials.Fluorine.getGas(1000), Materials.Hydrogen.getGas(1000), Materials.Radon.getGas(1000), - Materials.Tritium.getGas(1000), Materials.Mercury.getFluid(1000) }; - FluidStack[] fluid_plasmas_t0_1step = { Materials.Helium.getPlasma(1000), - Materials.Nitrogen.getPlasma(1000), Materials.Argon.getPlasma(1000), - Materials.Chlorine.getPlasma(1000), Materials.Deuterium.getPlasma(1000), - Materials.Fluorine.getPlasma(1000), Materials.Hydrogen.getPlasma(1000), - Materials.Radon.getPlasma(1000), Materials.Tritium.getPlasma(1000), - Materials.Mercury.getPlasma(1000) }; + FluidStack[] fluids_t0_1step = { Materials.Helium.getGas(500), Materials.Nitrogen.getGas(500), + Materials.Argon.getGas(500), Materials.Chlorine.getGas(500), Materials.Deuterium.getGas(500), + Materials.Fluorine.getGas(500), Materials.Hydrogen.getGas(500), Materials.Radon.getGas(500), + Materials.Tritium.getGas(500), Materials.Mercury.getFluid(500) }; + FluidStack[] fluid_plasmas_t0_1step = { Materials.Helium.getPlasma(500), + Materials.Nitrogen.getPlasma(500), Materials.Argon.getPlasma(500), + Materials.Chlorine.getPlasma(500), Materials.Deuterium.getPlasma(500), + Materials.Fluorine.getPlasma(500), Materials.Hydrogen.getPlasma(500), + Materials.Radon.getPlasma(500), Materials.Tritium.getPlasma(500), + Materials.Mercury.getPlasma(500) }; for (int i = 0; i < fluids_t0_1step.length; i++) { boolean multistep = false; @@ -274,12 +288,12 @@ public class Godforge implements Runnable { } // Multi-step - FluidStack[] fluids_t0_xstep = { ELEMENT.getInstance().NEON.getFluidStack(1000), - Materials.Oxygen.getGas(1000), ELEMENT.getInstance().KRYPTON.getFluidStack(1000), - ELEMENT.getInstance().XENON.getFluidStack(1000) }; - FluidStack[] fluid_plasmas_t0_xstep = { new FluidStack(ELEMENT.getInstance().NEON.getPlasma(), 1000), - Materials.Oxygen.getPlasma(1000), new FluidStack(ELEMENT.getInstance().KRYPTON.getPlasma(), 1000), - new FluidStack(ELEMENT.getInstance().XENON.getPlasma(), 1000) }; + FluidStack[] fluids_t0_xstep = { ELEMENT.getInstance().NEON.getFluidStack(500), + Materials.Oxygen.getGas(500), ELEMENT.getInstance().KRYPTON.getFluidStack(500), + ELEMENT.getInstance().XENON.getFluidStack(500) }; + FluidStack[] fluid_plasmas_t0_xstep = { new FluidStack(ELEMENT.getInstance().NEON.getPlasma(), 500), + Materials.Oxygen.getPlasma(500), new FluidStack(ELEMENT.getInstance().KRYPTON.getPlasma(), 500), + new FluidStack(ELEMENT.getInstance().XENON.getPlasma(), 500) }; for (int i = 0; i < fluids_t0_xstep.length; i++) { boolean multistep = true; @@ -577,5 +591,72 @@ public class Godforge implements Runnable { GT_Utility.getFluidDisplayStack(MaterialsUEVplus.Space.getMolten(getRandomIntInRange(51, 100)), true)); } magmatterItemsForNEI.addAll(exoticModuleMagmatterItemMap.keySet()); + + // Godforge upgrade materials + if (EternalSingularity.isModLoaded() && GalaxySpace.isModLoaded()) { + godforgeUpgradeMats.put( + 0, + new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.SuperconductorUIVBase, 64), + ItemList.SuperconductorComposite.get(32), + MyMaterial.metastableOganesson.get(OrePrefixes.gearGt, 16), + getModItem(EternalSingularity.ID, "eternal_singularity", 8L), ItemList.Robot_Arm_UIV.get(64L), + ItemList.Field_Generator_UEV.get(64L) }); + + godforgeUpgradeMats.put( + 5, + new ItemStack[] { GregtechItemList.Mega_AlloyBlastSmelter.get(16L), + ItemList.Casing_Coil_Hypogen.get(64L), + CustomItemList.Godforge_HarmonicPhononTransmissionConduit.get(32L), + getModItem(EternalSingularity.ID, "eternal_singularity", 16L), + ItemRefer.Field_Restriction_Coil_T3.get(48), ItemList.Robot_Arm_UIV.get(64L), + ItemList.Field_Generator_UEV.get(64L) }); + + godforgeUpgradeMats.put( + 7, + new ItemStack[] { CustomItemList.Godforge_StellarEnergySiphonCasing.get(8), + GregtechItemList.FusionComputer_UV3.get(8), GregtechItemList.Casing_Fusion_Internal2.get(64), + getModItem(GalaxySpace.ID, "item.DysonSwarmParts", 64, 3), ALLOY.QUANTUM.getPlateDense(48), + ELEMENT.STANDALONE.RHUGNOR.getGear(32), + getModItem(EternalSingularity.ID, "eternal_singularity", 16L), ItemList.Robot_Arm_UIV.get(64L), + ItemList.Field_Generator_UEV.get(64L) }); + + godforgeUpgradeMats.put( + 11, + new ItemStack[] { CustomItemList.Godforge_StellarEnergySiphonCasing.get(16), + ItemRefer.Compact_Fusion_MK5.get(2), ItemRefer.Compact_Fusion_Coil_T4.get(64), + CustomItemList.Godforge_HarmonicPhononTransmissionConduit.get(16), + ItemList.Machine_Multi_TranscendentPlasmaMixer.get(4), ELEMENT.STANDALONE.RHUGNOR.getGear(64), + GT_OreDictUnificator.get(OrePrefixes.gearGt, Materials.Ichorium, 64), + getModItem(EternalSingularity.ID, "eternal_singularity", 32L), ItemList.Robot_Arm_UIV.get(64L), + ItemList.Field_Generator_UEV.get(64L) }); + + godforgeUpgradeMats.put( + 26, + new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.frameGt, MaterialsUEVplus.SpaceTime, 64), + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.SuperconductorUMVBase, 64), + ELEMENT.STANDALONE.HYPOGEN.getFrameBox(64), ELEMENT.STANDALONE.DRAGON_METAL.getFrameBox(64), + CustomItemList.EOH_Reinforced_Spatial_Casing.get(64), + CustomItemList.EOH_Infinite_Energy_Casing.get(8), ItemList.ZPM6.get(4), + ItemList.Field_Generator_UMV.get(32) }); + + godforgeUpgradeMats.put( + 29, + new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.frameGt, MaterialsUEVplus.WhiteDwarfMatter, 64), + GT_OreDictUnificator.get(OrePrefixes.frameGt, MaterialsUEVplus.BlackDwarfMatter, 64), + GT_OreDictUnificator.get(OrePrefixes.frameGt, MaterialsUEVplus.Eternity, 16), + GT_OreDictUnificator.get(OrePrefixes.frameGt, MaterialsUEVplus.Universium, 4), + CustomItemList.EOH_Infinite_Energy_Casing.get(64), + CustomItemList.StabilisationFieldGeneratorTier5.get(16), ItemList.ZPM6.get(16), + ItemList.Field_Generator_UMV.get(64) }); + + godforgeUpgradeMats.put( + 30, + new ItemStack[] { CustomItemList.Machine_Multi_QuarkGluonPlasmaModule.get(32), + CustomItemList.Godforge_StellarEnergySiphonCasing.get(64), + CustomItemList.StabilisationFieldGeneratorTier6.get(48), + ItemList.Transdimensional_Alignment_Matrix.get(8), ItemList.ZPM6.get(16), + ItemList.Robot_Arm_UMV.get(64), ItemList.Conveyor_Module_UMV.get(64) }); + } + } } diff --git a/src/main/java/com/github/technus/tectech/loader/recipe/ResearchStationAssemblyLine.java b/src/main/java/com/github/technus/tectech/loader/recipe/ResearchStationAssemblyLine.java index dc5cf1c5ed..f9377143c4 100644 --- a/src/main/java/com/github/technus/tectech/loader/recipe/ResearchStationAssemblyLine.java +++ b/src/main/java/com/github/technus/tectech/loader/recipe/ResearchStationAssemblyLine.java @@ -13,6 +13,7 @@ import static gregtech.api.enums.Mods.EternalSingularity; import static gregtech.api.enums.Mods.ExtraUtilities; import static gregtech.api.enums.Mods.GTNHIntergalactic; import static gregtech.api.enums.Mods.GTPlusPlusEverglades; +import static gregtech.api.enums.Mods.GalacticraftAmunRa; import static gregtech.api.enums.Mods.GalaxySpace; import static gregtech.api.enums.Mods.GraviSuite; import static gregtech.api.enums.Mods.IndustrialCraft2; @@ -53,11 +54,15 @@ import com.github.bartimaeusnek.bartworks.common.loaders.ItemRegistry; import com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader; import com.github.technus.tectech.recipe.TT_recipeAdder; import com.github.technus.tectech.thing.CustomItemList; +import com.github.technus.tectech.thing.block.GodforgeGlassBlock; +import com.github.technus.tectech.thing.block.QuantumGlassBlock; import com.rwtema.extrautils.ExtraUtils; +import common.Blocks; import common.TileEntities; import fox.spiteful.avaritia.compat.ticon.Tonkers; import goodgenerator.items.MyMaterial; +import goodgenerator.util.ItemRefer; import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.MaterialsBotania; @@ -70,6 +75,8 @@ import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import gtPlusPlus.core.material.ALLOY; import gtPlusPlus.core.material.ELEMENT; +import gtPlusPlus.core.material.MISC_MATERIALS; +import gtPlusPlus.core.material.Particle; import gtPlusPlus.core.util.minecraft.FluidUtils; import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList; import tconstruct.tools.TinkerTools; @@ -86,6 +93,7 @@ public class ResearchStationAssemblyLine implements Runnable { itemPartsUMVAsslineRecipes(); itemPartsUXVAsslineRecipes(); addWirelessEnergyRecipes(); + addGodforgeRecipes(); if (TinkersGregworks.isModLoaded() && Avaritia.isModLoaded() // Infinity, Cosmic Neutronium && ExtraUtilities.isModLoaded() // Bedrockium @@ -2970,7 +2978,332 @@ public class ResearchStationAssemblyLine implements Runnable { CustomItemList.astralArrayFabricator.get(1), 300 * SECONDS, (int) TierEU.RECIPE_UXV); + } + + private void addGodforgeRecipes() { + if (EternalSingularity.isModLoaded()) { + // Controller + TT_recipeAdder.addResearchableAssemblylineRecipe( + CustomItemList.Godforge_StellarEnergySiphonCasing.get(1), + 48_000_000, + 8_192, + (int) TierEU.RECIPE_UMV, + 64, + new Object[] { CustomItemList.Godforge_StellarEnergySiphonCasing.get(4), ItemList.ZPM4.get(2), + ItemList.Casing_Dim_Bridge.get(64), getModItem(EternalSingularity.ID, "eternal_singularity", 32L), + GT_OreDictUnificator.get(OrePrefixes.plateDense, MaterialsUEVplus.Mellion, 16), + GT_OreDictUnificator.get(OrePrefixes.plateDense, MaterialsUEVplus.SixPhasedCopper, 16), + GT_OreDictUnificator.get(OrePrefixes.plateDense, MaterialsUEVplus.Creon, 16), + MyMaterial.metastableOganesson.get(OrePrefixes.plateDense, 16), + new ItemStack( + Particle.getBaseParticle(Particle.GRAVITON) + .getItem(), + 64), + GT_OreDictUnificator.get(OrePrefixes.wireGt16, Materials.SuperconductorUIV, 16), + ItemList.Sensor_UIV.get(32), GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.UIV, 64), + CustomItemList.eM_energyTunnel7_UIV.get(1), ItemRegistry.energyDistributor[11] }, + new FluidStack[] { MISC_MATERIALS.MUTATED_LIVING_SOLDER.getFluidStack(2048 * 144), + MaterialsUEVplus.ExcitedDTEC.getFluid(8_192_000), Materials.Thorium.getPlasma(256 * 144), + MaterialsUEVplus.TranscendentMetal.getMolten(2048 * 144) }, + CustomItemList.Machine_Multi_ForgeOfGods.get(1), + 300 * SECONDS, + (int) TierEU.RECIPE_UMV); + + } + + // Magnetic Confinement Casing + TT_recipeAdder.addResearchableAssemblylineRecipe( + GT_OreDictUnificator.get(OrePrefixes.frameGt, MaterialsUEVplus.TranscendentMetal, 1), + 48_000_000, + 8_192, + (int) TierEU.RECIPE_UMV, + 64, + new Object[] { GT_OreDictUnificator.get(OrePrefixes.frameGt, MaterialsUEVplus.TranscendentMetal, 8), + WerkstoffLoader.MagnetoResonaticDust.get(OrePrefixes.block, 16), + GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.TengamAttuned, 32), + GT_OreDictUnificator.get(OrePrefixes.plate, MaterialsUEVplus.Creon, 16), + ELEMENT.STANDALONE.HYPOGEN.getScrew(8), + GT_OreDictUnificator.get(OrePrefixes.screw, MaterialsUEVplus.SixPhasedCopper, 8), + ItemList.SuperconductorComposite.get(1), ItemList.Emitter_UIV.get(2), + ItemList.Electromagnet_Tengam.get(1) }, + new FluidStack[] { MISC_MATERIALS.MUTATED_LIVING_SOLDER.getFluidStack(16 * 144), + Materials.Plutonium241.getPlasma(16 * 144) }, + CustomItemList.Godforge_MagneticConfinementCasing.get(8), + 50 * SECONDS, + (int) TierEU.RECIPE_UIV); + + if (GalacticraftAmunRa.isModLoaded()) { + // Structure Casing + TT_recipeAdder.addResearchableAssemblylineRecipe( + CustomItemList.Godforge_MagneticConfinementCasing.get(1), + 48_000_000, + 8_192, + (int) TierEU.RECIPE_UMV, + 64, + new Object[] { GT_OreDictUnificator.get(OrePrefixes.frameGt, MaterialsUEVplus.Mellion, 16), + GT_OreDictUnificator.get(OrePrefixes.frameGt, MaterialsUEVplus.SixPhasedCopper, 16), + GT_OreDictUnificator.get(OrePrefixes.frameGt, MaterialsUEVplus.TranscendentMetal, 8), + ELEMENT.STANDALONE.ASTRAL_TITANIUM.getFrameBox(8), + GT_OreDictUnificator.get(OrePrefixes.plate, MaterialsUEVplus.Creon, 6), + new ItemStack( + Particle.getBaseParticle(Particle.GRAVITON) + .getItem(), + 8), + ItemList.Field_Generator_UEV.get(2), + // Artificial Gravity Generator + getModItem(GalacticraftAmunRa.ID, "tile.machines3", 4L, 1) }, + new FluidStack[] { MISC_MATERIALS.MUTATED_LIVING_SOLDER.getFluidStack(16 * 144), + Materials.Lead.getPlasma(2 * 144) }, + CustomItemList.Godforge_BoundlessStructureCasing.get(1), + 10 * SECONDS, + (int) TierEU.RECIPE_UIV); + } + + // Guidance Casing + TT_recipeAdder.addResearchableAssemblylineRecipe( + CustomItemList.Godforge_BoundlessStructureCasing.get(1), + 48_000_000, + 8_192, + (int) TierEU.RECIPE_UMV, + 64, + new Object[] { CustomItemList.Godforge_BoundlessStructureCasing.get(1), ItemList.ZPM2.get(1), + GregtechItemList.CosmicFabricManipulator.get(1), ItemList.Field_Generator_UEV.get(2), + ItemList.Emitter_UIV.get(3), GT_OreDictUnificator.get(OrePrefixes.plate, MaterialsUEVplus.Creon, 6), + GT_OreDictUnificator.get(OrePrefixes.gearGt, MaterialsUEVplus.Creon, 8), + GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, MaterialsUEVplus.Mellion, 8) }, + new FluidStack[] { MISC_MATERIALS.MUTATED_LIVING_SOLDER.getFluidStack(16 * 144), + Materials.Thorium.getPlasma(2 * 144) }, + CustomItemList.Godforge_GuidanceCasing.get(1), + 10 * SECONDS, + (int) TierEU.RECIPE_UIV); + + // Energy Siphon Casing + TT_recipeAdder.addResearchableAssemblylineRecipe( + CustomItemList.Godforge_GuidanceCasing.get(1), + 48_000_000, + 8_192, + (int) TierEU.RECIPE_UMV, + 64, + new Object[] { CustomItemList.Godforge_BoundlessStructureCasing.get(1), + ItemList.Casing_Coil_Hypogen.get(64), ItemList.Casing_Coil_Hypogen.get(64), + GT_OreDictUnificator.get(OrePrefixes.wireGt08, Materials.SuperconductorUIV, 32), + ItemList.neutroniumHeatCapacitor.get(1L), ItemList.neutroniumHeatCapacitor.get(1L), + ItemList.Reactor_Coolant_Sp_6.get(1L), ItemList.Reactor_Coolant_Sp_6.get(1L), + CustomItemList.eM_energyTunnel7_UIV.get(1), ItemList.Generator_Plasma_UV.get(64), + GT_OreDictUnificator.get(OrePrefixes.plateDense, MaterialsUEVplus.Creon, 6), + ELEMENT.STANDALONE.HYPOGEN.getPlate(6) }, + new FluidStack[] { MISC_MATERIALS.MUTATED_LIVING_SOLDER.getFluidStack(16 * 144), + Materials.SuperconductorUIVBase.getMolten(32 * 144L), MaterialsUEVplus.ExcitedDTEC.getFluid(128_000L) }, + CustomItemList.Godforge_StellarEnergySiphonCasing.get(1), + 10 * SECONDS, + (int) TierEU.RECIPE_UIV); + + // Gravitational Lens + TT_recipeAdder.addResearchableAssemblylineRecipe( + new ItemStack(QuantumGlassBlock.INSTANCE, 1), + 48_000_000, + 8_192, + (int) TierEU.RECIPE_UMV, + 64, + new Object[] { new ItemStack(QuantumGlassBlock.INSTANCE, 8), + new ItemStack(ItemRegistry.bw_glasses[1], 8, 0), GregtechItemList.ForceFieldGlass.get(8), + new ItemStack( + Particle.getBaseParticle(Particle.GRAVITON) + .getItem(), + 32), + getItemContainer("RadoxPolymerLens").get(6), getItemContainer("ChromaticLens").get(6), + getItemContainer("MysteriousCrystalLens").get(6), + WerkstoffLoader.MagnetoResonaticDust.get(OrePrefixes.lens, 6), + ELEMENT.STANDALONE.CHRONOMATIC_GLASS.getPlateDense(36), + GT_OreDictUnificator.get(OrePrefixes.stickLong, MaterialsUEVplus.Creon, 6), + GT_OreDictUnificator.get(OrePrefixes.stickLong, MaterialsUEVplus.Mellion, 6), + GT_OreDictUnificator.get(OrePrefixes.stickLong, MaterialsUEVplus.SixPhasedCopper, 6) }, + new FluidStack[] { ELEMENT.STANDALONE.RHUGNOR.getFluidStack(16 * 144), + MaterialsUEVplus.Creon.getMolten(16 * 144), + ELEMENT.STANDALONE.ADVANCED_NITINOL.getFluidStack(1024 * 144) }, + new ItemStack(GodforgeGlassBlock.INSTANCE, 1), + 10 * SECONDS, + (int) TierEU.RECIPE_UIV); + + // Graviton Modulator 1 + TT_recipeAdder.addResearchableAssemblylineRecipe( + GregtechItemList.Battery_Gem_4.get(1), + 48_000_000, + 8_192, + (int) TierEU.RECIPE_UMV, + 64, + new Object[] { CustomItemList.Godforge_MagneticConfinementCasing.get(2), + ItemRefer.Field_Restriction_Coil_T3.get(1), + GT_OreDictUnificator.get(OrePrefixes.plate, MaterialsUEVplus.Creon, 16), + GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, MaterialsUEVplus.Mellion, 8), + GregtechItemList.Battery_Gem_4.get(2), GregtechItemList.Laser_Lens_Special.get(4), + ItemList.Emitter_UIV.get(4), GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.UEV, 16), + GT_OreDictUnificator.get(OrePrefixes.nanite, Materials.Silver, 2) }, + new FluidStack[] { MISC_MATERIALS.MUTATED_LIVING_SOLDER.getFluidStack(32 * 144), + Materials.SuperconductorUIVBase.getMolten(32 * 144), Materials.Infinity.getMolten(32 * 144) }, + CustomItemList.Godforge_GravitonFlowModulatorTier1.get(2), + 10 * SECONDS, + (int) TierEU.RECIPE_UIV); + + // Graviton Modulator 2 + TT_recipeAdder.addResearchableAssemblylineRecipe( + CustomItemList.Godforge_GravitonFlowModulatorTier1.get(1), + 96_000_000, + 16_384, + (int) TierEU.RECIPE_UXV, + 128, + new Object[] { CustomItemList.Godforge_MagneticConfinementCasing.get(1), + ItemRefer.Field_Restriction_Coil_T4.get(1), + GT_OreDictUnificator.get(OrePrefixes.plateDense, MaterialsUEVplus.Creon, 8), + GT_OreDictUnificator.get(OrePrefixes.gearGt, MaterialsUEVplus.Mellion, 4), + GregtechItemList.Battery_Gem_4.get(4), GregtechItemList.Laser_Lens_Special.get(8), + ItemList.Emitter_UMV.get(4), GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.UMV, 8), + GT_OreDictUnificator.get(OrePrefixes.nanite, Materials.Silver, 2), + GT_OreDictUnificator.get(OrePrefixes.nanite, Materials.Gold, 2) }, + new FluidStack[] { MISC_MATERIALS.MUTATED_LIVING_SOLDER.getFluidStack(64 * 144), + Materials.SuperconductorUMVBase.getMolten(64 * 144), MaterialsUEVplus.SpaceTime.getMolten(64 * 144) }, + CustomItemList.Godforge_GravitonFlowModulatorTier2.get(1), + 10 * SECONDS, + (int) TierEU.RECIPE_UMV); + // Graviton Modulator 3 + TT_recipeAdder.addResearchableAssemblylineRecipe( + CustomItemList.Godforge_GravitonFlowModulatorTier2.get(1), + 192_000_000, + 32_768, + (int) TierEU.RECIPE_MAX, + 256, + new Object[] { CustomItemList.Godforge_MagneticConfinementCasing.get(1), + ItemRefer.Field_Restriction_Coil_T4.get(4), + GT_OreDictUnificator.get(OrePrefixes.plateDense, MaterialsUEVplus.Creon, 64), + GT_OreDictUnificator.get(OrePrefixes.gearGt, MaterialsUEVplus.Mellion, 64), + GregtechItemList.SpaceTimeContinuumRipper.get(8), GregtechItemList.Battery_Gem_4.get(8), + GregtechItemList.Laser_Lens_Special.get(8), ItemList.Emitter_UXV.get(4), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.UXV, 8), + GT_OreDictUnificator.get(OrePrefixes.nanite, Materials.Silver, 8), + GT_OreDictUnificator.get(OrePrefixes.nanite, Materials.Gold, 8), + GT_OreDictUnificator.get(OrePrefixes.nanite, MaterialsUEVplus.SixPhasedCopper, 8), + GT_OreDictUnificator.get(OrePrefixes.nanite, MaterialsUEVplus.Universium, 8) }, + new FluidStack[] { MISC_MATERIALS.MUTATED_LIVING_SOLDER.getFluidStack(256 * 144), + Materials.SuperconductorUMVBase.getMolten(256 * 144), + MaterialsUEVplus.WhiteDwarfMatter.getMolten(256 * 144), + MaterialsUEVplus.Eternity.getMolten(256 * 144) }, + CustomItemList.Godforge_GravitonFlowModulatorTier3.get(1), + 10 * SECONDS, + (int) TierEU.RECIPE_UXV); + + // Phonon Transmission Conduit + TT_recipeAdder.addResearchableAssemblylineRecipe( + ItemList.Relativistic_Heat_Capacitor.get(1), + 48_000_000, + 8_192, + (int) TierEU.RECIPE_UMV, + 64, + new Object[] { GT_OreDictUnificator.get(OrePrefixes.frameGt, MaterialsUEVplus.TranscendentMetal, 1), + GT_OreDictUnificator.get(OrePrefixes.stickLong, MaterialsUEVplus.Creon, 12), + new ItemStack(Blocks.tfftStorageField, 1, 9), ItemList.Tesseract.get(8), + ItemList.Relativistic_Heat_Capacitor.get(4), ItemList.Thermal_Superconductor.get(6), + ItemList.Field_Generator_UEV.get(4), + GT_OreDictUnificator.get(OrePrefixes.bolt, MaterialsUEVplus.SixPhasedCopper, 24) }, + new FluidStack[] { MISC_MATERIALS.MUTATED_LIVING_SOLDER.getFluidStack(64 * 144), + MaterialsUEVplus.PhononMedium.getFluid(1000), Materials.Plutonium241.getPlasma(16 * 144) }, + CustomItemList.Godforge_HarmonicPhononTransmissionConduit.get(1), + 10 * SECONDS, + (int) TierEU.RECIPE_UIV); + + ItemStack megaEBF = GT_Utility.copyAmount(64, ItemRegistry.megaMachines[0]); + + // Smelting Module Controller + TT_recipeAdder.addResearchableAssemblylineRecipe( + // mega ebf controller + ItemRegistry.megaMachines[0], + 48_000_000, + 8_192, + (int) TierEU.RECIPE_UMV, + 64, + new Object[] { CustomItemList.Godforge_SingularityShieldingCasing.get(4), megaEBF, + ItemList.Machine_Multi_Furnace.get(64), ItemList.ZPM4.get(1), + GT_OreDictUnificator.get(OrePrefixes.wireGt16, Materials.SuperconductorUIV, 16), + ItemList.Robot_Arm_UIV.get(16), ItemList.Conveyor_Module_UIV.get(32), + GT_OreDictUnificator.get(OrePrefixes.plateDense, MaterialsUEVplus.SixPhasedCopper, 16), + GT_OreDictUnificator.get(OrePrefixes.plateDense, MaterialsUEVplus.Creon, 8), + GT_OreDictUnificator.get(OrePrefixes.plateDense, MaterialsUEVplus.Mellion, 8), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.UIV, 32) }, + new FluidStack[] { MISC_MATERIALS.MUTATED_LIVING_SOLDER.getFluidStack(1024 * 144), + MaterialsUEVplus.ExcitedDTEC.getFluid(2_048_000), Materials.Lead.getPlasma(256 * 144), + MaterialsUEVplus.TranscendentMetal.getMolten(1024 * 144) }, + CustomItemList.Machine_Multi_SmeltingModule.get(1), + 300 * SECONDS, + (int) TierEU.RECIPE_UMV); + + // Molten Module Controller + TT_recipeAdder.addResearchableAssemblylineRecipe( + GregtechItemList.Mega_AlloyBlastSmelter.get(1), + 48_000_000, + 8_192, + (int) TierEU.RECIPE_UMV, + 64, + new Object[] { CustomItemList.Godforge_SingularityShieldingCasing.get(4), megaEBF, + GregtechItemList.Mega_AlloyBlastSmelter.get(64), ItemList.ZPM4.get(1), + GT_OreDictUnificator.get(OrePrefixes.wireGt16, Materials.SuperconductorUIV, 32), + ItemList.Robot_Arm_UIV.get(16), ItemList.Conveyor_Module_UIV.get(32), + ItemList.Electric_Pump_UIV.get(64), ItemList.Relativistic_Heat_Capacitor.get(8), + GT_OreDictUnificator.get(OrePrefixes.plateDense, MaterialsUEVplus.SixPhasedCopper, 16), + GT_OreDictUnificator.get(OrePrefixes.plateDense, MaterialsUEVplus.Creon, 8), + GT_OreDictUnificator.get(OrePrefixes.plateDense, MaterialsUEVplus.Mellion, 8), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.UIV, 32) }, + new FluidStack[] { MISC_MATERIALS.MUTATED_LIVING_SOLDER.getFluidStack(1024 * 144), + MaterialsUEVplus.ExcitedDTEC.getFluid(2_048_000), MaterialsUEVplus.PhononMedium.getFluid(32000), + MaterialsUEVplus.TranscendentMetal.getMolten(1024 * 144) }, + CustomItemList.Machine_Multi_MoltenModule.get(1), + 300 * SECONDS, + (int) TierEU.RECIPE_UMV); + + // Plasma Module Controller + TT_recipeAdder.addResearchableAssemblylineRecipe( + ItemList.FluidHeaterUIV.get(1), + 48_000_000, + 8_192, + (int) TierEU.RECIPE_UMV, + 64, + new Object[] { CustomItemList.Godforge_SingularityShieldingCasing.get(4), ItemList.FluidHeaterUIV.get(64), + GregtechItemList.FusionComputer_UV3.get(8), ItemList.ZPM4.get(1), + GT_OreDictUnificator.get(OrePrefixes.wireGt16, Materials.SuperconductorUIV, 32), + ItemList.Robot_Arm_UIV.get(16), ItemList.Conveyor_Module_UIV.get(32), + ItemList.Electric_Pump_UIV.get(64), ItemList.Relativistic_Heat_Capacitor.get(8), + GT_OreDictUnificator.get(OrePrefixes.plateDense, MaterialsUEVplus.SixPhasedCopper, 16), + GT_OreDictUnificator.get(OrePrefixes.plateDense, MaterialsUEVplus.Creon, 8), + GT_OreDictUnificator.get(OrePrefixes.plateDense, MaterialsUEVplus.Mellion, 8), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.UIV, 32) }, + new FluidStack[] { MISC_MATERIALS.MUTATED_LIVING_SOLDER.getFluidStack(1024 * 144), + MaterialsUEVplus.ExcitedDTEC.getFluid(2_048_000), MaterialsUEVplus.PhononMedium.getFluid(32000), + MaterialsUEVplus.TranscendentMetal.getMolten(1024 * 144) }, + CustomItemList.Machine_Multi_PlasmaModule.get(1), + 300 * SECONDS, + (int) TierEU.RECIPE_UMV); + + // Exotic Module Controller + TT_recipeAdder.addResearchableAssemblylineRecipe( + ItemList.Machine_Multi_TranscendentPlasmaMixer.get(1), + 48_000_000, + 8_192, + (int) TierEU.RECIPE_UMV, + 64, + new Object[] { CustomItemList.Godforge_SingularityShieldingCasing.get(4), + ItemList.Machine_Multi_TranscendentPlasmaMixer.get(4), ItemRefer.Compact_Fusion_MK5.get(1), + ItemList.ZPM4.get(4), GT_OreDictUnificator.get(OrePrefixes.wireGt16, Materials.SuperconductorUIV, 64), + ItemList.Robot_Arm_UIV.get(16), ItemList.Conveyor_Module_UIV.get(32), + ItemList.Electric_Pump_UIV.get(64), CustomItemList.Godforge_HarmonicPhononTransmissionConduit.get(8), + GT_OreDictUnificator.get(OrePrefixes.plateDense, MaterialsUEVplus.SixPhasedCopper, 32), + GT_OreDictUnificator.get(OrePrefixes.plateDense, MaterialsUEVplus.Creon, 16), + GT_OreDictUnificator.get(OrePrefixes.plateDense, MaterialsUEVplus.Mellion, 16), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.UIV, 64) }, + new FluidStack[] { MISC_MATERIALS.MUTATED_LIVING_SOLDER.getFluidStack(1024 * 144), + MaterialsUEVplus.ExcitedDTEC.getFluid(2_048_000), MaterialsUEVplus.PhononMedium.getFluid(64000), + MaterialsUEVplus.TranscendentMetal.getMolten(1024 * 144) }, + CustomItemList.Machine_Multi_QuarkGluonPlasmaModule.get(1), + 300 * SECONDS, + (int) TierEU.RECIPE_UMV); } private void addWirelessEnergyRecipes() { @@ -3340,4 +3673,32 @@ public class ResearchStationAssemblyLine implements Runnable { recipeEuPerTick); } } + + public void runLateRecipes() { + if (EternalSingularity.isModLoaded()) { + // Shielding Casing + TT_recipeAdder.addResearchableAssemblylineRecipe( + GT_OreDictUnificator.get(OrePrefixes.block, MaterialsUEVplus.TranscendentMetal, 1), + 48_000_000, + 8_192, + (int) TierEU.RECIPE_UMV, + 64, + new Object[] { GT_OreDictUnificator.get(OrePrefixes.frameGt, MaterialsUEVplus.SixPhasedCopper, 4), + GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.CosmicNeutronium, 16), + MyMaterial.tairitsu.get(OrePrefixes.plateDense, 16), + GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Infinity, 16), + GT_OreDictUnificator.get(OrePrefixes.plateDense, MaterialsUEVplus.TranscendentMetal, 8), + getModItem(EternalSingularity.ID, "combined_singularity", 1L, 2), + getModItem(EternalSingularity.ID, "combined_singularity", 1L, 4), + ItemRefer.Advanced_Radiation_Protection_Plate.get(64), + GT_OreDictUnificator.get(OrePrefixes.plate, MaterialsUEVplus.Mellion, 16), + GT_OreDictUnificator.get(OrePrefixes.plate, MaterialsUEVplus.Creon, 16), ALLOY.QUANTUM.getPlate(16), + ALLOY.ABYSSAL.getFrameBox(4) }, + new FluidStack[] { MISC_MATERIALS.MUTATED_LIVING_SOLDER.getFluidStack(128 * 144), + Materials.Bedrockium.getMolten(16_384 * 144), Materials.Neutronium.getMolten(2_048 * 144) }, + CustomItemList.Godforge_SingularityShieldingCasing.get(4), + 30 * SECONDS, + (int) TierEU.RECIPE_UIV); + } + } } diff --git a/src/main/java/com/github/technus/tectech/loader/thing/MachineLoader.java b/src/main/java/com/github/technus/tectech/loader/thing/MachineLoader.java index c7fd1bffe6..5c5005503b 100644 --- a/src/main/java/com/github/technus/tectech/loader/thing/MachineLoader.java +++ b/src/main/java/com/github/technus/tectech/loader/thing/MachineLoader.java @@ -308,6 +308,7 @@ import static com.github.technus.tectech.thing.CustomItemList.hatch_CreativeMain import static com.github.technus.tectech.thing.CustomItemList.hatch_CreativeUncertainty; import static com.github.technus.tectech.thing.CustomItemList.holder_Hatch; import static com.github.technus.tectech.thing.CustomItemList.rack_Hatch; +import static com.gtnewhorizon.gtnhlib.util.AnimatedTooltipHandler.addItemTooltip; import static gregtech.api.enums.GT_Values.V; import static gregtech.api.enums.MetaTileEntityIDs.ActiveTransformer; import static gregtech.api.enums.MetaTileEntityIDs.AdvancedTeslaTransceiver1by1; @@ -661,6 +662,7 @@ import com.github.technus.tectech.thing.metaTileEntity.single.GT_MetaTileEntity_ import com.github.technus.tectech.thing.metaTileEntity.single.GT_MetaTileEntity_OwnerDetector; import com.github.technus.tectech.thing.metaTileEntity.single.GT_MetaTileEntity_TeslaCoil; +import gregtech.api.enums.GT_Values; import gregtech.api.enums.MetaTileEntityIDs; /** @@ -2482,26 +2484,31 @@ public class MachineLoader implements Runnable { ForgeoftheGods.ID, "multimachine.em.forge_of_gods", "Forge of the Gods").getStackForm(1L)); + addItemTooltip(Machine_Multi_ForgeOfGods.get(1), GT_Values.AuthorCloud); Machine_Multi_SmeltingModule.set( new GT_MetaTileEntity_EM_SmeltingModule( HelioflarePowerForge.ID, "multimachine.em.smelting_module", "Helioflare Power Forge").getStackForm(1L)); + addItemTooltip(Machine_Multi_SmeltingModule.get(1), GT_Values.AuthorCloud); Machine_Multi_MoltenModule.set( new GT_MetaTileEntity_EM_MoltenModule( HeliofluxMeltingCore.ID, "multimachine.em.molten_module", "Helioflux Melting Core").getStackForm(1L)); + addItemTooltip(Machine_Multi_MoltenModule.get(1), GT_Values.AuthorCloud); Machine_Multi_PlasmaModule.set( new GT_MetaTileEntity_EM_PlasmaModule( HeliothermalPlasmaFabricator.ID, "multimachine.em.plasma_module", "Heliothermal Plasma Fabricator").getStackForm(1L)); + addItemTooltip(Machine_Multi_PlasmaModule.get(1), GT_Values.AuthorCloud); Machine_Multi_QuarkGluonPlasmaModule.set( new GT_MetaTileEntity_EM_ExoticModule( HeliofusionExoticizer.ID, "multimachine.em.exotic_module", "Heliofusion Exoticizer").getStackForm(1L)); + addItemTooltip(Machine_Multi_QuarkGluonPlasmaModule.get(1), GT_Values.AuthorCloud); } // =================================================================================================== diff --git a/src/main/java/com/github/technus/tectech/recipe/GodforgePlasmaFrontend.java b/src/main/java/com/github/technus/tectech/recipe/GodforgePlasmaFrontend.java index 8264c6a169..7cdf2bb5c1 100644 --- a/src/main/java/com/github/technus/tectech/recipe/GodforgePlasmaFrontend.java +++ b/src/main/java/com/github/technus/tectech/recipe/GodforgePlasmaFrontend.java @@ -64,7 +64,10 @@ public class GodforgePlasmaFrontend extends RecipeMapFrontend { recipeInfo.drawText(trans("152", "Total: ") + GT_Utility.formatNumbers(eut * duration) + " EU"); recipeInfo.drawText(trans("153", "Usage: ") + GT_Utility.formatNumbers(eut) + " EU/t"); - recipeInfo.drawText(trans("158", "Time: ") + GT_Utility.formatNumbers(duration / 20) + " secs"); + recipeInfo.drawText( + trans("158", "Time: ") + GT_Utility.formatNumbers(duration / 20d) + + " secs" + + (duration < 20 ? " (" + duration + " ticks)" : "")); recipeInfo.drawText(translateToLocal("gt.blockmachines.multimachine.FOG.plasmamultistep") + ": " + multistep); recipeInfo .drawText(translateToLocal("gt.blockmachines.multimachine.FOG.plasmarecipetier") + ": " + requiredUpgrade); diff --git a/src/main/java/com/github/technus/tectech/rendering/EOH/EOH_RenderingUtils.java b/src/main/java/com/github/technus/tectech/rendering/EOH/EOH_RenderingUtils.java index 3f72cacd77..582b695eb2 100644 --- a/src/main/java/com/github/technus/tectech/rendering/EOH/EOH_RenderingUtils.java +++ b/src/main/java/com/github/technus/tectech/rendering/EOH/EOH_RenderingUtils.java @@ -22,7 +22,7 @@ import cpw.mods.fml.client.FMLClientHandler; public abstract class EOH_RenderingUtils { - public static void renderStar(IItemRenderer.ItemRenderType type, Color color) { + public static void renderStar(IItemRenderer.ItemRenderType type, Color color, int size) { GL11.glPushMatrix(); if (type == IItemRenderer.ItemRenderType.INVENTORY) GL11.glRotated(180, 0, 1, 0); @@ -33,18 +33,18 @@ public abstract class EOH_RenderingUtils { } // Render star stuff. - renderStarLayer(0, STAR_LAYER_0, color, 1.0f); - renderStarLayer(1, STAR_LAYER_1, color, 0.4f); - renderStarLayer(2, STAR_LAYER_2, color, 0.2f); + renderStarLayer(0, STAR_LAYER_0, color, 1.0f, size); + renderStarLayer(1, STAR_LAYER_1, color, 0.4f, size); + renderStarLayer(2, STAR_LAYER_2, color, 0.2f, size); GL11.glPopMatrix(); } - public static void renderStar(IItemRenderer.ItemRenderType type) { - renderStar(type, new Color(1.0f, 0.4f, 0.05f, 1.0f)); + public static void renderStar(IItemRenderer.ItemRenderType type, int size) { + renderStar(type, new Color(1.0f, 0.4f, 0.05f, 1.0f), size); } - private static void renderStarLayer(int layer, ResourceLocation texture, Color color, float alpha) { + public static void renderStarLayer(int layer, ResourceLocation texture, Color color, float alpha, int size) { // Begin animation. GL11.glPushMatrix(); @@ -72,7 +72,7 @@ public abstract class EOH_RenderingUtils { // 0.01f magic number to shrink sphere obj down. // Size obtained from the multis current recipe. - float scale = 0.01f; + float scale = 0.01f * size; // Put each subsequent layer further out. scale *= pow(1.04f, layer); diff --git a/src/main/java/com/github/technus/tectech/rendering/EOH/EOH_TESR.java b/src/main/java/com/github/technus/tectech/rendering/EOH/EOH_TESR.java index da704a37ff..e4b7c50c93 100644 --- a/src/main/java/com/github/technus/tectech/rendering/EOH/EOH_TESR.java +++ b/src/main/java/com/github/technus/tectech/rendering/EOH/EOH_TESR.java @@ -49,7 +49,7 @@ public class EOH_TESR extends TileEntitySpecialRenderer { renderOrbitObjects(EOHRenderTile); // Render the star itself. - renderStar(IItemRenderer.ItemRenderType.INVENTORY); + renderStar(IItemRenderer.ItemRenderType.INVENTORY, 1); GL11.glPopAttrib(); GL11.glPopMatrix(); diff --git a/src/main/java/com/github/technus/tectech/thing/CustomItemList.java b/src/main/java/com/github/technus/tectech/thing/CustomItemList.java index 79e53e2239..58285080cc 100644 --- a/src/main/java/com/github/technus/tectech/thing/CustomItemList.java +++ b/src/main/java/com/github/technus/tectech/thing/CustomItemList.java @@ -451,15 +451,16 @@ public enum CustomItemList implements IItemContainer { StabilisationFieldGeneratorTier7, StabilisationFieldGeneratorTier8, - Godforge_Gravitational_Lens, - Godforge_Singularity_Shielding_Casing, - Godforge_Guidance_Casing, - Godforge_Boundless_Structure_Casing, - Godforge_Magnetic_Confinement_Casing, - Godforge_Stellar_Energy_Siphon_Casing, + Godforge_GravitationalLens, + Godforge_SingularityShieldingCasing, + Godforge_GuidanceCasing, + Godforge_BoundlessStructureCasing, + Godforge_MagneticConfinementCasing, + Godforge_StellarEnergySiphonCasing, Godforge_GravitonFlowModulatorTier1, Godforge_GravitonFlowModulatorTier2, Godforge_GravitonFlowModulatorTier3, + Godforge_HarmonicPhononTransmissionConduit, astralArrayFabricator; diff --git a/src/main/java/com/github/technus/tectech/thing/block/RenderForgeOfGods.java b/src/main/java/com/github/technus/tectech/thing/block/RenderForgeOfGods.java index 70314927f4..4da28875f9 100644 --- a/src/main/java/com/github/technus/tectech/thing/block/RenderForgeOfGods.java +++ b/src/main/java/com/github/technus/tectech/thing/block/RenderForgeOfGods.java @@ -1,7 +1,12 @@ package com.github.technus.tectech.thing.block; import static com.github.technus.tectech.Reference.MODID; -import static java.lang.Math.pow; +import static com.github.technus.tectech.rendering.EOH.EOH_RenderingUtils.renderStarLayer; +import static com.github.technus.tectech.rendering.EOH.EOH_TESR.STAR_LAYER_0; +import static com.github.technus.tectech.rendering.EOH.EOH_TESR.STAR_LAYER_1; +import static com.github.technus.tectech.rendering.EOH.EOH_TESR.STAR_LAYER_2; + +import java.awt.Color; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; @@ -11,120 +16,50 @@ import net.minecraftforge.client.model.IModelCustom; import org.lwjgl.opengl.GL11; -import cpw.mods.fml.client.FMLClientHandler; - public class RenderForgeOfGods extends TileEntitySpecialRenderer { - public static final ResourceLocation STAR_LAYER_0 = new ResourceLocation(MODID, "models/StarLayer0.png"); - public static final ResourceLocation STAR_LAYER_1 = new ResourceLocation(MODID, "models/StarLayer1.png"); - public static final ResourceLocation STAR_LAYER_2 = new ResourceLocation(MODID, "models/StarLayer2.png"); public static IModelCustom starModel; - private static IModelCustom spaceModel; - private static final float RED = 180 / 255f; - private static final float GREEN = 180 / 255f; - private static final float BLUE = 255 / 255f; public RenderForgeOfGods() { starModel = AdvancedModelLoader.loadModel(new ResourceLocation(MODID, "models/Star.obj")); - spaceModel = AdvancedModelLoader.loadModel(new ResourceLocation(MODID, "models/Space.obj")); } @Override public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float timeSinceLastTick) { if (!(tile instanceof TileForgeOfGods)) return; - TileForgeOfGods FOGRenderTile = (TileForgeOfGods) tile; - - // Render outer space layer. - { GL11.glPushMatrix(); GL11.glTranslated(x + 0.5, y + 0.5, z + 0.5); - renderOuterSpaceShell(); + GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_BLEND); - // Render star stuff. - renderStarLayer(FOGRenderTile, 0, STAR_LAYER_0, 1.0f); - renderStarLayer(FOGRenderTile, 1, STAR_LAYER_1, 0.4f); - renderStarLayer(FOGRenderTile, 2, STAR_LAYER_2, 0.2f); + // Innermost layer should be opaque + enableOpaqueColorInversion(); + renderStarLayer(0, STAR_LAYER_0, new Color(1.0f, 0.4f, 0.05f, 1.0f), 1.0f, 25); + disableOpaqueColorInversion(); + enablePseudoTransparentColorInversion(); + renderStarLayer(1, STAR_LAYER_1, new Color(1.0f, 0.4f, 0.05f, 1.0f), 0.4f, 25); + renderStarLayer(2, STAR_LAYER_2, new Color(1.0f, 0.4f, 0.05f, 1.0f), 0.2f, 25); + + GL11.glPopAttrib(); GL11.glPopMatrix(); } } - public static void renderOuterSpaceShell() { - - GL11.glPushMatrix(); - - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_BLEND); - - FMLClientHandler.instance() - .getClient() - .getTextureManager() - .bindTexture(new ResourceLocation(MODID, "models/spaceLayer.png")); - - final float scale = 0.01f * 17.5f; - GL11.glScalef(scale, scale, scale); - - GL11.glColor4f(222 / 255f, 243 / 255f, 250 / 255f, 255 / 255f); - - spaceModel.renderAll(); - GL11.glDisable(GL11.GL_BLEND); - GL11.glDepthMask(true); - GL11.glEnable(GL11.GL_LIGHTING); - - GL11.glPopMatrix(); + public static void enablePseudoTransparentColorInversion() { + GL11.glEnable(GL11.GL_COLOR_LOGIC_OP); + GL11.glLogicOp(GL11.GL_OR_INVERTED); } - private static final float STAR_RESCALE = 0.2f; - - private void renderStarLayer(TileForgeOfGods FOGRenderTile, int layer, ResourceLocation texture, float alpha) { - - GL11.glPushMatrix(); - - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - - FMLClientHandler.instance() - .getClient() - .getTextureManager() - .bindTexture(texture); - - // 0.01f magic number to shrink sphere obj down - float scale = 0.01f * STAR_RESCALE * FOGRenderTile.getRenderSize(); - - // Put each layer further out - scale *= pow(1.04f, layer); - - // Scale the star up in the x, y and z directions - GL11.glScalef(scale, scale, scale); - - switch (layer) { - case 0: - GL11.glRotatef(130, 0F, 1F, 1F); - break; - case 1: - GL11.glRotatef(-49, 1F, 1F, 0F); - break; - case 2: - GL11.glRotatef(67, 1F, 0F, 1F); - break; - } - - // Set color and alpha of the star layer - GL11.glColor4f(RED, GREEN, BLUE, alpha); - - // Spin the star - GL11.glRotatef((0.03f * FOGRenderTile.angle * FOGRenderTile.getRenderRotationSpeed()) % 360.0f, 0F, 0F, 1F); - - starModel.renderAll(); - GL11.glDisable(GL11.GL_BLEND); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glDepthMask(true); - GL11.glEnable(GL11.GL_LIGHTING); + public static void enableOpaqueColorInversion() { + GL11.glEnable(GL11.GL_COLOR_LOGIC_OP); + GL11.glLogicOp(GL11.GL_COPY_INVERTED); + } - GL11.glPopMatrix(); + public static void disableOpaqueColorInversion() { + GL11.glDisable(GL11.GL_COLOR_LOGIC_OP); } } diff --git a/src/main/java/com/github/technus/tectech/thing/block/TileForgeOfGods.java b/src/main/java/com/github/technus/tectech/thing/block/TileForgeOfGods.java index 0e0b536046..03109b4