From eabac50a47d1bd5eee62a9ac0aad9932e2ec997e Mon Sep 17 00:00:00 2001 From: NotAPenguin <michiel.vandeginste@gmail.com> Date: Sun, 1 Sep 2024 10:53:21 +0200 Subject: [PATCH 1/7] Fix T3 waterline producing aluminium (#3006) rebalance aluminium output for flocculation Co-authored-by: Martin Robertz <dream-master@gmx.net> --- .../loaders/postload/chains/GT_PurifiedWaterRecipes.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/gregtech/loaders/postload/chains/GT_PurifiedWaterRecipes.java b/src/main/java/gregtech/loaders/postload/chains/GT_PurifiedWaterRecipes.java index 53abc9d1b86..9aa13b3f338 100644 --- a/src/main/java/gregtech/loaders/postload/chains/GT_PurifiedWaterRecipes.java +++ b/src/main/java/gregtech/loaders/postload/chains/GT_PurifiedWaterRecipes.java @@ -155,9 +155,9 @@ public static void run() { // Diluted is twice what chem balance would suggest, but it is 2:1 with hydrochloric acid which makes it // correct I believe. GT_Values.RA.stdBuilder() - .fluidInputs(Materials.FlocculationWasteLiquid.getFluid(1000L)) - .itemOutputs(Materials.Aluminium.getDust(2)) - .fluidOutputs(Materials.Oxygen.getGas(3000L), Materials.DilutedHydrochloricAcid.getFluid(6000L)) + .fluidInputs(Materials.FlocculationWasteLiquid.getFluid(10000L)) + .itemOutputs(Materials.Aluminium.getDust(11)) + .fluidOutputs(Materials.Oxygen.getGas(29000L), Materials.DilutedHydrochloricAcid.getFluid(58000L)) .duration(1 * SECONDS) .eut(TierEU.RECIPE_EV) .addTo(distillationTowerRecipes); From 784fc5aaca22995a9652ca228484c1833c962db0 Mon Sep 17 00:00:00 2001 From: Luke Hohlin <luke@tctcl.dev> Date: Sun, 1 Sep 2024 14:12:58 +0200 Subject: [PATCH 2/7] Fix server crashing when trying to load MusicRecordDurations (#3008) * Fix server crashing when trying to load MusicRecordDurations * Use Loader.getConfigDir() instead of current working dir --------- Co-authored-by: Martin Robertz <dream-master@gmx.net> --- src/main/java/gregtech/api/util/GT_MusicSystem.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/gregtech/api/util/GT_MusicSystem.java b/src/main/java/gregtech/api/util/GT_MusicSystem.java index 3a171e0395d..7c0ec929e99 100644 --- a/src/main/java/gregtech/api/util/GT_MusicSystem.java +++ b/src/main/java/gregtech/api/util/GT_MusicSystem.java @@ -20,7 +20,6 @@ import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemRecord; import net.minecraft.item.ItemStack; -import net.minecraft.launchwrapper.Launch; import net.minecraft.util.ResourceLocation; import org.apache.commons.io.FileUtils; @@ -33,6 +32,7 @@ import com.jcraft.jorbis.VorbisFile; import baubles.api.BaublesApi; +import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.network.ByteBufUtils; import gregtech.GT_Mod; import gregtech.api.enums.GT_Values; @@ -628,8 +628,9 @@ public static Object2IntOpenHashMap<ResourceLocation> getMusicRecordDurations() final ArrayList<URL> candidates = Collections.list( GT_MusicSystem.class.getClassLoader() .getResources("soundmeta/durations.json")); - final Path configPath = Launch.minecraftHome.toPath() - .resolve("config") + final Path configPath = Loader.instance() + .getConfigDir() + .toPath() .resolve("soundmeta") .resolve("durations.json"); if (Files.exists(configPath)) { From 148ff2956dad2377e6043173ad8b33d6acbc6ac6 Mon Sep 17 00:00:00 2001 From: Nico Spiske <64710705+Nilau1998@users.noreply.github.com> Date: Sun, 1 Sep 2024 14:38:40 +0200 Subject: [PATCH 3/7] Add bee in courtesy to DaddyDiddy (#2507) * [major] new effect, comb, flower, mutation condition * [minor] imports * Update GT_BeeDefinition.java * [minor] fancier processing * [patch] bs * Update ItemComb.java * Update SifterRecipes.java * [minor] nuked machine booster effect * Added back the effect but now with tick throttling. Right now it is set so the effect only gets triggered every 30 seconds. * SA & BS * [minor] add dynamic authority * rename comb type and bee reduce speed to super speed * update bs + sa * changed to fastest because super speed was 2x blinding (wired naming) --------- Co-authored-by: Martin Robertz <dream-master@gmx.net> Co-authored-by: boubou19 <miisterunknown@gmail.com> --- dependencies.gradle | 20 ++- .../java/gregtech/api/enums/ItemList.java | 1 + .../java/gregtech/common/items/CombType.java | 2 +- .../items/GT_MetaGenerated_Item_01.java | 52 +++++++ .../java/gregtech/common/items/ItemComb.java | 11 ++ .../loaders/misc/GT_BeeDefinition.java | 29 +++- .../java/gregtech/loaders/misc/GT_Bees.java | 32 ++++- .../loaders/misc/bees/GT_AlleleEffect.java | 17 ++- .../misc/bees/GT_EffectMachineBoost.java | 61 ++++++++ .../misc/bees/GT_EffectTreeTwister.java | 5 +- .../loaders/misc/bees/GT_Flowers.java | 135 ++++++++++++++++++ .../postload/recipes/SifterRecipes.java | 14 ++ .../resources/assets/gregtech/lang/en_US.lang | 5 + .../textures/items/gt.metaitem.01/414.png | Bin 0 -> 272 bytes 14 files changed, 369 insertions(+), 15 deletions(-) create mode 100644 src/main/java/gregtech/loaders/misc/bees/GT_EffectMachineBoost.java create mode 100644 src/main/java/gregtech/loaders/misc/bees/GT_Flowers.java create mode 100644 src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/414.png diff --git a/dependencies.gradle b/dependencies.gradle index de7bc2c93f0..2dc0e7b0fb0 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -36,7 +36,7 @@ dependencies { api("com.github.GTNewHorizons:StructureLib:1.3.4:dev") api("net.industrial-craft:industrialcraft-2:2.2.828-experimental:dev") - api("com.github.GTNewHorizons:NotEnoughItems:2.6.30-GTNH:dev") + api("com.github.GTNewHorizons:NotEnoughItems:2.6.33-GTNH:dev") api("com.github.GTNewHorizons:NotEnoughIds:2.1.0:dev") api("com.github.GTNewHorizons:GTNHLib:0.4.8:dev") api("com.github.GTNewHorizons:ModularUI:1.2.0:dev") @@ -48,29 +48,35 @@ dependencies { api("com.github.GTNewHorizons:Postea:1.0.9:dev") compileOnlyApi('com.github.GTNewHorizons:ThaumicTinkerer:2.10.1:dev') - compileOnlyApi("com.github.GTNewHorizons:Mobs-Info:0.4.2-GTNH:dev") + compileOnlyApi("com.github.GTNewHorizons:Mobs-Info:0.4.5-GTNH:dev") compileOnlyApi("com.github.GTNewHorizons:Navigator:1.0.6:dev") implementation('com.github.GTNewHorizons:Baubles:1.0.4:dev') {transitive=false} // Required to prevent an older bauble api from Extra Utilities from loading first in the javac classpath compileOnly('com.github.GTNewHorizons:Baubles:1.0.4:dev') {transitive=false} + runtimeOnlyNonPublishable('com.github.GTNewHorizons:ForestryMC:4.9.10:dev') + runtimeOnlyNonPublishable('com.github.GTNewHorizons:neiaddons:1.16.0:dev') + runtimeOnlyNonPublishable('com.github.GTNewHorizons:MagicBees:2.8.2-GTNH:dev') + runtimeOnlyNonPublishable('com.github.GTNewHorizons:Binnie:2.4.1:dev') + runtimeOnlyNonPublishable('com.github.GTNewHorizons:EnderIO:2.8.17:dev') + devOnlyNonPublishable("com.github.GTNewHorizons:Infernal-Mobs:1.8.1-GTNH:dev") compileOnlyApi("com.github.GTNewHorizons:Avaritia:1.51:dev") // this is required because forestry is an hidden hard dep, revert this if you fixed the hidden hard dep - implementation("com.github.GTNewHorizons:ForestryMC:4.9.7:dev") { transitive = false } + implementation("com.github.GTNewHorizons:ForestryMC:4.9.10:dev") { transitive = false } compileOnlyApi('com.github.GTNewHorizons:Angelica:1.0.0-beta4:api') { transitive = false } compileOnlyApi("com.github.GTNewHorizons:AppleCore:3.3.0:dev") { transitive = false } compileOnlyApi("com.github.GTNewHorizons:BuildCraft:7.1.39:dev") { transitive = false } compileOnlyApi("com.github.GTNewHorizons:EnderIO:2.8.17:dev") { transitive = false } compileOnlyApi("com.github.GTNewHorizons:ProjectRed:4.10.2-GTNH:dev") { transitive = false } - compileOnlyApi("com.github.GTNewHorizons:Railcraft:9.15.11:dev") { transitive = false } + compileOnlyApi("com.github.GTNewHorizons:Railcraft:9.15.12:dev") { transitive = false } compileOnly("TGregworks:TGregworks:1.7.10-GTNH-1.0.26:deobf") {transitive = false} compileOnly("com.github.GTNewHorizons:ThaumicBases:1.7.5:dev") { transitive = false } compileOnly("com.github.GTNewHorizons:EnderCore:0.4.6:dev") { transitive = false } - compileOnly('com.github.GTNewHorizons:VisualProspecting:1.2.11:dev') { transitive = false } + compileOnly('com.github.GTNewHorizons:VisualProspecting:1.3.10:dev') { transitive = false } compileOnlyApi("com.github.GTNewHorizons:Galacticraft:3.2.1-GTNH:dev") { transitive = false } implementation("com.github.GTNewHorizons:TinkersConstruct:1.12.8-GTNH:dev") @@ -85,7 +91,7 @@ dependencies { compileOnly('com.github.GTNewHorizons:HoloInventory:2.4.12-GTNH:dev') { transitive = false } compileOnly rfg.deobf("curse.maven:extra-utilities-225561:2264384") compileOnly rfg.deobf('curse.maven:minefactory-reloaded-66672:2366150') - compileOnly("com.github.GTNewHorizons:OpenComputers:1.10.21-GTNH:dev") {transitive = false} + compileOnly("com.github.GTNewHorizons:OpenComputers:1.10.22-GTNH:dev") {transitive = false} // https://www.curseforge.com/minecraft/mc-mods/advancedsolarpanels compileOnlyApi rfg.deobf('curse.maven:advsolar-362768:2885953') compileOnly('com.github.GTNewHorizons:ThaumicEnergistics:1.6.22-GTNH:dev') {transitive = false} @@ -104,7 +110,7 @@ dependencies { annotationProcessor("com.google.auto.value:auto-value:1.10.1") // For testing iApiary - //runtimeOnlyNonPublishable("com.github.GTNewHorizons:ForestryMC:4.9.7:dev") + //runtimeOnlyNonPublishable("com.github.GTNewHorizons:ForestryMC:4.9.10:dev") testImplementation(platform('org.junit:junit-bom:5.9.2')) testImplementation('org.junit.jupiter:junit-jupiter') diff --git a/src/main/java/gregtech/api/enums/ItemList.java b/src/main/java/gregtech/api/enums/ItemList.java index e8033189062..a11bb7ea6e6 100644 --- a/src/main/java/gregtech/api/enums/ItemList.java +++ b/src/main/java/gregtech/api/enums/ItemList.java @@ -2067,6 +2067,7 @@ public enum ItemList implements IItemContainer { TierdDrone1, TierdDrone2, Hatch_DroneDownLink, + ElectronicsLump, Casing_Shielded_Accelerator, WormholeGenerator, Hatch_pHSensor, diff --git a/src/main/java/gregtech/common/items/CombType.java b/src/main/java/gregtech/common/items/CombType.java index d227c6c4ae2..84ca2fa4934 100644 --- a/src/main/java/gregtech/common/items/CombType.java +++ b/src/main/java/gregtech/common/items/CombType.java @@ -213,10 +213,10 @@ public enum CombType { ItemComb.Voltage.MV), PALLADIUM(164, "palladium", true, Materials.Palladium, 50, 0x8B8B8B, 0xF1D9D9, ItemComb.Voltage.MV), INFUSEDGOLD(165, "infused_gold", true, Materials.InfusedGold, 50, 0x80641E, 0xFFC83C, ItemComb.Voltage.IV), - // Additions to rare metals, moved here so we don't shift all comb IDs NEODYMIUM(166, "neodymium", true, Materials.Neodymium, 50, 0x555555, 0x4F4F4F, ItemComb.Voltage.HV), EUROPIUM(167, "europium", true, Materials.Europium, 10, 0xDAA0E2, 0xAB7EB1, ItemComb.Voltage.LuV), + MACHINIST(168, "machinist", true, Materials._NULL, 100, 0x552582, 0xFDB927, ItemComb.Voltage.MV), // ALWAYS KEEP _NULL AT THE BOTTOM _NULL(-1, "INVALIDCOMB", false, Materials._NULL, 0, 0, 0); diff --git a/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java b/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java index f7463ae5768..b7380d9efff 100644 --- a/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java +++ b/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java @@ -1676,6 +1676,58 @@ public GT_MetaGenerated_Item_01() { new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 512L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 512L))); + GT_ModHandler.addCraftingRecipe( + ItemList.Electric_Motor_LV.get(1L), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE + | GT_ModHandler.RecipeBits.REVERSIBLE, + new Object[] { "CWR", "WIW", "RWC", 'I', OrePrefixes.stick.get(Materials.IronMagnetic), 'R', + OrePrefixes.stick.get(Materials.AnyIron), 'W', OrePrefixes.wireGt01.get(Materials.AnyCopper), 'C', + OrePrefixes.cableGt01.get(Materials.Tin) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Electric_Motor_LV.get(1L), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE + | GT_ModHandler.RecipeBits.REVERSIBLE, + new Object[] { "CWR", "WIW", "RWC", 'I', OrePrefixes.stick.get(Materials.SteelMagnetic), 'R', + OrePrefixes.stick.get(Materials.Steel), 'W', OrePrefixes.wireGt01.get(Materials.AnyCopper), 'C', + OrePrefixes.cableGt01.get(Materials.Tin) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Electric_Motor_MV.get(1L), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE + | GT_ModHandler.RecipeBits.REVERSIBLE, + new Object[] { "CWR", "WIW", "RWC", 'I', OrePrefixes.stick.get(Materials.SteelMagnetic), 'R', + OrePrefixes.stick.get(Materials.Aluminium), 'W', OrePrefixes.wireGt02.get(Materials.Cupronickel), 'C', + OrePrefixes.cableGt01.get(Materials.AnyCopper) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Electric_Motor_HV.get(1L), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE + | GT_ModHandler.RecipeBits.REVERSIBLE, + new Object[] { "CWR", "WIW", "RWC", 'I', OrePrefixes.stick.get(Materials.SteelMagnetic), 'R', + OrePrefixes.stick.get(Materials.StainlessSteel), 'W', OrePrefixes.wireGt04.get(Materials.Electrum), 'C', + OrePrefixes.cableGt02.get(Materials.Silver) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Electric_Motor_EV.get(1L), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE + | GT_ModHandler.RecipeBits.REVERSIBLE, + new Object[] { "CWR", "WIW", "RWC", 'I', OrePrefixes.stick.get(Materials.NeodymiumMagnetic), 'R', + OrePrefixes.stick.get(Materials.Titanium), 'W', OrePrefixes.wireGt04.get(Materials.BlackSteel), 'C', + OrePrefixes.cableGt02.get(Materials.Aluminium) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Electric_Motor_IV.get(1L), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE + | GT_ModHandler.RecipeBits.REVERSIBLE, + new Object[] { "CWR", "WIW", "RWC", 'I', OrePrefixes.stick.get(Materials.NeodymiumMagnetic), 'R', + OrePrefixes.stick.get(Materials.TungstenSteel), 'W', OrePrefixes.wireGt04.get(Materials.Graphene), 'C', + OrePrefixes.cableGt02.get(Materials.Tungsten) }); + + ItemList.ElectronicsLump.set( + addItem( + 414, + "Lump of Electronics", + "How did they even produce this?", + new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L), + new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L), + new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 1L))); + ItemList.Tesseract.set( addItem( Tesseract.ID, diff --git a/src/main/java/gregtech/common/items/ItemComb.java b/src/main/java/gregtech/common/items/ItemComb.java index 0d86237c2e3..eaecd19f73d 100644 --- a/src/main/java/gregtech/common/items/ItemComb.java +++ b/src/main/java/gregtech/common/items/ItemComb.java @@ -5,7 +5,9 @@ import static gregtech.api.enums.GT_Values.NI; import static gregtech.api.enums.GT_Values.V; import static gregtech.api.enums.Mods.AE2FluidCraft; +import static gregtech.api.enums.Mods.ExtraBees; import static gregtech.api.enums.Mods.ExtraUtilities; +import static gregtech.api.enums.Mods.Forestry; import static gregtech.api.enums.Mods.GalaxySpace; import static gregtech.api.enums.Mods.GregTech; import static gregtech.api.enums.Mods.MagicBees; @@ -730,6 +732,15 @@ public void initCombsRecipes() { new int[] { 100 * 100 }, Voltage.LV); } + addCentrifugeToItemStack( + CombType.MACHINIST, + new ItemStack[] { GT_ModHandler.getModItem(Forestry.ID, "royalJelly", 1L, 0), + GT_ModHandler.getModItem(Forestry.ID, "pollen", 1L, 0), + GT_ModHandler.getModItem(Forestry.ID, "honeyDrop", 1L, 0), + GT_ModHandler.getModItem(ExtraBees.ID, "honeyDrop", 1L, 6), + GT_ModHandler.getModItem(Forestry.ID, "beeswax", 1L, 0), ItemList.ElectronicsLump.get(1) }, + new int[] { 10 * 100, 10 * 100, 20 * 100, 10 * 100, 20 * 100, 5 * 100 }, + Voltage.ULV); // Space Line addCentrifugeToItemStack( CombType.SPACE, diff --git a/src/main/java/gregtech/loaders/misc/GT_BeeDefinition.java b/src/main/java/gregtech/loaders/misc/GT_BeeDefinition.java index ec737822386..87292ced623 100644 --- a/src/main/java/gregtech/loaders/misc/GT_BeeDefinition.java +++ b/src/main/java/gregtech/loaders/misc/GT_BeeDefinition.java @@ -103,6 +103,7 @@ import gregtech.common.items.CombType; import gregtech.common.items.DropType; import gregtech.common.items.PropolisType; +import gregtech.loaders.misc.bees.GT_Flowers; /** * Bride Class for Lambdas @@ -1661,6 +1662,26 @@ public void accept(GT_BeeDefinition dis) { tMutation.requireResource(GameRegistry.findBlock(ExtraCells2.ID, "walrus"), 0); } }), + MACHINIST(GT_BranchDefinition.ORGANIC, "Machinist", true, new Color(85, 37, 130), new Color(253, 185, 39), + beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.MACHINIST), 0.2f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(NORMAL); + beeSpecies.setHasEffect(); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.FASTEST); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.LONGEST); + AlleleHelper.instance.set(template, TEMPERATURE_TOLERANCE, Tolerance.BOTH_1); + AlleleHelper.instance.set(template, HUMIDITY_TOLERANCE, Tolerance.BOTH_1); + AlleleHelper.instance.set(template, NOCTURNAL, true); + AlleleHelper.instance.set(template, FLOWER_PROVIDER, GT_Flowers.FLAMING); + AlleleHelper.instance.set(template, FERTILITY, Fertility.MAXIMUM); + AlleleHelper.instance.set(template, EFFECT, getEffect(GREGTECH, "MachineBoost")); + }, dis -> { + IBeeMutationCustom tMutation = dis + .registerMutation(getSpecies(FORESTRY, "Industrious"), getSpecies(FORESTRY, "Imperial"), 1); + tMutation.addMutationCondition(new GT_Bees.ActiveGTMachineMutationCondition()); + }), // Space Bees SPACE(GT_BranchDefinition.SPACE, "Space", true, new Color(0x003366), new Color(0xC0C0C0), beeSpecies -> { beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SPACE), 0.02f); @@ -2655,16 +2676,20 @@ public void accept(GT_BeeDefinition dis) { String species = WordUtils.capitalize(lowercaseName); String uid = "gregtech.bee.species" + species; - String description = "for.description." + species; + String description = "for.description." + lowercaseName; String name = "for.bees.species." + lowercaseName; GT_LanguageManager.addStringLocalization("for.bees.species." + lowercaseName, species); + String authority = GT_LanguageManager.getTranslation("for.bees.authority." + lowercaseName); + if (authority.equals("for.bees.authority." + lowercaseName)) { + authority = "GTNH"; + } this.branch = branch; this.species = new GT_AlleleBeeSpecies( uid, dominant, name, - "GTNH", + authority, description, branch.getBranch(), binomial, diff --git a/src/main/java/gregtech/loaders/misc/GT_Bees.java b/src/main/java/gregtech/loaders/misc/GT_Bees.java index 497105d75c9..a8246360cf1 100644 --- a/src/main/java/gregtech/loaders/misc/GT_Bees.java +++ b/src/main/java/gregtech/loaders/misc/GT_Bees.java @@ -4,6 +4,7 @@ import static gregtech.api.enums.Mods.GalaxySpace; import static gregtech.api.enums.Mods.TwilightForest; +import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraft.world.biome.BiomeGenBase; @@ -20,13 +21,16 @@ import forestry.core.genetics.alleles.Allele; import forestry.core.utils.StringUtil; import gregtech.GT_Mod; +import gregtech.api.metatileentity.BaseMetaTileEntity; import gregtech.common.bees.GT_AlleleHelper; import gregtech.common.items.ItemComb; import gregtech.common.items.ItemDrop; import gregtech.common.items.ItemPollen; import gregtech.common.items.ItemPropolis; import gregtech.loaders.misc.bees.GT_AlleleEffect; +import gregtech.loaders.misc.bees.GT_EffectMachineBoost; import gregtech.loaders.misc.bees.GT_EffectTreeTwister; +import gregtech.loaders.misc.bees.GT_Flowers; public class GT_Bees { @@ -47,6 +51,7 @@ public class GT_Bees { public static IAlleleInteger superLife; public static IAlleleBeeEffect treetwisterEffect; + public static IAlleleBeeEffect machineBoostEffect; public static ItemPropolis propolis; public static ItemPollen pollen; @@ -57,7 +62,7 @@ public GT_Bees() { if (!(Forestry.isModLoaded() && GT_Mod.gregtechproxy.mGTBees)) { return; } - + GT_Flowers.doInit(); GT_AlleleHelper.initialisation(); setupGTAlleles(); propolis = new ItemPropolis(); @@ -91,6 +96,7 @@ private static void setupGTAlleles() { blinkLife = new AlleleInteger("lifeBlink", 2, false, EnumBeeChromosome.LIFESPAN); superLife = new AlleleInteger("lifeEon", 600, false, EnumBeeChromosome.LIFESPAN); + machineBoostEffect = new GT_EffectMachineBoost(); if (GalaxySpace.isModLoaded() && TwilightForest.isModLoaded()) { GT_Mod.GT_FML_LOGGER.info("treetwisterEffect: GalaxySpace and TwilightForest loaded, using default impl"); @@ -198,4 +204,28 @@ public String getDescription() { return ""; } } + + public static class ActiveGTMachineMutationCondition implements IMutationCondition { + + public ActiveGTMachineMutationCondition() { + + } + + @Override + public float getChance(World world, int x, int y, int z, IAllele allele0, IAllele allele1, IGenome genome0, + IGenome genome1, IClimateProvider climate) { + TileEntity tileEntity = world.getTileEntity(x, y - 1, z); + if (tileEntity instanceof BaseMetaTileEntity machine) { + if (machine.isActive()) { + return 1; + } + } + return 0; + } + + @Override + public String getDescription() { + return "Needs a running GT Machine below to breed"; + } + } } diff --git a/src/main/java/gregtech/loaders/misc/bees/GT_AlleleEffect.java b/src/main/java/gregtech/loaders/misc/bees/GT_AlleleEffect.java index bb0d9eef8bc..25198968d25 100644 --- a/src/main/java/gregtech/loaders/misc/bees/GT_AlleleEffect.java +++ b/src/main/java/gregtech/loaders/misc/bees/GT_AlleleEffect.java @@ -14,11 +14,13 @@ public abstract class GT_AlleleEffect extends Allele implements IAlleleBeeEffect public static final IAlleleBeeEffect FORESTRY_BASE_EFFECT = (IAlleleBeeEffect) AlleleManager.alleleRegistry .getAllele("forestry.effectNone"); protected boolean combinable; + protected int tickThrottle; // If set, this amount of ticks have to pass before an effect ticks - public GT_AlleleEffect(String id, boolean isDominant) { + public GT_AlleleEffect(String id, boolean isDominant, int tickThrottle) { super("gregtech." + id, "gregtech." + id, isDominant); AlleleManager.alleleRegistry.registerAllele(this, EnumBeeChromosome.EFFECT); combinable = false; + this.tickThrottle = tickThrottle; } @Override @@ -35,7 +37,18 @@ public GT_AlleleEffect setIsCombinable(boolean canCombine) { public abstract IEffectData validateStorage(IEffectData storedData); @Override - public abstract IEffectData doEffect(IBeeGenome genome, IEffectData storedData, IBeeHousing housing); + public IEffectData doEffect(IBeeGenome genome, IEffectData storedData, IBeeHousing housing) { + int ticksPassed = storedData.getInteger(0); + if (ticksPassed >= this.tickThrottle) { + storedData = this.doEffectTickThrottled(genome, storedData, housing); + } else { + storedData.setInteger(0, ticksPassed + 1); + } + return storedData; + } + + protected abstract IEffectData doEffectTickThrottled(IBeeGenome genome, IEffectData storedData, + IBeeHousing housing); @Override public IEffectData doFX(IBeeGenome genome, IEffectData storedData, IBeeHousing housing) { diff --git a/src/main/java/gregtech/loaders/misc/bees/GT_EffectMachineBoost.java b/src/main/java/gregtech/loaders/misc/bees/GT_EffectMachineBoost.java new file mode 100644 index 00000000000..a50c0452bb4 --- /dev/null +++ b/src/main/java/gregtech/loaders/misc/bees/GT_EffectMachineBoost.java @@ -0,0 +1,61 @@ +package gregtech.loaders.misc.bees; + +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChunkCoordinates; +import net.minecraft.world.World; + +import forestry.api.apiculture.BeeManager; +import forestry.api.apiculture.IBeeGenome; +import forestry.api.apiculture.IBeeHousing; +import forestry.api.apiculture.IBeeModifier; +import forestry.api.genetics.IEffectData; +import forestry.core.genetics.EffectData; +import gregtech.api.metatileentity.BaseMetaTileEntity; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_TieredMachineBlock; + +public class GT_EffectMachineBoost extends GT_AlleleEffect { + + public GT_EffectMachineBoost() { + super("effectMachineBoost", false, 600); + } + + @Override + public IEffectData validateStorage(IEffectData storedData) { + if (storedData == null) { + storedData = new EffectData(1, 1); + } + return storedData; + } + + @Override + protected IEffectData doEffectTickThrottled(IBeeGenome genome, IEffectData storedData, IBeeHousing housing) { + World world = housing.getWorld(); + ChunkCoordinates coords = housing.getCoordinates(); + IBeeModifier beeModifier = BeeManager.beeRoot.createBeeHousingModifier(housing); + + // Get random coords within territory + int xRange = (int) (beeModifier.getTerritoryModifier(genome, 1f) * genome.getTerritory()[0]); + int yRange = (int) (beeModifier.getTerritoryModifier(genome, 1f) * genome.getTerritory()[1]); + int zRange = (int) (beeModifier.getTerritoryModifier(genome, 1f) * genome.getTerritory()[2]); + + int xCoord = coords.posX + world.rand.nextInt(xRange) - xRange / 2; + int yCoord = coords.posY + world.rand.nextInt(yRange) - yRange / 2; + int zCoord = coords.posZ + world.rand.nextInt(zRange) - zRange / 2; + + // If gt machine of tier lower equal than ev, boost recipe by 2s + TileEntity tileEntity = world.getTileEntity(xCoord, yCoord, zCoord); + if (tileEntity instanceof BaseMetaTileEntity machine) { + if (machine.getMetaTileEntity() instanceof GT_MetaTileEntity_TieredMachineBlock tieredMachine) { + if (tieredMachine.mTier <= 4) { // EV + if (machine.isActive() && machine.getMaxProgress() > 60) { + machine.increaseProgress(40); + } + } + } + } + + storedData.setInteger(0, 0); + + return storedData; + } +} diff --git a/src/main/java/gregtech/loaders/misc/bees/GT_EffectTreeTwister.java b/src/main/java/gregtech/loaders/misc/bees/GT_EffectTreeTwister.java index d188a3eb9b3..a36635db57f 100644 --- a/src/main/java/gregtech/loaders/misc/bees/GT_EffectTreeTwister.java +++ b/src/main/java/gregtech/loaders/misc/bees/GT_EffectTreeTwister.java @@ -40,14 +40,15 @@ public class GT_EffectTreeTwister extends GT_AlleleEffect { } public GT_EffectTreeTwister() { - super("effectTreetwister", false); + super("effectTreetwister", false, 0); } public IEffectData validateStorage(IEffectData storedData) { return storedData; // unused for this effect } - public IEffectData doEffect(IBeeGenome genome, IEffectData storedData, IBeeHousing housing) { + @Override + protected IEffectData doEffectTickThrottled(IBeeGenome genome, IEffectData storedData, IBeeHousing housing) { if (TF_TRANS_SAPLING == null || BARN_SAPLING == null) { return storedData; } diff --git a/src/main/java/gregtech/loaders/misc/bees/GT_Flowers.java b/src/main/java/gregtech/loaders/misc/bees/GT_Flowers.java new file mode 100644 index 00000000000..d2ab1d6297a --- /dev/null +++ b/src/main/java/gregtech/loaders/misc/bees/GT_Flowers.java @@ -0,0 +1,135 @@ +package gregtech.loaders.misc.bees; + +import java.util.EnumSet; +import java.util.HashSet; +import java.util.Set; + +import net.minecraft.block.Block; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; +import net.minecraftforge.common.EnumPlantType; + +import forestry.api.apiculture.FlowerManager; +import forestry.api.genetics.AlleleManager; +import forestry.api.genetics.IAllele; +import forestry.api.genetics.IAlleleFlowers; +import forestry.api.genetics.IChromosomeType; +import forestry.api.genetics.IFlower; +import forestry.api.genetics.IFlowerProvider; +import forestry.api.genetics.IIndividual; +import forestry.api.genetics.IPollinatable; +import forestry.api.genetics.ISpeciesRoot; +import gregtech.api.util.GT_LanguageManager; + +public enum GT_Flowers implements IFlowerProvider, IAlleleFlowers, IChromosomeType { + + FLAMING; + + protected boolean dominant; + + GT_Flowers() { + dominant = true; + } + + public static void doInit() { + for (GT_Flowers effect : values()) { + effect.register(); + } + } + + @Override + public String getUID() { + return "for.flowers." + toString().toLowerCase(); + } + + @Override + public boolean isDominant() { + return dominant; + } + + @Override + public IFlowerProvider getProvider() { + return this; + } + + @Override + public String getDescription() { + return GT_LanguageManager.getTranslation("for.flowers." + name().toLowerCase()); + } + + public void register() { + for (ItemStack stack : getItemStacks()) { + FlowerManager.flowerRegistry.registerAcceptableFlower(Block.getBlockFromItem(stack.getItem()), getUID()); + } + + AlleleManager.alleleRegistry.registerAllele(this, this); + } + + public ItemStack[] getItemStacks() { + switch (this) { + case FLAMING: + return new ItemStack[] { new ItemStack(Blocks.fire) }; + } + return new ItemStack[0]; + } + + @Override + public boolean isAcceptedPollinatable(World world, IPollinatable pollinatable) { + EnumSet<EnumPlantType> types = pollinatable.getPlantType(); + return types.size() > 1 || !types.contains(EnumPlantType.Nether); + } + + public boolean isAcceptedFlower(World world, int x, int y, int z) { + Block block = world.getBlock(x, y, z); + if (block == null) { + return false; + } + + switch (this) { + case FLAMING: + return block == Blocks.fire; + } + return false; + } + + @Override + public boolean growFlower(World world, IIndividual individual, int x, int y, int z) { + return false; + } + + @Override + public ItemStack[] affectProducts(World world, IIndividual individual, int x, int y, int z, ItemStack[] products) { + return products; + } + + @Override + public String getName() { + return getDescription(); + } + + @Override + public String getUnlocalizedName() { + return getUID(); + } + + @Override + public String getFlowerType() { + return getUID(); + } + + @Override + public Set<IFlower> getFlowers() { + return new HashSet<>(); + } + + @Override + public Class<? extends IAllele> getAlleleClass() { + return getClass(); + } + + @Override + public ISpeciesRoot getSpeciesRoot() { + return AlleleManager.alleleRegistry.getSpeciesRoot(getUID()); + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/SifterRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/SifterRecipes.java index 8d3614d76a0..3a34cc35363 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/SifterRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/SifterRecipes.java @@ -1,6 +1,9 @@ package gregtech.loaders.postload.recipes; +import static gregtech.api.enums.Mods.EnderIO; +import static gregtech.api.enums.Mods.Forestry; import static gregtech.api.recipe.RecipeMaps.sifterRecipes; +import static gregtech.api.util.GT_ModHandler.getModItem; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import net.minecraft.init.Blocks; @@ -8,6 +11,7 @@ import net.minecraft.item.ItemStack; import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.util.GT_OreDictUnificator; @@ -43,5 +47,15 @@ public void run() { .duration(30 * SECONDS) .eut(16) .addTo(sifterRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.ElectronicsLump.get(1)) + .itemOutputs( + ItemList.Electric_Motor_LV.get(1), + getModItem(Forestry.ID, "thermionicTubes", 1L, 5), + getModItem(EnderIO.ID, "itemPowerConduit", 1L, 0)) + .outputChances(25 * 100, 25 * 100, 25 * 100) + .duration(30 * SECONDS) + .eut(16) + .addTo(sifterRecipes); } } diff --git a/src/main/resources/assets/gregtech/lang/en_US.lang b/src/main/resources/assets/gregtech/lang/en_US.lang index 65c97091228..c981c982bb4 100644 --- a/src/main/resources/assets/gregtech/lang/en_US.lang +++ b/src/main/resources/assets/gregtech/lang/en_US.lang @@ -1416,9 +1416,13 @@ for.bees.species.nethershard=Nether Shard for.bees.species.endshard=Ender Shard for.bees.species.dragonblood=Dragonblood +for.bees.authority.machinist=Diddy & Nilau + for.mutation.condition.biomeid=Required Biome for.mutation.condition.dim=Required Dimension +for.flowers.flaming=Fire + itemGroup.GTtools=Prebuild Tools gregtech.fertilitySterile=Sterile @@ -1432,6 +1436,7 @@ gregtech.speedAccelerated=Accelerated gregtech.lifeBlink=Blink gregtech.lifeEon=Eon gregtech.effectTreetwister=Treetwister +gregtech.effectMachineBoost=Machine Booster entity.gregtech.GT_Entity_Arrow.name= a GregTech arrow diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/414.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/414.png new file mode 100644 index 0000000000000000000000000000000000000000..c6d3568b6daadb87da8135184113185c675c8a2d GIT binary patch literal 272 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF<EDmyaV!U}$ryj`REbxddW?<kJ z24O~qS#u<Sf+_(%A+A9B|1#VE$847^TXy~Wbp-{5|9fpMU;Y1IE*lye>g((KKP04H zVvYk)9ZyM+UogXe1mHXppavAr^>lFzshE?Tz`*3l#*q*r#BlkHlam&og4>3`N!HvR z2X0s_<vEgI67)HM-IG&u`O>W_OsrQf30=P9z_Zllpo*)3vae5Ol+uX^Q`NO|6@(?P zvP=&1XE2<^a=EN2Hz-A5Hp4dW21g%;G+O~?hFSfBVvJkr^nn&Lc)I$ztaD0e0svNY BS|9)b literal 0 HcmV?d00001 From e2ae14d4b5c0f3081dd9ff9fbe66beae7d724b9b Mon Sep 17 00:00:00 2001 From: Elkatra2 <116808419+Elkatra2@users.noreply.github.com> Date: Sun, 1 Sep 2024 19:00:57 +0200 Subject: [PATCH 4/7] Fix of the bronze variant of Steam Centrifuge (#3011) Bronze Steam Centrifuge don't use anymore other multis instead of only steam multi --- .../steam/GregtechMetaTileEntity_SteamCentrifuge.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/steam/GregtechMetaTileEntity_SteamCentrifuge.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/steam/GregtechMetaTileEntity_SteamCentrifuge.java index 28528bf6564..644893964b2 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/steam/GregtechMetaTileEntity_SteamCentrifuge.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/steam/GregtechMetaTileEntity_SteamCentrifuge.java @@ -262,7 +262,7 @@ public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack a && tierFireBoxCasing == 1 && tierMachineCasing == 1 && tCountCasing > 60 - && checkHatch()) { + && checkHatches()) { updateHatchTexture(); tierMachine = 1; return true; 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: [PATCH 5/7] 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 <dream-master@gmx.net> Co-authored-by: boubou19 <miisterunknown@gmail.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .../ElectricImplosionCompressorRecipes.java | 45 +- .../processingLoaders/AdditionalRecipes.java | 4 +- .../com/github/technus/tectech/TecTech.java | 1 + .../technus/tectech/loader/MainLoader.java | 5 + .../tectech/loader/recipe/Godforge.java | 117 +- .../recipe/ResearchStationAssemblyLine.java | 361 +++++ .../tectech/loader/thing/MachineLoader.java | 7 + .../recipe/GodforgePlasmaFrontend.java | 5 +- .../rendering/EOH/EOH_RenderingUtils.java | 16 +- .../tectech/rendering/EOH/EOH_TESR.java | 2 +- .../technus/tectech/thing/CustomItemList.java | 13 +- .../thing/block/RenderForgeOfGods.java | 119 +- .../tectech/thing/block/TileForgeOfGods.java | 5 + .../casing/GT_Item_Casings_Godforge.java | 12 + .../tectech/thing/casing/GodforgeCasings.java | 19 +- .../tectech/thing/gui/TecTechUITextures.java | 10 +- .../thing/item/RenderForgeOfGodsItem.java | 70 +- .../ForgeOfGodsRingsStructureString.java | 4 + .../multi/ForgeOfGodsStructureString.java | 70 +- .../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 +- .../technus/tectech/util/GodforgeMath.java | 2 +- .../technus/tectech/util/TT_Utility.java | 20 + .../java/gregtech/api/enums/ItemList.java | 3 + .../java/gregtech/api/enums/Materials.java | 15 + .../gregtech/api/enums/MaterialsUEVplus.java | 160 +++ .../java/gregtech/api/enums/OrePrefixes.java | 8 +- .../java/gregtech/api/enums/Textures.java | 3 +- .../items/GT_MetaGenerated_Item_03.java | 10 + .../gregtech/common/items/ID_MetaItem_03.java | 5 +- .../render/items/GlitchEffectRenderer.java | 124 ++ .../postload/chains/GT_NaniteChain.java | 17 + .../postload/recipes/AssemblerRecipes.java | 26 + .../postload/recipes/AutoclaveRecipes.java | 19 + .../postload/recipes/BenderRecipes.java | 8 + .../postload/recipes/BlastFurnaceRecipes.java | 22 + .../postload/recipes/ChemicalBathRecipes.java | 12 + .../postload/recipes/CompressorRecipes.java | 9 + .../recipes/FusionReactorRecipes.java | 9 + .../postload/recipes/MixerRecipes.java | 16 + .../postload/recipes/PlasmaForgeRecipes.java | 20 + .../TranscendentPlasmaMixerRecipes.java | 18 + .../recipes/VacuumFreezerRecipes.java | 9 + .../GT_Loader_Item_Block_And_Fluid.java | 20 +- .../java/gtPlusPlus/core/item/ModItems.java | 5 +- .../core/recipe/RECIPES_GREGTECH.java | 18 + .../fluids/fluid.phononcrystalsolution.png | Bin 0 -> 1733 bytes .../fluid.phononcrystalsolution.png.mcmeta | 5 + .../blocks/fluids/fluid.phononmedium.png | Bin 0 -> 14885 bytes .../fluids/fluid.phononmedium.png.mcmeta | 5 + .../blocks/iconsets/BLOCK_SIXPHASEDCOPPER.png | Bin 0 -> 1129 bytes .../iconsets/BLOCK_SIXPHASEDCOPPER.png.mcmeta | 1 + .../iconsets/GODFORGE_CONTROLLER_GLOW.png | Bin 0 -> 366 bytes .../GODFORGE_CONTROLLER_GLOW.png.mcmeta | 5 + .../blocks/iconsets/PHONON_CONDUIT.png | Bin 0 -> 9581 bytes .../blocks/iconsets/PHONON_CONDUIT.png.mcmeta | 5 + .../textures/items/gt.metaitem.03/759.png | Bin 0 -> 1264 bytes .../textures/items/gt.metaitem.03/760.png | Bin 0 -> 7176 bytes .../items/gt.metaitem.03/760.png.mcmeta | 1 + .../textures/items/gt.metaitem.03/761.png | Bin 0 -> 709 bytes .../items/gt.metaitem.03/761.png.mcmeta | 1 + .../CUSTOM/GravitonShard/gem.png | Bin 0 -> 1146 bytes .../CUSTOM/GravitonShard/gem.png.mcmeta | 1 + .../CUSTOM/GravitonShard/gem_OVERLAY.png | Bin 0 -> 141 bytes .../resources/assets/tectech/lang/en_US.lang | 168 ++- .../tectech/textures/gui/background/star.png | Bin 119474 -> 127886 bytes .../textures/gui/button/boxed_checkmark.png | Bin 0 -> 230 bytes .../gui/button/boxed_exclamation_point.png | Bin 0 -> 194 bytes .../tectech/textures/gui/button/purple.png | Bin 0 -> 315 bytes .../textures/gui/button/purple_pressed.png | Bin 0 -> 318 bytes .../gui/overlay_button/cyclic_blue.png | Bin 723 -> 722 bytes .../textures/gui/overlay_button/eject.png | Bin 0 -> 531 bytes .../gui/overlay_button/eject_disabled.png | Bin 0 -> 212 bytes 77 files changed, 2468 insertions(+), 589 deletions(-) create mode 100644 src/main/java/gregtech/common/render/items/GlitchEffectRenderer.java create mode 100644 src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.phononcrystalsolution.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.phononcrystalsolution.png.mcmeta create mode 100644 src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.phononmedium.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.phononmedium.png.mcmeta create mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/BLOCK_SIXPHASEDCOPPER.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/BLOCK_SIXPHASEDCOPPER.png.mcmeta create mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/GODFORGE_CONTROLLER_GLOW.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/GODFORGE_CONTROLLER_GLOW.png.mcmeta create mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/PHONON_CONDUIT.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/PHONON_CONDUIT.png.mcmeta create mode 100644 src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/759.png create mode 100644 src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/760.png create mode 100644 src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/760.png.mcmeta create mode 100644 src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/761.png create mode 100644 src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/761.png.mcmeta create mode 100644 src/main/resources/assets/gregtech/textures/items/materialicons/CUSTOM/GravitonShard/gem.png create mode 100644 src/main/resources/assets/gregtech/textures/items/materialicons/CUSTOM/GravitonShard/gem.png.mcmeta create mode 100644 src/main/resources/assets/gregtech/textures/items/materialicons/CUSTOM/GravitonShard/gem_OVERLAY.png create mode 100644 src/main/resources/assets/tectech/textures/gui/button/boxed_checkmark.png create mode 100644 src/main/resources/assets/tectech/textures/gui/button/boxed_exclamation_point.png create mode 100644 src/main/resources/assets/tectech/textures/gui/button/purple.png create mode 100644 src/main/resources/assets/tectech/textures/gui/button/purple_pressed.png create mode 100644 src/main/resources/assets/tectech/textures/gui/overlay_button/eject.png create mode 100644 src/main/resources/assets/tectech/textures/gui/overlay_button/eject_disabled.png 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 dfc3ab7e835..d616829fbd5 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.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.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 void run() { .noOptimize() .addTo(electricImplosionCompressorRecipes); - if (UniversalSingularities.isModLoaded()) + if (UniversalSingularities.isModLoaded()) { // Raw Exposed Optical Chip GT_Values.RA.stdBuilder() .itemInputs( @@ -55,6 +57,29 @@ public void run() { .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 void run() { .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 a1398f57e3b..51398d29140 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 static void run() { .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 static void run() { .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 c8946ec80d4..c31f9a878da 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 void PostLoad(FMLPostInitializationEvent PostEvent) { @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 01d63392e5a..915b113fe98 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 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 @@ private static void adjustTwilightBlockResistance() { 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 a2dc61132d9..80f10fc44fb 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 @@ 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 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<ItemStack, Integer> exoticModulePlasmaItemMap = new HashMap<>(); public static final HashMap<FluidStack, Integer> exoticModulePlasmaFluidMap = new HashMap<>(); public static final HashMap<ItemStack, Integer> exoticModuleMagmatterItemMap = new HashMap<>(); + public static final HashMap<Integer, ItemStack[]> godforgeUpgradeMats = new HashMap<>(); public static final List<ItemStack> quarkGluonFluidItemsForNEI = new ArrayList<>(); public static final List<ItemStack> quarkGluonItemsForNEI = new ArrayList<>(); public static final List<ItemStack> magmatterTimeFluidItemsForNEI = new ArrayList<>(); @@ -112,7 +126,7 @@ public void run() { 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 void run() { 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 void run() { // 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 void run() { } // 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 void run() { 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 dc5cf1c5ed4..f9377143c4c 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.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.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_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 void run() { itemPartsUMVAsslineRecipes(); itemPartsUXVAsslineRecipes(); addWirelessEnergyRecipes(); + addGodforgeRecipes(); if (TinkersGregworks.isModLoaded() && Avaritia.isModLoaded() // Infinity, Cosmic Neutronium && ExtraUtilities.isModLoaded() // Bedrockium @@ -2970,7 +2978,332 @@ private void addEOHRecipes() { 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 @@ private void addWirelessEnergyRecipes() { 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 c7fd1bffe6e..5c5005503b6 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_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_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 void run() { 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 8264c6a1692..7cdf2bb5c1d 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 @@ protected void drawEnergyInfo(RecipeDisplayInfo recipeInfo) { 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 3f72cacd775..582b695eb20 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 @@ 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 @@ else if (type == IItemRenderer.ItemRenderType.EQUIPPED } // 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 @@ private static void renderStarLayer(int layer, ResourceLocation texture, Color c // 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 da704a37ff6..e4b7c50c937 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 void renderTileEntityAt(TileEntity tile, double x, double y, double z, fl 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 79e53e22396..58285080ccc 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 70314927f49..4da28875f94 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 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 0e0b5360467..03109b46bd1 100644 --- a/src/main/java/com/github/technus/tectech/thing/block/TileForgeOfGods.java +++ b/src/main/java/com/github/technus/tectech/thing/block/TileForgeOfGods.java @@ -17,6 +17,11 @@ public AxisAlignedBB getRenderBoundingBox() { return INFINITE_EXTENT_AABB; } + @Override + public double getMaxRenderDistanceSquared() { + return 25600; + } + public void setRenderSize(float size) { this.size = size; } diff --git a/src/main/java/com/github/technus/tectech/thing/casing/GT_Item_Casings_Godforge.java b/src/main/java/com/github/technus/tectech/thing/casing/GT_Item_Casings_Godforge.java index e527fc552d7..e931b944236 100644 --- a/src/main/java/com/github/technus/tectech/thing/casing/GT_Item_Casings_Godforge.java +++ b/src/main/java/com/github/technus/tectech/thing/casing/GT_Item_Casings_Godforge.java @@ -104,6 +104,18 @@ public void addInformation(ItemStack aStack, EntityPlayer aPlayer, List aList, b AQUA.toString() + BOLD + GT_LanguageManager.addStringLocalization("godforge.casings.7.Tooltip.1", "Gravity Central")); break; + case 8: + aList.add( + GT_LanguageManager.addStringLocalization( + "godforge.casings.8.Tooltip.0", + "Transfers and stores extreme amounts of heat without any loss")); + aList.add( + AQUA.toString() + BOLD + + GT_LanguageManager.addStringLocalization("godforge.casings.8.Tooltip.1", "<<<Thermal<<<")); + aList.add( + AQUA.toString() + BOLD + + GT_LanguageManager.addStringLocalization("godforge.casings.8.Tooltip.2", ">>>Wave>>>")); + break; default: aList.add( EnumChatFormatting.RED.toString() + BOLD diff --git a/src/main/java/com/github/technus/tectech/thing/casing/GodforgeCasings.java b/src/main/java/com/github/technus/tectech/thing/casing/GodforgeCasings.java index 809e6bbff18..df89071d807 100644 --- a/src/main/java/com/github/technus/tectech/thing/casing/GodforgeCasings.java +++ b/src/main/java/com/github/technus/tectech/thing/casing/GodforgeCasings.java @@ -29,6 +29,7 @@ public class GodforgeCasings extends GT_Block_Casings_Abstract { private static IIcon GravitonModulatorT1; private static IIcon GravitonModulatorT2; private static IIcon GravitonModulatorT3; + private static IIcon PhononConduit; private static final byte START_INDEX = 64; @@ -51,15 +52,18 @@ public GodforgeCasings() { GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".5.name", "Remote Graviton Flow Modulator"); GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".6.name", "Medial Graviton Flow Modulator"); GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".7.name", "Central Graviton Flow Modulator"); + GT_LanguageManager + .addStringLocalization(getUnlocalizedName() + ".8.name", "Harmonic Phonon Transmission Conduit"); - CustomItemList.Godforge_Singularity_Shielding_Casing.set(new ItemStack(this, 1, 0)); - CustomItemList.Godforge_Guidance_Casing.set(new ItemStack(this, 1, 1)); - CustomItemList.Godforge_Boundless_Structure_Casing.set(new ItemStack(this, 1, 2)); - CustomItemList.Godforge_Magnetic_Confinement_Casing.set(new ItemStack(this, 1, 3)); - CustomItemList.Godforge_Stellar_Energy_Siphon_Casing.set(new ItemStack(this, 1, 4)); + CustomItemList.Godforge_SingularityShieldingCasing.set(new ItemStack(this, 1, 0)); + CustomItemList.Godforge_GuidanceCasing.set(new ItemStack(this, 1, 1)); + CustomItemList.Godforge_BoundlessStructureCasing.set(new ItemStack(this, 1, 2)); + CustomItemList.Godforge_MagneticConfinementCasing.set(new ItemStack(this, 1, 3)); + CustomItemList.Godforge_StellarEnergySiphonCasing.set(new ItemStack(this, 1, 4)); CustomItemList.Godforge_GravitonFlowModulatorTier1.set(new ItemStack(this, 1, 5)); CustomItemList.Godforge_GravitonFlowModulatorTier2.set(new ItemStack(this, 1, 6)); CustomItemList.Godforge_GravitonFlowModulatorTier3.set(new ItemStack(this, 1, 7)); + CustomItemList.Godforge_HarmonicPhononTransmissionConduit.set(new ItemStack(this, 1, 8)); } @Override @@ -72,6 +76,7 @@ public void registerBlockIcons(IIconRegister aIconRegister) { GravitonModulatorT1 = aIconRegister.registerIcon("gregtech:iconsets/GRAVITON_CASING_2"); GravitonModulatorT2 = aIconRegister.registerIcon("gregtech:iconsets/GRAVITON_CASING_1"); GravitonModulatorT3 = aIconRegister.registerIcon("gregtech:iconsets/GRAVITON_CASING_0"); + PhononConduit = aIconRegister.registerIcon("gregtech:iconsets/PHONON_CONDUIT"); } @Override @@ -102,6 +107,8 @@ public IIcon getIcon(int aSide, int aMeta) { return GodforgeOuter; } return GravitonModulatorT3; + case 8: + return PhononConduit; default: return Textures.BlockIcons.MACHINE_CASING_SOLID_STEEL.getIcon(); } @@ -117,7 +124,7 @@ public IIcon getIcon(IBlockAccess aWorld, int xCoord, int yCoord, int zCoord, in @SuppressWarnings("unchecked") @Override public void getSubBlocks(Item aItem, CreativeTabs par2CreativeTabs, List aList) { - for (int i = 0; i <= 7; i++) { + for (int i = 0; i <= 8; i++) { aList.add(new ItemStack(aItem, 1, i)); } } diff --git a/src/main/java/com/github/technus/tectech/thing/gui/TecTechUITextures.java b/src/main/java/com/github/technus/tectech/thing/gui/TecTechUITextures.java index 8c0c801363a..b9f18e4e485 100644 --- a/src/main/java/com/github/technus/tectech/thing/gui/TecTechUITextures.java +++ b/src/main/java/com/github/technus/tectech/thing/gui/TecTechUITextures.java @@ -29,7 +29,12 @@ public class TecTechUITextures { public static final UITexture BUTTON_STANDARD_LIGHT_16x16 = UITexture .fullImage(MODID, "gui/button/standard_light_16x16"); public static final UITexture BUTTON_CELESTIAL_32x32 = UITexture.fullImage(MODID, "gui/button/celestial"); - + public static final UITexture BUTTON_SPACE_32x16 = UITexture.fullImage(MODID, "gui/button/purple"); + public static final UITexture BUTTON_SPACE_PRESSED_32x16 = UITexture.fullImage(MODID, "gui/button/purple_pressed"); + public static final UITexture BUTTON_BOXED_CHECKMARK_18x18 = UITexture + .fullImage(MODID, "gui/button/boxed_checkmark"); + public static final UITexture BUTTON_BOXED_EXCLAMATION_POINT_18x18 = UITexture + .fullImage(MODID, "gui/button/boxed_exclamation_point"); public static final UITexture OVERLAY_BUTTON_POWER_SWITCH_DISABLED = UITexture .fullImage(MODID, "gui/overlay_button/power_switch_disabled"); public static final UITexture OVERLAY_BUTTON_POWER_SWITCH_OFF = UITexture @@ -78,6 +83,9 @@ public class TecTechUITextures { .fullImage(MODID, "gui/overlay_button/battery_off"); public static final UITexture OVERLAY_BUTTON_FLAG = UITexture.fullImage(MODID, "gui/overlay_button/flag"); public static final UITexture OVERLAY_CYCLIC_BLUE = UITexture.fullImage(MODID, "gui/overlay_button/cyclic_blue"); + public static final UITexture OVERLAY_EJECTION_LOCKED = UITexture + .fullImage(MODID, "gui/overlay_button/eject_disabled"); + public static final UITexture OVERLAY_EJECTION_ON = UITexture.fullImage(MODID, "gui/overlay_button/eject"); public static final UITexture OVERLAY_SLOT_RACK = UITexture.fullImage(MODID, "gui/overlay_slot/rack"); public static final UITexture OVERLAY_SLOT_MESH = UITexture.fullImage(MODID, "gui/overlay_slot/mesh"); diff --git a/src/main/java/com/github/technus/tectech/thing/item/RenderForgeOfGodsItem.java b/src/main/java/com/github/technus/tectech/thing/item/RenderForgeOfGodsItem.java index 35f2199663b..a9be26fce82 100644 --- a/src/main/java/com/github/technus/tectech/thing/item/RenderForgeOfGodsItem.java +++ b/src/main/java/com/github/technus/tectech/thing/item/RenderForgeOfGodsItem.java @@ -1,16 +1,18 @@ package com.github.technus.tectech.thing.item; +import static com.github.technus.tectech.rendering.EOH.EOH_RenderingUtils.renderStarLayer; import static com.github.technus.tectech.rendering.EOH.EOH_TESR.*; -import static java.lang.Math.pow; +import static com.github.technus.tectech.thing.block.RenderForgeOfGods.disableOpaqueColorInversion; +import static com.github.technus.tectech.thing.block.RenderForgeOfGods.enableOpaqueColorInversion; +import static com.github.technus.tectech.thing.block.RenderForgeOfGods.enablePseudoTransparentColorInversion; + +import java.awt.Color; import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.IItemRenderer; import org.lwjgl.opengl.GL11; -import cpw.mods.fml.client.FMLClientHandler; - public class RenderForgeOfGodsItem implements IItemRenderer { @Override @@ -27,6 +29,7 @@ public boolean shouldUseRenderHelper(IItemRenderer.ItemRenderType type, ItemStac @Override public void renderItem(IItemRenderer.ItemRenderType type, ItemStack item, Object... data) { GL11.glPushMatrix(); + GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS); if (type == IItemRenderer.ItemRenderType.INVENTORY) GL11.glRotated(180, 0, 1, 0); else if (type == IItemRenderer.ItemRenderType.EQUIPPED @@ -35,57 +38,22 @@ else if (type == IItemRenderer.ItemRenderType.EQUIPPED if (type == IItemRenderer.ItemRenderType.EQUIPPED) GL11.glRotated(90, 0, 1, 0); } - // Render star stuff - renderStarLayer(0, STAR_LAYER_0, 1.0f); - renderStarLayer(1, STAR_LAYER_1, 0.4f); - renderStarLayer(2, STAR_LAYER_2, 0.2f); - - GL11.glPopMatrix(); - } - - private void renderStarLayer(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; + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_BLEND); - // Put each layer further out - scale *= pow(1.04f, layer); + // Innermost layer should be opaque + enableOpaqueColorInversion(); + renderStarLayer(0, STAR_LAYER_0, new Color(1.0f, 0.4f, 0.05f, 1.0f), 1.0f, 1); + disableOpaqueColorInversion(); - // Scale the star up in the x, y and z directions - GL11.glScalef(scale, scale, scale); + enablePseudoTransparentColorInversion(); + renderStarLayer(1, STAR_LAYER_1, new Color(1.0f, 0.4f, 0.05f, 1.0f), 0.4f, 1); + renderStarLayer(2, STAR_LAYER_2, new Color(1.0f, 0.4f, 0.05f, 1.0f), 0.2f, 1); - switch (layer) { - case 0: - GL11.glRotatef(130 + (System.currentTimeMillis() / 64) % 360, 0F, 1F, 1F); - break; - case 1: - GL11.glRotatef(-49 + (System.currentTimeMillis() / 64) % 360, 1F, 1F, 0F); - break; - case 2: - GL11.glRotatef(67 + (System.currentTimeMillis() / 64) % 360, 1F, 0F, 1F); - break; + GL11.glPopAttrib(); + GL11.glPopMatrix(); } - - // Set colour and alpha of the star layer - GL11.glColor4f(222, 243, 250, alpha); - - starModel.renderAll(); - GL11.glDisable(GL11.GL_BLEND); - GL11.glDepthMask(true); - GL11.glEnable(GL11.GL_LIGHTING); - - GL11.glPopMatrix(); } } diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/ForgeOfGodsRingsStructureString.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/ForgeOfGodsRingsStructureString.java index c01a17af865..1bdd8fc7c5b 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/ForgeOfGodsRingsStructureString.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/ForgeOfGodsRingsStructureString.java @@ -1,5 +1,7 @@ package com.github.technus.tectech.thing.metaTileEntity.multi; +import static com.github.technus.tectech.util.TT_Utility.replaceLetters; + public abstract class ForgeOfGodsRingsStructureString { public static final String[][] SECOND_RING = { { @@ -5097,5 +5099,7 @@ public abstract class ForgeOfGodsRingsStructureString { " ", " ", " " } }; + public static final String[][] SECOND_RING_AIR = replaceLetters(SECOND_RING, "L"); + public static final String[][] THIRD_RING_AIR = replaceLetters(THIRD_RING, "L"); } diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/ForgeOfGodsStructureString.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/ForgeOfGodsStructureString.java index bbf9e56f89c..ce435105684 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/ForgeOfGodsStructureString.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/ForgeOfGodsStructureString.java @@ -1,8 +1,11 @@ package com.github.technus.tectech.thing.metaTileEntity.multi; +import static com.github.technus.tectech.util.TT_Utility.appendStringArrays; +import static com.github.technus.tectech.util.TT_Utility.replaceLetters; + public abstract class ForgeOfGodsStructureString { - public static final String[][] MAIN_STRUCTURE = { { + public static final String[][] BEAM_SHAFT = { { " ", " ", " ", @@ -1107,7 +1110,7 @@ public abstract class ForgeOfGodsStructureString { " " }, { " J ", " BEEEEEB ", - " EEEE EEE ", + " EEE EEE ", " E E ", " EE EE ", " E E ", @@ -1742,36 +1745,37 @@ public abstract class ForgeOfGodsStructureString { " ", " ", " ", - " " }, - { " ", - " ", - " ", - " ", - " ", - " BBBBB ", - " BBCCCCCBB ", - " BBCC CCBB ", - " BBCC CCBB ", - " EEC CEE ", - " EC CE ", - " EC CE ", - " C CCC C ", - " C C C C ", - " C C C C ", - " C C C C ", - " C CCC C ", - " EC CE ", - " EC CE ", - " EEC CEE ", - " BBCC CCBB ", - " BBCC CCBB ", - " BBCCCCCBB ", - " BBBBB ", - " ", - " ", - " ", - " ", - " " }, + " " } }; + public static final String[][] FIRST_RING = { { + " ", + " ", + " ", + " ", + " ", + " BBBBB ", + " BBCCCCCBB ", + " BBCC CCBB ", + " BBCC CCBB ", + " EEC CEE ", + " EC CE ", + " EC CE ", + " C CCC C ", + " C C C C ", + " C C C C ", + " C C C C ", + " C CCC C ", + " EC CE ", + " EC CE ", + " EEC CEE ", + " BBCC CCBB ", + " BBCC CCBB ", + " BBCCCCCBB ", + " BBBBB ", + " ", + " ", + " ", + " ", + " " }, { " ", " ", " ", @@ -5426,4 +5430,6 @@ public abstract class ForgeOfGodsStructureString { " ", " ", " " } }; + public static final String[][] MAIN_STRUCTURE = appendStringArrays(BEAM_SHAFT, FIRST_RING); + public static final String[][] FIRST_RING_AIR = replaceLetters(FIRST_RING, "L"); } diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_ForgeOfGods.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_ForgeOfGods.java index e8e27e7bfc6..86f608b6026 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_ForgeOfGods.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_ForgeOfGods.java @@ -1,5 +1,6 @@ package com.github.technus.tectech.thing.metaTileEntity.multi; +import static com.github.technus.tectech.loader.recipe.Godforge.godforgeUpgradeMats; import static com.github.technus.tectech.thing.casing.TT_Container_Casings.GodforgeCasings; import static com.github.technus.tectech.thing.casing.TT_Container_Casings.forgeOfGodsRenderBlock; import static com.github.technus.tectech.util.GodforgeMath.allowModuleConnection; @@ -30,6 +31,7 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; +import java.util.Objects; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; @@ -41,18 +43,17 @@ import net.minecraftforge.fluids.FluidStack; import com.github.technus.tectech.TecTech; -import com.github.technus.tectech.thing.CustomItemList; import com.github.technus.tectech.thing.block.GodforgeGlassBlock; import com.github.technus.tectech.thing.block.TileForgeOfGods; import com.github.technus.tectech.thing.gui.TecTechUITextures; import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.render.TT_RenderedExtendedFacingTexture; import com.github.technus.tectech.thing.metaTileEntity.multi.godforge_modules.GT_MetaTileEntity_EM_BaseModule; import com.github.technus.tectech.thing.metaTileEntity.multi.godforge_modules.GT_MetaTileEntity_EM_ExoticModule; import com.github.technus.tectech.thing.metaTileEntity.multi.godforge_modules.GT_MetaTileEntity_EM_MoltenModule; import com.github.technus.tectech.thing.metaTileEntity.multi.godforge_modules.GT_MetaTileEntity_EM_PlasmaModule; import com.github.technus.tectech.thing.metaTileEntity.multi.godforge_modules.GT_MetaTileEntity_EM_SmeltingModule; import com.github.technus.tectech.util.CommonValues; +import com.google.common.collect.ImmutableList; import com.google.common.math.LongMath; import com.gtnewhorizon.structurelib.alignment.constructable.IConstructable; import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructable; @@ -72,7 +73,6 @@ import com.gtnewhorizons.modularui.api.screen.ModularWindow; import com.gtnewhorizons.modularui.api.screen.UIBuildContext; import com.gtnewhorizons.modularui.api.widget.IWidgetBuilder; -import com.gtnewhorizons.modularui.api.widget.Interactable; import com.gtnewhorizons.modularui.api.widget.Widget; import com.gtnewhorizons.modularui.common.widget.ButtonWidget; import com.gtnewhorizons.modularui.common.widget.DrawableWidget; @@ -88,7 +88,6 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.MaterialsUEVplus; import gregtech.api.enums.OrePrefixes; @@ -99,10 +98,15 @@ import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_InputBus; +import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_HatchElementBuilder; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.IGT_HatchAdder; +import gregtech.common.tileentities.machines.GT_MetaTileEntity_Hatch_InputBus_ME; +import gregtech.common.tileentities.machines.GT_MetaTileEntity_Hatch_Input_ME; +import gregtech.common.tileentities.machines.GT_MetaTileEntity_Hatch_OutputBus_ME; public class GT_MetaTileEntity_EM_ForgeOfGods extends GT_MetaTileEntity_MultiblockBase_EM implements IConstructable, ISurvivalConstructable { @@ -133,6 +137,9 @@ public class GT_MetaTileEntity_EM_ForgeOfGods extends GT_MetaTileEntity_Multiblo private BigInteger totalPowerConsumed = BigInteger.ZERO; private boolean batteryCharging = false; private boolean inversion = false; + private boolean gravitonShardEjection = false; + private boolean noFormatting = false; + private boolean isRenderActive = false; public ArrayList<GT_MetaTileEntity_EM_BaseModule> moduleHatches = new ArrayList<>(); protected ItemStackHandler inputSlotHandler = new ItemStackHandler(16); @@ -143,8 +150,10 @@ public class GT_MetaTileEntity_EM_ForgeOfGods extends GT_MetaTileEntity_Multiblo private static final int MILESTONE_WINDOW_ID = 13; private static final int INDIVIDUAL_MILESTONE_WINDOW_ID = 14; private static final int MANUAL_INSERTION_WINDOW_ID = 15; + private static final int GENERAL_INFO_WINDOW_ID = 16; private static final int TEXTURE_INDEX = 960; private static final int[] FIRST_SPLIT_UPGRADES = new int[] { 12, 13, 14 }; + private static final Integer[] UPGRADE_MATERIAL_ID_CONVERSION = { 0, 5, 7, 11, 26, 29, 30 }; private static final long POWER_MILESTONE_CONSTANT = LongMath.pow(10, 15); private static final long RECIPE_MILESTONE_CONSTANT = LongMath.pow(10, 7); private static final long FUEL_MILESTONE_CONSTANT = 10_000; @@ -156,9 +165,17 @@ public class GT_MetaTileEntity_EM_ForgeOfGods extends GT_MetaTileEntity_Multiblo private static final double RECIPE_LOG_CONSTANT = Math.log(6); private static final double FUEL_LOG_CONSTANT = Math.log(3); protected static final String STRUCTURE_PIECE_MAIN = "main"; + protected static final String STRUCTURE_PIECE_SHAFT = "beam_shaft"; + protected static final String STRUCTURE_PIECE_FIRST_RING = "first_ring"; + protected static final String STRUCTURE_PIECE_FIRST_RING_AIR = "first_ring_air"; protected static final String STRUCTURE_PIECE_SECOND_RING = "second_ring"; + protected static final String STRUCTURE_PIECE_SECOND_RING_AIR = "second_ring_air"; protected static final String STRUCTURE_PIECE_THIRD_RING = "third_ring"; - private static final String TOOLTIP_BAR = EnumChatFormatting.BLUE + "--------------------------------------------"; + protected static final String STRUCTURE_PIECE_THIRD_RING_AIR = "third_ring_air"; + private static final String SCANNER_INFO_BAR = EnumChatFormatting.BLUE + + "--------------------------------------------"; + private static final String TOOLTIP_BAR = EnumChatFormatting.AQUA + + "--------------------------------------------------------------------------"; private static final ItemStack STELLAR_FUEL = Avaritia.isModLoaded() ? getModItem(Avaritia.ID, "Resource", 1, 8) : GT_OreDictUnificator.get(OrePrefixes.block, Materials.CosmicNeutronium, 1); @@ -168,8 +185,8 @@ public int survivalConstruct(ItemStack stackSize, int elementBudget, ISurvivalBu if (mMachine) return -1; int realBudget = elementBudget >= 1000 ? elementBudget : Math.min(1000, elementBudget * 5); // 1000 blocks max per placement. - int built = survivialBuildPiece(STRUCTURE_PIECE_MAIN, stackSize, 63, 20, 1, realBudget, env, false, true); - if (isUpgradeActive(26) && stackSize.stackSize > 1) { + int built = survivialBuildPiece(STRUCTURE_PIECE_MAIN, stackSize, 63, 14, 1, realBudget, env, false, true); + if (stackSize.stackSize > 1) { built += survivialBuildPiece( STRUCTURE_PIECE_SECOND_RING, stackSize, @@ -181,7 +198,7 @@ public int survivalConstruct(ItemStack stackSize, int elementBudget, ISurvivalBu false, true); } - if (isUpgradeActive(29) && stackSize.stackSize > 2) { + if (stackSize.stackSize > 2) { built += survivialBuildPiece( STRUCTURE_PIECE_THIRD_RING, stackSize, @@ -204,8 +221,13 @@ public IStructureDefinition<GT_MetaTileEntity_EM_ForgeOfGods> getStructure_EM() public static final IStructureDefinition<GT_MetaTileEntity_EM_ForgeOfGods> STRUCTURE_DEFINITION = IStructureDefinition .<GT_MetaTileEntity_EM_ForgeOfGods>builder() .addShape(STRUCTURE_PIECE_MAIN, ForgeOfGodsStructureString.MAIN_STRUCTURE) + .addShape(STRUCTURE_PIECE_SHAFT, ForgeOfGodsStructureString.BEAM_SHAFT) + .addShape(STRUCTURE_PIECE_FIRST_RING, ForgeOfGodsStructureString.FIRST_RING) + .addShape(STRUCTURE_PIECE_FIRST_RING_AIR, ForgeOfGodsStructureString.FIRST_RING_AIR) .addShape(STRUCTURE_PIECE_SECOND_RING, ForgeOfGodsRingsStructureString.SECOND_RING) + .addShape(STRUCTURE_PIECE_SECOND_RING_AIR, ForgeOfGodsRingsStructureString.SECOND_RING_AIR) .addShape(STRUCTURE_PIECE_THIRD_RING, ForgeOfGodsRingsStructureString.THIRD_RING) + .addShape(STRUCTURE_PIECE_THIRD_RING_AIR, ForgeOfGodsRingsStructureString.THIRD_RING_AIR) .addElement('A', classicHatches(TEXTURE_INDEX + 3, 1, GodforgeCasings, 3)) .addElement('B', ofBlock(GodforgeCasings, 0)) .addElement('C', ofBlock(GodforgeCasings, 1)) @@ -223,6 +245,7 @@ public IStructureDefinition<GT_MetaTileEntity_EM_ForgeOfGods> getStructure_EM() .dot(3) .buildAndChain(GodforgeCasings, 0)) .addElement('K', ofBlock(GodforgeCasings, 6)) + .addElement('L', ofBlock(Blocks.air, 0)) .build(); public GT_MetaTileEntity_EM_ForgeOfGods(int aID, String aName, String aNameRegional) { @@ -250,7 +273,15 @@ public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, ForgeDirec int colorIndex, boolean aActive, boolean aRedstone) { if (side == facing) { return new ITexture[] { Textures.BlockIcons.getCasingTextureForId(TEXTURE_INDEX + 1), - new TT_RenderedExtendedFacingTexture(ScreenON) }; + TextureFactory.builder() + .addIcon(ScreenON) + .extFacing() + .build(), + TextureFactory.builder() + .addIcon(ScreenON) + .extFacing() + .glow() + .build() }; } return new ITexture[] { Textures.BlockIcons.getCasingTextureForId(TEXTURE_INDEX + 1) }; } @@ -258,10 +289,10 @@ public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, ForgeDirec @Override public void construct(ItemStack stackSize, boolean hintsOnly) { structureBuild_EM(STRUCTURE_PIECE_MAIN, 63, 14, 1, stackSize, hintsOnly); - if (isUpgradeActive(26) && stackSize.stackSize > 1) { + if (stackSize.stackSize > 1) { buildPiece(STRUCTURE_PIECE_SECOND_RING, stackSize, hintsOnly, 55, 11, -67); } - if (isUpgradeActive(29) && stackSize.stackSize > 2) { + if (stackSize.stackSize > 2) { buildPiece(STRUCTURE_PIECE_THIRD_RING, stackSize, hintsOnly, 47, 13, -76); } } @@ -280,36 +311,69 @@ public boolean checkMachine_EM(IGregTechTileEntity iGregTechTileEntity, ItemStac moduleHatches.clear(); - // Check structure of multi. - if (!structureCheck_EM(STRUCTURE_PIECE_MAIN, 63, 14, 1)) { + // Check structure of multi + if (isRenderActive) { + if (!structureCheck_EM(STRUCTURE_PIECE_SHAFT, 63, 14, 1) + || !structureCheck_EM(STRUCTURE_PIECE_FIRST_RING_AIR, 63, 14, -59)) { + destroyRenderer(); + return false; + } + } else if (!structureCheck_EM(STRUCTURE_PIECE_MAIN, 63, 14, 1)) { return false; } - // Check there is 1 input bus. + if (internalBattery != 0 && !isRenderActive) { + createRenderer(); + } + + // Check there is 1 input bus if (mInputBusses.size() != 1) { return false; } - // Make sure there are no energy hatches. + // Check there is 1 me output bus + { + if (mOutputBusses.size() != 1) { + return false; + } - if (mEnergyHatches.size() > 0) { - return false; + if (!(mOutputBusses.get(0) instanceof GT_MetaTileEntity_Hatch_OutputBus_ME)) { + return false; + } } - if (mExoticEnergyHatches.size() > 0) { - return false; + // Make sure there are no energy hatches + { + if (mEnergyHatches.size() > 0) { + return false; + } + + if (mExoticEnergyHatches.size() > 0) { + return false; + } } - // Make sure there is 1 input hatch. + // Make sure there is 1 input hatch if (mInputHatches.size() != 1) { return false; } - if (isUpgradeActive(26) && checkPiece(STRUCTURE_PIECE_SECOND_RING, 55, 11, -67)) { - ringAmount = 2; - if (isUpgradeActive(29) && checkPiece(STRUCTURE_PIECE_THIRD_RING, 47, 13, -76)) { + if (isUpgradeActive(26)) { + if (checkPiece(STRUCTURE_PIECE_SECOND_RING, 55, 11, -67)) { + ringAmount = 2; + } + if (isRenderActive && ringAmount >= 2 && !checkPiece(STRUCTURE_PIECE_SECOND_RING_AIR, 55, 11, -67)) { + destroyRenderer(); + } + } + + if (isUpgradeActive(29)) { + if (checkPiece(STRUCTURE_PIECE_THIRD_RING, 47, 13, -76)) { ringAmount = 3; } + if (isRenderActive && ringAmount == 3 && !checkPiece(STRUCTURE_PIECE_THIRD_RING_AIR, 47, 13, -76)) { + destroyRenderer(); + } } return true; @@ -325,10 +389,12 @@ public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { // Check and drain fuel if (ticker % (5 * SECONDS) == 0) { ticker = 0; - FluidStack fluidInHatch = null; + startRecipeProcessing(); + FluidStack[] fluidInHatch = null; + boolean fuelDrained = false; if (mInputHatches != null && mInputHatches.size() != 0) { - fluidInHatch = mInputHatches.get(0) - .getFluid(); + fluidInHatch = this.getStoredFluids() + .toArray(new FluidStack[0]); } int maxModuleCount = 8; @@ -338,43 +404,67 @@ public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { if (upgrades[29]) { maxModuleCount += 4; } - if (getBaseMetaTileEntity().isAllowedToWork()) { + if (mInputBusses.size() != 0) { if (internalBattery == 0) { - - for (ItemStack itemStack : mInputBusses.get(0) - .getRealInventory()) { - if (itemStack != null && itemStack.isItemEqual(STELLAR_FUEL)) { - stellarFuelAmount += itemStack.stackSize; - itemStack.stackSize = 0; + GT_MetaTileEntity_Hatch_InputBus inputBus = mInputBusses.get(0); + ItemStack[] inputBusInventory = inputBus.getRealInventory(); + if (inputBusInventory != null) { + for (int i = 0; i < inputBusInventory.length; i++) { + ItemStack itemStack = inputBusInventory[i]; + if (itemStack != null && itemStack.isItemEqual(STELLAR_FUEL)) { + int stacksize = itemStack.stackSize; + if (inputBus instanceof GT_MetaTileEntity_Hatch_InputBus_ME meBus) { + ItemStack realItem = meBus.getRealInventory()[i + 16]; + if (realItem == null) { + break; + } + stacksize = realItem.stackSize; + } + inputBus.decrStackSize(i, stacksize); + stellarFuelAmount += stacksize; + inputBus.updateSlots(); + } } } neededStartupFuel = calculateStartupFuelConsumption(this); if (stellarFuelAmount >= neededStartupFuel) { stellarFuelAmount -= neededStartupFuel; increaseBattery(neededStartupFuel); + createRenderer(); } } else { fuelConsumption = (long) calculateFuelConsumption(this) * 5 * (batteryCharging ? 2 : 1); - if (fluidInHatch != null && fluidInHatch.isFluidEqual(validFuelList.get(selectedFuelType))) { - FluidStack fluidNeeded = new FluidStack( - validFuelList.get(selectedFuelType), - (int) fuelConsumption); - FluidStack fluidReal = mInputHatches.get(0) - .drain(fluidNeeded.amount, true); - if (fluidReal == null || fluidReal.amount < fluidNeeded.amount) { - reduceBattery(fuelConsumptionFactor); - } else { - totalFuelConsumed += getFuelFactor(); - if (batteryCharging) { - increaseBattery(fuelConsumptionFactor); + if (fluidInHatch != null && fuelConsumption < Integer.MAX_VALUE) { + for (FluidStack fluid : fluidInHatch) { + if (fluid.isFluidEqual(validFuelList.get(selectedFuelType))) { + FluidStack fluidNeeded = new FluidStack( + validFuelList.get(selectedFuelType), + (int) fuelConsumption); + FluidStack fluidReal; + if (mInputHatches.get(0) instanceof GT_MetaTileEntity_Hatch_Input_ME meHatch) { + fluidReal = meHatch.drain(ForgeDirection.UNKNOWN, fluidNeeded, true); + } else { + fluidReal = mInputHatches.get(0) + .drain(fluidNeeded.amount, true); + } + if (fluidReal == null || fluidReal.amount < fluidNeeded.amount) { + reduceBattery(fuelConsumptionFactor); + } else { + totalFuelConsumed += getFuelFactor(); + if (batteryCharging) { + increaseBattery(fuelConsumptionFactor); + } + } + fuelDrained = true; } } + if (!fuelDrained) { + reduceBattery(fuelConsumptionFactor); + } } else { reduceBattery(fuelConsumptionFactor); } } - } else { - reduceBattery(fuelConsumptionFactor); } determineCompositionMilestoneLevel(); @@ -383,6 +473,9 @@ public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { if (!debugMode) { determineGravitonShardAmount(); } + if (upgrades[30] && gravitonShardEjection) { + ejectGravitonShards(); + } // Do module calculations and checks if (moduleHatches.size() > 0 && internalBattery > 0 && moduleHatches.size() <= maxModuleCount) { @@ -408,6 +501,7 @@ public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { } } if (mEfficiency < 0) mEfficiency = 0; + endRecipeProcessing(); } } } @@ -456,7 +550,7 @@ public IGT_HatchAdder<? super GT_MetaTileEntity_EM_ForgeOfGods> adder() { } } - private void createRenderBlock() { + private void createRenderer() { IGregTechTileEntity gregTechTileEntity = this.getBaseMetaTileEntity(); @@ -464,9 +558,9 @@ private void createRenderBlock() { int y = gregTechTileEntity.getYCoord(); int z = gregTechTileEntity.getZCoord(); - double xOffset = 16 * getExtendedFacing().getRelativeBackInWorld().offsetX; - double zOffset = 16 * getExtendedFacing().getRelativeBackInWorld().offsetZ; - double yOffset = 16 * getExtendedFacing().getRelativeBackInWorld().offsetY; + double xOffset = 122 * getExtendedFacing().getRelativeBackInWorld().offsetX; + double zOffset = 122 * getExtendedFacing().getRelativeBackInWorld().offsetZ; + double yOffset = 122 * getExtendedFacing().getRelativeBackInWorld().offsetY; this.getBaseMetaTileEntity() .getWorld() @@ -480,24 +574,76 @@ private void createRenderBlock() { rendererTileEntity.setRenderSize(20); rendererTileEntity.setRenderRotationSpeed(5); + + switch (ringAmount) { + case 2 -> { + buildPiece(STRUCTURE_PIECE_FIRST_RING_AIR, null, false, 63, 14, -59); + buildPiece(STRUCTURE_PIECE_SECOND_RING_AIR, null, false, 55, 11, -67); + } + case 3 -> { + buildPiece(STRUCTURE_PIECE_FIRST_RING_AIR, null, false, 63, 14, -59); + buildPiece(STRUCTURE_PIECE_SECOND_RING_AIR, null, false, 55, 11, -67); + buildPiece(STRUCTURE_PIECE_THIRD_RING_AIR, null, false, 47, 13, -76); + } + default -> { + buildPiece(STRUCTURE_PIECE_FIRST_RING_AIR, null, false, 63, 14, -59); + } + } + + isRenderActive = true; + } + + private void destroyRenderer() { + + IGregTechTileEntity gregTechTileEntity = this.getBaseMetaTileEntity(); + + int x = gregTechTileEntity.getXCoord(); + int y = gregTechTileEntity.getYCoord(); + int z = gregTechTileEntity.getZCoord(); + + double xOffset = 122 * getExtendedFacing().getRelativeBackInWorld().offsetX; + double zOffset = 122 * getExtendedFacing().getRelativeBackInWorld().offsetZ; + double yOffset = 122 * getExtendedFacing().getRelativeBackInWorld().offsetY; + + this.getBaseMetaTileEntity() + .getWorld() + .setBlock((int) (x + xOffset), (int) (y + yOffset), (int) (z + zOffset), Blocks.air); + + switch (ringAmount) { + case 2 -> { + buildPiece(STRUCTURE_PIECE_FIRST_RING, null, false, 63, 14, -59); + buildPiece(STRUCTURE_PIECE_SECOND_RING, null, false, 55, 11, -67); + } + case 3 -> { + buildPiece(STRUCTURE_PIECE_FIRST_RING, null, false, 63, 14, -59); + buildPiece(STRUCTURE_PIECE_SECOND_RING, null, false, 55, 11, -67); + buildPiece(STRUCTURE_PIECE_THIRD_RING, null, false, 47, 13, -76); + } + default -> { + buildPiece(STRUCTURE_PIECE_FIRST_RING, null, false, 63, 14, -59); + } + } + + isRenderActive = false; + } + + @Override + public void onBlockDestroyed() { + super.onBlockDestroyed(); + destroyRenderer(); } @Override public String[] getInfoData() { ArrayList<String> str = new ArrayList<>(Arrays.asList(super.getInfoData())); - str.add(TOOLTIP_BAR); + str.add(SCANNER_INFO_BAR); str.add("Number of Rings: " + EnumChatFormatting.GOLD + ringAmount); str.add("Total Upgrades Unlocked: " + EnumChatFormatting.GOLD + getTotalActiveUpgrades()); str.add("Connected Modules: " + EnumChatFormatting.GOLD + moduleHatches.size()); - str.add(TOOLTIP_BAR); + str.add(SCANNER_INFO_BAR); return str.toArray(new String[0]); } - @Override - public final void onScrewdriverRightClick(ForgeDirection side, EntityPlayer aPlayer, float aX, float aY, float aZ) { - createRenderBlock(); - } - @Override public void onRemoval() { if (moduleHatches != null && moduleHatches.size() > 0) { @@ -528,6 +674,7 @@ public void addUIWidgets(ModularWindow.Builder builder, UIBuildContext buildCont buildContext.addSyncedWindow(MILESTONE_WINDOW_ID, this::createMilestoneWindow); buildContext.addSyncedWindow(INDIVIDUAL_MILESTONE_WINDOW_ID, this::createIndividualMilestoneWindow); buildContext.addSyncedWindow(MANUAL_INSERTION_WINDOW_ID, this::createManualInsertionWindow); + buildContext.addSyncedWindow(GENERAL_INFO_WINDOW_ID, this::createGeneralInfoWindow); builder.widget( new ButtonWidget().setOnClick( (clickData, widget) -> { @@ -571,6 +718,7 @@ public void addUIWidgets(ModularWindow.Builder builder, UIBuildContext buildCont .setSize(74, 34)) .widget(createPowerSwitchButton()) .widget(createBatteryButton(builder)) + .widget(createEjectionSwitch(builder)) .widget(new FakeSyncWidget.BooleanSyncer(() -> getBaseMetaTileEntity().isAllowedToWork(), val -> { if (val) { getBaseMetaTileEntity().enableWorking(); @@ -605,10 +753,21 @@ public void addUIWidgets(ModularWindow.Builder builder, UIBuildContext buildCont button.add(TecTechUITextures.BUTTON_CELESTIAL_32x32); button.add(TecTechUITextures.OVERLAY_BUTTON_FLAG); return button.toArray(new IDrawable[0]); + }) .addTooltip(translateToLocal("fog.button.milestones.tooltip")) .setTooltipShowUpDelay(TOOLTIP_DELAY) - .setPos(174, 91)); + .setPos(174, 91)) + .widget( + new ButtonWidget().setOnClick( + (clickData, widget) -> { + if (!widget.isClient()) widget.getContext() + .openSyncedWindow(GENERAL_INFO_WINDOW_ID); + }) + .setSize(18, 18) + .addTooltip(translateToLocal("gt.blockmachines.multimachine.FOG.clickhere")) + .setPos(172, 67) + .setTooltipShowUpDelay(TOOLTIP_DELAY)); } @Override @@ -647,6 +806,40 @@ protected ButtonWidget createPowerSwitchButton() { return (ButtonWidget) button; } + protected ButtonWidget createEjectionSwitch(IWidgetBuilder<?> builder) { + Widget button = new ButtonWidget().setOnClick((clickData, widget) -> { + if (upgrades[30]) { + gravitonShardEjection = !gravitonShardEjection; + } + }) + .setPlayClickSound(upgrades[30]) + .setBackground(() -> { + List<UITexture> ret = new ArrayList<>(); + if (!upgrades[30]) { + return ret.toArray(new IDrawable[0]); + } + if (gravitonShardEjection) { + ret.add(TecTechUITextures.BUTTON_CELESTIAL_32x32); + ret.add(TecTechUITextures.OVERLAY_EJECTION_ON); + } else { + ret.add(TecTechUITextures.BUTTON_CELESTIAL_32x32); + ret.add(TecTechUITextures.OVERLAY_EJECTION_LOCKED); + } + return ret.toArray(new IDrawable[0]); + }) + .attachSyncer( + new FakeSyncWidget.BooleanSyncer(() -> gravitonShardEjection, val -> gravitonShardEjection = val), + builder) + .setPos(26, 91) + .setSize(16, 16) + .attachSyncer(new FakeSyncWidget.BooleanSyncer(() -> upgrades[30], val -> upgrades[30] = val), builder); + if (upgrades[30]) { + button.addTooltip(translateToLocal("fog.button.ejection.tooltip")); + button.setTooltipShowUpDelay(TOOLTIP_DELAY); + } + return (ButtonWidget) button; + } + protected Widget createBatteryButton(IWidgetBuilder<?> builder) { Widget button = new ButtonWidget().setOnClick((clickData, widget) -> { TecTech.proxy.playSound(getBaseMetaTileEntity(), "fx_click"); @@ -750,6 +943,7 @@ protected ModularWindow createFuelConfigWindow(final EntityPlayer player) { .addTooltip(translateToLocal("gt.blockmachines.multimachine.FOG.fuelinfo.2")) .addTooltip(translateToLocal("gt.blockmachines.multimachine.FOG.fuelinfo.3")) .addTooltip(translateToLocal("gt.blockmachines.multimachine.FOG.fuelinfo.4")) + .addTooltip(translateToLocal("gt.blockmachines.multimachine.FOG.fuelinfo.5")) .setTooltipShowUpDelay(TOOLTIP_DELAY)) .widget( TextWidget.localised("gt.blockmachines.multimachine.FOG.fueltype") @@ -922,72 +1116,56 @@ protected ModularWindow createMilestoneWindow(final EntityPlayer player) { .setTexture(TecTechUITextures.PROGRESSBAR_GODFORGE_MILESTONE_RED, 130) .setSynced(true, false) .setSize(130, 7) - .setPos(37, 70) - .addTooltip(milestoneProgressText(0, false)) - .setTooltipShowUpDelay(TOOLTIP_DELAY)) + .setPos(37, 70)) .widget( new ProgressBar().setProgress(() -> recipeMilestonePercentage) .setDirection(ProgressBar.Direction.RIGHT) .setTexture(TecTechUITextures.PROGRESSBAR_GODFORGE_MILESTONE_PURPLE, 130) .setSynced(true, false) .setSize(130, 7) - .setPos(233, 70) - .addTooltip(milestoneProgressText(1, false)) - .setTooltipShowUpDelay(TOOLTIP_DELAY)) + .setPos(233, 70)) .widget( new ProgressBar().setProgress(() -> fuelMilestonePercentage) .setDirection(ProgressBar.Direction.RIGHT) .setTexture(TecTechUITextures.PROGRESSBAR_GODFORGE_MILESTONE_BLUE, 130) .setSynced(true, false) .setSize(130, 7) - .setPos(37, 215) - .addTooltip(milestoneProgressText(2, false)) - .setTooltipShowUpDelay(TOOLTIP_DELAY)) + .setPos(37, 215)) .widget( new ProgressBar().setProgress(() -> structureMilestonePercentage) .setDirection(ProgressBar.Direction.RIGHT) .setTexture(TecTechUITextures.PROGRESSBAR_GODFORGE_MILESTONE_RAINBOW, 130) .setSynced(true, false) .setSize(130, 7) - .setPos(233, 215) - .addTooltip(milestoneProgressText(3, false)) - .setTooltipShowUpDelay(TOOLTIP_DELAY)) + .setPos(233, 215)) .widget( new ProgressBar().setProgress(() -> invertedPowerMilestonePercentage) .setDirection(ProgressBar.Direction.LEFT) .setTexture(TecTechUITextures.PROGRESSBAR_GODFORGE_MILESTONE_RED_INVERTED, 130) .setSynced(true, false) .setSize(130, 7) - .setPos(37, 70) - .addTooltip(milestoneProgressText(0, false)) - .setTooltipShowUpDelay(TOOLTIP_DELAY)) + .setPos(37, 70)) .widget( new ProgressBar().setProgress(() -> invertedRecipeMilestonePercentage) .setDirection(ProgressBar.Direction.LEFT) .setTexture(TecTechUITextures.PROGRESSBAR_GODFORGE_MILESTONE_PURPLE_INVERTED, 130) .setSynced(true, false) .setSize(130, 7) - .setPos(233, 70) - .addTooltip(milestoneProgressText(1, false)) - .setTooltipShowUpDelay(TOOLTIP_DELAY)) + .setPos(233, 70)) .widget( new ProgressBar().setProgress(() -> invertedFuelMilestonePercentage) .setDirection(ProgressBar.Direction.LEFT) .setTexture(TecTechUITextures.PROGRESSBAR_GODFORGE_MILESTONE_BLUE_INVERTED, 130) .setSynced(true, false) .setSize(130, 7) - .setPos(37, 215) - .addTooltip(milestoneProgressText(2, false)) - .setTooltipShowUpDelay(TOOLTIP_DELAY)) + .setPos(37, 215)) .widget( new ProgressBar().setProgress(() -> invertedStructureMilestonePercentage) .setDirection(ProgressBar.Direction.LEFT) .setTexture(TecTechUITextures.PROGRESSBAR_GODFORGE_MILESTONE_RAINBOW_INVERTED, 130) .setSynced(true, false) .setSize(130, 7) - .setPos(233, 215) - .addTooltip(milestoneProgressText(3, false)) - .setTooltipShowUpDelay(TOOLTIP_DELAY)) + .setPos(233, 215)) .widget( ButtonWidget.closeWindowButton(true) .setPos(382, 6)); @@ -1076,7 +1254,21 @@ protected ModularWindow createIndividualMilestoneWindow(final EntityPlayer playe .setScale(0.7f) .setDefaultColor(EnumChatFormatting.WHITE) .setSize(140, 30) - .setPos(5, 90)); + .setPos(5, 90)) + .widget(new ButtonWidget().setOnClick((clickData, widget) -> { + TecTech.proxy.playSound(getBaseMetaTileEntity(), "fx_click"); + if (clickData.mouseButton == 0) { + noFormatting = !noFormatting; + } + }) + .setSize(10, 10) + .addTooltip(translateToLocal("fog.button.formatting.tooltip")) + .setBackground(TecTechUITextures.OVERLAY_CYCLIC_BLUE) + .setPos(5, 135) + .setTooltipShowUpDelay(TOOLTIP_DELAY) + .attachSyncer( + new FakeSyncWidget.BooleanSyncer(() -> noFormatting, val -> noFormatting = val), + builder)); return builder.build(); } @@ -1111,15 +1303,29 @@ private Widget createMilestoneButton(int milestoneID, int width, int height, Pos private int[] followupUpgrades = new int[] {}; private boolean allPrereqRequired = false; private boolean isUpradeSplitStart = false; + private boolean doesCurrentUpgradeRequireExtraMats = false; private boolean[] upgrades = new boolean[31]; + private boolean[] materialPaidUpgrades = new boolean[7]; protected ModularWindow createUpgradeTreeWindow(final EntityPlayer player) { final Scrollable scrollable = new Scrollable().setVerticalScroll(); final int PARENT_WIDTH = 300; - final int PARENT_HEIGHT = 1000; + final int PARENT_HEIGHT = 300; ModularWindow.Builder builder = ModularWindow.builder(PARENT_WIDTH, PARENT_HEIGHT); - scrollable.widget( - createUpgradeBox(0, 0, 3, new int[] {}, false, new int[] { 1 }, false, 0, new Pos2d(126, 56), scrollable)) + scrollable + .widget( + createUpgradeBox( + 0, + 0, + 3, + new int[] {}, + false, + new int[] { 1 }, + false, + true, + 0, + new Pos2d(126, 56), + scrollable)) .widget( createUpgradeBox( 1, @@ -1129,6 +1335,7 @@ protected ModularWindow createUpgradeTreeWindow(final EntityPlayer player) { false, new int[] { 2, 3 }, false, + false, 1, new Pos2d(126, 116), scrollable)) @@ -1141,6 +1348,7 @@ protected ModularWindow createUpgradeTreeWindow(final EntityPlayer player) { false, new int[] { 4, 5 }, false, + false, 1, new Pos2d(96, 176), scrollable)) @@ -1153,6 +1361,7 @@ protected ModularWindow createUpgradeTreeWindow(final EntityPlayer player) { false, new int[] { 5, 6 }, false, + false, 1, new Pos2d(156, 176), scrollable)) @@ -1165,6 +1374,7 @@ protected ModularWindow createUpgradeTreeWindow(final EntityPlayer player) { false, new int[] { 8 }, false, + false, 1, new Pos2d(66, 236), scrollable)) @@ -1177,6 +1387,7 @@ protected ModularWindow createUpgradeTreeWindow(final EntityPlayer player) { false, new int[] { 7 }, false, + true, 1, new Pos2d(126, 236), scrollable)) @@ -1189,6 +1400,7 @@ protected ModularWindow createUpgradeTreeWindow(final EntityPlayer player) { false, new int[] { 10 }, false, + false, 1, new Pos2d(186, 236), scrollable)) @@ -1201,6 +1413,7 @@ protected ModularWindow createUpgradeTreeWindow(final EntityPlayer player) { false, new int[] { 8, 9, 10 }, false, + true, 2, new Pos2d(126, 296), scrollable)) @@ -1213,6 +1426,7 @@ protected ModularWindow createUpgradeTreeWindow(final EntityPlayer player) { true, new int[] { 11 }, false, + false, 2, new Pos2d(56, 356), scrollable)) @@ -1225,6 +1439,7 @@ protected ModularWindow createUpgradeTreeWindow(final EntityPlayer player) { false, new int[] {}, false, + false, 2, new Pos2d(126, 356), scrollable)) @@ -1237,6 +1452,7 @@ protected ModularWindow createUpgradeTreeWindow(final EntityPlayer player) { true, new int[] { 11 }, false, + false, 2, new Pos2d(196, 356), scrollable)) @@ -1249,6 +1465,7 @@ protected ModularWindow createUpgradeTreeWindow(final EntityPlayer player) { false, new int[] { 12, 13, 14 }, false, + true, 2, new Pos2d(126, 416), scrollable)) @@ -1261,6 +1478,7 @@ protected ModularWindow createUpgradeTreeWindow(final EntityPlayer player) { false, new int[] { 17 }, true, + false, 3, new Pos2d(66, 476), scrollable)) @@ -1273,6 +1491,7 @@ protected ModularWindow createUpgradeTreeWindow(final EntityPlayer player) { false, new int[] { 18 }, true, + false, 3, new Pos2d(126, 476), scrollable)) @@ -1285,6 +1504,7 @@ protected ModularWindow createUpgradeTreeWindow(final EntityPlayer player) { false, new int[] { 15, 19 }, true, + false, 3, new Pos2d(186, 476), scrollable)) @@ -1297,6 +1517,7 @@ protected ModularWindow createUpgradeTreeWindow(final EntityPlayer player) { false, new int[] {}, false, + false, 4, new Pos2d(246, 496), scrollable)) @@ -1309,6 +1530,7 @@ protected ModularWindow createUpgradeTreeWindow(final EntityPlayer player) { false, new int[] {}, false, + false, 4, new Pos2d(6, 556), scrollable)) @@ -1321,6 +1543,7 @@ protected ModularWindow createUpgradeTreeWindow(final EntityPlayer player) { false, new int[] { 16, 20 }, false, + false, 3, new Pos2d(66, 536), scrollable)) @@ -1333,6 +1556,7 @@ protected ModularWindow createUpgradeTreeWindow(final EntityPlayer player) { false, new int[] { 21 }, false, + false, 3, new Pos2d(126, 536), scrollable)) @@ -1345,6 +1569,7 @@ protected ModularWindow createUpgradeTreeWindow(final EntityPlayer player) { false, new int[] { 22 }, false, + false, 3, new Pos2d(186, 536), scrollable)) @@ -1357,6 +1582,7 @@ protected ModularWindow createUpgradeTreeWindow(final EntityPlayer player) { false, new int[] { 23 }, false, + false, 3, new Pos2d(66, 596), scrollable)) @@ -1369,6 +1595,7 @@ protected ModularWindow createUpgradeTreeWindow(final EntityPlayer player) { false, new int[] { 23 }, false, + false, 3, new Pos2d(126, 596), scrollable)) @@ -1381,6 +1608,7 @@ protected ModularWindow createUpgradeTreeWindow(final EntityPlayer player) { false, new int[] { 23 }, false, + false, 3, new Pos2d(186, 596), scrollable)) @@ -1393,6 +1621,7 @@ protected ModularWindow createUpgradeTreeWindow(final EntityPlayer player) { false, new int[] { 24 }, false, + false, 4, new Pos2d(126, 656), scrollable)) @@ -1405,6 +1634,7 @@ protected ModularWindow createUpgradeTreeWindow(final EntityPlayer player) { false, new int[] { 25 }, false, + false, 5, new Pos2d(126, 718), scrollable)) @@ -1417,6 +1647,7 @@ protected ModularWindow createUpgradeTreeWindow(final EntityPlayer player) { false, new int[] { 26 }, false, + false, 6, new Pos2d(36, 758), scrollable)) @@ -1429,6 +1660,7 @@ protected ModularWindow createUpgradeTreeWindow(final EntityPlayer player) { false, new int[] { 27 }, false, + true, 7, new Pos2d(36, 848), scrollable)) @@ -1441,6 +1673,7 @@ protected ModularWindow createUpgradeTreeWindow(final EntityPlayer player) { false, new int[] { 28 }, false, + false, 8, new Pos2d(126, 888), scrollable)) @@ -1453,6 +1686,7 @@ protected ModularWindow createUpgradeTreeWindow(final EntityPlayer player) { false, new int[] { 29 }, false, + false, 9, new Pos2d(216, 848), scrollable)) @@ -1465,6 +1699,7 @@ protected ModularWindow createUpgradeTreeWindow(final EntityPlayer player) { false, new int[] { 30 }, false, + true, 10, new Pos2d(216, 758), scrollable)) @@ -1477,6 +1712,7 @@ protected ModularWindow createUpgradeTreeWindow(final EntityPlayer player) { false, new int[] {}, false, + true, 12, new Pos2d(126, 798), scrollable)) @@ -1484,55 +1720,54 @@ protected ModularWindow createUpgradeTreeWindow(final EntityPlayer player) { builder.widget( new DrawableWidget().setDrawable(TecTechUITextures.BACKGROUND_STAR) - .setPos(0, 350) + .setPos(0, 0) .setSize(300, 300)) .widget( scrollable.setSize(292, 292) - .setPos(4, 354)) + .setPos(4, 4)) .widget( ButtonWidget.closeWindowButton(true) - .setPos(282, 354)); + .setPos(282, 4)); if (debugMode) { - builder.widget( - new MultiChildWidget() - .addChild( - new ButtonWidget().setOnClick((clickData, widget) -> upgrades = new boolean[31]) - .setSize(40, 15) - .setBackground(GT_UITextures.BUTTON_STANDARD) - .addTooltip(translateToLocal("fog.debug.resetbutton.tooltip")) - .setTooltipShowUpDelay(TOOLTIP_DELAY)) - .addChild( - new TextWidget(translateToLocal("fog.debug.resetbutton.text")) - .setTextAlignment(Alignment.Center) - .setScale(0.57f) - .setMaxWidth(36) - .setPos(3, 3)) - .addChild( - new NumericWidget().setSetter(val -> gravitonShardsAvailable = (int) val) - .setGetter(() -> gravitonShardsAvailable) - .setBounds(0, 112) - .setDefaultValue(0) - .setScrollValues(1, 4, 64) - .setTextAlignment(Alignment.Center) - .setTextColor(Color.WHITE.normal) - .setSize(25, 18) - .setPos(4, 16) - .addTooltip(translateToLocal("fog.debug.gravitonshardsetter.tooltip")) - .setTooltipShowUpDelay(TOOLTIP_DELAY) - .setBackground(GT_UITextures.BACKGROUND_TEXT_FIELD)) - .addChild( - new ButtonWidget().setOnClick((clickData, widget) -> Arrays.fill(upgrades, true)) - .setSize(40, 15) - .setBackground(GT_UITextures.BUTTON_STANDARD) - .addTooltip(translateToLocal("fog.debug.unlockall.text")) - .setTooltipShowUpDelay(TOOLTIP_DELAY) - .setPos(0, 35)) - .addChild( - new TextWidget(translateToLocal("fog.debug.unlockall.text")).setTextAlignment(Alignment.Center) - .setScale(0.57f) - .setMaxWidth(36) - .setPos(3, 38)) - .setPos(4, 354)); + builder.widget(new MultiChildWidget().addChild(new ButtonWidget().setOnClick((clickData, widget) -> { + upgrades = new boolean[31]; + materialPaidUpgrades = new boolean[7]; + }) + .setSize(40, 15) + .setBackground(GT_UITextures.BUTTON_STANDARD) + .addTooltip(translateToLocal("fog.debug.resetbutton.tooltip")) + .setTooltipShowUpDelay(TOOLTIP_DELAY)) + .addChild( + new TextWidget(translateToLocal("fog.debug.resetbutton.text")).setTextAlignment(Alignment.Center) + .setScale(0.57f) + .setMaxWidth(36) + .setPos(3, 3)) + .addChild( + new NumericWidget().setSetter(val -> gravitonShardsAvailable = (int) val) + .setGetter(() -> gravitonShardsAvailable) + .setBounds(0, 112) + .setDefaultValue(0) + .setScrollValues(1, 4, 64) + .setTextAlignment(Alignment.Center) + .setTextColor(Color.WHITE.normal) + .setSize(25, 18) + .setPos(4, 16) + .addTooltip(translateToLocal("fog.debug.gravitonshardsetter.tooltip")) + .setTooltipShowUpDelay(TOOLTIP_DELAY) + .setBackground(GT_UITextures.BACKGROUND_TEXT_FIELD)) + .addChild( + new ButtonWidget().setOnClick((clickData, widget) -> Arrays.fill(upgrades, true)) + .setSize(40, 15) + .setBackground(GT_UITextures.BUTTON_STANDARD) + .addTooltip(translateToLocal("fog.debug.unlockall.text")) + .setTooltipShowUpDelay(TOOLTIP_DELAY) + .setPos(0, 35)) + .addChild( + new TextWidget(translateToLocal("fog.debug.unlockall.text")).setTextAlignment(Alignment.Center) + .setScale(0.57f) + .setMaxWidth(36) + .setPos(3, 38)) + .setPos(4, 4)); } return builder.build(); @@ -1582,7 +1817,7 @@ protected ModularWindow createIndividualUpgradeWindow(final EntityPlayer player) int WIDTH = 250; int HEIGHT = 250; int LORE_POS = 110; - if (currentUpgradeID == 0) { + if (currentUpgradeID == 0 || currentUpgradeID == 30) { WIDTH = 300; HEIGHT = 300; LORE_POS = 85; @@ -1611,14 +1846,14 @@ protected ModularWindow createIndividualUpgradeWindow(final EntityPlayer player) .addChild( new TextWidget(translateToLocal("fog.upgrade.text." + (currentUpgradeID))) .setTextAlignment(Alignment.CenterLeft) - .setDefaultColor(0x9c9c9c) + .setDefaultColor(EnumChatFormatting.WHITE) .setSize(WIDTH - 15, LORE_POS - 30) .setPos(9, 30)) .addChild( new TextWidget( EnumChatFormatting.ITALIC + translateToLocal("fog.upgrade.lore." + (currentUpgradeID))) .setTextAlignment(Alignment.Center) - .setDefaultColor(0x9c9c9c) + .setDefaultColor(0xbbbdbd) .setSize(WIDTH - 15, (int) (HEIGHT * 0.9) - LORE_POS) .setPos(9, LORE_POS)) .addChild( @@ -1656,26 +1891,30 @@ protected ModularWindow createIndividualUpgradeWindow(final EntityPlayer player) unlockedPrereqUpgrades++; } } - if (allPrereqRequired) { - if (unlockedPrereqUpgrades == prereqUpgrades.length - && gravitonShardsAvailable >= gravitonShardCost) { - gravitonShardsAvailable -= gravitonShardCost; - gravitonShardsSpent += gravitonShardCost; - upgrades[currentUpgradeID] = true; - } - } else if (unlockedPrereqUpgrades > 0 || prereqUpgrades.length == 0) { - if (isUpradeSplitStart) { - for (int splitUpgrade : FIRST_SPLIT_UPGRADES) { - if (upgrades[splitUpgrade]) { - unlockedSplitUpgrades++; + if (!doesCurrentUpgradeRequireExtraMats + || materialPaidUpgrades[Arrays.asList(UPGRADE_MATERIAL_ID_CONVERSION) + .indexOf(currentUpgradeID)]) { + if (allPrereqRequired) { + if (unlockedPrereqUpgrades == prereqUpgrades.length + && gravitonShardsAvailable >= gravitonShardCost) { + gravitonShardsAvailable -= gravitonShardCost; + gravitonShardsSpent += gravitonShardCost; + upgrades[currentUpgradeID] = true; + } + } else if (unlockedPrereqUpgrades > 0 || prereqUpgrades.length == 0) { + if (isUpradeSplitStart) { + for (int splitUpgrade : FIRST_SPLIT_UPGRADES) { + if (upgrades[splitUpgrade]) { + unlockedSplitUpgrades++; + } } + unlockedSplitUpgrades -= (ringAmount - 1); + } + if (unlockedSplitUpgrades <= 0 && gravitonShardsAvailable >= gravitonShardCost) { + gravitonShardsAvailable -= gravitonShardCost; + gravitonShardsSpent += gravitonShardCost; + upgrades[currentUpgradeID] = true; } - unlockedSplitUpgrades -= (ringAmount - 1); - } - if (unlockedSplitUpgrades <= 0 && gravitonShardsAvailable >= gravitonShardCost) { - gravitonShardsAvailable -= gravitonShardCost; - gravitonShardsSpent += gravitonShardCost; - upgrades[currentUpgradeID] = true; } } } else { @@ -1706,22 +1945,51 @@ protected ModularWindow createIndividualUpgradeWindow(final EntityPlayer player) .setScale(0.7f) .setMaxWidth(36) .setPos(3, 5)) - .addChild(new ButtonWidget().setOnClick((clickData, widget) -> { - if (!widget.isClient()) { - widget.getContext() - .openSyncedWindow(MANUAL_INSERTION_WINDOW_ID); - widget.getContext() - .closeWindow(INDIVIDUAL_UPGRADE_WINDOW_ID); - widget.getContext() - .closeWindow(UPGRADE_TREE_WINDOW_ID); - } - }) - .setBackground(TecTechUITextures.BUTTON_CELESTIAL_32x32) - .setPos(50, 50)) .setPos(WIDTH / 2 - 21, (int) (HEIGHT * 0.9))); + if (Arrays.asList(UPGRADE_MATERIAL_ID_CONVERSION) + .contains(currentUpgradeID)) { + builder.widget(createMaterialInputButton(currentUpgradeID, WIDTH / 2 - 40, (int) (HEIGHT * 0.9), builder)); + } return builder.build(); } + private Widget createMaterialInputButton(int upgradeID, int xCoord, int yCoord, IWidgetBuilder<?> builder) { + return new ButtonWidget().setOnClick((clickData, widget) -> { + if (!widget.isClient() && doesCurrentUpgradeRequireExtraMats) { + widget.getContext() + .openSyncedWindow(MANUAL_INSERTION_WINDOW_ID); + widget.getContext() + .closeWindow(INDIVIDUAL_UPGRADE_WINDOW_ID); + widget.getContext() + .closeWindow(UPGRADE_TREE_WINDOW_ID); + } + }) + .setPlayClickSound(doesCurrentUpgradeRequireExtraMats) + .setBackground(() -> { + if (doesCurrentUpgradeRequireExtraMats) { + if (materialPaidUpgrades[Arrays.asList(UPGRADE_MATERIAL_ID_CONVERSION) + .indexOf(upgradeID)]) { + return new IDrawable[] { TecTechUITextures.BUTTON_BOXED_CHECKMARK_18x18 }; + } else { + return new IDrawable[] { TecTechUITextures.BUTTON_BOXED_EXCLAMATION_POINT_18x18 }; + } + } else { + return new IDrawable[] { GT_UITextures.TRANSPARENT }; + } + }) + .setPos(xCoord, yCoord) + .setSize(15, 15) + .dynamicTooltip(this::upgradeMaterialRequirements) + .addTooltip(EnumChatFormatting.GRAY + translateToLocal("fog.button.materialrequirements.tooltip.clickhere")) + .attachSyncer( + new FakeSyncWidget.BooleanSyncer( + () -> materialPaidUpgrades[Arrays.asList(UPGRADE_MATERIAL_ID_CONVERSION) + .indexOf(upgradeID)], + val -> materialPaidUpgrades[Arrays.asList(UPGRADE_MATERIAL_ID_CONVERSION) + .indexOf(upgradeID)] = val), + builder); + } + /** * @param upgradeID ID of the upgrade * @param colorCode Number deciding which colored background to use, 0 for blue, 1 for purple, 2 for @@ -1733,12 +2001,13 @@ protected ModularWindow createIndividualUpgradeWindow(final EntityPlayer player) * unlock this one. True means ALL, False means AT LEAST ONE * @param followingUpgradeIDs IDs of the following upgrades directly connected to the current one * @param isStartOfSplit Whether this upgrade is one of the initial split upgrades + * @param requiresExtraMaterials Whether this upgrade requires materials other than graviton shards to unlock * @param shardCost How many graviton shards are needed to unlock this upgrade * @param pos Position of the upgrade inside the scrollableWidget */ private Widget createUpgradeBox(int upgradeID, int colorCode, int milestone, int[] prerequisiteUpgradeIDs, - boolean requireAllPrerequisites, int[] followingUpgradeIDs, boolean isStartOfSplit, int shardCost, Pos2d pos, - IWidgetBuilder<?> builder) { + boolean requireAllPrerequisites, int[] followingUpgradeIDs, boolean isStartOfSplit, + boolean requiresExtraMaterials, int shardCost, Pos2d pos, IWidgetBuilder<?> builder) { return new MultiChildWidget().addChild(new ButtonWidget().setOnClick((clickData, widget) -> { currentUpgradeID = upgradeID; currentColorCode = colorCode; @@ -1748,51 +2017,46 @@ private Widget createUpgradeBox(int upgradeID, int colorCode, int milestone, int allPrereqRequired = requireAllPrerequisites; followupUpgrades = followingUpgradeIDs; isUpradeSplitStart = isStartOfSplit; + doesCurrentUpgradeRequireExtraMats = requiresExtraMaterials; if (!widget.isClient()) widget.getContext() .openSyncedWindow(INDIVIDUAL_UPGRADE_WINDOW_ID); }) .setSize(40, 15) .setBackground(() -> { if (upgrades[upgradeID]) { - return new IDrawable[] { GT_UITextures.BUTTON_STANDARD_PRESSED }; + return new IDrawable[] { TecTechUITextures.BUTTON_SPACE_PRESSED_32x16 }; } else { - return new IDrawable[] { GT_UITextures.BUTTON_STANDARD }; + return new IDrawable[] { TecTechUITextures.BUTTON_SPACE_32x16 }; } }) .addTooltip(translateToLocal("fog.upgrade.tt." + upgradeID)) .setTooltipShowUpDelay(TOOLTIP_DELAY)) .addChild( - new TextWidget(translateToLocal("fog.upgrade.tt." + upgradeID)).setTextAlignment(Alignment.Center) - .setScale(0.57f) - .setMaxWidth(36) - .setPos(3, 3)) + new TextWidget(translateToLocal("fog.upgrade.tt.short." + upgradeID)).setScale(0.8f) + .setDefaultColor(EnumChatFormatting.GOLD) + .setTextAlignment(Alignment.Center) + .setSize(34, 9) + .setPos(3, 4)) .setPos(pos) .attachSyncer( new FakeSyncWidget.BooleanSyncer(() -> upgrades[upgradeID], val -> upgrades[upgradeID] = val), builder); } - List<ItemStack> inputs = new ArrayList<>( - Arrays.asList( - ItemList.Electric_Motor_UMV.get(13L), - ItemList.Electric_Pump_UXV.get(32L), - ItemList.Electric_Piston_UXV.get(32L), - ItemList.Robot_Arm_UXV.get(32L), - ItemList.Superconducting_Magnet_Solenoid_UIV.get(48L), - ItemList.NaquadriaSupersolid.get(32L), - CustomItemList.astralArrayFabricator.get(36L), - CustomItemList.Machine_Multi_EyeOfHarmony.get(2L))); - protected ModularWindow createManualInsertionWindow(final EntityPlayer player) { + ItemStack[] inputs = godforgeUpgradeMats.get(currentUpgradeID); final int WIDTH = 189; - final int HEIGHT = 84; + final int HEIGHT = 106; final int PARENT_WIDTH = getGUIWidth(); final int PARENT_HEIGHT = getGUIHeight(); final MultiChildWidget columns = new MultiChildWidget(); final DynamicPositionedColumn column1 = new DynamicPositionedColumn(); final DynamicPositionedColumn column2 = new DynamicPositionedColumn(); final DynamicPositionedColumn column3 = new DynamicPositionedColumn(); - List<DynamicPositionedColumn> columnList = Arrays.asList(column1, column2, column3); + final DynamicPositionedColumn column4 = new DynamicPositionedColumn(); + final DynamicPositionedColumn column5 = new DynamicPositionedColumn(); + final DynamicPositionedColumn column6 = new DynamicPositionedColumn(); + List<DynamicPositionedColumn> columnList = Arrays.asList(column1, column2, column3, column4, column5, column6); ModularWindow.Builder builder = ModularWindow.builder(WIDTH, HEIGHT); builder.setBackground(GT_UITextures.BACKGROUND_SINGLEBLOCK_DEFAULT); builder.setGuiTint(getGUIColorization()); @@ -1809,66 +2073,413 @@ protected ModularWindow createManualInsertionWindow(final EntityPlayer player) { .phantom(false) .background(getGUITextureSet().getItemSlot()) .build() - .setPos(111, 6)); - for (int i = 0; i < inputs.size(); i++) { + .setPos(112, 6)); + builder.widget(new ButtonWidget().setOnClick((clickData, widget) -> { + if (!widget.isClient()) { + widget.getWindow() + .closeWindow(); + widget.getContext() + .openSyncedWindow(UPGRADE_TREE_WINDOW_ID); + widget.getContext() + .openSyncedWindow(INDIVIDUAL_UPGRADE_WINDOW_ID); + } + }) + .setBackground(ModularUITextures.VANILLA_BACKGROUND, new Text("x")) + .setPos(179, 0) + .setSize(10, 10)); + builder.widget(new MultiChildWidget().addChild(new ButtonWidget().setOnClick((clickData, widget) -> { + if (!widget.isClient()) { + ArrayList<ItemStack> list = new ArrayList<>(inputSlotHandler.getStacks()); + list.removeIf(Objects::isNull); + int foundInputs = 0; + int[] foundInputIndices = new int[inputs.length]; + for (ItemStack inputStack : list) { + for (ItemStack requiredStack : inputs) { + if (ItemStack.areItemStacksEqual(requiredStack, inputStack)) { + foundInputIndices[foundInputs] = inputSlotHandler.getStacks() + .indexOf(inputStack); + foundInputs++; + } + } + } + if (foundInputs == inputs.length) { + for (int index : foundInputIndices) { + inputSlotHandler.extractItem(index, inputSlotHandler.getStackInSlot(index).stackSize, false); + } + materialPaidUpgrades[Arrays.asList(UPGRADE_MATERIAL_ID_CONVERSION) + .indexOf(currentUpgradeID)] = true; + } + } + }) + .setPlayClickSound(true) + .setBackground(GT_UITextures.BUTTON_STANDARD) + .setSize(179, 18)) + .addChild( + new TextWidget(translateToLocal("gt.blockmachines.multimachine.FOG.consumeUpgradeMats")) + .setTextAlignment(Alignment.Center) + .setScale(0.75f) + .setPos(0, 1) + .setSize(179, 18)) + .setPos(5, 82) + .setSize(179, 16)); + + int uniqueItems = inputs.length; + for (int i = 0; i < 12; i++) { int index = i; int cleanDiv4 = index / 4; - builder.widget( - new DrawableWidget().setDrawable(GT_UITextures.BUTTON_STANDARD_PRESSED) - .setPos(6 + cleanDiv4 * 36, 6 + index % 4 * 18) - .setSize(18, 18)); - columnList.get(cleanDiv4) - .addChild( - new ItemDrawable().setItem(inputs.get(index)) - .asWidget() - .dynamicTooltip(() -> { - List<String> tooltip = new ArrayList<>(); - tooltip.add( - inputs.get(index) != null ? inputs.get(index) - .getDisplayName() : ""); - return tooltip; - }) - .setSize(16, 16)); - } - - columns.addChild( - column1.setSpace(2) - .setAlignment(MainAxisAlignment.SPACE_BETWEEN) - .setSize(34, 72) - .setPos(1, 1)); - columns.addChild( - column2.setSpace(2) - .setAlignment(MainAxisAlignment.SPACE_BETWEEN) - .setSize(34, 72) - .setPos(37, 1)); - columns.addChild( - column3.setSpace(2) - .setAlignment(MainAxisAlignment.SPACE_BETWEEN) - .setSize(34, 72) - .setPos(73, 1)); + if (i < uniqueItems) { + builder.widget( + new DrawableWidget().setDrawable(GT_UITextures.BUTTON_STANDARD_PRESSED) + .setPos(5 + cleanDiv4 * 36, 6 + index % 4 * 18) + .setSize(18, 18)); + columnList.get(cleanDiv4) + .addChild( + new ItemDrawable().setItem(inputs[index]) + .asWidget() + .dynamicTooltip(() -> { + List<String> tooltip = new ArrayList<>(); + tooltip.add(inputs[index] != null ? inputs[index].getDisplayName() : ""); + return tooltip; + }) + .setSize(16, 16)); + columnList.get(cleanDiv4 + 3) + .addChild( + new TextWidget("x" + inputs[i].stackSize).setTextAlignment(Alignment.CenterLeft) + .setScale(0.8f) + .setSize(18, 8)); + } else { + builder.widget( + new DrawableWidget().setDrawable(GT_UITextures.BUTTON_STANDARD_DISABLED) + .setPos(5 + cleanDiv4 * 36, 6 + index % 4 * 18) + .setSize(18, 18)); + } + } + + int counter = 0; + for (DynamicPositionedColumn column : columnList) { + int spacing = 2; + int xCord = 1 + counter * 36; + int yCord = 1; + if (counter > 2) { + spacing = 10; + xCord = 19 + (counter - 3) * 36; + yCord = 5; + } + columns.addChild( + column.setSpace(spacing) + .setAlignment(MainAxisAlignment.SPACE_BETWEEN) + .setSize(16, 72) + .setPos(xCord, yCord)); + counter++; + } + builder.widget( - columns.setSize(72, 72) - .setPos(6, 6)); + columns.setSize(108, 72) + .setPos(5, 6)); + + return builder.build(); + } + + protected ModularWindow createGeneralInfoWindow(final EntityPlayer player) { + final Scrollable scrollable = new Scrollable().setVerticalScroll(); + final int WIDTH = 300; + final int HEIGHT = 300; + ModularWindow.Builder builder = ModularWindow.builder(WIDTH, HEIGHT); + + builder.setDraggable(true); + scrollable.widget( + new TextWidget(EnumChatFormatting.BOLD + translateToLocal("gt.blockmachines.multimachine.FOG.introduction")) + .setDefaultColor(EnumChatFormatting.DARK_PURPLE) + .setTextAlignment(Alignment.TopCenter) + .setPos(7, 13) + .setSize(280, 15)) + .widget( + new TextWidget(translateToLocal("gt.blockmachines.multimachine.FOG.introductioninfotext")) + .setDefaultColor(EnumChatFormatting.GOLD) + .setTextAlignment(Alignment.CenterLeft) + .setPos(7, 30) + .setSize(280, 50)) + .widget( + new TextWidget( + EnumChatFormatting.BOLD + translateToLocal("gt.blockmachines.multimachine.FOG.tableofcontents")) + .setDefaultColor(EnumChatFormatting.AQUA) + .setTextAlignment(Alignment.CenterLeft) + .setPos(7, 80) + .setSize(150, 15)) + .widget( + new ButtonWidget().setOnClick((clickData, widget) -> scrollable.setVerticalScrollOffset(150)) + .setBackground( + new Text(EnumChatFormatting.BOLD + translateToLocal("gt.blockmachines.multimachine.FOG.fuel")) + .alignment(Alignment.CenterLeft) + .color(0x55ffff)) + .setPos(7, 95) + .setSize(150, 15)) + .widget( + new ButtonWidget().setOnClick((clickData, widget) -> scrollable.setVerticalScrollOffset(434)) + .setBackground( + new Text( + EnumChatFormatting.BOLD + translateToLocal("gt.blockmachines.multimachine.FOG.modules")) + .alignment(Alignment.CenterLeft) + .color(0x55ffff)) + .setPos(7, 110) + .setSize(150, 15)) + .widget( + new ButtonWidget().setOnClick((clickData, widget) -> scrollable.setVerticalScrollOffset(1088)) + .setBackground( + new Text( + EnumChatFormatting.BOLD + translateToLocal("gt.blockmachines.multimachine.FOG.upgrades")) + .alignment(Alignment.CenterLeft) + .color(0x55ffff)) + .setPos(7, 125) + .setSize(150, 15)) + .widget( + new ButtonWidget().setOnClick((clickData, widget) -> scrollable.setVerticalScrollOffset(1412)) + .setBackground( + new Text( + EnumChatFormatting.BOLD + translateToLocal("gt.blockmachines.multimachine.FOG.milestones")) + .alignment(Alignment.CenterLeft) + .color(0x55ffff)) + .setPos(7, 140) + .setSize(150, 15)) + .widget( + TextWidget.dynamicText(this::inversionHeaderText) + .setDefaultColor(EnumChatFormatting.WHITE) + .setTextAlignment(Alignment.CenterLeft) + .setPos(7, 155) + .setSize(150, 15)) + .widget(new ButtonWidget().setOnClick((clickData, widget) -> { + if (inversion) { + scrollable.setVerticalScrollOffset(1766); + } + }) + .setPlayClickSound(inversion) + .setPos(7, 155) + .setSize(150, 15) + .attachSyncer(new FakeSyncWidget.BooleanSyncer(() -> inversion, (val) -> inversion = val), scrollable)) + .widget( + new TextWidget( + EnumChatFormatting.BOLD + "§N" + translateToLocal("gt.blockmachines.multimachine.FOG.fuel")) + .setDefaultColor(EnumChatFormatting.DARK_PURPLE) + .setTextAlignment(Alignment.TopCenter) + .setPos(127, 160) + .setSize(40, 15)) + .widget( + new TextWidget(translateToLocal("gt.blockmachines.multimachine.FOG.fuelinfotext")) + .setDefaultColor(EnumChatFormatting.GOLD) + .setTextAlignment(Alignment.CenterLeft) + .setPos(7, 177) + .setSize(280, 250)) + .widget( + new TextWidget( + EnumChatFormatting.BOLD + "§N" + translateToLocal("gt.blockmachines.multimachine.FOG.modules")) + .setDefaultColor(EnumChatFormatting.DARK_PURPLE) + .setTextAlignment(Alignment.TopCenter) + .setPos(7, 440) + .setSize(280, 15)) + .widget( + new TextWidget(translateToLocal("gt.blockmachines.multimachine.FOG.moduleinfotext")) + .setDefaultColor(EnumChatFormatting.GOLD) + .setTextAlignment(Alignment.CenterLeft) + .setPos(7, 461) + .setSize(280, 620)) + .widget( + new TextWidget( + EnumChatFormatting.BOLD + "§N" + translateToLocal("gt.blockmachines.multimachine.FOG.upgrades")) + .setDefaultColor(EnumChatFormatting.DARK_PURPLE) + .setTextAlignment(Alignment.TopCenter) + .setPos(7, 1098) + .setSize(280, 15)) + .widget( + new TextWidget(translateToLocal("gt.blockmachines.multimachine.FOG.upgradeinfotext")) + .setDefaultColor(EnumChatFormatting.GOLD) + .setTextAlignment(Alignment.CenterLeft) + .setPos(7, 1115) + .setSize(280, 290)) + .widget( + new TextWidget( + EnumChatFormatting.BOLD + "§N" + translateToLocal("gt.blockmachines.multimachine.FOG.milestones")) + .setDefaultColor(EnumChatFormatting.DARK_PURPLE) + .setTextAlignment(Alignment.TopCenter) + .setPos(7, 1422) + .setSize(280, 15)) + .widget( + new TextWidget(translateToLocal("gt.blockmachines.multimachine.FOG.milestoneinfotext")) + .setDefaultColor(EnumChatFormatting.GOLD) + .setTextAlignment(Alignment.CenterLeft) + .setPos(7, 1439) + .setSize(280, 320)) + .widget( + TextWidget.dynamicText(this::inversionHeaderText) + .setDefaultColor(EnumChatFormatting.WHITE) + .setTextAlignment(Alignment.TopCenter) + .setPos(7, 1776) + .setSize(280, 15)) + .widget( + TextWidget.dynamicText(this::inversionInfoText) + .setDefaultColor(EnumChatFormatting.GOLD) + .setTextAlignment(Alignment.CenterLeft) + .setPos(7, 1793) + .setSize(280, 160)) + .widget( + new TextWidget("").setPos(7, 1965) + .setSize(10, 10)); + + builder.widget( + new DrawableWidget().setDrawable(TecTechUITextures.BACKGROUND_GLOW_WHITE) + .setPos(0, 0) + .setSize(300, 300)) + .widget( + scrollable.setSize(292, 292) + .setPos(4, 4)) + .widget( + ButtonWidget.closeWindowButton(true) + .setPos(284, 4)); + return builder.build(); } @Override public GT_Multiblock_Tooltip_Builder createTooltip() { final GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder(); - tt.addMachineType("Material Manipulator") // Machine Type: - .addInfo("Controller block for the Forge of Gods") // Controller - .addInfo("Uses a Star to to manipulate metals") - .addSeparator() - .beginStructureBlock(1, 4, 2, false) - .addStructureInfo("Output bus/hatch has to be the ME variant") - .addStructureInfo("Dot 2 of Input Hatch is the Fuel Input Hatch") - .addInputHatch("Any Infinite Spacetime Casing", 1) - .addInputHatch("Any Infinite Spacetime Casing", 2) // Fuel - // Input - // Hatch - .addInputBus("Any Infinite Spacetime Casing", 1) - .addOutputBus("Any Infinite Spacetime Casing", 1) - .addOutputHatch("Any Infinite Spacetime Casing", 1) + tt.addMachineType("Stellar Forge") + .addInfo(EnumChatFormatting.ITALIC + "Also known as Godforge or Gorge for short.") + .addInfo(TOOLTIP_BAR) + .addInfo("Controller block for the Godforge, a massive structure harnessing the thermal,") + .addInfo("gravitational and kinetic energy of a stabilised neutron star for material processing.") + .addInfo( + "This multiblock can house " + EnumChatFormatting.RED + + "up to 16 modules " + + EnumChatFormatting.GRAY + + "which utilize the star to energize materials") + .addInfo("to varying degrees, ranging from regular smelting to matter degeneration.") + .addInfo(TOOLTIP_BAR) + .addInfo( + "This multiblock has an " + EnumChatFormatting.GOLD + + "extensive upgrade tree " + + EnumChatFormatting.GRAY + + "which influences all of its functions,") + .addInfo( + "such as " + EnumChatFormatting.GOLD + + "unlocking new module types, increasing heat levels " + + EnumChatFormatting.GRAY + + "and " + + EnumChatFormatting.GOLD + + "granting") + .addInfo( + EnumChatFormatting.GOLD + "various processing speed bonuses. " + + EnumChatFormatting.GRAY + + "These upgrades can be unlocked by reaching") + .addInfo("certain milestones and/or spending materials.") + .addInfo(TOOLTIP_BAR) + .addInfo( + EnumChatFormatting.GREEN + + "Clicking on the logo in the controller gui opens an extensive information window,") + .addInfo("explaining everything there is to know about this multiblock.") + .addInfo(TOOLTIP_BAR) + .beginStructureBlock(126, 29, 186, false) + .addStructureInfo("The structure is too complex! See schematic for details.") + .addStructureInfo( + "Total blocks needed for the structure with " + EnumChatFormatting.DARK_PURPLE + + "1" + + EnumChatFormatting.GRAY + + "/" + + EnumChatFormatting.DARK_GREEN + + "2" + + EnumChatFormatting.GRAY + + "/" + + EnumChatFormatting.AQUA + + "3" + + EnumChatFormatting.GRAY + + " rings:") + .addStructureInfo( + EnumChatFormatting.DARK_PURPLE + "3943" + + EnumChatFormatting.GRAY + + "/" + + EnumChatFormatting.DARK_GREEN + + "7279" + + EnumChatFormatting.GRAY + + "/" + + EnumChatFormatting.AQUA + + "11005" + + EnumChatFormatting.GRAY + + " Transcendentally Amplified Magnetic Confinement Casing") + .addStructureInfo( + EnumChatFormatting.DARK_PURPLE + "2819" + + EnumChatFormatting.GRAY + + "/" + + EnumChatFormatting.DARK_GREEN + + "4831" + + EnumChatFormatting.GRAY + + "/" + + EnumChatFormatting.AQUA + + "6567" + + EnumChatFormatting.GRAY + + " Singularity Reinforced Stellar Shielding Casing") + .addStructureInfo( + EnumChatFormatting.DARK_PURPLE + "272" + + EnumChatFormatting.GRAY + + "/" + + EnumChatFormatting.DARK_GREEN + + "512" + + EnumChatFormatting.GRAY + + "/" + + EnumChatFormatting.AQUA + + "824" + + EnumChatFormatting.GRAY + + " Celestial Matter Guidance Casing") + .addStructureInfo( + EnumChatFormatting.DARK_PURPLE + "130" + + EnumChatFormatting.GRAY + + "/" + + EnumChatFormatting.DARK_GREEN + + "144" + + EnumChatFormatting.GRAY + + "/" + + EnumChatFormatting.AQUA + + "158" + + EnumChatFormatting.GRAY + + " Boundless Gravitationally Severed Structure Casing") + .addStructureInfo( + EnumChatFormatting.DARK_PURPLE + "9" + + EnumChatFormatting.GRAY + + "/" + + EnumChatFormatting.DARK_GREEN + + "54" + + EnumChatFormatting.GRAY + + "/" + + EnumChatFormatting.AQUA + + "155" + + EnumChatFormatting.GRAY + + " Spatially Transcendent Gravitational Lens Block") + .addStructureInfo( + EnumChatFormatting.DARK_PURPLE + "345" + + EnumChatFormatting.GRAY + + "/" + + EnumChatFormatting.DARK_GREEN + + "357" + + EnumChatFormatting.GRAY + + "/" + + EnumChatFormatting.AQUA + + "397" + + EnumChatFormatting.DARK_PURPLE + + " Remote" + + EnumChatFormatting.GRAY + + "/" + + EnumChatFormatting.DARK_GREEN + + "Medial" + + EnumChatFormatting.GRAY + + "/" + + EnumChatFormatting.AQUA + + "Central" + + EnumChatFormatting.GRAY + + " Graviton Flow Modulator") + .addStructureInfo( + EnumChatFormatting.GOLD + "36" + EnumChatFormatting.GRAY + " Stellar Energy Siphon Casing") + .addStructureInfo("--------------------------------------------") + .addStructureInfo("Requires " + EnumChatFormatting.GOLD + 1 + EnumChatFormatting.GRAY + " Input Hatch") + .addStructureInfo("Requires " + EnumChatFormatting.GOLD + 1 + EnumChatFormatting.GRAY + " Output Bus") + .addStructureInfo("Requires " + EnumChatFormatting.GOLD + 1 + EnumChatFormatting.GRAY + " Input Bus") + .addStructureInfo("--------------------------------------------") .toolTipFinisher(CommonValues.GODFORGE_MARK); return tt; } @@ -1880,7 +2491,9 @@ public boolean energyFlowOnRunningTick(ItemStack aStack, boolean allowProduction @Override public String[] getStructureDescription(ItemStack stackSize) { - return new String[] { "Forge of Gods multiblock" }; + return new String[] { EnumChatFormatting.AQUA + translateToLocal("tt.keyphrase.Hint_Details") + ":", + translateToLocal("gt.blockmachines.multimachine.FOG.hint.0"), + translateToLocal("gt.blockmachines.multimachine.FOG.hint.1") }; } public int getFuelType() { @@ -1955,7 +2568,8 @@ private void checkInversionStatus() { private Text inversionStatusText() { String inversionStatus = ""; if (inversion) { - inversionStatus = EnumChatFormatting.BOLD + translateToLocal("gt.blockmachines.multimachine.FOG.inversion"); + inversionStatus = EnumChatFormatting.BOLD + + translateToLocal("gt.blockmachines.multimachine.FOG.inversionactive"); } return new Text(inversionStatus); } @@ -2072,7 +2686,7 @@ private void determineMilestoneProgress() { } } - if (milestoneProgress[3] < 7) { + if (milestoneProgress[3] <= 7) { structureMilestonePercentage = totalExtensionsBuilt / 7f; } if (inversion) { @@ -2100,6 +2714,18 @@ private void determineGravitonShardAmount() { gravitonShardsAvailable = sum - gravitonShardsSpent; } + private void ejectGravitonShards() { + if (mOutputBusses.size() == 1) { + while (gravitonShardsAvailable >= 64) { + addOutput(GT_OreDictUnificator.get(OrePrefixes.gem, MaterialsUEVplus.GravitonShard, 64)); + gravitonShardsAvailable -= 64; + } + addOutput( + GT_OreDictUnificator.get(OrePrefixes.gem, MaterialsUEVplus.GravitonShard, gravitonShardsAvailable)); + gravitonShardsAvailable = 0; + } + } + private Text gravitonShardAmountText(int milestoneID) { int sum; int progress = milestoneProgress[milestoneID]; @@ -2115,14 +2741,13 @@ private Text totalMilestoneProgress(int milestoneID) { long progress; BigInteger bigProgress; String suffix; - boolean shift = Interactable.hasShiftDown(); switch (milestoneID) { case 1 -> { suffix = translateToLocal("gt.blockmachines.multimachine.FOG.recipes"); progress = totalRecipesProcessed; } case 2 -> { - suffix = translateToLocal("gt.blockmachines.multimachine.FOG.fuel"); + suffix = translateToLocal("gt.blockmachines.multimachine.FOG.fuelconsumed"); progress = totalFuelConsumed; } case 3 -> { @@ -2132,7 +2757,7 @@ private Text totalMilestoneProgress(int milestoneID) { default -> { suffix = translateToLocal("gt.blockmachines.multimachine.FOG.power"); bigProgress = totalPowerConsumed; - if (!shift && (totalPowerConsumed.compareTo(BigInteger.valueOf(1_000L)) > 0)) { + if (!noFormatting && (totalPowerConsumed.compareTo(BigInteger.valueOf(1_000L)) > 0)) { return new Text( translateToLocal("gt.blockmachines.multimachine.FOG.totalprogress") + ": " + EnumChatFormatting.GRAY @@ -2149,7 +2774,7 @@ private Text totalMilestoneProgress(int milestoneID) { } } } - if (!shift) { + if (!noFormatting) { return new Text( translateToLocal("gt.blockmachines.multimachine.FOG.totalprogress") + ": " + EnumChatFormatting.GRAY @@ -2180,7 +2805,7 @@ private Text milestoneProgressText(int milestoneID, boolean formatting) { String suffix; String progressText = translateToLocal("gt.blockmachines.multimachine.FOG.progress"); Text done = new Text(translateToLocal("gt.blockmachines.multimachine.FOG.milestonecomplete")); - if (Interactable.hasShiftDown()) { + if (noFormatting) { formatting = false; done = new Text( translateToLocal("gt.blockmachines.multimachine.FOG.milestonecomplete") + EnumChatFormatting.DARK_RED @@ -2219,7 +2844,7 @@ private Text milestoneProgressText(int milestoneID, boolean formatting) { } case 2: if (milestoneProgress[2] < 7 || inversion) { - suffix = translateToLocal("gt.blockmachines.multimachine.FOG.fuel"); + suffix = translateToLocal("gt.blockmachines.multimachine.FOG.fuelconsumed"); if (inversion) { max = FUEL_MILESTONE_T7_CONSTANT * (milestoneProgress[2] - 5); } else { @@ -2247,10 +2872,37 @@ private Text milestoneProgressText(int milestoneID, boolean formatting) { } } + private Text inversionHeaderText() { + return inversion + ? new Text( + EnumChatFormatting.BOLD + "§k2" + + EnumChatFormatting.RESET + + EnumChatFormatting.WHITE + + EnumChatFormatting.BOLD + + translateToLocal("gt.blockmachines.multimachine.FOG.inversion") + + EnumChatFormatting.BOLD + + "§k2") + : new Text(""); + } + + private Text inversionInfoText() { + return inversion ? new Text(translateToLocal("gt.blockmachines.multimachine.FOG.inversioninfotext")) + : new Text(""); + } + + private List<String> upgradeMaterialRequirements() { + if (materialPaidUpgrades[Arrays.asList(UPGRADE_MATERIAL_ID_CONVERSION) + .indexOf(currentUpgradeID)]) { + return ImmutableList.of(translateToLocal("fog.button.materialrequirementsmet.tooltip")); + } + return ImmutableList.of(translateToLocal("fog.button.materialrequirements.tooltip")); + } + private void increaseBattery(int amount) { if ((internalBattery + amount) <= maxBatteryCharge) { internalBattery += amount; } else { + internalBattery = maxBatteryCharge; batteryCharging = false; } } @@ -2263,6 +2915,7 @@ public void reduceBattery(int amount) { module.disconnect(); } } + destroyRenderer(); } else { internalBattery -= amount; totalFuelConsumed += amount; @@ -2302,8 +2955,9 @@ public void setItemNBT(NBTTagCompound NBT) { NBT.setLong("totalRecipesProcessed", totalRecipesProcessed); NBT.setLong("totalFuelConsumed", totalFuelConsumed); NBT.setInteger("starFuelStored", stellarFuelAmount); + NBT.setBoolean("gravitonShardEjection", gravitonShardEjection); - // Store booleanArray of all upgrades + // Store booleanArrays of all upgrades NBTTagCompound upgradeBooleanArrayNBTTag = new NBTTagCompound(); int upgradeIndex = 0; @@ -2313,6 +2967,16 @@ public void setItemNBT(NBTTagCompound NBT) { } NBT.setTag("upgrades", upgradeBooleanArrayNBTTag); + + NBTTagCompound upgradeMaterialBooleanArrayNBTTag = new NBTTagCompound(); + + int upgradeMaterialIndex = 0; + for (Boolean upgrade : materialPaidUpgrades) { + upgradeBooleanArrayNBTTag.setBoolean("upgradeMaterial" + upgradeMaterialIndex, upgrade); + upgradeMaterialIndex++; + } + + NBT.setTag("upgradeMaterials", upgradeMaterialBooleanArrayNBTTag); super.saveNBTData(NBT); } @@ -2329,17 +2993,30 @@ public void saveNBTData(NBTTagCompound NBT) { NBT.setLong("totalRecipesProcessed", totalRecipesProcessed); NBT.setLong("totalFuelConsumed", totalFuelConsumed); NBT.setInteger("starFuelStored", stellarFuelAmount); + NBT.setBoolean("gravitonShardEjection", gravitonShardEjection); + NBT.setBoolean("isRenderActive", isRenderActive); + NBT.setInteger("ringAmount", ringAmount); // Store booleanArray of all upgrades NBTTagCompound upgradeBooleanArrayNBTTag = new NBTTagCompound(); int upgradeIndex = 0; - for (Boolean upgrade : upgrades) { + for (boolean upgrade : upgrades) { upgradeBooleanArrayNBTTag.setBoolean("upgrade" + upgradeIndex, upgrade); upgradeIndex++; } NBT.setTag("upgrades", upgradeBooleanArrayNBTTag); + + NBTTagCompound upgradeMaterialBooleanArrayNBTTag = new NBTTagCompound(); + + int upgradeMaterialIndex = 0; + for (boolean upgrade : materialPaidUpgrades) { + upgradeMaterialBooleanArrayNBTTag.setBoolean("upgradeMaterial" + upgradeMaterialIndex, upgrade); + upgradeMaterialIndex++; + } + + NBT.setTag("upgradeMaterials", upgradeMaterialBooleanArrayNBTTag); super.saveNBTData(NBT); } @@ -2356,6 +3033,9 @@ public void loadNBTData(NBTTagCompound NBT) { totalRecipesProcessed = NBT.getLong("totalRecipesProcessed"); totalFuelConsumed = NBT.getLong("totalFuelConsumed"); stellarFuelAmount = NBT.getInteger("starFuelStored"); + gravitonShardEjection = NBT.getBoolean("gravitonShardEjection"); + isRenderActive = NBT.getBoolean("isRenderActive"); + ringAmount = NBT.getInteger("ringAmount"); NBTTagCompound tempBooleanTag = NBT.getCompoundTag("upgrades"); @@ -2364,6 +3044,13 @@ public void loadNBTData(NBTTagCompound NBT) { upgrades[upgradeIndex] = upgrade; } + tempBooleanTag = NBT.getCompoundTag("upgradeMaterials"); + + for (int upgradeIndex = 0; upgradeIndex < 7; upgradeIndex++) { + boolean upgrade = tempBooleanTag.getBoolean("upgradeMaterial" + upgradeIndex); + materialPaidUpgrades[upgradeIndex] = upgrade; + } + super.loadNBTData(NBT); } diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/godforge_modules/GT_MetaTileEntity_EM_BaseModule.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/godforge_modules/GT_MetaTileEntity_EM_BaseModule.java index 86e8e979936..16d81c8529d 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/godforge_modules/GT_MetaTileEntity_EM_BaseModule.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/godforge_modules/GT_MetaTileEntity_EM_BaseModule.java @@ -12,6 +12,7 @@ import java.util.List; import java.util.UUID; +import net.minecraft.block.Block; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -21,7 +22,6 @@ import com.github.technus.tectech.thing.gui.TecTechUITextures; import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.render.TT_RenderedExtendedFacingTexture; import com.gtnewhorizon.structurelib.structure.IStructureDefinition; import com.gtnewhorizon.structurelib.structure.StructureDefinition; import com.gtnewhorizons.modularui.api.drawable.IDrawable; @@ -52,6 +52,7 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.recipe.RecipeMap; import gregtech.api.recipe.RecipeMaps; +import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_StructureUtility; public class GT_MetaTileEntity_EM_BaseModule extends GT_MetaTileEntity_MultiblockBase_EM { @@ -79,37 +80,8 @@ public class GT_MetaTileEntity_EM_BaseModule extends GT_MetaTileEntity_Multibloc private static final String STRUCTURE_PIECE_MAIN = "main"; private static final int VOLTAGE_WINDOW_ID = 9; private static final int TEXTURE_INDEX = 960; - private static final IStructureDefinition<GT_MetaTileEntity_EM_BaseModule> STRUCTURE_DEFINITION = StructureDefinition - .<GT_MetaTileEntity_EM_BaseModule>builder() - .addShape( - STRUCTURE_PIECE_MAIN, - new String[][] { { " ", " BBB ", " BBBBB ", " BB~BB ", " BBBBB ", " BBB ", " " }, - { " CCC ", " CFFFC ", "CFFFFFC", "CFFFFFC", "CFFFFFC", " CFFFC ", " CCC " }, - { " ", " ", " E ", " EAE ", " E ", " ", " " }, - { " ", " ", " E ", " EAE ", " E ", " ", " " }, - { " ", " ", " E ", " EAE ", " E ", " ", " " }, - { " ", " ", " E ", " EAE ", " E ", " ", " " }, - { " ", " ", " ", " D ", " ", " ", " " }, - { " ", " ", " ", " D ", " ", " ", " " }, - { " ", " ", " ", " D ", " ", " ", " " }, - { " ", " ", " ", " D ", " ", " ", " " }, - { " ", " ", " ", " D ", " ", " ", " " }, - { " ", " ", " ", " G ", " ", " ", " " } }) - .addElement('A', ofBlock(GregTech_API.sSolenoidCoilCasings, 9)) - .addElement( - 'B', - GT_StructureUtility.ofHatchAdderOptional( - GT_MetaTileEntity_EM_BaseModule::addClassicToMachineList, - TEXTURE_INDEX, - 1, - GodforgeCasings, - 0)) - .addElement('C', ofBlock(GodforgeCasings, 0)) - .addElement('D', ofBlock(GodforgeCasings, 1)) - .addElement('E', ofBlock(GodforgeCasings, 2)) - .addElement('F', ofBlock(GodforgeCasings, 3)) - .addElement('G', ofBlock(GodforgeCasings, 4)) - .build(); + protected static final String TOOLTIP_BAR = EnumChatFormatting.AQUA + + "--------------------------------------------------------------------------"; public GT_MetaTileEntity_EM_BaseModule(int aID, String aName, String aNameRegional) { super(aID, aName, aNameRegional); @@ -277,7 +249,10 @@ public long getMaxInputVoltage() { @Override public IStructureDefinition<? extends GT_MetaTileEntity_MultiblockBase_EM> getStructure_EM() { - return STRUCTURE_DEFINITION; + if (this instanceof GT_MetaTileEntity_EM_SmeltingModule) { + return getStructureDefinition(GregTech_API.sBlockCasings5, 12); + } + return getStructureDefinition(GodforgeCasings, 8); } @Override @@ -327,7 +302,8 @@ public void addUIWidgets(ModularWindow.Builder builder, UIBuildContext buildCont .widget(createInputSeparationButton(builder)) .widget(createBatchModeButton(builder)) .widget(createLockToSingleRecipeButton(builder)) - .widget(createVoltageButton(builder)); + .widget(createVoltageButton(builder)) + .widget(createStructureUpdateButton(builder)); } protected Widget createVoltageButton(IWidgetBuilder<?> builder) { @@ -352,7 +328,7 @@ protected Widget createVoltageButton(IWidgetBuilder<?> builder) { }) .addTooltip(translateToLocal("fog.button.voltageconfig.tooltip.01")) .setTooltipShowUpDelay(TOOLTIP_DELAY) - .setPos(174, 129) + .setPos(174, 112) .setSize(16, 16) .attachSyncer( new FakeSyncWidget.BooleanSyncer(() -> isVoltageConfigUnlocked, val -> isVoltageConfigUnlocked = val), @@ -437,6 +413,41 @@ public boolean willExplodeInRain() { return false; } + private static IStructureDefinition<GT_MetaTileEntity_EM_BaseModule> getStructureDefinition(Block coilBlock, + int meta) { + return StructureDefinition.<GT_MetaTileEntity_EM_BaseModule>builder() + .addShape( + STRUCTURE_PIECE_MAIN, + new String[][] { { " ", " BBB ", " BBBBB ", " BB~BB ", " BBBBB ", " BBB ", " " }, + { " CCC ", " CFFFC ", "CFFFFFC", "CFFFFFC", "CFFFFFC", " CFFFC ", " CCC " }, + { " ", " ", " E ", " EAE ", " E ", " ", " " }, + { " ", " ", " E ", " EAE ", " E ", " ", " " }, + { " ", " ", " E ", " EAE ", " E ", " ", " " }, + { " ", " ", " E ", " EAE ", " E ", " ", " " }, + { " ", " ", " E ", " EAE ", " E ", " ", " " }, + { " ", " ", " ", " D ", " ", " ", " " }, + { " ", " ", " ", " D ", " ", " ", " " }, + { " ", " ", " ", " D ", " ", " ", " " }, + { " ", " ", " ", " D ", " ", " ", " " }, + { " ", " ", " ", " D ", " ", " ", " " }, + { " ", " ", " ", " G ", " ", " ", " " } }) + .addElement('A', ofBlock(coilBlock, meta)) + .addElement( + 'B', + GT_StructureUtility.ofHatchAdderOptional( + GT_MetaTileEntity_EM_BaseModule::addClassicToMachineList, + TEXTURE_INDEX, + 1, + GodforgeCasings, + 0)) + .addElement('C', ofBlock(GodforgeCasings, 0)) + .addElement('D', ofBlock(GodforgeCasings, 1)) + .addElement('E', ofBlock(GodforgeCasings, 2)) + .addElement('F', ofBlock(GodforgeCasings, 3)) + .addElement('G', ofBlock(GodforgeCasings, 4)) + .build(); + } + private Text connectionStatus() { String status = EnumChatFormatting.RED + translateToLocal("gt.blockmachines.multimachine.FOG.modulestatus.false"); @@ -478,8 +489,20 @@ public void registerIcons(IIconRegister aBlockIconRegister) { public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, ForgeDirection side, ForgeDirection facing, int colorIndex, boolean aActive, boolean aRedstone) { if (side == facing) { - return new ITexture[] { Textures.BlockIcons.getCasingTextureForId(TEXTURE_INDEX), - new TT_RenderedExtendedFacingTexture(aActive ? ScreenON : ScreenOFF) }; + if (aActive) return new ITexture[] { Textures.BlockIcons.getCasingTextureForId(TEXTURE_INDEX), + TextureFactory.builder() + .addIcon(ScreenON) + .extFacing() + .build(), + TextureFactory.builder() + .addIcon(ScreenON) + .extFacing() + .glow() + .build() }; + return new ITexture[] { Textures.BlockIcons.getCasingTextureForId(TEXTURE_INDEX), TextureFactory.builder() + .addIcon(ScreenOFF) + .extFacing() + .build() }; } return new ITexture[] { Textures.BlockIcons.getCasingTextureForId(TEXTURE_INDEX) }; } diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/godforge_modules/GT_MetaTileEntity_EM_ExoticModule.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/godforge_modules/GT_MetaTileEntity_EM_ExoticModule.java index 7e5c0d0b945..9c1d5dd8fa1 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/godforge_modules/GT_MetaTileEntity_EM_ExoticModule.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/godforge_modules/GT_MetaTileEntity_EM_ExoticModule.java @@ -495,12 +495,31 @@ private void setMagmatterMode(boolean enabled) { public GT_Multiblock_Tooltip_Builder createTooltip() { final GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder(); tt.addMachineType("Exotic Matter Producer") - .addInfo("Controller block of the Quark Gluon Plasma Module") - .addInfo("Uses a Star to to turn Items into Quark Gluon Plasma") - .addSeparator() - .beginStructureBlock(1, 4, 2, false) - .addEnergyHatch("Any Infinite Spacetime Casing", 1) - .addMaintenanceHatch("Any Infinite Spacetime Casing", 1) + .addInfo("Controller block for the Heliofusion Exoticizer, a module of the Godforge.") + .addInfo("Must be part of a Godforge to function.") + .addInfo("Used for ultra high temperature matter degeneration.") + .addInfo(TOOLTIP_BAR) + .addInfo("The fourth and final module of the Godforge, this module breaks apart the very") + .addInfo("building blocks of matter, producing exotic mixtures in the process. Quark-Gluon Plasma") + .addInfo("can be manufactured right away, but production of Magnetic Monopole Matter (Magmatter)") + .addInfo("requires a fully upgraded Godforge.") + .addInfo("This module is specialized towards acquisition of unique materials.") + .addInfo(TOOLTIP_BAR) + .beginStructureBlock(7, 7, 13, false) + .addStructureInfo("The structure is too complex! See schematic for details.") + .addStructureInfo( + EnumChatFormatting.GOLD + "20" + + EnumChatFormatting.GRAY + + " Singularity Reinforced Stellar Shielding Casing") + .addStructureInfo( + EnumChatFormatting.GOLD + "20" + + EnumChatFormatting.GRAY + + " Boundless Gravitationally Severed Structure Casing") + .addStructureInfo( + EnumChatFormatting.GOLD + "5" + EnumChatFormatting.GRAY + " Harmonic Phonon Transmission Conduit") + .addStructureInfo( + EnumChatFormatting.GOLD + "5" + EnumChatFormatting.GRAY + " Celestial Matter Guidance Casing") + .addStructureInfo(EnumChatFormatting.GOLD + "1" + EnumChatFormatting.GRAY + " Stellar Energy Siphon Casing") .toolTipFinisher(CommonValues.GODFORGE_MARK); return tt; } diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/godforge_modules/GT_MetaTileEntity_EM_MoltenModule.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/godforge_modules/GT_MetaTileEntity_EM_MoltenModule.java index cfd0548f9e6..0a2bd27ed5a 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/godforge_modules/GT_MetaTileEntity_EM_MoltenModule.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/godforge_modules/GT_MetaTileEntity_EM_MoltenModule.java @@ -19,6 +19,7 @@ import javax.annotation.Nonnull; import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.oredict.OreDictionary; @@ -213,13 +214,31 @@ public String[] getInfoData() { @Override public GT_Multiblock_Tooltip_Builder createTooltip() { final GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder(); - tt.addMachineType("Blast Furnace") - .addInfo("Controller block of the Molten Module") - .addInfo("Uses a Star to to melt Metals") - .addSeparator() - .beginStructureBlock(1, 4, 2, false) - .addEnergyHatch("Any Infinite Spacetime Casing", 1) - .addMaintenanceHatch("Any Infinite Spacetime Casing", 1) + tt.addMachineType("Blast Smelter") + .addInfo("Controller block for the Helioflux Meltig Core, a module of the Godforge.") + .addInfo("Must be part of a Godforge to function.") + .addInfo("Used for high temperature material liquefaction.") + .addInfo(TOOLTIP_BAR) + .addInfo("The second module of the Godforge, this module melts materials directly into") + .addInfo("their liquid form. If an output material does not have a liquid form, it will be output") + .addInfo("as a regular solid instead.") + .addInfo("This module is specialized towards parallel processing.") + .addInfo(TOOLTIP_BAR) + .beginStructureBlock(7, 7, 13, false) + .addStructureInfo("The structure is too complex! See schematic for details.") + .addStructureInfo( + EnumChatFormatting.GOLD + "20" + + EnumChatFormatting.GRAY + + " Singularity Reinforced Stellar Shielding Casing") + .addStructureInfo( + EnumChatFormatting.GOLD + "20" + + EnumChatFormatting.GRAY + + " Boundless Gravitationally Severed Structure Casing") + .addStructureInfo( + EnumChatFormatting.GOLD + "5" + EnumChatFormatting.GRAY + " Harmonic Phonon Transmission Conduit") + .addStructureInfo( + EnumChatFormatting.GOLD + "5" + EnumChatFormatting.GRAY + " Celestial Matter Guidance Casing") + .addStructureInfo(EnumChatFormatting.GOLD + "1" + EnumChatFormatting.GRAY + " Stellar Energy Siphon Casing") .toolTipFinisher(CommonValues.GODFORGE_MARK); return tt; } diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/godforge_modules/GT_MetaTileEntity_EM_PlasmaModule.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/godforge_modules/GT_MetaTileEntity_EM_PlasmaModule.java index 8143c6fea46..c8f201d003c 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/godforge_modules/GT_MetaTileEntity_EM_PlasmaModule.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/godforge_modules/GT_MetaTileEntity_EM_PlasmaModule.java @@ -16,6 +16,8 @@ import javax.annotation.Nonnull; +import net.minecraft.util.EnumChatFormatting; + import org.jetbrains.annotations.NotNull; import com.github.technus.tectech.util.CommonValues; @@ -213,12 +215,30 @@ public String[] getInfoData() { public GT_Multiblock_Tooltip_Builder createTooltip() { final GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder(); tt.addMachineType("Plasma Fabricator") - .addInfo("Controller block of the Plasma Module") - .addInfo("Uses a Star to to turn Metals into Plasma") - .addSeparator() - .beginStructureBlock(1, 4, 2, false) - .addEnergyHatch("Any Infinite Spacetime Casing", 1) - .addMaintenanceHatch("Any Infinite Spacetime Casing", 1) + .addInfo("Controller block for the Heliothermal Plasma Fabricator, a module of the Godforge.") + .addInfo("Must be part of a Godforge to function.") + .addInfo("Used for extreme temperature matter ionization.") + .addInfo(TOOLTIP_BAR) + .addInfo("The third module of the Godforge, this module infuses materials with extreme amounts") + .addInfo("of heat, ionizing and turning them into plasma directly. Not all plasmas can be produced") + .addInfo("right away, some of them require certain upgrades to be unlocked.") + .addInfo("This module is specialized towards energy and overclock efficiency.") + .addInfo(TOOLTIP_BAR) + .beginStructureBlock(7, 7, 13, false) + .addStructureInfo("The structure is too complex! See schematic for details.") + .addStructureInfo( + EnumChatFormatting.GOLD + "20" + + EnumChatFormatting.GRAY + + " Singularity Reinforced Stellar Shielding Casing") + .addStructureInfo( + EnumChatFormatting.GOLD + "20" + + EnumChatFormatting.GRAY + + " Boundless Gravitationally Severed Structure Casing") + .addStructureInfo( + EnumChatFormatting.GOLD + "5" + EnumChatFormatting.GRAY + " Harmonic Phonon Transmission Conduit") + .addStructureInfo( + EnumChatFormatting.GOLD + "5" + EnumChatFormatting.GRAY + " Celestial Matter Guidance Casing") + .addStructureInfo(EnumChatFormatting.GOLD + "1" + EnumChatFormatting.GRAY + " Stellar Energy Siphon Casing") .toolTipFinisher(CommonValues.GODFORGE_MARK); return tt; } diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/godforge_modules/GT_MetaTileEntity_EM_SmeltingModule.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/godforge_modules/GT_MetaTileEntity_EM_SmeltingModule.java index ee77d7cc95e..5126dbfe602 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/godforge_modules/GT_MetaTileEntity_EM_SmeltingModule.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/godforge_modules/GT_MetaTileEntity_EM_SmeltingModule.java @@ -19,6 +19,7 @@ import javax.annotation.Nonnull; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; import org.jetbrains.annotations.NotNull; @@ -215,12 +216,29 @@ public String[] getInfoData() { public GT_Multiblock_Tooltip_Builder createTooltip() { final GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder(); tt.addMachineType("Blast Furnace, Furnace") - .addInfo("Controller block of the Smelting Module") - .addInfo("Uses a Star to Smelt Metals") - .addSeparator() - .beginStructureBlock(1, 4, 2, false) - .addEnergyHatch("Any Infinite Spacetime Casing", 1) - .addMaintenanceHatch("Any Infinite Spacetime Casing", 1) + .addInfo("Controller block for the Helioflare Power Forge, a module of the Godforge.") + .addInfo("Must be part of a Godforge to function.") + .addInfo("Used for basic smelting operations at various temperatures.") + .addInfo(TOOLTIP_BAR) + .addInfo("As the first of the Godforge modules, this module performs the most basic") + .addInfo("thermal processing, namely smelting materials identically to a furnace or blast furnace.") + .addInfo("The desired method of processing can be selected in the gui.") + .addInfo("This module is specialized towards speed and high heat levels.") + .addInfo(TOOLTIP_BAR) + .beginStructureBlock(7, 7, 13, false) + .addStructureInfo("The structure is too complex! See schematic for details.") + .addStructureInfo( + EnumChatFormatting.GOLD + "20" + + EnumChatFormatting.GRAY + + " Singularity Reinforced Stellar Shielding Casing") + .addStructureInfo( + EnumChatFormatting.GOLD + "20" + + EnumChatFormatting.GRAY + + " Boundless Gravitationally Severed Structure Casing") + .addStructureInfo(EnumChatFormatting.GOLD + "5" + EnumChatFormatting.GRAY + " Hypogen Coil Block") + .addStructureInfo( + EnumChatFormatting.GOLD + "5" + EnumChatFormatting.GRAY + " Celestial Matter Guidance Casing") + .addStructureInfo(EnumChatFormatting.GOLD + "1" + EnumChatFormatting.GRAY + " Stellar Energy Siphon Casing") .toolTipFinisher(CommonValues.GODFORGE_MARK); return tt; } diff --git a/src/main/java/com/github/technus/tectech/util/GodforgeMath.java b/src/main/java/com/github/technus/tectech/util/GodforgeMath.java index 7fda26a29ce..94b898a93b6 100644 --- a/src/main/java/com/github/technus/tectech/util/GodforgeMath.java +++ b/src/main/java/com/github/technus/tectech/util/GodforgeMath.java @@ -139,7 +139,7 @@ public static void calculateMaxParallelForModules(GT_MetaTileEntity_EM_BaseModul baseParallel = 512; } if (module instanceof GT_MetaTileEntity_EM_PlasmaModule) { - baseParallel = 256; + baseParallel = 384; } if (module instanceof GT_MetaTileEntity_EM_ExoticModule) { baseParallel = 36; diff --git a/src/main/java/com/github/technus/tectech/util/TT_Utility.java b/src/main/java/com/github/technus/tectech/util/TT_Utility.java index 1bf7eae552a..b0b6a2c3960 100644 --- a/src/main/java/com/github/technus/tectech/util/TT_Utility.java +++ b/src/main/java/com/github/technus/tectech/util/TT_Utility.java @@ -165,4 +165,24 @@ public static int receiveInteger(int previousValue, int startIndex, int index, i } return previousValue; } + + public static String[][] appendStringArrays(String[][] firstArray, String[][] secondArray) { + int totalLength = firstArray.length + secondArray.length; + String[][] resultArray = new String[totalLength][]; + + System.arraycopy(firstArray, 0, resultArray, 0, firstArray.length); + System.arraycopy(secondArray, 0, resultArray, firstArray.length, secondArray.length); + return resultArray; + } + + public static String[][] replaceLetters(String[][] array, String replacement) { + String[][] outputArray = new String[array.length][]; + for (int i = 0; i < array.length; i++) { + outputArray[i] = new String[array[i].length]; + for (int j = 0; j < array[i].length; j++) { + outputArray[i][j] = array[i][j].replaceAll("[A-Z]", replacement); + } + } + return outputArray; + } } diff --git a/src/main/java/gregtech/api/enums/ItemList.java b/src/main/java/gregtech/api/enums/ItemList.java index a11bb7ea6e6..74f169681cc 100644 --- a/src/main/java/gregtech/api/enums/ItemList.java +++ b/src/main/java/gregtech/api/enums/ItemList.java @@ -2554,6 +2554,9 @@ public enum ItemList implements IItemContainer { BetterJukebox_EV, BetterJukebox_IV, WirelessHeadphones, + Thermal_Superconductor, + Relativistic_Heat_Capacitor, + Phononic_Seed_Crystal, ResearchCompleter, // Populated in EMT SpaceElevatorController, // Populated in GTNH-Intergalactic // semicolon after the comment to reduce merge conflicts diff --git a/src/main/java/gregtech/api/enums/Materials.java b/src/main/java/gregtech/api/enums/Materials.java index 2dada8dfb0b..3d314c47424 100644 --- a/src/main/java/gregtech/api/enums/Materials.java +++ b/src/main/java/gregtech/api/enums/Materials.java @@ -20,6 +20,7 @@ import net.minecraft.enchantment.Enchantment; import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; @@ -37,6 +38,7 @@ import gregtech.common.render.items.CosmicNeutroniumRenderer; import gregtech.common.render.items.GT_GeneratedMaterial_Renderer; import gregtech.common.render.items.GaiaSpiritRenderer; +import gregtech.common.render.items.GlitchEffectRenderer; import gregtech.common.render.items.InfinityRenderer; import gregtech.common.render.items.TranscendentMetalRenderer; import gregtech.common.render.items.UniversiumRenderer; @@ -1976,6 +1978,17 @@ private static void overrideChemicalFormulars() { MaterialsUEVplus.ExcitedDTSC.mChemicalFormula = "[-Stellar-Stellar-]"; MaterialsUEVplus.DimensionallyTranscendentStellarCatalyst.mChemicalFormula = "Stellar"; PolyAluminiumChloride.mChemicalFormula = "Al\u2082(OH)\u2083Cl\u2083"; + MaterialsUEVplus.QuarkGluonPlasma.mChemicalFormula = EnumChatFormatting.OBFUSCATED + "X" + + EnumChatFormatting.RESET + + EnumChatFormatting.GRAY + + "g" + + EnumChatFormatting.OBFUSCATED + + "X"; + MaterialsUEVplus.PhononCrystalSolution.mChemicalFormula = "\u3004"; + MaterialsUEVplus.PhononMedium.mChemicalFormula = "((Si\u2085O\u2081\u2080Fe)\u2083(Bi\u2082Te\u2083)\u2084ZrO\u2082Fe\u2085\u2080C)\u2085Og*Pr\u2081\u2085((C\u2081\u2084Os\u2081\u2081O\u2087Ag\u2083SpH\u2082O)\u2084?\u2081\u2080(Fs\u26B6)\u2086(\u2318\u262F\u262F\u2318)\u2085)\u2086\u3004\u2084"; + MaterialsUEVplus.SixPhasedCopper.mChemicalFormula = "\u2722"; + MaterialsUEVplus.Mellion.mChemicalFormula = "Tn\u2081\u2081Or\u2088Rb\u2081\u2081?\u2087?\u2081\u2083?\u2081\u2083"; + MaterialsUEVplus.Creon.mChemicalFormula = "\u2E0E"; } private static void initSubTags() { @@ -2516,6 +2529,8 @@ public static void initClient() { MaterialsUEVplus.Universium.renderer = new UniversiumRenderer(); MaterialsUEVplus.Eternity.renderer = new InfinityRenderer(); MaterialsUEVplus.MagMatter.renderer = new InfinityRenderer(); + MaterialsUEVplus.SixPhasedCopper.renderer = new GlitchEffectRenderer(); + MaterialsUEVplus.GravitonShard.renderer = new InfinityRenderer(); } private static void fillGeneratedMaterialsMap() { diff --git a/src/main/java/gregtech/api/enums/MaterialsUEVplus.java b/src/main/java/gregtech/api/enums/MaterialsUEVplus.java index 1ff8cc2fb02..7542e1f6007 100644 --- a/src/main/java/gregtech/api/enums/MaterialsUEVplus.java +++ b/src/main/java/gregtech/api/enums/MaterialsUEVplus.java @@ -590,6 +590,166 @@ public class MaterialsUEVplus { 1, Dyes._NULL); + public static Materials PhononMedium = new Materials( + 145, + TextureSet.SET_FLUID, + 1.0F, + 0, + 2, + 16, + 255, + 255, + 255, + 0, + "PhononMedium", + "Lossless Phonon Transfer Medium", + -1, + -1, + 500, + 1, + false, + true, + 1, + 1, + 1, + Dyes._NULL); + + public static Materials PhononCrystalSolution = new Materials( + 146, + TextureSet.SET_FLUID, + 1.0F, + 0, + 2, + 16, + 255, + 255, + 255, + 0, + "PhononCrystalSolution", + "Saturated Phononic Crystal Solution", + -1, + -1, + 500, + 1, + false, + true, + 1, + 1, + 1, + Dyes._NULL); + + public static Materials SixPhasedCopper = new Materials( + 147, + TextureSet.SET_SHINY, + 1.0F, + 8 * 2621440, + 26, + 1 | 2 | 64 | 128, + 255, + 120, + 20, + 0, + "SixPhasedCopper", + "Six-Phased Copper", + -1, + -1, + 1000, + 14000, + true, + false, + 2, + 1, + 1, + Dyes._NULL, + Collections.singletonList(new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 1))) + .disableAutoGeneratedBlastFurnaceRecipes() + .disableAutoGeneratedVacuumFreezerRecipe() + .setProcessingMaterialTierEU(TierEU.RECIPE_UEV); + + public static Materials Mellion = new Materials( + 148, + TextureSet.SET_SHINY, + 1.0F, + 8 * 2621440, + 26, + 1 | 2 | 64 | 128, + 60, + 5, + 5, + 0, + "Mellion", + "Mellion", + -1, + -1, + 1000, + 14000, + true, + false, + 2, + 1, + 1, + Dyes._NULL, + Collections.singletonList(new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 1))) + .disableAutoGeneratedBlastFurnaceRecipes() + .disableAutoGeneratedVacuumFreezerRecipe() + .setProcessingMaterialTierEU(TierEU.RECIPE_UEV); + + public static Materials Creon = new Materials( + 149, + TextureSet.SET_SHINY, + 1.0F, + 8 * 2621440, + 26, + 1 | 2 | 64 | 128, + 70, + 0, + 70, + 0, + "Creon", + "Creon", + -1, + -1, + 1000, + 14000, + true, + false, + 2, + 1, + 1, + Dyes._NULL, + Collections.singletonList(new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 1))) + .disableAutoGeneratedBlastFurnaceRecipes() + .disableAutoGeneratedVacuumFreezerRecipe() + .setProcessingMaterialTierEU(TierEU.RECIPE_UEV) + .setHasCorrespondingPlasma(true); + + public static Materials GravitonShard = new Materials( + 150, + new TextureSet("GravitonShard", true), + 1.0F, + 8 * 2621440, + 26, + 256, + 255, + 255, + 255, + 0, + "GravitonShard", + "Graviton Shard", + -1, + -1, + 100000, + 100000, + false, + false, + 2, + 1, + 1, + Dyes._NULL, + Collections.singletonList(new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 150))) + .disableAutoGeneratedBlastFurnaceRecipes() + .disableAutoGeneratedVacuumFreezerRecipe(); + /** * called by Materials. Can be safely called multiple times. exists to allow Materials ensure this class is * initialized diff --git a/src/main/java/gregtech/api/enums/OrePrefixes.java b/src/main/java/gregtech/api/enums/OrePrefixes.java index d0c93999801..8e80f41a052 100644 --- a/src/main/java/gregtech/api/enums/OrePrefixes.java +++ b/src/main/java/gregtech/api/enums/OrePrefixes.java @@ -701,6 +701,8 @@ public enum OrePrefixes { dustSmall.mNotGeneratedItems.add(MaterialsUEVplus.MagnetohydrodynamicallyConstrainedStarMatter); dustTiny.mNotGeneratedItems.add(MaterialsUEVplus.MagnetohydrodynamicallyConstrainedStarMatter); + cell.disableComponent(MaterialsUEVplus.GravitonShard); + // ingot.mNotGeneratedItems.add(Materials.Ichorium); nugget.mNotGeneratedItems.add(Materials.Gold); plate.mNotGeneratedItems.add(Materials.Paper); @@ -780,6 +782,7 @@ public enum OrePrefixes { nanite.mGeneratedItems.add(MaterialsUEVplus.BlackDwarfMatter); nanite.mGeneratedItems.add(Materials.Glowstone); nanite.mGeneratedItems.add(MaterialsUEVplus.Eternity); + nanite.mGeneratedItems.add(MaterialsUEVplus.SixPhasedCopper); // ----- gear.mGeneratedItems.add(MaterialsUEVplus.MagnetohydrodynamicallyConstrainedStarMatter); @@ -788,6 +791,8 @@ public enum OrePrefixes { frame.mGeneratedItems.add(MaterialsUEVplus.MagnetohydrodynamicallyConstrainedStarMatter); frameGt.mGeneratedItems.add(MaterialsUEVplus.MagnetohydrodynamicallyConstrainedStarMatter); + gem.mGeneratedItems.add(MaterialsUEVplus.GravitonShard); + dust.mGeneratedItems.addAll(dustPure.mGeneratedItems); dust.mGeneratedItems.addAll(dustImpure.mGeneratedItems); dust.mGeneratedItems.addAll(dustRefined.mGeneratedItems); @@ -1001,7 +1006,8 @@ public enum OrePrefixes { OrePrefixes.gemExquisite, OrePrefixes.gearGt, OrePrefixes.itemCasing, - OrePrefixes.nanite)); + OrePrefixes.nanite, + OrePrefixes.cell)); /** * Yes this Value can be changed to add Bits for the MetaGenerated-Item-Check. */ diff --git a/src/main/java/gregtech/api/enums/Textures.java b/src/main/java/gregtech/api/enums/Textures.java index 4a5142138a7..7caa8f41e56 100644 --- a/src/main/java/gregtech/api/enums/Textures.java +++ b/src/main/java/gregtech/api/enums/Textures.java @@ -1161,6 +1161,7 @@ public enum BlockIcons implements IIconContainer, Runnable { BLOCK_UNIVERSIUM, BLOCK_ETERNITY, BLOCK_MAGMATTER, + BLOCK_SIXPHASEDCOPPER, BLOCK_ORIHARUKON, @@ -1573,7 +1574,7 @@ public enum BlockIcons implements IIconContainer, Runnable { BLOCK_BLAZE }, STORAGE_BLOCKS12 = { BLOCK_CRYOLITE, BLOCK_SILICONSG, BLOCK_NICKELALUMINIUM, BLOCK_SPACETIME, BLOCK_TRANSCENDENTMETAL, BLOCK_ORIHARUKON, BLOCK_WHITEDWARFMATTER, BLOCK_BLACKDWARFMATTER, - BLOCK_UNIVERSIUM, BLOCK_ETERNITY, BLOCK_MAGMATTER }; + BLOCK_UNIVERSIUM, BLOCK_ETERNITY, BLOCK_MAGMATTER, BLOCK_SIXPHASEDCOPPER }; public static final ITexture[] HIDDEN_TEXTURE = { TextureFactory.builder() .addIcon(HIDDEN_FACE) diff --git a/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_03.java b/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_03.java index a5301179c2c..7d24a9e339e 100644 --- a/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_03.java +++ b/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_03.java @@ -204,6 +204,7 @@ import static gregtech.common.items.ID_MetaItem_03.Optical_Cpu_Containment_Housing; import static gregtech.common.items.ID_MetaItem_03.Optically_Compatible_Memory; import static gregtech.common.items.ID_MetaItem_03.Optically_Perfected_CPU; +import static gregtech.common.items.ID_MetaItem_03.Phononic_Seed_Crystal; import static gregtech.common.items.ID_MetaItem_03.Quark_Catalyst_Housing; import static gregtech.common.items.ID_MetaItem_03.Quark_Creation_Catalyst_Bottom; import static gregtech.common.items.ID_MetaItem_03.Quark_Creation_Catalyst_Charm; @@ -212,7 +213,9 @@ import static gregtech.common.items.ID_MetaItem_03.Quark_Creation_Catalyst_Top; import static gregtech.common.items.ID_MetaItem_03.Quark_Creation_Catalyst_Unaligned; import static gregtech.common.items.ID_MetaItem_03.Quark_Creation_Catalyst_Up; +import static gregtech.common.items.ID_MetaItem_03.Relativistic_Heat_Capacitor; import static gregtech.common.items.ID_MetaItem_03.Spinneret; +import static gregtech.common.items.ID_MetaItem_03.Thermal_Superconductor; import static gregtech.common.items.ID_MetaItem_03.Timepiece; import static gregtech.common.items.ID_MetaItem_03.Transdimensional_Alignment_Matrix; import static gregtech.common.items.ID_MetaItem_03.Tube_Wires; @@ -1186,6 +1189,13 @@ public GT_MetaGenerated_Item_03() { "Enables Dimensional Convergence on the DTPF."), o)); + ItemList.Thermal_Superconductor + .set(addItem(Thermal_Superconductor.ID, "Thermal Superconductor", "With the power of second sound!", o)); + ItemList.Relativistic_Heat_Capacitor + .set(addItem(Relativistic_Heat_Capacitor.ID, "Relativistic Heat Capacitor", "Thermal Resonance?", o)); + ItemList.Phononic_Seed_Crystal + .set(addItem(Phononic_Seed_Crystal.ID, "Phononic Seed Crystal", "Perfect Thermal Conductance", o)); + ItemList.White_Dwarf_Shape_Extruder_Plate.set( addItem( White_Dwarf_Shape_Extruder_Plate.ID, diff --git a/src/main/java/gregtech/common/items/ID_MetaItem_03.java b/src/main/java/gregtech/common/items/ID_MetaItem_03.java index fea5a687df8..64b3f072494 100644 --- a/src/main/java/gregtech/common/items/ID_MetaItem_03.java +++ b/src/main/java/gregtech/common/items/ID_MetaItem_03.java @@ -229,7 +229,10 @@ public enum ID_MetaItem_03 { White_Dwarf_Shape_Extruder_Turbine_Blade(755), White_Dwarf_Shape_Extruder_ToolHeadDrill(756), Timepiece(757), - Transdimensional_Alignment_Matrix(758); + Transdimensional_Alignment_Matrix(758), + Thermal_Superconductor(759), + Relativistic_Heat_Capacitor(760), + Phononic_Seed_Crystal(761); public final int ID; diff --git a/src/main/java/gregtech/common/render/items/GlitchEffectRenderer.java b/src/main/java/gregtech/common/render/items/GlitchEffectRenderer.java new file mode 100644 index 00000000000..f7e4413c974 --- /dev/null +++ b/src/main/java/gregtech/common/render/items/GlitchEffectRenderer.java @@ -0,0 +1,124 @@ +package gregtech.common.render.items; + +import java.util.Random; + +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.fluids.FluidStack; + +import org.lwjgl.opengl.GL11; + +import codechicken.lib.render.TextureUtils; +import gregtech.api.interfaces.IGT_ItemWithMaterialRenderer; +import gregtech.api.util.GT_Utility; + +public class GlitchEffectRenderer extends GT_GeneratedMaterial_Renderer { + + public Random rand = new Random(); + int[] red = new int[] { 255, 50, 50, 192 }; + int[] cyan = new int[] { 0, 220, 220, 160 }; + int counter = 0; + double offsetRed = 0; + double offsetCyan = 0; + + private void applyGlitchEffect(ItemRenderType type, boolean shouldModulateColor, int[] color, IIcon... icons) { + double offset; + for (IIcon icon : icons) { + if (icon == null) continue; + if (counter % 2 == 0) { + offset = offsetRed; + } else { + offset = offsetCyan; + } + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + + Tessellator t = Tessellator.instance; + + if (type.equals(IItemRenderer.ItemRenderType.INVENTORY)) { + t.startDrawingQuads(); + if (shouldModulateColor) { + t.setColorRGBA_F(color[0] / 255.0F, color[1] / 255.0F, color[2] / 255.0F, color[3] / 255.0F); + } else { + t.setColorRGBA_F(1f, 1f, 1f, 0.75f); + } + t.addVertexWithUV(0 + offset, 0 + offset, 0, icon.getMinU(), icon.getMinV()); + t.addVertexWithUV(0 + offset, 16 + offset, 0, icon.getMinU(), icon.getMaxV()); + t.addVertexWithUV(16 + offset, 16 + offset, 0, icon.getMaxU(), icon.getMaxV()); + t.addVertexWithUV(16 + offset, 0 + offset, 0, icon.getMaxU(), icon.getMinV()); + t.draw(); + } + + GL11.glDisable(GL11.GL_BLEND); + GL11.glPopMatrix(); + } + counter++; + } + + @Override + protected void renderRegularItem(ItemRenderType type, ItemStack item, IIcon icon, boolean shouldModulateColor, + int pass, Object... data) { + short metaData = (short) item.getItemDamage(); + if (!(item.getItem() instanceof IGT_ItemWithMaterialRenderer itemRenderer)) return; + + int currentFrame = (int) ((System.nanoTime() % 4_000_000_000L) / 20_000_000L); + boolean timing = currentFrame <= 20; + + if (timing && currentFrame % 5 == 0) { + offsetRed = rand.nextDouble() * 1.7 * Math.signum(rand.nextGaussian()); + offsetCyan = rand.nextDouble() * 1.7 * Math.signum(rand.nextGaussian()); + } + + IIcon itemIcon = itemRenderer.getIcon(metaData, pass); + IIcon overlay = itemRenderer.getOverlayIcon(metaData, pass); + FluidStack aFluid = GT_Utility.getFluidForFilledItem(item, true); + + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glEnable(GL11.GL_ALPHA_TEST); + + if (shouldModulateColor) { + short[] modulation = itemRenderer.getRGBa(item); + GL11.glColor4f( + modulation[0] / 255.0F, + modulation[1] / 255.0F, + modulation[2] / 255.0F, + modulation[3] / 255.0F); + } + + GL11.glEnable(GL11.GL_ALPHA_TEST); + + if (itemIcon != null) { + markNeedsAnimationUpdate(itemIcon); + renderRegularItem(type, item, itemIcon, aFluid == null); + } + + if (overlay != null && aFluid != null && aFluid.getFluid() != null) { + IIcon fluidIcon = aFluid.getFluid() + .getIcon(aFluid); + if (fluidIcon != null) { + markNeedsAnimationUpdate(fluidIcon); + // Adds colour to a cells fluid. Does not colour full fluid icons as shown in NEI etc. + renderContainedFluid(type, aFluid, fluidIcon); + } + } + + if (overlay != null) { + GL11.glColor3f(1.0F, 1.0F, 1.0F); + TextureUtils.bindAtlas(itemRenderer.getSpriteNumber()); + markNeedsAnimationUpdate(overlay); + renderItemOverlay(type, overlay); + } + + if (type == ItemRenderType.INVENTORY && timing) { + GL11.glDisable(GL11.GL_DEPTH_TEST); + applyGlitchEffect(type, shouldModulateColor, cyan, itemIcon, overlay); + GL11.glEnable(GL11.GL_DEPTH_TEST); + applyGlitchEffect(type, shouldModulateColor, red, itemIcon, overlay); + + } + GL11.glDisable(GL11.GL_BLEND); + } +} diff --git a/src/main/java/gregtech/loaders/postload/chains/GT_NaniteChain.java b/src/main/java/gregtech/loaders/postload/chains/GT_NaniteChain.java index 1b3802306c0..836756a18af 100644 --- a/src/main/java/gregtech/loaders/postload/chains/GT_NaniteChain.java +++ b/src/main/java/gregtech/loaders/postload/chains/GT_NaniteChain.java @@ -163,6 +163,23 @@ public static void run() { .eut(1_000_000_000) .addTo(nanoForgeRecipes); + // Six-Phased Copper Nanites - Used in Phononic Crystal production for the godforge + GT_Values.RA.stdBuilder() + .itemInputs( + aUIVTierLens, + MaterialsUEVplus.SixPhasedCopper.getBlocks(16), + ItemList.Circuit_Chip_SoC2.get(64), + ItemList.Circuit_Chip_SoC2.get(64), + ItemList.Circuit_Chip_SoC2.get(64)) + .itemOutputs(MaterialsUEVplus.SixPhasedCopper.getNanite(8)) + .fluidInputs( + Materials.UUMatter.getFluid(500_000), + MaterialsUEVplus.DimensionallyTranscendentResidue.getFluid(50_000)) + .metadata(NANO_FORGE_TIER, 3) + .duration(100 * SECONDS) + .eut(2_000_000_000) + .addTo(nanoForgeRecipes); + // White Dwarf Matter Nanites. Used to make Magnetohydrodynamically constrained star matter. GT_Values.RA.stdBuilder() .itemInputs( diff --git a/src/main/java/gregtech/loaders/postload/recipes/AssemblerRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/AssemblerRecipes.java index c2631632c6e..217be9082ae 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/AssemblerRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/AssemblerRecipes.java @@ -48,6 +48,7 @@ import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; +import gtPlusPlus.core.material.ALLOY; public class AssemblerRecipes implements Runnable { @@ -3532,6 +3533,31 @@ public void run() { } } + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.pipeHuge, MaterialsUEVplus.TranscendentMetal, 1), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.SuperconductorUIVBase, 64), + ALLOY.QUANTUM.getPlate(8), + ItemList.Electric_Pump_UIV.get(1)) + .fluidInputs(MaterialsUEVplus.PhononMedium.getFluid(100)) + .itemOutputs(ItemList.Thermal_Superconductor.get(1)) + .duration(2 * SECONDS) + .eut(TierEU.RECIPE_UIV) + .addTo(assemblerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Thermal_Superconductor.get(2), + ALLOY.QUANTUM.getPlate(12), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.SuperconductorUIVBase, 8), + GT_OreDictUnificator.get(OrePrefixes.rotor, MaterialsUEVplus.SixPhasedCopper, 3), + ItemList.Field_Generator_UEV.get(1)) + .fluidInputs(MaterialsUEVplus.PhononMedium.getFluid(500)) + .itemOutputs(ItemList.Relativistic_Heat_Capacitor.get(1)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_UIV) + .addTo(assemblerRecipes); } /** diff --git a/src/main/java/gregtech/loaders/postload/recipes/AutoclaveRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/AutoclaveRecipes.java index 519d5841366..311c5b19411 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/AutoclaveRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/AutoclaveRecipes.java @@ -10,6 +10,7 @@ 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_ModHandler; @@ -230,5 +231,23 @@ public void run() { .duration(60 * SECONDS) .eut(TierEU.RECIPE_LV) .addTo(autoclaveRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.nanite, MaterialsUEVplus.TranscendentMetal, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, MaterialsUEVplus.Mellion, 32L)) + .itemOutputs(ItemList.Phononic_Seed_Crystal.get(8L)) + .fluidInputs(Materials.Grade8PurifiedWater.getFluid(32_000L)) + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_UMV) + .addTo(autoclaveRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.round, MaterialsUEVplus.MagMatter, 1)) + .itemOutputs(ItemList.Phononic_Seed_Crystal.get(5)) + .fluidInputs(MaterialsUEVplus.PhononCrystalSolution.getFluid(250)) + .duration(2 * SECONDS + 10 * TICKS) + .eut(TierEU.RECIPE_UXV) + .addTo(autoclaveRecipes); } } diff --git a/src/main/java/gregtech/loaders/postload/recipes/BenderRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/BenderRecipes.java index 192422437a1..33149b2ff3d 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/BenderRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/BenderRecipes.java @@ -7,6 +7,7 @@ import net.minecraft.init.Items; import net.minecraft.item.ItemStack; +import goodgenerator.items.MyMaterial; import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; @@ -315,6 +316,13 @@ public void run() { .eut(8) .addTo(benderRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(MyMaterial.tairitsu.get(OrePrefixes.ingot, 9), GT_Utility.getIntegratedCircuit(9)) + .itemOutputs(MyMaterial.tairitsu.get(OrePrefixes.plateDense, 1)) + .duration(5 * SECONDS) + .eut(TierEU.RECIPE_ZPM) + .addTo(benderRecipes); + if (GT_OreDictUnificator.get(OrePrefixes.itemCasing, Materials.Tin, 1L) != null) { GT_Values.RA.stdBuilder() .itemInputs( diff --git a/src/main/java/gregtech/loaders/postload/recipes/BlastFurnaceRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/BlastFurnaceRecipes.java index 6a95493f8c5..84833c933d6 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/BlastFurnaceRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/BlastFurnaceRecipes.java @@ -651,6 +651,28 @@ public void registerBlastFurnaceRecipes() { .eut(TierEU.RECIPE_HV) .metadata(COIL_HEAT, 573) .addTo(blastFurnaceRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Phononic_Seed_Crystal.get(1), + MaterialsUEVplus.SixPhasedCopper.getNanite(1), + Materials.Dilithium.getDust(16), + GT_Utility.getIntegratedCircuit(2)) + .fluidInputs(MaterialsUEVplus.Mellion.getMolten(128 * 144L)) + .fluidOutputs(MaterialsUEVplus.PhononCrystalSolution.getFluid(1000)) + .duration(300 * SECONDS) + .eut((int) TierEU.RECIPE_UIV) + .metadata(COIL_HEAT, 17000) + .addTo(blastFurnaceRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(MaterialsUEVplus.Mellion.getDust(1), GT_Utility.getIntegratedCircuit(11)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingotHot, MaterialsUEVplus.Mellion, 1)) + .fluidInputs(Materials.Radon.getGas(1000)) + .duration(50 * SECONDS) + .eut((int) TierEU.RECIPE_UXV) + .metadata(COIL_HEAT, 14000) + .addTo(blastFurnaceRecipes); } public void registerPrimitiveBlastFurnaceRecipes() { diff --git a/src/main/java/gregtech/loaders/postload/recipes/ChemicalBathRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/ChemicalBathRecipes.java index 8ca67db1926..7be13ecbe48 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/ChemicalBathRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/ChemicalBathRecipes.java @@ -10,6 +10,10 @@ import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; + +import com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader; import gregtech.api.GregTech_API; import gregtech.api.enums.Dyes; @@ -311,6 +315,14 @@ public void run() { .eut(TierEU.RECIPE_LV) .addTo(chemicalBathRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(WerkstoffLoader.CubicZirconia.get(OrePrefixes.gemExquisite, 1)) + .itemOutputs(Materials.Firestone.getGems(1)) + .fluidInputs(new FluidStack(FluidRegistry.getFluid("ic2hotcoolant"), 250)) + .duration(2 * SECONDS) + .eut(TierEU.RECIPE_ZPM) + .addTo(chemicalBathRecipes); + // Na + H2O = NaOH + H GT_Values.RA.stdBuilder() .itemInputs(Materials.Sodium.getDust(1)) diff --git a/src/main/java/gregtech/loaders/postload/recipes/CompressorRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/CompressorRecipes.java index 78d8319907c..a5144260c28 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/CompressorRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/CompressorRecipes.java @@ -11,6 +11,8 @@ import net.minecraft.init.Items; import net.minecraft.item.ItemStack; +import com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader; + import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; @@ -247,6 +249,13 @@ public void run() { .eut(4) .addTo(compressorRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(WerkstoffLoader.MagnetoResonaticDust.get(OrePrefixes.gem, 9)) + .itemOutputs(WerkstoffLoader.MagnetoResonaticDust.get(OrePrefixes.block, 1)) + .duration(15 * SECONDS) + .eut(2) + .addTo(compressorRecipes); + if (Railcraft.isModLoaded()) { GT_Values.RA.stdBuilder() .itemInputs(RailcraftToolItems.getCoalCoke(9)) diff --git a/src/main/java/gregtech/loaders/postload/recipes/FusionReactorRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/FusionReactorRecipes.java index 88c07e365e7..3d53de7d2a0 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/FusionReactorRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/FusionReactorRecipes.java @@ -8,6 +8,7 @@ import gregtech.api.enums.GT_Values; import gregtech.api.enums.Materials; import gregtech.api.enums.TierEU; +import gtPlusPlus.core.material.ELEMENT; public class FusionReactorRecipes implements Runnable { @@ -269,6 +270,14 @@ public void run() { .metadata(FUSION_THRESHOLD, 500000000) .addTo(fusionRecipes); // FT3 + GT_Values.RA.stdBuilder() + .fluidInputs(Materials.Cobalt.getMolten(144), ELEMENT.getInstance().NEON.getFluidStack(144)) + .fluidOutputs(Materials.Rubidium.getMolten(144)) + .duration(1 * SECONDS + 4 * TICKS) + .eut(98304) + .metadata(FUSION_THRESHOLD, 500000000) + .addTo(fusionRecipes); // FT3 + GT_Values.RA.stdBuilder() .fluidInputs(Materials.Lutetium.getMolten(288), Materials.Vanadium.getMolten(288)) .fluidOutputs(Materials.Plutonium241.getPlasma(288)) diff --git a/src/main/java/gregtech/loaders/postload/recipes/MixerRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/MixerRecipes.java index 9e0d3e4780d..1b8cbb4dcdc 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/MixerRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/MixerRecipes.java @@ -20,6 +20,7 @@ import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; +import goodgenerator.items.MyMaterial; import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; @@ -1718,5 +1719,20 @@ public void registerSingleBlockAndMulti() { .duration(5 * SECONDS) .eut(100) .addTo(mixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + Materials.Tritanium.getDust(11), + MyMaterial.orundum.get(OrePrefixes.dust, 8), + Materials.Rubidium.getDust(11), + Materials.FierySteel.getDust(7), + Materials.Firestone.getDust(13), + MyMaterial.atomicSeparationCatalyst.get(OrePrefixes.dust, 13), + GT_Utility.getIntegratedCircuit(6)) + .itemOutputs(MaterialsUEVplus.Mellion.getDust(63)) + .fluidInputs(MaterialsUEVplus.DimensionallyTranscendentResidue.getFluid(5000)) + .duration(15 * SECONDS) + .eut((int) TierEU.RECIPE_UMV) + .addTo(mixerRecipes); } } diff --git a/src/main/java/gregtech/loaders/postload/recipes/PlasmaForgeRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/PlasmaForgeRecipes.java index 2763bb8d779..e648205b7a7 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/PlasmaForgeRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/PlasmaForgeRecipes.java @@ -1,6 +1,7 @@ package gregtech.loaders.postload.recipes; import static goodgenerator.loader.Loaders.huiCircuit; +import static gregtech.api.enums.Mods.Avaritia; import static gregtech.api.enums.Mods.NewHorizonsCoreMod; import static gregtech.api.recipe.RecipeMaps.plasmaForgeRecipes; import static gregtech.api.util.GT_ModHandler.getModItem; @@ -15,6 +16,7 @@ import gregtech.api.enums.MaterialsUEVplus; import gregtech.api.enums.TierEU; import gtPlusPlus.core.item.ModItems; +import gtPlusPlus.core.material.ELEMENT; import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList; public class PlasmaForgeRecipes implements Runnable { @@ -49,5 +51,23 @@ public void run() { .eut((int) TierEU.RECIPE_UEV) .metadata(COIL_HEAT, 10800) .addTo(plasmaForgeRecipes); + + if (Avaritia.isModLoaded()) { + // Six-Phased Copper + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Avaritia.ID, "Singularity", 8, 5)) + .fluidInputs( + ELEMENT.STANDALONE.CELESTIAL_TUNGSTEN.getFluidStack(72 * 144), + ELEMENT.STANDALONE.ASTRAL_TITANIUM.getFluidStack(4 * 72 * 144), + ELEMENT.STANDALONE.HYPOGEN.getFluidStack(36 * 144), + ELEMENT.STANDALONE.CHRONOMATIC_GLASS.getFluidStack(8 * 72 * 144), + ELEMENT.STANDALONE.RHUGNOR.getFluidStack(18 * 144), + MaterialsUEVplus.Mellion.getMolten(72 * 144)) + .fluidOutputs(MaterialsUEVplus.SixPhasedCopper.getMolten(72 * 144L)) + .duration(60 * SECONDS) + .eut((int) TierEU.RECIPE_UMV) + .metadata(COIL_HEAT, 12600) + .addTo(plasmaForgeRecipes); + } } } diff --git a/src/main/java/gregtech/loaders/postload/recipes/TranscendentPlasmaMixerRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/TranscendentPlasmaMixerRecipes.java index 123f9903ead..b1cd1b76f3a 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/TranscendentPlasmaMixerRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/TranscendentPlasmaMixerRecipes.java @@ -2,10 +2,14 @@ import static gregtech.api.recipe.RecipeMaps.transcendentPlasmaMixerRecipes; +import net.minecraftforge.fluids.FluidStack; + import gregtech.api.enums.GT_Values; import gregtech.api.enums.Materials; import gregtech.api.enums.MaterialsUEVplus; +import gregtech.api.enums.TierEU; import gregtech.api.util.GT_Utility; +import gtPlusPlus.core.material.ELEMENT; public class TranscendentPlasmaMixerRecipes implements Runnable { @@ -138,5 +142,19 @@ public void run() { .noOptimize() .addTo(transcendentPlasmaMixerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.getIntegratedCircuit(24)) + .fluidInputs( + new FluidStack(ELEMENT.getInstance().FERMIUM.getPlasma(), 1000), + Materials.Thorium.getPlasma(1000L), + new FluidStack(ELEMENT.STANDALONE.CELESTIAL_TUNGSTEN.getPlasma(), 1000), + Materials.Calcium.getPlasma(1000L), + MaterialsUEVplus.DimensionallyTranscendentResidue.getFluid(1000L)) + .fluidOutputs(MaterialsUEVplus.Creon.getPlasma(5000L)) + .duration(100) + .eut(TierEU.RECIPE_UMV) + .noOptimize() + .addTo(transcendentPlasmaMixerRecipes); + } } diff --git a/src/main/java/gregtech/loaders/postload/recipes/VacuumFreezerRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/VacuumFreezerRecipes.java index b3fd9a392bb..a5150948ce3 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/VacuumFreezerRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/VacuumFreezerRecipes.java @@ -409,5 +409,14 @@ public void run() { .duration(1 * SECONDS) .eut(TierEU.RECIPE_UIV) .addTo(vacuumFreezerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.ingotHot, MaterialsUEVplus.Mellion, 9L)) + .fluidInputs(MaterialsUEVplus.Creon.getPlasma(1296L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, MaterialsUEVplus.Mellion, 9L)) + .fluidOutputs(MaterialsUEVplus.Creon.getMolten(1296L)) + .duration(40 * SECONDS) + .eut(TierEU.RECIPE_UMV) + .addTo(vacuumFreezerRecipes); } } diff --git a/src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java b/src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java index fda6c4c9e8a..f4c682d8481 100644 --- a/src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java +++ b/src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java @@ -666,7 +666,7 @@ public void run() { new Materials[] { Materials.Cryolite, Materials.SiliconSG, MaterialsKevlar.NickelAluminide, MaterialsUEVplus.SpaceTime, MaterialsUEVplus.TranscendentMetal, Materials.Oriharukon, MaterialsUEVplus.WhiteDwarfMatter, MaterialsUEVplus.BlackDwarfMatter, MaterialsUEVplus.Universium, - MaterialsUEVplus.Eternity, MaterialsUEVplus.MagMatter }, + MaterialsUEVplus.Eternity, MaterialsUEVplus.MagMatter, MaterialsUEVplus.SixPhasedCopper }, OrePrefixes.block, gregtech.api.enums.Textures.BlockIcons.STORAGE_BLOCKS12); @@ -1276,6 +1276,24 @@ public void run() { GT_OreDictUnificator.get(OrePrefixes.cell, MaterialsUEVplus.QuarkGluonPlasma, 1L), ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("PhononMedium") + .withLocalizedName(MaterialsUEVplus.PhononMedium.mLocalizedName) + .withStateAndTemperature(LIQUID, 500) + .buildAndRegister() + .configureMaterials(MaterialsUEVplus.PhononMedium) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, MaterialsUEVplus.PhononMedium, 1L), + ItemList.Cell_Empty.get(1L)); + + GT_FluidFactory.builder("PhononCrystalSolution") + .withLocalizedName(MaterialsUEVplus.PhononCrystalSolution.mLocalizedName) + .withStateAndTemperature(LIQUID, 500) + .buildAndRegister() + .configureMaterials(MaterialsUEVplus.PhononCrystalSolution) + .registerBContainers( + GT_OreDictUnificator.get(OrePrefixes.cell, MaterialsUEVplus.PhononCrystalSolution, 1L), + ItemList.Cell_Empty.get(1L)); + GT_FluidFactory.builder("fieryblood") .withLocalizedName("Fiery Blood") .withStateAndTemperature(LIQUID, 6400) diff --git a/src/main/java/gtPlusPlus/core/item/ModItems.java b/src/main/java/gtPlusPlus/core/item/ModItems.java index c276a31be81..2253b024a76 100644 --- a/src/main/java/gtPlusPlus/core/item/ModItems.java +++ b/src/main/java/gtPlusPlus/core/item/ModItems.java @@ -341,7 +341,7 @@ public static void init() { MaterialGenerator.generate(ELEMENT.STANDALONE.WHITE_METAL); MaterialGenerator.generateOreMaterialWithAllExcessComponents(ELEMENT.STANDALONE.GRANITE); MaterialGenerator.generateOreMaterialWithAllExcessComponents(ELEMENT.STANDALONE.RUNITE); - MaterialGenerator.generate(ELEMENT.STANDALONE.DRAGON_METAL, false); + MaterialGenerator.generate(ELEMENT.STANDALONE.DRAGON_METAL); MISC_MATERIALS.run(); @@ -941,6 +941,9 @@ public static void registerCustomMaterialComponents() { MaterialUtils.generateComponentAndAssignToAMaterial(ComponentTypes.FOIL, ALLOY.TRINIUM_REINFORCED_STEEL); MaterialUtils.generateComponentAndAssignToAMaterial(ComponentTypes.FOIL, ELEMENT.STANDALONE.CHRONOMATIC_GLASS); + // Gear + MaterialUtils.generateComponentAndAssignToAMaterial(ComponentTypes.GEAR, ELEMENT.STANDALONE.RHUGNOR); + // Special Sillyness if (true) { diff --git a/src/main/java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java b/src/main/java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java index 9cc82b2f1d5..5da803b392e 100644 --- a/src/main/java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java +++ b/src/main/java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java @@ -50,10 +50,14 @@ import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; +import com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader; + import cpw.mods.fml.common.Loader; +import goodgenerator.items.MyMaterial; 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_ModHandler; @@ -856,6 +860,20 @@ private static void blastSmelterRecipes() { .eut(TierEU.RECIPE_UEV) .duration(9 * MINUTES) .addTo(alloyBlastSmelterRecipes); + + // lossless phonon transfer medium + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(5), + WerkstoffLoader.MagnetoResonaticDust.get(OrePrefixes.dust, 5), + MyMaterial.metastableOganesson.get(OrePrefixes.dust, 1), + Materials.Praseodymium.getDust(15), + Materials.SuperconductorUIVBase.getDust(6)) + .fluidInputs(MaterialsUEVplus.PhononCrystalSolution.getFluid(4000L)) + .fluidOutputs(MaterialsUEVplus.PhononMedium.getFluid(1000L)) + .eut(TierEU.RECIPE_UIV) + .duration(2 * MINUTES) + .addTo(alloyBlastSmelterRecipes); } private static void dehydratorRecipes() { diff --git a/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.phononcrystalsolution.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.phononcrystalsolution.png new file mode 100644 index 0000000000000000000000000000000000000000..35edc977000ca3c190d8c06db3eccd6501cb2c56 GIT binary patch literal 1733 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 bO3~AQdNMILJH20X00000NkvXXu0mjfS50&8 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.phononcrystalsolution.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.phononcrystalsolution.png.mcmeta new file mode 100644 index 00000000000..8e55e43bafe --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.phononcrystalsolution.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 3 + } +} diff --git a/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.phononmedium.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.phononmedium.png new file mode 100644 index 0000000000000000000000000000000000000000..44aec7f5f2bb13cb7629ecab2bf071804111590b GIT binary patch literal 14885 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.phononmedium.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.phononmedium.png.mcmeta new file mode 100644 index 00000000000..0645f48c622 --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.phononmedium.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 2 + } +} diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/BLOCK_SIXPHASEDCOPPER.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/BLOCK_SIXPHASEDCOPPER.png new file mode 100644 index 0000000000000000000000000000000000000000..d4c9ac279a2197a5f410a40ae474bb3a646afc70 GIT binary patch literal 1129 zcmV-v1eW`WP)<h;3K|Lk000e1NJLTq000mG001xu0{{R3FM$eW00001b5ch_0Itp) z=>Px#1ZP1_K>z@;j|==^1poj6*HBDUMR;FLY*|cgSxj_XO?h8UePT|2WKMEhO@?Yu zqmNgomR_iyXsMxXqKi^@UrlgYO`LjAn08Q}eo>WjP?d2|lWkCGS4^v?cdMjwtf_pY zl3RadPMUa7t*?Quu!pFdWOiOnfoD#1T}_^VQJp|0jX5TdIwqGrCZ0hiq(vsBM<$g! zCa_E}$ZRypZ8gktI?Z}S&3#GDdqv7>GRSE#qCzmLNHWfDHqUT3&~Z4?aX8LyHKRf> zojx(hUNyyAHOgW&!d5lHRW-m;HI_Uus75f+hE>pjOwof-(S=pggHX+FHOy@^%xpBG zKrX3AG1786(Q-MTKQYBxHPMG!(0)kGbUe;<JfT4@t4J}@b2`s&Hl05)##}Y2M=;Wi zUeb+Y(0fGCdPB`^G@w8(tV%J{b34>@JJ4`9pg=InWHpsLFsn&0(uZ1}J}#X;Fr`B= zq(n8MLp7j6HKs;2r$;rNLN%E^Fr-2-m^?6_KQO07FsMZ^o<1<0JujX=FR)K0)`2eC zi8k7lMB0~1)q5wLK_-$qCd^|d$X+JTX(q&1Cc{=H!BHlOHzwSlSKOOW$XzDfp<dR7 zGN(u;%3vnlsAS!$Y}$`Lnm{J0OD32;CeLgp6Ln0k00009a7bBm000ia000ia0czHX z2><{B8%ab#R5(vvlKWTEa2SVQL?DA8xyVd0OmG5Sr81@^0|}I^po^wyNS9f5wFoPX zG8QB-A=4S=AKSZ2b`H-^?+?#&KHr@)08N{=U8mRSbb14#g(DpuM~x<<@tA@c^y;Nz z2FvkI2`gf=I~-l0cbW*3lOPDifYt=S@V~Ix>^4lgO~w<5YM7x%y;PJH^m}_TaX31= zpvTqM=W@ADB9h^Te%U<a6j<byfdQ-4ZnrydrQhWwFzGfahPHLZ0PR|>^w}1-+3nV7 zG;QGV4w6GYzt89M2M`iYpE-N({DtA+U@&+QxdfL-My`aYP-s+P46a@qmk1+tBpRK7 z*!6fKKAD)BN+ubWWpBXE6qTk@>2&&Ea!U$s%LPqGXiV<J?@mw8%wWMVEOQTL=cv$q zL@6+t#})J!7BGoM$0y)HW^pl-$z-$Hhq&_SF+AaxmN<@kib%;bn3vzRyc`ZkB9SQl z9A0E56PUb=C-GS<^9p9UR2q{xN*)<~4R2Of-XiaE?{m3)KEDbdKCXTmTZ^r&ug5+Y z3WYE5bz|dOkuMg%E0n;mUMeLh|JanMAk~^6Y=OVdH~4y^(NGLeYvO@`6#SHnYPD9y zWScMkLR6y!JL;vPtf0TUi-{m?Zo!VYw<n6?Z$vVhurHg3{DHFku7iV0rB<s6xUw(S v8<=eKib1xn1Yn3HrQe|3EH#^6uXpe-ffCu2cwxC#00000NkvXXu0mjftxWAP literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/BLOCK_SIXPHASEDCOPPER.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/iconsets/BLOCK_SIXPHASEDCOPPER.png.mcmeta new file mode 100644 index 00000000000..1a89bc6ae4a --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/BLOCK_SIXPHASEDCOPPER.png.mcmeta @@ -0,0 +1 @@ +{ "animation": { "frametime": 1, "frames": [ 0, 1, 0, 1, 0, { "index": 2, "time": 75 } ] } } \ No newline at end of file diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/GODFORGE_CONTROLLER_GLOW.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/GODFORGE_CONTROLLER_GLOW.png new file mode 100644 index 0000000000000000000000000000000000000000..5eab133d58a6e88e46b1acbd5e227782fabacb41 GIT binary patch literal 366 zcmeAS@N?(olHy`uVBq!ia0vp^0zf>0gBeJg&6Vy3QjEnx?oJHr&dIz4a#+$GeH|GX zHuiJ>Nn{1`<pO*{Ts3pcHK#3}X7pS$uR`;{MZ;JBG^Z@u^ZHNw(&s=W?;W^q0x7PN zAiv=MFu<_sjLvzWC})93WHAE+w=f7ZGR&GI0Tev!>EamT;r({%YrbX$p4P1$hkoz> zP_;1mf?~I1p`x|D$InSg)j^4!Q}=O9E4|twRxtbfY-U!0@_L!N;|my-7?vI|W@Xjr z6gu&%^ukBwjNc1c@BI=yw50BgnS9iAraRN7E|O<Wuy5gb@Xf!`)3E*4`B{fHwKX{; z`+6M^`8HF&$cs7V(_%fHY>gl1+cg@0xj*X_U~^ci@5Iqy@_YtJ*E{~nO^%fsg0Vsd yt$Q<6R_OoQwPBt7-|tTs$$#JDV0_NKhrgiOBmKvlI0K+}7(8A5T-G@yGywo6B9S)$ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/GODFORGE_CONTROLLER_GLOW.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/iconsets/GODFORGE_CONTROLLER_GLOW.png.mcmeta new file mode 100644 index 00000000000..7ab8340b0c5 --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/GODFORGE_CONTROLLER_GLOW.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation":{ + "frametime":16 + } +} \ No newline at end of file diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/PHONON_CONDUIT.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/PHONON_CONDUIT.png new file mode 100644 index 0000000000000000000000000000000000000000..d1f964aeb55a6558983ef2268c8954e0019cefb5 GIT binary patch literal 9581 zcmYkCWmHsA+xO`dN9i0CX$hrcU}zb-JER+=hi-@NlJ1mH8U#c-C8cBNW`+)dm;3R# zpY?t?YoGn$th4rYUHiX(`@eUDiqZ!HJW4zi6chr8td!bQ`vL_8H4q2w>FsTxd)HHg z>Z<lZ0;PJ4dhe-&VI{68j)L+n4*#zS=2IW{ldP^Q3d-|e|9MbJnB@XdP#Dl4QsNp= zqvb45sD6LS?hfC%5pE#;&lQO7Xrd-vzhdK-k*TnA#D+lZkyXDlb(8y$&}GSy<%Z&q z1N$GDF;h#K=EIti3YwJ(7@0k2@fcz#Qch&eN7=7mB@}$U-|<_$lRS(0DY!F&d7LfS z=~J@wcKwT04un1lsq?kR*;-UlN#SpUEjO`a&az|OqO@x0cb-RF3rgFQ<0A$fv{~u0 zj{JNBfiG%<^q%W&(K2svSJ@$xXOSX|NqZ0PoR2GW<LPf^24L~|h^?#3Wsy<wcBg*N zw9e%H-NWeqjl1(<v1a*1tM3p?dOrru2BFb`TgJ@u5mxOB4_-JgFBu+Yu^L2D<g<w* z?T`+GGZw@g<jX$jBl~vuU~o+%D`!HmlZ>GN<EG~M`0I=vFKzb*%PSuTJfm_`;^!jz zGvyI6!HOM+@*;Icd>ibWEokyoi~NC!lLr@j8WppK?#SzO!<vuFcIlgLIvYdG(F+FY zuJx5%>iJUJ2^W>{WSvxol4>8y*bq|Rx2!5!Z`8^Ka8q0uREDOxu&TLp$qFJWt2A1w zAlKST-)Ti(|KYFQ=+G!3S1o@ni7KTMT&{-u+H|?qeQUDj^6E=vRpkB{8ZBg>Qrt|I zR(sOJqmL>xLe$MsxrK6OY6?B(Vxhv~{LPh**_YkbEBpabkSHZC21)QBn2%UA!0^5< zZWWR@+pU^W62Y$DNKY8i)*YRY#!QIG^qg7a^FoOx!a}_tY;^{)y0;aV!p*p@VyT(1 z{sb2DZqP)}ZBqWeF~H0zcVkc5^YJA~!bG0=L#Yxf-AneLOdZy{XPJFX67VzA2Q%H% z_N|#tev4QCGlabb<)&1_LKiueU<^Y?o-cH81jH$2cx%s%a)?;Et5mP5uk&M$GHIoz z)4RZC`n_!;jW7(l7LTKa?NrjJ-hympi=#md<NTSuSKV6@YULV_P9V^`sIh?isa}x% ze8*!>`6PwcHI`b*>FX)P=0%aKB<0>MK$D7O*zjU;#+n77{k+r`)AaL;sDx>m&(<1p zd9&O-8uYw{N-MOCrObN)6=JZm%h>1Eq4GZ9gLMf9g&(?*{S2-BFdNK-iB=)+P+5_T zDJC>#O3|g|NC5L$ZTC_0r^99iDTy;mT^BY+r-1|+2ahaQH<D5&x|Su$(ldliB%y|_ zc~c^f_;#&bxNXdUJTrCiX^Y*(FEyYXYt@2934Y6nz02p)|EAgIJ>aqaPBtVsZ`N3i zkd6hoigE6yAv1ry0_fA-L%Q!ISDF|HgHM*AH|Yk;SCy+Imlu5XM)X)%VvyF>z7L{m z)w-)^<I6F<OJM=f1{V~8Rem}y?l=Vuuplp8=>VxR)tro9x3u`zN{1MEw`iG1lM!|V zLI&R>U-$<SwIi7%oc?zRv|eLcHc^iFVZ0nWA>0%U4#TdAUa5TbyxRV@y&Q)E?^Q6N zf)ytK5EdTQbfiDh%`1$3e3nZ{yX#VPi%oLeL0!zzX9hTmP2Yb9L=G0JCJ-vRt32p; zliGARu!5G}rPo4|(IQ;f4SUD&1Y@ngii-~C)8%&l9+ts@dn%1*hXZJ^8xMH!u+v^U zEhPToAz8leC^>i99|V#auTYxS|6#K`{Ar}^EGn?P>VNqqP_}=clPYP0g`&gF&jw^- zjYD&tEV1rK#h2W@hX!yeVTP2)+h~U8%crZ*heT~&t1&7Q&)F&MnDAx3)oeShr=x%{ zp*atzpu9}}SfL^0B^Uo-ab?mVS9Lep8!a&0Pd+|w8T+PkGT`xD+HXJ4<x>}4!Ugh4 z`Kx8YNW7$*b-1B$pI@kF5rB(W41*y(5AB+yDDupYdnDZpA}yDrlUu}fL(@#VlwT+% zddz*bDNQFs^qVslP&3*OlW+gVug;LH=w_$>s)GXZDu3E?bLE65<QfxcqQuBeMRS+N ze_tw!{(n(dmfD<kIx-yTJ`#@gb^09WZ9LK~z*1`uN8T4cXL`t1`Q#f&M^c2cRSYuV z&8mL+0<rcAUkg)J!=zo`(3TmJpE$R!sI0yVI78<DlDx8V(rB|kt>zddm?e{ieSc}( z%5%xkM9u{WjYLP6G47f3c*#r#z258ijUUc6%b{Kzd$99TQ4u(LkZG#^Aw?EyKUz@? z`jJ3K(GcvRiA%33w?39g;g-yd2-4-~H>xB{JAE;>Em-BjF{(7Wg^ot>Zy+ghOv<>E z_#tKzsytPzMdI*+z;;EY-tPmzlV!-@pp*OBOX4CtKn?HwCBubn+iR%XRe0PfQ1scq z&sFkA&}WvGo{d>i!VQG7!^wG*X7i%;P9|)lZT%w)B8W}Y$raF18`Fjc&Ci-#WI2EL z!xTe&m(o(Le=X^to7%IABNEH2J*==B{l$F;-qUk^5fv?kTR1#_N@34X-51ygqKuhE z56*4)-|P>xc*A)sWN~S>+jx5#fA>{R-xeHCMo;sKk`OaMs;GE}Q)AN{$sxQ5!U$+4 zIsaf;0UG~j7^JCNpkUMb>~w<%DJ;CJ6r1L8WM4x^t^F0QF=U{{kYD!7@-$k#v0$Y= zfAo;*MH~%yE(C@h<t3maRo_~opChzw{Zlew{5qkaLy&)&^TS^=J1vea_(gCq50xy0 zP$0j@Bs2Oo%V$DdiD-rz_3!dt;iRFajpQlmHZ7J)<)1<9+8-Dw-{N13swm-ue)t#F zl>Hg6<jmV8AKn)$R4Kw-8KJ$F${9BDRI+#o^uv8v;)Q}pOTF3D=#1444hF<%nWeRr zIe2X}25+}<>LAeSF-$pMxiw$u$z!fX3{~UNlB~g(u7&_}=0F^|cj94(f2s3-b;~<k zQ|n>jCxlvy7kgj=ISEEnx8tq3Webl4ykAVv`K}ua42C3_Ql3|=XdbWXy2j_D&@p$p zU7jLjB^taIS9(DPO?8i5@BCzdAh^cIKb{d_7h#KbHujkd0tHgn<gs_An(SNf)C2_r zPMmO|*^-L^+`+)bqOPh7l48Li@9E5}lJZrKZIkZml|HQEyA}3Cy;P*@;XwYcLxsM% zydSm0uFHBe-$Xq=)z_3_KG#`;(|X5E@)Q_~VDK+51^!0NU8_cv!_ocTDLo9{TF84r zJB!#TF3PFXB#DDniHa1AVldh>5*XCdhVbOQ$cG_tdVRLjHP)X1nebQt5dhW{r5wVd zS(!KpDYx!oF)_L{ApmE~v{tOOrySLk!^2PBwMEZDwCe7>OegVmF`b~um$w-OZ(xMn z578g-@30C(?VXbG6~k_1$VN)vBH?ejd_u<TEj3a##FWYEW8S(o+B*DAXH6?S2ZoK= zbL(HJ-Gp5uEZ=UMoXIX^rYL;*%Sr*<^b<{rBT_3RaB%8(&Es4Xr-L>rTw53K=&ED= z)2T5dpg%d?iMQ9HDG<2SdgcrckOAtM9$K^c<_C~Mn?dX|R|L_KvX<X3^hxBsn(YKE ziCD-BJy{vzG6-X?|4hag`wG5i&11q!dZ~6TP2!l32M}rdoCW;0k%O<n=*}lQMFcC_ zRroV)+xm6NZ`8%32rNiVb?DrUiVp%ctX6)sZmCKkEU7$j_D%mHK&QgnJAgBcRL))W z((`?Bfx)UeyCT+-wdtD~K}d)u4v*1hpl^#+Nb#v#mybuoO_fYO<#bZD#VqZKdan>f z;$ojK_AXo+3JRS<1JEkRM)Foi7iX`dCx-4!VZ0=<PV;aK&w6g40}JXKa`AoV@3Lts zGZVxmos*>LnJUqpmn^s-$897y`i$-fW*}NiN~;cs%S=ueO;$vE5K(bY3OY>TwYTf# z3Y5H%nwZa5Eh7*z<J5ero)j&RSx1+!FqY1aN*#57tXY0=mKoK>p0+SDJ|$cRent$G zQY%#7^*EpI$onn!87({yV`_f5TX|dKsK&QG9j3W>`S%rc`+6;$vCcJU7!4^*9Lw(Y zJ%5#IM|Z`VyfKTE_Lw?$5koBor#Pdr5?3#RX3B!G)x|A{DWiQ5hvC7M<N@<LDBzRs z#Qv6CHnGa7#KfeM!iD7j{EA2;kSGM56nZ_;Ar9yr*4JVU*Bx95a)66#Rj|ea&vDP= z{<yJi!D;l-T^#`??kO)c2h7FFr)@1{;|ow716ETKkj0>Dm=#V9?H4z>&szA+G=;?K zYfxfk`SH;w%<*S5+C7xbT=X)8hzMb47(|6B4ZD4NUF?Zat136B`W0f*pD@GaPL=r) zLus*=E;j?KSk5?!0^FlIQu_;<myDm&77jbutbU$UxL`l=3Bo%xXREJ>#Z3gRE|4uO z)vxs2ZRitWZvWX$b@2|Hl;g_sd7qAY^rF~W)Pubc)rVhl?w0yYIu=rH9kgq!5TIMp zSJh;X>Q7*Y(SH$`(jAc;Glgy>-($~W-}%RnXD7f~#T0<q9c<)nipLm0J#4H2Q*kvL z?5{(`prsQ<8_2IBjf$CiHP%QTp#7pn@0N?MQn?$Tn7iPd2S}c~Ccg7J&EcyH19rna z27Lef?el+GCDPCt>W;etcqbPX+<^%2kdb;SlZP6lf^!cd9l_V#uF4y5Lr;F!Em9L} zoxdB#gQ?ysk%dH?4*cpz4okxNHHa(Dt^Ce_g@voPa)iu<(g~L0-IVOV>=rRheUepP z`JVLJ1i@(3QgtWdk2;LJ=7%<6_j&IPmJFdMc_oj$$K%&G7#-ab6$q8bJ-9{mkgD9l zb#SAZLux<2ErG-6vtz}np?C$)<YAxLHEGNLXn7{JBD+La?D;nM@fnsNvPKlodn&h+ z69zferX_eYB-V0iQMX1z;>6BB@9kvY!@nytLJ7$Ed3bhl^Ky27Z#Uc6I8vr?&88Ib zQF;@=-@K}?`G{`!|0zt$q*kZP5VYK4aV%GQ%WAWWMy}Enu3r+eTA;{p8A@`G{v%K) zCjZe52+SsaW?)p6Se%la^Lko{VK-Y(Z!|$D<?Fo;<6s#u(<xyHI@ofh!kA<Ig-R8N zVbiE28XBR{Y<@5<?U&K=rEpLUL?W_s+=ZQdMf<!pIt_+qS()kxR_>RQcYhmNAyh?9 zXqSpB!8%Op-&ldGw3mDjJ8~D<jT{y{sXd=G-eUw^ugBd*=sQ^oEsnP>@+n`kZ<!pf z)qV>oD$__f)?4-sDOzq=hY4>vb*2S&t?eQ6o4O+WuS2GH)Q7gJ*WoDEo5O}--Kh5! zdgmJf24EnYb|qrGc|(?_u;O<qwMRp1qp%T9&}5O@X34E2d?{28Jh*kYvmqG<!>@8@ z=gV&V*5|uQppnf~M+B&?&s+$F7+*LUJJ4hTV~Vb_#<~}}dd4@uX@)j;JQtQd*}UE% zoHv^N(S)u)3|d1^9NZN7w$jOKe^dC&I_s=@jJ>`Gl{dH6ZKaPf5Vq=GgSsPp0KG1a zo_JVz!i=(j&a3|S7p6cZU8m90UtxsqJ2@ei%4Fg1SAP<lp)hFZx31g{e4{H@5hzb& z-a&-zz6T5xrKSiZvWf`xhO^ya0F83P0p>PB3!Ne4hci2Bp)C}OS5H%p6x*i@gJdYX z?FFsT`SaO1Ud*semTSQ)JQc17$*jpL^ZP0IA-~XKY9H(fAo_)xTrA{`!YkQbWV@c6 zg<u+ydp%`qE8pYo7Z<1X*tblN;0LvDR<uOQ;gL7^fq?}o!B4c2!W&PDto?y0ayl@8 zuMYs9g^z|bO}**(oeI8*`s3sv-g(`7+YOziQ450|D~ozEyNMLnFPCV|EvlHW*xQ+O zcf)0?l}qry?fKau#cF?b3;DSFcsA|zRq`HC-q>?^e!@H7Pid%^F>LVpx}DPW`SuPh znhj$Q*_+#}Pk6C^fCx1)b>Vxhy4{*lMFVZT$3((OLz*XEJe;IlmW~kqW1{SKq{$Xr z?%i2sl$V%O`>aR`_zgf?o-0!I;5L@U?h`FZ3HDU9UcC9E%k4w=8#4wqM$h*}W`1?Q z%7*2j?2xIx+6Xu63}3g%7xKMK+fFqp_psZMpDTr^?7Gu3yS_(Uy1Rz8y)=gF(;tOK zVNy2>7952y`(c>C2QKds3$?y2N3N3(?&;V(Ua}f3iqZkEjGBv!y;uMz%gCPz{3|oh z00+F@xTBt|jC3gucEURgZ#nL|UFA2rM{10BYpKF50dY9xhnR`xQZnVq*i&TDY2LZb z#`XspH*rmV-~hrIGvIiSRn7@m-S4;NCgSI<RRFi~0R~_gET{tjh1*mOOX)2(M+1_h z|GbfbaR)(Z%QHVtwc9O<dzp%|XLxhms2!mLuofzsIuHg@i^rTS&w(r3(9?uIs!qo| zmK*B3_uaq#!ij+#rzKvG@hS0Hz$It#)sGr<)}D7CvaQzO9x2vp&X0`+56-Tr|Hn0d zMk1$;jg3Y^j<c(VOXs*xKZ(5Fpr|?=2ybmA>RF0z>an(wxICl-hSw~6SFY~(n5LHH zTPv1ZA80VM_pwFQ7!}HrZWF%b%uE?9#e87mL-nut74m_McJ5M~J5iVLyZt?@*RiX> ztIBF7Mp0!(xqg-MgH!ov45MPbHTV%r?u5;A1fQtC!fc?IY#eQY;wXnuB2Hg*#l_P? z%a6(zOPm+fq5ArVQN{<U=d%e4;q9x%Izu5cPGxo0(uoy3aNpphSJJPAu+`N;g@N@y zyM@7z&g-2IbTrR4@2+0NKnLY1g$wpY<8=18R=kE&Rv%4T7I1;0LJI}l25V9;++0re z9KBy8D=5NR1$s%Fm4mH$vJVYmv(|4xpdY3;3vW9WoI3n}S<K(Bcb3Ks|B?lNa%=nB zac57qJh!l4PsQUTB`NPU$CWPWUz4&{<+$Xm+R4v4F|gd??hii3hlVE>18j~<hpA}! z>i!SlYx&r`jl5mo18AIln@w+tfl6P%OSvU()OW=ye=CzQx2Kl-nJSVq8nF6T70(B6 zo@B4zQX0_pj$y^Cg960ahz=+o-D&&z7%Xg>6@3X=s^jyOOSuX0UJa7sF;|E^Ad=>A z;_127@CE6+;I8C{uln%hJhR;Bie<b`#RPhcQcGH@qs)ZQLmH@ZO~wL}r>9%Sc_MrH zwQ@;m{b@gPhY!$&WtBvqwN>FNv7H8Eebb{~b{7J8xBuDuo)T#wUa}tDjBQ5<v0&j$ z;%*Vc$d?=DKp@a#3K#g<(iYFuC2?fL;(v8lEL@tt2W{Bg^|R%?600}_8{F*$x^pbq z<deu`lpWKV^^?D^as<yZ$7Npoej4AQj-s}6;{g4>GMXLwSQMXw2fKS-%%Zy0<9g)# zNs1}{GKZv9uWhR2$1cJM5j(`|>uyOcdJ=1Oil-MOMf6J_hfZ>bf{R*N)Q};MLIIT- ziE05{TWQQ*w~8E80o3#Rr=ov3itX5#AvQu``Az$2t1bqHA0jbptn@{>#>;0%#uy$A z0>u-St2vL_-|`LNfa;?a^|vA~u+Eq)Zy><3<D47?M%Uju+xyh2C*Kx&b!{z!$2B0J z8hoEc%8}I8KF5FsBH81qgzG>qz$N+zm%75~Ih7P~2S;6X8WG!#o%-cW^LfPe1A2eK z)S$0(1(ERz9q_NHD)WffSjw5W9E`S*a571H$Od`B#IhxGWrKt}q4LF~(+BZ4E8rcX zI+OlN`WO$TS$7o5#<ob(cj6;297JRJ@SMt;Ek9h1&GzeOHMWRTxJ$#6vi&|@u5`C7 zH<1<+P@q8U;SD-x*Ts;7-Coh$H4)9Qf_%4<ejhk&|Ir+kWk}ez>|H7|kR8s{wr!x0 zj}c6Q8@}Owqu78C`dd|gwx(p<9xdO)NC#5OM51t!oy}XD^UNwIr>A6sW(jCePkxSJ z?=89pkqLi!_j^YgO)na@N9ia?_+-lBvL^f7CSN017#^%RkaaR=$|Ds2EF>YHjqcRE zTDVgwqV{Gvo9vMj<jeGda1hb*fT+Uzv9ho->r_10aJc}88G!&1(vlm#i&QrjwVS(c zO}XlJWQ1tL68}r?KX))XRkrh6JmX#f+JYrXgQxkv^4(lfoz-o-a?~=0ERDm>xbxlE zKno#GuqY^b?u(EhL=t$1(tYHzJ8zSZ)2eUs(yBvQ$dHO^KkXE8BCgu6!VtU;Ni0E> zp9afD6(|r+W+5DybdN_PImKOOghvc77Hp$dioR)P{&Q~2)t+2Q@M?ReIG16+5C;#P z?v66Q&@TbKsgO27joSx8pyN%?K{;QO{k&`xMG^9qS7KsXatT)Z>l2WZE=NKWKn9jU z{p3F|fB6vd<3kr-NB4Ur!tD^cEwHU6&QRS_KdWBWxx?Q>G{7o%#N#|95@Tq$$`#8> zeDc3gU3ShBJrLQuP7@TD&)L#4*|<C1NV;fMLA}{7Gv9M=uVt6XH5>@**5n=UwW0xN zhZV^ic?G-&%sMW*mv=&CfWQ%=7gE|c-JZ;b+M9#h9ilWb?*N~tpv|7lNO{_WT5`%m zJ^oxCGOmA8hCzZ5>>6zb1q}E#R^`#B2x=w`=TsZZ9Q)JS6Bu{MX=kn9`{38z7>M&U zI$><l0cGOS=<1NP_mQBcj3p5?IcLMl=77HQLYR4DMGU**lY=0Ng153;&;1FeuvW#A zqB<O5N=MH4(yylSSGR<3nT^X&#Uu?@oD{VwofysD#AME09v6Cu@e5jiKWo|K_+489 zCF=UwDhx&FX<nT_0|ohO-19X&5dUWlIDCbsuxci9VVHl8{*Ud6#zLeX`rbG9nRLO$ zTMi*n?E^)iV?8IRMpc>;GL#sDFxyBXf~%zR_p5J)2GDb1zt`nv-~Hg;`sUe6ZZ)E| zZVF+Lsi#OJBr0h^7##Yq2L9DLa<VPVv_@>K8ZB=pcb&IMi{NIKEONZb>IAx1qPth1 zp6k@^-Jf7rIyTb1Y{NozT7^HlT<l@ktEPC5&ed2uq;>zz2JY2?2LQ+5aDM+DFZCX@ zs;6+k#qw|71mj(2t&t5OyDqx4mPa-PTP31~na{EcDIXMa@G7(n=WGa<3<Q=|1MF?> z%dmfAks)7Df7s|6aeY)Yn9hdopfJa1SEq{Z&x#`4r`MKt?FHCHF$7R?Z^t|^r6Wv! z_$Vx}e|=T-Lz1|l<H+<0K3iKWu-Zn|3TLM?8x(o}<zA!wX+yr#Zl)&@o~d72`oS&( zF||C^515^<Pd9x-5z*RIcj|jEcwOt+u4rRCmG6=6;J(Z^AFXOw-&9rUqNds4?M}yd zcKbO4^b`G3>r+QjsVir%bzl0YztEr^cA+2k{AnwdMK*1NUs7h6L<~Iq+Z$X6goPY_ zH&9fPlwoZphkd2Q{cjz11j4}Ea<IfNUpUA^)~zz*=T$}CwMYQYY^Z6+)PTT@6pp3F zr%Km8I$yc!M0`^JoE&UM7FuAe-BN8*Zh?-@%BSt*8DMIVuB;7(wwB#gm0)4fDT%__ zw&&T#{>SkCPt=u8Rjw|DOCo|Si7F<UEynmHeRYg8rlzl^_vxdeV@{5;sc9$<yP9UD zK>`ZBOhES7KKFfvZT}xMdH17NlY&)0dg%i$t*9iCQyU>a-&9xpDOY1r>UfO*U00_r zPWk?-mGz{by$5!y#Z*yOsF^9CXOxwWL7;A2x)Ig-+p}Qs-O!WA@$hNRE}qEQ)yKth zU@m$?a(zx*(!Gs^FPTlwldWG&Qs^bEM@)4USGm63D3wU-<%~zVOeW5~S7sKC3yJA7 zY76QJV0Aw-f8AI6bExY_t&m*_a|5x^$<H^eQhm(yEDi*iJ+$Jx?ol`^LFjnH-xKuC z{3~r;1+<MzKWXk!808la3N<a+YP#y~m(rxNRI=vw15lneAZI9Ho?G9A+k@CaNM1$K z|Aowzo9+$q+eB?8FQbhGhdbb9#FKMt(cYlP!hJSxOuNg^1MeN(L`t%8vZOSpC{;IU zL9ba#?~@wk7|EzY-5g#z>SF%4?p27Mb}4_FnsooJP%@O}%jUOsYf?8wI8RKN6zFny zZ$GC^rxx{hL*6+DcnTlu|B(Yd*68--`yIr!G+tzl<sU7k_#s$srT~?eB~JVlC==?J zr2%BbCX|Z$7g-ZM7087)x-?5dXVHw{h>K;WZ2&%K+EFiJY&CS6k~MAT&9x0)*yvE1 zCUe@%;ao&4ToAtq6PUB&Q}!os%l@e4XZ*@CK}K??@sX_+ouvBUh`QYlKSb#ialSV4 z*|Kmi%ksvvv;0u6G_7RX<I8?Y+bDl^<xuE;vUw)BbJ)aS4W5s)l@k!nx=SSoNgj;3 zlHPbg6?rWna%~AOP0yv$eS#j;@wB{qGAG&lpBI7|V;w<h-*{)M)y{m6TV^{JBX-1$ zYr)HYZ0@h#C1wNw^Rmt*J7%i?JXrb(iUyu#yMsU^MSOqvmY>c7{m-U8_(9dzqP*U* zl4yF*Y?s^U5*))O&&3RCSjWJZUWwR;^5X)4XC;LgDMW($j3q1+5E4fUNgh_>8;B%) z`}GPdE;uIuT>Yzi{~pHY+(AlJp8wM6=+oxC42N!gz0PI}R=WznFlDS&>_`o#CUj2M ztfjP95_GQ<<Y6QF;96n9URk#<<5BAgq7T@$J6$_;AiY-u8nKqKJL<nTHlGSRy%0BJ zc9Uz76Wxhhsu*G4>hd16ov!=L=4{T|yM=T_FI0>77I|&<)$eY+nr6%P307RL;KZiv zIVs=O2HtftBvOMl5(T$?u`gti?L;U2|2Y*@KBhIS8&O+;0$qD~%i;7VJ)H{JUVfQD zK39tK)gpJXV<Pim#_;l|Gr>1pnPSZ<&ST(r*zC^10{Db%$JHo_ADH)UdQYM{_#Q>a zbE|(;-c4>5FlYPz455#hzJulZ?r^?JUBwm(gYoveiasWEaQx^nR1!h&7ddvl<SqYg z1O#R>P(57snF3o^@7LPYOF<`otN^?tZQBZ3W^)Yg*eMNrHUo7U^);%ea2(T;$%lOn zr*CkQAQhXJ@#WTvC8&sE-v73I#9%HrI&}u{(Sm+@yf2h5nrFnWN>=|`x%gALyolKD z<Q+@o1>*#-&sXp+cqNAHTp854>EVCC50;op!c;0&QY_kZm;N;US7$<x$?p45&OOYB z3H@mi=7umYkC_VTE7T==JQ$`cXjQ8ZxMu`|p)ulmLm{UboQ2h{gS!UKQ1ixsXFQrz zLdgzQ1GcKq4?hTtvS{nC!E-%nhv@!HAQ>dG-ef`D=rP*~ZEy)53`2+kHI+TEr-hC7 zywR|UV%djQd8$0FebV>sOEa7Muxy^+g*ySle{V1E4iK&|CMXV}RzwBkO<BMz*g(>v zoh`lIvLQDe4MXTo6~lif!`3yTv}UQeGf$n(d0yn2l4plEk&E#n;>wQm5l9>0?W^Mh zYGZmwY||YFO-XW?3&^STb4uDi+=Ab|uGrvo;@md5SfmZ;4|p<_OCq*_ix=|-(}7OZ ze>R<4`bjeb5<ap3I<rP%w?cX7>N{B8zOki34)aHTdk~CO@X5M@s>j&wQ=PG^!MkeD z3Zw9XWVjsZFsr?)<nUO-znY(X9m2L#9icc2Ak7h6iOJ;?7?iwd67`Qt&rl+>2ql+) z!RsYa6CW&X7Gt{XGH(~qaiy}V23(1Zz$=aEz6+(({z=xyOhKW@Mct3}Mmtkk-zf!r zsRB>c$BSVvcJ53b{KvoQ#gpYAYWf#7HbQZhRy+*?k(Q-cP-*weYas3fpr)G}PnHDu zKzzD4TP0`UmtCeJ13p~6xHJ}TK~`i|k$EQBcU}KEC|}MsuIyg~lI*ncO0;2qmt&(h zouY{3(?OQVa|xA`Knq(eQ#Ec`ke$((h*-QSeSO68elZnLr?G`;oF964OeSW49C9)c zp&2~#Q*OVd3zs6s?ofv|Tl2VETSA+O0{jFUyqL5#n*63+NaNBvxaGe-O#SHvWj$`k z`jn3SeH>lN`C$6qA#22dUQnx);tm0gN<FUC@T;|MzrX;fx`DE?u;SzxtK(lX@;)DQ zrX!V=oBF)o^rM%t4Ni6DC$r>sHj3DJ%h~Dv@=ckw6mxpLRm1l{+AS7l5usJoh^<r5 zZFr&4k3%$HvH6=dH&4Git@AsurB1^D<_5!$Y170oNME_;=D1;#!{4j4)UndXtVBBk zp%wcz`j^t{c~X2tlJRbAUmzu&6`UMfUDwmy6GEP?PVdMR$M(<vi$!jy$*=CcuevDP z>2`EdSx1;{k=CEH_h;W$&g2(Pv0QdBfc|Q-#b^E@o2|z8ySBM3j_ccLuk5m(Uh+=Z zSmzwRIwtkJH0oWC2<W{ze#Y&Q6Y7zPB+yMZH$%_ij*bD0lJwXr3&*LXlNzT#K4P$* z*%-$><i&XHHd0xp%^S}l6Y?r3-#XWf5ja5CGc!3_){y7d;nG?;%DLYk-#x4Ztz0!> zrE*efM8)HCXzx}XNfu7%)=@*RAL||i#~(561mA?p&{t+YU6De8NGnNIOMDFee?FJ0 AT>t<8 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/PHONON_CONDUIT.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/iconsets/PHONON_CONDUIT.png.mcmeta new file mode 100644 index 00000000000..0abd1dd96d6 --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/PHONON_CONDUIT.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation":{ + "frametime":2 + } +} diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/759.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/759.png new file mode 100644 index 0000000000000000000000000000000000000000..304bbac41d0d71f58230f5dfc46ca9c4cdf38988 GIT binary patch literal 1264 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qt-49wP<ArU1JzCKpT`MG+DDfvmMdKI|^K-CNk zHue<-iOJciB??KY>6v-9O7C~?S5nAKu~iB;^)>J<a8Aw0^r$LI4X*MFNv_IHwoFm7 zx8voqsjvc?kegbPs8ErclUHn2VXFi-*b2x73F|8<fR&VF+bTJNY*dKw4N!2-FG^J~ z)icmdHZU_#Ff-IMG&V6eH`h@xGB7mIH!#vSG}1LRw=y=eGB8kp0wthz3JNwwDQQ+g zE^bikfIM5JjFOT9D}DX)@^Za$W4-*MbbUihOG}V3Mn<|o6}rWhc_oPzx_QOQ5JRBG zxTF>*7iAWdWaj57fQ(H{$}cUkRRX#g;+5P2xY>Ed(C`9=oPI@Ofxe-h0my4Gg}%P{ zmFDKcRTq~8r6L@S)!^cg%7Rq=pw#00(xT*4pmJr9RRvbgMX8A;`9&f5`8lxA49LhY z$uG{xFHmp}HdP4E%uC5HF9xgj^|kWMD=taQOHTE4u~h=<*UQXIu`)3<b~86IaI!Qr zaWXV?HL@^wv2-+bb}}|_bab{ba)s%2$xklLP0cHT=}kfCb;hX|97Uk`vH@BLbbw20 zQD#|cid#{Bt^(NKR++e+WQo&QsNNLZPIAPpS0Cyq8+}k5BgHu+J%L4m2@1%w(TAsI z5D%UsQuBb>pa_`W<Imp%<`zafPZ!4!3;(OZ`@Ih*2-J$d>UTVQ$x)z$yQz6{<S+gd z4!xs#f4T3ReGva3;9wqKUTN7nznf=uT0GcgS2;&@Pf*f*@_Dy+((RmA3U(H8@Af_} z+WDSabLj_Z3CsTy_4ga}ZskTEvhe(1CY5L*kzh3U(XPviD^C<&$yj0Hd(c|=+Cd-n zdCTK|)oOMv;+U3t(zv<UEmHf_L4&r!ds!!EpR+4-P0?HA5UKrRTeZ8W+{taZR|Fsa zP`qH%Y|gh~6U&wP#g57Q+>R>jWZ%`8)Vy(z@{-sEyV!E_7}mdcn3MA9iRR<edztT) zGe2I<*nOv^mnr-;<G1Y$)^jpHo8DRA<dR`F`%|pVt+U@2&ft->)ycH7u#e?+yy`IV z^{!JUzJ~j&x%S>uK2bR5=;yOHzyEEm4p@D4%ACF5HcK6qKC=J+%m#lQpUubTzqaQ9 O6+51;elF{r5}E)u1+*vt literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/760.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/760.png new file mode 100644 index 0000000000000000000000000000000000000000..b3e1f2220c61d439586c669e0d5bc62faa59d3a3 GIT binary patch literal 7176 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/760.png.mcmeta b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/760.png.mcmeta new file mode 100644 index 00000000000..a668e18a772 --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/760.png.mcmeta @@ -0,0 +1 @@ +{"animation": {"frametime": 2}} diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/761.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/761.png new file mode 100644 index 0000000000000000000000000000000000000000..1e74ae5e0f9ef17da0df0bd9cad3c5c7f2f811e9 GIT binary patch literal 709 zcmeAS@N?(olHy`uVBq!ia0vp^0ziC$gBeI#9u<5Jq!^2X+?^QKos)S9<glbW`Z_W& zZ0zU$lgJ9>PYdt~alOdFoyyFd!OXmog}s=CC7zk7jfM3JCr2_+kcDMGJ6k>rODq#} z9~<j=HqInw<}4PLoviF>EX>_3Y!}!$GniR6vH>-+wz0Ba<={+YX3l0|*}%pg!OYao z%6gfdE1jA7ARBuD3rh?$(*#zwW>(fqtehz<%$ck#2UytiSy>WUn0kOlv2pEXVNYXb zp2WfibXv7s_BJ48R1)MD{GU|7z#A~*Jy17ifk$L90|Vb75M~tB@M-`CNR_9HV~B_M z+Y5o=O%4LA2^&P#utaZk@mj;PMrF?b|IeeopF5MZ-uBH)nfJ`k&po%`m%h0E52KRq z54VpmPMJEGY?5TU+4|bh#j)&1n2FSJVUzD$wS~_x9a+roo8Td&*P!CL+<YD5q?Km{ zPUziPCct|0;o_5D^ycnVn{dv6TcBUgr19Y=xekYEg^VeYcKgeDC!9U|heu=c1ZNwG zHy<vZd6M>U)*+_N3?E-O3QOp{Z{!eR6?X_ca+>`*!_iA=9O{)lid=^OJNv~xTEy*K zw&9SDgH6>1mbOh#m^4n8etjafV2w{HTS!y{#JEc~vwO3-q@m8+v4>qL;Cc*0>D;{d z80IU{vlZt&F>Td2!6(0Vd;ZIFri~@v`;IyMxasB~EHSH%dqL){zwOx#Y5B%2lWVqt zed7E3s$5L4MS_@uoNWfv;it9&jq4sWz1X$qR~hexP&4NR>(;N5d9?62pZwcjd+c{D iD>wpm-~az|F7_J}{FYc;Zkh&+8U{~SKbLh*2~7a@;vLrj literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/761.png.mcmeta b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/761.png.mcmeta new file mode 100644 index 00000000000..d3ca55b4b9b --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/761.png.mcmeta @@ -0,0 +1 @@ +{"animation": {"frametime": 1}} diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/CUSTOM/GravitonShard/gem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/CUSTOM/GravitonShard/gem.png new file mode 100644 index 0000000000000000000000000000000000000000..95ade3cd21a5461cf46962d15f911dd93226025b GIT binary patch literal 1146 zcmeAS@N?(olHy`uVBq!ia0vp^0zmwLgBeKL?icd{QjEnx?oJHr&dIz4a#+$GeH|GX zHuiJ>Nn{1eSqJ!pxaKv@O3iBwOR35%ZVQYpoU!rf!ZrIm0@J-BDtZ<k2urK3>6^Rj z!tI@>u9wtLaSqLIU3wy+u&-;;mSsn;b*wpE(7wphDcspF(bOqCw|hZs$<)Bu^6usP z%NL(WpSZta?v}*-_USA4R&~rZa|rW{%+ILko4N0D=9I(Pox3Kk+*{PSZu;sIrLFTa z>!+-~{IFx$nc|j>&C}NU$JAsst?gQREU$5PSblrgfh+xcZ@14mRN22Gtzcq(*ZQS9 z&u27E%j;dze&EiO-PbbO7c_USY-(LQVfkU7<O=_|vdUElyY^oWPOq<SSW(urPS?^m zy=L0nbq5=#EzO^{s&L{`JFleTzHP-bb_C=!c|;aA^>1FV?Q})YqS&elezC<lJ&S^K z8ujghgELxsmmH~|y45`*&(0@7*TN^Jc1l*)3SfAO3Z>r$Qkf+|e!>6g1Q-^Wr%3@V z<t*@sEM{QfI}E~%$MaXDFfcF$d%8G=czD0PlIcIiQGg{OB;)|Is|%~EO<>5Lk8F(Z zg;^Q-13tX^|DSu#x_R?fs@<G=M44?R|ND1kn<lSS-+Wg|`%&{W-hXapd0zT!XK&B> z>KI+!eq!5O>#|=9im&HQTxWZ?`ttI5wV50KJFNdAYjdSOBIUt}K-(`j3M~tZK3vJ1 zxX?JgbV5<yk3X&5MK3>1U0rEV^!8Wp?4sA-=3ca!uyOZeVWZ0T|Cr@%YQFsFw5c`w z7{jg~=hwNX%2wAnKkeh?=g;o%oBUngMNG^-Nn!r9X-|u*{(dsGEjYIQ{jV)goU^6) z!d^H2dXo6{r1EurxsdxdEA~|u)K&md%dc00uU5OSSTE;cw<YasGn?EBf4Q*vHf!p> ze)x5?`PFRptLFUc*EhBU^~LS4nDXmg<Aa|2?;AI;H{4)$c(c&qpmXCQccv(9IgV<E z4qFk83XOmd0SjJCY^Zy*kW((Teuw)_`Hs4y-`Sgt>niINd~F531uS>~*4Na|<l4`& z<=sX#n}5y!y*v4NR=f*lUR0aqP&!{q;4Or?#h<sshNr`p;fb6S!%lZbr%Mm~85Y{b zOI&%*-TbR2aZB9}gDCqL3Ev$CvnmpU{+;B$e1)0$lYzpg6Vl5nECRYJ1tvg|fq;$7 z3ZT%(f(85EH8NH{nHp^Sipz|j$q0(rFa7#Zpl~I;zo>c3zN#zxBUY`KW7Sylu;JC^ zT^ktJa!X$+oycAqJHdTjyzLsh%81%e8-BfM1fhe@ui5$6%G;Q{mNUzErud1uY(w)z U508^Nz%<9;>FVdQ&MBb@05{f4qW}N^ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/CUSTOM/GravitonShard/gem.png.mcmeta b/src/main/resources/assets/gregtech/textures/items/materialicons/CUSTOM/GravitonShard/gem.png.mcmeta new file mode 100644 index 00000000000..ed13b2b0559 --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/items/materialicons/CUSTOM/GravitonShard/gem.png.mcmeta @@ -0,0 +1 @@ +{"animation": {"frametime": 5}} \ No newline at end of file diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/CUSTOM/GravitonShard/gem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/CUSTOM/GravitonShard/gem_OVERLAY.png new file mode 100644 index 0000000000000000000000000000000000000000..3f0d6efcacdbbcc2d9fd04d1dff1e63021f710d9 GIT binary patch literal 141 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GGf*{OTpAtV2D9B#o z>FdgVkCB&Oimmd8og+|)Ey>&61xN$IPv_nBKuXHf#WBR<bn>77|LvJo8w#&91Twqv bO6UO%{~M+MaGjGyFG#hgtDnm{r-UW|yRspC literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/tectech/lang/en_US.lang b/src/main/resources/assets/tectech/lang/en_US.lang index 3bfc3a13e72..5ae57eb9e01 100644 --- a/src/main/resources/assets/tectech/lang/en_US.lang +++ b/src/main/resources/assets/tectech/lang/en_US.lang @@ -886,68 +886,100 @@ achievement.gt.stabilisation_field_generator.8=Gallifreyan Stabilisation Field G fog.upgrade.confirm=Construct fog.upgrade.tt.0=upgrade start -fog.upgrade.tt.1=upgrade 11 -fog.upgrade.tt.2=upgrade 21 -fog.upgrade.tt.3=upgrade 22 -fog.upgrade.tt.4=upgrade 31 -fog.upgrade.tt.5=upgrade 32 -fog.upgrade.tt.6=upgrade 33 -fog.upgrade.tt.7=upgrade 41 -fog.upgrade.tt.8=upgrade 51 -fog.upgrade.tt.9=upgrade 52 -fog.upgrade.tt.10=upgrade 53 -fog.upgrade.tt.11=upgrade 61 -fog.upgrade.tt.12=upgrade 71 -fog.upgrade.tt.13=upgrade 72 -fog.upgrade.tt.14=upgrade 73 -fog.upgrade.tt.15=upgrade 74 -fog.upgrade.tt.16=upgrade 80 -fog.upgrade.tt.17=upgrade 81 -fog.upgrade.tt.18=upgrade 82 -fog.upgrade.tt.19=upgrade 83 -fog.upgrade.tt.20=upgrade 91 -fog.upgrade.tt.21=upgrade 92 -fog.upgrade.tt.22=upgrade 93 -fog.upgrade.tt.23=upgrade 101 -fog.upgrade.tt.24=upgrade 111 -fog.upgrade.tt.25=upgrade 121 -fog.upgrade.tt.26=upgrade 131 -fog.upgrade.tt.27=upgrade 141 -fog.upgrade.tt.28=upgrade 151 -fog.upgrade.tt.29=upgrade 161 -fog.upgrade.tt.30=upgrade end - -fog.upgrade.lore.0=The Forge of the Gods is an immensely powerful structure constructed around a stabilized neutron star – it is so advanced that its full capabilities are not yet understood. However, through continued use one can slowly upgrade and expand the range of abilities of the Forge, and learn the power hidden in the most extreme parts of the universe: graviton shards. This esoteric material can only be found where conventional matter and degenerate neutronium crust matter on the surface of a neutron star meet. At this point in space, gravitons are far more common and irradiate this material mixture to create highly unstable graviton shards, which can be used to internally upgrade the Forge. While these shards cannot yet exist outside the extreme conditions of the Forge, with continued research and utilization it may be possible to eventually isolate and extract them outside the Forge – but for what purpose? -fog.upgrade.lore.1=The first major upgrade of the Forge of the Gods has allowed for greater processing speeds as the heat increases, thanks to the space warping effects of graviton shards. This is the first of many applications of the shards, which will be discovered through continuous use of the Forge. +fog.upgrade.tt.1=Improved Gravitational Convection Coils +fog.upgrade.tt.2=Spacetime Topology Expansion Modulator +fog.upgrade.tt.3=Cosmic Fuel Chamber Expansion +fog.upgrade.tt.4=Graviton-Induced Superconductivity System +fog.upgrade.tt.5=Fluid Dynamics Integration Module +fog.upgrade.tt.6=Superluminal Amplifier +fog.upgrade.tt.7=Gravitational Plasma Containment Inductor +fog.upgrade.tt.8=Relativistic Electron Capacitor +fog.upgrade.tt.9=Graviton Entanglement Modulator +fog.upgrade.tt.10=Closed Timelike Curve Disruption Device +fog.upgrade.tt.11=Quark-Gluon Plasma Isolation Unit +fog.upgrade.tt.12=Singularity Exposure Fuel Compression Process +fog.upgrade.tt.13=Transfinite Construction Techniques +fog.upgrade.tt.14=Gravitationally Guided Electron Beam Emitter +fog.upgrade.tt.15=Temporal Plasma Transformation Process +fog.upgrade.tt.16=Duplicity of Potency +fog.upgrade.tt.17=Critical Neutrino Tunnelling Integration +fog.upgrade.tt.18=Extreme Pulsar Exposure Chambers +fog.upgrade.tt.19=Internal Micro-Kugelblitz Generator +fog.upgrade.tt.20=Neutron Degeneracy Pressure Exposure +fog.upgrade.tt.21=Parity of Singularity +fog.upgrade.tt.22=Disparity of Rarity +fog.upgrade.tt.23=Null-Gravity Modulation Sheath +fog.upgrade.tt.24=Synthetic Element Decay Stabilization +fog.upgrade.tt.25=Paradoxical Attainment +fog.upgrade.tt.26=Cosmically Duplicate +fog.upgrade.tt.27=Transfinite Stellar Existence +fog.upgrade.tt.28=The Boundless Flow +fog.upgrade.tt.29=Effortless Existence +fog.upgrade.tt.30=Orion’s Arm Genesis Schema + +fog.upgrade.tt.short.0=START +fog.upgrade.tt.short.1=IGCC +fog.upgrade.tt.short.2=STEM +fog.upgrade.tt.short.3=CFCE +fog.upgrade.tt.short.4=GISS +fog.upgrade.tt.short.5=FDIM +fog.upgrade.tt.short.6=SA +fog.upgrade.tt.short.7=GPCI +fog.upgrade.tt.short.8=REC +fog.upgrade.tt.short.9=GEM +fog.upgrade.tt.short.10=CTCDD +fog.upgrade.tt.short.11=QGPIU +fog.upgrade.tt.short.12=SEFCP +fog.upgrade.tt.short.13=TCT +fog.upgrade.tt.short.14=GGEBE +fog.upgrade.tt.short.15=TPTP +fog.upgrade.tt.short.16=DoP +fog.upgrade.tt.short.17=CNTI +fog.upgrade.tt.short.18=EPEC +fog.upgrade.tt.short.19=IMKG +fog.upgrade.tt.short.20=NDPE +fog.upgrade.tt.short.21=PoS +fog.upgrade.tt.short.22=DoR +fog.upgrade.tt.short.23=NGMS +fog.upgrade.tt.short.24=SEDS +fog.upgrade.tt.short.25=PA +fog.upgrade.tt.short.26=CD +fog.upgrade.tt.short.27=TSE +fog.upgrade.tt.short.28=TBF +fog.upgrade.tt.short.29=EE +fog.upgrade.tt.short.30=END + +fog.upgrade.lore.0=The Forge of the Gods is an immensely powerful structure constructed around a stabilized neutron star – it is so advanced that its full capabilities are not yet understood. However, through continued use, one can slowly upgrade and expand the range of abilities of the Forge, and learn the power hidden in the most extreme parts of the universe: graviton shards. This esoteric material can only be found where conventional matter and degenerate neutronium crust matter on the surface of a neutron star meet. At this point in space, gravitons are far more common and irradiate this material mixture to create highly unstable graviton shards, which can be used to internally upgrade the Forge. While these shards cannot yet exist outside the extreme conditions of the Forge, with continued research and utilization it may be possible to eventually isolate and extract them outside the Forge – but for what purpose? +fog.upgrade.lore.1=The first major upgrade of the Forge of the Gods has allowed for greater processing speeds as the heat increases, thanks to the gravitational warping effects of graviton shards. This is the first of many applications of the shards, which will be discovered through continuous use of the Forge. fog.upgrade.lore.2=Graviton shards warp the surface area of fuels used in the Forge, increasing efficiency as more material can be processed per unit of fuel. Graviton shards will prove crucial for further efficiency increases to offset the ever-increasing demands of the Forge. fog.upgrade.lore.3=Through use of graviton shards, the space within the Forge’s fuel chambers can be increased, allowing for greater quantities of fuel to be burned, thus reaching higher temperatures. Don’t forget to reserve fuel to keep the star at the centre of the Forge alive. -fog.upgrade.lore.4=Graviton shards not only affect matter, but also energy: depending on the fuel burn rate, the Forge may now accept more energy input, allowing for greater processing capacity. What other properties do these Graviton shards hold? +fog.upgrade.lore.4=Graviton shards not only affect matter, but also energy: with high enough concentrations of stellar fuel, superconductivity is induced within the Forge purely through gravitational forces. What other properties could these Graviton shards hold? fog.upgrade.lore.5=As usage of the Forge continues, more data on graviton shards is gathered. It has been found that they can stabilize the outputs of the Forge, allowing for the direct extraction of molten material while it is still close to the heart of the star. fog.upgrade.lore.6=As stellar fuel consumption continues to increase the size and energy of the star, the amount of material that can be processed at once also increases. Graviton shards facilitate the manipulation of increased quantities of materials near the star in the core of the Forge. fog.upgrade.lore.7=As understanding of graviton shards continues to improve, better control over the materials they manipulate can be achieved. Graviton shards provide an alternative to electromagnetic containment of plasma using spacetime manipulation instead, allowing the Forge to directly output processed materials as plasma. -fog.upgrade.lore.8=Adding graviton shards to the Forge’s internal energy storage allows for greater quantities of energy stored in a smaller area. By increasing energy density to relativistic levels, the Forge can be run more efficiently and store essentially infinite energy. +fog.upgrade.lore.8=Adding graviton shards to the Forge’s internal energy storage allows for greater quantities of energy stored in a smaller area. By increasing energy density to relativistic levels, the Forge can be run more efficiently as the electrical potential continues to increase. fog.upgrade.lore.9=Simply adding more graviton shards to the fuel chamber continues to amplify the ability for the Forge to consume increased quantities of stellar fuel. It even benefits from graviton shards invested in different parts of the Forge entirely – it seems shards exhibit quantum entanglement-like properties. -fog.upgrade.lore.10=Increasing the concentration of graviton shards near the material processing regions of the Forge warps spacetime so significantly that it doubles the material input and processing possible. As the Forge’s capabilities increase, the amount of graviton shard data collected increases too, allowing for further expansion. +fog.upgrade.lore.10=Increasing the concentration of graviton shards near the material processing regions of the Forge warps spacetime so significantly that it manipulates materials from the causal future and past. This essentially doubles the material input capacity and processing capabilities. fog.upgrade.lore.11=Using large quantities of graviton shards creates regions of space so extreme that exotic forms of matter can exist with far greater stability than usual. Unfortunately, this region is so extreme that it is essentially spatially disconnected from the rest of the Forge, unable to utilize existing upgrades to the structure and its other modules. -fog.upgrade.lore.12=Graviton shards can further compress stellar fuel, increasing its ability to fuel the star at the centre of the Forge through higher energy fusion reactions than usually possible in a natural star. As a result, greater heat is produced, increasing processing efficiency of the Forge. -fog.upgrade.lore.13=Increasing the concentration of graviton shards in the fuel chamber allows for a further increase in material processing capacity, so long as the Forge receives enough stellar fuel to maintain the unnaturally powerful state of the star. -fog.upgrade.lore.14=Utilising the unique energy-manipulating properties of graviton shards, electricity can be more efficiently utilised within the Forge. This sort of improvement is not possible with conventional matter, but also would not be possible outside the extreme environments near the star in the Forge. +fog.upgrade.lore.12=Exposure to graviton-induced micro black holes can further compress stellar fuel, increasing its ability to fuel the star at the centre of the Forge through higher energy fusion reactions than usually possible in a natural star. As a result, greater heat is produced, increasing processing efficiency of the Forge. +fog.upgrade.lore.13=Increasing the concentration of graviton shards in the fuel chamber begins to exhibit infinite fractal-like properties within finite space, further increasing processing capacity. Though this requires a commensurate increase in stellar fuel to ensure energy reaches matter deep within the chamber. +fog.upgrade.lore.14=Utilising the unique energy-manipulating properties of graviton shards, electricity can be more efficiently utilised within the Forge. Guiding electrons with gravity rather than matter or electromagnetic forces results in less power loss and thus greater processing speeds. fog.upgrade.lore.15=Similar to the Quantum Force Transformer, the quantum-mechanical properties of graviton shards facilitate the ability for the Forge to complete a complex series of nuclear fusion processes in a single event by directly manipulating the subatomic particles of the materials themselves. fog.upgrade.lore.16=Another instance of the entanglement-like effects of graviton shards, the simple Power Forge module now also exhibits the improvements made to the Melting Core module of the Forge. This allows for greater efficiency in both processing and allocation of the precious few graviton shards that can be obtained. -fog.upgrade.lore.17=Typical smelting techniques become too inefficient at extreme temperatures. Graviton shards allow for new methods of processing that can better take advantage of the abundant heat available within the Forge, such as manipulating spacetime to better transfer heat to the processed materials than regular matter ever could. -fog.upgrade.lore.18=As the heat available within the Forge continues to increase, it becomes possible for more material to be processed as it requires less proximity to the star’s surface. Graviton shards facilitate the manipulation of increased material quantities across larger regions of space within the Forge. -fog.upgrade.lore.19=Continual improvements to energy storage density using graviton shards improves both the efficiency of the Forge and improvements to heat utilisation for processing. Reaching this threshold of energy density allows the extreme spacetime bending to transfer the heat of the star more directly to the processed materials, increasing the effectiveness of heat in the smelting process. -fog.upgrade.lore.20=Normally increasing heat indefinitely has extreme diminishing returns when processing materials, but graviton shards allow for heat to more acutely affect input materials by manipulating them ever closer to the star at the centre of the Forge. At such levels of heat, the bonds between atoms are broken, allowing for the most quick and pure processing possible. +fog.upgrade.lore.17=Typical smelting techniques for exotic materials become too inefficient even at extreme temperatures. Graviton shards facilitate the tunnelling of unprecedented numbers of critically energized neutrinos for vastly improved heat transfer to the target material, one of the most efficient methods of transforming electrical energy into heat for materials. +fog.upgrade.lore.18=Graviton shards can manipulate not just processing matter, but the star at the centre of the Forge itself. By rotating the star at relativistic speeds, the resulting pulsar bursts can impart more energy per unit of time than mere static exposure. This results in faster processing of larger quantities of materials. +fog.upgrade.lore.19=Continual improvements to energy storage density using graviton shards improves both the efficiency of the Forge and improvements to heat utilisation for processing. Reaching the singularity threshold of energy has a twofold effect on processing efficiency: the gravitational effects can be used to manipulate the matter itself, while the micro-kugelblitzes paradoxically make their energy more available for use in the Forge. +fog.upgrade.lore.20=Normally increasing heat indefinitely has extreme diminishing returns when processing materials, but graviton shards allow for other heating options than standard electrically generated heat. Using graviton shards, encasing the target material in extremely degenerate matter compresses it so greatly that it heats up beyond what would be typically possible in the Forge. fog.upgrade.lore.21=Using the entanglement-like properties of graviton shards, it is possible to utilize the increasingly extreme differences in spacetime between regions of the Forge to improve the processing capacity of the molten module. As space becomes more warped, more material can be moved closer to the star, increasing production capacity. -fog.upgrade.lore.22=Returning to the first upgrade of the Forge with the myriad discoveries about the graviton shards allows it to run much faster than previously possible. As a result of excessive spacetime manipulation, greater heat and larger quantities of material paradoxically result in faster processing times as larger surface areas of the processed material are available to the Forge. -fog.upgrade.lore.23=The stress of maintaining such a large structure around such a gravitationally dense object as a neutron star is alleviated through graviton shards. A larger Forge allows for more machinery and better electricity utilisation, effectively increasing processing capabilities. -fog.upgrade.lore.24=Improvements in understanding of the gravitational containment effects of graviton shards allow the Forge to process and handle more exotic and unstable plasma. With this, a new age of fusion processing and power is possible. +fog.upgrade.lore.22=Returning to the first upgrade of the Forge with the myriad discoveries about graviton shards allows it to run much faster than previously possible. It is sometimes important to review the most basic of assumptions when working outside the known laws of physics, for the simplest facts may be the most powerful. +fog.upgrade.lore.23=The stress of maintaining such a large structure around such a gravitationally dense object as a neutron star is alleviated through graviton shards. A sheath of gravitational-neutralising material is installed across the Forge to protect the more conventional machinery and only improves efficiency the larger the structure becomes. +fog.upgrade.lore.24=Improvements in understanding of the gravitational containment effects of graviton shards allow the Forge to process and handle the most exotic of plasmas, including typically nanosecond-lived synthetic transactinide elements. It also extends their lifetime for external usage by stabilizing the atomic nucleus with small quantities of gravitons. fog.upgrade.lore.25=Further utilisation of the quantum entanglement-like properties of graviton shards allows the effects of other module upgrades to also apply to the exotic module. However, because of the extreme nature of spacetime within this module and the materials it handles, these benefits are reduced as per the inverse square law. -fog.upgrade.lore.26=As additional rings are placed closer to the star at the centre of the Forge, the gravitational stress drastically increases on the structure. Graviton shards alleviate these stresses and also allow for upgrades made in other similar modules to apply to the new ring’s modules through the use of localized spacetime bridges. -fog.upgrade.lore.27=A huge development in the capabilities of the Forge has been achieved with the use of large quantities of graviton shards – the ability to indefinitely feed the star with stellar fuel. Obviously, this has diminishing returns but the processing potential is immense thanks to extreme gravitational distortion containing the star regardless of its energy level. +fog.upgrade.lore.26=As additional rings are placed closer to the star at the centre of the Forge, the gravitational stress drastically increases on the structure. Graviton shards alleviate these stresses while also creating localized spacetime bridges to link the two rings and their modules’ respective upgrades. +fog.upgrade.lore.27=A huge development in the capabilities of the Forge has been achieved with the use of large quantities of graviton shards – the ability to indefinitely feed the star with stellar fuel. While this has diminishing returns, the star can exist indefinitely despite the extremely accelerated energy expenditure from endless material processing. fog.upgrade.lore.28=The usage of graviton shards in electrical systems to create localised miniature energy wormholes has allowed for such efficient power transfer that effectively unlimited electricity may be utilized by the Forge. More power means faster processing, quicker material movement, and better utilization of graviton shard related upgrades. -fog.upgrade.lore.29=The final structural upgrade to the Forge required the most advanced understanding of graviton shards and their applications in extreme environments. With this, the last 4 module slots of the Forge of the Gods are available to construct, completing the single greatest structure in human history. The power of the sun in the palm of your hand. -fog.upgrade.lore.30=*insert lore here* upgrade end +fog.upgrade.lore.29=The final external structural upgrade to the Forge requires the most advanced understanding of graviton shards and their applications in extreme environments. With this, the last 4 module slots of the Forge of the Gods are available to construct, ascending your operation to unseen heights of technological mastery. +fog.upgrade.lore.30=With total mastery of the Forge of the Gods achieved, it is possible to begin a new universe-spanning initiative. It is now possible to quantize and extract graviton shards for use outside the Forge in powerful new technological endeavours; produce the most exotic plasmas beyond merely periodic elements; and most importantly, begin to understand the immense power of magmatter, a form of matter made entirely of magnetic monopoles with density and stability billions of times that of conventional bosonic matter. It is with this development you realise that the completion of the Forge was not the end goal, but merely a stepping stone to universal transcendence. fog.upgrade.text.0=Unlocks the base functionality of the Forge of the Gods, meaning 8 module slots, 1 ring and the Helioflare Power Forge module. fog.upgrade.text.1=Unlocks a recipe time reduction multiplier based on the current heat the multi is running at. This bonus is calculated via following formula: Multiplier = 1 / (Heat^0.01) @@ -962,7 +994,7 @@ fog.upgrade.text.9=Increases maximum fuel consumption by 1 Stellar Fuel Unit/sec fog.upgrade.text.10=Adds a x2 multiplier to maximum parallel. fog.upgrade.text.11=Unlocks the Heliofusion Exoticizer module and quark gluon plasma creation. At this point this module is not affected by any other multipliers or bonuses from other upgrades. fog.upgrade.text.12=Improves the fuel consumption -> heat conversion formula. Improved formula: Heat = log1.2(Stellar Fuel Units/sec) * 1000 + 12601 -fog.upgrade.text.13=Improves the formula of N33 to: Multiplier = 1 + (Stellar Fuel Units/sec) / 5 +fog.upgrade.text.13=Improves the formula of SA to: Multiplier = 1 + (Stellar Fuel Units/sec) / 5 fog.upgrade.text.14=Improves the OC formula from 4/2 OCs to 4/2.3 OCs. fog.upgrade.text.15=Allows the Heliothermal Plasma Fabricator to process multi step plasmas. Tier restriction still applies. fog.upgrade.text.16=Allows the Helioflare Power Forge to receive the full benefits of the Helioflux Melting Core upgrade path. @@ -971,7 +1003,7 @@ fog.upgrade.text.18=Unlocks a multiplier to maximum parallel based on current he fog.upgrade.text.19=Improves the EBF energy reduction heat bonus from 5% to 8% and adds an energy discount based on the fill level of the internal battery. This bonus is calculated via this formula: Discount = (Current fill level / Max Capacity - 0.5)^2 * (-0,6) + 0,15 fog.upgrade.text.20=EBF heat bonuses are granted above 30,000K, but the heat value used in heat bonus calculations is determined by this formula: Actual Heat = 30000 + (Current Heat - 30000)^0.85 fog.upgrade.text.21=Unlocks a multiplier to maximum parallel based on total amount of purchased upgrades. This bonus is calculated via this formula: Multiplier = 1 + Upgrade Amount / 5 -fog.upgrade.text.22=Improves N11 based on current maximum parallel. Improved Formula: Multiplier = (1 / Heat^0.01) / (Parallel^0.02) +fog.upgrade.text.22=Improves IGCC based on current maximum parallel. Improved Formula: Multiplier = (1 / Heat^0.01) / (Parallel^0.02) fog.upgrade.text.23=Increases maximum processing voltage by 1 per active ring. fog.upgrade.text.24=Allows the Heliothermal Plasma Fabricator to process up to T5 plasmas. fog.upgrade.text.25=Allows the Heliofusion Exoticizer to be affected by other upgrade benefits, but those benefits are square rooted first. The overclock bonus is adjusted via the following formula: OC Factor = 2 + (Base OC Factor - 2)^2 @@ -979,7 +1011,7 @@ fog.upgrade.text.26=Allows construction of the second ring and adds 4 module slo fog.upgrade.text.27=Uncaps maximum fuel consumption, but fuel consumption used in bonus calculations scales according to this formula: Actual FC = Current Max FC + (Current FC - Current Max FC)^0.75, where FC refers to fuel consumption and max FC refers to the max fuel consumption without this upgrade. fog.upgrade.text.28=Uncaps maximum processing voltage. Voltage can be set in each module's GUI. fog.upgrade.text.29=Allows construction of the third ring and adds 4 module slots. -fog.upgrade.text.30=*insert text here* upgrade end +fog.upgrade.text.30=Unlocks Magmatter production in the Heliofusion Exoticizer, creation of exotic plasmas in the Heliothermal Plasma Fabricator and Graviton Shard ejection. fog.debug.resetbutton.text=Reset fog.debug.resetbutton.tooltip=Resets all upgrades to zero @@ -996,6 +1028,11 @@ fog.button.voltageconfig.tooltip.01=Open voltage config fog.button.voltageconfig.tooltip.02=Voltage config locked, missing upgrade fog.button.structurecheck.tooltip=Refresh module connection status fog.button.milestones.tooltip=Milestone Overview +fog.button.materialrequirements.tooltip=Upgrade needs additional materials +fog.button.materialrequirementsmet.tooltip=All materials supplied +fog.button.materialrequirements.tooltip.clickhere=Click to open material insertion window +fog.button.ejection.tooltip=Toggle Graviton Shard Ejection +fog.button.formatting.tooltip=Toggle Number Formatting achievement.gt.blockmachines.multimachine.em.forge_of_gods=Forge of the Gods @@ -1015,7 +1052,8 @@ gt.blockmachines.multimachine.FOG.fuelinfo.0=The Stellar Fuel Consumption Factor gt.blockmachines.multimachine.FOG.fuelinfo.1=Dimensionally Transcendent Residue: factor*300*1.15^factor gt.blockmachines.multimachine.FOG.fuelinfo.2=Condensed Raw Stellar Plasma Mixture: factor*2*1.08^factor gt.blockmachines.multimachine.FOG.fuelinfo.3=Magnetohydrodynamically Constrained Star Matter: factor/25 -gt.blockmachines.multimachine.FOG.fuelinfo.4=Upgrades can influence these formulas, the changes are listed in the respective upgrades' descriptions. +gt.blockmachines.multimachine.FOG.fuelinfo.4=This factor also determines the base heat of the multiblock: Heat=log1.5(factor)*1000+12601 +gt.blockmachines.multimachine.FOG.fuelinfo.5=Upgrades can influence these formulas, the changes are listed in the respective upgrades' descriptions. gt.blockmachines.multimachine.FOG.fueltype=Click to Select Fuel Type gt.blockmachines.multimachine.FOG.fuelusage=Fuel Usage gt.blockmachines.multimachine.FOG.plasmamultistep=Multi-Step plasma @@ -1034,16 +1072,34 @@ gt.blockmachines.multimachine.FOG.milestoneprogress=Current Milestone Level gt.blockmachines.multimachine.FOG.progress=Next Milestone at gt.blockmachines.multimachine.FOG.milestonecomplete=Milestone Complete gt.blockmachines.multimachine.FOG.milestoneinfo=View Milestone Progress -gt.blockmachines.multimachine.FOG.inversion=Inversion Active +gt.blockmachines.multimachine.FOG.inversionactive=Inversion Active +gt.blockmachines.multimachine.FOG.inversion=Inversion +gt.blockmachines.multimachine.FOG.inversioninfotext=Once all milestones of the Forge reach tier 7, inversion activates. This uncaps the maximum tier of all milestones and allows to scale infinitely. The scaling of each milestone changes from exponential to linear, but the granted graviton shard amount keeps increasing. The amount of progress needed for each subsequent milestone is as much as needed for the 7th tier of each milestone. The Composition milestone is once again an exception, as that continues to scale by 1 each tier, with it's own formula for calculating progress. Each module type is given a value, ranging from 1 for the Helioflare Power Forge to 5 for the Heliofusion Exoticizer in magmatter mode, then the amount of each module present is substracted by 1 and multiplied by its value. These values are added up and divided by 5, this is the final milestone tier on top of the base 7. gt.blockmachines.multimachine.FOG.powermilestone=Charge gt.blockmachines.multimachine.FOG.recipemilestone=Conversion gt.blockmachines.multimachine.FOG.fuelmilestone=Catalyst gt.blockmachines.multimachine.FOG.purchasablemilestone=Composition gt.blockmachines.multimachine.FOG.power=EU Consumed gt.blockmachines.multimachine.FOG.recipes=Recipes Processed -gt.blockmachines.multimachine.FOG.fuel=Fuel Units Consumed +gt.blockmachines.multimachine.FOG.fuelconsumed=Fuel Units Consumed gt.blockmachines.multimachine.FOG.extensions=Extensions Built gt.blockmachines.multimachine.FOG.shardgain=Graviton Shards gained +gt.blockmachines.multimachine.FOG.consumeUpgradeMats=Click to consume upgrade materials, supply §4exact§r stacksizes +gt.blockmachines.multimachine.FOG.clickhere=Confused? Click here for some general info +gt.blockmachines.multimachine.FOG.introduction=§NIntroduction +gt.blockmachines.multimachine.FOG.introductioninfotext=There's a lot going on in the Forge of the Gods, which can be quite confusing at first. This menu aims to explain everything that is happening and all the capabilities/mechanics of the forge. +gt.blockmachines.multimachine.FOG.tableofcontents=§NTable of Contents: +gt.blockmachines.multimachine.FOG.fuel=Fuel +gt.blockmachines.multimachine.FOG.modules=Modules +gt.blockmachines.multimachine.FOG.upgrades=Upgrades +gt.blockmachines.multimachine.FOG.milestones=Milestones +gt.blockmachines.multimachine.FOG.fuelinfotext=Once the structure of the Forge is built and the multiblock is formed, just simply turning it on is not sufficient to make it functional. The Forge must be supplied with a certain amount of Star Fuel (the item) to actually boot up. The amount of Star Fuel needed depends on the current fuel consumption factor, which can be set in the fuel configuration menu. By default the maximum is 5, but it can be increased later on with upgrades. Star Fuel scaling is as follows: factor*25*1.2^factor. Star Fuel can be supplied via an input bus, it gets consumed periodically and stored internally. Once there is enough Star Fuel stored in the multi, it turns on for real (allowing modules to connect) and converts the consumed Star Fuel into stored Stellar Fuel. From this point onwards, the Forge must be fueled via one of the liquid fuels (type can be selected in the fuel config menu). If there isn't enough of the selected fuel present in the input hatch, the stored fuel amount will decrease and if it reaches 0, the Forge enters the previous 'off' state where modules disconnect and it has to be supplied with Star Fuel again. The amount of internally stored Stellar Fuel (liquid) can be increased by turning on battery charging, this will cause the fuel usage to double, but half of it will be stored in the internal battery. +gt.blockmachines.multimachine.FOG.moduleinfotext=There are 4 types of modules that can be used in the Forge, the Helioflare Power Forge, Helioflux Melting Core, Heliothermal Plasma Fabricator and Heliofusion Exoticizer. These modules are separate multiblocks that have to be built into the Godforge structure at their designated spots. Once built, these modules have to connect to the Godforge, which happens automatically if all requirements for the respective module are met. Alternatively, there is a button to refresh their status without waiting for the timer. Each of these modules has its specialized functionality & requirements and is affected differently by certain upgrades. The first unlocked module is the §BHelioflare Power Forge§6, which simply put is a blast furnace even more powerful than the mega version. Additionally, this module has a furnace mode, turning it into a hyper powerful multi smelter. This module is unlocked by default and has 1024 base parallel. The second unlock is the §BHelioflux Melting Core§6, which also processes blast furnace recipes, but with a twist, the outputs are ejected in their molten form instead of hot/regular ingots. If an output does not have a molten form, it will output its regular form. This module has to be unlocked by an upgrade to function and has 512 base parallel. The third module is the §BHeliothermal Plasma Fabricator§6, which possesses a unique recipemap featuring direct material to plasma conversion recipes. These recipes are grouped by two properties, fusion tier and steps required, limiting which recipes can be processed before their respective upgrades are unlocked. Unlike regular fusion, these recipes produce the plasma of the input material. This module has 384 base parallel. The fourth and last module is the §BHeliofusion Exoticizer§6, a module capable of producing quark gluon plasma and later on magmatter. This module has unique automation challenges for both materials, so it is recommended to have two of these, as they have to be locked to either one of the materials. The common rule for both modes' automation challenges is as follows: the module outputs materials at the start of a recipe cycle and waits for the correct inputs to arrive before starting the actual processing of the output material. If producing quark-gluon plasma, the module outputs up 7 different fluids/tiny piles with amounts between 1 and 64, and their corresponding plasmas and amounts have to be returned in order for the recipe to process. For each L of fluid, a bucket of plasma and for each tiny pile an ingot's worth of plasma must be returned for the recipe to work. The amount of initial outputs scales with parallel amount. If magmatter mode is active, the automation challenge changes. Now the module outputs 1-50L of tachyon rich temporal fluid, 51-100L of spatially enlarged fluid and one tiny pile of a high tier material. The challenge is to return both the tachyon rich and spatially enlarged fluids, plus as much plasma of the tiny pile's material (in ingots) as the difference between the amounts of spatially enlarged and tachyon rich fluid. Once all of these have been returned in the correct amounts, the recipe will start to process and output magmatter. The initial input amounts (except the tiny pile) scale with parallel. This module has 36 base parallel and only scales in multiples of nine. +gt.blockmachines.multimachine.FOG.upgradeinfotext=Uprades are the heart and soul of the Godforge, they unlock most of its functionality and processing power. The upgrade tree can be accessed via its button on the main gui and each upgrade node can be clicked for more information on its effects and unlock requirements. In general, each upgrade can only be unlocked if the prior one is unlocked and there are enough available graviton shards. One exception to this is the first upgrade, as that one has no prior upgrade. Some upgrades can also have extra material costs, which are denoted next to the unlock button if applicable. If an upgrade has more than 1 connected prior upgrade, then there are two options, either the upgrade requires ALL connected prior upgrades or AT LEAST ONE (indicated by the connection's color). Upgrades can be refunded by simply pressing the unlock button again, but this only works if ALL connected later upgrades are not active/unlocked. The block of upgrades following the unlock of the Heliufusion Exoticizer module are special, as they are what is considered §Bthe Split§6. As the name suggests, only one path out of the three may be chosen at first, and the others will be locked. Each path has specialized buffs that are primarily targeted towards a specific module, and thus affect other module types with reduced effect (unless stated otherwise). The amount of unlockable paths depends on the amount of rings the Godforge has, which in turn are limited by later upgrades. +gt.blockmachines.multimachine.FOG.milestoneinfotext=Milestones are essential for upgrading the Godforge, as they are the source of graviton shards, the main currency needed for unlocking upgrades. In essence, milestones are just what their name suggests, thresholds that when reached, grant graviton shards. There are four types of milestones, Charge, Conversion, Catalyst and Composition, each referring to a stat of the Godforge. Each milestone has 7 tiers, each being harder to reach than the last, but also granting more graviton shards. The first tier grants 1 graviton shard, the second 2, etc. The §BCharge§6 milestone scales off total power consumption of all modules combined, the first tier being unlocked at 1e15 EU consumed, and each subsequent milestone scaling by 9x. The §BConversion§6 milestone scales off total recipes processed across all modules (excluding the Helioflare Power Forge's furnace mode) and its first tier is unlocked at 10M processed recipes. Following tiers scale by 6x. The §BCatalyst§6 milestone is based on the Forge's fuel consumption, counted in Stellar Fuel units (the number entered in the fuel config menu). Reaching the first tier requires 10,000 fuel units to be consumed, and each tier above scales by 3x. Last but not least, the §BComposition§6 milestone works a bit differently, as it scales off the Forge's structure. Milestone levels are granted for each unique type of module present in the structure (Helifusion Exoticizer modules on quark-gluon and magmatter mode count as unique) and for each additional ring built. Your research suggests that something strange might happen if all milestones reach their final tier... Make sure to check back! + +gt.blockmachines.multimachine.FOG.hint.0=1 - Classic Hatches or Transcendentally Amplified Magnetic Confinement Casing +gt.blockmachines.multimachine.FOG.hint.1=2 - Module Controllers or Singularity Reinforced Stellar Shielding Casing # Optical Circuits achievement.gt.metaitem.03.32155=Optical Assembly diff --git a/src/main/resources/assets/tectech/textures/gui/background/star.png b/src/main/resources/assets/tectech/textures/gui/background/star.png index ad21ad0868250c746c99f6ffaa40269e7a54954c..17872e9cf619538f336b52528eede6cc34e073a0 100644 GIT binary patch literal 127886 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 LNkvXXu0mjff~qV$ literal 119474 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 X@UG>Tsh_F*00000NkvXXu0mjfOFzmm diff --git a/src/main/resources/assets/tectech/textures/gui/button/boxed_checkmark.png b/src/main/resources/assets/tectech/textures/gui/button/boxed_checkmark.png new file mode 100644 index 0000000000000000000000000000000000000000..3c22d97c9b995c9d3d1a1372587b3431ebb0c7a8 GIT binary patch literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+3?vf;>QaFeV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G}f0G|+7=SQ6Co$C4v<bD1#s5WX@p8%O5KfiPZkYX<h@(cbC1`JZ(%x*v- z&H|6fVg?4j!ywFfJby(BP|)4e#W6%9c<otBz5@mvE*B*?6#rMYPMSKQTjb|cVeUNJ z#q&E3IktFRE^_oQG*->XZEd+C65{+SEN`#sP1E%!>Y{wFrb{uhH{`Nf{ySOr4QM2T Mr>mdKI;Vst0H={iegFUf literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/tectech/textures/gui/button/boxed_exclamation_point.png b/src/main/resources/assets/tectech/textures/gui/button/boxed_exclamation_point.png new file mode 100644 index 0000000000000000000000000000000000000000..f013b5aa139b118a11a29da5b96b6ca332a39a64 GIT binary patch literal 194 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+3?vf;>QaFeV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G~10G|-orwkmEnUq&D$@~Y3FfcT~VJHMrtR+Ey!T*7P;rBMaV4whJfk$L9 z0|Vb-5N14{zaj-FsO{<E7@`rJe1I+D0z*v4#LiB^LrvU<hQ`K@5zXEl-NAwk^R<l5 dI5G3^Fy!kqFFvz#@hPA-22WQ%mvv4FO#pEQGz9<v literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/tectech/textures/gui/button/purple.png b/src/main/resources/assets/tectech/textures/gui/button/purple.png new file mode 100644 index 0000000000000000000000000000000000000000..60af6ebc6f4b3713ae78700adfed36c783b73461 GIT binary patch literal 315 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Et!VDx^^%Amx6k~CayA#8@b22Z19F}xPUq=Rp zjs4tz5?O(K^#Gp`*J6W-SsHDga&czjZUM@v5!wZDmgR}IH9>lr=}t`%CIvRqzD|mv zG80P|1GR7#ctjR6Fz_7)VaDV6D^h@hb3I)gLp08Z_MPQDWWduJ+sW7<=)-@f_K8@W zGy96x9gEgnV4cy*YthDgBH+eC-49ESd|Uope$iR?>{YjJW!Jq*b7xW5P&@ZkgMtf} zih@%q%Z)}UC#mc`mKN1jmu?waru}7<ml7|SxxJ>HX;(uBCr=08gm-ts7-DL5tJbyO zioCH~*<kkK&1|=`5>%Di|L8oOx_POSJA2slN%Bfc`GwMscNv`49soL&!PC{xWt~$( F695+2Y=Zy* literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/tectech/textures/gui/button/purple_pressed.png b/src/main/resources/assets/tectech/textures/gui/button/purple_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..88339c7576fb717fca1c8a2cd470640915e2b441 GIT binary patch literal 318 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Et!VDx^^%Amx6k~CayA#8@b22Z19F}xPUq=Rp zjs4tz5?O(KtpJ}8R~u<xGjTU3#ZXVVxD@5O0OiyO?Sd?gwm8f3MBADmz07o{rU;XQ zVuOjCfj_E&x;P6wB8wRq_zr_G<MI3zDL}!wo-U3d8s|g%PV+Ju^0=_8yi<^J$W$y? z*n3r{@pqJy$OB>ZDPr3gvlh15UgR#@ByZTB@+YO5=gq2Z5$z0b3J<Kh#&PhEU}K8# z+e}w0vo3`cHDT8(BP#*tGqpeO^S#SkAEb7y&$Ir(^ktGZ%ci7iY8rdUI39n}@Ke~I zb%K63YyL)=tn`mLvKfn-ud(S|J>V8P|Gw7duG36xp;zUTQX-yiP`w=mbSQ(TtDnm{ Hr-UW|Zyjr| literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/tectech/textures/gui/overlay_button/cyclic_blue.png b/src/main/resources/assets/tectech/textures/gui/overlay_button/cyclic_blue.png index 07c606ec11a36a8d6f68115ad9a81af8a9a38ae0..149b9f0f105723b89550371ad2df69f6a2542cb6 100644 GIT binary patch delta 79 zcmcc2dWm&IA*1La1_r)EjG`J|4Gav7_MR?|Ar}5;C$}-m^WAy7eBPOG+t>v*br=7$ jY~I4i#wcm~p~8mo*R*@pyZDWL7=Xaj)z4*}Q$iB}MB*F- delta 80 zcmcb_dYN@YA*1MF1_r*vjK}j=q%bfrI(WJ`hFJJto!rJK&ws1^?eckN!fj(0*wkIL kXWhJ+k&RK(@<W9U<4v=B)$eC)dBXq%p00i_>zopr0I_8rY5)KL diff --git a/src/main/resources/assets/tectech/textures/gui/overlay_button/eject.png b/src/main/resources/assets/tectech/textures/gui/overlay_button/eject.png new file mode 100644 index 0000000000000000000000000000000000000000..51b15adb5cc4c4f14230679ddd70545723f2b2b9 GIT binary patch literal 531 zcmV+u0_^>XP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00001b5ch_0Itp) z=>Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!T<mc!T}X1N`L?W0jNntK~y+Ty^=df z13?gm=Y-q^Yy`^$6w(NSoutqvq8Jf{h+rWYD?=)SqE;%T6BMyhqo4s(1VIQ^ilPXD zrV<}uXBxrAM<co23!F21cgrooO7MqakDHxu{+(U;7p3x5+x@JQ=C07xwPptl0}R~& zT3<>NA~%))wmD<KIR}d~IGkybHKYc21sw}1{KcePvQc9MsG1lI29_TbH*#Yrp0jl$ zhyWb|2zok5D4j_COZT>guo^nKTJIKl>A>r(2OKBS^m*O6PqG~vH%(v|o+O}BN($m* zA)yHu7_o)hItXWY6pZ%qBaxE;zsj4v0;20d7|K2?kn&ca#!LnbAtVWy-1$^CUaUkl zXQ(=iZM-TuItE7wNdS`D?>0?&bhV;vJYH-QPKwhZInYR=U{iO3kOUx~YR0R=;kdT^ zDrUmUZ8+Uccson0w;+atiJtkg;=-?Rd>6Y{rG1h@kImiK^x`<)vt@F)+Zz=5*5Q5e zpWc9l>(}+HtWyA_&eW-REClh2ICGwH&9anYQXRlkWTYUv)@U{sgOAJ1uY3O>fFFr7 V*Cz{H&nf@_002ovPDHLkV1lQX*vS9@ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/tectech/textures/gui/overlay_button/eject_disabled.png b/src/main/resources/assets/tectech/textures/gui/overlay_button/eject_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..f3c9e0d13f5491715da00995c146fa7c51a2d2dc GIT binary patch literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G}E0G|+7FE1}3^Q~V-36Nqc3Gxg6&+v4+0Z5Ruz$3Dlfr0NZ2s0kfUy%Y7 z^z?Lb4ABUV?e64dP~<uM;-B|ri&_CerDHp-Kc>0{UOV~aE>n^HZ1HnaEH0~cuKk#9 y*dcfN6?co0(-g)doZoD+ls2rJ>AKGE2y2`%!@4Z%o9lpvGI+ZBxvX<aXaWGgKtIa> literal 0 HcmV?d00001 From dabef0411496dfe3dddfefc3a374aa1e3b56615e Mon Sep 17 00:00:00 2001 From: Alexdoru <57050655+Alexdoru@users.noreply.github.com> Date: Sun, 1 Sep 2024 20:07:38 +0200 Subject: [PATCH 6/7] Change how kubatech commands are registered (#3012) rename child command map add click event to open the file on the CommandBees chat message remove command registration non sense Co-authored-by: boubou19 <miisterunknown@gmail.com> --- .../java/kubatech/commands/CommandBees.java | 22 +++--- .../java/kubatech/commands/CommandConfig.java | 27 +++---- .../kubatech/commands/CommandHandler.java | 78 +++++++------------ .../java/kubatech/commands/CommandHelp.java | 16 ++-- .../java/kubatech/commands/CommandTea.java | 40 ++++------ src/main/java/kubatech/kubatech.java | 21 +---- 6 files changed, 75 insertions(+), 129 deletions(-) diff --git a/src/main/java/kubatech/commands/CommandBees.java b/src/main/java/kubatech/commands/CommandBees.java index 2df0c294a6f..23a90fe2ea2 100644 --- a/src/main/java/kubatech/commands/CommandBees.java +++ b/src/main/java/kubatech/commands/CommandBees.java @@ -30,8 +30,10 @@ import net.minecraft.command.CommandBase; import net.minecraft.command.ICommandSender; +import net.minecraft.event.ClickEvent; import net.minecraft.item.ItemStack; import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatStyle; import net.minecraft.util.EnumChatFormatting; import com.google.common.io.Files; @@ -41,7 +43,6 @@ import forestry.api.apiculture.IBeeGenome; import kubatech.api.utils.ModUtils; -@CommandHandler.ChildCommand public class CommandBees extends CommandBase { @Override @@ -50,21 +51,16 @@ public String getCommandName() { } @Override - public String getCommandUsage(ICommandSender p_71518_1_) { + public String getCommandUsage(ICommandSender sender) { return "bees"; } - @Override - public int getRequiredPermissionLevel() { - return 4; - } - @SuppressWarnings("UnstableApiUsage") @Override - public void processCommand(ICommandSender p_71515_1_, String[] p_71515_2_) { + public void processCommand(ICommandSender sender, String[] args) { if (!ModUtils.isClientSided) { - p_71515_1_ + sender .addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "This command is single-player only!")); return; } @@ -97,7 +93,13 @@ public void processCommand(ICommandSender p_71515_1_, String[] p_71515_2_) { writer.flush(); writer.close(); - p_71515_1_.addChatMessage(new ChatComponentText(f.getAbsolutePath())); + sender.addChatMessage( + new ChatComponentText( + EnumChatFormatting.YELLOW + "Click to open file : " + + EnumChatFormatting.RESET + + f.getAbsolutePath()).setChatStyle( + new ChatStyle() + .setChatClickEvent(new ClickEvent(ClickEvent.Action.OPEN_FILE, f.getAbsolutePath())))); } catch (IOException e) { throw new RuntimeException(e); } diff --git a/src/main/java/kubatech/commands/CommandConfig.java b/src/main/java/kubatech/commands/CommandConfig.java index be759be2c96..642ef8f0a3e 100644 --- a/src/main/java/kubatech/commands/CommandConfig.java +++ b/src/main/java/kubatech/commands/CommandConfig.java @@ -35,14 +35,13 @@ import kubatech.kubatech; import kubatech.network.LoadConfigPacket; -@CommandHandler.ChildCommand public class CommandConfig extends CommandBase { enum Translations { INVALID_OPTION, SUCCESS, - USAGE,; + USAGE; final String key; @@ -75,29 +74,23 @@ public String getCommandName() { } @Override - public String getCommandUsage(ICommandSender p_71518_1_) { + public String getCommandUsage(ICommandSender sender) { return "config " + USAGE.get(); } @Override - public int getRequiredPermissionLevel() { - return 4; - } - - @SuppressWarnings("unchecked") - @Override - public void processCommand(ICommandSender p_71515_1_, String[] p_71515_2_) { - if (p_71515_2_.length == 0 || !p_71515_2_[0].equals("reload")) { - p_71515_1_.addChatMessage(new ChatComponentText(INVALID_OPTION.get())); + public void processCommand(ICommandSender sender, String[] args) { + if (args.length == 0 || !args[0].equals("reload")) { + sender.addChatMessage(new ChatComponentText(INVALID_OPTION.get())); return; } Config.synchronizeConfiguration(); MinecraftServer.getServer() - .getConfigurationManager().playerEntityList.forEach(p -> { - if (!(p instanceof EntityPlayerMP)) return; - kubatech.info("Sending config to " + ((EntityPlayerMP) p).getDisplayName()); - kubatech.NETWORK.sendTo(LoadConfigPacket.instance, (EntityPlayerMP) p); + .getConfigurationManager().playerEntityList.forEach(player -> { + if (!(player instanceof EntityPlayerMP)) return; + kubatech.info("Sending config to " + player.getDisplayName()); + kubatech.NETWORK.sendTo(LoadConfigPacket.instance, player); }); - p_71515_1_.addChatMessage(new ChatComponentText(SUCCESS.get())); + sender.addChatMessage(new ChatComponentText(SUCCESS.get())); } } diff --git a/src/main/java/kubatech/commands/CommandHandler.java b/src/main/java/kubatech/commands/CommandHandler.java index b0957c95720..e3d93534c58 100644 --- a/src/main/java/kubatech/commands/CommandHandler.java +++ b/src/main/java/kubatech/commands/CommandHandler.java @@ -25,10 +25,6 @@ import static kubatech.commands.CommandHandler.Translations.INVALID; import static kubatech.commands.CommandHandler.Translations.USAGE; -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; @@ -42,8 +38,6 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.StatCollector; -import kubatech.kubatech; - public class CommandHandler extends CommandBase { enum Translations { @@ -78,8 +72,18 @@ public String toString() { } } - private static final List<String> aliases = Collections.singletonList("kt"); - public static final HashMap<String, ICommand> commands = new HashMap<>(); + public static final HashMap<String, ICommand> childCommands = new HashMap<>(); + + static { + registerChildCommand(new CommandBees()); + registerChildCommand(new CommandConfig()); + registerChildCommand(new CommandHelp()); + registerChildCommand(new CommandTea()); + } + + private static void registerChildCommand(ICommand command) { + childCommands.put(command.getCommandName(), command); + } @Override public String getCommandName() { @@ -87,70 +91,42 @@ public String getCommandName() { } @Override - public String getCommandUsage(ICommandSender p_71518_1_) { + public String getCommandUsage(ICommandSender sender) { return "kubatech " + USAGE.get(); } @SuppressWarnings("rawtypes") @Override public List getCommandAliases() { - return aliases; + return Collections.singletonList("kt"); } @Override - public void processCommand(ICommandSender p_71515_1_, String[] p_71515_2_) { - if (p_71515_1_.getEntityWorld().isRemote) return; - if (p_71515_2_.length == 0) { - p_71515_1_.addChatMessage(new ChatComponentText(INVALID.get(getCommandUsage(p_71515_1_)))); - p_71515_1_.addChatMessage(new ChatComponentText(GENERIC_HELP.get())); + public void processCommand(ICommandSender sender, String[] args) { + if (sender.getEntityWorld().isRemote) return; + if (args.length == 0) { + sender.addChatMessage(new ChatComponentText(INVALID.get(getCommandUsage(sender)))); + sender.addChatMessage(new ChatComponentText(GENERIC_HELP.get())); return; } - if (!commands.containsKey(p_71515_2_[0])) { - p_71515_1_.addChatMessage(new ChatComponentText(CANT_FIND.get(p_71515_2_[0]))); - p_71515_1_.addChatMessage(new ChatComponentText(GENERIC_HELP.get())); + if (!childCommands.containsKey(args[0])) { + sender.addChatMessage(new ChatComponentText(CANT_FIND.get(args[0]))); + sender.addChatMessage(new ChatComponentText(GENERIC_HELP.get())); return; } - ICommand cmd = commands.get(p_71515_2_[0]); - if (!cmd.canCommandSenderUseCommand(p_71515_1_)) { + ICommand cmd = childCommands.get(args[0]); + if (!cmd.canCommandSenderUseCommand(sender)) { ChatComponentTranslation chatcomponenttranslation2 = new ChatComponentTranslation( "commands.generic.permission"); chatcomponenttranslation2.getChatStyle() .setColor(EnumChatFormatting.RED); - p_71515_1_.addChatMessage(chatcomponenttranslation2); - } else cmd.processCommand( - p_71515_1_, - p_71515_2_.length > 1 ? Arrays.copyOfRange(p_71515_2_, 1, p_71515_2_.length) : new String[0]); + sender.addChatMessage(chatcomponenttranslation2); + } else cmd.processCommand(sender, args.length > 1 ? Arrays.copyOfRange(args, 1, args.length) : new String[0]); } @Override - public boolean canCommandSenderUseCommand(ICommandSender p_71519_1_) { + public boolean canCommandSenderUseCommand(ICommandSender sender) { return true; } - public static void addCommand(ICommand command) { - commands.put(command.getCommandName(), command); - } - - static { - String ChildCommandDesc = "L" + ChildCommand.class.getName() - .replace(".", "/") + ";"; - kubatech.myClasses.stream() - .filter( - clazz -> clazz.invisibleAnnotations != null && clazz.invisibleAnnotations.stream() - .anyMatch(ann -> ann.desc.equals(ChildCommandDesc))) - .forEach(clazz -> { - try { - addCommand( - (ICommand) Class.forName(clazz.name.replace("/", ".")) - .getConstructor() - .newInstance()); - } catch (Exception e) { - throw new RuntimeException(e); - } - }); - } - - @Target(ElementType.TYPE) - @Retention(RetentionPolicy.CLASS) - public @interface ChildCommand {} } diff --git a/src/main/java/kubatech/commands/CommandHelp.java b/src/main/java/kubatech/commands/CommandHelp.java index 610f330ede8..fb8e1071740 100644 --- a/src/main/java/kubatech/commands/CommandHelp.java +++ b/src/main/java/kubatech/commands/CommandHelp.java @@ -28,13 +28,12 @@ import net.minecraft.util.ChatComponentText; import net.minecraft.util.StatCollector; -@CommandHandler.ChildCommand public class CommandHelp extends CommandBase { enum Translations { POSSIBLE_COMMANDS, - USAGE,; + USAGE; final String key; @@ -67,20 +66,19 @@ public String getCommandName() { } @Override - public String getCommandUsage(ICommandSender p_71518_1_) { + public String getCommandUsage(ICommandSender sender) { return "help " + USAGE.get(); } @Override - public boolean canCommandSenderUseCommand(ICommandSender p_71519_1_) { + public boolean canCommandSenderUseCommand(ICommandSender sender) { return true; } @Override - public void processCommand(ICommandSender p_71515_1_, String[] p_71515_2_) { - p_71515_1_.addChatMessage(new ChatComponentText(POSSIBLE_COMMANDS.get())); - CommandHandler.commands.values() - .forEach( - c -> p_71515_1_.addChatMessage(new ChatComponentText("/kubatech " + c.getCommandUsage(p_71515_1_)))); + public void processCommand(ICommandSender sender, String[] args) { + sender.addChatMessage(new ChatComponentText(POSSIBLE_COMMANDS.get())); + CommandHandler.childCommands.values() + .forEach(c -> sender.addChatMessage(new ChatComponentText("/kubatech " + c.getCommandUsage(sender)))); } } diff --git a/src/main/java/kubatech/commands/CommandTea.java b/src/main/java/kubatech/commands/CommandTea.java index 057d2bca69a..27f82398ed9 100644 --- a/src/main/java/kubatech/commands/CommandTea.java +++ b/src/main/java/kubatech/commands/CommandTea.java @@ -38,7 +38,6 @@ import kubatech.api.helpers.UUIDFinder; import kubatech.api.tea.TeaNetwork; -@CommandHandler.ChildCommand public class CommandTea extends CommandBase { enum Translations { @@ -48,7 +47,7 @@ enum Translations { SUCCESS_GET, SUCCESS_SET, SUCCESS_ADD, - USAGE,; + USAGE; final String key; @@ -81,58 +80,53 @@ public String getCommandName() { } @Override - public String getCommandUsage(ICommandSender p_71518_1_) { + public String getCommandUsage(ICommandSender sender) { return "tea " + USAGE.get(); } @Override - public int getRequiredPermissionLevel() { - return 4; - } - - @Override - public void processCommand(ICommandSender p_71515_1_, String[] p_71515_2_) { - if (p_71515_2_.length < 2) { - p_71515_1_.addChatMessage(new ChatComponentText(INVALID_OPTION.get())); + public void processCommand(ICommandSender sender, String[] args) { + if (args.length < 2) { + sender.addChatMessage(new ChatComponentText(INVALID_OPTION.get())); return; } - UUID player = UUIDFinder.getUUID(p_71515_2_[0]); + UUID player = UUIDFinder.getUUID(args[0]); if (player == null) { - p_71515_1_.addChatMessage(new ChatComponentText(PLAYER_NOT_FOUND.get())); + sender.addChatMessage(new ChatComponentText(PLAYER_NOT_FOUND.get())); return; } TeaNetwork teaNetwork = TeaNetwork.getNetwork(player); - if (!p_71515_2_[1].equalsIgnoreCase("get") && p_71515_2_.length < 3) { - p_71515_1_.addChatMessage(new ChatComponentText(INVALID_OPTION.get())); + if (!args[1].equalsIgnoreCase("get") && args.length < 3) { + sender.addChatMessage(new ChatComponentText(INVALID_OPTION.get())); return; } - switch (p_71515_2_[1].toLowerCase()) { + switch (args[1].toLowerCase()) { case "get": - p_71515_1_.addChatMessage(new ChatComponentText(SUCCESS_GET.get(p_71515_2_[0], teaNetwork.teaAmount))); + sender.addChatMessage(new ChatComponentText(SUCCESS_GET.get(args[0], teaNetwork.teaAmount))); break; case "set": { BigInteger tea; try { - tea = new BigInteger(p_71515_2_[2]); + tea = new BigInteger(args[2]); } catch (NumberFormatException ex) { - p_71515_1_.addChatMessage(new ChatComponentText(INVALID_OPTION.get())); + sender.addChatMessage(new ChatComponentText(INVALID_OPTION.get())); return; } teaNetwork.teaAmount = tea; teaNetwork.markDirty(); - p_71515_1_.addChatMessage(new ChatComponentText(SUCCESS_SET.get(p_71515_2_[0], teaNetwork.teaAmount))); + sender.addChatMessage(new ChatComponentText(SUCCESS_SET.get(args[0], teaNetwork.teaAmount))); break; } case "add": { BigInteger tea; try { - tea = new BigInteger(p_71515_2_[2]); + tea = new BigInteger(args[2]); } catch (NumberFormatException ex) { - p_71515_1_.addChatMessage(new ChatComponentText(INVALID_OPTION.get())); + sender.addChatMessage(new ChatComponentText(INVALID_OPTION.get())); return; } teaNetwork.addTea(tea); - p_71515_1_.addChatMessage(new ChatComponentText(SUCCESS_ADD.get(p_71515_2_[0], teaNetwork.teaAmount))); + sender.addChatMessage(new ChatComponentText(SUCCESS_ADD.get(args[0], teaNetwork.teaAmount))); break; } default: diff --git a/src/main/java/kubatech/kubatech.java b/src/main/java/kubatech/kubatech.java index e847780c614..2e0ae0eccb9 100644 --- a/src/main/java/kubatech/kubatech.java +++ b/src/main/java/kubatech/kubatech.java @@ -22,8 +22,6 @@ import static kubatech.api.enums.ItemList.LegendaryRedTea; -import java.io.IOException; -import java.util.Collection; import java.util.List; import net.minecraft.creativetab.CreativeTabs; @@ -32,7 +30,6 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.objectweb.asm.tree.ClassNode; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.SidedProxy; @@ -50,7 +47,6 @@ import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; import kubatech.api.enums.ItemList; -import kubatech.api.helpers.ReflectionHelper; import kubatech.loaders.BlockLoader; import kubatech.network.CustomTileEntityPacket; import kubatech.network.LoadConfigPacket; @@ -78,7 +74,8 @@ + "after: dreamcraft; ") public class kubatech { - public static kubatech instance = null; + @Mod.Instance(Tags.MODID) + public static kubatech instance; public static final SimpleNetworkWrapper NETWORK = new SimpleNetworkWrapper(Tags.MODID); public static final CreativeTabs KT = new CreativeTabs(Tags.MODID) { @@ -123,22 +120,8 @@ public void displayAllReleventItems(List p_78018_1_) { @SidedProxy(clientSide = Tags.MODID + ".ClientProxy", serverSide = Tags.MODID + ".CommonProxy") public static CommonProxy proxy; - public static Collection<ClassNode> myClasses; - @Mod.EventHandler public void preInit(FMLPreInitializationEvent event) { - instance = this; - final long timeStart = System.currentTimeMillis(); - try { - myClasses = ReflectionHelper.getClasses( - this.getClass() - .getPackage() - .getName()); - } catch (IOException e) { - throw new RuntimeException(e); - } - final long timeToLoad = System.currentTimeMillis() - timeStart; - info("Class discovery took " + timeToLoad + "ms ! Found " + myClasses.size() + " classes."); proxy.preInit(event); } From c0ee194a8df08e43d5c82b1a6b1da8db1e1af19a Mon Sep 17 00:00:00 2001 From: Martin Robertz <dream-master@gmx.net> Date: Sun, 1 Sep 2024 21:06:30 +0200 Subject: [PATCH 7/7] update --- dependencies.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dependencies.gradle b/dependencies.gradle index 2dc0e7b0fb0..c7f39a32ca5 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -38,7 +38,7 @@ dependencies { api("net.industrial-craft:industrialcraft-2:2.2.828-experimental:dev") api("com.github.GTNewHorizons:NotEnoughItems:2.6.33-GTNH:dev") api("com.github.GTNewHorizons:NotEnoughIds:2.1.0:dev") - api("com.github.GTNewHorizons:GTNHLib:0.4.8:dev") + api("com.github.GTNewHorizons:GTNHLib:0.4.9:dev") api("com.github.GTNewHorizons:ModularUI:1.2.0:dev") api("com.github.GTNewHorizons:ModularUI2:2.1.3-1.7.10:dev") api("com.github.GTNewHorizons:waila:1.8.1:dev")