From 296a37863e7b2cb53cc85164788d71eeed8f2098 Mon Sep 17 00:00:00 2001 From: luomolhx <32254980+luomolhx@users.noreply.github.com> Date: Tue, 12 Dec 2023 16:35:44 +0800 Subject: [PATCH 01/12] =?UTF-8?q?=E5=B0=9D=E8=AF=95=E9=80=82=E9=85=8Dgtnh2?= =?UTF-8?q?50=E7=9A=84=E6=96=B0RecipeMap?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 31 +++------- dependencies.gradle | 18 +++--- gradle.properties | 5 ++ .../silvermoon/boxplusplus/api/IBoxable.java | 8 +-- .../common/loader/RecipeLoader.java | 44 +++++--------- .../boxplusplus/util/BoxRoutings.java | 60 ++++++++++--------- .../com/silvermoon/boxplusplus/util/Util.java | 24 ++++---- 7 files changed, 89 insertions(+), 101 deletions(-) diff --git a/build.gradle b/build.gradle index f3a7fa2..50c3291 100644 --- a/build.gradle +++ b/build.gradle @@ -1,4 +1,4 @@ -//version: 1699290261 +//version: 1702141377 /* DO NOT CHANGE THIS FILE! Also, you may replace this file at any time if there is an update available. @@ -28,27 +28,12 @@ import java.util.concurrent.TimeUnit buildscript { repositories { - mavenCentral() - - maven { - name 'forge' - url 'https://maven.minecraftforge.net' - } maven { // GTNH RetroFuturaGradle and ASM Fork name "GTNH Maven" url "http://jenkins.usrv.eu:8081/nexus/content/groups/public/" allowInsecureProtocol = true } - maven { - name 'sonatype' - url 'https://oss.sonatype.org/content/repositories/snapshots/' - } - maven { - name 'Scala CI dependencies' - url 'https://repo1.maven.org/maven2/' - } - mavenLocal() } } @@ -69,7 +54,7 @@ plugins { id 'com.diffplug.spotless' version '6.13.0' apply false // 6.13.0 is the last jvm8 supporting version id 'com.modrinth.minotaur' version '2.+' apply false id 'com.matthewprenger.cursegradle' version '1.4.0' apply false - id 'com.gtnewhorizons.retrofuturagradle' version '1.3.24' + id 'com.gtnewhorizons.retrofuturagradle' version '1.3.26' } print("You might want to check out './gradlew :faq' if your build fails.\n") @@ -302,7 +287,7 @@ if (apiPackage) { } if (accessTransformersFile) { - for (atFile in accessTransformersFile.split(",")) { + for (atFile in accessTransformersFile.split(" ")) { String targetFile = "src/main/resources/META-INF/" + atFile.trim() if (!getFile(targetFile).exists()) { throw new GradleException("Could not resolve \"accessTransformersFile\"! Could not find " + targetFile) @@ -628,7 +613,7 @@ repositories { } maven { name = "ic2" - url = getURL("https://maven.ic2.player.to/", "https://maven2.ic2.player.to/") + url = getURL("https://maven2.ic2.player.to/", "https://maven.ic2.player.to/") content { includeGroup "net.industrial-craft" } @@ -687,6 +672,8 @@ configurations.all { substitute module('com.github.GTNewHorizons:SpongePoweredMixin') using module(mixinProviderSpecNoClassifer) withClassifier("dev") because("Unimixins replaces other mixin mods") substitute module('com.github.GTNewHorizons:SpongeMixins') using module(mixinProviderSpecNoClassifer) withClassifier("dev") because("Unimixins replaces other mixin mods") substitute module('io.github.legacymoddingmc:unimixins') using module(mixinProviderSpecNoClassifer) withClassifier("dev") because("Our previous unimixins upload was missing the dev classifier") + + substitute module('org.scala-lang:scala-library:2.11.1') using module('org.scala-lang:scala-library:2.11.5') because('To allow mixing with Java 8 targets') } } @@ -793,12 +780,12 @@ ext.java17PatchDependenciesCfg = configurations.create("java17PatchDependencies" } dependencies { - def lwjgl3ifyVersion = '1.5.1' + def lwjgl3ifyVersion = '1.5.7' if (modId != 'lwjgl3ify') { java17Dependencies("com.github.GTNewHorizons:lwjgl3ify:${lwjgl3ifyVersion}") } if (modId != 'hodgepodge') { - java17Dependencies('com.github.GTNewHorizons:Hodgepodge:2.3.17') + java17Dependencies('com.github.GTNewHorizons:Hodgepodge:2.3.35') } java17PatchDependencies("com.github.GTNewHorizons:lwjgl3ify:${lwjgl3ifyVersion}:forgePatches") {transitive = false} @@ -1310,7 +1297,7 @@ def addCurseForgeRelation(String type, String name) { // Updating -def buildscriptGradleVersion = "8.2.1" +def buildscriptGradleVersion = "8.5" tasks.named('wrapper', Wrapper).configure { gradleVersion = buildscriptGradleVersion diff --git a/dependencies.gradle b/dependencies.gradle index 741ae63..9c95699 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -29,14 +29,14 @@ * For more details, see https://docs.gradle.org/8.0.1/userguide/java_library_plugin.html#sec:java_library_configurations_graph */ dependencies { - implementation('com.github.GTNewHorizons:GT5-Unofficial:5.09.44.87:dev') - implementation('com.github.GTNewHorizons:GTplusplus:1.10.31:dev') - implementation("com.github.GTNewHorizons:Applied-Energistics-2-Unofficial:rv3-beta-287-GTNH:dev") - implementation('com.github.GTNewHorizons:GoodGenerator:0.7.6:dev') - implementation('com.github.GTNewHorizons:bartworks:0.8.12:dev') - implementation('com.github.GTNewHorizons:GTNH-Lanthanides:0.11.4:dev') + implementation('com.github.GTNewHorizons:GT5-Unofficial:5.09.44.106:dev') + implementation('com.github.GTNewHorizons:GTplusplus:1.10.45:dev') + implementation("com.github.GTNewHorizons:Applied-Energistics-2-Unofficial:rv3-beta-291-GTNH:dev") + implementation('com.github.GTNewHorizons:GoodGenerator:0.7.14:dev') + implementation('com.github.GTNewHorizons:bartworks:0.8.20:dev') + implementation('com.github.GTNewHorizons:GTNH-Lanthanides:0.11.8:dev') implementation('com.github.GTNewHorizons:Galaxy-Space-GTNH:1.2.13-GTNH:dev') - implementation('com.github.GTNewHorizons:GTNH-Intergalactic:1.2.4:dev') - implementation('com.github.GTNewHorizons:NotEnoughEnergistics:1.4.2:dev') - implementation('com.github.GTNewHorizons:NewHorizonsCoreMod:2.2.39:dev') + implementation('com.github.GTNewHorizons:GTNH-Intergalactic:1.2.7:dev') + implementation('com.github.GTNewHorizons:NotEnoughEnergistics:1.4.6:dev') + implementation('com.github.GTNewHorizons:NewHorizonsCoreMod:2.2.50:dev') } diff --git a/gradle.properties b/gradle.properties index 56ca9a3..e7ef874 100644 --- a/gradle.properties +++ b/gradle.properties @@ -139,3 +139,8 @@ disableCheckstyle=true # WARNING: If you do use this option, it will overwrite whatever you have in your existing projects. This might not be what you want! # Usually there is no need to uncomment this here as other developers do not necessarily use the same build type as you. # ideaOverrideBuildType = idea + +systemProp.https.proxyHost=127.0.0.1 +systemProp.https.proxyPort=7890 +systemProp.http.proxyHost=127.0.0.1 +systemProp.http.proxyPort=7890 diff --git a/src/main/java/com/silvermoon/boxplusplus/api/IBoxable.java b/src/main/java/com/silvermoon/boxplusplus/api/IBoxable.java index 4388e55..7a81232 100644 --- a/src/main/java/com/silvermoon/boxplusplus/api/IBoxable.java +++ b/src/main/java/com/silvermoon/boxplusplus/api/IBoxable.java @@ -1,7 +1,7 @@ package com.silvermoon.boxplusplus.api; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; -import gregtech.api.util.GT_Recipe; +import gregtech.api.recipe.RecipeMap; /** * Implements this on GT_MetaTileEntity_MultiBlockBase to allow your machine encapsulating in Box System. @@ -17,7 +17,7 @@ public interface IBoxable { * Set which module your machine will be. *

* 设定模块ID。模块ID可以从模块核心的meta值获取,范围:0-11 - * + * * @return Module ID, refers to the meta of the module core block. Range: 0-11 */ @@ -27,7 +27,7 @@ public interface IBoxable { * Should use update module *

* 是否使用升级模块 - * + * * @return true - updated */ boolean isUpdateModule(); @@ -38,7 +38,7 @@ public interface IBoxable { * @param machine normally "this" * @return GT_Recipe_Map - the real recipeMap */ - default GT_Recipe.GT_Recipe_Map getRealRecipeMap(GT_MetaTileEntity_MultiBlockBase machine) { + default RecipeMap getRealRecipeMap(GT_MetaTileEntity_MultiBlockBase machine) { return machine.getRecipeMap(); } diff --git a/src/main/java/com/silvermoon/boxplusplus/common/loader/RecipeLoader.java b/src/main/java/com/silvermoon/boxplusplus/common/loader/RecipeLoader.java index 982bb9e..8ec9b05 100644 --- a/src/main/java/com/silvermoon/boxplusplus/common/loader/RecipeLoader.java +++ b/src/main/java/com/silvermoon/boxplusplus/common/loader/RecipeLoader.java @@ -1,8 +1,8 @@ package com.silvermoon.boxplusplus.common.loader; import static gregtech.api.enums.Mods.*; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sAssemblerRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes; +import static gregtech.api.recipe.RecipeMaps.assemblerRecipes; +import static gregtech.api.recipe.RecipeMaps.multiblockChemicalReactorRecipes; import static gregtech.api.util.GT_RecipeConstants.*; import net.minecraft.item.ItemStack; @@ -13,13 +13,14 @@ import com.github.technus.tectech.recipe.TT_recipeAdder; import gregtech.api.enums.*; -import gregtech.api.util.GTPP_Recipe; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; +import gtPlusPlus.api.recipe.GTPPRecipeMaps; import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList; public class RecipeLoader implements Runnable { + @Override public void run() { addBoxRecipe(); addMachineBlockRecipe(); @@ -33,7 +34,6 @@ public void addBoxRecipe() { .metadata(RESEARCH_ITEM, GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 1, 13532)) .metadata(RESEARCH_TIME, 64000) .itemOutputs(TileEntitiesLoader.Box.getStackForm(1)) - .noFluidOutputs() .itemInputs( new ItemStack(BlockRegister.BoxRing, 1, 0), GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 4, 59), @@ -62,22 +62,19 @@ public void addBoxRecipe() { public void addMachineBlockRecipe() { GT_Values.RA.stdBuilder() .itemOutputs(new ItemStack(BlockRegister.SpaceExtend, 32, 0)) - .noFluidOutputs() .itemInputs( ItemList.Casing_StableTitanium.get(64), GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 2, 32), ItemList.Electric_Motor_LuV.get(16), ItemList.Electric_Piston_LuV.get(16), GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.IrradiantReinforcedTitaniumPlate", 4)) - .noFluidInputs() .eut(TierEU.RECIPE_LuV) .duration(400) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .metadata(RESEARCH_ITEM, new ItemStack(BlockRegister.SpaceExtend)) .metadata(RESEARCH_TIME, 24000) .itemOutputs(new ItemStack(BlockRegister.SpaceCompress, 16, 0)) - .noFluidOutputs() .itemInputs( ItemList.Casing_StableTitanium.get(64), ItemList.Casing_StableTitanium.get(64), @@ -95,7 +92,6 @@ public void addMachineBlockRecipe() { .metadata(RESEARCH_ITEM, new ItemStack(BlockRegister.SpaceCompress)) .metadata(RESEARCH_TIME, 48000) .itemOutputs(new ItemStack(BlockRegister.SpaceConstraint, 2, 0)) - .noFluidOutputs() .itemInputs( ItemList.Casing_StableTitanium.get(64), ItemList.Casing_StableTitanium.get(64), @@ -135,7 +131,6 @@ public void addMachineBlockRecipe() { public void addRingRecipe() { GT_Values.RA.stdBuilder() .itemOutputs(new ItemStack(BlockRegister.BoxRing, 1, 0)) - .noFluidOutputs() .itemInputs( GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Titanium, 64), GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Titanium, 64), @@ -146,12 +141,11 @@ public void addRingRecipe() { .fluidInputs(FluidRegistry.getFluidStack("molten.tanmolyium beta-c", 51840)) .eut(TierEU.RECIPE_LuV) .duration(1200) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .metadata(RESEARCH_ITEM, new ItemStack(BlockRegister.BoxRing)) .metadata(RESEARCH_TIME, 48000) .itemOutputs(new ItemStack(BlockRegister.BoxRing2, 1, 0)) - .noFluidOutputs() .itemInputs( GT_OreDictUnificator.get("ringLaurenium", 64), GT_OreDictUnificator.get("ringLaurenium", 64), @@ -201,7 +195,6 @@ public void addRingRecipe() { public void addModuleRecipe() { GT_Values.RA.stdBuilder() .itemOutputs(new ItemStack(BlockRegister.BoxModule, 1, 0)) - .noFluidOutputs() .itemInputs( new ItemStack(BlockRegister.BoxRing, 1), ItemList.Machine_Multi_LargeChemicalReactor.get(64), @@ -212,10 +205,9 @@ public void addModuleRecipe() { FluidRegistry.getFluidStack("tetrafluoroethylene", 128000)) .eut(TierEU.RECIPE_LuV) .duration(1200) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemOutputs(new ItemStack(BlockRegister.BoxModule, 1, 1)) - .noFluidOutputs() .itemInputs( new ItemStack(BlockRegister.BoxRing, 1), GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 876), @@ -225,10 +217,9 @@ public void addModuleRecipe() { .fluidInputs(FluidRegistry.getFluidStack("glue", 16000)) .eut(TierEU.RECIPE_LuV) .duration(1200) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemOutputs(new ItemStack(BlockRegister.BoxModule, 1, 2)) - .noFluidOutputs() .itemInputs( new ItemStack(BlockRegister.BoxRing, 1), ItemList.OilCracker.get(64), @@ -239,10 +230,9 @@ public void addModuleRecipe() { .specialValue(5) .eut(TierEU.RECIPE_LuV) .duration(2400) - .addTo(GTPP_Recipe.GTPP_Recipe_Map.sChemicalPlantRecipes); + .addTo(GTPPRecipeMaps.chemicalPlantRecipes); GT_Values.RA.stdBuilder() .itemOutputs(new ItemStack(BlockRegister.BoxModule, 1, 3)) - .noFluidOutputs() .itemInputs( new ItemStack(BlockRegister.BoxRing, 1), ItemList.Machine_Multi_Furnace.get(64), @@ -256,12 +246,11 @@ public void addModuleRecipe() { .fluidInputs(FluidRegistry.getFluidStack("glue", 64000)) .eut(TierEU.RECIPE_LuV) .duration(2400) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .metadata(RESEARCH_ITEM, GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 1, 860)) .metadata(RESEARCH_TIME, 12000) .itemOutputs(new ItemStack(BlockRegister.BoxModule, 1, 4)) - .noFluidOutputs() .itemInputs( new ItemStack(BlockRegister.BoxRing2, 2), GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 860), @@ -279,7 +268,6 @@ public void addModuleRecipe() { .metadata(RESEARCH_ITEM, GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 1, 31077)) .metadata(RESEARCH_TIME, 12000) .itemOutputs(new ItemStack(BlockRegister.BoxModule, 1, 5)) - .noFluidOutputs() .itemInputs( new ItemStack(BlockRegister.BoxRing2, 2), GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 31077), @@ -301,7 +289,7 @@ public void addModuleRecipe() { .metadata(RESEARCH_ITEM, GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 1, 992)) .metadata(RESEARCH_TIME, 12000) .itemOutputs(new ItemStack(BlockRegister.BoxModule, 1, 6)) - .noFluidOutputs() + .itemInputs( GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 792), GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 992), @@ -324,7 +312,7 @@ public void addModuleRecipe() { .metadata(RESEARCH_ITEM, GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 1, 850)) .metadata(RESEARCH_TIME, 12000) .itemOutputs(new ItemStack(BlockRegister.BoxModule, 1, 7)) - .noFluidOutputs() + .itemInputs( GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 850), GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 796), @@ -448,7 +436,7 @@ public void addUpgradeModuleRecipe() { .metadata(RESEARCH_ITEM, new ItemStack(BlockRegister.BoxModule, 1, 0)) .metadata(RESEARCH_TIME, 12000) .itemOutputs(new ItemStack(BlockRegister.BoxModuleUpgrad, 1, 0)) - .noFluidOutputs() + .itemInputs( new ItemStack(BlockRegister.BoxRing, 8), GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 31072), @@ -466,7 +454,7 @@ public void addUpgradeModuleRecipe() { .metadata(RESEARCH_ITEM, new ItemStack(BlockRegister.BoxModule, 1, 1)) .metadata(RESEARCH_TIME, 12000) .itemOutputs(new ItemStack(BlockRegister.BoxModuleUpgrad, 1, 1)) - .noFluidOutputs() + .itemInputs( new ItemStack(BlockRegister.BoxRing, 8), GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 32018), @@ -486,7 +474,7 @@ public void addUpgradeModuleRecipe() { .metadata(RESEARCH_ITEM, new ItemStack(BlockRegister.BoxModule, 1, 2)) .metadata(RESEARCH_TIME, 12000) .itemOutputs(new ItemStack(BlockRegister.BoxModuleUpgrad, 1, 2)) - .noFluidOutputs() + .itemInputs( new ItemStack(BlockRegister.BoxRing, 8), GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 998), @@ -503,7 +491,7 @@ public void addUpgradeModuleRecipe() { .metadata(RESEARCH_ITEM, new ItemStack(BlockRegister.BoxModule, 1, 3)) .metadata(RESEARCH_TIME, 12000) .itemOutputs(new ItemStack(BlockRegister.BoxModuleUpgrad, 1, 3)) - .noFluidOutputs() + .itemInputs( new ItemStack(BlockRegister.BoxRing, 8), GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 828), diff --git a/src/main/java/com/silvermoon/boxplusplus/util/BoxRoutings.java b/src/main/java/com/silvermoon/boxplusplus/util/BoxRoutings.java index e63075d..29107ee 100644 --- a/src/main/java/com/silvermoon/boxplusplus/util/BoxRoutings.java +++ b/src/main/java/com/silvermoon/boxplusplus/util/BoxRoutings.java @@ -19,8 +19,9 @@ import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; -import com.github.bartimaeusnek.bartworks.util.BWRecipes; -import com.gtnewhorizons.gtnhintergalactic.recipe.IG_RecipeAdder; +import com.elisis.gtnhlanth.api.recipe.LanthanidesRecipeMaps; +import com.github.bartimaeusnek.bartworks.API.recipe.BartWorksRecipeMaps; +import com.gtnewhorizons.gtnhintergalactic.recipe.IGRecipeMaps; import com.silvermoon.boxplusplus.api.IBoxable; import com.silvermoon.boxplusplus.boxplusplus; import com.silvermoon.boxplusplus.common.tileentities.GTMachineBox; @@ -32,12 +33,17 @@ import codechicken.nei.recipe.RecipeCatalysts; import fox.spiteful.avaritia.crafting.ExtremeShapedOreRecipe; import fox.spiteful.avaritia.crafting.ExtremeShapedRecipe; +import goodgenerator.api.recipe.GoodGeneratorRecipeMaps; import gregtech.api.enums.*; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_InputBus; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; +import gregtech.api.recipe.RecipeMap; +import gregtech.api.recipe.RecipeMapBackend; +import gregtech.api.recipe.RecipeMaps; import gregtech.api.util.*; import gregtech.common.items.behaviors.Behaviour_DataOrb; import gregtech.nei.GT_NEI_DefaultHandler; +import gtPlusPlus.api.recipe.GTPPRecipeMaps; import gtPlusPlus.core.util.minecraft.ItemUtils; public class BoxRoutings { @@ -237,7 +243,7 @@ public static void checkRouting(GTMachineBox box) { box.routingStatus = 1; return; } - GT_Recipe.GT_Recipe_Map RecipeMap = null; + RecipeMap RecipeMap = null; GT_Recipe RoutingRecipe = null; List allInputItems = box.getStoredInputs(); for (GT_MetaTileEntity_Hatch_InputBus inputBus : box.mInputBusses) { @@ -248,7 +254,7 @@ public static void checkRouting(GTMachineBox box) { if (inputBus.getStackInSlot(i) .getUnlocalizedName() .equals("gt.blockmachines.basicmachine.electromagneticseparator.tier.06")) { - RecipeMap = GT_Recipe.GT_Recipe_Map.sElectroMagneticSeparatorRecipes; + RecipeMap = RecipeMaps.electroMagneticSeparatorRecipes; RoutingRecipe = RecipeMap.findRecipe( box.getBaseMetaTileEntity(), true, @@ -444,8 +450,8 @@ public static void checkRouting(GTMachineBox box) { return; } switch (Circuit.getItemDamage()) { - case 1 -> RecipeMap = GT_Recipe.GT_Recipe_Map.sBenderRecipes; - case 2 -> RecipeMap = GT_Recipe.GT_Recipe_Map.sPressRecipes; + case 1 -> RecipeMap = RecipeMaps.benderRecipes; + case 2 -> RecipeMap = RecipeMaps.formingPressRecipes; default -> { box.routingStatus = 4; return; @@ -460,8 +466,8 @@ public static void checkRouting(GTMachineBox box) { return; } switch (Circuit.getItemDamage()) { - case 1 -> RecipeMap = GT_Recipe.GT_Recipe_Map.sOreWasherRecipes; - case 2 -> RecipeMap = GT_Recipe.GT_Recipe_Map.sChemicalBathRecipes; + case 1 -> RecipeMap = RecipeMaps.oreWasherRecipes; + case 2 -> RecipeMap = RecipeMaps.chemicalBathRecipes; default -> { box.routingStatus = 4; return; @@ -542,26 +548,26 @@ public static void checkRouting(GTMachineBox box) { } case "largefusioncomputer5" -> { // Why there are two fusionRecipeMaps?! FK! - RoutingRecipe = GT_Recipe.GT_Recipe_Map.sFusionRecipes.findRecipe( + RoutingRecipe = RecipeMaps.fusionRecipes.findRecipe( box.getBaseMetaTileEntity(), - null, false, Long.MAX_VALUE / 10, - FluidInputs.toArray(new FluidStack[0])); - if (RoutingRecipe == null) RecipeMap = GT_Recipe.GT_Recipe_Map.sComplexFusionRecipes; + FluidInputs.toArray(new FluidStack[0]), + ItemInputs.toArray(new ItemStack[0])); + if (RoutingRecipe == null) RecipeMap = RecipeMaps.fusionRecipes; } case "circuitassemblyline" -> { // Circuitassemblyline will check imprint first. Let us do the same thing here. - RecipeMap = BWRecipes.instance.getMappingsFor((byte) 3); + RecipeMap = BartWorksRecipeMaps.bacterialVatRecipes; if (inputBus.getStackInSlot(i) .getTagCompound() == null || !inputBus.getStackInSlot(i) - .getTagCompound() - .hasKey("Type")) { + .getTagCompound() + .hasKey("Type")) { box.routingStatus = 6; return; } - for (GT_Recipe recipe : RecipeMap.mRecipeList) { + for (GT_Recipe recipe : RecipeMap.getAllRecipes()) { if (GT_Utility.areStacksEqual( recipe.mOutputs[0], ItemStack.loadItemStackFromNBT( @@ -587,8 +593,8 @@ public static void checkRouting(GTMachineBox box) { return; } switch (Circuit.getItemDamage()) { - case 1 -> RecipeMap = GT_Recipe.GT_Recipe_Map.sArcFurnaceRecipes; - case 2 -> RecipeMap = GT_Recipe.GT_Recipe_Map.sPlasmaArcFurnaceRecipes; + case 1 -> RecipeMap = RecipeMaps.arcFurnaceRecipes; + case 2 -> RecipeMap = RecipeMaps.plasmaArcFurnaceRecipes; default -> { box.routingStatus = 4; return; @@ -597,7 +603,7 @@ public static void checkRouting(GTMachineBox box) { ItemInputs.remove(Circuit); } case "gtpp.multimachine.replicator" -> { - RecipeMap = GTPP_Recipe.GTPP_Recipe_Map.sElementalDuplicatorRecipes; + RecipeMap = RecipeMaps.replicatorRecipes; Materials replicatorItem = null; for (ItemStack item : ItemInputs) { if (Behaviour_DataOrb.getDataName(item) == null) continue; @@ -609,7 +615,7 @@ public static void checkRouting(GTMachineBox box) { box.routingStatus = 7; return; } - for (GT_Recipe recipe : RecipeMap.mRecipeList) { + for (GT_Recipe recipe : RecipeMap.getAllRecipes()) { if (!(recipe.mSpecialItems instanceof ItemStack[]var1)) { continue; } @@ -633,13 +639,13 @@ public static void checkRouting(GTMachineBox box) { box.routingStatus = 0; return; } - case "preciseassembler" -> RecipeMap = goodgenerator.util.MyRecipeAdder.instance.PA; - case "frf" -> RecipeMap = goodgenerator.util.MyRecipeAdder.instance.FRF; - case "digester" -> RecipeMap = com.elisis.gtnhlanth.loader.RecipeAdder.instance.DigesterRecipes; - case "dissolution_tank" -> RecipeMap = com.elisis.gtnhlanth.loader.RecipeAdder.instance.DissolutionTankRecipes; - case "cyclotron.tier.single" -> RecipeMap = GTPP_Recipe.GTPP_Recipe_Map.sCyclotronRecipes; - case "multimachine.transcendentplasmamixer" -> RecipeMap = GT_Recipe.GT_Recipe_Map.sTranscendentPlasmaMixerRecipes; - case "projectmoduleassemblert3" -> RecipeMap = IG_RecipeAdder.instance.sSpaceAssemblerRecipes; + case "preciseassembler" -> RecipeMap = GoodGeneratorRecipeMaps.preciseAssemblerRecipes; + case "frf" -> RecipeMap = GoodGeneratorRecipeMaps.naquadahFuelRefineFactoryRecipes; + case "digester" -> RecipeMap = LanthanidesRecipeMaps.digesterRecipes; + case "dissolution_tank" -> RecipeMap = LanthanidesRecipeMaps.dissolutionTankRecipes; + case "cyclotron.tier.single" -> RecipeMap = GTPPRecipeMaps.cyclotronRecipes; + case "multimachine.transcendentplasmamixer" -> RecipeMap = RecipeMaps.transcendentPlasmaMixerRecipes; + case "projectmoduleassemblert3" -> RecipeMap = IGRecipeMaps.spaceAssemblerRecipes; default -> { RecipeMap = (RoutingMachine instanceof IBoxable boxable) ? boxable.getRealRecipeMap(RoutingMachine) diff --git a/src/main/java/com/silvermoon/boxplusplus/util/Util.java b/src/main/java/com/silvermoon/boxplusplus/util/Util.java index 12cfb39..c736225 100644 --- a/src/main/java/com/silvermoon/boxplusplus/util/Util.java +++ b/src/main/java/com/silvermoon/boxplusplus/util/Util.java @@ -34,8 +34,10 @@ import appeng.api.AEApi; import appeng.api.definitions.IDefinitions; +import gregtech.api.recipe.RecipeMap; +import gregtech.api.recipe.RecipeMapBackend; +import gregtech.api.recipe.RecipeMaps; import gregtech.api.util.GT_ModHandler; -import gregtech.api.util.GT_Recipe; public class Util { @@ -47,17 +49,17 @@ public static String i18n(String info) { .replace("&", "§"); } - public static GT_Recipe.GT_Recipe_Map getMMRecipeMap(int Mode) { + public static RecipeMap getMMRecipeMap(int Mode) { return switch (Mode) { - case 1 -> GT_Recipe.GT_Recipe_Map.sCompressorRecipes; - case 2 -> GT_Recipe.GT_Recipe_Map.sLatheRecipes; - case 3 -> GT_Recipe.GT_Recipe_Map.sPolarizerRecipes; - case 4 -> GT_Recipe.GT_Recipe_Map.sFermentingRecipes; - case 5 -> GT_Recipe.GT_Recipe_Map.sFluidExtractionRecipes; - case 6 -> GT_Recipe.GT_Recipe_Map.sExtractorRecipes; - case 7 -> GT_Recipe.GT_Recipe_Map.sLaserEngraverRecipes; - case 8 -> GT_Recipe.GT_Recipe_Map.sAutoclaveRecipes; - case 9 -> GT_Recipe.GT_Recipe_Map.sFluidSolidficationRecipes; + case 1 -> RecipeMaps.compressorRecipes; + case 2 -> RecipeMaps.latheRecipes; + case 3 -> RecipeMaps.polarizerRecipes; + case 4 -> RecipeMaps.fermentingRecipes; + case 5 -> RecipeMaps.fluidExtractionRecipes; + case 6 -> RecipeMaps.extractorRecipes; + case 7 -> RecipeMaps.laserEngraverRecipes; + case 8 -> RecipeMaps.autoclaveRecipes; + case 9 -> RecipeMaps.fluidSolidifierRecipes; default -> null; }; } From b0e6c8a59e528b41042bd7b38f128e343b40eaab Mon Sep 17 00:00:00 2001 From: luomolhx <32254980+luomolhx@users.noreply.github.com> Date: Tue, 12 Dec 2023 16:38:30 +0800 Subject: [PATCH 02/12] Update gradle.properties --- gradle.properties | 5 ----- 1 file changed, 5 deletions(-) diff --git a/gradle.properties b/gradle.properties index e7ef874..56ca9a3 100644 --- a/gradle.properties +++ b/gradle.properties @@ -139,8 +139,3 @@ disableCheckstyle=true # WARNING: If you do use this option, it will overwrite whatever you have in your existing projects. This might not be what you want! # Usually there is no need to uncomment this here as other developers do not necessarily use the same build type as you. # ideaOverrideBuildType = idea - -systemProp.https.proxyHost=127.0.0.1 -systemProp.https.proxyPort=7890 -systemProp.http.proxyHost=127.0.0.1 -systemProp.http.proxyPort=7890 From 392a4549ca91fe3459d5e4fab6e34b914af8921b Mon Sep 17 00:00:00 2001 From: luomolhx <32254980+luomolhx@users.noreply.github.com> Date: Tue, 12 Dec 2023 17:05:59 +0800 Subject: [PATCH 03/12] Update BoxRoutings.java -spotless --- .../java/com/silvermoon/boxplusplus/util/BoxRoutings.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/silvermoon/boxplusplus/util/BoxRoutings.java b/src/main/java/com/silvermoon/boxplusplus/util/BoxRoutings.java index 29107ee..d8a2d81 100644 --- a/src/main/java/com/silvermoon/boxplusplus/util/BoxRoutings.java +++ b/src/main/java/com/silvermoon/boxplusplus/util/BoxRoutings.java @@ -562,8 +562,8 @@ public static void checkRouting(GTMachineBox box) { if (inputBus.getStackInSlot(i) .getTagCompound() == null || !inputBus.getStackInSlot(i) - .getTagCompound() - .hasKey("Type")) { + .getTagCompound() + .hasKey("Type")) { box.routingStatus = 6; return; } From 17c8b67a1f6ed48e999ec8c65b4bbebd8314c5b7 Mon Sep 17 00:00:00 2001 From: luomolhx <32254980+luomolhx@users.noreply.github.com> Date: Wed, 13 Dec 2023 16:57:22 +0800 Subject: [PATCH 04/12] hotfix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复配方原料缺失的问题 等钛管道添加替换材料 --- .../silvermoon/boxplusplus/common/loader/RecipeLoader.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/silvermoon/boxplusplus/common/loader/RecipeLoader.java b/src/main/java/com/silvermoon/boxplusplus/common/loader/RecipeLoader.java index 8ec9b05..d9fe95a 100644 --- a/src/main/java/com/silvermoon/boxplusplus/common/loader/RecipeLoader.java +++ b/src/main/java/com/silvermoon/boxplusplus/common/loader/RecipeLoader.java @@ -152,8 +152,8 @@ public void addRingRecipe() { GT_OreDictUnificator.get("ringLaurenium", 64), GT_OreDictUnificator.get("ringLaurenium", 64), GT_OreDictUnificator.get("blockAdvancedNitinol", 16), - GT_ModHandler.getModItem(GTPlusPlus.ID, "particleIon", 64, 21), - GT_ModHandler.getModItem(GTPlusPlus.ID, "particleIon", 64, 21), +// GT_ModHandler.getModItem(GTPlusPlus.ID, "particleIon", 64, 21), +// GT_ModHandler.getModItem(GTPlusPlus.ID, "particleIon", 64, 21), ItemList.Field_Generator_UV.get(4), ItemList.ZPM_Coil.get(48)) .fluidInputs( From ffaab107e9dec40f45697a8c84668c7ce04853fd Mon Sep 17 00:00:00 2001 From: luomolhx <32254980+luomolhx@users.noreply.github.com> Date: Wed, 13 Dec 2023 17:40:59 +0800 Subject: [PATCH 05/12] fixrecipe MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 暂时用一组钛奇点替换原来的两组钛离子 --- gradle.properties | 2 +- .../com/silvermoon/boxplusplus/common/loader/RecipeLoader.java | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 56ca9a3..2848a49 100644 --- a/gradle.properties +++ b/gradle.properties @@ -128,7 +128,7 @@ curseForgeRelations = # Optional parameter to prevent the source code from being published # noPublishedSources = # Uncomment this to disable spotless checks -#disableSpotless=true +disableSpotless=true # This should only be uncommented to keep it easier to sync with upstream/other forks. # That is, if there is no other active fork/upstream, NEVER change this. disableCheckstyle=true diff --git a/src/main/java/com/silvermoon/boxplusplus/common/loader/RecipeLoader.java b/src/main/java/com/silvermoon/boxplusplus/common/loader/RecipeLoader.java index d9fe95a..7fa4dc9 100644 --- a/src/main/java/com/silvermoon/boxplusplus/common/loader/RecipeLoader.java +++ b/src/main/java/com/silvermoon/boxplusplus/common/loader/RecipeLoader.java @@ -154,6 +154,7 @@ public void addRingRecipe() { GT_OreDictUnificator.get("blockAdvancedNitinol", 16), // GT_ModHandler.getModItem(GTPlusPlus.ID, "particleIon", 64, 21), // GT_ModHandler.getModItem(GTPlusPlus.ID, "particleIon", 64, 21), + GT_ModHandler.getModItem(UniversalSingularities.ID, "universal.general.singularity", 64, 12), ItemList.Field_Generator_UV.get(4), ItemList.ZPM_Coil.get(48)) .fluidInputs( From a4801aadfb66c08f2a61074730f1118faaec37d6 Mon Sep 17 00:00:00 2001 From: luomolhx <32254980+luomolhx@users.noreply.github.com> Date: Wed, 13 Dec 2023 17:42:16 +0800 Subject: [PATCH 06/12] Update gradle.properties --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 2848a49..be6388f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -128,7 +128,7 @@ curseForgeRelations = # Optional parameter to prevent the source code from being published # noPublishedSources = # Uncomment this to disable spotless checks -disableSpotless=true +# disableSpotless=true # This should only be uncommented to keep it easier to sync with upstream/other forks. # That is, if there is no other active fork/upstream, NEVER change this. disableCheckstyle=true From 9f64e91715b7d5b4f789a093a6e6767c3439ce5a Mon Sep 17 00:00:00 2001 From: luomolhx <32254980+luomolhx@users.noreply.github.com> Date: Wed, 13 Dec 2023 19:55:23 +0800 Subject: [PATCH 07/12] spotless off --- gradle.properties | 2 +- gradle/wrapper/gradle-wrapper.properties | 2 +- .../common/loader/RecipeLoader.java | 165 ++++++++---------- 3 files changed, 72 insertions(+), 97 deletions(-) diff --git a/gradle.properties b/gradle.properties index be6388f..44b1ded 100644 --- a/gradle.properties +++ b/gradle.properties @@ -128,7 +128,7 @@ curseForgeRelations = # Optional parameter to prevent the source code from being published # noPublishedSources = # Uncomment this to disable spotless checks -# disableSpotless=true + disableSpotless=true # This should only be uncommented to keep it easier to sync with upstream/other forks. # That is, if there is no other active fork/upstream, NEVER change this. disableCheckstyle=true diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 37aef8d..3499ded 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/src/main/java/com/silvermoon/boxplusplus/common/loader/RecipeLoader.java b/src/main/java/com/silvermoon/boxplusplus/common/loader/RecipeLoader.java index 7fa4dc9..3ef4b01 100644 --- a/src/main/java/com/silvermoon/boxplusplus/common/loader/RecipeLoader.java +++ b/src/main/java/com/silvermoon/boxplusplus/common/loader/RecipeLoader.java @@ -34,8 +34,7 @@ public void addBoxRecipe() { .metadata(RESEARCH_ITEM, GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 1, 13532)) .metadata(RESEARCH_TIME, 64000) .itemOutputs(TileEntitiesLoader.Box.getStackForm(1)) - .itemInputs( - new ItemStack(BlockRegister.BoxRing, 1, 0), + .itemInputs(new ItemStack(BlockRegister.BoxRing, 1, 0), GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 4, 59), GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 8, 58), GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 16, 57), @@ -50,8 +49,7 @@ public void addBoxRecipe() { ItemList.Tool_DataOrb.get(16), GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiPart", 1, 360), ItemList.Casing_Pipe_Titanium.get(64)) - .fluidInputs( - FluidRegistry.getFluidStack("molten.titanium", 16416), + .fluidInputs(FluidRegistry.getFluidStack("molten.titanium", 16416), FluidRegistry.getFluidStack("lubricant", 16000), FluidRegistry.getFluidStack("ic2uumatter", 4000)) .eut(TierEU.RECIPE_LuV) @@ -62,8 +60,7 @@ public void addBoxRecipe() { public void addMachineBlockRecipe() { GT_Values.RA.stdBuilder() .itemOutputs(new ItemStack(BlockRegister.SpaceExtend, 32, 0)) - .itemInputs( - ItemList.Casing_StableTitanium.get(64), + .itemInputs(ItemList.Casing_StableTitanium.get(64), GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 2, 32), ItemList.Electric_Motor_LuV.get(16), ItemList.Electric_Piston_LuV.get(16), @@ -75,15 +72,13 @@ public void addMachineBlockRecipe() { .metadata(RESEARCH_ITEM, new ItemStack(BlockRegister.SpaceExtend)) .metadata(RESEARCH_TIME, 24000) .itemOutputs(new ItemStack(BlockRegister.SpaceCompress, 16, 0)) - .itemInputs( - ItemList.Casing_StableTitanium.get(64), + .itemInputs(ItemList.Casing_StableTitanium.get(64), ItemList.Casing_StableTitanium.get(64), ItemList.Super_Tank_LV.get(1), ItemList.Super_Chest_LV.get(1), GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 4, 33), GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "tile.TitaniumPlatedReinforcedStone", 64)) - .fluidInputs( - FluidRegistry.getFluidStack("ic2coolant", 10000), + .fluidInputs(FluidRegistry.getFluidStack("ic2coolant", 10000), FluidRegistry.getFluidStack("molten.indalloy140", 1440)) .eut(TierEU.RECIPE_LuV) .duration(1600) @@ -92,8 +87,7 @@ public void addMachineBlockRecipe() { .metadata(RESEARCH_ITEM, new ItemStack(BlockRegister.SpaceCompress)) .metadata(RESEARCH_TIME, 48000) .itemOutputs(new ItemStack(BlockRegister.SpaceConstraint, 2, 0)) - .itemInputs( - ItemList.Casing_StableTitanium.get(64), + .itemInputs(ItemList.Casing_StableTitanium.get(64), ItemList.Casing_StableTitanium.get(64), ItemList.Casing_StableTitanium.get(64), ItemList.Casing_StableTitanium.get(64), @@ -101,14 +95,12 @@ public void addMachineBlockRecipe() { GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 16, 34), ItemList.Quantum_Tank_LV.get(1), ItemList.Quantum_Chest_LV.get(1)) - .fluidInputs( - FluidRegistry.getFluidStack("supercoolant", 100000), + .fluidInputs(FluidRegistry.getFluidStack("supercoolant", 100000), FluidRegistry.getFluidStack("molten.indalloy140", 14400)) .eut(TierEU.RECIPE_UV) .duration(6400) .addTo(AssemblyLine); - TT_recipeAdder.addResearchableAssemblylineRecipe( - new ItemStack(BlockRegister.SpaceConstraint), + TT_recipeAdder.addResearchableAssemblylineRecipe(new ItemStack(BlockRegister.SpaceConstraint), 480000, 128, 2000000, @@ -131,8 +123,7 @@ public void addMachineBlockRecipe() { public void addRingRecipe() { GT_Values.RA.stdBuilder() .itemOutputs(new ItemStack(BlockRegister.BoxRing, 1, 0)) - .itemInputs( - GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Titanium, 64), + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Titanium, 64), GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Titanium, 64), GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.Titanium, 64), GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.Titanium, 64), @@ -146,25 +137,22 @@ public void addRingRecipe() { .metadata(RESEARCH_ITEM, new ItemStack(BlockRegister.BoxRing)) .metadata(RESEARCH_TIME, 48000) .itemOutputs(new ItemStack(BlockRegister.BoxRing2, 1, 0)) - .itemInputs( - GT_OreDictUnificator.get("ringLaurenium", 64), + .itemInputs(GT_OreDictUnificator.get("ringLaurenium", 64), GT_OreDictUnificator.get("ringLaurenium", 64), GT_OreDictUnificator.get("ringLaurenium", 64), GT_OreDictUnificator.get("ringLaurenium", 64), GT_OreDictUnificator.get("blockAdvancedNitinol", 16), -// GT_ModHandler.getModItem(GTPlusPlus.ID, "particleIon", 64, 21), -// GT_ModHandler.getModItem(GTPlusPlus.ID, "particleIon", 64, 21), + // GT_ModHandler.getModItem(GTPlusPlus.ID, "particleIon", 64, 21), + // GT_ModHandler.getModItem(GTPlusPlus.ID, "particleIon", 64, 21), GT_ModHandler.getModItem(UniversalSingularities.ID, "universal.general.singularity", 64, 12), ItemList.Field_Generator_UV.get(4), ItemList.ZPM_Coil.get(48)) - .fluidInputs( - FluidRegistry.getFluidStack("plasma.titanium", 16000), + .fluidInputs(FluidRegistry.getFluidStack("plasma.titanium", 16000), FluidRegistry.getFluidStack("molten.advancednitinol", 14400)) .eut(TierEU.RECIPE_UV) .duration(60000) .addTo(AssemblyLine); - TT_recipeAdder.addResearchableAssemblylineRecipe( - new ItemStack(BlockRegister.BoxRing2), + TT_recipeAdder.addResearchableAssemblylineRecipe(new ItemStack(BlockRegister.BoxRing2), 48000000, 10240, 8000000, @@ -196,21 +184,18 @@ public void addRingRecipe() { public void addModuleRecipe() { GT_Values.RA.stdBuilder() .itemOutputs(new ItemStack(BlockRegister.BoxModule, 1, 0)) - .itemInputs( - new ItemStack(BlockRegister.BoxRing, 1), + .itemInputs(new ItemStack(BlockRegister.BoxRing, 1), ItemList.Machine_Multi_LargeChemicalReactor.get(64), GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 811), GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.Titanium, 16)) - .fluidInputs( - FluidRegistry.getFluidStack("glue", 8000), + .fluidInputs(FluidRegistry.getFluidStack("glue", 8000), FluidRegistry.getFluidStack("tetrafluoroethylene", 128000)) .eut(TierEU.RECIPE_LuV) .duration(1200) .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemOutputs(new ItemStack(BlockRegister.BoxModule, 1, 1)) - .itemInputs( - new ItemStack(BlockRegister.BoxRing, 1), + .itemInputs(new ItemStack(BlockRegister.BoxRing, 1), GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 876), GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 14101), GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 64, 43), @@ -221,12 +206,10 @@ public void addModuleRecipe() { .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemOutputs(new ItemStack(BlockRegister.BoxModule, 1, 2)) - .itemInputs( - new ItemStack(BlockRegister.BoxRing, 1), + .itemInputs(new ItemStack(BlockRegister.BoxRing, 1), ItemList.OilCracker.get(64), ItemList.Distillation_Tower.get(64)) - .fluidInputs( - FluidRegistry.getFluidStack("glue", 32000), + .fluidInputs(FluidRegistry.getFluidStack("glue", 32000), FluidRegistry.getFluidStack("highoctanegasoline", 128000)) .specialValue(5) .eut(TierEU.RECIPE_LuV) @@ -234,8 +217,7 @@ public void addModuleRecipe() { .addTo(GTPPRecipeMaps.chemicalPlantRecipes); GT_Values.RA.stdBuilder() .itemOutputs(new ItemStack(BlockRegister.BoxModule, 1, 3)) - .itemInputs( - new ItemStack(BlockRegister.BoxRing, 1), + .itemInputs(new ItemStack(BlockRegister.BoxRing, 1), ItemList.Machine_Multi_Furnace.get(64), GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 849), GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 862), @@ -252,8 +234,7 @@ public void addModuleRecipe() { .metadata(RESEARCH_ITEM, GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 1, 860)) .metadata(RESEARCH_TIME, 12000) .itemOutputs(new ItemStack(BlockRegister.BoxModule, 1, 4)) - .itemInputs( - new ItemStack(BlockRegister.BoxRing2, 2), + .itemInputs(new ItemStack(BlockRegister.BoxRing2, 2), GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 860), GT_ModHandler.getModItem(GregTech.ID, "gt.metaitem.01", 64, 32764), GT_ModHandler.getModItem(OpenComputers.ID, "item", 9, 103), @@ -269,8 +250,7 @@ public void addModuleRecipe() { .metadata(RESEARCH_ITEM, GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 1, 31077)) .metadata(RESEARCH_TIME, 12000) .itemOutputs(new ItemStack(BlockRegister.BoxModule, 1, 5)) - .itemInputs( - new ItemStack(BlockRegister.BoxRing2, 2), + .itemInputs(new ItemStack(BlockRegister.BoxRing2, 2), GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 31077), GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 31065), GT_ModHandler.getModItem(Avaritia.ID, "Neutronium_Compressor", 4), @@ -279,8 +259,7 @@ public void addModuleRecipe() { GT_ModHandler.getModItem(GTPlusPlus.ID, "dummyResearch", 1), GT_ModHandler.getModItem(GregTech.ID, "gt.blockcasings9", 4, 1), GT_ModHandler.getModItem(Chisel.ID, "netherStarChisel", 1)) - .fluidInputs( - FluidRegistry.getFluidStack("refinedglue", 8000), + .fluidInputs(FluidRegistry.getFluidStack("refinedglue", 8000), FluidRegistry.getFluidStack("ic2pahoehoelava", 128000), FluidRegistry.getFluidStack("grade4purifiedwater", 128000)) .eut(TierEU.RECIPE_UV) @@ -291,8 +270,7 @@ public void addModuleRecipe() { .metadata(RESEARCH_TIME, 12000) .itemOutputs(new ItemStack(BlockRegister.BoxModule, 1, 6)) - .itemInputs( - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 792), + .itemInputs(GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 792), GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 992), GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 859), GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 797), @@ -314,8 +292,7 @@ public void addModuleRecipe() { .metadata(RESEARCH_TIME, 12000) .itemOutputs(new ItemStack(BlockRegister.BoxModule, 1, 7)) - .itemInputs( - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 850), + .itemInputs(GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 850), GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 796), GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 790), GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 840), @@ -327,14 +304,16 @@ public void addModuleRecipe() { GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 10500), GT_OreDictUnificator.get("dustCooledMonaziteRareEarthConcentrate", 64), new ItemStack(BlockRegister.BoxRing2, 2)) - .fluidInputs( - FluidRegistry.getFluidStack("refinedglue", 8000), + .fluidInputs(FluidRegistry.getFluidStack("refinedglue", 8000), FluidRegistry.getFluidStack("grade4purifiedwater", 128000)) .eut(TierEU.RECIPE_UV) .duration(1200) .addTo(AssemblyLine); - TT_recipeAdder.addResearchableAssemblylineRecipe( - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 1, 12730), + TT_recipeAdder.addResearchableAssemblylineRecipe(GT_ModHandler.getModItem( + GregTech.ID, + "gt.blockmachines", + 1, + 12730), 25600, 64, 8000000, @@ -351,8 +330,11 @@ public void addModuleRecipe() { new ItemStack(BlockRegister.BoxModule, 1, 8), 2000, (int) TierEU.RECIPE_UEV); - TT_recipeAdder.addResearchableAssemblylineRecipe( - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 1, 17001), + TT_recipeAdder.addResearchableAssemblylineRecipe(GT_ModHandler.getModItem( + GregTech.ID, + "gt.blockmachines", + 1, + 17001), 102400, 256, 8000000, @@ -372,8 +354,11 @@ public void addModuleRecipe() { new ItemStack(BlockRegister.BoxModule, 1, 9), 2000, (int) TierEU.RECIPE_UEV); - TT_recipeAdder.addResearchableAssemblylineRecipe( - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 1, 31150), + TT_recipeAdder.addResearchableAssemblylineRecipe(GT_ModHandler.getModItem( + GregTech.ID, + "gt.blockmachines", + 1, + 31150), 51200, 128, 8000000, @@ -390,8 +375,11 @@ public void addModuleRecipe() { new ItemStack(BlockRegister.BoxModule, 1, 10), 2000, (int) TierEU.RECIPE_UEV); - TT_recipeAdder.addResearchableAssemblylineRecipe( - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 1, 15472), + TT_recipeAdder.addResearchableAssemblylineRecipe(GT_ModHandler.getModItem( + GregTech.ID, + "gt.blockmachines", + 1, + 15472), 100000, 100, 10000000, @@ -410,8 +398,11 @@ public void addModuleRecipe() { new ItemStack(BlockRegister.BoxModule, 1, 12), 2000, (int) TierEU.RECIPE_UEV); - TT_recipeAdder.addResearchableAssemblylineRecipe( - GT_ModHandler.getModItem(AppliedEnergistics2.ID, "tile.BlockAdvancedCraftingUnit", 1, 3), + TT_recipeAdder.addResearchableAssemblylineRecipe(GT_ModHandler.getModItem( + AppliedEnergistics2.ID, + "tile.BlockAdvancedCraftingUnit", + 1, + 3), (int) TierEU.RECIPE_UEV, 512, (int) TierEU.RECIPE_UIV, @@ -438,15 +429,13 @@ public void addUpgradeModuleRecipe() { .metadata(RESEARCH_TIME, 12000) .itemOutputs(new ItemStack(BlockRegister.BoxModuleUpgrad, 1, 0)) - .itemInputs( - new ItemStack(BlockRegister.BoxRing, 8), + .itemInputs(new ItemStack(BlockRegister.BoxRing, 8), GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 31072), GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 31050), GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 31051), GT_ModHandler.getModItem(GTPlusPlus.ID, "miscutils.blockcasings", 48, 8), GT_ModHandler.getModItem(GTPlusPlus.ID, "gtplusplus.blockspecialcasings.1", 56, 13)) - .fluidInputs( - FluidRegistry.getFluidStack("refinedglue", 8000), + .fluidInputs(FluidRegistry.getFluidStack("refinedglue", 8000), FluidRegistry.getFluidStack("ic2uumatter", 128000)) .eut(TierEU.RECIPE_UV) .duration(1200) @@ -456,8 +445,7 @@ public void addUpgradeModuleRecipe() { .metadata(RESEARCH_TIME, 12000) .itemOutputs(new ItemStack(BlockRegister.BoxModuleUpgrad, 1, 1)) - .itemInputs( - new ItemStack(BlockRegister.BoxRing, 8), + .itemInputs(new ItemStack(BlockRegister.BoxRing, 8), GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 32018), GT_ModHandler.getModItem(GoodGenerator.ID, "preciseUnitCasing", 64, 2), GT_ModHandler.getModItem(Avaritia.ID, "Dire_Crafting", 64), @@ -465,8 +453,7 @@ public void addUpgradeModuleRecipe() { GT_ModHandler.getModItem(GoodGenerator.ID, "huiCircuit", 32, 2), GT_ModHandler.getModItem(GoodGenerator.ID, "huiCircuit", 16, 3), GT_ModHandler.getModItem(GoodGenerator.ID, "huiCircuit", 8, 4)) - .fluidInputs( - FluidRegistry.getFluidStack("refinedglue", 8000), + .fluidInputs(FluidRegistry.getFluidStack("refinedglue", 8000), FluidRegistry.getFluidStack("naquadah based liquid fuel mkii (depleted)", 128000)) .eut(TierEU.RECIPE_UHV) .duration(1200) @@ -476,14 +463,12 @@ public void addUpgradeModuleRecipe() { .metadata(RESEARCH_TIME, 12000) .itemOutputs(new ItemStack(BlockRegister.BoxModuleUpgrad, 1, 2)) - .itemInputs( - new ItemStack(BlockRegister.BoxRing, 8), + .itemInputs(new ItemStack(BlockRegister.BoxRing, 8), GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 998), GT_ModHandler.getModItem(GTPlusPlus.ID, "gtplusplus.blockspecialcasings.2", 64, 3), GT_ModHandler.getModItem(GTPlusPlus.ID, "gtplusplus.blocktieredcasings.1", 16, 9), GT_ModHandler.getModItem(GalacticraftCore.ID, "item.buggy", 1)) - .fluidInputs( - FluidRegistry.getFluidStack("refinedglue", 8000), + .fluidInputs(FluidRegistry.getFluidStack("refinedglue", 8000), FluidRegistry.getFluidStack("fluid.rocketfuelmixa", 128000)) .eut(TierEU.RECIPE_UV) .duration(1200) @@ -493,20 +478,17 @@ public void addUpgradeModuleRecipe() { .metadata(RESEARCH_TIME, 12000) .itemOutputs(new ItemStack(BlockRegister.BoxModuleUpgrad, 1, 3)) - .itemInputs( - new ItemStack(BlockRegister.BoxRing, 8), + .itemInputs(new ItemStack(BlockRegister.BoxRing, 8), GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 828), GT_ModHandler.getModItem(GTPlusPlus.ID, "gtplusplus.blockcasings.2", 32, 9), GT_ModHandler.getModItem(GTPlusPlus.ID, "MU-metaitem.01", 4, 32105), GT_ModHandler.getModItem(GTPlusPlus.ID, "itemDustRadioactiveMineralMix", 1)) - .fluidInputs( - FluidRegistry.getFluidStack("refinedglue", 8000), + .fluidInputs(FluidRegistry.getFluidStack("refinedglue", 8000), FluidRegistry.getFluidStack("plasma.hydrogen", 12800)) .eut(TierEU.RECIPE_UV) .duration(1200) .addTo(AssemblyLine); - TT_recipeAdder.addResearchableAssemblylineRecipe( - new ItemStack(BlockRegister.BoxModule, 1, 4), + TT_recipeAdder.addResearchableAssemblylineRecipe(new ItemStack(BlockRegister.BoxModule, 1, 4), 256000, 512, 8000000, @@ -530,8 +512,7 @@ public void addUpgradeModuleRecipe() { new ItemStack(BlockRegister.BoxModuleUpgrad, 1, 4), 2000, (int) TierEU.RECIPE_UIV); - TT_recipeAdder.addResearchableAssemblylineRecipe( - new ItemStack(BlockRegister.BoxModule, 1, 5), + TT_recipeAdder.addResearchableAssemblylineRecipe(new ItemStack(BlockRegister.BoxModule, 1, 5), 128000, 256, 8000000, @@ -551,8 +532,7 @@ public void addUpgradeModuleRecipe() { new ItemStack(BlockRegister.BoxModuleUpgrad, 1, 5), 2000, (int) TierEU.RECIPE_UEV); - TT_recipeAdder.addResearchableAssemblylineRecipe( - new ItemStack(BlockRegister.BoxModule, 1, 6), + TT_recipeAdder.addResearchableAssemblylineRecipe(new ItemStack(BlockRegister.BoxModule, 1, 6), 64000, 128, 8000000, @@ -569,8 +549,7 @@ public void addUpgradeModuleRecipe() { new ItemStack(BlockRegister.BoxModuleUpgrad, 1, 6), 2000, (int) TierEU.RECIPE_UEV); - TT_recipeAdder.addResearchableAssemblylineRecipe( - new ItemStack(BlockRegister.BoxModule, 1, 7), + TT_recipeAdder.addResearchableAssemblylineRecipe(new ItemStack(BlockRegister.BoxModule, 1, 7), 10240, 16, 2000000, @@ -588,8 +567,7 @@ public void addUpgradeModuleRecipe() { new ItemStack(BlockRegister.BoxModuleUpgrad, 1, 7), 2000, (int) TierEU.RECIPE_UHV); - TT_recipeAdder.addResearchableAssemblylineRecipe( - new ItemStack(BlockRegister.BoxModule, 1, 8), + TT_recipeAdder.addResearchableAssemblylineRecipe(new ItemStack(BlockRegister.BoxModule, 1, 8), 81920000, 32768, (int) TierEU.RECIPE_UMV, @@ -612,8 +590,7 @@ public void addUpgradeModuleRecipe() { new ItemStack(BlockRegister.BoxModuleUpgrad, 1, 8), 2000, (int) TierEU.RECIPE_UXV); - TT_recipeAdder.addResearchableAssemblylineRecipe( - new ItemStack(BlockRegister.BoxModule, 1, 9), + TT_recipeAdder.addResearchableAssemblylineRecipe(new ItemStack(BlockRegister.BoxModule, 1, 9), 10240000, 6144, (int) TierEU.RECIPE_UIV, @@ -636,8 +613,7 @@ public void addUpgradeModuleRecipe() { new ItemStack(BlockRegister.BoxModuleUpgrad, 1, 9), 2000, (int) TierEU.RECIPE_UIV); - TT_recipeAdder.addResearchableAssemblylineRecipe( - new ItemStack(BlockRegister.BoxModule, 1, 10), + TT_recipeAdder.addResearchableAssemblylineRecipe(new ItemStack(BlockRegister.BoxModule, 1, 10), 20480000, 10240, (int) TierEU.RECIPE_UMV, @@ -661,8 +637,7 @@ public void addUpgradeModuleRecipe() { 2000, (int) TierEU.RECIPE_UXV); CraftingManager.getInstance() - .addRecipe( - new ItemStack(BlockRegister.BoxModuleUpgrad, 1, 12), + .addRecipe(new ItemStack(BlockRegister.BoxModuleUpgrad, 1, 12), "ABA", "FCF", "DED", @@ -678,8 +653,7 @@ public void addUpgradeModuleRecipe() { new ItemStack(BlockRegister.BoxModule, 1, 10), 'D', GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.HeavyDutyRocketEngineTier4", 1)); - TT_recipeAdder.addResearchableAssemblylineRecipe( - new ItemStack(BlockRegister.BoxModule, 1, 13), + TT_recipeAdder.addResearchableAssemblylineRecipe(new ItemStack(BlockRegister.BoxModule, 1, 13), (int) TierEU.UXV, 32767, (int) TierEU.UXV, @@ -726,7 +700,8 @@ public void addUpgradeModuleRecipe() { * GT_OreDictUnificator.get("ingotSilver", 1) * }, * new FluidStack[]{ - * FluidRegistry.getFluidStack("molten.magnetohydrodynamicallyconstrainedstarmatter", 2000000000), + * FluidRegistry.getFluidStack( + * "molten.magnetohydrodynamicallyconstrainedstarmatter", 2000000000), * FluidRegistry.getFluidStack("molten.shirabon", 2000000000), * FluidRegistry.getFluidStack("molten.titanium", 2000000000), * FluidRegistry.getFluidStack("molten.silver", 2000000000)}, From f78dfc1d227e86cadf35e2b5dfa7704e58fb606e Mon Sep 17 00:00:00 2001 From: luomolhx <2932965369@qq.com> Date: Sat, 16 Dec 2023 11:26:55 +0800 Subject: [PATCH 08/12] test format --- gradle.properties | 2 +- .../silvermoon/boxplusplus/api/IBoxable.java | 6 +- .../boxplusplus/api/boxRegister.java | 2 +- .../silvermoon/boxplusplus/boxplusplus.java | 3 +- .../boxplusplus/client/BoxNEIHandler.java | 52 +- .../boxplusplus/client/ClientProxy.java | 6 +- .../boxplusplus/common/BoxModule.java | 45 +- .../common/block/BlockBoxModuleCore.java | 5 +- .../common/items/IB_BoxModule.java | 11 +- .../boxplusplus/common/items/tierDrone.java | 6 +- .../common/loader/BlockRegister.java | 30 +- .../common/loader/RecipeLoader.java | 15 +- .../common/loader/TileEntitiesLoader.java | 6 +- .../common/render/RenderBoxRing.java | 5 +- .../common/render/RenderDrone.java | 5 +- .../common/tileentities/GTMachineBox.java | 3191 ++++++++--------- .../GTMachineDroneMaintainingCentre.java | 31 +- .../GTTileEntityDroneMaintananceModule.java | 19 +- .../boxplusplus/util/BoxRecipe.java | 21 +- .../boxplusplus/util/BoxRoutings.java | 221 +- .../boxplusplus/util/FluidContainer.java | 8 +- .../boxplusplus/util/ItemContainer.java | 14 +- .../util/ResultModuleRequirement.java | 5 +- .../com/silvermoon/boxplusplus/util/Util.java | 25 +- 24 files changed, 1812 insertions(+), 1922 deletions(-) diff --git a/gradle.properties b/gradle.properties index 44b1ded..be6388f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -128,7 +128,7 @@ curseForgeRelations = # Optional parameter to prevent the source code from being published # noPublishedSources = # Uncomment this to disable spotless checks - disableSpotless=true +# disableSpotless=true # This should only be uncommented to keep it easier to sync with upstream/other forks. # That is, if there is no other active fork/upstream, NEVER change this. disableCheckstyle=true diff --git a/src/main/java/com/silvermoon/boxplusplus/api/IBoxable.java b/src/main/java/com/silvermoon/boxplusplus/api/IBoxable.java index 7a81232..cfcf8de 100644 --- a/src/main/java/com/silvermoon/boxplusplus/api/IBoxable.java +++ b/src/main/java/com/silvermoon/boxplusplus/api/IBoxable.java @@ -4,9 +4,9 @@ import gregtech.api.recipe.RecipeMap; /** - * Implements this on GT_MetaTileEntity_MultiBlockBase to allow your machine encapsulating in Box System. - * If you don't have a standard getRecipeMap(), override getRealRecipeMap(). - * Do remember to call boxRegister.registerMachineToBox() on postInit! + * Implements this on GT_MetaTileEntity_MultiBlockBase to allow your machine encapsulating in Box System. If you don't + * have a standard getRecipeMap(), override getRealRecipeMap(). Do remember to call boxRegister.registerMachineToBox() + * on postInit! *

* 为GT_MetaTileEntity_MultiBlockBase实现此接口,将允许Box封装你的机器。如果你的机器有多种模式,重写getRealRecipeMap()来返回你期望封装的那个。 * 记得在postInit调用一次boxRegister.registerMachineToBox()! diff --git a/src/main/java/com/silvermoon/boxplusplus/api/boxRegister.java b/src/main/java/com/silvermoon/boxplusplus/api/boxRegister.java index 8a16af8..6b94251 100644 --- a/src/main/java/com/silvermoon/boxplusplus/api/boxRegister.java +++ b/src/main/java/com/silvermoon/boxplusplus/api/boxRegister.java @@ -18,7 +18,7 @@ public class boxRegister { * Use this to register your boxable machine. **Should be called on CommonProxy.postInit().** *

* 在CommonProxy.postInit()阶段调用本方法。确保传入的GT_MetaTileEntity_MultiBlockBase已经实现了IBoxable。 - * + * * @param machineList You can put multi-GTMultiMachines in this parameter. *

* 可以接受多个参数 diff --git a/src/main/java/com/silvermoon/boxplusplus/boxplusplus.java b/src/main/java/com/silvermoon/boxplusplus/boxplusplus.java index f548d84..684736f 100644 --- a/src/main/java/com/silvermoon/boxplusplus/boxplusplus.java +++ b/src/main/java/com/silvermoon/boxplusplus/boxplusplus.java @@ -20,7 +20,8 @@ modid = Tags.MODID, version = Tags.VERSION, name = Tags.MODNAME, - dependencies = "required-after:IC2;" + "required-after:structurelib;" + dependencies = "required-after:IC2;" + + "required-after:structurelib;" + "required-after:modularui;" + "after:GalacticraftCore;" + "required-after:bartworks;" diff --git a/src/main/java/com/silvermoon/boxplusplus/client/BoxNEIHandler.java b/src/main/java/com/silvermoon/boxplusplus/client/BoxNEIHandler.java index 5b198b6..02b69af 100644 --- a/src/main/java/com/silvermoon/boxplusplus/client/BoxNEIHandler.java +++ b/src/main/java/com/silvermoon/boxplusplus/client/BoxNEIHandler.java @@ -30,9 +30,8 @@ public class BoxNEIHandler { @SubscribeEvent public void onDrawScreen(GuiScreenEvent.DrawScreenEvent.Post event) { - if (event.gui instanceof GuiRecipe gui && gui.firstGui instanceof ModularGui mui - && mui.getContext() - .isWindowOpen(10)) { + if (event.gui instanceof GuiRecipe gui && gui.firstGui instanceof ModularGui mui && mui.getContext() + .isWindowOpen(10)) { EntityPlayer player = ((ModularGui) gui.firstGui).getContext() .getPlayer(); GTMachineBox box = Util.boxMap.get(player); @@ -47,36 +46,34 @@ public void onDrawScreen(GuiScreenEvent.DrawScreenEvent.Post event) { getRecipesPerPage = GuiRecipe.class.getDeclaredMethod("getRecipesPerPage"); getRecipesPerPage.setAccessible(true); recipesPerPage = (int) getRecipesPerPage.invoke(gui); - } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException ignored) {} + } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException ignored) { + } buttons = new GuiButton[recipesPerPage]; - int OVERLAY_BUTTON_ID_START = ObfuscationReflectionHelper - .getPrivateValue(GuiRecipe.class, gui, "OVERLAY_BUTTON_ID_START"); + int OVERLAY_BUTTON_ID_START = ObfuscationReflectionHelper.getPrivateValue( + GuiRecipe.class, + gui, + "OVERLAY_BUTTON_ID_START"); int guiTop = ObfuscationReflectionHelper.getPrivateValue(GuiContainer.class, gui, "field_147009_r"); int buttonWidth = ObfuscationReflectionHelper.getPrivateValue(GuiRecipe.class, gui, "buttonWidth"); int buttonHeight = ObfuscationReflectionHelper.getPrivateValue(GuiRecipe.class, gui, "buttonHeight"); HandlerInfo handlerInfo = ObfuscationReflectionHelper.getPrivateValue(GuiRecipe.class, gui, "handlerInfo"); for (int i = 0; i < recipesPerPage; i++) { - buttons[i] = new GuiNEIButton( - OVERLAY_BUTTON_ID_START + i, + buttons[i] = new GuiNEIButton(OVERLAY_BUTTON_ID_START + i, (gui.width / 2) + 65, guiTop + 16 + (handlerInfo.getHeight() * (i + 1)) - 2, buttonWidth, buttonHeight, "B"); } - int counts = Math.min( - gui.getHandler() - .numRecipes() - (gui.page * recipesPerPage), - recipesPerPage); + int counts = Math.min(gui.getHandler() + .numRecipes() - (gui.page * recipesPerPage), recipesPerPage); for (int i = 0; i < buttons.length; i++) { if (i >= counts) { buttons[i].visible = false; } else { - buttons[i].visible = RecipeInfo.hasOverlayHandler( - GuiPatternTermEx.class, + buttons[i].visible = RecipeInfo.hasOverlayHandler(GuiPatternTermEx.class, gui.getHandler() - .getOverlayIdentifier()) - && gui.getHandler() instanceof GT_NEI_DefaultHandler; + .getOverlayIdentifier()) && gui.getHandler() instanceof GT_NEI_DefaultHandler; } } Collections.addAll(buttonList, buttons); @@ -85,22 +82,27 @@ public void onDrawScreen(GuiScreenEvent.DrawScreenEvent.Post event) { @SubscribeEvent public void onActionPerformedEventPre(GuiScreenEvent.ActionPerformedEvent.Pre event) { - if (event.gui instanceof GuiRecipe gui && gui.firstGui instanceof ModularGui mui - && mui.getContext() - .isWindowOpen(10)) { + if (event.gui instanceof GuiRecipe gui && gui.firstGui instanceof ModularGui mui && mui.getContext() + .isWindowOpen(10)) { EntityPlayer player = ((ModularGui) gui.firstGui).getContext() .getPlayer(); - List overlayButtons = new ArrayList<>( - Arrays.asList(ObfuscationReflectionHelper.getPrivateValue(GuiRecipe.class, gui, "overlayButtons"))); - int OVERLAY_BUTTON_ID_START = ObfuscationReflectionHelper - .getPrivateValue(GuiRecipe.class, gui, "OVERLAY_BUTTON_ID_START"); + List overlayButtons = new ArrayList<>(Arrays.asList(ObfuscationReflectionHelper.getPrivateValue( + GuiRecipe.class, + gui, + "overlayButtons"))); + int OVERLAY_BUTTON_ID_START = ObfuscationReflectionHelper.getPrivateValue( + GuiRecipe.class, + gui, + "OVERLAY_BUTTON_ID_START"); if (event.button.id >= OVERLAY_BUTTON_ID_START && event.button.id < OVERLAY_BUTTON_ID_START + overlayButtons.size()) { IRecipeHandler handler = (IRecipeHandler) gui.currenthandlers.get(gui.recipetype); if (recipesPerPage >= 0 && handler != null) { int recipe = gui.page * recipesPerPage + event.button.id - OVERLAY_BUTTON_ID_START; - BoxRoutings - .makeRouting((GT_NEI_DefaultHandler) gui.currenthandlers.get(gui.recipetype), recipe, player); + BoxRoutings.makeRouting( + (GT_NEI_DefaultHandler) gui.currenthandlers.get(gui.recipetype), + recipe, + player); event.setCanceled(true); } } diff --git a/src/main/java/com/silvermoon/boxplusplus/client/ClientProxy.java b/src/main/java/com/silvermoon/boxplusplus/client/ClientProxy.java index 4a24aaa..3c2e9c4 100644 --- a/src/main/java/com/silvermoon/boxplusplus/client/ClientProxy.java +++ b/src/main/java/com/silvermoon/boxplusplus/client/ClientProxy.java @@ -18,10 +18,8 @@ public class ClientProxy extends CommonProxy { public void init(FMLInitializationEvent e) { super.init(e); ClientRegistry.bindTileEntitySpecialRenderer(TEBoxRing.class, new RenderBoxRing()); - ClientRegistry.bindTileEntitySpecialRenderer( - (Class) TileEntitiesLoader.DroneMaintainingCentre.getBaseMetaTileEntity() - .getClass(), - new RenderDrone()); + ClientRegistry.bindTileEntitySpecialRenderer((Class) TileEntitiesLoader.DroneMaintainingCentre.getBaseMetaTileEntity() + .getClass(), new RenderDrone()); MinecraftForge.EVENT_BUS.register(BoxNEIHandler.instance); } } diff --git a/src/main/java/com/silvermoon/boxplusplus/common/BoxModule.java b/src/main/java/com/silvermoon/boxplusplus/common/BoxModule.java index ce6d10e..120b06c 100644 --- a/src/main/java/com/silvermoon/boxplusplus/common/BoxModule.java +++ b/src/main/java/com/silvermoon/boxplusplus/common/BoxModule.java @@ -17,20 +17,17 @@ public class BoxModule { public static BoxModule AMD_Wafer_Fabrication_Plant = new BoxModule("AMD_Wafer_Fabrication_Plant", 17, 6, -2); public static BoxModule Liquid_Level_Regulator = new BoxModule("Liquid_Level_Regulator", 1, 6, -18); public static BoxModule Solid_State_Reshaper = new BoxModule("Solid_State_Reshaper", -15, 6, -2); - public static BoxModule Residential_Flush_Toilet_with_Built_in_Pump = new BoxModule( - "Residential_Flush_Toilet_with_Built_in_Pump", + public static BoxModule Residential_Flush_Toilet_with_Built_in_Pump = new BoxModule("Residential_Flush_Toilet_with_Built_in_Pump", 1, 6, 14); - public static BoxModule Extreme_Temperature_Difference_Generation_Tower = new BoxModule( - "Extreme_Temperature_Difference_Generation_Tower", + public static BoxModule Extreme_Temperature_Difference_Generation_Tower = new BoxModule("Extreme_Temperature_Difference_Generation_Tower", 23, 6, -1); public static BoxModule Superstructure_Assembly_Plant = new BoxModule("Superstructure_Assembly_Plant", 2, 6, -23); public static BoxModule Phase_Parallel_Matrix = new BoxModule("Phase_Parallel_Matrix", -21, 6, -1); - public static BoxModule Arrayed_and_Maneuverable_Hyperbeam_Receiver_Redirector = new BoxModule( - "Arrayed_and_Maneuverable_Hyperbeam_Receiver_Redirector", + public static BoxModule Arrayed_and_Maneuverable_Hyperbeam_Receiver_Redirector = new BoxModule("Arrayed_and_Maneuverable_Hyperbeam_Receiver_Redirector", 2, 7, -1); @@ -113,19 +110,19 @@ public static int[] transMachinesToModule(BoxRoutings routing) { .substring(17)) { case "industrialmixer.controller.tier.single", "multimachine.chemicalreactor" -> new int[] { 0, 0 }; case "gtplusplus.autocrafter.multi", "mxrandomlargemolecularassembler" -> new int[] { 1, 0 }; - case "multimachine.cracker", "megadistillationtower", "multimachine.adv.distillationtower", "megaoilcracker", "multimachine.distillationtower" -> new int[] { - 2, 0 }; - case "multimachine.multifurnace", "industrialthermalcentrifuge.controller.tier.single", "industrialarcfurnace.controller.tier.single", "industrialalloysmelter.controller.tier.single" -> new int[] { - 3, 0 }; + case "multimachine.cracker", "megadistillationtower", "multimachine.adv.distillationtower", "megaoilcracker", "multimachine.distillationtower" -> + new int[] { 2, 0 }; + case "multimachine.multifurnace", "industrialthermalcentrifuge.controller.tier.single", "industrialarcfurnace.controller.tier.single", "industrialalloysmelter.controller.tier.single" -> + new int[] { 3, 0 }; case "industrialmultimachine.controller.tier.single" -> new int[] { 4, 0 }; - case "industrialrockcrusher.controller.tier.single", "industrialfluidheater.controller.tier.single", "ompressor" -> new int[] { - 5, 0 }; - case "industrialcuttingmachine.controller.tier.01", "industrialmacerator.controller.tier.single", "industrialbender.controller.tier.single", "industrialextruder.controller.tier.single", "industrialwiremill.controller.tier.single", "industrialhammer.controller.tier.single" -> new int[] { - 6, 0 }; - case "industrialwashplant.controller.tier.single", "industrialsifter.controller.tier.single", "industrialcentrifuge.controller.tier.single", "industrialelectrolyzer.controller.tier.single", "digester", "basicmachine.electromagneticseparator.tier.06" -> new int[] { - 7, 0 }; - case "industrialcokeoven.controller.tier.single", "multimachine.pyro", "multimachine.vacuumfreezer", "multimachine.adv.industrialfreezer" -> new int[] { - 8, 0 }; + case "industrialrockcrusher.controller.tier.single", "industrialfluidheater.controller.tier.single", "ompressor" -> + new int[] { 5, 0 }; + case "industrialcuttingmachine.controller.tier.01", "industrialmacerator.controller.tier.single", "industrialbender.controller.tier.single", "industrialextruder.controller.tier.single", "industrialwiremill.controller.tier.single", "industrialhammer.controller.tier.single" -> + new int[] { 6, 0 }; + case "industrialwashplant.controller.tier.single", "industrialsifter.controller.tier.single", "industrialcentrifuge.controller.tier.single", "industrialelectrolyzer.controller.tier.single", "digester", "basicmachine.electromagneticseparator.tier.06" -> + new int[] { 7, 0 }; + case "industrialcokeoven.controller.tier.single", "multimachine.pyro", "multimachine.vacuumfreezer", "multimachine.adv.industrialfreezer" -> + new int[] { 8, 0 }; case "multimachine.assemblyline" -> new int[] { 9, 0 }; case "industrialsalloyamelter.controller.tier.single" -> new int[] { 10, 0 }; case "moleculartransformer.controller.tier.single", "gtpp.multimachine.replicator" -> new int[] { 0, 1 }; @@ -135,12 +132,12 @@ public static int[] transMachinesToModule(BoxRoutings routing) { case "multimachine.pcbfactory", "circuitassemblyline" -> new int[] { 4, 1 }; case "largefusioncomputer5" -> new int[] { 5, 1 }; case "dissolution_tank", "bw.biovat" -> new int[] { 7, 1 }; - case "electricimplosioncompressor", "componentassemblyline", "projectmoduleassemblert3" -> new int[] { 9, - 1 }; - case "multimachine.plasmaforge", "multimachine.transcendentplasmamixer", "multimachine.nanoforge" -> new int[] { - 8, 1 }; - case "quantumforcetransformer.controller.tier.single", "frf", "industrialmassfab.controller.tier.single" -> new int[] { - 10, 1 }; + case "electricimplosioncompressor", "componentassemblyline", "projectmoduleassemblert3" -> + new int[] { 9, 1 }; + case "multimachine.plasmaforge", "multimachine.transcendentplasmamixer", "multimachine.nanoforge" -> + new int[] { 8, 1 }; + case "quantumforcetransformer.controller.tier.single", "frf", "industrialmassfab.controller.tier.single" -> + new int[] { 10, 1 }; default -> { for (GT_MetaTileEntity_MultiBlockBase machine : customerMachineList) { if (GT_Utility.areStacksEqual(machine.getStackForm(1), routing.RoutingMachine, true)) { diff --git a/src/main/java/com/silvermoon/boxplusplus/common/block/BlockBoxModuleCore.java b/src/main/java/com/silvermoon/boxplusplus/common/block/BlockBoxModuleCore.java index 6de8a62..1e937cb 100644 --- a/src/main/java/com/silvermoon/boxplusplus/common/block/BlockBoxModuleCore.java +++ b/src/main/java/com/silvermoon/boxplusplus/common/block/BlockBoxModuleCore.java @@ -44,8 +44,9 @@ public void registerBlock() { @Override public void registerBlockIcons(IIconRegister iconRegister) { for (int i = 0; i < 15; i++) { - ModuleIcon[i] = iconRegister - .registerIcon(Tags.MODID + (!isUpdate ? ":modules/BoxModule" : ":modules/BoxModulePlus") + i); + ModuleIcon[i] = iconRegister.registerIcon(Tags.MODID + (!isUpdate + ? ":modules/BoxModule" + : ":modules/BoxModulePlus") + i); } } diff --git a/src/main/java/com/silvermoon/boxplusplus/common/items/IB_BoxModule.java b/src/main/java/com/silvermoon/boxplusplus/common/items/IB_BoxModule.java index 3ff83ef..7b0405c 100644 --- a/src/main/java/com/silvermoon/boxplusplus/common/items/IB_BoxModule.java +++ b/src/main/java/com/silvermoon/boxplusplus/common/items/IB_BoxModule.java @@ -33,13 +33,12 @@ public boolean getHasSubtypes() { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean p_77624_4_) { boolean update = ((BlockBoxModuleCore) field_150939_a).isUpdate; - list.add( - EnumChatFormatting.AQUA.toString() + EnumChatFormatting.BOLD - + i18n("tile.boxplusplus.boxUI.module.context." + (stack.getItemDamage() + 1) + (update ? "f" : "a"))); + list.add(EnumChatFormatting.AQUA.toString() + EnumChatFormatting.BOLD + i18n( + "tile.boxplusplus.boxUI.module.context." + (stack.getItemDamage() + 1) + (update ? "f" : "a"))); if (update) { - list.add( - EnumChatFormatting.GOLD + i18n("tile.boxplusplus.boxUI.module." + (stack.getItemDamage() + 1)) - + " (T2)"); + list.add(EnumChatFormatting.GOLD + + i18n("tile.boxplusplus.boxUI.module." + (stack.getItemDamage() + 1)) + + " (T2)"); } list.add(i18n("tile.boxplusplus.boxUI.module.context." + (stack.getItemDamage() + 1) + (update ? "d" : "b"))); if (customUpdatedModuleList.containsKey(stack.getItemDamage()) diff --git a/src/main/java/com/silvermoon/boxplusplus/common/items/tierDrone.java b/src/main/java/com/silvermoon/boxplusplus/common/items/tierDrone.java index 5d47e99..5a61859 100644 --- a/src/main/java/com/silvermoon/boxplusplus/common/items/tierDrone.java +++ b/src/main/java/com/silvermoon/boxplusplus/common/items/tierDrone.java @@ -63,8 +63,8 @@ public int getMetadata(int p_77647_1_) { @Override public void addInformation(ItemStack item, EntityPlayer player, List list, boolean b) { - list.add( - Util.i18n( - ("tile.boxplusplus_maintainingDrone%.desc".replaceAll("%", String.valueOf(item.getItemDamage()))))); + list.add(Util.i18n(("tile.boxplusplus_maintainingDrone%.desc".replaceAll( + "%", + String.valueOf(item.getItemDamage()))))); } } diff --git a/src/main/java/com/silvermoon/boxplusplus/common/loader/BlockRegister.java b/src/main/java/com/silvermoon/boxplusplus/common/loader/BlockRegister.java index a679898..8c48c65 100644 --- a/src/main/java/com/silvermoon/boxplusplus/common/loader/BlockRegister.java +++ b/src/main/java/com/silvermoon/boxplusplus/common/loader/BlockRegister.java @@ -8,20 +8,26 @@ public class BlockRegister { - public static BlockMachineBase SpaceExtend = new BlockMachineBase("boxplusplus_SpaceExtend", Material.iron, 0) - .setHarvest("wrench", 3); - public static BlockMachineBase SpaceConstraint = new BlockMachineBase( - "boxplusplus_SpaceConstraint", + public static BlockMachineBase SpaceExtend = new BlockMachineBase( + "boxplusplus_SpaceExtend", + Material.iron, + 0).setHarvest("wrench", 3); + public static BlockMachineBase SpaceConstraint = new BlockMachineBase("boxplusplus_SpaceConstraint", Material.iron, 2).setHarvest("wrench", 3); - public static BlockMachineBase SpaceCompress = new BlockMachineBase("boxplusplus_SpaceCompress", Material.iron, 1) - .setHarvest("wrench", 3); - public static BlockMachineBase SpaceWall = new BlockMachineBase("boxplusplus_SpaceWall", Material.iron, 3) - .setHarvest("wrench", 3); - public static BlockBoxModuleCore BoxModule = new BlockBoxModuleCore("boxplusplus_boxmodule", Material.iron, false) - .setHarvest("wrench", 5); - public static BlockBoxModuleCore BoxModuleUpgrad = new BlockBoxModuleCore( - "boxplusplus_boxmoduleplus", + public static BlockMachineBase SpaceCompress = new BlockMachineBase( + "boxplusplus_SpaceCompress", + Material.iron, + 1).setHarvest("wrench", 3); + public static BlockMachineBase SpaceWall = new BlockMachineBase( + "boxplusplus_SpaceWall", + Material.iron, + 3).setHarvest("wrench", 3); + public static BlockBoxModuleCore BoxModule = new BlockBoxModuleCore( + "boxplusplus_boxmodule", + Material.iron, + false).setHarvest("wrench", 5); + public static BlockBoxModuleCore BoxModuleUpgrad = new BlockBoxModuleCore("boxplusplus_boxmoduleplus", Material.iron, true).setHarvest("wrench", 5); public static BlockBoxRing BoxRing = new BlockBoxRing(1); diff --git a/src/main/java/com/silvermoon/boxplusplus/common/loader/RecipeLoader.java b/src/main/java/com/silvermoon/boxplusplus/common/loader/RecipeLoader.java index 3ef4b01..f1f4294 100644 --- a/src/main/java/com/silvermoon/boxplusplus/common/loader/RecipeLoader.java +++ b/src/main/java/com/silvermoon/boxplusplus/common/loader/RecipeLoader.java @@ -309,8 +309,7 @@ public void addModuleRecipe() { .eut(TierEU.RECIPE_UV) .duration(1200) .addTo(AssemblyLine); - TT_recipeAdder.addResearchableAssemblylineRecipe(GT_ModHandler.getModItem( - GregTech.ID, + TT_recipeAdder.addResearchableAssemblylineRecipe(GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 1, 12730), @@ -330,8 +329,7 @@ public void addModuleRecipe() { new ItemStack(BlockRegister.BoxModule, 1, 8), 2000, (int) TierEU.RECIPE_UEV); - TT_recipeAdder.addResearchableAssemblylineRecipe(GT_ModHandler.getModItem( - GregTech.ID, + TT_recipeAdder.addResearchableAssemblylineRecipe(GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 1, 17001), @@ -354,8 +352,7 @@ public void addModuleRecipe() { new ItemStack(BlockRegister.BoxModule, 1, 9), 2000, (int) TierEU.RECIPE_UEV); - TT_recipeAdder.addResearchableAssemblylineRecipe(GT_ModHandler.getModItem( - GregTech.ID, + TT_recipeAdder.addResearchableAssemblylineRecipe(GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 1, 31150), @@ -375,8 +372,7 @@ public void addModuleRecipe() { new ItemStack(BlockRegister.BoxModule, 1, 10), 2000, (int) TierEU.RECIPE_UEV); - TT_recipeAdder.addResearchableAssemblylineRecipe(GT_ModHandler.getModItem( - GregTech.ID, + TT_recipeAdder.addResearchableAssemblylineRecipe(GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 1, 15472), @@ -398,8 +394,7 @@ public void addModuleRecipe() { new ItemStack(BlockRegister.BoxModule, 1, 12), 2000, (int) TierEU.RECIPE_UEV); - TT_recipeAdder.addResearchableAssemblylineRecipe(GT_ModHandler.getModItem( - AppliedEnergistics2.ID, + TT_recipeAdder.addResearchableAssemblylineRecipe(GT_ModHandler.getModItem(AppliedEnergistics2.ID, "tile.BlockAdvancedCraftingUnit", 1, 3), diff --git a/src/main/java/com/silvermoon/boxplusplus/common/loader/TileEntitiesLoader.java b/src/main/java/com/silvermoon/boxplusplus/common/loader/TileEntitiesLoader.java index 7cf86fa..28afe4a 100644 --- a/src/main/java/com/silvermoon/boxplusplus/common/loader/TileEntitiesLoader.java +++ b/src/main/java/com/silvermoon/boxplusplus/common/loader/TileEntitiesLoader.java @@ -17,12 +17,10 @@ public class TileEntitiesLoader { public static void register() { Box = new GTMachineBox(17001, "multimachine_Box", i18n("tile.boxplusplus.box")); - DroneMaintainingCentre = new GTMachineDroneMaintainingCentre( - 18001, + DroneMaintainingCentre = new GTMachineDroneMaintainingCentre(18001, "multimachine_DroneMaintainingCentre", i18n("tile.boxplusplus.DroneMaintainingCentre")); - DroneMaintananceModule = new GTTileEntityDroneMaintananceModule( - 18002, + DroneMaintananceModule = new GTTileEntityDroneMaintananceModule(18002, "DroneMaintananceModule", "无人机维护中心下行模块", 5); diff --git a/src/main/java/com/silvermoon/boxplusplus/common/render/RenderBoxRing.java b/src/main/java/com/silvermoon/boxplusplus/common/render/RenderBoxRing.java index 077018c..7349d72 100644 --- a/src/main/java/com/silvermoon/boxplusplus/common/render/RenderBoxRing.java +++ b/src/main/java/com/silvermoon/boxplusplus/common/render/RenderBoxRing.java @@ -19,8 +19,9 @@ public class RenderBoxRing extends TileEntitySpecialRenderer { private static final ResourceLocation BoxRingTexture = new ResourceLocation(Tags.MODID, "textures/models/ring.png"); - private static final IModelCustom Ring = AdvancedModelLoader - .loadModel(new ResourceLocation(Tags.MODID, "models/Ring.obj")); + private static final IModelCustom Ring = AdvancedModelLoader.loadModel(new ResourceLocation( + Tags.MODID, + "models/Ring.obj")); public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float timeSinceLastTick) { if (!(tile instanceof TEBoxRing ring)) return; diff --git a/src/main/java/com/silvermoon/boxplusplus/common/render/RenderDrone.java b/src/main/java/com/silvermoon/boxplusplus/common/render/RenderDrone.java index 975a4d7..1ff757f 100644 --- a/src/main/java/com/silvermoon/boxplusplus/common/render/RenderDrone.java +++ b/src/main/java/com/silvermoon/boxplusplus/common/render/RenderDrone.java @@ -20,8 +20,9 @@ public class RenderDrone extends TileEntitySpecialRenderer { private static final ResourceLocation DroneTexture = new ResourceLocation(Tags.MODID, "textures/models/drone.png"); - private static final IModelCustom Drone = AdvancedModelLoader - .loadModel(new ResourceLocation(Tags.MODID, "models/drone1.obj")); + private static final IModelCustom Drone = AdvancedModelLoader.loadModel(new ResourceLocation( + Tags.MODID, + "models/drone1.obj")); public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float timeSinceLastTick) { if (!(tile instanceof IGregTechTileEntity te diff --git a/src/main/java/com/silvermoon/boxplusplus/common/tileentities/GTMachineBox.java b/src/main/java/com/silvermoon/boxplusplus/common/tileentities/GTMachineBox.java index eab49b6..c39aef5 100644 --- a/src/main/java/com/silvermoon/boxplusplus/common/tileentities/GTMachineBox.java +++ b/src/main/java/com/silvermoon/boxplusplus/common/tileentities/GTMachineBox.java @@ -107,795 +107,791 @@ public class GTMachineBox extends GT_MetaTileEntity_ExtendedPowerMultiBlockBase< // spotless off static { StructureDefinition.Builder A = IStructureDefinition.builder() - .addShape( - STRUCTURE_PIECE_MainFrames, - transpose( - new String[][] { - { " ", " C ", " CCC ", " CCCCC ", " CCC ", " C ", " ", " ", - " ", " ", " " }, - { " C ", " CCCCC ", " CC CC ", "CC CC", " CC CC ", " CCCCC ", " C ", " ", - " ", " ", " " }, - { " CCC ", " CC CC ", "CC CC", "C C", "CC CC", " CC CC ", " CCC ", " ", - " ", " ", " " }, - { " CC~CC ", "CC CC", "C C", "C D C", "C C", "CC CC", " CCCCC ", " C ", - " C ", " C ", " C " }, - { " CCC ", " CC CC ", "CC CC", "C C", "CC CC", " CC CC ", " CCC ", " ", - " ", " ", " " }, - { " C ", " CCCCC ", " CC CC ", "CC CC", " CC CC ", " CCCCC ", " C ", " ", - " ", " ", " " }, - { " ", " C ", " CCC ", " CCCCC ", " CCC ", " C ", " ", " ", - " ", " ", " " } })) - .addShape( - STRUCTURE_PIECE_FirstRing, - transpose( - new String[][] { - { " E ", " ", " E ", - " ", " ", " ", - " ", " ", " ", - " ", " ", "E E E E", - " ", " ", " ", - " ", " ", " ", - " ", " ", " E ", - " ", " E " }, - { " EEE ", " ", " EEE ", - " ", " ", " ", - " ", " ", " ", - " ", "E E E E", "E E E E", - "E E E E", " ", " ", - " ", " ", " ", - " ", " ", " EEE ", - " ", " EEE " }, - { " EEEEE ", " EEEEEEEEEEE ", " EEE EEEEE EEE ", - " EE E EE ", " EE E EE ", " EE EE ", - " EE EE ", " EE EE ", " E E ", - "EEE EEE", "EEE EEE", "EEEEE EEEEE", - "EEE EEE", "EEE EEE", " E E ", - " EE EE ", " EE EE ", " EE EE ", - " EE E EE ", " EE E EE ", " EEE EEEEE EEE ", - " EEEEEEEEEEE ", " EEEEE " }, - { " EEE EEE ", " E E ", " EEE EEE ", - " E E ", " E E ", " ", - " ", " ", "E E E E", - "E E E E", "EEEEE EEEEE", " ", - "EEEEE EEEEE", "E E E E", "E E E E", - " ", " ", " ", - " E E ", " E E ", " EEE EEE ", - " E E ", " EEE EEE " }, - { " EEEEE ", " EEEEEEEEEEE ", " EEE EEEEE EEE ", - " EE E EE ", " EE E EE ", " EE EE ", - " EE EE ", " EE EE ", " E E ", - "EEE EEE", "EEE EEE", "EEEEE EEEEE", - "EEE EEE", "EEE EEE", " E E ", - " EE EE ", " EE EE ", " EE EE ", - " EE E EE ", " EE E EE ", " EEE EEEEE EEE ", - " EEEEEEEEEEE ", " EEEEE " }, - { " EEE ", " ", " EEE ", - " ", " ", " ", - " ", " ", " ", - " ", "E E E E", "E E E E", - "E E E E", " ", " ", - " ", " ", " ", - " ", " ", " EEE ", - " ", " EEE " }, - { " E ", " ", " E ", - " ", " ", " ", - " ", " ", " ", - " ", " ", "E E E E", - " ", " ", " ", - " ", " ", " ", - " ", " ", " E ", - " ", " E " } })) - .addShape( - STRUCTURE_PIECE_SecondRing, - transpose( - new String[][] { - { " F ", " ", - " F ", " ", - " ", " ", - " ", " ", - " ", " ", - " ", " ", - " ", " ", - " ", " ", - " ", "F F F F", - " ", " ", - " ", " ", - " ", " ", - " ", " ", - " ", " ", - " ", " ", - " ", " ", - " F ", " ", - " F " }, - { " FFF ", " ", - " FFF ", " ", - " ", " ", - " ", " ", - " ", " ", - " ", " ", - " ", " ", - " ", " ", - "F F F F", "F F F F", - "F F F F", " ", - " ", " ", - " ", " ", - " ", " ", - " ", " ", - " ", " ", - " ", " ", - " FFF ", " ", - " FFF " }, - { " F F ", " ", - " F F ", " ", - " ", " ", - " ", " ", - " ", " ", - " ", " ", - " ", " ", - " ", " ", - "F F F F", " ", - "F F F F", " ", - " ", " ", - " ", " ", - " ", " ", - " ", " ", - " ", " ", - " ", " ", - " F F ", " ", - " F F " }, - { " FFFFFFF ", " FFFFFFFFFFFFF ", - " FFFF FFFFFFF FFFF ", " FF F FF ", - " FFF F FFF ", " FF F FF ", - " FF FF ", " F F ", - " FF FF ", " FF FF ", - " F F ", " FF FF ", - " FF FF ", " F F ", - "FFF FFF", "FFF FFF", - "FFF FFF", "FFFFFF FFFFFF", - "FFF FFF", "FFF FFF", - "FFF FFF", " F F ", - " FF FF ", " FF FF ", - " F F ", " FF FF ", - " FF FF ", " F F ", - " FF FF ", " FF F FF ", - " FFF F FFF ", " FF F FF ", - " FFFF FFFFFFF FFFF ", " FFFFFFFFFFFFF ", - " FFFFFFF " }, - { " FF F F FF ", " F F ", - " FF F F FF ", " F F ", - " F F ", " F F ", - " ", " ", - " ", " ", - " ", " ", - " ", "F F F F", - "F F F F", " ", - "FFFFFF FFFFFF", " ", - "FFFFFF FFFFFF", " ", - "F F F F", "F F F F", - " ", " ", - " ", " ", - " ", " ", - " ", " F F ", - " F F ", " F F ", - " FF F F FF ", " F F ", - " FF F F FF " }, - { " FFFFFFF ", " FFFFFFFFFFFFF ", - " FFFF FFFFFFF FFFF ", " FF F FF ", - " FFF F FFF ", " FF F FF ", - " FF FF ", " F F ", - " FF FF ", " FF FF ", - " F F ", " FF FF ", - " FF FF ", " F F ", - "FFF FFF", "FFF FFF", - "FFF FFF", "FFFFFF FFFFFF", - "FFF FFF", "FFF FFF", - "FFF FFF", " F F ", - " FF FF ", " FF FF ", - " F F ", " FF FF ", - " FF FF ", " F F ", - " FF FF ", " FF F FF ", - " FFF F FFF ", " FF F FF ", - " FFFF FFFFFFF FFFF ", " FFFFFFFFFFFFF ", - " FFFFFFF " }, - { " F F ", " ", - " F F ", " ", - " ", " ", - " ", " ", - " ", " ", - " ", " ", - " ", " ", - " ", " ", - "F F F F", " ", - "F F F F", " ", - " ", " ", - " ", " ", - " ", " ", - " ", " ", - " ", " ", - " ", " ", - " F F ", " ", - " F F " }, - { " FFF ", " ", - " FFF ", " ", - " ", " ", - " ", " ", - " ", " ", - " ", " ", - " ", " ", - " ", " ", - "F F F F", "F F F F", - "F F F F", " ", - " ", " ", - " ", " ", - " ", " ", - " ", " ", - " ", " ", - " ", " ", - " FFF ", " ", - " FFF " }, - { " F ", " ", - " F ", " ", - " ", " ", - " ", " ", - " ", " ", - " ", " ", - " ", " ", - " ", " ", - " ", "F F F F", - " ", " ", - " ", " ", - " ", " ", - " ", " ", - " ", " ", - " ", " ", - " ", " ", - " F ", " ", - " F " } })) - .addShape( - STRUCTURE_PIECE_Final, - transpose( - new String[][] { - { " G ", - " ", - " G ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - "G G G G", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " G ", - " ", - " G " }, - { " GGG ", - " ", - " GGG ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - "G G G G", - "G G G G", - "G G G G", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " GGG ", - " ", - " GGG " }, - { " G G ", - " ", - " G G ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - "G G G G", - " ", - "G G G G", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " G G ", - " ", - " G G " }, - { " GGGGG ", - " GGGGGGGGGGGGGGG ", - " GGGG GG GG GGGG ", - " GGG GGG ", - " GGG GGG ", - " GG GG ", - " GG GG ", - " GG GG ", - " GG GG ", - " GG GG ", - " GG GG ", - " G G ", - " GG GG ", - " G G ", - " GG GG ", - " G G ", - " GG GG ", - " GG GG ", - " G G ", - " G G ", - " G G ", - "GGG GGG", - "GGG GGG", - "GG GG", - "GGG GGG", - "GGG GGG", - " G G ", - " G G ", - " G G ", - " GG GG ", - " GG GG ", - " G G ", - " GG GG ", - " G G ", - " GG GG ", - " G G ", - " GG GG ", - " GG GG ", - " GG GG ", - " GG GG ", - " GG GG ", - " GG GG ", - " GGG GGG ", - " GGG GGG ", - " GGGG GG GG GGGG ", - " GGGGGGGGGGGGGGG ", - " GGGGG " }, - { " GGG G GGG ", - " G ", - " GGG G GGG ", - " G ", - " G ", - " G ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - "G G G G", - "G G G G", - "G G G G", - " ", - "GGGGGG GGGGGG", - " ", - "G G G G", - "G G G G", - "G G G G", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " G ", - " G ", - " G ", - " GGG G GGG ", - " G ", - " GGG G GGG " }, - { " GG G G GG ", - " G G ", - " GG G G GG ", - " G G ", - " G G ", - " G G ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - "G G G G", - "G G G G", - " ", - " ", - "GGGGGG GGGGGG", - " ", - "GGGGGG GGGGGG", - " ", - " ", - "G G G G", - "G G G G", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " G G ", - " G G ", - " G G ", - " GG G G GG ", - " G G ", - " GG G G GG " }, - { " GGG G GGG ", - " G ", - " GGG G GGG ", - " G ", - " G ", - " G ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - "G G G G", - "G G G G", - "G G G G", - " ", - "GGGGGG GGGGGG", - " ", - "G G G G", - "G G G G", - "G G G G", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " G ", - " G ", - " G ", - " GGG G GGG ", - " G ", - " GGG G GGG " }, - { " GGGGG ", - " GGGGGGGGGGGGGGG ", - " GGGG GG GG GGGG ", - " GGG GGG ", - " GGG GGG ", - " GG GG ", - " GG GG ", - " GG GG ", - " GG GG ", - " GG GG ", - " GG GG ", - " G G ", - " GG GG ", - " G G ", - " GG GG ", - " G G ", - " GG GG ", - " GG GG ", - " G G ", - " G G ", - " G G ", - "GGG GGG", - "GGG GGG", - "GG GG", - "GGG GGG", - "GGG GGG", - " G G ", - " G G ", - " G G ", - " GG GG ", - " GG GG ", - " G G ", - " GG GG ", - " G G ", - " GG GG ", - " G G ", - " GG GG ", - " GG GG ", - " GG GG ", - " GG GG ", - " GG GG ", - " GG GG ", - " GGG GGG ", - " GGG GGG ", - " GGGG GG GG GGGG ", - " GGGGGGGGGGGGGGG ", - " GGGGG " }, - { " G G ", - " ", - " G G ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - "G G G G", - " ", - "G G G G", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " G G ", - " ", - " G G " }, - { " GGG ", - " ", - " GGG ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - "G G G G", - "G G G G", - "G G G G", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " GGG ", - " ", - " GGG " }, - { " G ", - " ", - " G ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - "G G G G", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " G ", - " ", - " G " } })); + .addShape(STRUCTURE_PIECE_MainFrames, + transpose(new String[][] { + { " ", " C ", " CCC ", " CCCCC ", " CCC ", " C ", " ", " ", " ", + " ", " " }, + { " C ", " CCCCC ", " CC CC ", "CC CC", " CC CC ", " CCCCC ", " C ", " ", " ", + " ", " " }, + { " CCC ", " CC CC ", "CC CC", "C C", "CC CC", " CC CC ", " CCC ", " ", " ", + " ", " " }, + { " CC~CC ", "CC CC", "C C", "C D C", "C C", "CC CC", " CCCCC ", " C ", " C ", + " C ", " C " }, + { " CCC ", " CC CC ", "CC CC", "C C", "CC CC", " CC CC ", " CCC ", " ", " ", + " ", " " }, + { " C ", " CCCCC ", " CC CC ", "CC CC", " CC CC ", " CCCCC ", " C ", " ", " ", + " ", " " }, + { " ", " C ", " CCC ", " CCCCC ", " CCC ", " C ", " ", " ", " ", + " ", " " } })) + .addShape(STRUCTURE_PIECE_FirstRing, + transpose(new String[][] { + { " E ", " ", " E ", + " ", " ", " ", + " ", " ", " ", + " ", " ", "E E E E", + " ", " ", " ", + " ", " ", " ", + " ", " ", " E ", + " ", " E " }, + { " EEE ", " ", " EEE ", + " ", " ", " ", + " ", " ", " ", + " ", "E E E E", "E E E E", + "E E E E", " ", " ", + " ", " ", " ", + " ", " ", " EEE ", + " ", " EEE " }, + { " EEEEE ", " EEEEEEEEEEE ", " EEE EEEEE EEE ", + " EE E EE ", " EE E EE ", " EE EE ", + " EE EE ", " EE EE ", " E E ", + "EEE EEE", "EEE EEE", "EEEEE EEEEE", + "EEE EEE", "EEE EEE", " E E ", + " EE EE ", " EE EE ", " EE EE ", + " EE E EE ", " EE E EE ", " EEE EEEEE EEE ", + " EEEEEEEEEEE ", " EEEEE " }, + { " EEE EEE ", " E E ", " EEE EEE ", + " E E ", " E E ", " ", + " ", " ", "E E E E", + "E E E E", "EEEEE EEEEE", " ", + "EEEEE EEEEE", "E E E E", "E E E E", + " ", " ", " ", + " E E ", " E E ", " EEE EEE ", + " E E ", " EEE EEE " }, + { " EEEEE ", " EEEEEEEEEEE ", " EEE EEEEE EEE ", + " EE E EE ", " EE E EE ", " EE EE ", + " EE EE ", " EE EE ", " E E ", + "EEE EEE", "EEE EEE", "EEEEE EEEEE", + "EEE EEE", "EEE EEE", " E E ", + " EE EE ", " EE EE ", " EE EE ", + " EE E EE ", " EE E EE ", " EEE EEEEE EEE ", + " EEEEEEEEEEE ", " EEEEE " }, + { " EEE ", " ", " EEE ", + " ", " ", " ", + " ", " ", " ", + " ", "E E E E", "E E E E", + "E E E E", " ", " ", + " ", " ", " ", + " ", " ", " EEE ", + " ", " EEE " }, + { " E ", " ", " E ", + " ", " ", " ", + " ", " ", " ", + " ", " ", "E E E E", + " ", " ", " ", + " ", " ", " ", + " ", " ", " E ", + " ", " E " } })) + .addShape(STRUCTURE_PIECE_SecondRing, + transpose(new String[][] { + { " F ", " ", + " F ", " ", + " ", " ", + " ", " ", + " ", " ", + " ", " ", + " ", " ", + " ", " ", + " ", "F F F F", + " ", " ", + " ", " ", + " ", " ", + " ", " ", + " ", " ", + " ", " ", + " ", " ", + " F ", " ", + " F " }, + { " FFF ", " ", + " FFF ", " ", + " ", " ", + " ", " ", + " ", " ", + " ", " ", + " ", " ", + " ", " ", + "F F F F", "F F F F", + "F F F F", " ", + " ", " ", + " ", " ", + " ", " ", + " ", " ", + " ", " ", + " ", " ", + " FFF ", " ", + " FFF " }, + { " F F ", " ", + " F F ", " ", + " ", " ", + " ", " ", + " ", " ", + " ", " ", + " ", " ", + " ", " ", + "F F F F", " ", + "F F F F", " ", + " ", " ", + " ", " ", + " ", " ", + " ", " ", + " ", " ", + " ", " ", + " F F ", " ", + " F F " }, + { " FFFFFFF ", " FFFFFFFFFFFFF ", + " FFFF FFFFFFF FFFF ", " FF F FF ", + " FFF F FFF ", " FF F FF ", + " FF FF ", " F F ", + " FF FF ", " FF FF ", + " F F ", " FF FF ", + " FF FF ", " F F ", + "FFF FFF", "FFF FFF", + "FFF FFF", "FFFFFF FFFFFF", + "FFF FFF", "FFF FFF", + "FFF FFF", " F F ", + " FF FF ", " FF FF ", + " F F ", " FF FF ", + " FF FF ", " F F ", + " FF FF ", " FF F FF ", + " FFF F FFF ", " FF F FF ", + " FFFF FFFFFFF FFFF ", " FFFFFFFFFFFFF ", + " FFFFFFF " }, + { " FF F F FF ", " F F ", + " FF F F FF ", " F F ", + " F F ", " F F ", + " ", " ", + " ", " ", + " ", " ", + " ", "F F F F", + "F F F F", " ", + "FFFFFF FFFFFF", " ", + "FFFFFF FFFFFF", " ", + "F F F F", "F F F F", + " ", " ", + " ", " ", + " ", " ", + " ", " F F ", + " F F ", " F F ", + " FF F F FF ", " F F ", + " FF F F FF " }, + { " FFFFFFF ", " FFFFFFFFFFFFF ", + " FFFF FFFFFFF FFFF ", " FF F FF ", + " FFF F FFF ", " FF F FF ", + " FF FF ", " F F ", + " FF FF ", " FF FF ", + " F F ", " FF FF ", + " FF FF ", " F F ", + "FFF FFF", "FFF FFF", + "FFF FFF", "FFFFFF FFFFFF", + "FFF FFF", "FFF FFF", + "FFF FFF", " F F ", + " FF FF ", " FF FF ", + " F F ", " FF FF ", + " FF FF ", " F F ", + " FF FF ", " FF F FF ", + " FFF F FFF ", " FF F FF ", + " FFFF FFFFFFF FFFF ", " FFFFFFFFFFFFF ", + " FFFFFFF " }, + { " F F ", " ", + " F F ", " ", + " ", " ", + " ", " ", + " ", " ", + " ", " ", + " ", " ", + " ", " ", + "F F F F", " ", + "F F F F", " ", + " ", " ", + " ", " ", + " ", " ", + " ", " ", + " ", " ", + " ", " ", + " F F ", " ", + " F F " }, + { " FFF ", " ", + " FFF ", " ", + " ", " ", + " ", " ", + " ", " ", + " ", " ", + " ", " ", + " ", " ", + "F F F F", "F F F F", + "F F F F", " ", + " ", " ", + " ", " ", + " ", " ", + " ", " ", + " ", " ", + " ", " ", + " FFF ", " ", + " FFF " }, + { " F ", " ", + " F ", " ", + " ", " ", + " ", " ", + " ", " ", + " ", " ", + " ", " ", + " ", " ", + " ", "F F F F", + " ", " ", + " ", " ", + " ", " ", + " ", " ", + " ", " ", + " ", " ", + " ", " ", + " F ", " ", + " F " } })) + .addShape(STRUCTURE_PIECE_Final, + transpose(new String[][] { { " G ", + " ", + " G ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + "G G G G", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " G ", + " ", + " G " }, + { " GGG ", + " ", + " GGG ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + "G G G G", + "G G G G", + "G G G G", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " GGG ", + " ", + " GGG " }, + { " G G ", + " ", + " G G ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + "G G G G", + " ", + "G G G G", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " G G ", + " ", + " G G " }, + { " GGGGG ", + " GGGGGGGGGGGGGGG ", + " GGGG GG GG GGGG ", + " GGG GGG ", + " GGG GGG ", + " GG GG ", + " GG GG ", + " GG GG ", + " GG GG ", + " GG GG ", + " GG GG ", + " G G ", + " GG GG ", + " G G ", + " GG GG ", + " G G ", + " GG GG ", + " GG GG ", + " G G ", + " G G ", + " G G ", + "GGG GGG", + "GGG GGG", + "GG GG", + "GGG GGG", + "GGG GGG", + " G G ", + " G G ", + " G G ", + " GG GG ", + " GG GG ", + " G G ", + " GG GG ", + " G G ", + " GG GG ", + " G G ", + " GG GG ", + " GG GG ", + " GG GG ", + " GG GG ", + " GG GG ", + " GG GG ", + " GGG GGG ", + " GGG GGG ", + " GGGG GG GG GGGG ", + " GGGGGGGGGGGGGGG ", + " GGGGG " }, + { " GGG G GGG ", + " G ", + " GGG G GGG ", + " G ", + " G ", + " G ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + "G G G G", + "G G G G", + "G G G G", + " ", + "GGGGGG GGGGGG", + " ", + "G G G G", + "G G G G", + "G G G G", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " G ", + " G ", + " G ", + " GGG G GGG ", + " G ", + " GGG G GGG " }, + { " GG G G GG ", + " G G ", + " GG G G GG ", + " G G ", + " G G ", + " G G ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + "G G G G", + "G G G G", + " ", + " ", + "GGGGGG GGGGGG", + " ", + "GGGGGG GGGGGG", + " ", + " ", + "G G G G", + "G G G G", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " G G ", + " G G ", + " G G ", + " GG G G GG ", + " G G ", + " GG G G GG " }, + { " GGG G GGG ", + " G ", + " GGG G GGG ", + " G ", + " G ", + " G ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + "G G G G", + "G G G G", + "G G G G", + " ", + "GGGGGG GGGGGG", + " ", + "G G G G", + "G G G G", + "G G G G", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " G ", + " G ", + " G ", + " GGG G GGG ", + " G ", + " GGG G GGG " }, + { " GGGGG ", + " GGGGGGGGGGGGGGG ", + " GGGG GG GG GGGG ", + " GGG GGG ", + " GGG GGG ", + " GG GG ", + " GG GG ", + " GG GG ", + " GG GG ", + " GG GG ", + " GG GG ", + " G G ", + " GG GG ", + " G G ", + " GG GG ", + " G G ", + " GG GG ", + " GG GG ", + " G G ", + " G G ", + " G G ", + "GGG GGG", + "GGG GGG", + "GG GG", + "GGG GGG", + "GGG GGG", + " G G ", + " G G ", + " G G ", + " GG GG ", + " GG GG ", + " G G ", + " GG GG ", + " G G ", + " GG GG ", + " G G ", + " GG GG ", + " GG GG ", + " GG GG ", + " GG GG ", + " GG GG ", + " GG GG ", + " GGG GGG ", + " GGG GGG ", + " GGGG GG GG GGGG ", + " GGGGGGGGGGGGGGG ", + " GGGGG " }, + { " G G ", + " ", + " G G ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + "G G G G", + " ", + "G G G G", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " G G ", + " ", + " G G " }, + { " GGG ", + " ", + " GGG ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + "G G G G", + "G G G G", + "G G G G", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " GGG ", + " ", + " GGG " }, + { " G ", + " ", + " G ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + "G G G G", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " G ", + " ", + " G " } })); for (int i = 0; i < 14; i++) { A.addShape(getModuleByIndex(i).name, transpose(getModuleByIndex(i).moduleStructure)); } - A.addElement( - 'C', - buildHatchAdder(GTMachineBox.class) - .atLeast(InputBus, OutputBus, InputHatch, OutputHatch, Energy, ExoticEnergy, Maintenance) - .casingIndex(114 << 7) - .dot(1) - .buildAndChain(onElementPass(i -> ++i.extendCasing, ofBlock(BlockRegister.SpaceExtend, 0)))) + A.addElement('C', + buildHatchAdder(GTMachineBox.class).atLeast(InputBus, + OutputBus, + InputHatch, + OutputHatch, + Energy, + ExoticEnergy, + Maintenance) + .casingIndex(114 << 7) + .dot(1) + .buildAndChain(onElementPass(i -> ++i.extendCasing, ofBlock(BlockRegister.SpaceExtend, 0)))) .addElement('D', Util.RingTileAdder((v, t) -> { - if ((t.getBlockType() - .isAssociatedBlock(BlockRegister.BoxRing) && v.ringCountSet != 1)) return false; - if ((t.getBlockType() - .isAssociatedBlock(BlockRegister.BoxRing2) && v.ringCountSet != 2)) return false; - if ((t.getBlockType() - .isAssociatedBlock(BlockRegister.BoxRing3) && v.ringCountSet != 3)) return false; - v.teBoxRing = t; - return true; - }, + if ((t.getBlockType() + .isAssociatedBlock(BlockRegister.BoxRing) && v.ringCountSet != 1)) return false; + if ((t.getBlockType() + .isAssociatedBlock(BlockRegister.BoxRing2) && v.ringCountSet != 2)) return false; + if ((t.getBlockType() + .isAssociatedBlock(BlockRegister.BoxRing3) && v.ringCountSet != 3)) return false; + v.teBoxRing = t; + return true; + }, TEBoxRing.class, BlockRegister.BoxRing, 0, - v -> v.ringCountSet == 1 ? BlockRegister.BoxRing + v -> v.ringCountSet == 1 + ? BlockRegister.BoxRing : (v.ringCountSet == 2 ? BlockRegister.BoxRing2 : BlockRegister.BoxRing3))) .addElement('E', ofBlock(BlockRegister.SpaceCompress, 0)) .addElement('F', ofBlock(BlockRegister.SpaceConstraint, 0)) @@ -1025,8 +1021,7 @@ public void construct(ItemStack stackSize, boolean hintsOnly) { } for (int i = 0; i < 14; i++) { if (moduleSwitch[i] || stackSize.stackSize - 4 >= i) { - buildPiece( - getModuleByIndex(i).name, + buildPiece(getModuleByIndex(i).name, stackSize, hintsOnly, getModuleByIndex(i).horizontalOffset, @@ -1045,8 +1040,7 @@ public int survivalConstruct(ItemStack stack, int elementBudget, ISurvivalBuildE case 1 -> { switch (stack.stackSize) { case 1 -> { - count += survivialBuildPiece( - STRUCTURE_PIECE_MainFrames, + count += survivialBuildPiece(STRUCTURE_PIECE_MainFrames, stack, 3, 3, @@ -1055,8 +1049,7 @@ public int survivalConstruct(ItemStack stack, int elementBudget, ISurvivalBuildE env, false, true); - count += survivialBuildPiece( - STRUCTURE_PIECE_FirstRing, + count += survivialBuildPiece(STRUCTURE_PIECE_FirstRing, stack, 11, 3, @@ -1067,8 +1060,7 @@ public int survivalConstruct(ItemStack stack, int elementBudget, ISurvivalBuildE true); } case 2 -> { - count += survivialBuildPiece( - STRUCTURE_PIECE_MainFrames, + count += survivialBuildPiece(STRUCTURE_PIECE_MainFrames, stack, 3, 3, @@ -1077,8 +1069,7 @@ public int survivalConstruct(ItemStack stack, int elementBudget, ISurvivalBuildE env, false, true); - count += survivialBuildPiece( - STRUCTURE_PIECE_FirstRing, + count += survivialBuildPiece(STRUCTURE_PIECE_FirstRing, stack, 11, 3, @@ -1087,8 +1078,7 @@ public int survivalConstruct(ItemStack stack, int elementBudget, ISurvivalBuildE env, false, true); - count += survivialBuildPiece( - STRUCTURE_PIECE_SecondRing, + count += survivialBuildPiece(STRUCTURE_PIECE_SecondRing, stack, 17, 5, @@ -1099,8 +1089,7 @@ public int survivalConstruct(ItemStack stack, int elementBudget, ISurvivalBuildE true); } default -> { - count += survivialBuildPiece( - STRUCTURE_PIECE_MainFrames, + count += survivialBuildPiece(STRUCTURE_PIECE_MainFrames, stack, 3, 3, @@ -1109,8 +1098,7 @@ public int survivalConstruct(ItemStack stack, int elementBudget, ISurvivalBuildE env, false, true); - count += survivialBuildPiece( - STRUCTURE_PIECE_FirstRing, + count += survivialBuildPiece(STRUCTURE_PIECE_FirstRing, stack, 11, 3, @@ -1119,8 +1107,7 @@ public int survivalConstruct(ItemStack stack, int elementBudget, ISurvivalBuildE env, false, true); - count += survivialBuildPiece( - STRUCTURE_PIECE_SecondRing, + count += survivialBuildPiece(STRUCTURE_PIECE_SecondRing, stack, 17, 5, @@ -1129,8 +1116,7 @@ public int survivalConstruct(ItemStack stack, int elementBudget, ISurvivalBuildE env, false, true); - count += survivialBuildPiece( - STRUCTURE_PIECE_Final, + count += survivialBuildPiece(STRUCTURE_PIECE_Final, stack, 23, 5, @@ -1143,8 +1129,7 @@ public int survivalConstruct(ItemStack stack, int elementBudget, ISurvivalBuildE } } case 2 -> { - count += survivialBuildPiece( - STRUCTURE_PIECE_MainFrames, + count += survivialBuildPiece(STRUCTURE_PIECE_MainFrames, stack, 3, 3, @@ -1153,8 +1138,7 @@ public int survivalConstruct(ItemStack stack, int elementBudget, ISurvivalBuildE env, false, true); - count += survivialBuildPiece( - STRUCTURE_PIECE_FirstRing, + count += survivialBuildPiece(STRUCTURE_PIECE_FirstRing, stack, 11, 3, @@ -1163,8 +1147,7 @@ public int survivalConstruct(ItemStack stack, int elementBudget, ISurvivalBuildE env, false, true); - count += survivialBuildPiece( - STRUCTURE_PIECE_SecondRing, + count += survivialBuildPiece(STRUCTURE_PIECE_SecondRing, stack, 17, 5, @@ -1175,8 +1158,7 @@ public int survivalConstruct(ItemStack stack, int elementBudget, ISurvivalBuildE true); } case 3 -> { - count += survivialBuildPiece( - STRUCTURE_PIECE_MainFrames, + count += survivialBuildPiece(STRUCTURE_PIECE_MainFrames, stack, 3, 3, @@ -1185,8 +1167,7 @@ public int survivalConstruct(ItemStack stack, int elementBudget, ISurvivalBuildE env, false, true); - count += survivialBuildPiece( - STRUCTURE_PIECE_FirstRing, + count += survivialBuildPiece(STRUCTURE_PIECE_FirstRing, stack, 11, 3, @@ -1195,8 +1176,7 @@ public int survivalConstruct(ItemStack stack, int elementBudget, ISurvivalBuildE env, false, true); - count += survivialBuildPiece( - STRUCTURE_PIECE_SecondRing, + count += survivialBuildPiece(STRUCTURE_PIECE_SecondRing, stack, 17, 5, @@ -1224,8 +1204,11 @@ public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack a machineError = new int[2]; switch (ringCountSet) { case 1 -> { - if (checkPiece(STRUCTURE_PIECE_MainFrames, 3, 3, 0) - && checkPiece(STRUCTURE_PIECE_FirstRing, 11, 3, 8)) { + if (checkPiece(STRUCTURE_PIECE_MainFrames, 3, 3, 0) && checkPiece( + STRUCTURE_PIECE_FirstRing, + 11, + 3, + 8)) { ringCount = 1; break; } @@ -1237,7 +1220,8 @@ && checkPiece(STRUCTURE_PIECE_FirstRing, 11, 3, 8)) { return false; } case 2 -> { - if (checkPiece(STRUCTURE_PIECE_MainFrames, 3, 3, 0) && checkPiece(STRUCTURE_PIECE_FirstRing, 11, 3, 8) + if (checkPiece(STRUCTURE_PIECE_MainFrames, 3, 3, 0) + && checkPiece(STRUCTURE_PIECE_FirstRing, 11, 3, 8) && checkPiece(STRUCTURE_PIECE_SecondRing, 17, 5, 14)) { ringCount = 2; maxParallel = 6400; @@ -1252,7 +1236,8 @@ && checkPiece(STRUCTURE_PIECE_SecondRing, 17, 5, 14)) { return false; } case 3 -> { - if (checkPiece(STRUCTURE_PIECE_MainFrames, 3, 3, 0) && checkPiece(STRUCTURE_PIECE_FirstRing, 11, 3, 8) + if (checkPiece(STRUCTURE_PIECE_MainFrames, 3, 3, 0) + && checkPiece(STRUCTURE_PIECE_FirstRing, 11, 3, 8) && checkPiece(STRUCTURE_PIECE_SecondRing, 17, 5, 14) && checkPiece(STRUCTURE_PIECE_Final, 23, 5, 20)) { ringCount = 3; @@ -1273,8 +1258,7 @@ && checkPiece(STRUCTURE_PIECE_Final, 23, 5, 20)) { } for (int i = 0; i < 15; i++) { if (moduleSwitch[i]) { - if (checkPiece( - getModuleByIndex(i).name, + if (checkPiece(getModuleByIndex(i).name, getModuleByIndex(i).horizontalOffset, getModuleByIndex(i).verticalOffset, getModuleByIndex(i).depthOffset)) { @@ -1331,8 +1315,8 @@ public CheckRecipeResult checkProcessing() { inputFluid.addAll(Arrays.asList(inv.getFluidInputs())); } } - if ((inputItem.isEmpty() && !recipe.FinalItemInput.isEmpty()) - || (inputFluid.isEmpty() && !recipe.FinalFluidInput.isEmpty())) return CheckRecipeResultRegistry.NO_RECIPE; + if ((inputItem.isEmpty() && !recipe.FinalItemInput.isEmpty()) || (inputFluid.isEmpty() + && !recipe.FinalFluidInput.isEmpty())) return CheckRecipeResultRegistry.NO_RECIPE; for (int k : recipe.requireModules.keySet()) { if (k == 13 && recipe.requireModules.get(k) == 2 && !debug) return SimpleCheckRecipeResult.ofFailure("box_debugmode"); @@ -1353,9 +1337,9 @@ public CheckRecipeResult checkProcessing() { inputFluid.removeAll(Collections.singleton(null)); return (!recipe.FinalItemInput.isEmpty()) ? (!recipe.FinalFluidInput.isEmpty() - ? ((requireItem.isEmpty() && requireFluid.isEmpty()) ? runBox(inputItem, inputFluid) - : CheckRecipeResultRegistry.NO_RECIPE) - : (requireItem.isEmpty() ? runBox(inputItem, inputFluid) : CheckRecipeResultRegistry.NO_RECIPE)) + ? ((requireItem.isEmpty() + && requireFluid.isEmpty()) ? runBox(inputItem, inputFluid) : CheckRecipeResultRegistry.NO_RECIPE) + : (requireItem.isEmpty() ? runBox(inputItem, inputFluid) : CheckRecipeResultRegistry.NO_RECIPE)) : (requireFluid.isEmpty() ? runBox(inputItem, inputFluid) : CheckRecipeResultRegistry.NO_RECIPE); } @@ -1372,8 +1356,9 @@ public CheckRecipeResult runBox(List inputItem, List inpu return CheckRecipeResultRegistry.insufficientPower(recipe.FinalVoteage); lEUt = -recipe.FinalVoteage; } - if (moduleActive[12] && moduleTier[12] == 1 - && !addEUToGlobalEnergyMap(userUUID, -recipe.FinalVoteage * recipe.FinalTime)) { + if (moduleActive[12] && moduleTier[12] == 1 && !addEUToGlobalEnergyMap( + userUUID, + -recipe.FinalVoteage * recipe.FinalTime)) { return SimpleCheckRecipeResult.ofFailure("no_wireless_power"); } calTime(); @@ -1443,12 +1428,10 @@ public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, ForgeDirec if (side == aFacing) { if (aActive) return new ITexture[] { casingTexturePages[114][0], TextureFactory.builder() .addIcon(boxActive) - .extFacing() - .build() }; + .extFacing().build() }; return new ITexture[] { casingTexturePages[114][0], TextureFactory.builder() .addIcon(boxInactive) - .extFacing() - .build() }; + .extFacing().build() }; } return new ITexture[] { casingTexturePages[114][0] }; } @@ -1496,8 +1479,9 @@ private void makeAE2Pattern(EntityPlayer player, String item, String fluid) { patternDetail.setCanBeSubstitute(0); outputPattern = patternDetail.writeToStack(); } - outputPattern.stackTagCompound - .setString("author", player.getDisplayName() + i18n("tile.boxplusplus.boxinfo.16")); + outputPattern.stackTagCompound.setString( + "author", + player.getDisplayName() + i18n("tile.boxplusplus.boxinfo.16")); pattern.stackSize -= 1; mOutputItems = new ItemStack[] { outputPattern }; mMaxProgresstime = 100; @@ -1520,8 +1504,10 @@ public void buildRecipe() { recipe = new BoxRecipe(); routingMap.forEach(boxRoutings -> { inputItemContainer.addItemStackList(boxRoutings.InputItem, boxRoutings.Parallel); - outputItemContainer - .addItemStackList(boxRoutings.OutputItem, boxRoutings.OutputChance, boxRoutings.Parallel); + outputItemContainer.addItemStackList( + boxRoutings.OutputItem, + boxRoutings.OutputChance, + boxRoutings.Parallel); inputFluidContainer.addFluidStackList(boxRoutings.InputFluid, boxRoutings.Parallel); OutputFluidContainer.addFluidStackList(boxRoutings.OutputFluid, boxRoutings.Parallel); recipe.FinalTime += boxRoutings.time * 5000 / (1 + Math.exp(-(boxRoutings.Parallel - 2000) / 320.0)); @@ -1566,9 +1552,8 @@ private boolean halveRecipe() { @Override public void onRemoval() { if (boxMap.containsValue(this)) boxMap.entrySet() - .removeIf( - t -> t.getValue() - .equals(this)); + .removeIf(t -> t.getValue() + .equals(this)); } /** @@ -1581,8 +1566,7 @@ public void saveNBTData(NBTTagCompound NBT) { NBTTagCompound Routing = new NBTTagCompound(); Routing.setInteger("ActiveRouting", routingMap.size()); for (int i = 0; i < routingMap.size(); i++) { - Routing.setTag( - "Routing" + (i + 1), + Routing.setTag("Routing" + (i + 1), routingMap.get(i) .routingToNbt()); } @@ -1651,28 +1635,27 @@ public void addUIWidgets(ModularWindow.Builder builder, UIBuildContext buildCont buildContext.addSyncedWindow(20, this::createClearWindow); Synchronize(builder); builder.widget(// Module - new ButtonWidget().setOnClick( - (clickData, widget) -> { - if (!widget.isClient()) widget.getContext() - .openSyncedWindow(13); - }) - .setSize(16, 16) - .setBackground(() -> { - List UI = new ArrayList<>(); - UI.add(GT_UITextures.BUTTON_STANDARD); - UI.add(GT_UITextures.OVERLAY_BUTTON_WHITELIST); - return UI.toArray(new IDrawable[0]); - }) - .addTooltip(i18n("tile.boxplusplus.boxUI.01")) - .setPos(94, 91)) + new ButtonWidget().setOnClick((clickData, widget) -> { + if (!widget.isClient()) widget.getContext() + .openSyncedWindow(13); + }) + .setSize(16, 16) + .setBackground(() -> { + List UI = new ArrayList<>(); + UI.add(GT_UITextures.BUTTON_STANDARD); + UI.add(GT_UITextures.OVERLAY_BUTTON_WHITELIST); + return UI.toArray(new IDrawable[0]); + }) + .addTooltip(i18n("tile.boxplusplus.boxUI.01")) + .setPos(94, 91)) .widget(// SwitchRender new ButtonWidget().setOnClick((clickData, widget) -> { - if (!widget.isClient()) { - if (teBoxRing != null) { - teBoxRing.teRingSwitch = !teBoxRing.teRingSwitch; + if (!widget.isClient()) { + if (teBoxRing != null) { + teBoxRing.teRingSwitch = !teBoxRing.teRingSwitch; + } } - } - }) + }) .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); @@ -1684,15 +1667,13 @@ public void addUIWidgets(ModularWindow.Builder builder, UIBuildContext buildCont .setPos(146, 91)) .widget(// Routing new ButtonWidget().setOnClick((clickData, widget) -> { - if (!widget.isClient()) { - Util.boxMap.put( + if (!widget.isClient()) { + Util.boxMap.put(widget.getContext() + .getPlayer(), this); widget.getContext() - .getPlayer(), - this); - widget.getContext() - .openSyncedWindow(10); - } - }) + .openSyncedWindow(10); + } + }) .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); @@ -1703,8 +1684,7 @@ public void addUIWidgets(ModularWindow.Builder builder, UIBuildContext buildCont .addTooltip(i18n("tile.boxplusplus.boxUI.03")) .setPos(120, 91)) .widget(// WIKI - new ButtonWidget().setOnClick( - (clickData, widget) -> { + new ButtonWidget().setOnClick((clickData, widget) -> { if (!widget.isClient()) widget.getContext() .openSyncedWindow(15); }) @@ -1724,25 +1704,29 @@ public void addUIWidgets(ModularWindow.Builder builder, UIBuildContext buildCont */ protected ModularWindow createModuleWindow(final EntityPlayer player) { ModularWindow.Builder builder = ModularWindow.builder(250, 250); - builder - .setBackground(AdaptableUITexture.of(Tags.MODID, "textures/gui/ring" + ringCountSet + ".png", 695, 695, 4)); + builder.setBackground(AdaptableUITexture.of( + Tags.MODID, + "textures/gui/ring" + ringCountSet + ".png", + 695, + 695, + 4)); builder.setGuiTint(getGUIColorization()); Synchronize(builder); builder.widget(// Ring1 new ButtonWidget().setOnClick((clickData, widget) -> { - this.ringCountSet = 1; - for (int i = 4; i < 14; i++) { - moduleSwitch[i] = false; - moduleActive[i] = false; - onMachineBlockUpdate(); - } - if (!widget.isClient()) { - widget.getWindow() - .closeWindow(); - widget.getContext() - .openSyncedWindow(13); - } - }) + this.ringCountSet = 1; + for (int i = 4; i < 14; i++) { + moduleSwitch[i] = false; + moduleActive[i] = false; + onMachineBlockUpdate(); + } + if (!widget.isClient()) { + widget.getWindow() + .closeWindow(); + widget.getContext() + .openSyncedWindow(13); + } + }) .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); @@ -1754,19 +1738,19 @@ protected ModularWindow createModuleWindow(final EntityPlayer player) { .setPos(8, 8)); builder.widget(// Ring2 new ButtonWidget().setOnClick((clickData, widget) -> { - this.ringCountSet = 2; - for (int i = 8; i < 14; i++) { - moduleSwitch[i] = false; - moduleActive[i] = false; - onMachineBlockUpdate(); - } - if (!widget.isClient()) { - widget.getWindow() - .closeWindow(); - widget.getContext() - .openSyncedWindow(13); - } - }) + this.ringCountSet = 2; + for (int i = 8; i < 14; i++) { + moduleSwitch[i] = false; + moduleActive[i] = false; + onMachineBlockUpdate(); + } + if (!widget.isClient()) { + widget.getWindow() + .closeWindow(); + widget.getContext() + .openSyncedWindow(13); + } + }) .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); @@ -1777,54 +1761,53 @@ protected ModularWindow createModuleWindow(final EntityPlayer player) { .addTooltip(i18n("tile.boxplusplus.boxUI.module.21")) .setPos(8, 26)); builder.widget(// Ring3 - new ButtonWidget().setOnClick((clickData, widget) -> { - this.ringCountSet = 3; - onMachineBlockUpdate(); - if (!widget.isClient()) { - widget.getWindow() - .closeWindow(); - widget.getContext() - .openSyncedWindow(13); - } - }) - .setSize(16, 16) - .setBackground(() -> { - List UI = new ArrayList<>(); - UI.add(GT_UITextures.BUTTON_STANDARD); - UI.add(GT_UITextures.OVERLAY_BUTTON_AUTOOUTPUT_FLUID); - return UI.toArray(new IDrawable[0]); - }) - .addTooltip(i18n("tile.boxplusplus.boxUI.module.22")) - .setPos(8, 44)) - .widget( - ButtonWidget.closeWindowButton(true) - .setPos(238, 0)); + new ButtonWidget().setOnClick((clickData, widget) -> { + this.ringCountSet = 3; + onMachineBlockUpdate(); + if (!widget.isClient()) { + widget.getWindow() + .closeWindow(); + widget.getContext() + .openSyncedWindow(13); + } + }) + .setSize(16, 16) + .setBackground(() -> { + List UI = new ArrayList<>(); + UI.add(GT_UITextures.BUTTON_STANDARD); + UI.add(GT_UITextures.OVERLAY_BUTTON_AUTOOUTPUT_FLUID); + return UI.toArray(new IDrawable[0]); + }) + .addTooltip(i18n("tile.boxplusplus.boxUI.module.22")) + .setPos(8, 44)) + .widget(ButtonWidget.closeWindowButton(true) + .setPos(238, 0)); builder.widget(// 3.1 - new ButtonWidget().setOnClick((clickData, widget) -> { - moduleSN = 8; - if (!widget.isClient()) { - widget.getContext() - .openSyncedWindow(14); - } - }) - .setSize(16, 16) - .setBackground(() -> { - List UI = new ArrayList<>(); - UI.add(AdaptableUITexture.of(Tags.MODID, "textures/gui/09a.png", 16, 16, 4)); - UI.add(AdaptableUITexture.of(Tags.MODID, "textures/gui/01b.png", 16, 16, 4)); - return UI.toArray(new IDrawable[0]); - }) - .addTooltip(i18n("tile.boxplusplus.boxUI.module.9")) - .setPos(8, 117) - .setEnabled(ringCountSet == 3)) + new ButtonWidget().setOnClick((clickData, widget) -> { + moduleSN = 8; + if (!widget.isClient()) { + widget.getContext() + .openSyncedWindow(14); + } + }) + .setSize(16, 16) + .setBackground(() -> { + List UI = new ArrayList<>(); + UI.add(AdaptableUITexture.of(Tags.MODID, "textures/gui/09a.png", 16, 16, 4)); + UI.add(AdaptableUITexture.of(Tags.MODID, "textures/gui/01b.png", 16, 16, 4)); + return UI.toArray(new IDrawable[0]); + }) + .addTooltip(i18n("tile.boxplusplus.boxUI.module.9")) + .setPos(8, 117) + .setEnabled(ringCountSet == 3)) .widget(// 3.2 new ButtonWidget().setOnClick((clickData, widget) -> { - moduleSN = 9; - if (!widget.isClient()) { - widget.getContext() - .openSyncedWindow(14); - } - }) + moduleSN = 9; + if (!widget.isClient()) { + widget.getContext() + .openSyncedWindow(14); + } + }) .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); @@ -1837,12 +1820,12 @@ protected ModularWindow createModuleWindow(final EntityPlayer player) { .setEnabled(ringCountSet == 3)) .widget(// 3.3 new ButtonWidget().setOnClick((clickData, widget) -> { - moduleSN = 10; - if (!widget.isClient()) { - widget.getContext() - .openSyncedWindow(14); - } - }) + moduleSN = 10; + if (!widget.isClient()) { + widget.getContext() + .openSyncedWindow(14); + } + }) .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); @@ -1870,15 +1853,14 @@ protected ModularWindow createModuleWindow(final EntityPlayer player) { * .addTooltip(i18n("tile.boxplusplus.boxUI.module.12")) * .setPos(117, 223) * .setEnabled(RingCounts==3)) - */ - .widget(// 2.1 + */.widget(// 2.1 new ButtonWidget().setOnClick((clickData, widget) -> { - moduleSN = 4; - if (!widget.isClient()) { - widget.getContext() - .openSyncedWindow(14); - } - }) + moduleSN = 4; + if (!widget.isClient()) { + widget.getContext() + .openSyncedWindow(14); + } + }) .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); @@ -1891,12 +1873,12 @@ protected ModularWindow createModuleWindow(final EntityPlayer player) { .setEnabled(ringCountSet > 1)) .widget(// 2.2 new ButtonWidget().setOnClick((clickData, widget) -> { - moduleSN = 5; - if (!widget.isClient()) { - widget.getContext() - .openSyncedWindow(14); - } - }) + moduleSN = 5; + if (!widget.isClient()) { + widget.getContext() + .openSyncedWindow(14); + } + }) .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); @@ -1909,12 +1891,12 @@ protected ModularWindow createModuleWindow(final EntityPlayer player) { .setEnabled(ringCountSet > 1)) .widget(// 2.3 new ButtonWidget().setOnClick((clickData, widget) -> { - moduleSN = 6; - if (!widget.isClient()) { - widget.getContext() - .openSyncedWindow(14); - } - }) + moduleSN = 6; + if (!widget.isClient()) { + widget.getContext() + .openSyncedWindow(14); + } + }) .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); @@ -1927,12 +1909,12 @@ protected ModularWindow createModuleWindow(final EntityPlayer player) { .setEnabled(ringCountSet > 1)) .widget(// 2.4 new ButtonWidget().setOnClick((clickData, widget) -> { - moduleSN = 7; - if (!widget.isClient()) { - widget.getContext() - .openSyncedWindow(14); - } - }) + moduleSN = 7; + if (!widget.isClient()) { + widget.getContext() + .openSyncedWindow(14); + } + }) .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); @@ -1945,12 +1927,12 @@ protected ModularWindow createModuleWindow(final EntityPlayer player) { .setEnabled(ringCountSet > 1)) .widget(// 1.1 new ButtonWidget().setOnClick((clickData, widget) -> { - moduleSN = 0; - if (!widget.isClient()) { - widget.getContext() - .openSyncedWindow(14); - } - }) + moduleSN = 0; + if (!widget.isClient()) { + widget.getContext() + .openSyncedWindow(14); + } + }) .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); @@ -1962,12 +1944,12 @@ protected ModularWindow createModuleWindow(final EntityPlayer player) { .setPos(64, 117)) .widget(// 1.2 new ButtonWidget().setOnClick((clickData, widget) -> { - moduleSN = 1; - if (!widget.isClient()) { - widget.getContext() - .openSyncedWindow(14); - } - }) + moduleSN = 1; + if (!widget.isClient()) { + widget.getContext() + .openSyncedWindow(14); + } + }) .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); @@ -1979,12 +1961,12 @@ protected ModularWindow createModuleWindow(final EntityPlayer player) { .setPos(117, 67)) .widget(// 1.3 new ButtonWidget().setOnClick((clickData, widget) -> { - moduleSN = 2; - if (!widget.isClient()) { - widget.getContext() - .openSyncedWindow(14); - } - }) + moduleSN = 2; + if (!widget.isClient()) { + widget.getContext() + .openSyncedWindow(14); + } + }) .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); @@ -1996,12 +1978,12 @@ protected ModularWindow createModuleWindow(final EntityPlayer player) { .setPos(164, 117)) .widget(// 1.4 new ButtonWidget().setOnClick((clickData, widget) -> { - moduleSN = 3; - if (!widget.isClient()) { - widget.getContext() - .openSyncedWindow(14); - } - }) + moduleSN = 3; + if (!widget.isClient()) { + widget.getContext() + .openSyncedWindow(14); + } + }) .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); @@ -2013,12 +1995,12 @@ protected ModularWindow createModuleWindow(final EntityPlayer player) { .setPos(117, 167)) .widget(// Up new ButtonWidget().setOnClick((clickData, widget) -> { - moduleSN = 12; - if (!widget.isClient()) { - widget.getContext() - .openSyncedWindow(14); - } - }) + moduleSN = 12; + if (!widget.isClient()) { + widget.getContext() + .openSyncedWindow(14); + } + }) .setSize(16, 16) .setBackground(AdaptableUITexture.of(Tags.MODID, "textures/gui/13a.png", 16, 16, 1)) .addTooltip(i18n("tile.boxplusplus.boxUI.module.13")) @@ -2026,12 +2008,12 @@ protected ModularWindow createModuleWindow(final EntityPlayer player) { .setEnabled(ringCountSet == 3)) .widget(// Down new ButtonWidget().setOnClick((clickData, widget) -> { - moduleSN = 13; - if (!widget.isClient()) { - widget.getContext() - .openSyncedWindow(14); - } - }) + moduleSN = 13; + if (!widget.isClient()) { + widget.getContext() + .openSyncedWindow(14); + } + }) .setSize(16, 16) .setBackground(AdaptableUITexture.of(Tags.MODID, "textures/gui/14a.png", 16, 16, 1)) .addTooltip(i18n("tile.boxplusplus.boxUI.module.14")) @@ -2047,61 +2029,63 @@ protected ModularWindow createSingleModuleWindow(final EntityPlayer player) { ModularWindow.Builder builder = ModularWindow.builder(150, 200); builder.setBackground(GT_UITextures.BACKGROUND_SINGLEBLOCK_DEFAULT); builder.setGuiTint(getGUIColorization()); - builder.widget( - ButtonWidget.closeWindowButton(true) + builder.widget(ButtonWidget.closeWindowButton(true) .setPos(136, 3)) - .widget( - new DrawableWidget().setDrawable(AdaptableUITexture.of(Tags.MODID, "textures/gui/dream.png", 16, 16, 1)) - .setPos(5, 5) - .setSize(16, 16)) + .widget(new DrawableWidget().setDrawable(AdaptableUITexture.of(Tags.MODID, + "textures/gui/dream.png", + 16, + 16, + 1)) + .setPos(5, 5) + .setSize(16, 16)) .widget(new TextWidget(i18n("tile.boxplusplus.boxUI.module." + (moduleSN + 1))).setPos(25, 9)) - .widget( - new DrawableWidget() - .setDrawable( - AdaptableUITexture.of(Tags.MODID, "textures/gui/" + (moduleSN + 1) + ".png", 100, 80, 1)) - .setPos(20, 25) - .setSize(110, 73)) - .widget( - new TextWidget(i18n("tile.boxplusplus.boxUI.module.context." + (moduleSN + 1) + "a")) - .setTextAlignment(TopCenter) - .setMaxWidth(130) - .setPos(10, 100)) + .widget(new DrawableWidget().setDrawable(AdaptableUITexture.of(Tags.MODID, + "textures/gui/" + (moduleSN + 1) + ".png", + 100, + 80, + 1)) + .setPos(20, 25) + .setSize(110, 73)) + .widget(new TextWidget(i18n("tile.boxplusplus.boxUI.module.context." + + (moduleSN + 1) + + "a")).setTextAlignment(TopCenter) + .setMaxWidth(130) + .setPos(10, 100)) .widget(new TextWidget(i18n("tile.boxplusplus.boxwiki.26")).setPos(20, 130)) - .widget( - new TextWidget(i18n("tile.boxplusplus.boxUI.module.context." + (moduleSN + 1) + "b")).setMaxWidth(110) - .setPos(20, 140)) - .widget( - new TextWidget( - i18n("tile.boxplusplus.boxUI.module.24") - + i18n("tile.boxplusplus.boxUI.module.16" + (moduleSwitch[moduleSN] ? "" : "a")) - + (moduleTier[moduleSN] == 0 ? " (T1)" : " (T2)")).setPos(20, 175)); + .widget(new TextWidget(i18n("tile.boxplusplus.boxUI.module.context." + (moduleSN + 1) + "b")).setMaxWidth( + 110) + .setPos(20, 140)) + .widget(new TextWidget(i18n("tile.boxplusplus.boxUI.module.24") + i18n("tile.boxplusplus.boxUI.module.16" + + (moduleSwitch[moduleSN] ? "" : "a")) + (moduleTier[moduleSN] == 0 ? " (T1)" : " (T2)")).setPos( + 20, + 175)); builder.widget(new ButtonWidget().setOnClick((clickData, widget) -> { - moduleSwitch[moduleSN] = true; - onMachineBlockUpdate(); - if (!widget.isClient()) { - widget.getWindow() - .closeWindow(); - } - }) - .setSize(20, 20) - .setBackground(() -> { - List UI = new ArrayList<>(); - UI.add(GT_UITextures.BUTTON_STANDARD); - UI.add(GT_UITextures.OVERLAY_BUTTON_CHECKMARK); - return UI.toArray(new IDrawable[0]); - }) - .addTooltip(i18n("tile.boxplusplus.boxUI.module.16")) - .setPos(100, 170) - .setEnabled(!moduleSwitch[moduleSN])) + moduleSwitch[moduleSN] = true; + onMachineBlockUpdate(); + if (!widget.isClient()) { + widget.getWindow() + .closeWindow(); + } + }) + .setSize(20, 20) + .setBackground(() -> { + List UI = new ArrayList<>(); + UI.add(GT_UITextures.BUTTON_STANDARD); + UI.add(GT_UITextures.OVERLAY_BUTTON_CHECKMARK); + return UI.toArray(new IDrawable[0]); + }) + .addTooltip(i18n("tile.boxplusplus.boxUI.module.16")) + .setPos(100, 170) + .setEnabled(!moduleSwitch[moduleSN])) .widget(new ButtonWidget().setOnClick((clickData, widget) -> { - moduleSwitch[moduleSN] = false; - moduleActive[moduleSN] = false; - onMachineBlockUpdate(); - if (!widget.isClient()) { - widget.getWindow() - .closeWindow(); - } - }) + moduleSwitch[moduleSN] = false; + moduleActive[moduleSN] = false; + onMachineBlockUpdate(); + if (!widget.isClient()) { + widget.getWindow() + .closeWindow(); + } + }) .setSize(20, 20) .setBackground(() -> { List UI = new ArrayList<>(); @@ -2129,23 +2113,21 @@ protected ModularWindow createInitialingWindow(final EntityPlayer player) { for (int i = 0; i < 5; i++) { randomSN.add(new Random().nextInt(5) + 1); } - builder.widget( - new DrawableWidget().setDrawable(GT_UITextures.OVERLAY_BUTTON_ARROW_GREEN_UP) + builder.widget(new DrawableWidget().setDrawable(GT_UITextures.OVERLAY_BUTTON_ARROW_GREEN_UP) .setPos(5, 5) .setSize(16, 16)) - .widget( - new TextWidget(i18n("tile.boxplusplus.boxUI.05") + i18n("tile.boxplusplus.boxUI.06") + maxRouting) - .setPos(25, 9)) + .widget(new TextWidget(i18n("tile.boxplusplus.boxUI.05") + + i18n("tile.boxplusplus.boxUI.06") + + maxRouting).setPos(25, 9)) .widget(new TextWidget(i18n("tile.boxplusplus.boxUI.40") + maxParallel).setPos(170, 9)) - .widget( - ButtonWidget.closeWindowButton(true) - .setPos(240, 5)); + .widget(ButtonWidget.closeWindowButton(true) + .setPos(240, 5)); builder.widget(new ButtonWidget().setOnClick((clickData, widget) -> { - if (!widget.isClient()) { - widget.getContext() - .openSyncedWindow(16); - } - }) + if (!widget.isClient()) { + widget.getContext() + .openSyncedWindow(16); + } + }) .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); @@ -2158,33 +2140,33 @@ protected ModularWindow createInitialingWindow(final EntityPlayer player) { .setEnabled(routingMap.size() == 0)); // Next Page & Previous Page builder.widget(new ButtonWidget().setOnClick((clickData, widget) -> { - routingPageCode += 1; - if (!widget.isClient()) { - widget.getWindow() - .closeWindow(); - widget.getContext() - .openSyncedWindow(10); - } - }) - .setSize(16, 16) - .setBackground(() -> { - List UI = new ArrayList<>(); - UI.add(GT_UITextures.BUTTON_STANDARD); - UI.add(GT_UITextures.OVERLAY_BUTTON_ARROW_GREEN_DOWN); - return UI.toArray(new IDrawable[0]); - }) - .addTooltip(i18n("tile.boxplusplus.boxUI.38")) - .setPos(200, 48) - .setEnabled(routingPageCode < Math.ceil((routingMap.size() + (recipe.islocked ? 0 : 1)) / 10.0))) - .widget(new ButtonWidget().setOnClick((clickData, widget) -> { - routingPageCode -= 1; - if (!widget.isClient()) { - widget.getWindow() - .closeWindow(); - widget.getContext() - .openSyncedWindow(10); - } - }) + routingPageCode += 1; + if (!widget.isClient()) { + widget.getWindow() + .closeWindow(); + widget.getContext() + .openSyncedWindow(10); + } + }) + .setSize(16, 16) + .setBackground(() -> { + List UI = new ArrayList<>(); + UI.add(GT_UITextures.BUTTON_STANDARD); + UI.add(GT_UITextures.OVERLAY_BUTTON_ARROW_GREEN_DOWN); + return UI.toArray(new IDrawable[0]); + }) + .addTooltip(i18n("tile.boxplusplus.boxUI.38")) + .setPos(200, 48) + .setEnabled(routingPageCode < Math.ceil((routingMap.size() + (recipe.islocked ? 0 : 1)) / 10.0))) + .widget(new ButtonWidget().setOnClick((clickData, widget) -> { + routingPageCode -= 1; + if (!widget.isClient()) { + widget.getWindow() + .closeWindow(); + widget.getContext() + .openSyncedWindow(10); + } + }) .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); @@ -2197,20 +2179,19 @@ protected ModularWindow createInitialingWindow(final EntityPlayer player) { .setEnabled(routingPageCode != 1)); // export builder.widget(new ButtonWidget().setOnClick((clickData, widget) -> { - if (widget.isClient()) { - NBTTagCompound Routing = new NBTTagCompound(); - Routing.setInteger("TotalRouting", routingMap.size()); - for (int i = 0; i < routingMap.size(); i++) { - Routing.setTag( - "Routing" + (i + 1), - routingMap.get(i) - .routingToUNbt()); + if (widget.isClient()) { + NBTTagCompound Routing = new NBTTagCompound(); + Routing.setInteger("TotalRouting", routingMap.size()); + for (int i = 0; i < routingMap.size(); i++) { + Routing.setTag("Routing" + (i + 1), + routingMap.get(i) + .routingToUNbt()); + } + GuiScreen.setClipboardString(serialize(Routing)); + player.addChatMessage(new ChatComponentText(i18n("tile.boxplusplus.chatmessage.2"))); + player.closeScreen(); } - GuiScreen.setClipboardString(serialize(Routing)); - player.addChatMessage(new ChatComponentText(i18n("tile.boxplusplus.chatmessage.2"))); - player.closeScreen(); - } - }) + }) .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); @@ -2221,18 +2202,19 @@ protected ModularWindow createInitialingWindow(final EntityPlayer player) { .addTooltip(i18n("tile.boxplusplus.boxUI.31")) .setPos(200, 25) .setEnabled(recipe.islocked)); - for (int i = 10 * routingPageCode - 9; i - <= Math.min(10 * routingPageCode, routingMap.size() + (recipe.islocked ? 0 : 1)); i++) { + for (int i = 10 * routingPageCode - 9; i <= Math.min( + 10 * routingPageCode, + routingMap.size() + (recipe.islocked ? 0 : 1)); i++) { int finalI = i; int posY = 18 * (i % 10 == 0 ? 10 : i % 10); builder.widget(new TextWidget(i18n("tile.boxplusplus.boxUI.07") + i).setPos(43, 9 + posY)) .widget(new ButtonWidget().setOnClick((clickData, widget) -> { - BoxRoutings.checkRouting(this); - if (!widget.isClient()) { - player.closeScreen(); - GT_UIInfos.openGTTileEntityUI(getBaseMetaTileEntity(), player); - } - }) + BoxRoutings.checkRouting(this); + if (!widget.isClient()) { + player.closeScreen(); + GT_UIInfos.openGTTileEntityUI(getBaseMetaTileEntity(), player); + } + }) .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); @@ -2244,12 +2226,12 @@ protected ModularWindow createInitialingWindow(final EntityPlayer player) { .setPos(81, 7 + posY) .setEnabled(routingMap.size() == (i - 1))) .widget(new ButtonWidget().setOnClick((clickData, widget) -> { - moduleSN = finalI; - if (!widget.isClient()) { - widget.getContext() - .openSyncedWindow(11); - } - }) + moduleSN = finalI; + if (!widget.isClient()) { + widget.getContext() + .openSyncedWindow(11); + } + }) .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); @@ -2261,16 +2243,16 @@ protected ModularWindow createInitialingWindow(final EntityPlayer player) { .setPos(81, 7 + posY) .setEnabled(routingMap.size() >= i)) .widget(new ButtonWidget().setOnClick((clickData, widget) -> { - if (!clickData.shift) return; - moduleSN = finalI; - routingMap.remove(moduleSN - 1); - if (!widget.isClient()) { - widget.getWindow() - .closeWindow(); - widget.getContext() - .openSyncedWindow(10); - } - }) + if (!clickData.shift) return; + moduleSN = finalI; + routingMap.remove(moduleSN - 1); + if (!widget.isClient()) { + widget.getWindow() + .closeWindow(); + widget.getContext() + .openSyncedWindow(10); + } + }) .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); @@ -2284,52 +2266,49 @@ protected ModularWindow createInitialingWindow(final EntityPlayer player) { if (routingMap.size() != i - 1) { ItemStackHandler drawitem = new ItemStackHandler(1); drawitem.setStackInSlot(0, routingMap.get(i - 1).RoutingMachine); - builder.widget( - SlotWidget.phantom(drawitem, 0) - .disableInteraction() - .setSize(16, 16) - .setPos(21, 7 + posY)); + builder.widget(SlotWidget.phantom(drawitem, 0) + .disableInteraction() + .setSize(16, 16) + .setPos(21, 7 + posY)); } } - builder.widget( - new DrawableWidget().setDrawable(GT_UITextures.OVERLAY_BUTTON_CROSS) + builder.widget(new DrawableWidget().setDrawable(GT_UITextures.OVERLAY_BUTTON_CROSS) .setPos(140, 71) .setSize(24, 24) .addTooltip(i18n("tile.boxplusplus.boxUI.ErrorCode." + routingStatus)) .setEnabled(routingStatus != 0 && !recipe.islocked)) - .widget( - new DrawableWidget().setDrawable(GT_UITextures.OVERLAY_BUTTON_CHECKMARK) - .setPos(140, 71) - .setSize(36, 36) - .addTooltip(i18n("tile.boxplusplus.boxUI.19")) - .setEnabled(routingStatus == 0 && !recipe.islocked)); + .widget(new DrawableWidget().setDrawable(GT_UITextures.OVERLAY_BUTTON_CHECKMARK) + .setPos(140, 71) + .setSize(36, 36) + .addTooltip(i18n("tile.boxplusplus.boxUI.19")) + .setEnabled(routingStatus == 0 && !recipe.islocked)); builder.widget(new ButtonWidget().setOnClick((clickData, widget) -> { - if (!recipe.islocked) buildRecipe(); - if (!widget.isClient()) { - widget.getContext() - .openSyncedWindow(12); - } - }) - .setSize(32, 32) - .setBackground(() -> { - List UI = new ArrayList<>(); - UI.add(GT_UITextures.BUTTON_STANDARD); - UI.add(GT_UITextures.OVERLAY_BUTTON_POWER_SWITCH_ON); - return UI.toArray(new IDrawable[0]); - }) - .addTooltip(i18n("tile.boxplusplus.boxUI.20")) - .setPos(140, 26) - .setEnabled(!routingMap.isEmpty() && !recipe.islocked)) + if (!recipe.islocked) buildRecipe(); + if (!widget.isClient()) { + widget.getContext() + .openSyncedWindow(12); + } + }) + .setSize(32, 32) + .setBackground(() -> { + List UI = new ArrayList<>(); + UI.add(GT_UITextures.BUTTON_STANDARD); + UI.add(GT_UITextures.OVERLAY_BUTTON_POWER_SWITCH_ON); + return UI.toArray(new IDrawable[0]); + }) + .addTooltip(i18n("tile.boxplusplus.boxUI.20")) + .setPos(140, 26) + .setEnabled(!routingMap.isEmpty() && !recipe.islocked)) // Double Recipe .widget(new ButtonWidget().setOnClick((clickData, widget) -> { - if (!widget.isClient()) { - routingStatus = doubleRecipe() ? 0 : 10; - widget.getWindow() - .closeWindow(); - widget.getContext() - .openSyncedWindow(10); - } - }) + if (!widget.isClient()) { + routingStatus = doubleRecipe() ? 0 : 10; + widget.getWindow() + .closeWindow(); + widget.getContext() + .openSyncedWindow(10); + } + }) .setSize(14, 14) .setBackground(() -> { List UI = new ArrayList<>(); @@ -2342,14 +2321,14 @@ protected ModularWindow createInitialingWindow(final EntityPlayer player) { .setEnabled(!routingMap.isEmpty() && !recipe.islocked)) // Halve Recipe .widget(new ButtonWidget().setOnClick((clickData, widget) -> { - if (!widget.isClient()) { - routingStatus = halveRecipe() ? 0 : 9; - widget.getWindow() - .closeWindow(); - widget.getContext() - .openSyncedWindow(10); - } - }) + if (!widget.isClient()) { + routingStatus = halveRecipe() ? 0 : 9; + widget.getWindow() + .closeWindow(); + widget.getContext() + .openSyncedWindow(10); + } + }) .setSize(14, 14) .setBackground(() -> { List UI = new ArrayList<>(); @@ -2362,11 +2341,11 @@ protected ModularWindow createInitialingWindow(final EntityPlayer player) { .setEnabled(!routingMap.isEmpty() && !recipe.islocked)) // export AE pattern .widget(new ButtonWidget().setOnClick((clickData, widget) -> { - if (!widget.isClient()) { - widget.getContext() - .openSyncedWindow(17); - } - }) + if (!widget.isClient()) { + widget.getContext() + .openSyncedWindow(17); + } + }) .setSize(14, 14) .setBackground(() -> { List UI = new ArrayList<>(); @@ -2379,11 +2358,11 @@ protected ModularWindow createInitialingWindow(final EntityPlayer player) { .setEnabled(recipe.islocked)) // clear recipe .widget(new ButtonWidget().setOnClick((clickData, widget) -> { - if (!widget.isClient()) { - widget.getContext() - .openSyncedWindow(20); - } - }) + if (!widget.isClient()) { + widget.getContext() + .openSyncedWindow(20); + } + }) .setSize(14, 14) .setBackground(() -> { List UI = new ArrayList<>(); @@ -2395,11 +2374,11 @@ protected ModularWindow createInitialingWindow(final EntityPlayer player) { .setPos(175, 44) .setEnabled(recipe.islocked)) .widget(new ButtonWidget().setOnClick((clickData, widget) -> { - if (!widget.isClient()) { - widget.getContext() - .openSyncedWindow(12); - } - }) + if (!widget.isClient()) { + widget.getContext() + .openSyncedWindow(12); + } + }) .setSize(32, 32) .setBackground(() -> { List ret = new ArrayList<>(); @@ -2419,127 +2398,93 @@ protected ModularWindow createInitialingWindow(final EntityPlayer player) { * @param player who is using the box */ protected ModularWindow createRoutingWindow(final EntityPlayer player) { - ModularWindow.Builder builder = ModularWindow.builder( - 220, - 80 + routingMap.get(moduleSN - 1) + ModularWindow.Builder builder = ModularWindow.builder(220, + 80 + + routingMap.get(moduleSN - 1) .calHeight() * 18); builder.setBackground(GT_UITextures.BACKGROUND_SINGLEBLOCK_DEFAULT); builder.setGuiTint(getGUIColorization()); Synchronize(builder); - builder.widget( - new DrawableWidget().setDrawable(GT_UITextures.OVERLAY_BUTTON_AUTOOUTPUT_FLUID) + builder.widget(new DrawableWidget().setDrawable(GT_UITextures.OVERLAY_BUTTON_AUTOOUTPUT_FLUID) .setPos(5, 5) .setSize(16, 16)) .widget(new TextWidget(i18n("tile.boxplusplus.boxUI.10") + moduleSN).setPos(25, 9)) - .widget( - ButtonWidget.closeWindowButton(true) - .setPos(200, 5)); + .widget(ButtonWidget.closeWindowButton(true) + .setPos(200, 5)); int Ycord = 9; for (int i = 0; i < routingMap.get(moduleSN - 1).InputItem.size(); i++) { ItemStackHandler drawitem = new ItemStackHandler(1); drawitem.setStackInSlot(0, routingMap.get(moduleSN - 1).InputItem.get(i)); - builder.widget( - SlotWidget.phantom(drawitem, 0) - .disableInteraction() - .setPos(25, Ycord += 16)); - builder.widget( - new TextWidget( - i18n("tile.boxplusplus.boxUI.11") + (i + 1) - + ": " - + routingMap.get(moduleSN - 1).InputItem.get(i) - .getDisplayName()).setPos(50, Ycord + 4)); + builder.widget(SlotWidget.phantom(drawitem, 0) + .disableInteraction() + .setPos(25, Ycord += 16)); + builder.widget(new TextWidget(i18n("tile.boxplusplus.boxUI.11") + (i + 1) + ": " + routingMap.get(moduleSN + - 1).InputItem.get(i) + .getDisplayName()).setPos(50, Ycord + 4)); } for (int i = 0; i < routingMap.get(moduleSN - 1).InputFluid.size(); i++) { - builder.widget( - FluidSlotWidget - .phantom( - new FluidTank( - routingMap.get(moduleSN - 1).InputFluid.get(i), - routingMap.get(moduleSN - 1).InputFluid.get(i).amount), - true) - .setInteraction(false, false) - .setPos(25, Ycord += 16)); - builder.widget( - new TextWidget( - i18n("tile.boxplusplus.boxUI.12") + (i + 1) - + ": " - + routingMap.get(moduleSN - 1).InputFluid.get(i) - .getLocalizedName()).setPos(50, Ycord + 4)); + builder.widget(FluidSlotWidget.phantom(new FluidTank(routingMap.get(moduleSN - 1).InputFluid.get(i), + routingMap.get(moduleSN - 1).InputFluid.get(i).amount), true) + .setInteraction(false, false) + .setPos(25, Ycord += 16)); + builder.widget(new TextWidget(i18n("tile.boxplusplus.boxUI.12") + (i + 1) + ": " + routingMap.get(moduleSN + - 1).InputFluid.get(i) + .getLocalizedName()).setPos(50, Ycord + 4)); } for (int i = 0; i < routingMap.get(moduleSN - 1).OutputItem.size(); i++) { ItemStackHandler drawitem = new ItemStackHandler(1); drawitem.setStackInSlot(0, routingMap.get(moduleSN - 1).OutputItem.get(i)); - builder.widget( - SlotWidget.phantom(drawitem, 0) - .disableInteraction() - .setPos(25, Ycord += 16)); - builder.widget( - new TextWidget( - i18n("tile.boxplusplus.boxUI.13") + (i + 1) - + ": " - + routingMap.get(moduleSN - 1).OutputItem.get(i) - .getDisplayName() - + "(" - + routingMap.get(moduleSN - 1).OutputChance.get(i) / 10000.0 - + ")").setPos(50, Ycord + 4)); + builder.widget(SlotWidget.phantom(drawitem, 0) + .disableInteraction() + .setPos(25, Ycord += 16)); + builder.widget(new TextWidget(i18n("tile.boxplusplus.boxUI.13") + (i + 1) + ": " + routingMap.get(moduleSN + - 1).OutputItem.get(i) + .getDisplayName() + "(" + routingMap.get(moduleSN - 1).OutputChance.get(i) / 10000.0 + ")").setPos( + 50, + Ycord + 4)); } for (int i = 0; i < routingMap.get(moduleSN - 1).OutputFluid.size(); i++) { - builder.widget( - FluidSlotWidget - .phantom( - new FluidTank( - routingMap.get(moduleSN - 1).OutputFluid.get(i), - routingMap.get(moduleSN - 1).OutputFluid.get(i).amount), - true) - .setInteraction(false, false) - .setPos(25, Ycord += 16)); - builder.widget( - new TextWidget( - i18n("tile.boxplusplus.boxUI.14") + (i + 1) - + ": " - + routingMap.get(moduleSN - 1).OutputFluid.get(i) - .getLocalizedName()).setPos(50, Ycord + 4)); + builder.widget(FluidSlotWidget.phantom(new FluidTank(routingMap.get(moduleSN - 1).OutputFluid.get(i), + routingMap.get(moduleSN - 1).OutputFluid.get(i).amount), true) + .setInteraction(false, false) + .setPos(25, Ycord += 16)); + builder.widget(new TextWidget(i18n("tile.boxplusplus.boxUI.14") + (i + 1) + ": " + routingMap.get(moduleSN + - 1).OutputFluid.get(i) + .getLocalizedName()).setPos(50, Ycord + 4)); } ItemStackHandler drawitem = new ItemStackHandler(1); drawitem.setStackInSlot(0, routingMap.get(moduleSN - 1).RoutingMachine); - builder.widget( - SlotWidget.phantom(drawitem, 0) - .disableInteraction() - .setPos(25, Ycord += 20)); - builder.widget( - new TextWidget( - i18n("tile.boxplusplus.boxUI.15") + routingMap.get(moduleSN - 1).RoutingMachine.getDisplayName()) - .setPos(50, Ycord + 4)); - builder.widget( - new TextWidget(i18n("tile.boxplusplus.boxUI.16") + routingMap.get(moduleSN - 1).voltage + "eu/t") - .setPos(50, Ycord += 16)); - builder.widget( - new TextWidget( - i18n("tile.boxplusplus.boxUI.17") + routingMap.get(moduleSN - 1).time / 20.00 - + "s (" - + routingMap.get(moduleSN - 1).time - + "tick)").setPos(50, Ycord += 16)); - builder.widget( - new TextWidget(new Text(i18n("tile.boxplusplus.boxUI.23"))).setTextAlignment(Alignment.Center) + builder.widget(SlotWidget.phantom(drawitem, 0) + .disableInteraction() + .setPos(25, Ycord += 20)); + builder.widget(new TextWidget(i18n("tile.boxplusplus.boxUI.15") + routingMap.get(moduleSN + - 1).RoutingMachine.getDisplayName()).setPos(50, Ycord + 4)); + builder.widget(new TextWidget(i18n("tile.boxplusplus.boxUI.16") + + routingMap.get(moduleSN - 1).voltage + + "eu/t").setPos(50, Ycord += 16)); + builder.widget(new TextWidget(i18n("tile.boxplusplus.boxUI.17") + + routingMap.get(moduleSN - 1).time / 20.00 + + "s (" + + routingMap.get(moduleSN - 1).time + + "tick)").setPos(50, Ycord += 16)); + builder.widget(new TextWidget(new Text(i18n("tile.boxplusplus.boxUI.23"))).setTextAlignment(Alignment.Center) .setSize(30, 16) .setPos(22, Ycord - 15)) - .widget( - new TextFieldWidget().setGetterInt(() -> routingMap.get(moduleSN - 1).Parallel) - .setSetterInt(val -> routingMap.get(moduleSN - 1).Parallel = val) - .setNumbers(1, maxParallel) - .setTextColor(Color.WHITE.normal) - .setTextAlignment(Alignment.Center) - .addTooltip(i18n("tile.boxplusplus.boxUI.24")) - .setBackground(GT_UITextures.BACKGROUND_TEXT_FIELD) - .setSize(40, 14) - .setPos(5, Ycord) - .setEnabled(!recipe.islocked)) - .widget( - new TextWidget(new Text(String.valueOf(routingMap.get(moduleSN - 1).Parallel))).setScale(1.2f) - .setTextAlignment(Alignment.Center) - .setSize(20, 16) - .setPos(25, Ycord - 2) - .setEnabled(recipe.islocked)); + .widget(new TextFieldWidget().setGetterInt(() -> routingMap.get(moduleSN - 1).Parallel) + .setSetterInt(val -> routingMap.get(moduleSN - 1).Parallel = val) + .setNumbers(1, maxParallel) + .setTextColor(Color.WHITE.normal) + .setTextAlignment(Alignment.Center) + .addTooltip(i18n("tile.boxplusplus.boxUI.24")) + .setBackground(GT_UITextures.BACKGROUND_TEXT_FIELD) + .setSize(40, 14) + .setPos(5, Ycord) + .setEnabled(!recipe.islocked)) + .widget(new TextWidget(new Text(String.valueOf(routingMap.get(moduleSN - 1).Parallel))).setScale(1.2f) + .setTextAlignment(Alignment.Center) + .setSize(20, 16) + .setPos(25, Ycord - 2) + .setEnabled(recipe.islocked)); return builder.build(); } @@ -2590,43 +2535,41 @@ public void onRemoveFocus() { } }; return builder.widget(new TextWidget(i18n("tile.boxplusplus.boxUI.46")).setPos(5, 5)) - .widget( - textField.setMaxLength(10000) - .setTextAlignment(Alignment.CenterLeft) - .setTextColor(Color.WHITE.dark(1)) - .setFocusOnGuiOpen(true) - .setBackground(GT_UITextures.BACKGROUND_TEXT_FIELD_LIGHT_GRAY.withOffset(-1, -1, 2, 2)) - .setPos(5, 16) - .setSize(250, 16)) + .widget(textField.setMaxLength(10000) + .setTextAlignment(Alignment.CenterLeft) + .setTextColor(Color.WHITE.dark(1)) + .setFocusOnGuiOpen(true) + .setBackground(GT_UITextures.BACKGROUND_TEXT_FIELD_LIGHT_GRAY.withOffset(-1, -1, 2, 2)) + .setPos(5, 16) + .setSize(250, 16)) .widget(new ButtonWidget().setOnClick((clickData, widget) -> { - if (!widget.isClient()) { - String ls = textField.getText(); - NBTTagCompound routing = deserialize(ls); - try { - if (routing != null) { - int count = routing.getInteger("TotalRouting"); - if (count > maxRouting) { - routingStatus = 8; - player.addChatMessage(new ChatComponentText(i18n("tile.boxplusplus.chatmessage.4"))); - return; - } - routingMap.clear(); - for (int i = 1; i <= count; i++) { - routingMap.add(new BoxRoutings(routing.getCompoundTag("Routing" + i), true)); + if (!widget.isClient()) { + String ls = textField.getText(); + NBTTagCompound routing = deserialize(ls); + try { + if (routing != null) { + int count = routing.getInteger("TotalRouting"); + if (count > maxRouting) { + routingStatus = 8; + player.addChatMessage(new ChatComponentText(i18n("tile.boxplusplus.chatmessage.4"))); + return; + } + routingMap.clear(); + for (int i = 1; i <= count; i++) { + routingMap.add(new BoxRoutings(routing.getCompoundTag("Routing" + i), true)); + } + player.addChatMessage(new ChatComponentText(i18n("tile.boxplusplus.chatmessage.5").replaceFirst( + "%count", + String.valueOf(count)))); + routingStatus = 0; + } else { + player.addChatMessage(new ChatComponentText(i18n("tile.boxplusplus.chatmessage.6"))); } - player.addChatMessage( - new ChatComponentText( - i18n("tile.boxplusplus.chatmessage.5") - .replaceFirst("%count", String.valueOf(count)))); - routingStatus = 0; - } else { - player.addChatMessage(new ChatComponentText(i18n("tile.boxplusplus.chatmessage.6"))); + } finally { + player.closeScreen(); } - } finally { - player.closeScreen(); } - } - }) + }) .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); @@ -2647,30 +2590,28 @@ protected ModularWindow createExportPatternWindow(final EntityPlayer player) { TextFieldWidget inputItem = new TextFieldWidget().setValidator(var -> Util.validator(recipe, var, false)); TextFieldWidget inputFluid = new TextFieldWidget().setValidator(var -> Util.validator(recipe, var, true)); return builder.widget(new TextWidget(i18n("tile.boxplusplus.boxUI.48")).setPos(5, 45)) - .widget( - inputItem.setTextAlignment(Alignment.CenterLeft) - .setTextColor(Color.WHITE.dark(1)) - .setFocusOnGuiOpen(false) - .setBackground(GT_UITextures.BACKGROUND_TEXT_FIELD_LIGHT_GRAY.withOffset(-1, -1, 2, 2)) - .setPos(12, 10) - .addTooltip(i18n("tile.boxplusplus.boxUI.13")) - .setSize(60, 12)) - .widget( - inputFluid.setTextAlignment(Alignment.CenterLeft) - .setTextColor(Color.WHITE.dark(1)) - .setFocusOnGuiOpen(false) - .setBackground(GT_UITextures.BACKGROUND_TEXT_FIELD_LIGHT_GRAY.withOffset(-1, -1, 2, 2)) - .setPos(96, 10) - .addTooltip(i18n("tile.boxplusplus.boxUI.14")) - .setSize(60, 12)) + .widget(inputItem.setTextAlignment(Alignment.CenterLeft) + .setTextColor(Color.WHITE.dark(1)) + .setFocusOnGuiOpen(false) + .setBackground(GT_UITextures.BACKGROUND_TEXT_FIELD_LIGHT_GRAY.withOffset(-1, -1, 2, 2)) + .setPos(12, 10) + .addTooltip(i18n("tile.boxplusplus.boxUI.13")) + .setSize(60, 12)) + .widget(inputFluid.setTextAlignment(Alignment.CenterLeft) + .setTextColor(Color.WHITE.dark(1)) + .setFocusOnGuiOpen(false) + .setBackground(GT_UITextures.BACKGROUND_TEXT_FIELD_LIGHT_GRAY.withOffset(-1, -1, 2, 2)) + .setPos(96, 10) + .addTooltip(i18n("tile.boxplusplus.boxUI.14")) + .setSize(60, 12)) .widget(new ButtonWidget().setOnClick((clickData, widget) -> { - if (!widget.isClient()) { - String itemInput = inputItem.getText(); - String fluidInput = inputFluid.getText(); - makeAE2Pattern(player, itemInput, fluidInput); - player.closeScreen(); - } - }) + if (!widget.isClient()) { + String itemInput = inputItem.getText(); + String fluidInput = inputFluid.getText(); + makeAE2Pattern(player, itemInput, fluidInput); + player.closeScreen(); + } + }) .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); @@ -2691,55 +2632,56 @@ protected ModularWindow createClearWindow(final EntityPlayer player) { builder.setBackground(GT_UITextures.BACKGROUND_SINGLEBLOCK_DEFAULT); builder.setGuiTint(getGUIColorization()); Synchronize(builder); - builder - .widget( - new DrawableWidget().setDrawable(AdaptableUITexture.of(Tags.MODID, "textures/gui/clear.png", 16, 16, 1)) - .setPos(5, 5) - .setSize(16, 16)) - .widget( - new TextWidget( - (randomSN.size() != 1 ? i18n("tile.boxplusplus.boxUI.42") : i18n("tile.boxplusplus.boxUI.43")) - + i18n("tile.boxplusplus.boxUI.44") - + EnumChatFormatting.RED - + randomSN.get(randomSN.size() - 1)).setPos(25, 5)); + builder.widget(new DrawableWidget().setDrawable(AdaptableUITexture.of( + Tags.MODID, + "textures/gui/clear.png", + 16, + 16, + 1)) + .setPos(5, 5) + .setSize(16, 16)) + .widget(new TextWidget((randomSN.size() != 1 + ? i18n("tile.boxplusplus.boxUI.42") + : i18n("tile.boxplusplus.boxUI.43")) + + i18n("tile.boxplusplus.boxUI.44") + + EnumChatFormatting.RED + + randomSN.get(randomSN.size() - 1)).setPos(25, 5)); for (int i = 1; i <= 5; i++) { int finalI = i; builder.widget(new ButtonWidget().setOnClick((clickData, widget) -> { - if (finalI == randomSN.get(randomSN.size() - 1)) { - if (randomSN.size() == 1) { - if (!widget.isClient()) { - routingMap.clear(); - recipe = new BoxRecipe(); - routingPageCode = 1; - routingStatus = 0; - player.closeScreen(); - player.addChatMessage(new ChatComponentText(i18n("tile.boxplusplus.boxUI.45"))); + if (finalI == randomSN.get(randomSN.size() - 1)) { + if (randomSN.size() == 1) { + if (!widget.isClient()) { + routingMap.clear(); + recipe = new BoxRecipe(); + routingPageCode = 1; + routingStatus = 0; + player.closeScreen(); + player.addChatMessage(new ChatComponentText(i18n("tile.boxplusplus.boxUI.45"))); + } + } else { + randomSN.remove(randomSN.size() - 1); + if (!widget.isClient()) { + widget.getWindow() + .closeWindow(); + widget.getContext() + .openSyncedWindow(20); + } } } else { - randomSN.remove(randomSN.size() - 1); - if (!widget.isClient()) { - widget.getWindow() - .closeWindow(); - widget.getContext() - .openSyncedWindow(20); - } + player.closeScreen(); + player.addChatMessage(new ChatComponentText(i18n("tile.boxplusplus.boxUI.47"))); } - } else { - player.closeScreen(); - player.addChatMessage(new ChatComponentText(i18n("tile.boxplusplus.boxUI.47"))); - } - }) + }) .setSize(24, 24) .setBackground(() -> { List UI = new ArrayList<>(); UI.add(GT_UITextures.BUTTON_STANDARD); - UI.add( - AdaptableUITexture.of( - Tags.MODID, - "textures/gui/number%.png".replaceFirst("%", String.valueOf(finalI)), - 275, - 81, - 1)); + UI.add(AdaptableUITexture.of(Tags.MODID, + "textures/gui/number%.png".replaceFirst("%", String.valueOf(finalI)), + 275, + 81, + 1)); return UI.toArray(new IDrawable[0]); }) .setPos(28 * (i - 1) + 5, 30 + (randomSN.size() == 1 ? 15 : 0))); @@ -2756,103 +2698,93 @@ protected ModularWindow createFinalRecipeWindow(final EntityPlayer player) { ModularWindow.Builder builder = ModularWindow.builder(220, 150 + recipe.calHeight() * 20); builder.setBackground(GT_UITextures.BACKGROUND_SINGLEBLOCK_DEFAULT); builder.setGuiTint(getGUIColorization()); - builder.widget( - new DrawableWidget().setDrawable(GT_UITextures.OVERLAY_BUTTON_AUTOOUTPUT_FLUID) + builder.widget(new DrawableWidget().setDrawable(GT_UITextures.OVERLAY_BUTTON_AUTOOUTPUT_FLUID) .setPos(5, 5) .setSize(16, 16)) .widget(new TextWidget(i18n("tile.boxplusplus.boxUI.22")).setPos(25, 9)) - .widget( - ButtonWidget.closeWindowButton(true) - .setPos(200, 5)); + .widget(ButtonWidget.closeWindowButton(true) + .setPos(200, 5)); int Ycord = 9; for (int i = 0; i < recipe.FinalItemInput.size(); i++) { ItemStackHandler drawitem = new ItemStackHandler(1); drawitem.setStackInSlot(0, recipe.FinalItemInput.get(i)); - builder.widget( - SlotWidget.phantom(drawitem, 0) - .disableInteraction() - .disableInteraction() - .setPos(25, Ycord += 16)); - builder.widget( - new TextWidget( - i18n("tile.boxplusplus.boxUI.11") + (i + 1) - + ": " - + recipe.FinalItemInput.get(i) - .getDisplayName()).setPos(50, Ycord + 4)); + builder.widget(SlotWidget.phantom(drawitem, 0) + .disableInteraction() + .disableInteraction() + .setPos(25, Ycord += 16)); + builder.widget(new TextWidget(i18n("tile.boxplusplus.boxUI.11") + + (i + 1) + + ": " + + recipe.FinalItemInput.get(i) + .getDisplayName()).setPos(50, Ycord + 4)); } for (int i = 0; i < recipe.FinalFluidInput.size(); i++) { - builder.widget( - FluidSlotWidget - .phantom(new FluidTank(recipe.FinalFluidInput.get(i), recipe.FinalFluidInput.get(i).amount), true) - .setInteraction(false, false) - .setPos(25, Ycord += 16)); - builder.widget( - new TextWidget( - i18n("tile.boxplusplus.boxUI.12") + (i + 1) - + ": " - + recipe.FinalFluidInput.get(i) - .getLocalizedName()).setPos(50, Ycord + 4)); + builder.widget(FluidSlotWidget.phantom(new FluidTank( + recipe.FinalFluidInput.get(i), + recipe.FinalFluidInput.get(i).amount), true) + .setInteraction(false, false) + .setPos(25, Ycord += 16)); + builder.widget(new TextWidget(i18n("tile.boxplusplus.boxUI.12") + + (i + 1) + + ": " + + recipe.FinalFluidInput.get(i) + .getLocalizedName()).setPos(50, Ycord + 4)); } for (int i = 0; i < recipe.FinalItemOutput.size(); i++) { ItemStackHandler drawitem = new ItemStackHandler(1); drawitem.setStackInSlot(0, recipe.FinalItemOutput.get(i)); - builder.widget( - SlotWidget.phantom(drawitem, 0) - .disableInteraction() - .setPos(25, Ycord += 16)); - builder.widget( - new TextWidget( - i18n("tile.boxplusplus.boxUI.13") + (i + 1) - + ": " - + recipe.FinalItemOutput.get(i) - .getDisplayName()).setPos(50, Ycord + 4)); + builder.widget(SlotWidget.phantom(drawitem, 0) + .disableInteraction() + .setPos(25, Ycord += 16)); + builder.widget(new TextWidget(i18n("tile.boxplusplus.boxUI.13") + + (i + 1) + + ": " + + recipe.FinalItemOutput.get(i) + .getDisplayName()).setPos(50, Ycord + 4)); } for (int i = 0; i < recipe.FinalFluidOutput.size(); i++) { - builder.widget( - FluidSlotWidget - .phantom(new FluidTank(recipe.FinalFluidOutput.get(i), recipe.FinalFluidOutput.get(i).amount), true) - .setInteraction(false, false) - .setPos(25, Ycord += 16)); - builder.widget( - new TextWidget( - i18n("tile.boxplusplus.boxUI.14") + (i + 1) - + ": " - + recipe.FinalFluidOutput.get(i) - .getLocalizedName()).setPos(50, Ycord + 4)); + builder.widget(FluidSlotWidget.phantom(new FluidTank( + recipe.FinalFluidOutput.get(i), + recipe.FinalFluidOutput.get(i).amount), true) + .setInteraction(false, false) + .setPos(25, Ycord += 16)); + builder.widget(new TextWidget(i18n("tile.boxplusplus.boxUI.14") + + (i + 1) + + ": " + + recipe.FinalFluidOutput.get(i) + .getLocalizedName()).setPos(50, Ycord + 4)); } - builder.widget( - new TextWidget(i18n("tile.boxplusplus.boxUI.16") + recipe.FinalVoteage + " eu/t").setPos(50, Ycord += 20)) - .widget( - new TextWidget( - i18n("tile.boxplusplus.boxUI.17") + recipe.FinalTime / 20.00 + "s (" + recipe.FinalTime + "tick)") - .setPos(50, Ycord += 16)); - builder.widget( - new TextWidget(i18n("tile.boxplusplus.boxUI.29") + recipe.parallel).setMaxWidth(180) - .setPos(50, Ycord += 16)); - builder.widget( - new TextWidget(i18n("tile.boxplusplus.boxUI.32").replace("%max", String.valueOf(maxParallel))) - .setMaxWidth(180) - .setPos(25, Ycord += 16) - .setEnabled(recipe.parallel > maxParallel)); + builder.widget(new TextWidget(i18n("tile.boxplusplus.boxUI.16") + recipe.FinalVoteage + " eu/t").setPos( + 50, + Ycord += 20)) + .widget(new TextWidget(i18n("tile.boxplusplus.boxUI.17") + + recipe.FinalTime / 20.00 + + "s (" + + recipe.FinalTime + + "tick)").setPos(50, Ycord += 16)); + builder.widget(new TextWidget(i18n("tile.boxplusplus.boxUI.29") + recipe.parallel).setMaxWidth(180) + .setPos(50, Ycord += 16)); + builder.widget(new TextWidget(i18n("tile.boxplusplus.boxUI.32").replace( + "%max", + String.valueOf(maxParallel))).setMaxWidth(180) + .setPos(25, Ycord += 16) + .setEnabled(recipe.parallel > maxParallel)); StringBuilder modules = new StringBuilder(); modules.append(i18n("tile.boxplusplus.boxUI.27")); for (int i : recipe.requireModules.keySet()) { - modules - .append( - recipe.requireModules.get(i) == 1 ? i18n("tile.boxplusplus.boxUI.module." + (i + 1)) + " (T2)" - : i18n("tile.boxplusplus.boxUI.module." + (i + 1))) + modules.append(recipe.requireModules.get(i) == 1 ? i18n("tile.boxplusplus.boxUI.module." + (i + 1)) + + " (T2)" : i18n("tile.boxplusplus.boxUI.module." + (i + 1))) .append(" | "); } - builder.widget( - new TextWidget(modules.toString()).setMaxWidth(180) + builder.widget(new TextWidget(modules.toString()).setMaxWidth(180) .setPos(25, Ycord += 32)) .widget(new ButtonWidget().setOnClick((clickData, widget) -> { - recipe.islocked = true; - if (!widget.isClient()) { - player.closeScreen(); - GT_UIInfos.openGTTileEntityUI(getBaseMetaTileEntity(), player); - } - }) + recipe.islocked = true; + if (!widget.isClient()) { + player.closeScreen(); + GT_UIInfos.openGTTileEntityUI(getBaseMetaTileEntity(), player); + } + }) .setSize(20, 20) .setBackground(() -> { List UI = new ArrayList<>(); @@ -2864,14 +2796,14 @@ protected ModularWindow createFinalRecipeWindow(final EntityPlayer player) { .setPos(80, Ycord + 20) .setEnabled(!recipe.islocked && recipe.parallel <= maxParallel)) .widget(new ButtonWidget().setOnClick((clickData, widget) -> { - recipe = new BoxRecipe(); - if (!widget.isClient()) { - widget.getWindow() - .closeWindow(); - widget.getContext() - .openSyncedWindow(10); - } - }) + recipe = new BoxRecipe(); + if (!widget.isClient()) { + widget.getWindow() + .closeWindow(); + widget.getContext() + .openSyncedWindow(10); + } + }) .setSize(20, 20) .setBackground(() -> { List UI = new ArrayList<>(); @@ -2893,24 +2825,22 @@ protected ModularWindow createWikiWindow(final EntityPlayer player) { builder.setBackground(GT_UITextures.BACKGROUND_SINGLEBLOCK_DEFAULT); builder.setGuiTint(getGUIColorization()); Synchronize(builder); - builder.widget( - new DrawableWidget().setDrawable(GT_UITextures.OVERLAY_BUTTON_NEI) + builder.widget(new DrawableWidget().setDrawable(GT_UITextures.OVERLAY_BUTTON_NEI) .setPos(5, 5) .setSize(16, 16)) .widget(new TextWidget(i18n("tile.boxplusplus.boxwiki.1")).setPos(25, 9)) - .widget( - ButtonWidget.closeWindowButton(true) - .setPos(285, 5)) + .widget(ButtonWidget.closeWindowButton(true) + .setPos(285, 5)) .widget(new TextWidget(i18n("tile.boxplusplus.boxwiki.2")).setPos(25, 30)) .widget(new ButtonWidget().setOnClick((clickData, widget) -> { - wikiPageCode = 3; - if (!widget.isClient()) { - widget.getWindow() - .closeWindow(); - widget.getContext() - .openSyncedWindow(15); - } - }) + wikiPageCode = 3; + if (!widget.isClient()) { + widget.getWindow() + .closeWindow(); + widget.getContext() + .openSyncedWindow(15); + } + }) .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); @@ -2921,14 +2851,14 @@ protected ModularWindow createWikiWindow(final EntityPlayer player) { .addTooltip(i18n("tile.boxplusplus.boxwiki.3")) .setPos(30, 45)) .widget(new ButtonWidget().setOnClick((clickData, widget) -> { - wikiPageCode = 4; - if (!widget.isClient()) { - widget.getWindow() - .closeWindow(); - widget.getContext() - .openSyncedWindow(15); - } - }) + wikiPageCode = 4; + if (!widget.isClient()) { + widget.getWindow() + .closeWindow(); + widget.getContext() + .openSyncedWindow(15); + } + }) .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); @@ -2939,14 +2869,14 @@ protected ModularWindow createWikiWindow(final EntityPlayer player) { .addTooltip(i18n("tile.boxplusplus.boxwiki.4")) .setPos(80, 45)) .widget(new ButtonWidget().setOnClick((clickData, widget) -> { - wikiPageCode = 5; - if (!widget.isClient()) { - widget.getWindow() - .closeWindow(); - widget.getContext() - .openSyncedWindow(15); - } - }) + wikiPageCode = 5; + if (!widget.isClient()) { + widget.getWindow() + .closeWindow(); + widget.getContext() + .openSyncedWindow(15); + } + }) .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); @@ -2957,14 +2887,14 @@ protected ModularWindow createWikiWindow(final EntityPlayer player) { .addTooltip(i18n("tile.boxplusplus.boxwiki.5")) .setPos(130, 45)) .widget(new ButtonWidget().setOnClick((clickData, widget) -> { - wikiPageCode = 6; - if (!widget.isClient()) { - widget.getWindow() - .closeWindow(); - widget.getContext() - .openSyncedWindow(15); - } - }) + wikiPageCode = 6; + if (!widget.isClient()) { + widget.getWindow() + .closeWindow(); + widget.getContext() + .openSyncedWindow(15); + } + }) .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); @@ -2975,14 +2905,14 @@ protected ModularWindow createWikiWindow(final EntityPlayer player) { .addTooltip(i18n("tile.boxplusplus.boxwiki.6")) .setPos(180, 45)) .widget(new ButtonWidget().setOnClick((clickData, widget) -> { - wikiPageCode = 7; - if (!widget.isClient()) { - widget.getWindow() - .closeWindow(); - widget.getContext() - .openSyncedWindow(15); - } - }) + wikiPageCode = 7; + if (!widget.isClient()) { + widget.getWindow() + .closeWindow(); + widget.getContext() + .openSyncedWindow(15); + } + }) .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); @@ -3001,50 +2931,44 @@ protected ModularWindow createWikiWindow(final EntityPlayer player) { @Override protected void drawTexts(DynamicPositionedColumn screenElements, SlotWidget inventorySlot) { super.drawTexts(screenElements, inventorySlot); - screenElements.widget( - new TextWidget(i18n("tile.boxplusplus.boxError." + machineError[0])).setDefaultColor(COLOR_TEXT_WHITE.get()) + screenElements.widget(new TextWidget(i18n("tile.boxplusplus.boxError." + machineError[0])).setDefaultColor( + COLOR_TEXT_WHITE.get()) .setEnabled(machineError[0] != 0)) - .widget( - new TextWidget(i18n("tile.boxplusplus.boxUI.module." + machineError[1])) - .setDefaultColor(COLOR_TEXT_WHITE.get()) - .setEnabled(machineError[1] != 0)); + .widget(new TextWidget(i18n("tile.boxplusplus.boxUI.module." + machineError[1])).setDefaultColor( + COLOR_TEXT_WHITE.get()) + .setEnabled(machineError[1] != 0)); } // Help wiki show pages private void getwikiByIndex(ModularWindow.Builder builder) { switch (wikiPageCode) { - case 3 -> builder.widget( - new TextWidget(i18n("tile.boxplusplus.boxwiki.8")).setMaxWidth(260) - .setPos(25, 85)); + case 3 -> builder.widget(new TextWidget(i18n("tile.boxplusplus.boxwiki.8")).setMaxWidth(260) + .setPos(25, 85)); case 4 -> { - builder.widget( - new TextWidget(i18n("tile.boxplusplus.boxwiki.9")).setMaxWidth(260) - .setPos(25, 85)); - builder.widget( - new TextWidget(i18n("tile.boxplusplus.boxwiki.10") + i18n("tile.boxplusplus.boxwiki.11")) - .setTextAlignment(TopLeft) - .setMaxWidth(260) - .setPos(25, 95)); + builder.widget(new TextWidget(i18n("tile.boxplusplus.boxwiki.9")).setMaxWidth(260) + .setPos(25, 85)); + builder.widget(new TextWidget(i18n("tile.boxplusplus.boxwiki.10") + + i18n("tile.boxplusplus.boxwiki.11")).setTextAlignment(TopLeft) + .setMaxWidth(260) + .setPos(25, 95)); } case 5 -> { - builder.widget( - new TextWidget(i18n("tile.boxplusplus.boxwiki.12")).setTextAlignment(TopLeft) - .setMaxWidth(260) - .setPos(25, 85)); - builder.widget( - new TextWidget(i18n("tile.boxplusplus.boxwiki.13") + i18n("tile.boxplusplus.boxwiki.14")) - .setTextAlignment(TopLeft) - .setMaxWidth(260) - .setPos(25, 115)); + builder.widget(new TextWidget(i18n("tile.boxplusplus.boxwiki.12")).setTextAlignment(TopLeft) + .setMaxWidth(260) + .setPos(25, 85)); + builder.widget(new TextWidget(i18n("tile.boxplusplus.boxwiki.13") + + i18n("tile.boxplusplus.boxwiki.14")).setTextAlignment(TopLeft) + .setMaxWidth(260) + .setPos(25, 115)); builder.widget(new ButtonWidget().setOnClick((clickData, widget) -> { - wikiPageCode = 50; - if (!widget.isClient()) { - widget.getWindow() - .closeWindow(); - widget.getContext() - .openSyncedWindow(15); - } - }) + wikiPageCode = 50; + if (!widget.isClient()) { + widget.getWindow() + .closeWindow(); + widget.getContext() + .openSyncedWindow(15); + } + }) .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); @@ -3055,34 +2979,28 @@ private void getwikiByIndex(ModularWindow.Builder builder) { .addTooltip(i18n("tile.boxplusplus.boxwiki.0")) .setPos(135, 175)); } - case 6 -> builder.widget( - new TextWidget(i18n("tile.boxplusplus.boxwiki.16")).setTextAlignment(TopLeft) + case 6 -> builder.widget(new TextWidget(i18n("tile.boxplusplus.boxwiki.16")).setTextAlignment(TopLeft) .setMaxWidth(260) .setPos(25, 85)) - .widget( - new TextWidget(i18n("tile.boxplusplus.boxwiki.17")).setMaxWidth(260) - .setPos(25, 105)) - .widget( - new TextWidget(i18n("tile.boxplusplus.boxwiki.18")).setMaxWidth(260) - .setPos(25, 115)) - .widget( - new TextWidget(i18n("tile.boxplusplus.boxwiki.19")).setMaxWidth(260) - .setPos(25, 125)) - .widget( - new TextWidget(i18n("tile.boxplusplus.boxwiki.20")).setMaxWidth(260) - .setPos(25, 135)) - .widget( - new TextWidget(i18n("tile.boxplusplus.boxwiki.21")).setMaxWidth(260) - .setPos(25, 145)) + .widget(new TextWidget(i18n("tile.boxplusplus.boxwiki.17")).setMaxWidth(260) + .setPos(25, 105)) + .widget(new TextWidget(i18n("tile.boxplusplus.boxwiki.18")).setMaxWidth(260) + .setPos(25, 115)) + .widget(new TextWidget(i18n("tile.boxplusplus.boxwiki.19")).setMaxWidth(260) + .setPos(25, 125)) + .widget(new TextWidget(i18n("tile.boxplusplus.boxwiki.20")).setMaxWidth(260) + .setPos(25, 135)) + .widget(new TextWidget(i18n("tile.boxplusplus.boxwiki.21")).setMaxWidth(260) + .setPos(25, 145)) .widget(new ButtonWidget().setOnClick((clickData, widget) -> { - wikiPageCode = 51; - if (!widget.isClient()) { - widget.getWindow() - .closeWindow(); - widget.getContext() - .openSyncedWindow(15); - } - }) + wikiPageCode = 51; + if (!widget.isClient()) { + widget.getWindow() + .closeWindow(); + widget.getContext() + .openSyncedWindow(15); + } + }) .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); @@ -3093,20 +3011,19 @@ private void getwikiByIndex(ModularWindow.Builder builder) { .addTooltip(i18n("tile.boxplusplus.boxwiki.0")) .setPos(135, 175)); case 7 -> { - builder.widget( - new TextWidget(i18n("tile.boxplusplus.boxwiki.24")).setMaxWidth(260) - .setPos(25, 85)); + builder.widget(new TextWidget(i18n("tile.boxplusplus.boxwiki.24")).setMaxWidth(260) + .setPos(25, 85)); for (int i = 1; i < 15; i++) { int finalI = i; builder.widget(new ButtonWidget().setOnClick((clickData, widget) -> { - moduleSN = finalI; - if (!widget.isClient()) { - widget.getWindow() - .closeWindow(); - widget.getContext() - .openSyncedWindow(15); - } - }) + moduleSN = finalI; + if (!widget.isClient()) { + widget.getWindow() + .closeWindow(); + widget.getContext() + .openSyncedWindow(15); + } + }) .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); @@ -3117,56 +3034,45 @@ private void getwikiByIndex(ModularWindow.Builder builder) { .addTooltip(i18n("tile.boxplusplus.boxUI.module." + i)) .setPos(10 + 18 * i, 100)); } - builder - .widget( - new TextWidget( - i18n("tile.boxplusplus.boxwiki.25") + i18n("tile.boxplusplus.boxUI.module." + moduleSN)) - .setMaxWidth(260) - .setPos(25, 120)) - .widget( - new TextWidget( - i18n("tile.boxplusplus.boxwiki.26") - + i18n("tile.boxplusplus.boxUI.module.context." + moduleSN + "b")).setMaxWidth(260) - .setPos(25, 130)) - .widget( - new TextWidget( - i18n("tile.boxplusplus.boxwiki.27") - + i18n("tile.boxplusplus.boxUI.module.context." + moduleSN + "c")).setMaxWidth(260) - .setPos(25, 150)) - .widget( - new TextWidget( - i18n("tile.boxplusplus.boxwiki.28") - + i18n("tile.boxplusplus.boxUI.module.context." + moduleSN + "d")).setMaxWidth(260) - .setPos(25, 160)) - .widget( - new TextWidget( - i18n("tile.boxplusplus.boxwiki.29") - + i18n("tile.boxplusplus.boxUI.module.context." + moduleSN + "e")).setMaxWidth(260) - .setPos(25, 170)); + builder.widget(new TextWidget(i18n("tile.boxplusplus.boxwiki.25") + i18n( + "tile.boxplusplus.boxUI.module." + moduleSN)).setMaxWidth(260) + .setPos(25, 120)) + .widget(new TextWidget(i18n("tile.boxplusplus.boxwiki.26") + i18n( + "tile.boxplusplus.boxUI.module.context." + moduleSN + "b")).setMaxWidth(260) + .setPos(25, 130)) + .widget(new TextWidget(i18n("tile.boxplusplus.boxwiki.27") + i18n( + "tile.boxplusplus.boxUI.module.context." + moduleSN + "c")).setMaxWidth(260) + .setPos(25, 150)) + .widget(new TextWidget(i18n("tile.boxplusplus.boxwiki.28") + i18n( + "tile.boxplusplus.boxUI.module.context." + moduleSN + "d")).setMaxWidth(260) + .setPos(25, 160)) + .widget(new TextWidget(i18n("tile.boxplusplus.boxwiki.29") + i18n( + "tile.boxplusplus.boxUI.module.context." + moduleSN + "e")).setMaxWidth(260) + .setPos(25, 170)); } - case 50 -> builder.widget( - new TextWidget(i18n("tile.boxplusplus.boxwiki.15")).setTextAlignment(TopLeft) - .setMaxWidth(260) - .setPos(25, 85)); - case 51 -> builder.widget( - new TextWidget(i18n("tile.boxplusplus.boxwiki.22")).setMaxWidth(260) + case 50 -> builder.widget(new TextWidget(i18n("tile.boxplusplus.boxwiki.15")).setTextAlignment(TopLeft) + .setMaxWidth(260) + .setPos(25, 85)); + case 51 -> builder.widget(new TextWidget(i18n("tile.boxplusplus.boxwiki.22")).setMaxWidth(260) .setPos(25, 85)) - .widget( - new TextWidget(i18n("tile.boxplusplus.boxwiki.23")).setMaxWidth(260) - .setPos(180, 85)) - .widget( - new DrawableWidget() - .setDrawable(AdaptableUITexture.of(Tags.MODID, "textures/gui/time.png", 275, 81, 1)) - .setPos(20, 105) - .setSize(130, 42)) - .widget( - new DrawableWidget() - .setDrawable(AdaptableUITexture.of(Tags.MODID, "textures/gui/voteage.png", 124, 81, 1)) - .setPos(190, 105) - .setSize(62, 40)) - .widget( - new TextWidget(i18n("tile.boxplusplus.boxwiki.52")).setMaxWidth(260) - .setPos(25, 165)); + .widget(new TextWidget(i18n("tile.boxplusplus.boxwiki.23")).setMaxWidth(260) + .setPos(180, 85)) + .widget(new DrawableWidget().setDrawable(AdaptableUITexture.of(Tags.MODID, + "textures/gui/time.png", + 275, + 81, + 1)) + .setPos(20, 105) + .setSize(130, 42)) + .widget(new DrawableWidget().setDrawable(AdaptableUITexture.of(Tags.MODID, + "textures/gui/voteage.png", + 124, + 81, + 1)) + .setPos(190, 105) + .setSize(62, 40)) + .widget(new TextWidget(i18n("tile.boxplusplus.boxwiki.52")).setMaxWidth(260) + .setPos(25, 165)); } } @@ -3175,9 +3081,9 @@ private void getwikiByIndex(ModularWindow.Builder builder) { */ public void Synchronize(ModularWindow.Builder builder) { builder.widget(new FakeSyncWidget.ListSyncer<>(() -> randomSN, var1 -> { - randomSN.clear(); - randomSN.addAll(var1); - }, PacketBuffer::writeInt, PacketBuffer::readInt)) + randomSN.clear(); + randomSN.addAll(var1); + }, PacketBuffer::writeInt, PacketBuffer::readInt)) .widget(new FakeSyncWidget.ListSyncer<>(() -> routingMap, var1 -> { routingMap.clear(); routingMap.addAll(var1); @@ -3217,11 +3123,12 @@ public void Synchronize(ModularWindow.Builder builder) { .widget(new FakeSyncWidget.IntegerSyncer(() -> maxRouting, var1 -> maxRouting = var1)); for (int i = 0; i < 14; i++) { int finalI = i; - builder - .widget( - new FakeSyncWidget.BooleanSyncer(() -> moduleSwitch[finalI], var1 -> moduleSwitch[finalI] = var1)) - .widget( - new FakeSyncWidget.BooleanSyncer(() -> moduleActive[finalI], var1 -> moduleActive[finalI] = var1)) + builder.widget(new FakeSyncWidget.BooleanSyncer( + () -> moduleSwitch[finalI], + var1 -> moduleSwitch[finalI] = var1)) + .widget(new FakeSyncWidget.BooleanSyncer( + () -> moduleActive[finalI], + var1 -> moduleActive[finalI] = var1)) .widget(new FakeSyncWidget.IntegerSyncer(() -> moduleTier[finalI], var1 -> moduleTier[finalI] = var1)); } } diff --git a/src/main/java/com/silvermoon/boxplusplus/common/tileentities/GTMachineDroneMaintainingCentre.java b/src/main/java/com/silvermoon/boxplusplus/common/tileentities/GTMachineDroneMaintainingCentre.java index 880f6d0..beb3f51 100644 --- a/src/main/java/com/silvermoon/boxplusplus/common/tileentities/GTMachineDroneMaintainingCentre.java +++ b/src/main/java/com/silvermoon/boxplusplus/common/tileentities/GTMachineDroneMaintainingCentre.java @@ -42,8 +42,9 @@ import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; -public class GTMachineDroneMaintainingCentre extends - GT_MetaTileEntity_ExtendedPowerMultiBlockBase implements ISurvivalConstructable { +public class GTMachineDroneMaintainingCentre + extends GT_MetaTileEntity_ExtendedPowerMultiBlockBase + implements ISurvivalConstructable { private static final IIconContainer Active = new Textures.BlockIcons.CustomIcon("iconsets/droneCentre"); private static final IIconContainer Inactive = new Textures.BlockIcons.CustomIcon("iconsets/droneCentre"); @@ -53,17 +54,16 @@ public class GTMachineDroneMaintainingCentre extends public int droneLevel = 0; private final Random random = new Random(); // spotless off - private static final IStructureDefinition STRUCTURE_DEFINITION = StructureDefinition - .builder() + private static final IStructureDefinition STRUCTURE_DEFINITION = StructureDefinition.builder() .addShape( "main", - transpose( - new String[][] { { " ", " ", " ", " ", "CCCCC", "CCCCC", "CCCCC", "CCCCC", "CCCCC" }, - { "CE~EC", "C C", "C C", "C C", "CAAAC", "CCCCC", "CAAAC", "C C", "CCCCC" }, - { "CEEEC", "CBBBC", "CBDBC", "CBBBC", "CCCCC", "CCCCC", "CCCCC", "CCCCC", "CCCCC" }, - { "C C", " ", " ", " ", " ", " ", " ", " ", "C C" }, - { "C C", " ", " ", " ", " ", " ", " ", " ", "C C" }, - { "C C", " ", " ", " ", " ", " ", " ", " ", "C C" } })) + transpose(new String[][] { + { " ", " ", " ", " ", "CCCCC", "CCCCC", "CCCCC", "CCCCC", "CCCCC" }, + { "CE~EC", "C C", "C C", "C C", "CAAAC", "CCCCC", "CAAAC", "C C", "CCCCC" }, + { "CEEEC", "CBBBC", "CBDBC", "CBBBC", "CCCCC", "CCCCC", "CCCCC", "CCCCC", "CCCCC" }, + { "C C", " ", " ", " ", " ", " ", " ", " ", "C C" }, + { "C C", " ", " ", " ", " ", " ", " ", " ", "C C" }, + { "C C", " ", " ", " ", " ", " ", " ", " ", "C C" } })) .addElement( 'E', buildHatchAdder(GTMachineDroneMaintainingCentre.class).atLeast(InputBus) @@ -96,12 +96,10 @@ public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, ForgeDirec if (side == aFacing) { if (aActive) return new ITexture[] { casingTexturePages[8][67], TextureFactory.builder() .addIcon(Active) - .extFacing() - .build() }; + .extFacing().build() }; return new ITexture[] { casingTexturePages[8][67], TextureFactory.builder() .addIcon(Inactive) - .extFacing() - .build() }; + .extFacing().build() }; } return new ITexture[] { casingTexturePages[8][67] }; } @@ -171,7 +169,8 @@ public boolean explodesOnComponentBreak(ItemStack aStack) { public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { disableMaintenance = true; rotation = (rotation + 50) % 360d; - if (aTick % 200 == 0 && aBaseMetaTileEntity.isServerSide() + if (aTick % 200 == 0 + && aBaseMetaTileEntity.isServerSide() && (droneLevel == 1 || droneLevel == 2) && random.nextInt(360 * (3 - droneLevel)) == 0) { droneLevel = 0; diff --git a/src/main/java/com/silvermoon/boxplusplus/common/tileentities/GTTileEntityDroneMaintananceModule.java b/src/main/java/com/silvermoon/boxplusplus/common/tileentities/GTTileEntityDroneMaintananceModule.java index 52ec638..706b1c0 100644 --- a/src/main/java/com/silvermoon/boxplusplus/common/tileentities/GTTileEntityDroneMaintananceModule.java +++ b/src/main/java/com/silvermoon/boxplusplus/common/tileentities/GTTileEntityDroneMaintananceModule.java @@ -124,8 +124,7 @@ public void loadNBTData(NBTTagCompound aNBT) { public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { if (aBaseMetaTileEntity.isServerSide()) { if (Util.droneMap.containsKey(aBaseMetaTileEntity.getWorld().provider.dimensionId)) { - List target = Util.droneMap - .get(aBaseMetaTileEntity.getWorld().provider.dimensionId) + List target = Util.droneMap.get(aBaseMetaTileEntity.getWorld().provider.dimensionId) .stream() .collect(Collectors.toList()); for (GTMachineDroneMaintainingCentre DMC : target) { @@ -162,9 +161,8 @@ public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex } public boolean hasConnection() { - return mainframe != null && mainframe.getBaseMetaTileEntity() != null - && !mainframe.getBaseMetaTileEntity() - .isDead(); + return mainframe != null && mainframe.getBaseMetaTileEntity() != null && !mainframe.getBaseMetaTileEntity() + .isDead(); } private void setRandomFault(GT_MetaTileEntity_MultiBlockBase mte) { @@ -185,9 +183,8 @@ private void setRandomFault(GT_MetaTileEntity_MultiBlockBase mte) { public GT_MetaTileEntity_MultiBlockBase tryFindGTMultiBlock(GTTileEntityDroneMaintananceModule maintain) { Queue tQueue = new LinkedList<>(); Set visited = new HashSet<>(80); - tQueue.add( - maintain.getBaseMetaTileEntity() - .getCoords()); + tQueue.add(maintain.getBaseMetaTileEntity() + .getCoords()); World world = maintain.getBaseMetaTileEntity() .getWorld(); while (!tQueue.isEmpty()) { @@ -208,10 +205,8 @@ public GT_MetaTileEntity_MultiBlockBase tryFindGTMultiBlock(GTTileEntityDroneMai // 1) If we've visited less than 5 blocks, then yes // 2) If the tile says we should recursively updated (pipes don't, machine blocks do) // 3) If the block at the coordinates is marked as a machine block - if (visited.size() < 5 - || (tTileEntity instanceof IMachineBlockUpdateable - && ((IMachineBlockUpdateable) tTileEntity).isMachineBlockUpdateRecursive()) - || isMachineBlock) { + if (visited.size() < 5 || (tTileEntity instanceof IMachineBlockUpdateable + && ((IMachineBlockUpdateable) tTileEntity).isMachineBlockUpdateRecursive()) || isMachineBlock) { ChunkCoordinates tCoords; if (visited.add(tCoords = new ChunkCoordinates(aCoords.posX + 1, aCoords.posY, aCoords.posZ))) diff --git a/src/main/java/com/silvermoon/boxplusplus/util/BoxRecipe.java b/src/main/java/com/silvermoon/boxplusplus/util/BoxRecipe.java index 20776da..4869266 100644 --- a/src/main/java/com/silvermoon/boxplusplus/util/BoxRecipe.java +++ b/src/main/java/com/silvermoon/boxplusplus/util/BoxRecipe.java @@ -70,8 +70,9 @@ public static void ItemOnBox(List input, List output) { for (ItemStack iItem : input) { for (ItemStack oItem : output) { if (GT_Utility.areStacksEqual(oItem, iItem, true) || (oItem.getUnlocalizedName() - .startsWith("item.Circuit") - && GT_OreDictUnificator.isInputStackEqual(iItem, GT_OreDictUnificator.get(oItem)))) { + .startsWith("item.Circuit") && GT_OreDictUnificator.isInputStackEqual( + iItem, + GT_OreDictUnificator.get(oItem)))) { if (iItem.stackSize == oItem.stackSize) { iItem.stackSize = 0; oItem.stackSize = 0; @@ -120,14 +121,14 @@ public NBTTagCompound RecipeToNBT() { recipe.setTag("InputItem" + (i + 1), writeBoxItemToNBT(FinalItemInput.get(i), new NBTTagCompound())); for (int i = 0; i < FinalItemOutput.size(); i++) recipe.setTag("OutputItem" + (i + 1), writeBoxItemToNBT(FinalItemOutput.get(i), new NBTTagCompound())); - for (int i = 0; i < FinalFluidInput.size(); i++) recipe.setTag( - "InputFluid" + (i + 1), - FinalFluidInput.get(i) - .writeToNBT(new NBTTagCompound())); - for (int i = 0; i < FinalFluidOutput.size(); i++) recipe.setTag( - "OutputFluid" + (i + 1), - FinalFluidOutput.get(i) - .writeToNBT(new NBTTagCompound())); + for (int i = 0; i < FinalFluidInput.size(); i++) + recipe.setTag("InputFluid" + (i + 1), + FinalFluidInput.get(i) + .writeToNBT(new NBTTagCompound())); + for (int i = 0; i < FinalFluidOutput.size(); i++) + recipe.setTag("OutputFluid" + (i + 1), + FinalFluidOutput.get(i) + .writeToNBT(new NBTTagCompound())); NBTTagCompound requireModule = new NBTTagCompound(); requireModules.forEach((k, v) -> requireModule.setInteger(String.valueOf(k), v)); recipe.setLong("Voteage", FinalVoteage); diff --git a/src/main/java/com/silvermoon/boxplusplus/util/BoxRoutings.java b/src/main/java/com/silvermoon/boxplusplus/util/BoxRoutings.java index d8a2d81..d19d9ad 100644 --- a/src/main/java/com/silvermoon/boxplusplus/util/BoxRoutings.java +++ b/src/main/java/com/silvermoon/boxplusplus/util/BoxRoutings.java @@ -80,10 +80,11 @@ public BoxRoutings(GT_Recipe recipe, ItemStack machine) { time *= 4; OutputFluid.forEach(f -> f.amount = (int) (f.amount * 0.75)); } - case "multimachine.blastfurnace", "multimachine.adv.blastfurnace", "megablastfurnace" -> this.special = recipe.mSpecialValue; + case "multimachine.blastfurnace", "multimachine.adv.blastfurnace", "megablastfurnace" -> + this.special = recipe.mSpecialValue; case "componentassemblyline" -> time /= 16; - case "quantumforcetransformer.controller.tier.single" -> OutputFluid - .forEach(f -> f.amount = f.amount / (OutputFluid.size() + OutputItem.size())); + case "quantumforcetransformer.controller.tier.single" -> + OutputFluid.forEach(f -> f.amount = f.amount / (OutputFluid.size() + OutputItem.size())); } } @@ -116,9 +117,8 @@ public BoxRoutings(FluidStack fOutputs, ItemStack machine, Long v, int t) { public BoxRoutings(InventoryCrafting inputs, ItemStack outputs, ItemStack machine) { for (int i = 0; i < 9; i++) { if (inputs.getStackInSlot(i) == null) continue; - InputItem.add( - inputs.getStackInSlot(i) - .copy()); + InputItem.add(inputs.getStackInSlot(i) + .copy()); } ItemStack b = outputs.copy(); OutputItem.add(b); @@ -195,14 +195,14 @@ public NBTTagCompound routingToNbt() { routing.setTag("OutputItem" + (i + 1), writeBoxItemToNBT(OutputItem.get(i), new NBTTagCompound())); routing.setInteger("OutputChance" + (i + 1), OutputChance.get(i)); } - for (int i = 0; i < InputFluid.size(); i++) routing.setTag( - "InputFluid" + (i + 1), - InputFluid.get(i) - .writeToNBT(new NBTTagCompound())); - for (int i = 0; i < OutputFluid.size(); i++) routing.setTag( - "OutputFluid" + (i + 1), - OutputFluid.get(i) - .writeToNBT(new NBTTagCompound())); + for (int i = 0; i < InputFluid.size(); i++) + routing.setTag("InputFluid" + (i + 1), + InputFluid.get(i) + .writeToNBT(new NBTTagCompound())); + for (int i = 0; i < OutputFluid.size(); i++) + routing.setTag("OutputFluid" + (i + 1), + OutputFluid.get(i) + .writeToNBT(new NBTTagCompound())); routing.setLong("Voltage", voltage); routing.setInteger("Parallel", Parallel); routing.setInteger("Time", time); @@ -219,14 +219,14 @@ public NBTTagCompound routingToUNbt() { routing.setTag("OutputItem" + (i + 1), writeBoxItemToUNBT(OutputItem.get(i), new NBTTagCompound())); routing.setInteger("OutputChance" + (i + 1), OutputChance.get(i)); } - for (int i = 0; i < InputFluid.size(); i++) routing.setTag( - "InputFluid" + (i + 1), - InputFluid.get(i) - .writeToNBT(new NBTTagCompound())); - for (int i = 0; i < OutputFluid.size(); i++) routing.setTag( - "OutputFluid" + (i + 1), - OutputFluid.get(i) - .writeToNBT(new NBTTagCompound())); + for (int i = 0; i < InputFluid.size(); i++) + routing.setTag("InputFluid" + (i + 1), + InputFluid.get(i) + .writeToNBT(new NBTTagCompound())); + for (int i = 0; i < OutputFluid.size(); i++) + routing.setTag("OutputFluid" + (i + 1), + OutputFluid.get(i) + .writeToNBT(new NBTTagCompound())); routing.setLong("Voltage", voltage); routing.setInteger("Parallel", Parallel); routing.setInteger("Time", time); @@ -255,8 +255,7 @@ public static void checkRouting(GTMachineBox box) { .getUnlocalizedName() .equals("gt.blockmachines.basicmachine.electromagneticseparator.tier.06")) { RecipeMap = RecipeMaps.electroMagneticSeparatorRecipes; - RoutingRecipe = RecipeMap.findRecipe( - box.getBaseMetaTileEntity(), + RoutingRecipe = RecipeMap.findRecipe(box.getBaseMetaTileEntity(), true, true, Long.MAX_VALUE / 10, @@ -283,8 +282,12 @@ public static void checkRouting(GTMachineBox box) { ItemStack machine = inputBus.getStackInSlot(i) .copy(); machine.stackSize = 1; - box.routingMap - .add(new BoxRoutings(in, out, machine, TierEU.RECIPE_ZPM, TickTime.MINUTE)); + box.routingMap.add(new BoxRoutings( + in, + out, + machine, + TierEU.RECIPE_ZPM, + TickTime.MINUTE)); box.routingStatus = 0; return; } @@ -301,8 +304,7 @@ public static void checkRouting(GTMachineBox box) { .getRecipeList(); for (Object recipe : recipeList) { if (recipe instanceof ExtremeShapedRecipe exRecipe) { - if (GT_OreDictUnificator.isInputStackEqual( - item, + if (GT_OreDictUnificator.isInputStackEqual(item, GT_OreDictUnificator.get(exRecipe.getRecipeOutput()))) { ItemStack[] in = exRecipe.recipeItems; ItemContainer var = new ItemContainer(); @@ -313,15 +315,13 @@ public static void checkRouting(GTMachineBox box) { ItemStack machine = inputBus.getStackInSlot(i) .copy(); machine.stackSize = 1; - box.routingMap.add( - new BoxRoutings( - var.getItemStack() - .toArray(new ItemStack[0]), - exRecipe.getRecipeOutput(), - new FluidStack[] {}, - machine, - TierEU.RECIPE_UV, - TickTime.MINUTE)); + box.routingMap.add(new BoxRoutings(var.getItemStack() + .toArray(new ItemStack[0]), + exRecipe.getRecipeOutput(), + new FluidStack[] {}, + machine, + TierEU.RECIPE_UV, + TickTime.MINUTE)); box.routingStatus = 0; return; } @@ -341,15 +341,13 @@ public static void checkRouting(GTMachineBox box) { ItemStack machine = inputBus.getStackInSlot(i) .copy(); machine.stackSize = 1; - box.routingMap.add( - new BoxRoutings( - var.getItemStack() - .toArray(new ItemStack[0]), - exRecipe.getRecipeOutput(), - new FluidStack[] {}, - machine, - TierEU.RECIPE_UV, - TickTime.MINUTE)); + box.routingMap.add(new BoxRoutings(var.getItemStack() + .toArray(new ItemStack[0]), + exRecipe.getRecipeOutput(), + new FluidStack[] {}, + machine, + TierEU.RECIPE_UV, + TickTime.MINUTE)); box.routingStatus = 0; return; } @@ -360,8 +358,7 @@ public static void checkRouting(GTMachineBox box) { return; } } - if (getMetaTileEntity( - inputBus.getStackInSlot(i)) instanceof GT_MetaTileEntity_MultiBlockBase RoutingMachine) { + if (getMetaTileEntity(inputBus.getStackInSlot(i)) instanceof GT_MetaTileEntity_MultiBlockBase RoutingMachine) { boxplusplus.LOG.debug(RoutingMachine.mName); List ItemInputs = deepCopyItemList(box.getStoredInputs()); List FluidInputs = deepCopyFluidList(box.getStoredFluids()); @@ -377,16 +374,19 @@ public static void checkRouting(GTMachineBox box) { } case "multimachine.multifurnace" -> { for (ItemStack input : ItemInputs) { - ItemStack output = GT_OreDictUnificator.get( - FurnaceRecipes.smelting() - .getSmeltingResult(input)); + ItemStack output = GT_OreDictUnificator.get(FurnaceRecipes.smelting() + .getSmeltingResult(input)); if (output != null) { ItemStack var1 = input.copy(); var1.stackSize = 1; ItemStack var2 = output.copy(); var2.stackSize = 1; - box.routingMap - .add(new BoxRoutings(var1, var2, RoutingMachine.getStackForm(1), 30L, 100)); + box.routingMap.add(new BoxRoutings( + var1, + var2, + RoutingMachine.getStackForm(1), + 30L, + 100)); box.routingStatus = 0; return; } @@ -404,8 +404,7 @@ public static void checkRouting(GTMachineBox box) { } } ItemStack out = CraftingManager.getInstance() - .findMatchingRecipe( - fakeCraft, + .findMatchingRecipe(fakeCraft, box.getBaseMetaTileEntity() .getWorld()); if (out != null) { @@ -424,13 +423,11 @@ public static void checkRouting(GTMachineBox box) { } ItemStack output; switch (Circuit.getItemDamage()) { - case 1 -> output = new ItemStack( - Blocks.cobblestone, - (int) Math.pow(16, box.ringCount)); + case 1 -> + output = new ItemStack(Blocks.cobblestone, (int) Math.pow(16, box.ringCount)); case 2 -> output = new ItemStack(Blocks.stone, (int) Math.pow(16, box.ringCount)); - case 3 -> output = new ItemStack( - Blocks.obsidian, - (int) Math.pow(16, box.ringCount)); + case 3 -> + output = new ItemStack(Blocks.obsidian, (int) Math.pow(16, box.ringCount)); default -> { box.routingStatus = 3; return; @@ -438,8 +435,12 @@ public static void checkRouting(GTMachineBox box) { } ItemStack input = Circuit.copy(); input.stackSize = 0; - box.routingMap - .add(new BoxRoutings(input, output, RoutingMachine.getStackForm(1), 30L, 20)); + box.routingMap.add(new BoxRoutings( + input, + output, + RoutingMachine.getStackForm(1), + 30L, + 20)); box.routingStatus = 0; return; } @@ -486,8 +487,9 @@ public static void checkRouting(GTMachineBox box) { } // We can find assemblyline recipe using the original method, but no need to update it, // nor check it - GT_AssemblyLineUtils.LookupResult tLookupResult = GT_AssemblyLineUtils - .findAssemblyLineRecipeFromDataStick(data, false); + GT_AssemblyLineUtils.LookupResult tLookupResult = GT_AssemblyLineUtils.findAssemblyLineRecipeFromDataStick( + data, + false); if (tLookupResult.getType() == GT_AssemblyLineUtils.LookupResultType.INVALID_STICK) { box.routingStatus = 5; return; @@ -500,21 +502,18 @@ public static void checkRouting(GTMachineBox box) { for (ItemStack replace : ItemInputs) { if (GT_OreDictUnificator.getAssociation(replace) != null && GT_OreDictUnificator.isInputStackEqual(replace, in[j])) { - in[j] = new ItemStack( - replace.getItem(), + in[j] = new ItemStack(replace.getItem(), in[j].stackSize, replace.getItemDamage()); } } } - box.routingMap.add( - new BoxRoutings( - in, - tRecipe.mOutput, - tRecipe.mFluidInputs, - RoutingMachine.getStackForm(1), - (long) tRecipe.mEUt, - tRecipe.mDuration)); + box.routingMap.add(new BoxRoutings(in, + tRecipe.mOutput, + tRecipe.mFluidInputs, + RoutingMachine.getStackForm(1), + (long) tRecipe.mEUt, + tRecipe.mDuration)); box.routingStatus = 0; return; } @@ -528,8 +527,7 @@ public static void checkRouting(GTMachineBox box) { // it. // But not anymore. RoutingRecipe = RoutingMachine.getRecipeMap() - .findRecipe( - box.getBaseMetaTileEntity(), + .findRecipe(box.getBaseMetaTileEntity(), true, Long.MAX_VALUE / 10, FluidInputs.toArray(new FluidStack[0]), @@ -548,8 +546,7 @@ public static void checkRouting(GTMachineBox box) { } case "largefusioncomputer5" -> { // Why there are two fusionRecipeMaps?! FK! - RoutingRecipe = RecipeMaps.fusionRecipes.findRecipe( - box.getBaseMetaTileEntity(), + RoutingRecipe = RecipeMaps.fusionRecipes.findRecipe(box.getBaseMetaTileEntity(), false, Long.MAX_VALUE / 10, FluidInputs.toArray(new FluidStack[0]), @@ -560,23 +557,19 @@ public static void checkRouting(GTMachineBox box) { // Circuitassemblyline will check imprint first. Let us do the same thing here. RecipeMap = BartWorksRecipeMaps.bacterialVatRecipes; if (inputBus.getStackInSlot(i) - .getTagCompound() == null - || !inputBus.getStackInSlot(i) - .getTagCompound() - .hasKey("Type")) { + .getTagCompound() == null || !inputBus.getStackInSlot(i) + .getTagCompound() + .hasKey("Type")) { box.routingStatus = 6; return; } for (GT_Recipe recipe : RecipeMap.getAllRecipes()) { - if (GT_Utility.areStacksEqual( - recipe.mOutputs[0], - ItemStack.loadItemStackFromNBT( - inputBus.getStackInSlot(i) - .getTagCompound() - .getCompoundTag("Type")), + if (GT_Utility.areStacksEqual(recipe.mOutputs[0], + ItemStack.loadItemStackFromNBT(inputBus.getStackInSlot(i) + .getTagCompound() + .getCompoundTag("Type")), true)) { - if (recipe.isRecipeInputEqual( - false, + if (recipe.isRecipeInputEqual(false, true, FluidInputs.toArray(new FluidStack[0]), ItemInputs.toArray(new ItemStack[0]))) { @@ -607,8 +600,8 @@ public static void checkRouting(GTMachineBox box) { Materials replicatorItem = null; for (ItemStack item : ItemInputs) { if (Behaviour_DataOrb.getDataName(item) == null) continue; - replicatorItem = Element.get(Behaviour_DataOrb.getDataName(item)).mLinkedMaterials - .get(0); + replicatorItem = Element.get(Behaviour_DataOrb.getDataName(item)).mLinkedMaterials.get( + 0); break; } if (replicatorItem == Materials._NULL) { @@ -616,11 +609,11 @@ public static void checkRouting(GTMachineBox box) { return; } for (GT_Recipe recipe : RecipeMap.getAllRecipes()) { - if (!(recipe.mSpecialItems instanceof ItemStack[]var1)) { + if (!(recipe.mSpecialItems instanceof ItemStack[] var1)) { continue; } - if (replicatorItem.equals( - Element.get(Behaviour_DataOrb.getDataName(var1[0])).mLinkedMaterials.get(0))) { + if (replicatorItem.equals(Element.get(Behaviour_DataOrb.getDataName(var1[0])).mLinkedMaterials.get( + 0))) { box.routingMap.add(new BoxRoutings(recipe, RoutingMachine.getStackForm(1))); box.routingStatus = 0; return; @@ -630,12 +623,10 @@ public static void checkRouting(GTMachineBox box) { return; } case "industrialmassfab.controller.tier.single" -> { - box.routingMap.add( - new BoxRoutings( - FluidRegistry.getFluidStack("ic2uumatter", 1000), - RoutingMachine.getStackForm(1), - TierEU.RECIPE_UEV, - 20)); + box.routingMap.add(new BoxRoutings(FluidRegistry.getFluidStack("ic2uumatter", 1000), + RoutingMachine.getStackForm(1), + TierEU.RECIPE_UEV, + 20)); box.routingStatus = 0; return; } @@ -644,12 +635,12 @@ public static void checkRouting(GTMachineBox box) { case "digester" -> RecipeMap = LanthanidesRecipeMaps.digesterRecipes; case "dissolution_tank" -> RecipeMap = LanthanidesRecipeMaps.dissolutionTankRecipes; case "cyclotron.tier.single" -> RecipeMap = GTPPRecipeMaps.cyclotronRecipes; - case "multimachine.transcendentplasmamixer" -> RecipeMap = RecipeMaps.transcendentPlasmaMixerRecipes; + case "multimachine.transcendentplasmamixer" -> + RecipeMap = RecipeMaps.transcendentPlasmaMixerRecipes; case "projectmoduleassemblert3" -> RecipeMap = IGRecipeMaps.spaceAssemblerRecipes; default -> { - RecipeMap = (RoutingMachine instanceof IBoxable boxable) - ? boxable.getRealRecipeMap(RoutingMachine) - : RoutingMachine.getRecipeMap(); + RecipeMap = (RoutingMachine instanceof IBoxable boxable) ? boxable.getRealRecipeMap( + RoutingMachine) : RoutingMachine.getRecipeMap(); if (RecipeMap == null) { box.routingStatus = 3; return; @@ -657,8 +648,7 @@ public static void checkRouting(GTMachineBox box) { } } ItemInputs.remove(inputBus.getStackInSlot(i)); - if (RoutingRecipe == null) RoutingRecipe = RecipeMap.findRecipe( - box.getBaseMetaTileEntity(), + if (RoutingRecipe == null) RoutingRecipe = RecipeMap.findRecipe(box.getBaseMetaTileEntity(), true, true, Long.MAX_VALUE / 10, @@ -670,11 +660,9 @@ public static void checkRouting(GTMachineBox box) { if (tempRecipe.mInputs[j] == null) continue; if (GT_OreDictUnificator.getAssociation(tempRecipe.mInputs[j]) != null) { for (ItemStack si : box.getStoredInputs()) { - if (GT_OreDictUnificator.isInputStackEqual( - tempRecipe.mInputs[j], + if (GT_OreDictUnificator.isInputStackEqual(tempRecipe.mInputs[j], GT_OreDictUnificator.get(false, si))) { - tempRecipe.mInputs[j] = new ItemStack( - si.getItem(), + tempRecipe.mInputs[j] = new ItemStack(si.getItem(), tempRecipe.mInputs[j].stackSize, si.getItemDamage()); } @@ -701,12 +689,9 @@ public static void makeRouting(GT_NEI_DefaultHandler recipe, int recipeIndex, En .collect(Collectors.toList()); for (ItemStack machine : machineList) { if (getMetaTileEntity(machine) instanceof GT_MetaTileEntity_MultiBlockBase) { - NetworkLoader.instance.sendToServer( - new MessageRouting( - new BoxRoutings( - ((GT_NEI_DefaultHandler.CachedDefaultRecipe) recipe.arecipes.get(recipeIndex)).mRecipe, - machine).routingToNbt(), - player)); + NetworkLoader.instance.sendToServer(new MessageRouting(new BoxRoutings(((GT_NEI_DefaultHandler.CachedDefaultRecipe) recipe.arecipes.get( + recipeIndex)).mRecipe, + machine).routingToNbt(), player)); break; } } diff --git a/src/main/java/com/silvermoon/boxplusplus/util/FluidContainer.java b/src/main/java/com/silvermoon/boxplusplus/util/FluidContainer.java index d0635eb..ac3050d 100644 --- a/src/main/java/com/silvermoon/boxplusplus/util/FluidContainer.java +++ b/src/main/java/com/silvermoon/boxplusplus/util/FluidContainer.java @@ -13,12 +13,12 @@ public class FluidContainer { public void addFluidStack(FluidStack input, int multiple) { String name = input.getUnlocalizedName(); if (!stack.containsKey(name)) { - stack.put( - name, + stack.put(name, new FluidStack(input.getFluid(), (int) Math.min((long) input.amount * multiple, Integer.MAX_VALUE))); } else { - stack.get(name).amount = (int) Math - .min(stack.get(name).amount + (long) input.amount * multiple, Integer.MAX_VALUE); + stack.get(name).amount = (int) Math.min( + stack.get(name).amount + (long) input.amount * multiple, + Integer.MAX_VALUE); } } diff --git a/src/main/java/com/silvermoon/boxplusplus/util/ItemContainer.java b/src/main/java/com/silvermoon/boxplusplus/util/ItemContainer.java index 6b087d2..0c737aa 100644 --- a/src/main/java/com/silvermoon/boxplusplus/util/ItemContainer.java +++ b/src/main/java/com/silvermoon/boxplusplus/util/ItemContainer.java @@ -18,8 +18,10 @@ public void addItemStack(ItemStack input, int multiple, int chance) { if (input.getItem() == null) return; Optional isNull = Optional.ofNullable(stack.get(input.getItem(), input.getItemDamage())); if (isNull.isPresent()) { - stack - .put(input.getItem(), input.getItemDamage(), chance * (long) input.stackSize * multiple + isNull.get()); + stack.put( + input.getItem(), + input.getItemDamage(), + chance * (long) input.stackSize * multiple + isNull.get()); } else { stack.put(input.getItem(), input.getItemDamage(), chance * (long) input.stackSize * multiple); } @@ -44,11 +46,9 @@ public List getItemStack() { for (Item item : stack.rowKeySet()) { for (int meta : stack.columnKeySet()) { if (stack.get(item, meta) != null) { - output.add( - new ItemStack( - item, - (int) Math.min(stack.get(item, meta) / 10000, Integer.MAX_VALUE - 1), - meta)); + output.add(new ItemStack(item, + (int) Math.min(stack.get(item, meta) / 10000, Integer.MAX_VALUE - 1), + meta)); } } } diff --git a/src/main/java/com/silvermoon/boxplusplus/util/ResultModuleRequirement.java b/src/main/java/com/silvermoon/boxplusplus/util/ResultModuleRequirement.java index 045681b..b0c0c6d 100644 --- a/src/main/java/com/silvermoon/boxplusplus/util/ResultModuleRequirement.java +++ b/src/main/java/com/silvermoon/boxplusplus/util/ResultModuleRequirement.java @@ -30,8 +30,9 @@ public boolean wasSuccessful() { @Override public String getDisplayString() { - return EnumChatFormatting.AQUA + i18n("tile.boxplusplus.boxUI.37") - + i18n("tile.boxplusplus_" + (isUpdated ? "boxmoduleplus." : "boxmodule." + required + ".name")); + return EnumChatFormatting.AQUA + i18n("tile.boxplusplus.boxUI.37") + i18n("tile.boxplusplus_" + (isUpdated + ? "boxmoduleplus." + : "boxmodule." + required + ".name")); } @Override diff --git a/src/main/java/com/silvermoon/boxplusplus/util/Util.java b/src/main/java/com/silvermoon/boxplusplus/util/Util.java index c736225..392f3ae 100644 --- a/src/main/java/com/silvermoon/boxplusplus/util/Util.java +++ b/src/main/java/com/silvermoon/boxplusplus/util/Util.java @@ -134,8 +134,11 @@ public static ItemStack readBoxItemFromUNBT(NBTTagCompound nbt) { if (itemDamage < 0) { itemDamage = 0; } - ItemStack boxItem = GT_ModHandler - .getModItem(nbt.getString("modID"), nbt.getString("name"), stackSize, itemDamage); + ItemStack boxItem = GT_ModHandler.getModItem( + nbt.getString("modID"), + nbt.getString("name"), + stackSize, + itemDamage); if (nbt.hasKey("tag", 10)) { boxItem.stackTagCompound = nbt.getCompoundTag("tag"); } @@ -179,11 +182,11 @@ public boolean spawnHint(T t, World world, int x, int y, int z, ItemStack trigge @Override public boolean placeBlock(T t, World world, int x, int y, int z, ItemStack trigger) { - world.setBlock( - x, + world.setBlock(x, y, z, - trigger.stackSize == 1 ? RingAdder.apply(t) + trigger.stackSize == 1 + ? RingAdder.apply(t) : (trigger.stackSize == 2 ? BlockRegister.BoxRing2 : BlockRegister.BoxRing3), hintMeta, 2); @@ -195,7 +198,8 @@ public boolean placeBlock(T t, World world, int x, int y, int z, ItemStack trigg public static String serialize(NBTTagCompound nbt) { try { return org.apache.commons.codec.binary.Base64.encodeBase64String(CompressedStreamTools.compress(nbt)); - } catch (IOException ignored) {} + } catch (IOException ignored) { + } return null; } @@ -204,7 +208,8 @@ public static String serialize(NBTTagCompound nbt) { byte[] b = org.apache.commons.codec.binary.Base64.decodeBase64(str); try { return CompressedStreamTools.func_152457_a(b, new NBTSizeTracker(2097152L)); - } catch (IOException ignored) {} + } catch (IOException ignored) { + } } return null; } @@ -281,10 +286,8 @@ public static EntityPlayer getPlayerFromUUID(String uuid) { for (Object player : MinecraftServer.getServer() .getConfigurationManager().playerEntityList) { if (player instanceof EntityPlayer player1) { - if (uuid.equals( - player1.getUniqueID() - .toString())) - return player1; + if (uuid.equals(player1.getUniqueID() + .toString())) return player1; } } return null; From 0f0715f114f22221116f3480b1eb72f63e6b218f Mon Sep 17 00:00:00 2001 From: luomolhx <2932965369@qq.com> Date: Sun, 17 Nov 2024 15:31:30 +0800 Subject: [PATCH 09/12] fit 2.7.0 --- dependencies.gradle | 8 +- gradle.properties | 6 + .../silvermoon/boxplusplus/api/IBoxable.java | 12 +- .../boxplusplus/api/boxRegister.java | 12 +- .../boxplusplus/client/BoxNEIHandler.java | 6 +- .../boxplusplus/common/BoxModule.java | 8 +- .../common/block/BlockBoxModuleCore.java | 12 +- .../common/block/BlockMachineBase.java | 16 +- .../common/loader/RecipeLoader.java | 515 +++++++++--------- .../common/tileentities/GTMachineBox.java | 244 ++++----- .../boxplusplus/network/MessageRouting.java | 4 +- .../boxplusplus/util/BoxRecipe.java | 8 +- .../boxplusplus/util/BoxRoutings.java | 120 ++-- .../util/ResultModuleRequirement.java | 16 + .../com/silvermoon/boxplusplus/util/Util.java | 37 +- 15 files changed, 520 insertions(+), 504 deletions(-) diff --git a/dependencies.gradle b/dependencies.gradle index f4fe51d..a92becc 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -29,8 +29,8 @@ * For more details, see https://docs.gradle.org/8.0.1/userguide/java_library_plugin.html#sec:java_library_configurations_graph */ dependencies { - implementation('com.github.GTNewHorizons:GT5-Unofficial:5.09.48.68:dev') - implementation('com.github.GTNewHorizons:GTNH-Intergalactic:1.3.5:dev') - implementation('com.github.GTNewHorizons:NewHorizonsCoreMod:2.3.11:dev') - implementation('com.github.GTNewHorizons:Avaritia:1.49:dev') + implementation('com.github.GTNewHorizons:GT5-Unofficial:5.09.50.69:dev') + implementation('com.github.GTNewHorizons:GTNH-Intergalactic:1.4.25:dev') + implementation('com.github.GTNewHorizons:NewHorizonsCoreMod:2.6.77:dev') + implementation('com.github.GTNewHorizons:Avaritia:1.54:dev') } diff --git a/gradle.properties b/gradle.properties index 56ca9a3..0f362bc 100644 --- a/gradle.properties +++ b/gradle.properties @@ -139,3 +139,9 @@ disableCheckstyle=true # WARNING: If you do use this option, it will overwrite whatever you have in your existing projects. This might not be what you want! # Usually there is no need to uncomment this here as other developers do not necessarily use the same build type as you. # ideaOverrideBuildType = idea + + +systemProp.http.proxyHost=127.0.0.1 +systemProp.http.proxyPort=7897 +systemProp.https.proxyHost=127.0.0.1 +systemProp.https.proxyPort=7897 diff --git a/src/main/java/com/silvermoon/boxplusplus/api/IBoxable.java b/src/main/java/com/silvermoon/boxplusplus/api/IBoxable.java index 3b28307..3702691 100644 --- a/src/main/java/com/silvermoon/boxplusplus/api/IBoxable.java +++ b/src/main/java/com/silvermoon/boxplusplus/api/IBoxable.java @@ -1,14 +1,14 @@ package com.silvermoon.boxplusplus.api; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; +import gregtech.api.metatileentity.implementations.MTEMultiBlockBase; import gregtech.api.recipe.RecipeMap; /** - * Implements this on GT_MetaTileEntity_MultiBlockBase to allow your machine encapsulating in Box System. + * Implements this on MTEMultiBlockBase to allow your machine encapsulating in Box System. * If you don't have a standard getRecipeMap(), override getRealRecipeMap(). * Do remember to call boxRegister.registerMachineToBox() on postInit! *

- * 为GT_MetaTileEntity_MultiBlockBase实现此接口,将允许Box封装你的机器。如果你的机器有多种模式,重写getRealRecipeMap()来返回你期望封装的那个。 + * 为MTEMultiBlockBase实现此接口,将允许Box封装你的机器。如果你的机器有多种模式,重写getRealRecipeMap()来返回你期望封装的那个。 * 记得在postInit调用一次boxRegister.registerMachineToBox()! */ public interface IBoxable { @@ -17,7 +17,7 @@ public interface IBoxable { * Set which module your machine will be. *

* 设定模块ID。模块ID可以从模块核心的meta值获取,范围:0-11 - * + * * @return Module ID, refers to the meta of the module core block. Range: 0-11 */ @@ -27,7 +27,7 @@ public interface IBoxable { * Should use update module *

* 是否使用升级模块 - * + * * @return true - updated */ boolean isUpdateModule(); @@ -38,7 +38,7 @@ public interface IBoxable { * @param machine normally "this" * @return GT_Recipe_Map - the real recipeMap */ - default RecipeMap getRealRecipeMap(GT_MetaTileEntity_MultiBlockBase machine) { + default RecipeMap getRealRecipeMap(MTEMultiBlockBase machine) { return machine.getRecipeMap(); } diff --git a/src/main/java/com/silvermoon/boxplusplus/api/boxRegister.java b/src/main/java/com/silvermoon/boxplusplus/api/boxRegister.java index 8a16af8..ad54c75 100644 --- a/src/main/java/com/silvermoon/boxplusplus/api/boxRegister.java +++ b/src/main/java/com/silvermoon/boxplusplus/api/boxRegister.java @@ -6,25 +6,25 @@ import com.google.common.collect.*; import com.silvermoon.boxplusplus.boxplusplus; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; +import gregtech.api.metatileentity.implementations.MTEMultiBlockBase; public class boxRegister { - public static final List customerMachineList = new ArrayList<>(); + public static final List customerMachineList = new ArrayList<>(); public static final Multimap customModuleList = HashMultimap.create(); public static final Multimap customUpdatedModuleList = HashMultimap.create(); /** * Use this to register your boxable machine. **Should be called on CommonProxy.postInit().** *

- * 在CommonProxy.postInit()阶段调用本方法。确保传入的GT_MetaTileEntity_MultiBlockBase已经实现了IBoxable。 - * + * 在CommonProxy.postInit()阶段调用本方法。确保传入的MTEMultiBlockBase已经实现了IBoxable。 + * * @param machineList You can put multi-GTMultiMachines in this parameter. *

* 可以接受多个参数 */ - public static void registerMachineToBox(GT_MetaTileEntity_MultiBlockBase... machineList) { - for (GT_MetaTileEntity_MultiBlockBase machine : machineList) { + public static void registerMachineToBox(MTEMultiBlockBase... machineList) { + for (MTEMultiBlockBase machine : machineList) { if (machine instanceof IBoxable boxable) { customerMachineList.add(machine); if (boxable.isUpdateModule()) { diff --git a/src/main/java/com/silvermoon/boxplusplus/client/BoxNEIHandler.java b/src/main/java/com/silvermoon/boxplusplus/client/BoxNEIHandler.java index 5b198b6..98d00b0 100644 --- a/src/main/java/com/silvermoon/boxplusplus/client/BoxNEIHandler.java +++ b/src/main/java/com/silvermoon/boxplusplus/client/BoxNEIHandler.java @@ -20,7 +20,7 @@ import codechicken.nei.recipe.*; import cpw.mods.fml.common.ObfuscationReflectionHelper; import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import gregtech.nei.GT_NEI_DefaultHandler; +import gregtech.nei.GTNEIDefaultHandler; public class BoxNEIHandler { @@ -76,7 +76,7 @@ public void onDrawScreen(GuiScreenEvent.DrawScreenEvent.Post event) { GuiPatternTermEx.class, gui.getHandler() .getOverlayIdentifier()) - && gui.getHandler() instanceof GT_NEI_DefaultHandler; + && gui.getHandler() instanceof GTNEIDefaultHandler; } } Collections.addAll(buttonList, buttons); @@ -100,7 +100,7 @@ public void onActionPerformedEventPre(GuiScreenEvent.ActionPerformedEvent.Pre ev if (recipesPerPage >= 0 && handler != null) { int recipe = gui.page * recipesPerPage + event.button.id - OVERLAY_BUTTON_ID_START; BoxRoutings - .makeRouting((GT_NEI_DefaultHandler) gui.currenthandlers.get(gui.recipetype), recipe, player); + .makeRouting((GTNEIDefaultHandler) gui.currenthandlers.get(gui.recipetype), recipe, player); event.setCanceled(true); } } diff --git a/src/main/java/com/silvermoon/boxplusplus/common/BoxModule.java b/src/main/java/com/silvermoon/boxplusplus/common/BoxModule.java index c8c3cc1..14d7cb0 100644 --- a/src/main/java/com/silvermoon/boxplusplus/common/BoxModule.java +++ b/src/main/java/com/silvermoon/boxplusplus/common/BoxModule.java @@ -5,8 +5,8 @@ import com.silvermoon.boxplusplus.api.IBoxable; import com.silvermoon.boxplusplus.util.BoxRoutings; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; -import gregtech.api.util.GT_Utility; +import gregtech.api.metatileentity.implementations.MTEMultiBlockBase; +import gregtech.api.util.GTUtility; public class BoxModule { @@ -151,8 +151,8 @@ public static int[] transMachinesToModule(BoxRoutings routing) { case "quantumforcetransformer.controller.tier.single", "frf", "industrialmassfab.controller.tier.single" -> new int[] { 10, 1 }; default -> { - for (GT_MetaTileEntity_MultiBlockBase machine : customerMachineList) { - if (GT_Utility.areStacksEqual(machine.getStackForm(1), routing.RoutingMachine, true)) { + for (MTEMultiBlockBase machine : customerMachineList) { + if (GTUtility.areStacksEqual(machine.getStackForm(1), routing.RoutingMachine, true)) { yield new int[] { ((IBoxable) machine).getModuleIDSafely(), ((IBoxable) machine).isUpdateModule() ? 1 : 0 }; } diff --git a/src/main/java/com/silvermoon/boxplusplus/common/block/BlockBoxModuleCore.java b/src/main/java/com/silvermoon/boxplusplus/common/block/BlockBoxModuleCore.java index 6de8a62..1019632 100644 --- a/src/main/java/com/silvermoon/boxplusplus/common/block/BlockBoxModuleCore.java +++ b/src/main/java/com/silvermoon/boxplusplus/common/block/BlockBoxModuleCore.java @@ -19,7 +19,7 @@ import com.silvermoon.boxplusplus.common.items.IB_BoxModule; import cpw.mods.fml.common.registry.GameRegistry; -import gregtech.api.GregTech_API; +import gregtech.api.GregTechAPI; public class BlockBoxModuleCore extends Block { @@ -30,7 +30,7 @@ public BlockBoxModuleCore(String name, Material material, Boolean isUpdate) { super(material); this.isUpdate = isUpdate; setBlockName(name); - GregTech_API.registerMachineBlock(this, -1); + GregTechAPI.registerMachineBlock(this, -1); } public void registerBlock() { @@ -78,15 +78,15 @@ public boolean canCreatureSpawn(EnumCreatureType type, IBlockAccess world, int x @Override public void onBlockAdded(World aWorld, int aX, int aY, int aZ) { - if (GregTech_API.isMachineBlock(this, aWorld.getBlockMetadata(aX, aY, aZ))) { - GregTech_API.causeMachineUpdate(aWorld, aX, aY, aZ); + if (GregTechAPI.isMachineBlock(this, aWorld.getBlockMetadata(aX, aY, aZ))) { + GregTechAPI.causeMachineUpdate(aWorld, aX, aY, aZ); } } @Override public void breakBlock(World aWorld, int aX, int aY, int aZ, Block aBlock, int aMetaData) { - if (GregTech_API.isMachineBlock(this, aWorld.getBlockMetadata(aX, aY, aZ))) { - GregTech_API.causeMachineUpdate(aWorld, aX, aY, aZ); + if (GregTechAPI.isMachineBlock(this, aWorld.getBlockMetadata(aX, aY, aZ))) { + GregTechAPI.causeMachineUpdate(aWorld, aX, aY, aZ); } } } diff --git a/src/main/java/com/silvermoon/boxplusplus/common/block/BlockMachineBase.java b/src/main/java/com/silvermoon/boxplusplus/common/block/BlockMachineBase.java index dc17e0b..68c2d96 100644 --- a/src/main/java/com/silvermoon/boxplusplus/common/block/BlockMachineBase.java +++ b/src/main/java/com/silvermoon/boxplusplus/common/block/BlockMachineBase.java @@ -13,17 +13,17 @@ import com.silvermoon.boxplusplus.Tags; import cpw.mods.fml.common.registry.GameRegistry; -import gregtech.api.GregTech_API; +import gregtech.api.GregTechAPI; import gregtech.api.enums.Textures; import gregtech.api.render.TextureFactory; -import gregtech.api.util.GT_Utility; +import gregtech.api.util.GTUtility; public class BlockMachineBase extends Block { private IIcon BoxIcon; private final int value; static { - GT_Utility.addTexturePage((byte) 114); + GTUtility.addTexturePage((byte) 114); } public BlockMachineBase(String name, Material material, int value) { @@ -37,7 +37,7 @@ public void registerBlock() { super.setHardness(5); super.setCreativeTab(BoxTab); GameRegistry.registerBlock(this, getUnlocalizedName()); - GregTech_API.registerMachineBlock(this, -1); + GregTechAPI.registerMachineBlock(this, -1); } @Override @@ -69,15 +69,15 @@ public boolean canCreatureSpawn(EnumCreatureType type, IBlockAccess world, int x @Override public void onBlockAdded(World aWorld, int aX, int aY, int aZ) { - if (GregTech_API.isMachineBlock(this, aWorld.getBlockMetadata(aX, aY, aZ))) { - GregTech_API.causeMachineUpdate(aWorld, aX, aY, aZ); + if (GregTechAPI.isMachineBlock(this, aWorld.getBlockMetadata(aX, aY, aZ))) { + GregTechAPI.causeMachineUpdate(aWorld, aX, aY, aZ); } } @Override public void breakBlock(World aWorld, int aX, int aY, int aZ, Block aBlock, int aMetaData) { - if (GregTech_API.isMachineBlock(this, aWorld.getBlockMetadata(aX, aY, aZ))) { - GregTech_API.causeMachineUpdate(aWorld, aX, aY, aZ); + if (GregTechAPI.isMachineBlock(this, aWorld.getBlockMetadata(aX, aY, aZ))) { + GregTechAPI.causeMachineUpdate(aWorld, aX, aY, aZ); } } } diff --git a/src/main/java/com/silvermoon/boxplusplus/common/loader/RecipeLoader.java b/src/main/java/com/silvermoon/boxplusplus/common/loader/RecipeLoader.java index ded5a4b..8c3f43a 100644 --- a/src/main/java/com/silvermoon/boxplusplus/common/loader/RecipeLoader.java +++ b/src/main/java/com/silvermoon/boxplusplus/common/loader/RecipeLoader.java @@ -3,20 +3,19 @@ import static gregtech.api.enums.Mods.*; import static gregtech.api.recipe.RecipeMaps.assemblerRecipes; import static gregtech.api.recipe.RecipeMaps.multiblockChemicalReactorRecipes; -import static gregtech.api.util.GT_RecipeConstants.*; +import static gregtech.api.util.GTRecipeConstants.*; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.CraftingManager; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; -import com.github.technus.tectech.recipe.TT_recipeAdder; - import gregtech.api.enums.*; -import gregtech.api.util.GT_ModHandler; -import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GTModHandler; +import gregtech.api.util.GTOreDictUnificator; import gtPlusPlus.api.recipe.GTPPRecipeMaps; import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList; +import tectech.recipe.TTRecipeAdder; public class RecipeLoader implements Runnable { @@ -29,25 +28,25 @@ public void run() { } public void addBoxRecipe() { - GT_Values.RA.stdBuilder() - .metadata(RESEARCH_ITEM, GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 1, 13532)) + GTValues.RA.stdBuilder() + .metadata(RESEARCH_ITEM, GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 1, 13532)) .metadata(RESEARCH_TIME, 64000) .itemOutputs(TileEntitiesLoader.Box.getStackForm(1)) .itemInputs( new ItemStack(BlockRegister.BoxRing, 1, 0), - GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 4, 59), - GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 8, 58), - GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 16, 57), - GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 32, 38), - GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 64, 37), + GTModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 4, 59), + GTModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 8, 58), + GTModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 16, 57), + GTModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 32, 38), + GTModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 64, 37), new ItemStack(BlockRegister.SpaceExtend, 64, 0), new ItemStack(BlockRegister.SpaceExtend, 64, 0), new ItemStack(BlockRegister.SpaceExtend, 64, 0), new ItemStack(BlockRegister.SpaceExtend, 64, 0), ItemList.Field_Generator_IV.get(4), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 1, 15470), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 1, 15470), ItemList.Tool_DataOrb.get(16), - GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiPart", 1, 360), + GTModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiPart", 1, 360), ItemList.Casing_Pipe_Titanium.get(64)) .fluidInputs( FluidRegistry.getFluidStack("molten.titanium", 16416), @@ -59,18 +58,18 @@ public void addBoxRecipe() { } public void addMachineBlockRecipe() { - GT_Values.RA.stdBuilder() + GTValues.RA.stdBuilder() .itemOutputs(new ItemStack(BlockRegister.SpaceExtend, 32, 0)) .itemInputs( ItemList.Casing_StableTitanium.get(64), - GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 2, 32), + GTModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 2, 32), ItemList.Electric_Motor_LuV.get(16), ItemList.Electric_Piston_LuV.get(16), - GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.IrradiantReinforcedTitaniumPlate", 4)) + GTModHandler.getModItem(NewHorizonsCoreMod.ID, "item.IrradiantReinforcedTitaniumPlate", 4)) .eut(TierEU.RECIPE_LuV) .duration(400) .addTo(assemblerRecipes); - GT_Values.RA.stdBuilder() + GTValues.RA.stdBuilder() .metadata(RESEARCH_ITEM, new ItemStack(BlockRegister.SpaceExtend)) .metadata(RESEARCH_TIME, 24000) .itemOutputs(new ItemStack(BlockRegister.SpaceCompress, 16, 0)) @@ -79,15 +78,15 @@ public void addMachineBlockRecipe() { ItemList.Casing_StableTitanium.get(64), ItemList.Super_Tank_LV.get(1), ItemList.Super_Chest_LV.get(1), - GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 4, 33), - GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "tile.TitaniumPlatedReinforcedStone", 64)) + GTModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 4, 33), + GTModHandler.getModItem(NewHorizonsCoreMod.ID, "tile.TitaniumPlatedReinforcedStone", 64)) .fluidInputs( FluidRegistry.getFluidStack("ic2coolant", 10000), FluidRegistry.getFluidStack("molten.indalloy140", 1440)) .eut(TierEU.RECIPE_LuV) .duration(1600) .addTo(AssemblyLine); - GT_Values.RA.stdBuilder() + GTValues.RA.stdBuilder() .metadata(RESEARCH_ITEM, new ItemStack(BlockRegister.SpaceCompress)) .metadata(RESEARCH_TIME, 48000) .itemOutputs(new ItemStack(BlockRegister.SpaceConstraint, 2, 0)) @@ -96,8 +95,8 @@ public void addMachineBlockRecipe() { ItemList.Casing_StableTitanium.get(64), ItemList.Casing_StableTitanium.get(64), ItemList.Casing_StableTitanium.get(64), - GT_OreDictUnificator.get("plateDoubleAdvancedNitinol", 8), - GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 16, 34), + GTOreDictUnificator.get("plateDoubleAdvancedNitinol", 8), + GTModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 16, 34), ItemList.Quantum_Tank_LV.get(1), ItemList.Quantum_Chest_LV.get(1)) .fluidInputs( @@ -106,18 +105,18 @@ public void addMachineBlockRecipe() { .eut(TierEU.RECIPE_UV) .duration(6400) .addTo(AssemblyLine); - TT_recipeAdder.addResearchableAssemblylineRecipe( + TTRecipeAdder.addResearchableAssemblylineRecipe( new ItemStack(BlockRegister.SpaceConstraint), 480000, 128, 2000000, 8, - new ItemStack[] { GT_ModHandler.getModItem(GTNHIntergalactic.ID, "gt.blockcasingsSE", 64), - GT_OreDictUnificator.get("blockAstralTitanium", 48), - GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 32, 34), - GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1, 60), + new ItemStack[] { GTModHandler.getModItem(GTNHIntergalactic.ID, "gt.blockcasingsSE", 64), + GTOreDictUnificator.get("blockAstralTitanium", 48), + GTModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 32, 34), + GTModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1, 60), ItemList.Quantum_Tank_IV.get(1), ItemList.Quantum_Chest_IV.get(1), - GT_OreDictUnificator.get(OrePrefixes.pipeHuge, "Titanium", 1) }, + GTOreDictUnificator.get(OrePrefixes.pipeHuge, "Titanium", 1) }, new FluidStack[] { FluidRegistry.getFluidStack("molten.radoxpoly", 576), FluidRegistry.getFluidStack("molten.chromaticglass", 1440), FluidRegistry.getFluidStack("molten.metastable oganesson", 1000), @@ -128,31 +127,31 @@ public void addMachineBlockRecipe() { } public void addRingRecipe() { - GT_Values.RA.stdBuilder() + GTValues.RA.stdBuilder() .itemOutputs(new ItemStack(BlockRegister.BoxRing, 1, 0)) .itemInputs( - GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Titanium, 64), - GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Titanium, 64), - GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.Titanium, 64), - GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.Titanium, 64), + GTOreDictUnificator.get(OrePrefixes.ring, Materials.Titanium, 64), + GTOreDictUnificator.get(OrePrefixes.ring, Materials.Titanium, 64), + GTOreDictUnificator.get(OrePrefixes.pipeMedium, Materials.Titanium, 64), + GTOreDictUnificator.get(OrePrefixes.rotor, Materials.Titanium, 64), ItemList.Field_Generator_IV.get(4), new Object[] { OrePrefixes.circuit.get(Materials.Ultimate), 4 }) .fluidInputs(FluidRegistry.getFluidStack("molten.tanmolyium beta-c", 51840)) .eut(TierEU.RECIPE_LuV) .duration(1200) .addTo(assemblerRecipes); - GT_Values.RA.stdBuilder() + GTValues.RA.stdBuilder() .metadata(RESEARCH_ITEM, new ItemStack(BlockRegister.BoxRing)) .metadata(RESEARCH_TIME, 48000) .itemOutputs(new ItemStack(BlockRegister.BoxRing2, 1, 0)) .itemInputs( - GT_OreDictUnificator.get("ringLaurenium", 64), - GT_OreDictUnificator.get("ringLaurenium", 64), - GT_OreDictUnificator.get("ringLaurenium", 64), - GT_OreDictUnificator.get("ringLaurenium", 64), - GT_OreDictUnificator.get("blockAdvancedNitinol", 16), - GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Tritanium, 64), - GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Tritanium, 64), + GTOreDictUnificator.get("ringLaurenium", 64), + GTOreDictUnificator.get("ringLaurenium", 64), + GTOreDictUnificator.get("ringLaurenium", 64), + GTOreDictUnificator.get("ringLaurenium", 64), + GTOreDictUnificator.get("blockAdvancedNitinol", 16), + GTOreDictUnificator.get(OrePrefixes.plateDense, Materials.Tritanium, 64), + GTOreDictUnificator.get(OrePrefixes.plateDense, Materials.Tritanium, 64), ItemList.Field_Generator_UV.get(4), ItemList.ZPM_Coil.get(48)) .fluidInputs( @@ -161,26 +160,26 @@ public void addRingRecipe() { .eut(TierEU.RECIPE_UV) .duration(2000) .addTo(AssemblyLine); - TT_recipeAdder.addResearchableAssemblylineRecipe( + TTRecipeAdder.addResearchableAssemblylineRecipe( new ItemStack(BlockRegister.BoxRing2), 48000000, 10240, 8000000, 32, - new Object[] { GT_OreDictUnificator.get("ringAstralTitanium", 64), - GT_OreDictUnificator.get("ringAstralTitanium", 64), GT_OreDictUnificator.get("ringAstralTitanium", 64), - GT_OreDictUnificator.get("ringAstralTitanium", 64), - GT_OreDictUnificator.get("plateDenseAstralTitanium", 64), + new Object[] { GTOreDictUnificator.get("ringAstralTitanium", 64), + GTOreDictUnificator.get("ringAstralTitanium", 64), GTOreDictUnificator.get("ringAstralTitanium", 64), + GTOreDictUnificator.get("ringAstralTitanium", 64), + GTOreDictUnificator.get("plateDenseAstralTitanium", 64), new Object[] { OrePrefixes.circuit.get(Materials.Optical), 32 }, - GT_OreDictUnificator.get("batteryUMV", 4), ItemList.Field_Generator_UEV.get(4), - GT_ModHandler.getModItem(UniversalSingularities.ID, "universal.general.singularity", 64, 12), - GT_ModHandler.getModItem(UniversalSingularities.ID, "universal.general.singularity", 64, 12), - GT_ModHandler.getModItem(UniversalSingularities.ID, "universal.general.singularity", 64, 12), - GT_ModHandler.getModItem(UniversalSingularities.ID, "universal.general.singularity", 64, 12), - GT_OreDictUnificator.get(OrePrefixes.pipeSmall, "Titanium", 1), - GT_OreDictUnificator.get(OrePrefixes.pipeMedium, "Titanium", 1), - GT_OreDictUnificator.get(OrePrefixes.pipeLarge, "Titanium", 1), - GT_OreDictUnificator.get(OrePrefixes.pipeHuge, "Titanium", 1) }, + GTOreDictUnificator.get("batteryUMV", 4), ItemList.Field_Generator_UEV.get(4), + GTModHandler.getModItem(UniversalSingularities.ID, "universal.general.singularity", 64, 12), + GTModHandler.getModItem(UniversalSingularities.ID, "universal.general.singularity", 64, 12), + GTModHandler.getModItem(UniversalSingularities.ID, "universal.general.singularity", 64, 12), + GTModHandler.getModItem(UniversalSingularities.ID, "universal.general.singularity", 64, 12), + GTOreDictUnificator.get(OrePrefixes.pipeSmall, "Titanium", 1), + GTOreDictUnificator.get(OrePrefixes.pipeMedium, "Titanium", 1), + GTOreDictUnificator.get(OrePrefixes.pipeLarge, "Titanium", 1), + GTOreDictUnificator.get(OrePrefixes.pipeHuge, "Titanium", 1) }, new FluidStack[] { FluidRegistry.getFluidStack("molten.radoxpoly", 640000), FluidRegistry.getFluidStack("molten.chromaticglass", 14400), FluidRegistry.getFluidStack("molten.metastable oganesson", 32000), @@ -192,32 +191,32 @@ public void addRingRecipe() { // Normally - R1-Assembler; R2-AssemblyLine; R3-ResearchAssemblyLine public void addModuleRecipe() { - GT_Values.RA.stdBuilder() + GTValues.RA.stdBuilder() .itemOutputs(new ItemStack(BlockRegister.BoxModule, 1, 0)) .itemInputs( new ItemStack(BlockRegister.BoxRing, 1), ItemList.Machine_Multi_LargeChemicalReactor.get(64), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 811), - GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.Titanium, 16)) + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 811), + GTOreDictUnificator.get(OrePrefixes.rotor, Materials.Titanium, 16)) .fluidInputs( FluidRegistry.getFluidStack("glue", 8000), FluidRegistry.getFluidStack("tetrafluoroethylene", 128000)) .eut(TierEU.RECIPE_LuV) .duration(1200) .addTo(multiblockChemicalReactorRecipes); - GT_Values.RA.stdBuilder() + GTValues.RA.stdBuilder() .itemOutputs(new ItemStack(BlockRegister.BoxModule, 1, 1)) .itemInputs( new ItemStack(BlockRegister.BoxRing, 1), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 876), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 14101), - GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 64, 43), - GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 64, 44)) + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 876), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 14101), + GTModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 64, 43), + GTModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 64, 44)) .fluidInputs(FluidRegistry.getFluidStack("glue", 16000)) .eut(TierEU.RECIPE_LuV) .duration(1200) .addTo(assemblerRecipes); - GT_Values.RA.stdBuilder() + GTValues.RA.stdBuilder() .itemOutputs(new ItemStack(BlockRegister.BoxModule, 1, 2)) .itemInputs( new ItemStack(BlockRegister.BoxRing, 1), @@ -230,14 +229,14 @@ public void addModuleRecipe() { .eut(TierEU.RECIPE_LuV) .duration(2400) .addTo(GTPPRecipeMaps.chemicalPlantRecipes); - GT_Values.RA.stdBuilder() + GTValues.RA.stdBuilder() .itemOutputs(new ItemStack(BlockRegister.BoxModule, 1, 3)) .itemInputs( new ItemStack(BlockRegister.BoxRing, 1), ItemList.Machine_Multi_Furnace.get(64), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 849), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 862), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 31023), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 849), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 862), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 31023), ItemList.Casing_Coil_Cupronickel.get(64), ItemList.LuV_Coil.get(64), ItemList.Casing_Firebox_Titanium.get(64), @@ -246,37 +245,37 @@ public void addModuleRecipe() { .eut(TierEU.RECIPE_LuV) .duration(2400) .addTo(assemblerRecipes); - GT_Values.RA.stdBuilder() - .metadata(RESEARCH_ITEM, GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 1, 860)) + GTValues.RA.stdBuilder() + .metadata(RESEARCH_ITEM, GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 1, 860)) .metadata(RESEARCH_TIME, 12000) .itemOutputs(new ItemStack(BlockRegister.BoxModule, 1, 4)) .itemInputs( new ItemStack(BlockRegister.BoxRing2, 2), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 860), - GT_ModHandler.getModItem(GregTech.ID, "gt.metaitem.01", 64, 32764), - GT_ModHandler.getModItem(OpenComputers.ID, "item", 9, 103), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 9, 15470), - GT_ModHandler.getModItem(OpenComputers.ID, "item", 1, 69), - GT_ModHandler.getModItem(TecTech.ID, "gt.blockcasingsTT", 9, 3), - GT_OreDictUnificator.get("wireGt01SuperconductorUV", 9)) + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 860), + GTModHandler.getModItem(GregTech.ID, "gt.metaitem.01", 64, 32764), + GTModHandler.getModItem(OpenComputers.ID, "item", 9, 103), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 9, 15470), + GTModHandler.getModItem(OpenComputers.ID, "item", 1, 69), + GTModHandler.getModItem(TecTech.ID, "gt.blockcasingsTT", 9, 3), + GTOreDictUnificator.get("wireGt01SuperconductorUV", 9)) .fluidInputs(FluidRegistry.getFluidStack("refinedglue", 8000)) .eut(TierEU.RECIPE_UV) .duration(1200) .addTo(AssemblyLine); - GT_Values.RA.stdBuilder() - .metadata(RESEARCH_ITEM, GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 1, 31077)) + GTValues.RA.stdBuilder() + .metadata(RESEARCH_ITEM, GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 1, 31077)) .metadata(RESEARCH_TIME, 12000) .itemOutputs(new ItemStack(BlockRegister.BoxModule, 1, 5)) .itemInputs( new ItemStack(BlockRegister.BoxRing2, 2), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 31077), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 31065), - GT_ModHandler.getModItem(Avaritia.ID, "Neutronium_Compressor", 4), - GT_ModHandler.getModItem(GTPlusPlus.ID, "MU-metaitem.01", 16, 32044), - GT_ModHandler.getModItem(ExtraUtilities.ID, "nodeUpgrade", 64, 2), - GT_ModHandler.getModItem(GTPlusPlus.ID, "dummyResearch", 1), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockcasings9", 4, 1), - GT_ModHandler.getModItem(Chisel.ID, "netherStarChisel", 1)) + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 31077), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 31065), + GTModHandler.getModItem(Avaritia.ID, "Neutronium_Compressor", 4), + GTModHandler.getModItem(GTPlusPlus.ID, "MU-metaitem.01", 16, 32044), + GTModHandler.getModItem(ExtraUtilities.ID, "nodeUpgrade", 64, 2), + GTModHandler.getModItem(GTPlusPlus.ID, "dummyResearch", 1), + GTModHandler.getModItem(GregTech.ID, "gt.blockcasings9", 4, 1), + GTModHandler.getModItem(Chisel.ID, "netherStarChisel", 1)) .fluidInputs( FluidRegistry.getFluidStack("refinedglue", 8000), FluidRegistry.getFluidStack("ic2pahoehoelava", 128000), @@ -284,44 +283,44 @@ public void addModuleRecipe() { .eut(TierEU.RECIPE_UV) .duration(1200) .addTo(AssemblyLine); - GT_Values.RA.stdBuilder() - .metadata(RESEARCH_ITEM, GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 1, 992)) + GTValues.RA.stdBuilder() + .metadata(RESEARCH_ITEM, GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 1, 992)) .metadata(RESEARCH_TIME, 12000) .itemOutputs(new ItemStack(BlockRegister.BoxModule, 1, 6)) .itemInputs( - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 792), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 992), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 859), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 797), - GT_ModHandler.getModItem(AE2Stuff.ID, "Inscriber", 1), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 792), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 992), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 859), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 797), + GTModHandler.getModItem(AE2Stuff.ID, "Inscriber", 1), ItemList.Component_Sawblade_Diamond.get(1), ItemList.Shape_Extruder_Ingot.get(1), - GT_ModHandler.getModItem(GTPlusPlus.ID, "MU-metaitem.01", 1, 32152), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 798), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 31075), - GT_OreDictUnificator.get("wireGt01SuperconductorUV", 6), - GT_ModHandler.getModItem(ThaumicBases.ID, "voidAnvil", 16), + GTModHandler.getModItem(GTPlusPlus.ID, "MU-metaitem.01", 1, 32152), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 798), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 31075), + GTOreDictUnificator.get("wireGt01SuperconductorUV", 6), + GTModHandler.getModItem(ThaumicBases.ID, "voidAnvil", 16), new ItemStack(BlockRegister.BoxRing2, 2)) .fluidInputs(FluidRegistry.getFluidStack("refinedglue", 8000)) .eut(TierEU.RECIPE_UV) .duration(1200) .addTo(AssemblyLine); - GT_Values.RA.stdBuilder() - .metadata(RESEARCH_ITEM, GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 1, 850)) + GTValues.RA.stdBuilder() + .metadata(RESEARCH_ITEM, GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 1, 850)) .metadata(RESEARCH_TIME, 12000) .itemOutputs(new ItemStack(BlockRegister.BoxModule, 1, 7)) .itemInputs( - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 850), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 796), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 790), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 840), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 850), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 796), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 790), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 840), GregtechItemList.SimpleDustWasher_UV.get(1), - GT_OreDictUnificator.get("stickLongNeutronium", 2), + GTOreDictUnificator.get("stickLongNeutronium", 2), ItemList.Electric_Motor_UV.get(16), - GT_ModHandler.getModItem(GTPlusPlus.ID, "gtplusplus.blockcasings.2", 64, 6), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 10862), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 10500), - GT_OreDictUnificator.get("dustCooledMonaziteRareEarthConcentrate", 64), + GTModHandler.getModItem(GTPlusPlus.ID, "gtplusplus.blockcasings.2", 64, 6), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 10862), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 10500), + GTOreDictUnificator.get("dustCooledMonaziteRareEarthConcentrate", 64), new ItemStack(BlockRegister.BoxRing2, 2)) .fluidInputs( FluidRegistry.getFluidStack("refinedglue", 8000), @@ -329,37 +328,37 @@ public void addModuleRecipe() { .eut(TierEU.RECIPE_UV) .duration(1200) .addTo(AssemblyLine); - TT_recipeAdder.addResearchableAssemblylineRecipe( - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 1, 12730), + TTRecipeAdder.addResearchableAssemblylineRecipe( + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 1, 12730), 25600, 64, 8000000, 16, - new ItemStack[] { GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 791), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 12730), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 12731), + new ItemStack[] { GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 791), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 12730), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 12731), ItemList.Casing_Coil_Cupronickel.get(64), - GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "tile.QuintupleCompressedCoalCoke", 2), - GT_OreDictUnificator.get("dustDarkAsh", 64), ItemList.Reactor_Coolant_Sp_6.get(1), + GTModHandler.getModItem(NewHorizonsCoreMod.ID, "tile.QuintupleCompressedCoalCoke", 2), + GTOreDictUnificator.get("dustDarkAsh", 64), ItemList.Reactor_Coolant_Sp_6.get(1), new ItemStack(BlockRegister.BoxRing3, 4), }, new FluidStack[] { FluidRegistry.getFluidStack("molten.ethylcyanoacrylatesuperglue", 128000), FluidRegistry.getFluidStack("cryotheum", 256000), FluidRegistry.getFluidStack("pyrotheum", 256000) }, new ItemStack(BlockRegister.BoxModule, 1, 8), 2000, (int) TierEU.RECIPE_UEV); - TT_recipeAdder.addResearchableAssemblylineRecipe( - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 1, 17001), + TTRecipeAdder.addResearchableAssemblylineRecipe( + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 1, 17001), 102400, 256, 8000000, 64, - new ItemStack[] { GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 15465), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 15145), ItemList.Casing_Grate.get(64), + new ItemStack[] { GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 15465), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 15145), ItemList.Casing_Grate.get(64), ItemList.Casing_Grate.get(64), ItemList.Casing_Assembler.get(64), ItemList.Casing_Assembler.get(64), ItemList.Casing_Assembler.get(64), ItemList.Casing_Assembler.get(64), ItemList.Machine_Multi_Assemblyline.get(64), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 13532), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 13532), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 13532), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 13532), new ItemStack(BlockRegister.BoxRing3, 4), ItemList.Hatch_Input_Multi_2x2_UEV.get(4), ItemList.Casing_SolidSteel.get(64), ItemList.Casing_SolidSteel.get(64), ItemList.Hatch_Output_Bus_ME.get(1) }, @@ -368,58 +367,58 @@ public void addModuleRecipe() { new ItemStack(BlockRegister.BoxModule, 1, 9), 2000, (int) TierEU.RECIPE_UEV); - TT_recipeAdder.addResearchableAssemblylineRecipe( - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 1, 31150), + TTRecipeAdder.addResearchableAssemblylineRecipe( + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 1, 31150), 51200, 128, 8000000, 32, new ItemStack[] { new ItemStack(BlockRegister.BoxRing3, 4), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 31150), - GT_OreDictUnificator.get("blockGlassUMV", 64), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 1, 15497), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 31150), + GTOreDictUnificator.get("blockGlassUMV", 64), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 1, 15497), ItemList.Casing_Coil_AwakenedDraconium.get(16), ItemList.Casing_Coil_Infinity.get(8), ItemList.Casing_Coil_Hypogen.get(4), ItemList.Casing_Coil_Eternal.get(2), - GT_OreDictUnificator.get("wireGt01SuperconductorUIV", 30) }, + GTOreDictUnificator.get("wireGt01SuperconductorUIV", 30) }, new FluidStack[] { FluidRegistry.getFluidStack("molten.mutatedlivingsolder", 256000), FluidRegistry.getFluidStack("lubricant", 256000) }, new ItemStack(BlockRegister.BoxModule, 1, 10), 2000, (int) TierEU.RECIPE_UEV); - TT_recipeAdder.addResearchableAssemblylineRecipe( - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 1, 15472), + TTRecipeAdder.addResearchableAssemblylineRecipe( + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 1, 15472), 100000, 100, 10000000, 10, - new ItemStack[] { GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 15465), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 15465), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 15465), ItemList.Sensor_UEV.get(32), - GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.LaserEmitter", 1), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 1, 15165), ItemList.Emitter_UEV.get(64), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 1, 15265), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 15465), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 15465), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 15465), ItemList.Sensor_UEV.get(32), + new ItemStack[] { GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 15465), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 15465), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 15465), ItemList.Sensor_UEV.get(32), + GTModHandler.getModItem(NewHorizonsCoreMod.ID, "item.LaserEmitter", 1), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 1, 15165), ItemList.Emitter_UEV.get(64), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 1, 15265), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 15465), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 15465), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 15465), ItemList.Sensor_UEV.get(32), new ItemStack(BlockRegister.BoxRing3, 16), }, new FluidStack[] { FluidRegistry.getFluidStack("supercoolant", 256000) }, new ItemStack(BlockRegister.BoxModule, 1, 12), 2000, (int) TierEU.RECIPE_UEV); - TT_recipeAdder.addResearchableAssemblylineRecipe( - GT_ModHandler.getModItem(AppliedEnergistics2.ID, "tile.BlockAdvancedCraftingUnit", 1, 3), + TTRecipeAdder.addResearchableAssemblylineRecipe( + GTModHandler.getModItem(AppliedEnergistics2.ID, "tile.BlockAdvancedCraftingUnit", 1, 3), (int) TierEU.RECIPE_UEV, 512, (int) TierEU.RECIPE_UIV, 64, - new ItemStack[] { GT_ModHandler.getModItem(AppliedEnergistics2.ID, "tile.BlockAdvancedCraftingUnit", 64, 3), - GT_ModHandler.getModItem(AppliedEnergistics2.ID, "tile.BlockAdvancedCraftingUnit", 64, 3), - GT_ModHandler.getModItem(AppliedEnergistics2.ID, "tile.BlockAdvancedCraftingUnit", 64, 3), - GT_ModHandler.getModItem(AppliedEnergistics2.ID, "tile.BlockAdvancedCraftingUnit", 64, 3), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockreinforced", 1, 12), - GT_OreDictUnificator.get("compressedDirt4x", 1), - GT_ModHandler.getModItem(GTPlusPlus.ID, "blockCompressedObsidian", 1, 4), - GT_ModHandler.getModItem(GTPlusPlus.ID, "blockCompressedObsidian", 1, 10), + new ItemStack[] { GTModHandler.getModItem(AppliedEnergistics2.ID, "tile.BlockAdvancedCraftingUnit", 64, 3), + GTModHandler.getModItem(AppliedEnergistics2.ID, "tile.BlockAdvancedCraftingUnit", 64, 3), + GTModHandler.getModItem(AppliedEnergistics2.ID, "tile.BlockAdvancedCraftingUnit", 64, 3), + GTModHandler.getModItem(AppliedEnergistics2.ID, "tile.BlockAdvancedCraftingUnit", 64, 3), + GTModHandler.getModItem(GregTech.ID, "gt.blockreinforced", 1, 12), + GTOreDictUnificator.get("compressedDirt4x", 1), + GTModHandler.getModItem(GTPlusPlus.ID, "blockCompressedObsidian", 1, 4), + GTModHandler.getModItem(GTPlusPlus.ID, "blockCompressedObsidian", 1, 10), new ItemStack(BlockRegister.BoxRing3, 32), }, new FluidStack[] { FluidRegistry.getFluidStack("grade8purifiedwater", 256000) }, new ItemStack(BlockRegister.BoxModule, 1, 13), @@ -429,149 +428,149 @@ public void addModuleRecipe() { // All - ResearchAssemblyLine public void addUpgradeModuleRecipe() { - GT_Values.RA.stdBuilder() + GTValues.RA.stdBuilder() .metadata(RESEARCH_ITEM, new ItemStack(BlockRegister.BoxModule, 1, 0)) .metadata(RESEARCH_TIME, 12000) .itemOutputs(new ItemStack(BlockRegister.BoxModuleUpgrad, 1, 0)) .itemInputs( new ItemStack(BlockRegister.BoxRing, 8), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 31072), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 31050), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 31051), - GT_ModHandler.getModItem(GTPlusPlus.ID, "miscutils.blockcasings", 48, 8), - GT_ModHandler.getModItem(GTPlusPlus.ID, "gtplusplus.blockspecialcasings.1", 56, 13)) + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 31072), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 31050), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 31051), + GTModHandler.getModItem(GTPlusPlus.ID, "miscutils.blockcasings", 48, 8), + GTModHandler.getModItem(GTPlusPlus.ID, "gtplusplus.blockspecialcasings.1", 56, 13)) .fluidInputs( FluidRegistry.getFluidStack("refinedglue", 8000), FluidRegistry.getFluidStack("ic2uumatter", 128000)) .eut(TierEU.RECIPE_UV) .duration(1200) .addTo(AssemblyLine); - GT_Values.RA.stdBuilder() + GTValues.RA.stdBuilder() .metadata(RESEARCH_ITEM, new ItemStack(BlockRegister.BoxModule, 1, 1)) .metadata(RESEARCH_TIME, 12000) .itemOutputs(new ItemStack(BlockRegister.BoxModuleUpgrad, 1, 1)) .itemInputs( new ItemStack(BlockRegister.BoxRing, 8), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 32018), - GT_ModHandler.getModItem(GoodGenerator.ID, "preciseUnitCasing", 64, 2), - GT_ModHandler.getModItem(Avaritia.ID, "Dire_Crafting", 64), - GT_ModHandler.getModItem(GoodGenerator.ID, "huiCircuit", 64, 1), - GT_ModHandler.getModItem(GoodGenerator.ID, "huiCircuit", 32, 2), - GT_ModHandler.getModItem(GoodGenerator.ID, "huiCircuit", 16, 3), - GT_ModHandler.getModItem(GoodGenerator.ID, "huiCircuit", 8, 4)) + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 32018), + GTModHandler.getModItem(GoodGenerator.ID, "preciseUnitCasing", 64, 2), + GTModHandler.getModItem(Avaritia.ID, "Dire_Crafting", 64), + GTModHandler.getModItem(GoodGenerator.ID, "huiCircuit", 64, 1), + GTModHandler.getModItem(GoodGenerator.ID, "huiCircuit", 32, 2), + GTModHandler.getModItem(GoodGenerator.ID, "huiCircuit", 16, 3), + GTModHandler.getModItem(GoodGenerator.ID, "huiCircuit", 8, 4)) .fluidInputs( FluidRegistry.getFluidStack("refinedglue", 8000), FluidRegistry.getFluidStack("naquadah based liquid fuel mkii (depleted)", 128000)) .eut(TierEU.RECIPE_UHV) .duration(1200) .addTo(AssemblyLine); - GT_Values.RA.stdBuilder() + GTValues.RA.stdBuilder() .metadata(RESEARCH_ITEM, new ItemStack(BlockRegister.BoxModule, 1, 2)) .metadata(RESEARCH_TIME, 12000) .itemOutputs(new ItemStack(BlockRegister.BoxModuleUpgrad, 1, 2)) .itemInputs( new ItemStack(BlockRegister.BoxRing, 8), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 998), - GT_ModHandler.getModItem(GTPlusPlus.ID, "gtplusplus.blockspecialcasings.2", 64, 3), - GT_ModHandler.getModItem(GTPlusPlus.ID, "gtplusplus.blocktieredcasings.1", 16, 9), - GT_ModHandler.getModItem(GalacticraftCore.ID, "item.buggy", 1)) + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 998), + GTModHandler.getModItem(GTPlusPlus.ID, "gtplusplus.blockspecialcasings.2", 64, 3), + GTModHandler.getModItem(GTPlusPlus.ID, "gtplusplus.blocktieredcasings.1", 16, 9), + GTModHandler.getModItem(GalacticraftCore.ID, "item.buggy", 1)) .fluidInputs( FluidRegistry.getFluidStack("refinedglue", 8000), FluidRegistry.getFluidStack("fluid.rocketfuelmixa", 128000)) .eut(TierEU.RECIPE_UV) .duration(1200) .addTo(AssemblyLine); - GT_Values.RA.stdBuilder() + GTValues.RA.stdBuilder() .metadata(RESEARCH_ITEM, new ItemStack(BlockRegister.BoxModule, 1, 3)) .metadata(RESEARCH_TIME, 12000) .itemOutputs(new ItemStack(BlockRegister.BoxModuleUpgrad, 1, 3)) .itemInputs( new ItemStack(BlockRegister.BoxRing, 8), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 828), - GT_ModHandler.getModItem(GTPlusPlus.ID, "gtplusplus.blockcasings.2", 32, 9), - GT_ModHandler.getModItem(GTPlusPlus.ID, "MU-metaitem.01", 4, 32105), - GT_ModHandler.getModItem(GTPlusPlus.ID, "itemDustRadioactiveMineralMix", 1)) + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 828), + GTModHandler.getModItem(GTPlusPlus.ID, "gtplusplus.blockcasings.2", 32, 9), + GTModHandler.getModItem(GTPlusPlus.ID, "MU-metaitem.01", 4, 32105), + GTModHandler.getModItem(GTPlusPlus.ID, "itemDustRadioactiveMineralMix", 1)) .fluidInputs( FluidRegistry.getFluidStack("refinedglue", 8000), FluidRegistry.getFluidStack("plasma.hydrogen", 12800)) .eut(TierEU.RECIPE_UV) .duration(1200) .addTo(AssemblyLine); - TT_recipeAdder.addResearchableAssemblylineRecipe( + TTRecipeAdder.addResearchableAssemblylineRecipe( new ItemStack(BlockRegister.BoxModule, 1, 4), 256000, 512, 8000000, 16, - new ItemStack[] { GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 356), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 12735), - GT_ModHandler.getModItem(BartWorks.ID, "gt.bwMetaGeneratedItem0", 64, 3), - GT_OreDictUnificator.get("gemExquisitePrasiolite", 64), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockcasings8", 8, 14), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockcasings8", 16, 10), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockcasings8", 32, 12), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockcasings8", 64, 13), + new ItemStack[] { GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 356), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 12735), + GTModHandler.getModItem(BartWorks.ID, "gt.bwMetaGeneratedItem0", 64, 3), + GTOreDictUnificator.get("gemExquisitePrasiolite", 64), + GTModHandler.getModItem(GregTech.ID, "gt.blockcasings8", 8, 14), + GTModHandler.getModItem(GregTech.ID, "gt.blockcasings8", 16, 10), + GTModHandler.getModItem(GregTech.ID, "gt.blockcasings8", 32, 12), + GTModHandler.getModItem(GregTech.ID, "gt.blockcasings8", 64, 13), ItemList.Circuit_Parts_ResistorXSMD.get(64), ItemList.Circuit_Parts_CapacitorXSMD.get(64), ItemList.Circuit_Parts_DiodeXSMD.get(64), ItemList.Circuit_Parts_TransistorXSMD.get(64), - GT_ModHandler.getModItem(GregTech.ID, "gt.metaitem.03", 64, 32728), - GT_ModHandler.getModItem(GregTech.ID, "gt.metaitem.03", 64, 32107), - GT_ModHandler.getModItem(GregTech.ID, "gt.metaitem.03", 64, 32105), + GTModHandler.getModItem(GregTech.ID, "gt.metaitem.03", 64, 32728), + GTModHandler.getModItem(GregTech.ID, "gt.metaitem.03", 64, 32107), + GTModHandler.getModItem(GregTech.ID, "gt.metaitem.03", 64, 32105), new ItemStack(BlockRegister.BoxRing2, 16) }, new FluidStack[] { FluidRegistry.getFluidStack("molten.ethylcyanoacrylatesuperglue", 128000), FluidRegistry.getFluidStack("supercoolant", 320000) }, new ItemStack(BlockRegister.BoxModuleUpgrad, 1, 4), 2000, (int) TierEU.RECIPE_UIV); - TT_recipeAdder.addResearchableAssemblylineRecipe( + TTRecipeAdder.addResearchableAssemblylineRecipe( new ItemStack(BlockRegister.BoxModule, 1, 5), 128000, 256, 8000000, 4, - new ItemStack[] { GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 965), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 975), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 8, 32022), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 8, 32023), - GT_ModHandler.getModItem(GTPlusPlus.ID, "gtplusplus.blockcasings.3", 64, 13), - GT_ModHandler.getModItem(GTPlusPlus.ID, "gtplusplus.blockcasings.6", 64, 1), - GT_ModHandler.getModItem(GoodGenerator.ID, "compactFusionCoil", 24, 2), - GT_ModHandler.getModItem(GoodGenerator.ID, "compactFusionCoil", 24, 4), - GT_OreDictUnificator.get("batteryMAX", 1), new ItemStack(BlockRegister.BoxRing2, 16) }, + new ItemStack[] { GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 965), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 975), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 8, 32022), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 8, 32023), + GTModHandler.getModItem(GTPlusPlus.ID, "gtplusplus.blockcasings.3", 64, 13), + GTModHandler.getModItem(GTPlusPlus.ID, "gtplusplus.blockcasings.6", 64, 1), + GTModHandler.getModItem(GoodGenerator.ID, "compactFusionCoil", 24, 2), + GTModHandler.getModItem(GoodGenerator.ID, "compactFusionCoil", 24, 4), + GTOreDictUnificator.get("batteryMAX", 1), new ItemStack(BlockRegister.BoxRing2, 16) }, new FluidStack[] { FluidRegistry.getFluidStack("molten.ethylcyanoacrylatesuperglue", 128000), FluidRegistry.getFluidStack("molten.metastable oganesson", 64000), FluidRegistry.getFluidStack("plasma.radon", 288000) }, new ItemStack(BlockRegister.BoxModuleUpgrad, 1, 5), 2000, (int) TierEU.RECIPE_UEV); - TT_recipeAdder.addResearchableAssemblylineRecipe( + TTRecipeAdder.addResearchableAssemblylineRecipe( new ItemStack(BlockRegister.BoxModule, 1, 6), 64000, 128, 8000000, 1, - new Object[] { GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 1132), + new Object[] { GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 1132), ItemList.Electric_Motor_UEV.get(32), ItemList.Electric_Piston_UEV.get(8), ItemList.Electric_Pump_UEV.get(16), ItemList.Conveyor_Module_UEV.get(8), ItemList.Robot_Arm_UEV.get(8), new Object[] { OrePrefixes.circuit.get(Materials.Optical), 4 }, - GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemExtremeStorageCell.Singularity", 1), - GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Titanium, 32), - GT_OreDictUnificator.get("rotorAstralTitanium", 16), new ItemStack(BlockRegister.BoxRing2, 16), }, + GTModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemExtremeStorageCell.Singularity", 1), + GTOreDictUnificator.get(OrePrefixes.plateDouble, Materials.Titanium, 32), + GTOreDictUnificator.get("rotorAstralTitanium", 16), new ItemStack(BlockRegister.BoxRing2, 16), }, new FluidStack[] { FluidRegistry.getFluidStack("lubricant", 128000), FluidRegistry.getFluidStack("grade7purifiedwater", 256000) }, new ItemStack(BlockRegister.BoxModuleUpgrad, 1, 6), 2000, (int) TierEU.RECIPE_UEV); - TT_recipeAdder.addResearchableAssemblylineRecipe( + TTRecipeAdder.addResearchableAssemblylineRecipe( new ItemStack(BlockRegister.BoxModule, 1, 7), 10240, 16, 2000000, 1, - new ItemStack[] { GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 10501), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 12712), - GT_OreDictUnificator.get("blockGlassUEV", 64), GT_OreDictUnificator.get("slabWood", 1), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 12718), - GT_ModHandler.getModItem(UniversalSingularities.ID, "universal.general.singularity", 4, 26), + new ItemStack[] { GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 10501), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 12712), + GTOreDictUnificator.get("blockGlassUEV", 64), GTOreDictUnificator.get("slabWood", 1), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 12718), + GTModHandler.getModItem(UniversalSingularities.ID, "universal.general.singularity", 4, 26), new ItemStack(BlockRegister.BoxRing2, 16), }, new FluidStack[] { FluidRegistry.getFluidStack("molten.ethylcyanoacrylatesuperglue", 128000), FluidRegistry.getFluidStack("grade6purifiedwater", 256000), @@ -580,23 +579,22 @@ public void addUpgradeModuleRecipe() { new ItemStack(BlockRegister.BoxModuleUpgrad, 1, 7), 2000, (int) TierEU.RECIPE_UHV); - TT_recipeAdder.addResearchableAssemblylineRecipe( + TTRecipeAdder.addResearchableAssemblylineRecipe( new ItemStack(BlockRegister.BoxModule, 1, 8), 81920000, 32768, (int) TierEU.RECIPE_UMV, 16, - new ItemStack[] { GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 357), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 1006), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 1004), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 1, 15310), - GT_OreDictUnificator.get("naniteWhiteDwarfMatter", 1), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 581), - ItemList.Casing_Coil_Eternal.get(64), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 3, 15470), - GT_ModHandler.getModItem(TecTech.ID, "gt.blockcasingsBA0", 32, 10), - GT_ModHandler.getModItem(TecTech.ID, "gt.blockcasingsBA0", 32, 11), - GT_ModHandler.getModItem(TecTech.ID, "gt.stabilisation_field_generator", 1), + new ItemStack[] { GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 357), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 1006), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 1004), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 1, 15310), + GTOreDictUnificator.get("naniteWhiteDwarfMatter", 1), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 581), ItemList.Casing_Coil_Eternal.get(64), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 3, 15470), + GTModHandler.getModItem(TecTech.ID, "gt.blockcasingsBA0", 32, 10), + GTModHandler.getModItem(TecTech.ID, "gt.blockcasingsBA0", 32, 11), + GTModHandler.getModItem(TecTech.ID, "gt.stabilisation_field_generator", 1), new ItemStack(BlockRegister.BoxRing3, 32), }, new FluidStack[] { FluidRegistry.getFluidStack("molten.ethylcyanoacrylatesuperglue", 10240000), FluidRegistry.getFluidStack("primordialmatter", 8000), FluidRegistry.getFluidStack("exciteddtsc", 8000), @@ -604,22 +602,22 @@ public void addUpgradeModuleRecipe() { new ItemStack(BlockRegister.BoxModuleUpgrad, 1, 8), 2000, (int) TierEU.RECIPE_UXV); - TT_recipeAdder.addResearchableAssemblylineRecipe( + TTRecipeAdder.addResearchableAssemblylineRecipe( new ItemStack(BlockRegister.BoxModule, 1, 9), 10240000, 6144, (int) TierEU.RECIPE_UIV, 16, - new ItemStack[] { GT_ModHandler.getModItem(GoodGenerator.ID, "componentAssemblylineCasing", 16, 10), - GT_ModHandler.getModItem(GoodGenerator.ID, "componentAssemblylineCasing", 16, 10), - GT_OreDictUnificator.get("blockSpaceTime", 4), GT_OreDictUnificator.get("blockSpaceTime", 8), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 32026), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 12734), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 16, 14006), - GT_OreDictUnificator.get("blockSpaceTime", 16), - GT_ModHandler.getModItem(AppliedEnergistics2.ID, "tile.BlockTinyTNT", 1), - GT_ModHandler.getModItem(AppliedEnergistics2.ID, "tile.BlockTinyTNT", 1), - GT_OreDictUnificator.get("blockSpaceTime", 4), GT_OreDictUnificator.get("blockSpaceTime", 8), + new ItemStack[] { GTModHandler.getModItem(GoodGenerator.ID, "componentAssemblylineCasing", 16, 10), + GTModHandler.getModItem(GoodGenerator.ID, "componentAssemblylineCasing", 16, 10), + GTOreDictUnificator.get("blockSpaceTime", 4), GTOreDictUnificator.get("blockSpaceTime", 8), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 32026), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 12734), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 16, 14006), + GTOreDictUnificator.get("blockSpaceTime", 16), + GTModHandler.getModItem(AppliedEnergistics2.ID, "tile.BlockTinyTNT", 1), + GTModHandler.getModItem(AppliedEnergistics2.ID, "tile.BlockTinyTNT", 1), + GTOreDictUnificator.get("blockSpaceTime", 4), GTOreDictUnificator.get("blockSpaceTime", 8), new ItemStack(BlockRegister.BoxRing3, 32), }, new FluidStack[] { FluidRegistry.getFluidStack("molten.ethylcyanoacrylatesuperglue", 10240000), FluidRegistry.getFluidStack("glyceryl", 128000), @@ -628,21 +626,20 @@ public void addUpgradeModuleRecipe() { new ItemStack(BlockRegister.BoxModuleUpgrad, 1, 9), 2000, (int) TierEU.RECIPE_UIV); - TT_recipeAdder.addResearchableAssemblylineRecipe( + TTRecipeAdder.addResearchableAssemblylineRecipe( new ItemStack(BlockRegister.BoxModule, 1, 10), 20480000, 10240, (int) TierEU.RECIPE_UMV, 16, - new ItemStack[] { GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 31151), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 16999), - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 799), - GT_ModHandler.getModItem(GTPlusPlus.ID, "gtplusplus.blockcasings.5", 64, 14), - GT_ModHandler.getModItem(GTPlusPlus.ID, "gtplusplus.blockcasings.5", 64, 10), - GT_ModHandler.getModItem(GTPlusPlus.ID, "gtplusplus.blockcasings.4", 64, 4), - GT_ModHandler.getModItem(GoodGenerator.ID, "FRF_Coil_3", 64), - GT_OreDictUnificator.get("lensOrundum", 1), - GT_OreDictUnificator.get("rotorExtremelyUnstableNaquadah", 16), ItemList.Timepiece.get(1), + new ItemStack[] { GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 31151), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 16999), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 799), + GTModHandler.getModItem(GTPlusPlus.ID, "gtplusplus.blockcasings.5", 64, 14), + GTModHandler.getModItem(GTPlusPlus.ID, "gtplusplus.blockcasings.5", 64, 10), + GTModHandler.getModItem(GTPlusPlus.ID, "gtplusplus.blockcasings.4", 64, 4), + GTModHandler.getModItem(GoodGenerator.ID, "FRF_Coil_3", 64), GTOreDictUnificator.get("lensOrundum", 1), + GTOreDictUnificator.get("rotorExtremelyUnstableNaquadah", 16), ItemList.Timepiece.get(1), ItemList.NaquadriaSupersolid.get(1), ItemList.SuperconductorComposite.get(1), ItemList.StableAdhesive.get(1), new ItemStack(BlockRegister.BoxRing3, 32), }, new FluidStack[] { FluidRegistry.getFluidStack("molten.ethylcyanoacrylatesuperglue", 10240000), @@ -659,18 +656,18 @@ public void addUpgradeModuleRecipe() { "FCF", "DED", 'A', - GT_ModHandler.getModItem(GalaxySpace.ID, "item.DysonSwarmParts", 1), + GTModHandler.getModItem(GalaxySpace.ID, "item.DysonSwarmParts", 1), 'B', - GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 14001), + GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 14001), 'C', - GT_ModHandler.getModItem(GalacticraftMars.ID, "tile.marsMachine", 1, 4), + GTModHandler.getModItem(GalacticraftMars.ID, "tile.marsMachine", 1, 4), 'F', - GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.StargateShieldingFoil", 1), + GTModHandler.getModItem(NewHorizonsCoreMod.ID, "item.StargateShieldingFoil", 1), 'E', new ItemStack(BlockRegister.BoxModule, 1, 10), 'D', - GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.HeavyDutyRocketEngineTier4", 1)); - TT_recipeAdder.addResearchableAssemblylineRecipe( + GTModHandler.getModItem(NewHorizonsCoreMod.ID, "item.HeavyDutyRocketEngineTier4", 1)); + TTRecipeAdder.addResearchableAssemblylineRecipe( new ItemStack(BlockRegister.BoxModule, 1, 13), (int) TierEU.UXV, 32767, @@ -680,9 +677,9 @@ public void addUpgradeModuleRecipe() { ItemList.Electric_Motor_UXV.get(64), ItemList.Electric_Pump_UXV.get(64), ItemList.Emitter_UXV.get(64), ItemList.Electric_Piston_UXV.get(64), ItemList.Sensor_UXV.get(64), ItemList.Robot_Arm_UXV.get(64), ItemList.GigaChad.get(1), - GT_ModHandler.getModItem(TecTech.ID, "gt.stabilisation_field_generator", 48, 8), - GT_OreDictUnificator.get("batteryERV", 16), GT_OreDictUnificator.get("ingotTitanium", 1), - GT_OreDictUnificator.get("ingotSilver", 1) }, + GTModHandler.getModItem(TecTech.ID, "gt.stabilisation_field_generator", 48, 8), + GTOreDictUnificator.get("batteryERV", 16), GTOreDictUnificator.get("ingotTitanium", 1), + GTOreDictUnificator.get("ingotSilver", 1) }, new FluidStack[] { FluidRegistry.getFluidStack("molten.magnetohydrodynamicallyconstrainedstarmatter", 20000000), FluidRegistry.getFluidStack("molten.shirabon", 20000000), @@ -693,14 +690,14 @@ public void addUpgradeModuleRecipe() { Integer.MAX_VALUE - 1); // This is the debug test module recipe, maybe oneday we can re-add it... /* - * TT_recipeAdder.addResearchableAssemblylineRecipe( - * GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 1, 1145), + * TTRecipeAdder.addResearchableAssemblylineRecipe( + * GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 1, 1145), * Integer.MAX_VALUE - 1, * 32767, * Integer.MAX_VALUE - 1, * 96, * new ItemStack[]{ - * GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 4, 1145), + * GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 4, 1145), * ItemList.Electric_Motor_UXV.get(64), * ItemList.Electric_Pump_UXV.get(64), * ItemList.Emitter_UXV.get(64), @@ -708,14 +705,14 @@ public void addUpgradeModuleRecipe() { * ItemList.Sensor_UXV.get(64), * ItemList.Robot_Arm_UXV.get(64), * ItemList.GigaChad.get(1), - * GT_ModHandler.getModItem(SGCraft.ID, "stargateRing", 8, 0), - * GT_ModHandler.getModItem(SGCraft.ID, "stargateRing", 4, 1), - * GT_ModHandler.getModItem(SGCraft.ID, "stargateBase", 1), - * GT_OreDictUnificator.get("batteryERV", 64), + * GTModHandler.getModItem(SGCraft.ID, "stargateRing", 8, 0), + * GTModHandler.getModItem(SGCraft.ID, "stargateRing", 4, 1), + * GTModHandler.getModItem(SGCraft.ID, "stargateBase", 1), + * GTOreDictUnificator.get("batteryERV", 64), * new ItemStack(BlockRegister.BoxRing3, 64), * new ItemStack(BlockRegister.BoxRing3, 64), - * GT_OreDictUnificator.get("ingotTitanium", 1), - * GT_OreDictUnificator.get("ingotSilver", 1) + * GTOreDictUnificator.get("ingotTitanium", 1), + * GTOreDictUnificator.get("ingotSilver", 1) * }, * new FluidStack[]{ * FluidRegistry.getFluidStack("molten.magnetohydrodynamicallyconstrainedstarmatter", 2000000000), diff --git a/src/main/java/com/silvermoon/boxplusplus/common/tileentities/GTMachineBox.java b/src/main/java/com/silvermoon/boxplusplus/common/tileentities/GTMachineBox.java index cd9859b..c4f00e9 100644 --- a/src/main/java/com/silvermoon/boxplusplus/common/tileentities/GTMachineBox.java +++ b/src/main/java/com/silvermoon/boxplusplus/common/tileentities/GTMachineBox.java @@ -1,33 +1,6 @@ package com.silvermoon.boxplusplus.common.tileentities; -import static com.gtnewhorizon.structurelib.structure.StructureUtility.*; -import static com.gtnewhorizons.modularui.api.math.Alignment.TopCenter; -import static com.gtnewhorizons.modularui.api.math.Alignment.TopLeft; -import static com.silvermoon.boxplusplus.common.BoxModule.getModuleByIndex; -import static com.silvermoon.boxplusplus.common.BoxModule.transMachinesToModule; -import static com.silvermoon.boxplusplus.util.Util.*; -import static gregtech.api.enums.GT_HatchElement.*; -import static gregtech.api.enums.Textures.BlockIcons.casingTexturePages; -import static gregtech.api.util.GT_StructureUtility.buildHatchAdder; - -import java.io.IOException; -import java.util.*; - -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.PacketBuffer; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.EnumChatFormatting; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.FluidTank; - -import org.jetbrains.annotations.NotNull; - -import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyMulti; -import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyTunnel; +import appeng.api.AEApi; import com.glodblock.github.loader.ItemAndBlockHolder; import com.glodblock.github.util.FluidPatternDetails; import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructable; @@ -51,29 +24,52 @@ import com.silvermoon.boxplusplus.Tags; import com.silvermoon.boxplusplus.common.loader.BlockRegister; import com.silvermoon.boxplusplus.util.*; - -import appeng.api.AEApi; import gregtech.api.enums.Textures; -import gregtech.api.gui.modularui.GT_UIInfos; -import gregtech.api.gui.modularui.GT_UITextures; +import gregtech.api.gui.modularui.GTUIInfos; +import gregtech.api.gui.modularui.GTUITextures; import gregtech.api.interfaces.IIconContainer; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_ExtendedPowerMultiBlockBase; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch; +import gregtech.api.metatileentity.implementations.MTEExtendedPowerMultiBlockBase; +import gregtech.api.metatileentity.implementations.MTEHatch; import gregtech.api.recipe.check.CheckRecipeResult; import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.recipe.check.SimpleCheckRecipeResult; import gregtech.api.render.TextureFactory; -import gregtech.api.util.GT_Multiblock_Tooltip_Builder; -import gregtech.api.util.GT_OverclockCalculator; +import gregtech.api.util.MultiblockTooltipBuilder; +import gregtech.api.util.OverclockCalculator; import gregtech.common.misc.WirelessNetworkManager; import gregtech.common.tileentities.machines.IDualInputHatch; import gregtech.common.tileentities.machines.IDualInputInventory; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.PacketBuffer; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.EnumChatFormatting; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.FluidTank; +import org.jetbrains.annotations.NotNull; +import tectech.thing.metaTileEntity.hatch.MTEHatchEnergyMulti; +import tectech.thing.metaTileEntity.hatch.MTEHatchEnergyTunnel; + +import java.io.IOException; +import java.util.*; + +import static com.gtnewhorizon.structurelib.structure.StructureUtility.*; +import static com.gtnewhorizons.modularui.api.math.Alignment.TopCenter; +import static com.gtnewhorizons.modularui.api.math.Alignment.TopLeft; +import static com.silvermoon.boxplusplus.common.BoxModule.getModuleByIndex; +import static com.silvermoon.boxplusplus.common.BoxModule.transMachinesToModule; +import static com.silvermoon.boxplusplus.util.Util.*; +import static gregtech.api.enums.HatchElement.*; +import static gregtech.api.enums.Textures.BlockIcons.casingTexturePages; +import static gregtech.api.util.GTStructureUtility.buildHatchAdder; -public class GTMachineBox extends GT_MetaTileEntity_ExtendedPowerMultiBlockBase - implements ISurvivalConstructable { +public class GTMachineBox extends MTEExtendedPowerMultiBlockBase implements ISurvivalConstructable { private static final String STRUCTURE_PIECE_MainFrames = "Mainframes"; private static final String STRUCTURE_PIECE_FirstRing = "FirstRing"; @@ -954,8 +950,8 @@ public IStructureDefinition getStructureDefinition() { } @Override - protected GT_Multiblock_Tooltip_Builder createTooltip() { - GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder(); + protected MultiblockTooltipBuilder createTooltip() { + MultiblockTooltipBuilder tt = new MultiblockTooltipBuilder(); tt.addMachineType(i18n("tile.boxplusplus.boxtype")) .addInfo(i18n("tile.boxplusplus.boxinfo.02")) .addInfo(i18n("tile.boxplusplus.boxinfo.03")) @@ -1324,12 +1320,12 @@ && checkPiece(STRUCTURE_PIECE_Final, 23, 5, 20)) { } } // If you want it, then you'll have to take it. - for (GT_MetaTileEntity_Hatch hatch : getExoticEnergyHatches()) { - if (hatch instanceof GT_MetaTileEntity_Hatch_EnergyMulti && ringCount == 1) { + for (MTEHatch hatch : getExoticEnergyHatches()) { + if (hatch instanceof MTEHatchEnergyMulti && ringCount == 1) { machineError[0] = 5; return false; } - if (hatch instanceof GT_MetaTileEntity_Hatch_EnergyTunnel && !moduleActive[12]) { + if (hatch instanceof MTEHatchEnergyTunnel && !moduleActive[12]) { machineError[0] = 6; return false; } @@ -1432,7 +1428,7 @@ private void calTime() { mMaxProgresstime = Math.max((int) Math.pow(recipe.FinalTime, 0.2), 10); return; } - GT_OverclockCalculator cal = new GT_OverclockCalculator().setRecipeEUt(recipe.FinalVoteage) + OverclockCalculator cal = new OverclockCalculator().setRecipeEUt(recipe.FinalVoteage) .setDuration((int) recipe.FinalTime) .setEUt(getMaxInputEu()); switch (ringCount) { @@ -1695,8 +1691,8 @@ public void addUIWidgets(ModularWindow.Builder builder, UIBuildContext buildCont .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); - UI.add(GT_UITextures.BUTTON_STANDARD); - UI.add(GT_UITextures.OVERLAY_BUTTON_WHITELIST); + UI.add(GTUITextures.BUTTON_STANDARD); + UI.add(GTUITextures.OVERLAY_BUTTON_WHITELIST); return UI.toArray(new IDrawable[0]); }) .addTooltip(i18n("tile.boxplusplus.boxUI.01")) @@ -1712,8 +1708,8 @@ public void addUIWidgets(ModularWindow.Builder builder, UIBuildContext buildCont .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); - UI.add(GT_UITextures.BUTTON_STANDARD); - UI.add(GT_UITextures.OVERLAY_BUTTON_CYCLIC); + UI.add(GTUITextures.BUTTON_STANDARD); + UI.add(GTUITextures.OVERLAY_BUTTON_CYCLIC); return UI.toArray(new IDrawable[0]); }) .addTooltip(i18n("tile.boxplusplus.boxUI.02")) @@ -1732,8 +1728,8 @@ public void addUIWidgets(ModularWindow.Builder builder, UIBuildContext buildCont .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); - UI.add(GT_UITextures.BUTTON_STANDARD); - UI.add(GT_UITextures.OVERLAY_BUTTON_IMPORT); + UI.add(GTUITextures.BUTTON_STANDARD); + UI.add(GTUITextures.OVERLAY_BUTTON_IMPORT); return UI.toArray(new IDrawable[0]); }) .addTooltip(i18n("tile.boxplusplus.boxUI.03")) @@ -1747,8 +1743,8 @@ public void addUIWidgets(ModularWindow.Builder builder, UIBuildContext buildCont .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); - UI.add(GT_UITextures.BUTTON_STANDARD); - UI.add(GT_UITextures.OVERLAY_BUTTON_INVERT_REDSTONE); + UI.add(GTUITextures.BUTTON_STANDARD); + UI.add(GTUITextures.OVERLAY_BUTTON_INVERT_REDSTONE); return UI.toArray(new IDrawable[0]); }) .addTooltip(i18n("tile.boxplusplus.boxwiki.1")) @@ -1782,8 +1778,8 @@ protected ModularWindow createModuleWindow(final EntityPlayer player) { .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); - UI.add(GT_UITextures.BUTTON_STANDARD); - UI.add(GT_UITextures.OVERLAY_BUTTON_AUTOOUTPUT_FLUID); + UI.add(GTUITextures.BUTTON_STANDARD); + UI.add(GTUITextures.OVERLAY_BUTTON_AUTOOUTPUT_FLUID); return UI.toArray(new IDrawable[0]); }) .addTooltip(i18n("tile.boxplusplus.boxUI.module.20")) @@ -1806,8 +1802,8 @@ protected ModularWindow createModuleWindow(final EntityPlayer player) { .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); - UI.add(GT_UITextures.BUTTON_STANDARD); - UI.add(GT_UITextures.OVERLAY_BUTTON_AUTOOUTPUT_FLUID); + UI.add(GTUITextures.BUTTON_STANDARD); + UI.add(GTUITextures.OVERLAY_BUTTON_AUTOOUTPUT_FLUID); return UI.toArray(new IDrawable[0]); }) .addTooltip(i18n("tile.boxplusplus.boxUI.module.21")) @@ -1826,8 +1822,8 @@ protected ModularWindow createModuleWindow(final EntityPlayer player) { .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); - UI.add(GT_UITextures.BUTTON_STANDARD); - UI.add(GT_UITextures.OVERLAY_BUTTON_AUTOOUTPUT_FLUID); + UI.add(GTUITextures.BUTTON_STANDARD); + UI.add(GTUITextures.OVERLAY_BUTTON_AUTOOUTPUT_FLUID); return UI.toArray(new IDrawable[0]); }) .addTooltip(i18n("tile.boxplusplus.boxUI.module.22")) @@ -2081,7 +2077,7 @@ protected ModularWindow createModuleWindow(final EntityPlayer player) { */ protected ModularWindow createSingleModuleWindow(final EntityPlayer player) { ModularWindow.Builder builder = ModularWindow.builder(150, 200); - builder.setBackground(GT_UITextures.BACKGROUND_SINGLEBLOCK_DEFAULT); + builder.setBackground(GTUITextures.BACKGROUND_SINGLEBLOCK_DEFAULT); builder.setGuiTint(getGUIColorization()); builder.widget( ButtonWidget.closeWindowButton(true) @@ -2122,8 +2118,8 @@ protected ModularWindow createSingleModuleWindow(final EntityPlayer player) { .setSize(20, 20) .setBackground(() -> { List UI = new ArrayList<>(); - UI.add(GT_UITextures.BUTTON_STANDARD); - UI.add(GT_UITextures.OVERLAY_BUTTON_CHECKMARK); + UI.add(GTUITextures.BUTTON_STANDARD); + UI.add(GTUITextures.OVERLAY_BUTTON_CHECKMARK); return UI.toArray(new IDrawable[0]); }) .addTooltip(i18n("tile.boxplusplus.boxUI.module.16")) @@ -2141,8 +2137,8 @@ protected ModularWindow createSingleModuleWindow(final EntityPlayer player) { .setSize(20, 20) .setBackground(() -> { List UI = new ArrayList<>(); - UI.add(GT_UITextures.BUTTON_STANDARD); - UI.add(GT_UITextures.OVERLAY_BUTTON_CROSS); + UI.add(GTUITextures.BUTTON_STANDARD); + UI.add(GTUITextures.OVERLAY_BUTTON_CROSS); return UI.toArray(new IDrawable[0]); }) .addTooltip(i18n("tile.boxplusplus.boxUI.module.16a")) @@ -2158,7 +2154,7 @@ protected ModularWindow createSingleModuleWindow(final EntityPlayer player) { */ protected ModularWindow createInitialingWindow(final EntityPlayer player) { ModularWindow.Builder builder = ModularWindow.builder(260, 215); - builder.setBackground(GT_UITextures.BACKGROUND_SINGLEBLOCK_DEFAULT); + builder.setBackground(GTUITextures.BACKGROUND_SINGLEBLOCK_DEFAULT); builder.setGuiTint(getGUIColorization()); Synchronize(builder); randomSN = new ArrayList<>(); @@ -2166,7 +2162,7 @@ protected ModularWindow createInitialingWindow(final EntityPlayer player) { randomSN.add(new Random().nextInt(5) + 1); } builder.widget( - new DrawableWidget().setDrawable(GT_UITextures.OVERLAY_BUTTON_ARROW_GREEN_UP) + new DrawableWidget().setDrawable(GTUITextures.OVERLAY_BUTTON_ARROW_GREEN_UP) .setPos(5, 5) .setSize(16, 16)) .widget( @@ -2186,8 +2182,8 @@ protected ModularWindow createInitialingWindow(final EntityPlayer player) { .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); - UI.add(GT_UITextures.BUTTON_STANDARD); - UI.add(GT_UITextures.OVERLAY_BUTTON_AUTOOUTPUT_ITEM); + UI.add(GTUITextures.BUTTON_STANDARD); + UI.add(GTUITextures.OVERLAY_BUTTON_AUTOOUTPUT_ITEM); return UI.toArray(new IDrawable[0]); }) .addTooltip(i18n("tile.boxplusplus.boxUI.30")) @@ -2212,8 +2208,8 @@ protected ModularWindow createInitialingWindow(final EntityPlayer player) { .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); - UI.add(GT_UITextures.BUTTON_STANDARD); - UI.add(GT_UITextures.OVERLAY_BUTTON_AUTOOUTPUT_ITEM); + UI.add(GTUITextures.BUTTON_STANDARD); + UI.add(GTUITextures.OVERLAY_BUTTON_AUTOOUTPUT_ITEM); return UI.toArray(new IDrawable[0]); }) .addTooltip(i18n("tile.boxplusplus.boxUI.31")) @@ -2242,8 +2238,8 @@ protected ModularWindow createInitialingWindow(final EntityPlayer player) { .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); - UI.add(GT_UITextures.BUTTON_STANDARD); - UI.add(GT_UITextures.OVERLAY_BUTTON_ALLOW_INPUT); + UI.add(GTUITextures.BUTTON_STANDARD); + UI.add(GTUITextures.OVERLAY_BUTTON_ALLOW_INPUT); return UI.toArray(new IDrawable[0]); }) .addTooltip(i18n("tile.boxplusplus.boxUI.09")) @@ -2262,8 +2258,8 @@ protected ModularWindow createInitialingWindow(final EntityPlayer player) { .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); - UI.add(GT_UITextures.BUTTON_STANDARD); - UI.add(GT_UITextures.OVERLAY_BUTTON_BLOCK_INPUT); + UI.add(GTUITextures.BUTTON_STANDARD); + UI.add(GTUITextures.OVERLAY_BUTTON_BLOCK_INPUT); return UI.toArray(new IDrawable[0]); }) .addTooltip(i18n("tile.boxplusplus.boxUI.26")) @@ -2280,14 +2276,14 @@ protected ModularWindow createInitialingWindow(final EntityPlayer player) { BoxRoutings.checkRouting(this); if (!widget.isClient()) { player.closeScreen(); - GT_UIInfos.openGTTileEntityUI(getBaseMetaTileEntity(), player); + GTUIInfos.openGTTileEntityUI(getBaseMetaTileEntity(), player); } }) .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); - UI.add(GT_UITextures.BUTTON_STANDARD); - UI.add(GT_UITextures.OVERLAY_BUTTON_AUTOOUTPUT_ITEM); + UI.add(GTUITextures.BUTTON_STANDARD); + UI.add(GTUITextures.OVERLAY_BUTTON_AUTOOUTPUT_ITEM); return UI.toArray(new IDrawable[0]); }) .addTooltip(i18n("tile.boxplusplus.boxUI.08") + (routingMap.size() + 1)) @@ -2302,13 +2298,13 @@ protected ModularWindow createInitialingWindow(final EntityPlayer player) { .setSize(110, 180)); // Error X builder.widget( - new DrawableWidget().setDrawable(GT_UITextures.OVERLAY_BUTTON_CROSS) + new DrawableWidget().setDrawable(GTUITextures.OVERLAY_BUTTON_CROSS) .setPos(140, 71) .setSize(24, 24) .addTooltip(i18n("tile.boxplusplus.boxUI.ErrorCode." + routingStatus)) .setEnabled(routingStatus != 0 && !recipe.islocked)) .widget( - new DrawableWidget().setDrawable(GT_UITextures.OVERLAY_BUTTON_CHECKMARK) + new DrawableWidget().setDrawable(GTUITextures.OVERLAY_BUTTON_CHECKMARK) .setPos(140, 71) .setSize(36, 36) .addTooltip(i18n("tile.boxplusplus.boxUI.19")) @@ -2324,8 +2320,8 @@ protected ModularWindow createInitialingWindow(final EntityPlayer player) { .setSize(32, 32) .setBackground(() -> { List UI = new ArrayList<>(); - UI.add(GT_UITextures.BUTTON_STANDARD); - UI.add(GT_UITextures.OVERLAY_BUTTON_POWER_SWITCH_ON); + UI.add(GTUITextures.BUTTON_STANDARD); + UI.add(GTUITextures.OVERLAY_BUTTON_POWER_SWITCH_ON); return UI.toArray(new IDrawable[0]); }) .addTooltip(i18n("tile.boxplusplus.boxUI.20")) @@ -2344,7 +2340,7 @@ protected ModularWindow createInitialingWindow(final EntityPlayer player) { .setSize(14, 14) .setBackground(() -> { List UI = new ArrayList<>(); - UI.add(GT_UITextures.BUTTON_STANDARD); + UI.add(GTUITextures.BUTTON_STANDARD); UI.add(AdaptableUITexture.of(Tags.MODID, "textures/gui/double.png", 16, 16, 1)); return UI.toArray(new IDrawable[0]); }) @@ -2364,7 +2360,7 @@ protected ModularWindow createInitialingWindow(final EntityPlayer player) { .setSize(14, 14) .setBackground(() -> { List UI = new ArrayList<>(); - UI.add(GT_UITextures.BUTTON_STANDARD); + UI.add(GTUITextures.BUTTON_STANDARD); UI.add(AdaptableUITexture.of(Tags.MODID, "textures/gui/halve.png", 16, 16, 1)); return UI.toArray(new IDrawable[0]); }) @@ -2381,7 +2377,7 @@ protected ModularWindow createInitialingWindow(final EntityPlayer player) { .setSize(14, 14) .setBackground(() -> { List UI = new ArrayList<>(); - UI.add(GT_UITextures.BUTTON_STANDARD); + UI.add(GTUITextures.BUTTON_STANDARD); UI.add(AdaptableUITexture.of(Tags.MODID, "textures/gui/AE.png", 16, 16, 1)); return UI.toArray(new IDrawable[0]); }) @@ -2398,7 +2394,7 @@ protected ModularWindow createInitialingWindow(final EntityPlayer player) { .setSize(14, 14) .setBackground(() -> { List UI = new ArrayList<>(); - UI.add(GT_UITextures.BUTTON_STANDARD); + UI.add(GTUITextures.BUTTON_STANDARD); UI.add(AdaptableUITexture.of(Tags.MODID, "textures/gui/clear.png", 16, 16, 1)); return UI.toArray(new IDrawable[0]); }) @@ -2414,8 +2410,8 @@ protected ModularWindow createInitialingWindow(final EntityPlayer player) { .setSize(32, 32) .setBackground(() -> { List ret = new ArrayList<>(); - ret.add(GT_UITextures.BUTTON_STANDARD); - ret.add(GT_UITextures.OVERLAY_BUTTON_WHITELIST); + ret.add(GTUITextures.BUTTON_STANDARD); + ret.add(GTUITextures.OVERLAY_BUTTON_WHITELIST); return ret.toArray(new IDrawable[0]); }) .addTooltip(i18n("tile.boxplusplus.boxUI.21")) @@ -2431,11 +2427,11 @@ protected ModularWindow createInitialingWindow(final EntityPlayer player) { */ protected ModularWindow createRoutingWindow(final EntityPlayer player) { ModularWindow.Builder builder = ModularWindow.builder(220, 200); - builder.setBackground(GT_UITextures.BACKGROUND_SINGLEBLOCK_DEFAULT); + builder.setBackground(GTUITextures.BACKGROUND_SINGLEBLOCK_DEFAULT); builder.setGuiTint(getGUIColorization()); Synchronize(builder); builder.widget( - new DrawableWidget().setDrawable(GT_UITextures.OVERLAY_BUTTON_AUTOOUTPUT_FLUID) + new DrawableWidget().setDrawable(GTUITextures.OVERLAY_BUTTON_AUTOOUTPUT_FLUID) .setPos(5, 5) .setSize(16, 16)) .widget(new TextWidget(i18n("tile.boxplusplus.boxUI.10") + moduleSN).setPos(25, 9)) @@ -2566,7 +2562,7 @@ protected ModularWindow createRoutingWindow(final EntityPlayer player) { .setTextColor(Color.WHITE.normal) .setTextAlignment(Alignment.Center) .addTooltip(i18n("tile.boxplusplus.boxUI.24")) - .setBackground(GT_UITextures.BACKGROUND_TEXT_FIELD) + .setBackground(GTUITextures.BACKGROUND_TEXT_FIELD) .setSize(60, 12) .setPos(50, 171) .setEnabled(!recipe.islocked)) @@ -2584,7 +2580,7 @@ protected ModularWindow createRoutingWindow(final EntityPlayer player) { */ protected ModularWindow createImportWindow(final EntityPlayer player) { ModularWindow.Builder builder = ModularWindow.builder(300, 48); - builder.setBackground(GT_UITextures.BACKGROUND_SINGLEBLOCK_DEFAULT); + builder.setBackground(GTUITextures.BACKGROUND_SINGLEBLOCK_DEFAULT); builder.setGuiTint(getGUIColorization()); Synchronize(builder); TextFieldWidget textField = new TextFieldWidget() { @@ -2600,7 +2596,7 @@ public boolean onKeyPressed(char character, int keyCode) { return super.onKeyPressed(character, keyCode); } - @NotNull + @org.jetbrains.annotations.NotNull public String getText() { if (handler.getText() .isEmpty()) { @@ -2631,7 +2627,7 @@ public void onRemoveFocus() { .setTextAlignment(Alignment.CenterLeft) .setTextColor(Color.WHITE.dark(1)) .setFocusOnGuiOpen(true) - .setBackground(GT_UITextures.BACKGROUND_TEXT_FIELD_LIGHT_GRAY.withOffset(-1, -1, 2, 2)) + .setBackground(GTUITextures.BACKGROUND_TEXT_FIELD_LIGHT_GRAY.withOffset(-1, -1, 2, 2)) .setPos(5, 16) .setSize(250, 16)) .widget(new ButtonWidget().setOnClick((clickData, widget) -> { @@ -2666,8 +2662,8 @@ public void onRemoveFocus() { .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); - UI.add(GT_UITextures.BUTTON_STANDARD); - UI.add(GT_UITextures.OVERLAY_BUTTON_AUTOOUTPUT_ITEM); + UI.add(GTUITextures.BUTTON_STANDARD); + UI.add(GTUITextures.OVERLAY_BUTTON_AUTOOUTPUT_ITEM); return UI.toArray(new IDrawable[0]); }) .addTooltip(i18n("tile.boxplusplus.boxUI.30")) @@ -2677,7 +2673,7 @@ public void onRemoveFocus() { protected ModularWindow createExportPatternWindow(final EntityPlayer player) { ModularWindow.Builder builder = ModularWindow.builder(168, 125); - builder.setBackground(GT_UITextures.BACKGROUND_SINGLEBLOCK_DEFAULT); + builder.setBackground(GTUITextures.BACKGROUND_SINGLEBLOCK_DEFAULT); builder.setGuiTint(getGUIColorization()); Synchronize(builder); TextFieldWidget inputItem = new TextFieldWidget().setValidator(var -> Util.validator(recipe, var, false)); @@ -2687,7 +2683,7 @@ protected ModularWindow createExportPatternWindow(final EntityPlayer player) { inputItem.setTextAlignment(Alignment.CenterLeft) .setTextColor(Color.WHITE.dark(1)) .setFocusOnGuiOpen(false) - .setBackground(GT_UITextures.BACKGROUND_TEXT_FIELD_LIGHT_GRAY.withOffset(-1, -1, 2, 2)) + .setBackground(GTUITextures.BACKGROUND_TEXT_FIELD_LIGHT_GRAY.withOffset(-1, -1, 2, 2)) .setPos(12, 10) .addTooltip(i18n("tile.boxplusplus.boxUI.13")) .setSize(60, 12)) @@ -2695,7 +2691,7 @@ protected ModularWindow createExportPatternWindow(final EntityPlayer player) { inputFluid.setTextAlignment(Alignment.CenterLeft) .setTextColor(Color.WHITE.dark(1)) .setFocusOnGuiOpen(false) - .setBackground(GT_UITextures.BACKGROUND_TEXT_FIELD_LIGHT_GRAY.withOffset(-1, -1, 2, 2)) + .setBackground(GTUITextures.BACKGROUND_TEXT_FIELD_LIGHT_GRAY.withOffset(-1, -1, 2, 2)) .setPos(96, 10) .addTooltip(i18n("tile.boxplusplus.boxUI.14")) .setSize(60, 12)) @@ -2710,8 +2706,8 @@ protected ModularWindow createExportPatternWindow(final EntityPlayer player) { .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); - UI.add(GT_UITextures.BUTTON_STANDARD); - UI.add(GT_UITextures.OVERLAY_BUTTON_AUTOOUTPUT_ITEM); + UI.add(GTUITextures.BUTTON_STANDARD); + UI.add(GTUITextures.OVERLAY_BUTTON_AUTOOUTPUT_ITEM); return UI.toArray(new IDrawable[0]); }) .addTooltip(i18n("tile.boxplusplus.boxUI.36")) @@ -2724,7 +2720,7 @@ protected ModularWindow createExportPatternWindow(final EntityPlayer player) { */ protected ModularWindow createClearWindow(final EntityPlayer player) { ModularWindow.Builder builder = ModularWindow.builder(146, 60 + (randomSN.size() == 1 ? 15 : 0)); - builder.setBackground(GT_UITextures.BACKGROUND_SINGLEBLOCK_DEFAULT); + builder.setBackground(GTUITextures.BACKGROUND_SINGLEBLOCK_DEFAULT); builder.setGuiTint(getGUIColorization()); Synchronize(builder); builder @@ -2768,7 +2764,7 @@ protected ModularWindow createClearWindow(final EntityPlayer player) { .setSize(24, 24) .setBackground(() -> { List UI = new ArrayList<>(); - UI.add(GT_UITextures.BUTTON_STANDARD); + UI.add(GTUITextures.BUTTON_STANDARD); UI.add( AdaptableUITexture.of( Tags.MODID, @@ -2790,10 +2786,10 @@ protected ModularWindow createClearWindow(final EntityPlayer player) { */ protected ModularWindow createFinalRecipeWindow(final EntityPlayer player) { ModularWindow.Builder builder = ModularWindow.builder(360, 220); - builder.setBackground(GT_UITextures.BACKGROUND_SINGLEBLOCK_DEFAULT); + builder.setBackground(GTUITextures.BACKGROUND_SINGLEBLOCK_DEFAULT); builder.setGuiTint(getGUIColorization()); builder.widget( - new DrawableWidget().setDrawable(GT_UITextures.OVERLAY_BUTTON_AUTOOUTPUT_FLUID) + new DrawableWidget().setDrawable(GTUITextures.OVERLAY_BUTTON_AUTOOUTPUT_FLUID) .setPos(5, 5) .setSize(16, 16)) .widget(new TextWidget(i18n("tile.boxplusplus.boxUI.22")).setPos(25, 9)) @@ -2952,14 +2948,14 @@ protected ModularWindow createFinalRecipeWindow(final EntityPlayer player) { recipe.islocked = true; if (!widget.isClient()) { player.closeScreen(); - GT_UIInfos.openGTTileEntityUI(getBaseMetaTileEntity(), player); + GTUIInfos.openGTTileEntityUI(getBaseMetaTileEntity(), player); } }) .setSize(20, 20) .setBackground(() -> { List UI = new ArrayList<>(); - UI.add(GT_UITextures.BUTTON_STANDARD); - UI.add(GT_UITextures.OVERLAY_BUTTON_CHECKMARK); + UI.add(GTUITextures.BUTTON_STANDARD); + UI.add(GTUITextures.OVERLAY_BUTTON_CHECKMARK); return UI.toArray(new IDrawable[0]); }) .addTooltip(i18n("tile.boxplusplus.boxUI.25")) @@ -2973,11 +2969,11 @@ protected ModularWindow createFinalRecipeWindow(final EntityPlayer player) { */ protected ModularWindow createWikiWindow(final EntityPlayer player) { ModularWindow.Builder builder = ModularWindow.builder(300, 210); - builder.setBackground(GT_UITextures.BACKGROUND_SINGLEBLOCK_DEFAULT); + builder.setBackground(GTUITextures.BACKGROUND_SINGLEBLOCK_DEFAULT); builder.setGuiTint(getGUIColorization()); Synchronize(builder); builder.widget( - new DrawableWidget().setDrawable(GT_UITextures.OVERLAY_BUTTON_NEI) + new DrawableWidget().setDrawable(GTUITextures.OVERLAY_BUTTON_NEI) .setPos(5, 5) .setSize(16, 16)) .widget(new TextWidget(i18n("tile.boxplusplus.boxwiki.1")).setPos(25, 9)) @@ -2997,8 +2993,8 @@ protected ModularWindow createWikiWindow(final EntityPlayer player) { .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); - UI.add(GT_UITextures.BUTTON_STANDARD); - UI.add(GT_UITextures.OVERLAY_BUTTON_INVERT_REDSTONE); + UI.add(GTUITextures.BUTTON_STANDARD); + UI.add(GTUITextures.OVERLAY_BUTTON_INVERT_REDSTONE); return UI.toArray(new IDrawable[0]); }) .addTooltip(i18n("tile.boxplusplus.boxwiki.3")) @@ -3015,8 +3011,8 @@ protected ModularWindow createWikiWindow(final EntityPlayer player) { .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); - UI.add(GT_UITextures.BUTTON_STANDARD); - UI.add(GT_UITextures.OVERLAY_BUTTON_BATCH_MODE_ON); + UI.add(GTUITextures.BUTTON_STANDARD); + UI.add(GTUITextures.OVERLAY_BUTTON_BATCH_MODE_ON); return UI.toArray(new IDrawable[0]); }) .addTooltip(i18n("tile.boxplusplus.boxwiki.4")) @@ -3033,8 +3029,8 @@ protected ModularWindow createWikiWindow(final EntityPlayer player) { .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); - UI.add(GT_UITextures.BUTTON_STANDARD); - UI.add(GT_UITextures.OVERLAY_BUTTON_POWER_SWITCH_ON); + UI.add(GTUITextures.BUTTON_STANDARD); + UI.add(GTUITextures.OVERLAY_BUTTON_POWER_SWITCH_ON); return UI.toArray(new IDrawable[0]); }) .addTooltip(i18n("tile.boxplusplus.boxwiki.5")) @@ -3051,8 +3047,8 @@ protected ModularWindow createWikiWindow(final EntityPlayer player) { .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); - UI.add(GT_UITextures.BUTTON_STANDARD); - UI.add(GT_UITextures.OVERLAY_BUTTON_PROGRESS); + UI.add(GTUITextures.BUTTON_STANDARD); + UI.add(GTUITextures.OVERLAY_BUTTON_PROGRESS); return UI.toArray(new IDrawable[0]); }) .addTooltip(i18n("tile.boxplusplus.boxwiki.6")) @@ -3069,8 +3065,8 @@ protected ModularWindow createWikiWindow(final EntityPlayer player) { .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); - UI.add(GT_UITextures.BUTTON_STANDARD); - UI.add(GT_UITextures.OVERLAY_BUTTON_WHITELIST); + UI.add(GTUITextures.BUTTON_STANDARD); + UI.add(GTUITextures.OVERLAY_BUTTON_WHITELIST); return UI.toArray(new IDrawable[0]); }) .addTooltip(i18n("tile.boxplusplus.boxwiki.7")) @@ -3131,8 +3127,8 @@ private void getwikiByIndex(ModularWindow.Builder builder) { .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); - UI.add(GT_UITextures.BUTTON_STANDARD); - UI.add(GT_UITextures.OVERLAY_BUTTON_ARROW_GREEN_DOWN); + UI.add(GTUITextures.BUTTON_STANDARD); + UI.add(GTUITextures.OVERLAY_BUTTON_ARROW_GREEN_DOWN); return UI.toArray(new IDrawable[0]); }) .addTooltip(i18n("tile.boxplusplus.boxwiki.0")) @@ -3169,8 +3165,8 @@ private void getwikiByIndex(ModularWindow.Builder builder) { .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); - UI.add(GT_UITextures.BUTTON_STANDARD); - UI.add(GT_UITextures.OVERLAY_BUTTON_ARROW_GREEN_DOWN); + UI.add(GTUITextures.BUTTON_STANDARD); + UI.add(GTUITextures.OVERLAY_BUTTON_ARROW_GREEN_DOWN); return UI.toArray(new IDrawable[0]); }) .addTooltip(i18n("tile.boxplusplus.boxwiki.0")) @@ -3193,8 +3189,8 @@ private void getwikiByIndex(ModularWindow.Builder builder) { .setSize(16, 16) .setBackground(() -> { List UI = new ArrayList<>(); - UI.add(GT_UITextures.BUTTON_STANDARD); - UI.add(GT_UITextures.OVERLAY_BUTTON_EMIT_REDSTONE); + UI.add(GTUITextures.BUTTON_STANDARD); + UI.add(GTUITextures.OVERLAY_BUTTON_EMIT_REDSTONE); return UI.toArray(new IDrawable[0]); }) .addTooltip(i18n("tile.boxplusplus.boxUI.module." + i)) diff --git a/src/main/java/com/silvermoon/boxplusplus/network/MessageRouting.java b/src/main/java/com/silvermoon/boxplusplus/network/MessageRouting.java index 9a55de7..8b46c99 100644 --- a/src/main/java/com/silvermoon/boxplusplus/network/MessageRouting.java +++ b/src/main/java/com/silvermoon/boxplusplus/network/MessageRouting.java @@ -12,7 +12,7 @@ import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; import cpw.mods.fml.relauncher.Side; -import gregtech.api.gui.modularui.GT_UIInfos; +import gregtech.api.gui.modularui.GTUIInfos; import io.netty.buffer.ByteBuf; public class MessageRouting implements IMessage { @@ -51,7 +51,7 @@ public IMessage onMessage(MessageRouting message, MessageContext ctx) { GTMachineBox box = Util.boxMap.get(player); box.routingMap.add(new BoxRoutings(message.nbt)); player.openContainer.detectAndSendChanges(); - GT_UIInfos.openGTTileEntityUI(box.getBaseMetaTileEntity(), player); + GTUIInfos.openGTTileEntityUI(box.getBaseMetaTileEntity(), player); } } return null; diff --git a/src/main/java/com/silvermoon/boxplusplus/util/BoxRecipe.java b/src/main/java/com/silvermoon/boxplusplus/util/BoxRecipe.java index 6789e5a..4873ecb 100644 --- a/src/main/java/com/silvermoon/boxplusplus/util/BoxRecipe.java +++ b/src/main/java/com/silvermoon/boxplusplus/util/BoxRecipe.java @@ -17,8 +17,8 @@ import appeng.api.storage.data.IAEItemStack; import appeng.util.item.AEItemStack; -import gregtech.api.util.GT_OreDictUnificator; -import gregtech.api.util.GT_Utility; +import gregtech.api.util.GTOreDictUnificator; +import gregtech.api.util.GTUtility; public class BoxRecipe { @@ -69,9 +69,9 @@ public BoxRecipe(NBTTagCompound nbt) { public static void ItemOnBox(List input, List output) { for (ItemStack iItem : input) { for (ItemStack oItem : output) { - if (GT_Utility.areStacksEqual(oItem, iItem, true) || (oItem.getUnlocalizedName() + if (GTUtility.areStacksEqual(oItem, iItem, true) || (oItem.getUnlocalizedName() .startsWith("item.Circuit") - && GT_OreDictUnificator.isInputStackEqual(iItem, GT_OreDictUnificator.get(oItem)))) { + && GTOreDictUnificator.isInputStackEqual(iItem, GTOreDictUnificator.get(oItem)))) { if (iItem.stackSize == oItem.stackSize) { iItem.stackSize = 0; oItem.stackSize = 0; diff --git a/src/main/java/com/silvermoon/boxplusplus/util/BoxRoutings.java b/src/main/java/com/silvermoon/boxplusplus/util/BoxRoutings.java index 4e0d940..9bfd267 100644 --- a/src/main/java/com/silvermoon/boxplusplus/util/BoxRoutings.java +++ b/src/main/java/com/silvermoon/boxplusplus/util/BoxRoutings.java @@ -1,7 +1,7 @@ package com.silvermoon.boxplusplus.util; import static com.silvermoon.boxplusplus.util.Util.*; -import static gregtech.common.blocks.GT_Item_Machines.getMetaTileEntity; +import static gregtech.common.blocks.ItemMachines.getMetaTileEntity; import java.util.ArrayList; import java.util.Arrays; @@ -19,7 +19,6 @@ import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; -import com.github.bartimaeusnek.bartworks.API.recipe.BartWorksRecipeMaps; import com.silvermoon.boxplusplus.api.IBoxable; import com.silvermoon.boxplusplus.boxplusplus; import com.silvermoon.boxplusplus.common.tileentities.GTMachineBox; @@ -27,19 +26,20 @@ import com.silvermoon.boxplusplus.network.NetworkLoader; import appeng.container.ContainerNull; +import bartworks.API.recipe.BartWorksRecipeMaps; import codechicken.nei.PositionedStack; import codechicken.nei.recipe.RecipeCatalysts; import fox.spiteful.avaritia.crafting.ExtremeShapedOreRecipe; import fox.spiteful.avaritia.crafting.ExtremeShapedRecipe; import goodgenerator.api.recipe.GoodGeneratorRecipeMaps; import gregtech.api.enums.*; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_InputBus; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; +import gregtech.api.metatileentity.implementations.MTEHatchInputBus; +import gregtech.api.metatileentity.implementations.MTEMultiBlockBase; import gregtech.api.recipe.RecipeMap; import gregtech.api.recipe.RecipeMaps; import gregtech.api.util.*; -import gregtech.common.items.behaviors.Behaviour_DataOrb; -import gregtech.nei.GT_NEI_DefaultHandler; +import gregtech.common.items.behaviors.BehaviourDataOrb; +import gregtech.nei.GTNEIDefaultHandler; import gtPlusPlus.core.util.minecraft.ItemUtils; public class BoxRoutings { @@ -55,7 +55,7 @@ public class BoxRoutings { public int time; public Long voltage; - public BoxRoutings(GT_Recipe recipe, ItemStack machine) { + public BoxRoutings(GTRecipe recipe, ItemStack machine) { InputItem.addAll(Arrays.asList(recipe.mInputs)); InputItem.removeAll(Collections.singleton(null)); OutputItem.addAll(Arrays.asList(recipe.mOutputs)); @@ -240,9 +240,9 @@ public static void checkRouting(GTMachineBox box) { return; } RecipeMap recipeMap; - GT_Recipe routingRecipe = null; + GTRecipe routingRecipe = null; List allInputItems = box.getStoredInputs(); - for (GT_MetaTileEntity_Hatch_InputBus inputBus : box.mInputBusses) { + for (MTEHatchInputBus inputBus : box.mInputBusses) { for (int i = inputBus.getSizeInventory() - 1; i >= 0; i--) { if (inputBus.getStackInSlot(i) != null) { { @@ -251,14 +251,18 @@ public static void checkRouting(GTMachineBox box) { .getUnlocalizedName() .equals("gt.blockmachines.basicmachine.electromagneticseparator.tier.06")) { recipeMap = RecipeMaps.electroMagneticSeparatorRecipes; - routingRecipe = recipeMap.findRecipe( - box.getBaseMetaTileEntity(), - true, - true, - Long.MAX_VALUE / 10, - box.getStoredFluids() - .toArray(new FluidStack[0]), - allInputItems.toArray(new ItemStack[0])); + routingRecipe = recipeMap.findRecipeQuery() + .items(allInputItems.toArray(new ItemStack[0])) + .fluids( + box.getStoredFluids() + .toArray(new FluidStack[0])) + .voltage(Long.MAX_VALUE / 10) + .dontCheckStackSizes(true) + .notUnificated(true) + .find(); + + // box.getBaseMetaTileEntity(), + if (routingRecipe != null) { box.routingMap.add(new BoxRoutings(routingRecipe.copy(), inputBus.getStackInSlot(i))); box.routingStatus = 0; @@ -297,9 +301,9 @@ public static void checkRouting(GTMachineBox box) { .getRecipeList(); for (Object recipe : recipeList) { if (recipe instanceof ExtremeShapedRecipe exRecipe) { - if (GT_OreDictUnificator.isInputStackEqual( + if (GTOreDictUnificator.isInputStackEqual( item, - GT_OreDictUnificator.get(exRecipe.getRecipeOutput()))) { + GTOreDictUnificator.get(exRecipe.getRecipeOutput()))) { ItemStack[] in = exRecipe.recipeItems; ItemContainer var = new ItemContainer(); for (ItemStack itemIn : in) { @@ -322,15 +326,15 @@ public static void checkRouting(GTMachineBox box) { return; } } else if (recipe instanceof ExtremeShapedOreRecipe exRecipe) { - if (GT_OreDictUnificator.isInputStackEqual(item, exRecipe.getRecipeOutput())) { + if (GTOreDictUnificator.isInputStackEqual(item, exRecipe.getRecipeOutput())) { Object[] in = exRecipe.getInput(); ItemContainer var = new ItemContainer(); for (Object ObjtecIn : in) { if (ObjtecIn == null) continue; if (ObjtecIn instanceof ItemStack itemIn) - var.addItemStack(GT_OreDictUnificator.get(itemIn), 1, 10000); + var.addItemStack(GTOreDictUnificator.get(itemIn), 1, 10000); if (ObjtecIn instanceof ArrayList listIn) var.addItemStack( - GT_OreDictUnificator.get((ItemStack) listIn.get(0)), + GTOreDictUnificator.get((ItemStack) listIn.get(0)), 1, 10000); } @@ -356,8 +360,7 @@ public static void checkRouting(GTMachineBox box) { return; } } - if (getMetaTileEntity( - inputBus.getStackInSlot(i)) instanceof GT_MetaTileEntity_MultiBlockBase RoutingMachine) { + if (getMetaTileEntity(inputBus.getStackInSlot(i)) instanceof MTEMultiBlockBase RoutingMachine) { boxplusplus.LOG.debug(RoutingMachine.mName); List ItemInputs = deepCopyItemList(box.getStoredInputs()); List FluidInputs = deepCopyFluidList(box.getStoredFluids()); @@ -373,7 +376,7 @@ public static void checkRouting(GTMachineBox box) { } case "multimachine.multifurnace" -> { for (ItemStack input : ItemInputs) { - ItemStack output = GT_OreDictUnificator.get( + ItemStack output = GTOreDictUnificator.get( FurnaceRecipes.smelting() .getSmeltingResult(input)); if (output != null) { @@ -482,20 +485,20 @@ public static void checkRouting(GTMachineBox box) { } // We can find assemblyline recipe using the original method, but no need to update it, // nor check it - GT_AssemblyLineUtils.LookupResult tLookupResult = GT_AssemblyLineUtils + AssemblyLineUtils.LookupResult tLookupResult = AssemblyLineUtils .findAssemblyLineRecipeFromDataStick(data, false); - if (tLookupResult.getType() == GT_AssemblyLineUtils.LookupResultType.INVALID_STICK) { + if (tLookupResult.getType() == AssemblyLineUtils.LookupResultType.INVALID_STICK) { box.routingStatus = 5; return; } - GT_Recipe.GT_Recipe_AssemblyLine tRecipe = tLookupResult.getRecipe(); + GTRecipe.RecipeAssemblyLine tRecipe = tLookupResult.getRecipe(); ItemStack[] in = Arrays.copyOf(tRecipe.mInputs, tRecipe.mInputs.length); for (int j = 0; j < tRecipe.mOreDictAlt.length; j++) { if (tRecipe.mOreDictAlt[j] == null) continue; - in[j] = GT_OreDictUnificator.get(false, in[j]); + in[j] = GTOreDictUnificator.get(false, in[j]); for (ItemStack replace : ItemInputs) { - if (GT_OreDictUnificator.getAssociation(replace) != null - && GT_OreDictUnificator.isInputStackEqual(replace, in[j])) { + if (GTOreDictUnificator.getAssociation(replace) != null + && GTOreDictUnificator.isInputStackEqual(replace, in[j])) { in[j] = new ItemStack( replace.getItem(), in[j].stackSize, @@ -524,12 +527,13 @@ public static void checkRouting(GTMachineBox box) { // it. // But not anymore. routingRecipe = RoutingMachine.getRecipeMap() - .findRecipe( - box.getBaseMetaTileEntity(), - true, - Long.MAX_VALUE / 10, - FluidInputs.toArray(new FluidStack[0]), - ItemInputs.toArray(new ItemStack[0])); + .findRecipeQuery() + .notUnificated(true) + .voltage(Long.MAX_VALUE / 10) + .fluids(FluidInputs.toArray(new FluidStack[0])) + .items(ItemInputs.toArray(new ItemStack[0])) + .find(); + if (routingRecipe == null) { box.routingStatus = 3; return; @@ -553,8 +557,8 @@ public static void checkRouting(GTMachineBox box) { box.routingStatus = 6; return; } - for (GT_Recipe recipe : recipeMap.getAllRecipes()) { - if (GT_Utility.areStacksEqual( + for (GTRecipe recipe : recipeMap.getAllRecipes()) { + if (GTUtility.areStacksEqual( recipe.mOutputs[0], ItemStack.loadItemStackFromNBT( inputBus.getStackInSlot(i) @@ -592,9 +596,9 @@ public static void checkRouting(GTMachineBox box) { recipeMap = RecipeMaps.replicatorRecipes; Materials replicatorItem = null; for (ItemStack item : ItemInputs) { - if (Behaviour_DataOrb.getDataName(item) + if (BehaviourDataOrb.getDataName(item) .isEmpty()) continue; - replicatorItem = Element.get(Behaviour_DataOrb.getDataName(item)).mLinkedMaterials + replicatorItem = Element.get(BehaviourDataOrb.getDataName(item)).mLinkedMaterials .get(0); break; } @@ -602,12 +606,12 @@ public static void checkRouting(GTMachineBox box) { box.routingStatus = 7; return; } - for (GT_Recipe recipe : recipeMap.getAllRecipes()) { + for (GTRecipe recipe : recipeMap.getAllRecipes()) { if (!(recipe.mSpecialItems instanceof ItemStack[]var1)) { continue; } if (replicatorItem.equals( - Element.get(Behaviour_DataOrb.getDataName(var1[0])).mLinkedMaterials.get(0))) { + Element.get(BehaviourDataOrb.getDataName(var1[0])).mLinkedMaterials.get(0))) { box.routingMap.add(new BoxRoutings(recipe, RoutingMachine.getStackForm(1))); box.routingStatus = 0; return; @@ -638,22 +642,23 @@ public static void checkRouting(GTMachineBox box) { } } ItemInputs.remove(inputBus.getStackInSlot(i)); - if (routingRecipe == null) routingRecipe = recipeMap.findRecipe( - box.getBaseMetaTileEntity(), - true, - true, - Long.MAX_VALUE / 10, - FluidInputs.toArray(new FluidStack[0]), - ItemInputs.toArray(new ItemStack[0])); + if (routingRecipe == null) routingRecipe = recipeMap.findRecipeQuery() + .notUnificated(true) + .dontCheckStackSizes(true) + .voltage(Long.MAX_VALUE / 10) + .items(ItemInputs.toArray(new ItemStack[0])) + .fluids(FluidInputs.toArray(new FluidStack[0])) + .find(); + if (routingRecipe != null) { - GT_Recipe tempRecipe = routingRecipe.copy(); + GTRecipe tempRecipe = routingRecipe.copy(); for (int j = 0; j < tempRecipe.mInputs.length; j++) { if (tempRecipe.mInputs[j] == null) continue; - if (GT_OreDictUnificator.getAssociation(tempRecipe.mInputs[j]) != null) { + if (GTOreDictUnificator.getAssociation(tempRecipe.mInputs[j]) != null) { for (ItemStack si : box.getStoredInputs()) { - if (GT_OreDictUnificator.isInputStackEqual( + if (GTOreDictUnificator.isInputStackEqual( tempRecipe.mInputs[j], - GT_OreDictUnificator.get(false, si))) { + GTOreDictUnificator.get(false, si))) { tempRecipe.mInputs[j] = new ItemStack( si.getItem(), tempRecipe.mInputs[j].stackSize, @@ -675,19 +680,18 @@ public static void checkRouting(GTMachineBox box) { box.routingStatus = 2; } - public static void makeRouting(GT_NEI_DefaultHandler recipe, int recipeIndex, EntityPlayer player) { + public static void makeRouting(GTNEIDefaultHandler recipe, int recipeIndex, EntityPlayer player) { List machineListWithPos = RecipeCatalysts.getRecipeCatalysts(recipe); List machineList = machineListWithPos.stream() .map(v -> v.item) .collect(Collectors.toList()); for (ItemStack machine : machineList) { - if (getMetaTileEntity(machine) instanceof GT_MetaTileEntity_MultiBlockBase mte - && !mte.mName.startsWith("TST") + if (getMetaTileEntity(machine) instanceof MTEMultiBlockBase mte && !mte.mName.startsWith("TST") && !mte.mName.startsWith("name")) { NetworkLoader.instance.sendToServer( new MessageRouting( new BoxRoutings( - ((GT_NEI_DefaultHandler.CachedDefaultRecipe) recipe.arecipes.get(recipeIndex)).mRecipe, + ((GTNEIDefaultHandler.CachedDefaultRecipe) recipe.arecipes.get(recipeIndex)).mRecipe, machine).routingToNbt(), player)); break; diff --git a/src/main/java/com/silvermoon/boxplusplus/util/ResultModuleRequirement.java b/src/main/java/com/silvermoon/boxplusplus/util/ResultModuleRequirement.java index af3943a..24c98ab 100644 --- a/src/main/java/com/silvermoon/boxplusplus/util/ResultModuleRequirement.java +++ b/src/main/java/com/silvermoon/boxplusplus/util/ResultModuleRequirement.java @@ -2,9 +2,14 @@ import static com.silvermoon.boxplusplus.util.Util.i18n; +import javax.annotation.Nonnull; + +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.PacketBuffer; import net.minecraft.util.EnumChatFormatting; +import org.jetbrains.annotations.NotNull; + import gregtech.api.recipe.check.CheckRecipeResult; public class ResultModuleRequirement implements CheckRecipeResult { @@ -33,6 +38,17 @@ public String getDisplayString() { + i18n("tile.boxplusplus_" + (isUpdated ? "boxmoduleplus." : "boxmodule." + required + ".name")); } + @NotNull + @Override + public NBTTagCompound writeToNBT(@Nonnull NBTTagCompound tag) { + return null; + } + + @Override + public void readFromNBT(@Nonnull NBTTagCompound tag) { + + } + @Override public CheckRecipeResult newInstance() { return new ResultModuleRequirement(0, false); diff --git a/src/main/java/com/silvermoon/boxplusplus/util/Util.java b/src/main/java/com/silvermoon/boxplusplus/util/Util.java index 74a16b6..3b8fe4e 100644 --- a/src/main/java/com/silvermoon/boxplusplus/util/Util.java +++ b/src/main/java/com/silvermoon/boxplusplus/util/Util.java @@ -1,13 +1,14 @@ package com.silvermoon.boxplusplus.util; -import java.io.IOException; -import java.util.*; -import java.util.function.BiPredicate; -import java.util.function.Function; -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import java.util.stream.Stream; - +import appeng.api.AEApi; +import appeng.api.definitions.IDefinitions; +import com.gtnewhorizon.structurelib.StructureLibAPI; +import com.gtnewhorizon.structurelib.structure.IStructureElement; +import com.silvermoon.boxplusplus.common.loader.BlockRegister; +import com.silvermoon.boxplusplus.common.tileentities.GTMachineBox; +import gregtech.api.recipe.RecipeMap; +import gregtech.api.recipe.RecipeMaps; +import gregtech.api.util.GTModHandler; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; @@ -21,20 +22,16 @@ import net.minecraft.util.StatCollector; import net.minecraft.world.World; import net.minecraftforge.fluids.FluidStack; - import org.apache.commons.lang3.StringUtils; import org.jetbrains.annotations.Nullable; -import com.gtnewhorizon.structurelib.StructureLibAPI; -import com.gtnewhorizon.structurelib.structure.IStructureElement; -import com.silvermoon.boxplusplus.common.loader.BlockRegister; -import com.silvermoon.boxplusplus.common.tileentities.GTMachineBox; - -import appeng.api.AEApi; -import appeng.api.definitions.IDefinitions; -import gregtech.api.recipe.RecipeMap; -import gregtech.api.recipe.RecipeMaps; -import gregtech.api.util.GT_ModHandler; +import java.io.IOException; +import java.util.*; +import java.util.function.BiPredicate; +import java.util.function.Function; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import java.util.stream.Stream; public class Util { @@ -130,7 +127,7 @@ public static ItemStack readBoxItemFromUNBT(NBTTagCompound nbt) { if (itemDamage < 0) { itemDamage = 0; } - ItemStack boxItem = GT_ModHandler + ItemStack boxItem = GTModHandler .getModItem(nbt.getString("modID"), nbt.getString("name"), stackSize, itemDamage); if (nbt.hasKey("tag", 10)) { boxItem.stackTagCompound = nbt.getCompoundTag("tag"); From 8168d5c8556b9459e9b9dc1c2a4193b51692bae6 Mon Sep 17 00:00:00 2001 From: luomolhx <2932965369@qq.com> Date: Sun, 17 Nov 2024 15:32:22 +0800 Subject: [PATCH 10/12] fit 2.7.0 --- gradle.properties | 5 ----- 1 file changed, 5 deletions(-) diff --git a/gradle.properties b/gradle.properties index 0f362bc..ad91d79 100644 --- a/gradle.properties +++ b/gradle.properties @@ -140,8 +140,3 @@ disableCheckstyle=true # Usually there is no need to uncomment this here as other developers do not necessarily use the same build type as you. # ideaOverrideBuildType = idea - -systemProp.http.proxyHost=127.0.0.1 -systemProp.http.proxyPort=7897 -systemProp.https.proxyHost=127.0.0.1 -systemProp.https.proxyPort=7897 From 23cfd18313dc4c1013735c33ab89a77a79d3a9fe Mon Sep 17 00:00:00 2001 From: luomolhx <2932965369@qq.com> Date: Sun, 17 Nov 2024 15:58:10 +0800 Subject: [PATCH 11/12] apply Spotless --- .../silvermoon/boxplusplus/boxplusplus.java | 3 +- .../common/block/BlockBoxModuleCore.java | 5 +- .../common/items/IB_BoxModule.java | 11 ++-- .../common/loader/BlockRegister.java | 30 +++++------ .../common/render/RenderBoxRing.java | 5 +- .../common/tileentities/GTMachineBox.java | 53 ++++++++++--------- .../boxplusplus/util/FluidContainer.java | 8 +-- .../boxplusplus/util/ItemContainer.java | 14 ++--- .../util/ResultModuleRequirement.java | 5 +- .../com/silvermoon/boxplusplus/util/Util.java | 35 ++++++------ 10 files changed, 83 insertions(+), 86 deletions(-) diff --git a/src/main/java/com/silvermoon/boxplusplus/boxplusplus.java b/src/main/java/com/silvermoon/boxplusplus/boxplusplus.java index 684736f..f548d84 100644 --- a/src/main/java/com/silvermoon/boxplusplus/boxplusplus.java +++ b/src/main/java/com/silvermoon/boxplusplus/boxplusplus.java @@ -20,8 +20,7 @@ modid = Tags.MODID, version = Tags.VERSION, name = Tags.MODNAME, - dependencies = "required-after:IC2;" - + "required-after:structurelib;" + dependencies = "required-after:IC2;" + "required-after:structurelib;" + "required-after:modularui;" + "after:GalacticraftCore;" + "required-after:bartworks;" diff --git a/src/main/java/com/silvermoon/boxplusplus/common/block/BlockBoxModuleCore.java b/src/main/java/com/silvermoon/boxplusplus/common/block/BlockBoxModuleCore.java index f6bedd0..1019632 100644 --- a/src/main/java/com/silvermoon/boxplusplus/common/block/BlockBoxModuleCore.java +++ b/src/main/java/com/silvermoon/boxplusplus/common/block/BlockBoxModuleCore.java @@ -44,9 +44,8 @@ public void registerBlock() { @Override public void registerBlockIcons(IIconRegister iconRegister) { for (int i = 0; i < 15; i++) { - ModuleIcon[i] = iconRegister.registerIcon(Tags.MODID + (!isUpdate - ? ":modules/BoxModule" - : ":modules/BoxModulePlus") + i); + ModuleIcon[i] = iconRegister + .registerIcon(Tags.MODID + (!isUpdate ? ":modules/BoxModule" : ":modules/BoxModulePlus") + i); } } diff --git a/src/main/java/com/silvermoon/boxplusplus/common/items/IB_BoxModule.java b/src/main/java/com/silvermoon/boxplusplus/common/items/IB_BoxModule.java index 7b0405c..3ff83ef 100644 --- a/src/main/java/com/silvermoon/boxplusplus/common/items/IB_BoxModule.java +++ b/src/main/java/com/silvermoon/boxplusplus/common/items/IB_BoxModule.java @@ -33,12 +33,13 @@ public boolean getHasSubtypes() { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean p_77624_4_) { boolean update = ((BlockBoxModuleCore) field_150939_a).isUpdate; - list.add(EnumChatFormatting.AQUA.toString() + EnumChatFormatting.BOLD + i18n( - "tile.boxplusplus.boxUI.module.context." + (stack.getItemDamage() + 1) + (update ? "f" : "a"))); + list.add( + EnumChatFormatting.AQUA.toString() + EnumChatFormatting.BOLD + + i18n("tile.boxplusplus.boxUI.module.context." + (stack.getItemDamage() + 1) + (update ? "f" : "a"))); if (update) { - list.add(EnumChatFormatting.GOLD - + i18n("tile.boxplusplus.boxUI.module." + (stack.getItemDamage() + 1)) - + " (T2)"); + list.add( + EnumChatFormatting.GOLD + i18n("tile.boxplusplus.boxUI.module." + (stack.getItemDamage() + 1)) + + " (T2)"); } list.add(i18n("tile.boxplusplus.boxUI.module.context." + (stack.getItemDamage() + 1) + (update ? "d" : "b"))); if (customUpdatedModuleList.containsKey(stack.getItemDamage()) diff --git a/src/main/java/com/silvermoon/boxplusplus/common/loader/BlockRegister.java b/src/main/java/com/silvermoon/boxplusplus/common/loader/BlockRegister.java index 8c48c65..a679898 100644 --- a/src/main/java/com/silvermoon/boxplusplus/common/loader/BlockRegister.java +++ b/src/main/java/com/silvermoon/boxplusplus/common/loader/BlockRegister.java @@ -8,26 +8,20 @@ public class BlockRegister { - public static BlockMachineBase SpaceExtend = new BlockMachineBase( - "boxplusplus_SpaceExtend", - Material.iron, - 0).setHarvest("wrench", 3); - public static BlockMachineBase SpaceConstraint = new BlockMachineBase("boxplusplus_SpaceConstraint", + public static BlockMachineBase SpaceExtend = new BlockMachineBase("boxplusplus_SpaceExtend", Material.iron, 0) + .setHarvest("wrench", 3); + public static BlockMachineBase SpaceConstraint = new BlockMachineBase( + "boxplusplus_SpaceConstraint", Material.iron, 2).setHarvest("wrench", 3); - public static BlockMachineBase SpaceCompress = new BlockMachineBase( - "boxplusplus_SpaceCompress", - Material.iron, - 1).setHarvest("wrench", 3); - public static BlockMachineBase SpaceWall = new BlockMachineBase( - "boxplusplus_SpaceWall", - Material.iron, - 3).setHarvest("wrench", 3); - public static BlockBoxModuleCore BoxModule = new BlockBoxModuleCore( - "boxplusplus_boxmodule", - Material.iron, - false).setHarvest("wrench", 5); - public static BlockBoxModuleCore BoxModuleUpgrad = new BlockBoxModuleCore("boxplusplus_boxmoduleplus", + public static BlockMachineBase SpaceCompress = new BlockMachineBase("boxplusplus_SpaceCompress", Material.iron, 1) + .setHarvest("wrench", 3); + public static BlockMachineBase SpaceWall = new BlockMachineBase("boxplusplus_SpaceWall", Material.iron, 3) + .setHarvest("wrench", 3); + public static BlockBoxModuleCore BoxModule = new BlockBoxModuleCore("boxplusplus_boxmodule", Material.iron, false) + .setHarvest("wrench", 5); + public static BlockBoxModuleCore BoxModuleUpgrad = new BlockBoxModuleCore( + "boxplusplus_boxmoduleplus", Material.iron, true).setHarvest("wrench", 5); public static BlockBoxRing BoxRing = new BlockBoxRing(1); diff --git a/src/main/java/com/silvermoon/boxplusplus/common/render/RenderBoxRing.java b/src/main/java/com/silvermoon/boxplusplus/common/render/RenderBoxRing.java index 7349d72..077018c 100644 --- a/src/main/java/com/silvermoon/boxplusplus/common/render/RenderBoxRing.java +++ b/src/main/java/com/silvermoon/boxplusplus/common/render/RenderBoxRing.java @@ -19,9 +19,8 @@ public class RenderBoxRing extends TileEntitySpecialRenderer { private static final ResourceLocation BoxRingTexture = new ResourceLocation(Tags.MODID, "textures/models/ring.png"); - private static final IModelCustom Ring = AdvancedModelLoader.loadModel(new ResourceLocation( - Tags.MODID, - "models/Ring.obj")); + private static final IModelCustom Ring = AdvancedModelLoader + .loadModel(new ResourceLocation(Tags.MODID, "models/Ring.obj")); public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float timeSinceLastTick) { if (!(tile instanceof TEBoxRing ring)) return; diff --git a/src/main/java/com/silvermoon/boxplusplus/common/tileentities/GTMachineBox.java b/src/main/java/com/silvermoon/boxplusplus/common/tileentities/GTMachineBox.java index c4f00e9..1586041 100644 --- a/src/main/java/com/silvermoon/boxplusplus/common/tileentities/GTMachineBox.java +++ b/src/main/java/com/silvermoon/boxplusplus/common/tileentities/GTMachineBox.java @@ -1,6 +1,31 @@ package com.silvermoon.boxplusplus.common.tileentities; -import appeng.api.AEApi; +import static com.gtnewhorizon.structurelib.structure.StructureUtility.*; +import static com.gtnewhorizons.modularui.api.math.Alignment.TopCenter; +import static com.gtnewhorizons.modularui.api.math.Alignment.TopLeft; +import static com.silvermoon.boxplusplus.common.BoxModule.getModuleByIndex; +import static com.silvermoon.boxplusplus.common.BoxModule.transMachinesToModule; +import static com.silvermoon.boxplusplus.util.Util.*; +import static gregtech.api.enums.HatchElement.*; +import static gregtech.api.enums.Textures.BlockIcons.casingTexturePages; +import static gregtech.api.util.GTStructureUtility.buildHatchAdder; + +import java.io.IOException; +import java.util.*; + +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.PacketBuffer; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.EnumChatFormatting; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.FluidTank; + +import org.jetbrains.annotations.NotNull; + import com.glodblock.github.loader.ItemAndBlockHolder; import com.glodblock.github.util.FluidPatternDetails; import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructable; @@ -24,6 +49,8 @@ import com.silvermoon.boxplusplus.Tags; import com.silvermoon.boxplusplus.common.loader.BlockRegister; import com.silvermoon.boxplusplus.util.*; + +import appeng.api.AEApi; import gregtech.api.enums.Textures; import gregtech.api.gui.modularui.GTUIInfos; import gregtech.api.gui.modularui.GTUITextures; @@ -42,33 +69,9 @@ import gregtech.common.misc.WirelessNetworkManager; import gregtech.common.tileentities.machines.IDualInputHatch; import gregtech.common.tileentities.machines.IDualInputInventory; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.PacketBuffer; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.EnumChatFormatting; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.FluidTank; -import org.jetbrains.annotations.NotNull; import tectech.thing.metaTileEntity.hatch.MTEHatchEnergyMulti; import tectech.thing.metaTileEntity.hatch.MTEHatchEnergyTunnel; -import java.io.IOException; -import java.util.*; - -import static com.gtnewhorizon.structurelib.structure.StructureUtility.*; -import static com.gtnewhorizons.modularui.api.math.Alignment.TopCenter; -import static com.gtnewhorizons.modularui.api.math.Alignment.TopLeft; -import static com.silvermoon.boxplusplus.common.BoxModule.getModuleByIndex; -import static com.silvermoon.boxplusplus.common.BoxModule.transMachinesToModule; -import static com.silvermoon.boxplusplus.util.Util.*; -import static gregtech.api.enums.HatchElement.*; -import static gregtech.api.enums.Textures.BlockIcons.casingTexturePages; -import static gregtech.api.util.GTStructureUtility.buildHatchAdder; - public class GTMachineBox extends MTEExtendedPowerMultiBlockBase implements ISurvivalConstructable { private static final String STRUCTURE_PIECE_MainFrames = "Mainframes"; diff --git a/src/main/java/com/silvermoon/boxplusplus/util/FluidContainer.java b/src/main/java/com/silvermoon/boxplusplus/util/FluidContainer.java index ac3050d..d0635eb 100644 --- a/src/main/java/com/silvermoon/boxplusplus/util/FluidContainer.java +++ b/src/main/java/com/silvermoon/boxplusplus/util/FluidContainer.java @@ -13,12 +13,12 @@ public class FluidContainer { public void addFluidStack(FluidStack input, int multiple) { String name = input.getUnlocalizedName(); if (!stack.containsKey(name)) { - stack.put(name, + stack.put( + name, new FluidStack(input.getFluid(), (int) Math.min((long) input.amount * multiple, Integer.MAX_VALUE))); } else { - stack.get(name).amount = (int) Math.min( - stack.get(name).amount + (long) input.amount * multiple, - Integer.MAX_VALUE); + stack.get(name).amount = (int) Math + .min(stack.get(name).amount + (long) input.amount * multiple, Integer.MAX_VALUE); } } diff --git a/src/main/java/com/silvermoon/boxplusplus/util/ItemContainer.java b/src/main/java/com/silvermoon/boxplusplus/util/ItemContainer.java index 0c737aa..6b087d2 100644 --- a/src/main/java/com/silvermoon/boxplusplus/util/ItemContainer.java +++ b/src/main/java/com/silvermoon/boxplusplus/util/ItemContainer.java @@ -18,10 +18,8 @@ public void addItemStack(ItemStack input, int multiple, int chance) { if (input.getItem() == null) return; Optional isNull = Optional.ofNullable(stack.get(input.getItem(), input.getItemDamage())); if (isNull.isPresent()) { - stack.put( - input.getItem(), - input.getItemDamage(), - chance * (long) input.stackSize * multiple + isNull.get()); + stack + .put(input.getItem(), input.getItemDamage(), chance * (long) input.stackSize * multiple + isNull.get()); } else { stack.put(input.getItem(), input.getItemDamage(), chance * (long) input.stackSize * multiple); } @@ -46,9 +44,11 @@ public List getItemStack() { for (Item item : stack.rowKeySet()) { for (int meta : stack.columnKeySet()) { if (stack.get(item, meta) != null) { - output.add(new ItemStack(item, - (int) Math.min(stack.get(item, meta) / 10000, Integer.MAX_VALUE - 1), - meta)); + output.add( + new ItemStack( + item, + (int) Math.min(stack.get(item, meta) / 10000, Integer.MAX_VALUE - 1), + meta)); } } } diff --git a/src/main/java/com/silvermoon/boxplusplus/util/ResultModuleRequirement.java b/src/main/java/com/silvermoon/boxplusplus/util/ResultModuleRequirement.java index e1459e8..24c98ab 100644 --- a/src/main/java/com/silvermoon/boxplusplus/util/ResultModuleRequirement.java +++ b/src/main/java/com/silvermoon/boxplusplus/util/ResultModuleRequirement.java @@ -34,9 +34,8 @@ public boolean wasSuccessful() { @Override public String getDisplayString() { - return EnumChatFormatting.AQUA + i18n("tile.boxplusplus.boxUI.37") + i18n("tile.boxplusplus_" + (isUpdated - ? "boxmoduleplus." - : "boxmodule." + required + ".name")); + return EnumChatFormatting.AQUA + i18n("tile.boxplusplus.boxUI.37") + + i18n("tile.boxplusplus_" + (isUpdated ? "boxmoduleplus." : "boxmodule." + required + ".name")); } @NotNull diff --git a/src/main/java/com/silvermoon/boxplusplus/util/Util.java b/src/main/java/com/silvermoon/boxplusplus/util/Util.java index 3b8fe4e..64fe5d4 100644 --- a/src/main/java/com/silvermoon/boxplusplus/util/Util.java +++ b/src/main/java/com/silvermoon/boxplusplus/util/Util.java @@ -1,14 +1,13 @@ package com.silvermoon.boxplusplus.util; -import appeng.api.AEApi; -import appeng.api.definitions.IDefinitions; -import com.gtnewhorizon.structurelib.StructureLibAPI; -import com.gtnewhorizon.structurelib.structure.IStructureElement; -import com.silvermoon.boxplusplus.common.loader.BlockRegister; -import com.silvermoon.boxplusplus.common.tileentities.GTMachineBox; -import gregtech.api.recipe.RecipeMap; -import gregtech.api.recipe.RecipeMaps; -import gregtech.api.util.GTModHandler; +import java.io.IOException; +import java.util.*; +import java.util.function.BiPredicate; +import java.util.function.Function; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import java.util.stream.Stream; + import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; @@ -22,16 +21,20 @@ import net.minecraft.util.StatCollector; import net.minecraft.world.World; import net.minecraftforge.fluids.FluidStack; + import org.apache.commons.lang3.StringUtils; import org.jetbrains.annotations.Nullable; -import java.io.IOException; -import java.util.*; -import java.util.function.BiPredicate; -import java.util.function.Function; -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import java.util.stream.Stream; +import com.gtnewhorizon.structurelib.StructureLibAPI; +import com.gtnewhorizon.structurelib.structure.IStructureElement; +import com.silvermoon.boxplusplus.common.loader.BlockRegister; +import com.silvermoon.boxplusplus.common.tileentities.GTMachineBox; + +import appeng.api.AEApi; +import appeng.api.definitions.IDefinitions; +import gregtech.api.recipe.RecipeMap; +import gregtech.api.recipe.RecipeMaps; +import gregtech.api.util.GTModHandler; public class Util { From 25712ab31466341f3d29bfc6301a3c24184e7580 Mon Sep 17 00:00:00 2001 From: luomolhx <2932965369@qq.com> Date: Tue, 10 Dec 2024 00:59:45 +0800 Subject: [PATCH 12/12] =?UTF-8?q?=E9=82=AA=E9=81=93=E4=BF=AE=E5=A4=8D=20?= =?UTF-8?q?=E4=B8=8D=E7=9F=A5=E9=81=93=E8=AF=A5=E5=92=8B=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dependencies.gradle | 8 +- gradle.properties | 148 +++++++++++++----- gradle/wrapper/gradle-wrapper.jar | Bin 62076 -> 43462 bytes gradle/wrapper/gradle-wrapper.properties | 3 +- gradlew | 22 +-- settings.gradle | 2 +- .../silvermoon/boxplusplus/boxplusplus.java | 2 + .../boxplusplus/common/CommonProxy.java | 3 +- 8 files changed, 128 insertions(+), 60 deletions(-) diff --git a/dependencies.gradle b/dependencies.gradle index a92becc..fc40fb3 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -29,8 +29,8 @@ * For more details, see https://docs.gradle.org/8.0.1/userguide/java_library_plugin.html#sec:java_library_configurations_graph */ dependencies { - implementation('com.github.GTNewHorizons:GT5-Unofficial:5.09.50.69:dev') - implementation('com.github.GTNewHorizons:GTNH-Intergalactic:1.4.25:dev') - implementation('com.github.GTNewHorizons:NewHorizonsCoreMod:2.6.77:dev') - implementation('com.github.GTNewHorizons:Avaritia:1.54:dev') + implementation('com.github.GTNewHorizons:GT5-Unofficial:5.09.50.103:dev') + implementation('com.github.GTNewHorizons:GTNH-Intergalactic:1.4.30:dev') + implementation('com.github.GTNewHorizons:NewHorizonsCoreMod:2.6.88:dev') + implementation('com.github.GTNewHorizons:Avaritia:1.56:dev') } diff --git a/gradle.properties b/gradle.properties index ec20a9b..8f88ad7 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,77 +1,109 @@ +# ExampleMod tag to use as Blowdryer (Spotless, etc.) settings version, leave empty to disable. +# LOCAL to test local config updates. +gtnh.settings.blowdryerTag = 0.2.2 + +# Human-readable mod name, available for mcmod.info population. modName = BoxPlusPlus -# This is a case-sensitive string to identify your mod. Convention is to use lower case. +# Case-sensitive identifier string, available for mcmod.info population and used for automatic mixin JSON generation. +# Conventionally lowercase. modId = boxplusplus +# Root package of the mod, used to find various classes in other properties, +# mcmod.info substitution, enabling assertions in run tasks, etc. modGroup = com.silvermoon.boxplusplus -# WHY is there no version field? -# The build script relies on git to provide a version via tags. It is super easy and will enable you to always know the -# code base or your binary. Check out this tutorial: https://blog.mattclemente.com/2017/10/13/versioning-with-git-tags/ +# Whether to use modGroup as the maven publishing group. +# Due to a history of using JitPack, the default is com.github.GTNewHorizons for all mods. +useModGroupForPublishing = false -# Will update your build.gradle automatically whenever an update is available +# Updates your build.gradle and settings.gradle automatically whenever an update is available. autoUpdateBuildScript = true +# Version of Minecraft to target minecraftVersion = 1.7.10 + +# Version of Minecraft Forge to target forgeVersion = 10.13.4.1614 -# Specify a MCP channel and mappings version for dependency deobfuscation and the deobfParams task. +# Specify an MCP channel for dependency deobfuscation and the deobfParams task. channel = stable + +# Specify an MCP mappings version for dependency deobfuscation and the deobfParams task. mappingsVersion = 12 -# Define other MCP mappings for dependency deobfuscation -remoteMappings = https://raw.githubusercontent.com/MinecraftForge/FML/1.7.10/conf/ +# Defines other MCP mappings for dependency deobfuscation. +remoteMappings = https\://raw.githubusercontent.com/MinecraftForge/FML/1.7.10/conf/ -# Select a username for testing your mod with breakpoints. You may leave this empty for a random username each time you -# restart Minecraft in development. Choose this dependent on your mod: -# Do you need consistent player progressing (for example Thaumcraft)? -> Select a name -# Do you need to test how your custom blocks interacts with a player that is not the owner? -> leave name empty +# Select a default username for testing your mod. You can always override this per-run by running +# `./gradlew runClient --username=AnotherPlayer`, or configuring this command in your IDE. developmentEnvironmentUserName = SilverMoon -# Enables using modern java syntax (up to version 17) via Jabel, while still targetting JVM 8. +# Enables using modern Java syntax (up to version 17) via Jabel, while still targeting JVM 8. # See https://github.com/bsideup/jabel for details on how this works. enableModernJavaSyntax = true -# Enables injecting missing generics into the decompiled source code for a better coding experience -# Turns most publically visible List, Map, etc. into proper List, Map types +# Enables injecting missing generics into the decompiled source code for a better coding experience. +# Turns most publicly visible List, Map, etc. into proper List, Map types. enableGenericInjection = false -# Generate a class with String fields for the mod id, name, version and group name named with the fields below +# Generate a class with a String field for the mod version named as defined below. +# If generateGradleTokenClass is empty or not missing, no such class will be generated. +# If gradleTokenVersion is empty or missing, the field will not be present in the class. generateGradleTokenClass = com.silvermoon.boxplusplus.Tags + +# Name of the token containing the project's current version to generate/replace. +gradleTokenVersion = VERSION + +# [DEPRECATED] Mod ID replacement token. gradleTokenModId = MODID + +# [DEPRECATED] Mod name replacement token. gradleTokenModName = MODNAME -gradleTokenVersion = VERSION + +# [DEPRECATED] Mod Group replacement token. gradleTokenGroupName = GROUPNAME + # [DEPRECATED] -# Multiple source files can be defined here by providing a comma-seperated list: Class1.java,Class2.java,Class3.java +# Multiple source files can be defined here by providing a comma-separated list: Class1.java,Class2.java,Class3.java # public static final String VERSION = "GRADLETOKEN_VERSION"; # The string's content will be replaced with your mod's version when compiled. You should use this to specify your mod's -# version in @Mod([...], version = VERSION, [...]) -# Leave these properties empty to skip individual token replacements +# version in @Mod([...], version = VERSION, [...]). +# Leave these properties empty to skip individual token replacements. replaceGradleTokenInFile = # In case your mod provides an API for other mods to implement you may declare its package here. Otherwise, you can # leave this property empty. -# Example value: apiPackage = api + modGroup = com.myname.mymodid -> com.myname.mymodid.api +# Example value: (apiPackage = api) + (modGroup = com.myname.mymodid) -> com.myname.mymodid.api apiPackage = # Specify the configuration file for Forge's access transformers here. It must be placed into /src/main/resources/META-INF/ -# There can be multiple files in a comma-separated list. -# Example value: mymodid_at.cfg,nei_at.cfg +# There can be multiple files in a space-separated list. +# Example value: mymodid_at.cfg nei_at.cfg accessTransformersFile = # Provides setup for Mixins if enabled. If you don't know what mixins are: Keep it disabled! usesMixins = false -# Adds some debug arguments like verbose output and export + +# Set to a non-empty string to configure mixins in a separate source set under src/VALUE, instead of src/main. +# This can speed up compile times thanks to not running the mixin annotation processor on all input sources. +# Mixin classes will have access to "main" classes, but not the other way around. +separateMixinSourceSet = + +# Adds some debug arguments like verbose output and class export. usesMixinDebug = false + # Specify the location of your implementation of IMixinConfigPlugin. Leave it empty otherwise. mixinPlugin = + # Specify the package that contains all of your Mixins. You may only place Mixins in this package or the build will fail! mixinsPackage = + # Specify the core mod entry class if you use a core mod. This class must implement IFMLLoadingPlugin! # This parameter is for legacy compatibility only -# Example value: coreModClass = asm.FMLPlugin + modGroup = com.myname.mymodid -> com.myname.mymodid.asm.FMLPlugin +# Example value: (coreModClass = asm.FMLPlugin) + (modGroup = com.myname.mymodid) -> com.myname.mymodid.asm.FMLPlugin coreModClass = + # If your project is only a consolidation of mixins or a core mod and does NOT contain a 'normal' mod ( = some class # that is annotated with @Mod) you want this to be true. When in doubt: leave it on false! containsMixinsAndOrCoreModOnly = false @@ -79,22 +111,38 @@ containsMixinsAndOrCoreModOnly = false # Enables Mixins even if this mod doesn't use them, useful if one of the dependencies uses mixins. forceEnableMixins = false -# If enabled, you may use 'shadowCompile' for dependencies. They will be integrated in your jar. It is your -# responsibility check the licence and request permission for distribution, if required. +# If enabled, you may use 'shadowCompile' for dependencies. They will be integrated into your jar. It is your +# responsibility to check the license and request permission for distribution if required. usesShadowedDependencies = false -# If disabled, won't remove unused classes from shaded dependencies. Some libraries use reflection to access + +# If disabled, won't remove unused classes from shadowed dependencies. Some libraries use reflection to access # their own classes, making the minimization unreliable. minimizeShadowedDependencies = true + # If disabled, won't rename the shadowed classes. relocateShadowedDependencies = true -# Adds the GTNH maven, CurseMaven, IC2/Player maven, and some more well-known 1.7.10 repositories +# Adds CurseMaven, Modrinth, and some more well-known 1.7.10 repositories. includeWellKnownRepositories = true -# Publishing to modrinth requires you to set the MODRINTH_TOKEN environment variable to your current modrinth API token. +# A list of repositories to exclude from the includeWellKnownRepositories setting. Should be a space separated +# list of strings, with the acceptable keys being(case does not matter): +# cursemaven +# modrinth +excludeWellKnownRepositories = + +# Change these to your Maven coordinates if you want to publish to a custom Maven repository instead of the default GTNH Maven. +# Authenticate with the MAVEN_USER and MAVEN_PASSWORD environment variables. +# If you need a more complex setup disable maven publishing here and add a publishing repository to addon.gradle. +usesMavenPublishing = true + +# Maven repository to publish the mod to. +# mavenPublishUrl = https\://nexus.gtnewhorizons.com/repository/releases/ +# Publishing to Modrinth requires you to set the MODRINTH_TOKEN environment variable to your current Modrinth API token. +# # The project's ID on Modrinth. Can be either the slug or the ID. -# Leave this empty if you don't want to publish on Modrinth. +# Leave this empty if you don't want to publish to Modrinth. modrinthProjectId = # The project's relations on Modrinth. You can use this to refer to other projects on Modrinth. @@ -106,9 +154,8 @@ modrinthProjectId = # Note: GTNH Mixins is automatically set as a required dependency if usesMixins = true modrinthRelations = - # Publishing to CurseForge requires you to set the CURSEFORGE_TOKEN environment variable to one of your CurseForge API tokens. - +# # The project's numeric ID on CurseForge. You can find this in the About Project box. # Leave this empty if you don't want to publish on CurseForge. curseForgeProjectId = @@ -118,25 +165,40 @@ curseForgeProjectId = # Where type can be one of [requiredDependency, embeddedLibrary, optionalDependency, tool, incompatible], # and the name is the CurseForge project slug of the other mod. # Example: requiredDependency:railcraft;embeddedLibrary:cofhlib;incompatible:buildcraft -# Note: GTNH Mixins is automatically set as a required dependency if usesMixins = true +# Note: UniMixins is automatically set as a required dependency if usesMixins = true. curseForgeRelations = - -# Optional parameter to customize the produced artifacts. Use this to preserver artifact naming when migrating older +# Optional parameter to customize the produced artifacts. Use this to preserve artifact naming when migrating older # projects. New projects should not use this parameter. # customArchiveBaseName = -# Optional parameter to prevent the source code from being published -# noPublishedSources = -# Uncomment this to disable spotless checks -# disableSpotless=true + +# Optional parameter to have the build automatically fail if an illegal version is used. +# This can be useful if you e.g. only want to allow versions in the form of '1.1.xxx'. +# The check is ONLY performed if the version is a git tag. +# Note: the specified string must be escaped, so e.g. 1\\.1\\.\\d+ instead of 1\.1\.\d+ +# versionPattern = + +# Uncomment to prevent the source code from being published. +# noPublishedSources = true + +# Uncomment this to disable Spotless checks. # This should only be uncommented to keep it easier to sync with upstream/other forks. # That is, if there is no other active fork/upstream, NEVER change this. -disableCheckstyle=true -# Override the IDEA build type. Valid value is "" (leave blank, do not override), "idea" (force use native IDEA build), "gradle" +# disableSpotless = true + +# Uncomment this to disable Checkstyle checks (currently wildcard import check). +disableCheckstyle = true + +# Override the IDEA build type. Valid values are: "" (leave blank, do not override), "idea" (force use native IDEA build), "gradle" # (force use delegated build). # This is meant to be set in $HOME/.gradle/gradle.properties. -# e.g. add "systemProp.org.gradle.project.ideaOverrideBuildType=idea" will override the build type to be always native build. +# e.g. add "systemProp.org.gradle.project.ideaOverrideBuildType=idea" will override the build type to be native build. # WARNING: If you do use this option, it will overwrite whatever you have in your existing projects. This might not be what you want! # Usually there is no need to uncomment this here as other developers do not necessarily use the same build type as you. # ideaOverrideBuildType = idea +# Whether IDEA should run spotless checks when pressing the Build button. +# This is meant to be set in $HOME/.gradle/gradle.properties. +# ideaCheckSpotlessOnBuild = true + + diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index c1962a79e29d3e0ab67b14947c167a862655af9b..d64cd4917707c1f8861d8cb53dd15194d4248596 100644 GIT binary patch literal 43462 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 literal 62076 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 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 3499ded..e2847c8 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index aeb74cb..1aa94a4 100755 --- a/gradlew +++ b/gradlew @@ -83,7 +83,8 @@ done # This is normally unused # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -130,10 +131,13 @@ location of your Java installation." fi else JAVACMD=java - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the location of your Java installation." + fi fi # Increase the maximum file descriptors if we can. @@ -141,7 +145,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then case $MAX_FD in #( max*) # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 + # shellcheck disable=SC2039,SC3045 MAX_FD=$( ulimit -H -n ) || warn "Could not query maximum file descriptor limit" esac @@ -149,7 +153,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then '' | soft) :;; #( *) # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 + # shellcheck disable=SC2039,SC3045 ulimit -n "$MAX_FD" || warn "Could not set maximum file descriptor limit to $MAX_FD" esac @@ -198,11 +202,11 @@ fi # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ diff --git a/settings.gradle b/settings.gradle index 1d2270a..46c0569 100644 --- a/settings.gradle +++ b/settings.gradle @@ -16,5 +16,5 @@ pluginManagement { } plugins { - id 'com.gtnewhorizons.gtnhsettingsconvention' version '1.0.8' + id 'com.gtnewhorizons.gtnhsettingsconvention' version '1.0.30' } \ No newline at end of file diff --git a/src/main/java/com/silvermoon/boxplusplus/boxplusplus.java b/src/main/java/com/silvermoon/boxplusplus/boxplusplus.java index f548d84..6c9f8b4 100644 --- a/src/main/java/com/silvermoon/boxplusplus/boxplusplus.java +++ b/src/main/java/com/silvermoon/boxplusplus/boxplusplus.java @@ -8,6 +8,7 @@ import com.silvermoon.boxplusplus.common.CommonProxy; import com.silvermoon.boxplusplus.common.loader.BlockRegister; +import com.silvermoon.boxplusplus.common.loader.RecipeLoader; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.SidedProxy; @@ -64,6 +65,7 @@ public void postInit(FMLPostInitializationEvent event) { // register server commands in this event handler (Remove if not needed) public void serverStarting(FMLServerStartingEvent event) { proxy.serverStarting(event); + new RecipeLoader().run(); } public static final CreativeTabs BoxTab = new CreativeTabs("BoxPlusPlus") { diff --git a/src/main/java/com/silvermoon/boxplusplus/common/CommonProxy.java b/src/main/java/com/silvermoon/boxplusplus/common/CommonProxy.java index bf449f4..98e45a4 100644 --- a/src/main/java/com/silvermoon/boxplusplus/common/CommonProxy.java +++ b/src/main/java/com/silvermoon/boxplusplus/common/CommonProxy.java @@ -2,7 +2,6 @@ import com.silvermoon.boxplusplus.common.config.Config; import com.silvermoon.boxplusplus.common.loader.BlockRegister; -import com.silvermoon.boxplusplus.common.loader.RecipeLoader; import com.silvermoon.boxplusplus.common.loader.TileEntitiesLoader; import com.silvermoon.boxplusplus.network.NetworkLoader; import com.silvermoon.boxplusplus.util.ResultModuleRequirement; @@ -31,7 +30,7 @@ public void init(FMLInitializationEvent event) { // postInit "Handle interaction with other mods, complete your setup based on this." (Remove if not needed) public void postInit(FMLPostInitializationEvent event) { - new RecipeLoader().run(); + } // register server commands in this event handler (Remove if not needed)