diff --git a/.gitignore b/.gitignore index 8ca9d037..4a5697b4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ .gradle .settings /.idea/ +/tmp/ /.vscode/ /run/ /build/ diff --git a/dependencies.gradle b/dependencies.gradle index 12292d54..071c80a9 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -1,23 +1,22 @@ elytraModpackVersion { // 在这配置的gtnh版本 用于自动拉取依赖版本 - gtnhVersion = "2.8.4" + gtnhVersion = "2.9.0-beta-1" // 是否不缓存拉取的依赖清单文件 manifestNoCache = false // 是否自动为输出的jar添加 `gtnhVersion` 后缀 - attachManifestVersionToJar = true + attachManifestVersionToJar = false } dependencies { implementation(gtnhDev("GT5-Unofficial")) - implementation(gtnhDev("NewHorizonsCoreMod")) + implementation("com.github.GTNewHorizons:NewHorizonsCoreMod:2.8.284:dev") implementation(gtnhDev("Mobs-Info")) implementation(gtnhDev("Infernal-Mobs")) implementation(gtnhDev("Galaxy-Space-GTNH")) implementation(gtnhDev("SGCraft")) implementation(gtnhDev("twilightforest")) implementation(gtnhDev("AE2FluidCraft-Rework")) - implementation(gtnhDev("ae2stuff")) implementation(gtnhDev("Avaritia")) implementation(gtnhDev("Avaritiaddons")) implementation(gtnhDev("neiaddons")) @@ -31,31 +30,42 @@ dependencies { implementation(gtnhDev("MagicBees")) implementation(gtnhDev("NotEnoughItems")) implementation(gtnhDev("OpenComputers")) - implementation(gtnhDev("supersolarpanels")) implementation(gtnhDev("ThaumicEnergistics")) implementation(gtnhDev("Universal-Singularities")) - implementation(gtnhDev("WitcheryExtras")) implementation(gtnhDev("BetterQuesting")) + implementation(gtnhDev("supersolarpanels")) + implementation(rfg.deobf('curse.maven:advsolar-362768:2885953')) + implementation ("net.industrial-craft:industrialcraft-2:2.2.828-experimental:dev") + runtimeOnlyNonPublishable(rfg.deobf("curse.maven:BiomesOPlenty-220318:2499612")) + implementation(deobfCurse('witchery-69673:2234410')) + implementation(gtnhDev("WitcheryExtras")) - implementation('thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev') + implementation("thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev") implementation('com.github.GTNewHorizons:worldedit-gtnh:v0.0.8:dev') // runtime runtimeOnlyNonPublishable(gtnhDev("BetterP2P")) - runtimeOnlyNonPublishable(gtnhDev("Chisel")) + runtimeOnlyNonPublishable rfg.deobf(files("libs/chisel-2.17.27-GTNH.jar")) runtimeOnlyNonPublishable(gtnhDev("StructureLib")) runtimeOnlyNonPublishable(gtnhDev("BlockRenderer6343")) { transitive = false } annotationProcessor('com.google.auto.value:auto-value:1.10.1') implementation('com.google.auto.value:auto-value-annotations:1.10.1') + // jvmDowngrader + compileOnly("javax.xml.bind:jaxb-api:2.3.1") + compileOnly("org.jetbrains:annotations:26.0.1") + compileOnly("org.projectlombok:lombok:1.18.42") { transitive = false } + annotationProcessor("org.projectlombok:lombok:1.18.42") + configurations.configureEach { exclude group: 'com.github.GTNewHorizons', module: 'Baubles' } + configurations.all { resolutionStrategy { - force "com.github.GTNewHorizons:GTNHLib:0.7.10" + force "com.github.GTNewHorizons:GTNHLib:0.11.11" } } diff --git a/gradle.properties b/gradle.properties index 91737cde..76655d43 100644 --- a/gradle.properties +++ b/gradle.properties @@ -39,9 +39,33 @@ remoteMappings = https\://raw.githubusercontent.com/MinecraftForge/FML/1.7.10/co # `./gradlew runClient --username=AnotherPlayer`, or configuring this command in your IDE. developmentEnvironmentUserName = NewMaa -# 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 modern Java syntax support. Valid values: +# - false: No modern syntax, Java 8 only +# - jabel: Jabel syntax-only support, compiles to J8 bytecode +# - jvmDowngrader: Full modern Java via JVM Downgrader (syntax + stdlib APIs) +# - modern: Native modern Java bytecode, no downgrading +enableModernJavaSyntax = jabel + +# If set, ignores the above setting and compiles with the given toolchain. This may cause unexpected issues, +# and should *not* be used in most situations. -1 disables this. +# forceToolchainVersion = -1 + +# Target JVM version for JVM Downgrader bytecode downgrading. +# Only used when enableModernJavaSyntax = jvmDowngrader +# downgradeTargetVersion = 8 + +# Comma-separated list of Java versions for multi-release jar support (JVM Downgrader only). +# Classes will be available in META-INF/versions/N/ for each version N in this list. +# Default: "21,25" (J25+ gets native classes, J21-24 gets partial downgrade, J8-20 gets full downgrade). +# jvmDowngraderMultiReleaseVersions = 21,25 + +# Specifies how JVM Downgrader API stubs are provided. Options: +# - shade: Shade minimized stubs into the jar +# - gtnhlib: GTNHLib provides stubs at runtime (adds version constraint) +# - external: Another dependency provides stubs (no constraint, no warning) +# - (empty): Warning reminding you to configure stubs +# Note: 'shade' option requires you to verify license compliance, see: https://github.com/unimined/JvmDowngrader/blob/main/LICENSE.md +# jvmDowngraderStubsProvider = # 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. @@ -206,3 +230,6 @@ customArchiveBaseName = OTHTechnology # This is meant to be set in $HOME/.gradle/gradle.properties. # ideaCheckSpotlessOnBuild = true +# Non-GTNH properties +org.gradle.configuration-cache = true +org.gradle.parallel = true diff --git a/gradle/gradle-daemon-jvm.properties b/gradle/gradle-daemon-jvm.properties index 8a07f79d..b30b5507 100644 --- a/gradle/gradle-daemon-jvm.properties +++ b/gradle/gradle-daemon-jvm.properties @@ -1,12 +1,12 @@ #This file is generated by updateDaemonJvm -toolchainUrl.FREE_BSD.AARCH64=https\://api.foojay.io/disco/v3.0/ids/c5ee947fbfb70bc347d8d531e3a578c4/redirect -toolchainUrl.FREE_BSD.X86_64=https\://api.foojay.io/disco/v3.0/ids/5ee463876563a46fff651cce1bc53a4c/redirect -toolchainUrl.LINUX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/1630f7ebef05444cb27a2709ea0249b3/redirect -toolchainUrl.LINUX.X86_64=https\://api.foojay.io/disco/v3.0/ids/5ee463876563a46fff651cce1bc53a4c/redirect -toolchainUrl.MAC_OS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/d4fd992c9557644e637ebe98263e0ae7/redirect -toolchainUrl.MAC_OS.X86_64=https\://api.foojay.io/disco/v3.0/ids/faa12903720d410b387cc69ccafb1a74/redirect -toolchainUrl.UNIX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/1630f7ebef05444cb27a2709ea0249b3/redirect -toolchainUrl.UNIX.X86_64=https\://api.foojay.io/disco/v3.0/ids/5ee463876563a46fff651cce1bc53a4c/redirect -toolchainUrl.WINDOWS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/a4c09dd2e2d7079373d30e524bbc2829/redirect -toolchainUrl.WINDOWS.X86_64=https\://api.foojay.io/disco/v3.0/ids/8e1d9ee5d0f13e442218f6884a306da1/redirect +toolchainUrl.FREE_BSD.AARCH64=https\://api.foojay.io/disco/v3.0/ids/df211d3c3eefdc408b462041881bc575/redirect +toolchainUrl.FREE_BSD.X86_64=https\://api.foojay.io/disco/v3.0/ids/b41931cf1e70bc8e08d7dd19c343ef00/redirect +toolchainUrl.LINUX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/df211d3c3eefdc408b462041881bc575/redirect +toolchainUrl.LINUX.X86_64=https\://api.foojay.io/disco/v3.0/ids/b41931cf1e70bc8e08d7dd19c343ef00/redirect +toolchainUrl.MAC_OS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/46949723aaa20c7b64d7ecfed7207034/redirect +toolchainUrl.MAC_OS.X86_64=https\://api.foojay.io/disco/v3.0/ids/d6690dfd71c4c91e08577437b5b2beb0/redirect +toolchainUrl.UNIX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/df211d3c3eefdc408b462041881bc575/redirect +toolchainUrl.UNIX.X86_64=https\://api.foojay.io/disco/v3.0/ids/b41931cf1e70bc8e08d7dd19c343ef00/redirect +toolchainUrl.WINDOWS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/3cd7045fca9a72cd9bc7d14a385e594c/redirect +toolchainUrl.WINDOWS.X86_64=https\://api.foojay.io/disco/v3.0/ids/552c7bffe0370c66410a51c55985b511/redirect toolchainVersion=25 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 23449a2b..37f78a6a 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-9.2.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/libs/chisel-2.17.27-GTNH.jar b/libs/chisel-2.17.27-GTNH.jar new file mode 100644 index 00000000..d5111d4c Binary files /dev/null and b/libs/chisel-2.17.27-GTNH.jar differ diff --git a/settings.gradle b/settings.gradle.kts similarity index 74% rename from settings.gradle rename to settings.gradle.kts index 5218f2e1..3b8f9f49 100644 --- a/settings.gradle +++ b/settings.gradle.kts @@ -2,8 +2,8 @@ pluginManagement { repositories { maven { // RetroFuturaGradle - name "GTNH Maven" - url "https://nexus.gtnewhorizons.com/repository/public/" + name = "GTNH Maven" + url = uri("https://nexus.gtnewhorizons.com/repository/public/") mavenContent { includeGroup("com.gtnewhorizons") includeGroupByRegex("com\\.gtnewhorizons\\..+") @@ -12,8 +12,8 @@ pluginManagement { gradlePluginPortal() mavenCentral() maven { - name "JitPack" - url "https://jitpack.io" + name = "JitPack" + url = uri("https://jitpack.io") mavenContent { includeGroupByRegex("com\\.github\\..+") } @@ -23,5 +23,5 @@ pluginManagement { } plugins { - id("com.gtnewhorizons.gtnhsettingsconvention") version("2.0.20") + id("com.gtnewhorizons.gtnhsettingsconvention") version("2.0.26") } diff --git a/src/main/java/com/newmaa/othtech/OTHTechnology.java b/src/main/java/com/newmaa/othtech/OTHTechnology.java index 09ed12bf..d3dd4641 100644 --- a/src/main/java/com/newmaa/othtech/OTHTechnology.java +++ b/src/main/java/com/newmaa/othtech/OTHTechnology.java @@ -104,6 +104,7 @@ public static void registerRenderers() {} // postInit "Handle interaction with other mods, complete your setup based on this." (Remove if not needed) public void postInit(FMLPostInitializationEvent event) { proxy.postInit(event); + LOG.info("The Isa Mill is invincible!"); MachineLoader.loadMachinePostInit(); // RecipeLoader.loadRecipesPostInit(); // 添加自定义配方 @@ -121,8 +122,11 @@ public void postInit(FMLPostInitializationEvent event) { @Mod.EventHandler public void completeInit(FMLLoadCompleteEvent event) { + LOG.info("completeInit: Starting recipe loading..."); RecipeLoader.loadRecipes(); + LOG.info("completeInit: Recipe loading done, initializing OTHBeeyonds..."); new OTHBeeyonds(); + LOG.info("completeInit: OTHBeeyonds done, FMLLoadComplete finished."); // 添加自定义配方 } diff --git a/src/main/java/com/newmaa/othtech/common/beeyonds/OTHBeeyonds.java b/src/main/java/com/newmaa/othtech/common/beeyonds/OTHBeeyonds.java index 83536b1b..5d2119c3 100644 --- a/src/main/java/com/newmaa/othtech/common/beeyonds/OTHBeeyonds.java +++ b/src/main/java/com/newmaa/othtech/common/beeyonds/OTHBeeyonds.java @@ -59,10 +59,15 @@ public class OTHBeeyonds { public static OTHItemCombs combs; public OTHBeeyonds() { + GTMod.GT_FML_LOGGER.info("OTHBeeyonds: Creating OTHItemCombs..."); combs = new OTHItemCombs(); + GTMod.GT_FML_LOGGER.info("OTHBeeyonds: Item created, initializing comb recipes..."); OTHItemCombs.initCombsRecipes(); + GTMod.GT_FML_LOGGER.info("OTHBeeyonds: Comb recipes done, setting up alleles..."); setupOTHAlleles(); + GTMod.GT_FML_LOGGER.info("OTHBeeyonds: Alleles done, initializing bees..."); OTHBeeDefinition.initBees(); + GTMod.GT_FML_LOGGER.info("OTHBeeyonds: Bees initialized, constructor done."); } private static void setupOTHAlleles() { diff --git a/src/main/java/com/newmaa/othtech/common/dimensions/gtoregen/EnumDimensionDefOTH.java b/src/main/java/com/newmaa/othtech/common/dimensions/gtoregen/EnumDimensionDefOTH.java index be5c8775..19232715 100644 --- a/src/main/java/com/newmaa/othtech/common/dimensions/gtoregen/EnumDimensionDefOTH.java +++ b/src/main/java/com/newmaa/othtech/common/dimensions/gtoregen/EnumDimensionDefOTH.java @@ -1,20 +1,21 @@ package com.newmaa.othtech.common.dimensions.gtoregen; -import galacticgreg.api.Enums; import galacticgreg.api.ModDimensionDef; public enum EnumDimensionDefOTH { - - ROSS123B(new ModDimensionDef( - EnumDimensionDefOTH.DimNames.ROSS123B, - "newmaa.othtech.common.dimensions.ross123b.ChunkProviderRoss123b", - Enums.DimensionType.Planet, - EnumDimensionBlockMetaDefList.Ross123b.DBMDefList)), - ANTIMONIA(new ModDimensionDef( - EnumDimensionDefOTH.DimNames.ANTIMONIA, - "newmaa.othtech.common.dimensions.ross123b.ChunkProviderAntimonia", - Enums.DimensionType.Planet, - EnumDimensionBlockMetaDefList.Antimonia.DBMDefList)); + ; + /* + * ROSS123B(new ModDimensionDef( + * EnumDimensionDefOTH.DimNames.ROSS123B, + * "newmaa.othtech.common.dimensions.ross123b.ChunkProviderRoss123b", + * Enums.DimensionType.Planet, + * EnumDimensionBlockMetaDefList.Ross123b.DBMDefList)), + * ANTIMONIA(new ModDimensionDef( + * EnumDimensionDefOTH.DimNames.ANTIMONIA, + * "newmaa.othtech.common.dimensions.ross123b.ChunkProviderAntimonia", + * Enums.DimensionType.Planet, + * EnumDimensionBlockMetaDefList.Antimonia.DBMDefList)); + */ public static class DimNames { diff --git a/src/main/java/com/newmaa/othtech/common/dimensions/gtoregen/EnumGTOreMixes.java b/src/main/java/com/newmaa/othtech/common/dimensions/gtoregen/EnumGTOreMixes.java index 09d361f9..e312cde6 100644 --- a/src/main/java/com/newmaa/othtech/common/dimensions/gtoregen/EnumGTOreMixes.java +++ b/src/main/java/com/newmaa/othtech/common/dimensions/gtoregen/EnumGTOreMixes.java @@ -3,7 +3,7 @@ import static com.newmaa.othtech.common.dimensions.gtoregen.EnumDimensionDefOTH.DimNames.ANTIMONIA; import static galacticgreg.api.enums.DimensionDef.*; -import galacticgreg.WorldgenOreLayerSpace; +import galacticgreg.WorldGeneratorSpace; import gregtech.api.enums.Materials; import gregtech.common.OreMixBuilder; import gregtech.common.WorldgenGTOreLayer; @@ -31,7 +31,7 @@ public WorldgenGTOreLayer addGTOreLayer() { return new WorldgenGTOreLayer(this.oreMixBuilder); } - public WorldgenOreLayerSpace addGaGregOreLayer() { - return new WorldgenOreLayerSpace(this.oreMixBuilder); + public WorldGeneratorSpace addGaGregOreLayer() { + return new WorldGeneratorSpace(); } } diff --git a/src/main/java/com/newmaa/othtech/common/dimensions/structure/antimonia/StructureComponentCitySolar.java b/src/main/java/com/newmaa/othtech/common/dimensions/structure/antimonia/StructureComponentCitySolar.java index 18f4a704..436829f9 100644 --- a/src/main/java/com/newmaa/othtech/common/dimensions/structure/antimonia/StructureComponentCitySolar.java +++ b/src/main/java/com/newmaa/othtech/common/dimensions/structure/antimonia/StructureComponentCitySolar.java @@ -129,9 +129,9 @@ public boolean addComponentParts(World par1World, Random par2Random, 0, 0, 8, - TungstensteelPlatedReinforcedStone.getBlock(), + TungstensteelPlatedReinforcedStone.block, 0, - TungstensteelPlatedReinforcedStone.getBlock(), + TungstensteelPlatedReinforcedStone.block, 0, false); this.fillWithMetadataBlocks( @@ -143,9 +143,9 @@ public boolean addComponentParts(World par1World, Random par2Random, 6, 0, 8, - TungstensteelPlatedReinforcedStone.getBlock(), + TungstensteelPlatedReinforcedStone.block, 0, - TungstensteelPlatedReinforcedStone.getBlock(), + TungstensteelPlatedReinforcedStone.block, 0, false); this.fillWithMetadataBlocks( @@ -157,9 +157,9 @@ public boolean addComponentParts(World par1World, Random par2Random, 12, 0, 8, - TungstensteelPlatedReinforcedStone.getBlock(), + TungstensteelPlatedReinforcedStone.block, 0, - TungstensteelPlatedReinforcedStone.getBlock(), + TungstensteelPlatedReinforcedStone.block, 0, false); this.fillWithMetadataBlocks( @@ -171,9 +171,9 @@ public boolean addComponentParts(World par1World, Random par2Random, 11, 0, 0, - TungstensteelPlatedReinforcedStone.getBlock(), + TungstensteelPlatedReinforcedStone.block, 0, - TungstensteelPlatedReinforcedStone.getBlock(), + TungstensteelPlatedReinforcedStone.block, 0, false); this.fillWithMetadataBlocks( @@ -185,9 +185,9 @@ public boolean addComponentParts(World par1World, Random par2Random, 11, 0, 8, - TungstensteelPlatedReinforcedStone.getBlock(), + TungstensteelPlatedReinforcedStone.block, 0, - TungstensteelPlatedReinforcedStone.getBlock(), + TungstensteelPlatedReinforcedStone.block, 0, false); this.fillWithMetadataBlocks( diff --git a/src/main/java/com/newmaa/othtech/common/entity/EntityFakePlayer.java b/src/main/java/com/newmaa/othtech/common/entity/EntityFakePlayer.java index d6b97de6..c0cc2213 100644 --- a/src/main/java/com/newmaa/othtech/common/entity/EntityFakePlayer.java +++ b/src/main/java/com/newmaa/othtech/common/entity/EntityFakePlayer.java @@ -1,5 +1,7 @@ package com.newmaa.othtech.common.entity; +import static net.minecraft.util.StatCollector.translateToLocal; + import java.util.ArrayList; import net.minecraft.entity.EntityCreature; @@ -16,12 +18,13 @@ import com.newmaa.othtech.common.OTHItemList; import com.newmaa.othtech.common.item.ItemLoader; -import gtPlusPlus.core.item.ModItems; +import gtPlusPlus.core.item.food.BaseItemMetaFood; public class EntityFakePlayer extends EntityCreature implements IMobInfoProvider { private static final int DATAWATCHER_ID_SITTING = 20; private int sitCooldown = 0; + public static BaseItemMetaFood itemMetaFood; public EntityFakePlayer(World world) { super(world); @@ -36,7 +39,7 @@ protected void dropFewItems(boolean wasRecentlyHit, int lootingModifier) { } int extraDrops = this.rand.nextInt(8 + lootingModifier); for (int i = 0; i < extraDrops; ++i) { - this.dropItem(ModItems.itemMetaFood, 36); + this.dropItem(itemMetaFood, 36); } } @@ -65,7 +68,7 @@ public void onLivingUpdate() { // 每100 ticks(5秒)随机切换状态 if (!this.worldObj.isRemote && this.sitCooldown-- <= 0) { if (this.rand.nextInt(5) == 0) { // 20%概率触发 - sendMessageToAll("我在哪里?"); + sendMessageToAll(translateToLocal("oth.clone.whereami")); this.setSitting(!this.isSitting()); this.sitCooldown = 100 + this.rand.nextInt(100); // 5-10秒冷却 } @@ -86,7 +89,7 @@ public void provideDropsInformation(@NotNull ArrayList drops) { .withChance(1.0d); c1.clampChance(); drops.add(c1); - var c2 = MobDrop.create(new ItemStack(ModItems.itemMetaFood, 36, 0)) + var c2 = MobDrop.create(new ItemStack(itemMetaFood, 36, 0)) .withType(MobDrop.DropType.Normal) .withChance(0.8d); c2.clampChance(); diff --git a/src/main/java/com/newmaa/othtech/common/materials/BWLiquids.java b/src/main/java/com/newmaa/othtech/common/materials/BWLiquids.java index b66e45b4..234ba9e5 100644 --- a/src/main/java/com/newmaa/othtech/common/materials/BWLiquids.java +++ b/src/main/java/com/newmaa/othtech/common/materials/BWLiquids.java @@ -153,7 +153,7 @@ public class BWLiquids implements Runnable { @Override public void run() { - for (var prefix : OrePrefixes.values()) { + for (OrePrefixes prefix : OrePrefixes.VALUES) { gf.addPrefix(prefix); } gf.removePrefix(OrePrefixes.ore); diff --git a/src/main/java/com/newmaa/othtech/common/materials/BWMaterials.java b/src/main/java/com/newmaa/othtech/common/materials/BWMaterials.java index 3eb7eeb3..8636f4e0 100644 --- a/src/main/java/com/newmaa/othtech/common/materials/BWMaterials.java +++ b/src/main/java/com/newmaa/othtech/common/materials/BWMaterials.java @@ -27,7 +27,7 @@ public class BWMaterials implements Runnable { @Override public void run() { - for (var prefix : OrePrefixes.values()) { + for (OrePrefixes prefix : OrePrefixes.VALUES) { gf.addPrefix(prefix); } gf.removePrefix(OrePrefixes.ore); diff --git a/src/main/java/com/newmaa/othtech/common/recipemap/recipeMapFrontends/OTH_GeneralFrontend.java b/src/main/java/com/newmaa/othtech/common/recipemap/recipeMapFrontends/OTH_GeneralFrontend.java index cf998d7f..753500be 100644 --- a/src/main/java/com/newmaa/othtech/common/recipemap/recipeMapFrontends/OTH_GeneralFrontend.java +++ b/src/main/java/com/newmaa/othtech/common/recipemap/recipeMapFrontends/OTH_GeneralFrontend.java @@ -27,7 +27,14 @@ public OTH_GeneralFrontend(BasicUIPropertiesBuilder uiPropertiesBuilder, NEIRecipePropertiesBuilder neiPropertiesBuilder) { super(uiPropertiesBuilder.logoPos(new Pos2d(79, 7)), neiPropertiesBuilder); this.itemRowCount = getItemRowCount(); - neiProperties.recipeBackgroundSize = new Size(170, 10 + (itemRowCount + getFluidRowCount()) * 18); + } + + @Override + protected NEIRecipePropertiesBuilder modifyNEIProperties(NEIRecipePropertiesBuilder neiPropertiesBuilder) { + int itemRowCount = (Math.max(uiProperties.maxItemInputs, uiProperties.maxItemOutputs) - 1) / xDirMaxCount + 1; + int fluidRowCount = (Math.max(uiProperties.maxFluidInputs, uiProperties.maxFluidOutputs) - 1) / xDirMaxCount + + 1; + return neiPropertiesBuilder.recipeBackgroundSize(new Size(170, 10 + (itemRowCount + fluidRowCount) * 18)); } @Override diff --git a/src/main/java/com/newmaa/othtech/common/recipemap/recipeMapFrontends/OTH_GeneralFrontendFireRocket.java b/src/main/java/com/newmaa/othtech/common/recipemap/recipeMapFrontends/OTH_GeneralFrontendFireRocket.java index 2bd799bc..9ea179f7 100644 --- a/src/main/java/com/newmaa/othtech/common/recipemap/recipeMapFrontends/OTH_GeneralFrontendFireRocket.java +++ b/src/main/java/com/newmaa/othtech/common/recipemap/recipeMapFrontends/OTH_GeneralFrontendFireRocket.java @@ -26,7 +26,14 @@ public OTH_GeneralFrontendFireRocket(BasicUIPropertiesBuilder uiPropertiesBuilde NEIRecipePropertiesBuilder neiPropertiesBuilder) { super(uiPropertiesBuilder.logoPos(new Pos2d(79, 7)), neiPropertiesBuilder); this.itemRowCount = getItemRowCount(); - neiProperties.recipeBackgroundSize = new Size(170, 40 + (itemRowCount + getFluidRowCount()) * 18); + } + + @Override + protected NEIRecipePropertiesBuilder modifyNEIProperties(NEIRecipePropertiesBuilder neiPropertiesBuilder) { + int itemRowCount = (Math.max(uiProperties.maxItemInputs, uiProperties.maxItemOutputs) - 1) / xDirMaxCount + 1; + int fluidRowCount = (Math.max(uiProperties.maxFluidInputs, uiProperties.maxFluidOutputs) - 1) / xDirMaxCount + + 1; + return neiPropertiesBuilder.recipeBackgroundSize(new Size(170, 40 + (itemRowCount + fluidRowCount) * 18)); } public void addProgressBar(ModularWindow.Builder builder, Supplier progressSupplier, Pos2d windowOffset) { diff --git a/src/main/java/com/newmaa/othtech/machine/OTEBBPlasmaForge.java b/src/main/java/com/newmaa/othtech/machine/OTEBBPlasmaForge.java index e43e2f64..adc0eb63 100644 --- a/src/main/java/com/newmaa/othtech/machine/OTEBBPlasmaForge.java +++ b/src/main/java/com/newmaa/othtech/machine/OTEBBPlasmaForge.java @@ -67,6 +67,7 @@ import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.recipe.check.SimpleCheckRecipeResult; import gregtech.api.render.TextureFactory; +import gregtech.api.structure.error.StructureError; import gregtech.api.util.GTModHandler; import gregtech.api.util.GTRecipe; import gregtech.api.util.GTRecipeConstants; @@ -455,7 +456,7 @@ public IStructureDefinition getStructureDefinition() { buildHatchAdder(OTEBBPlasmaForge.class) .atLeast(InputHatch, OutputHatch, InputBus, OutputBus, Energy.or(ExoticEnergy), Maintenance) .casingIndex(DIM_INJECTION_CASING) - .dot(1) + .hint(1) .buildAndChain(sBlockCasings1, 13)) .addElement('C', ofBlock(sBlockCasings1, 14)) .addElement( @@ -637,7 +638,7 @@ protected OverclockCalculator createOverclockCalculator(@Nonnull GTRecipe recipe // 7. 计算总能量需求(用于信息显示) BigInteger TotalEU = recipeEU.multiply(BigInteger.valueOf(maxParallel)); - costingWirelessEU = GTUtility.formatNumbers(TotalEU); + costingWirelessEU = GTUtility.scientificFormat(TotalEU); } return CheckRecipeResultRegistry.SUCCESSFUL; @@ -698,7 +699,7 @@ protected CheckRecipeResult onRecipeStart(@Nonnull GTRecipe recipe) { // 无线模式下,在配方开始时扣除能量 if (isWirelessMode) { finalConsumption = recipeEU.multiply(BigInteger.valueOf(-calculatedParallels)); - costingWirelessEU = GTUtility.formatNumbers(finalConsumption.abs()); + costingWirelessEU = GTUtility.scientificFormat(finalConsumption.abs()); // 从无线网络扣除能量 if (!addEUToGlobalEnergyMap(ownerUUID, finalConsumption)) { return CheckRecipeResultRegistry.insufficientStartupPower(finalConsumption); @@ -722,7 +723,7 @@ protected long getActualEnergyUsage() { } @Override - public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + public void checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack, List errors) { // Reset heating capacity. updatetier(); mHeatingCapacity = 0; @@ -733,23 +734,15 @@ public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack a mExoticEnergyHatches.clear(); mInputHatches.clear(); mInputBusses.clear(); - - if (!checkPiece(STRUCTURE_PIECE_MAIN, 23, 5, 20)) { - return false; - } - - if (getCoilLevel() == HeatingCoilLevel.None) return false; - - // Heat capacity of coils used on multi. No free heat from extra EU! + if (getCoilLevel() == HeatingCoilLevel.None) return; + if (!checkPiece(STRUCTURE_PIECE_MAIN, 23, 5, 20, errors)) return; mHeatingCapacity = (int) getCoilLevel().getHeat(); - // 无线模式下不允许能源仓 if (isWirelessMode && (!mEnergyHatches.isEmpty() || !mExoticEnergyHatches.isEmpty())) { - return false; + return; } - - // All structure checks passed, return true. - return true; + updatetier(); + repairMachine(); } @NotNull @@ -819,11 +812,11 @@ public String[] getInfoData() { infoData.add( StatCollector.translateToLocal("GT5U.multiblock.Progress") + ": " + EnumChatFormatting.GREEN - + GTUtility.formatNumbers(mProgresstime) + + GTUtility.scientificFormat(mProgresstime) + EnumChatFormatting.RESET + "t / " + EnumChatFormatting.YELLOW - + GTUtility.formatNumbers(mMaxProgresstime) + + GTUtility.scientificFormat(mMaxProgresstime) + EnumChatFormatting.RESET + "t"); @@ -839,11 +832,11 @@ public String[] getInfoData() { infoData.add( StatCollector.translateToLocal("GT5U.multiblock.energy") + ": " + EnumChatFormatting.GREEN - + GTUtility.formatNumbers(storedEnergy) + + GTUtility.scientificFormat(storedEnergy) + EnumChatFormatting.RESET + " EU / " + EnumChatFormatting.YELLOW - + GTUtility.formatNumbers(maxEnergy) + + GTUtility.scientificFormat(maxEnergy) + EnumChatFormatting.RESET + " EU"); } @@ -851,13 +844,13 @@ public String[] getInfoData() { infoData.add( StatCollector.translateToLocal("GT5U.multiblock.usage") + ": " + EnumChatFormatting.RED - + GTUtility.formatNumbers(getActualEnergyUsage()) + + GTUtility.scientificFormat(getActualEnergyUsage()) + EnumChatFormatting.RESET + " EU/t"); infoData.add( StatCollector.translateToLocal("GT5U.multiblock.mei") + ": " + EnumChatFormatting.YELLOW - + GTUtility.formatNumbers(voltage) + + GTUtility.scientificFormat(voltage) + EnumChatFormatting.RESET + " EU/t(*" + EnumChatFormatting.YELLOW @@ -872,7 +865,7 @@ public String[] getInfoData() { infoData.add( StatCollector.translateToLocal("GT5U.EBF.heat") + ": " + EnumChatFormatting.GREEN - + GTUtility.formatNumbers(mHeatingCapacity) + + GTUtility.scientificFormat(mHeatingCapacity) + EnumChatFormatting.RESET + " K"); infoData.add(EnumChatFormatting.STRIKETHROUGH + "-----------------------------------------"); @@ -989,21 +982,18 @@ public boolean getDefaultHasMaintenanceChecks() { public final void onScrewdriverRightClick(ForgeDirection side, EntityPlayer aPlayer, float aX, float aY, float aZ, ItemStack aTool) { if (getMLevel() >= 2) { - // 切换前检查结构 - if (checkMachine(getBaseMetaTileEntity(), null)) { - if (this.mEnergyHatches.isEmpty() && this.mExoticEnergyHatches.isEmpty()) { - isWirelessMode = !isWirelessMode; - if (isWirelessMode) { - GTUtility.sendChatToPlayer(aPlayer, StatCollector.translateToLocal("ote.bbpf.wireless.on")); - } else { - GTUtility.sendChatToPlayer(aPlayer, StatCollector.translateToLocal("ote.bbpf.wireless.off")); - } + if (this.mEnergyHatches.isEmpty() && this.mExoticEnergyHatches.isEmpty()) { + isWirelessMode = !isWirelessMode; + if (isWirelessMode) { + GTUtility.sendChatToPlayer(aPlayer, StatCollector.translateToLocal("ote.bbpf.wireless.on")); } else { - isWirelessMode = false; - GTUtility - .sendChatToPlayer(aPlayer, StatCollector.translateToLocal("ote.bbpf.wireless.energyhatch")); + GTUtility.sendChatToPlayer(aPlayer, StatCollector.translateToLocal("ote.bbpf.wireless.off")); } } else { + isWirelessMode = false; + GTUtility.sendChatToPlayer(aPlayer, StatCollector.translateToLocal("ote.bbpf.wireless.energyhatch")); + } + { GTUtility.sendChatToPlayer(aPlayer, StatCollector.translateToLocal("ote.bbpf.wireless.invalid")); } } diff --git a/src/main/java/com/newmaa/othtech/machine/OTEBeeyonds.java b/src/main/java/com/newmaa/othtech/machine/OTEBeeyonds.java index eaf7d779..2c78d576 100644 --- a/src/main/java/com/newmaa/othtech/machine/OTEBeeyonds.java +++ b/src/main/java/com/newmaa/othtech/machine/OTEBeeyonds.java @@ -8,6 +8,8 @@ import static gregtech.api.util.GTStructureUtility.buildHatchAdder; import static net.minecraft.util.StatCollector.translateToLocal; +import java.util.List; + import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; @@ -25,24 +27,19 @@ import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.render.TextureFactory; +import gregtech.api.structure.error.StructureError; import gregtech.api.util.MultiblockTooltipBuilder; import tectech.thing.metaTileEntity.multi.base.TTMultiblockBase; public class OTEBeeyonds extends OTHTTMultiMachineBaseEM implements IConstructable, ISurvivalConstructable { - private boolean grace = false; - @Override - public boolean checkMachine_EM(IGregTechTileEntity iGregTechTileEntity, ItemStack itemStack) { - casingCount = 0; - if (structureCheck_EM("main", 0, 1, 0) && casingCount >= 0) { - grace = true; - return true; - } else if (grace) { - grace = false; - return true; - } - return false; + public void checkMachine(IGregTechTileEntity iGregTechTileEntity, ItemStack itemStack, + List errors) { + if (!checkPiece("main", 0, 1, 0, errors)) return; + checkHasEnergyHatch(errors); + checkHasMaintenanceHatch(errors); + checkHasOutputBus(errors); } @Override @@ -52,8 +49,6 @@ public void onFirstTick_EM(IGregTechTileEntity aBaseMetaTileEntity) { } } - private int casingCount = 0; - // region structure private static final String[] description = new String[] { EnumChatFormatting.AQUA + translateToLocal("otht.con") + ":", translateToLocal("ote.cm.bee.0"), }; @@ -112,7 +107,7 @@ public void onFirstTick_EM(IGregTechTileEntity aBaseMetaTileEntity) { buildHatchAdder(OTEBeeyonds.class) .atLeast(InputBus, OutputBus, InputHatch, OutputHatch, Energy.or(ExoticEnergy)) .adder(OTEBeeyonds::addToMachineList) - .dot(1) + .hint(1) .casingIndex(210) .buildAndChain(sBlockReinforced, 2)) .build(); @@ -193,7 +188,7 @@ public boolean doRandomMaintenanceDamage() { @Override public void construct(ItemStack stackSize, boolean hintsOnly) { - structureBuild_EM("main", 11, 20, 1, stackSize, hintsOnly); + buildPiece("main", stackSize, hintsOnly, 0, 1, 0); } @Override diff --git a/src/main/java/com/newmaa/othtech/machine/OTEComputer.java b/src/main/java/com/newmaa/othtech/machine/OTEComputer.java index 6d6a13dc..bb73e0bb 100644 --- a/src/main/java/com/newmaa/othtech/machine/OTEComputer.java +++ b/src/main/java/com/newmaa/othtech/machine/OTEComputer.java @@ -2,6 +2,7 @@ import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofBlock; import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofBlockUnlocalizedName; +import static com.newmaa.othtech.recipe.RecipesMain.OTEquantumComputerFakeRecipes; import static gregtech.api.GregTechAPI.sBlockCasings10; import static gregtech.api.GregTechAPI.sBlockGlass1; import static gregtech.api.enums.GTValues.V; @@ -9,7 +10,6 @@ import static gregtech.api.enums.HatchElement.ExoticEnergy; import static gregtech.api.enums.HatchElement.InputHatch; import static gregtech.api.enums.HatchElement.Maintenance; -import static gregtech.api.recipe.RecipeMaps.quantumComputerFakeRecipes; import static gregtech.api.util.GTStructureUtility.buildHatchAdder; import static gregtech.api.util.GTStructureUtility.chainAllGlasses; import static gregtech.api.util.GTUtility.validMTEList; @@ -52,6 +52,7 @@ import gregtech.api.enums.SoundResource; import gregtech.api.enums.Textures; import gregtech.api.interfaces.IHatchElement; +import gregtech.api.interfaces.IIconContainer; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -60,6 +61,7 @@ import gregtech.api.recipe.check.CheckRecipeResult; import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.recipe.check.SimpleCheckRecipeResult; +import gregtech.api.structure.error.StructureError; import gregtech.api.util.GTUtility; import gregtech.api.util.IGTHatchAdder; import gregtech.api.util.MultiblockTooltipBuilder; @@ -90,8 +92,8 @@ public class OTEComputer extends OTHTTMultiMachineBaseEM implements IConstructab private final ArrayList eWirelessComputationOutputs = new ArrayList<>(); - private static Textures.BlockIcons.CustomIcon ScreenOFF; - private static Textures.BlockIcons.CustomIcon ScreenON; + private static IIconContainer ScreenOFF; + private static IIconContainer ScreenON; private static IStructureDefinition STRUCTURE_DEFINITION = null; private static final String STRUCTURE_PIECE_MAIN = "main"; private final int horizontalOffSet = 3; @@ -135,12 +137,12 @@ public IStructureDefinition getStructure_EM() { WirelessComputationHatchElement.INSTANCE.or(HatchElement.OutputData), InputHatch) .casingIndex(BlockGTCasingsTT.textureOffset + 1) - .dot(1) + .hint(1) .buildAndChain(ofBlock(TTCasingsContainer.sBlockCasingsTT, 1))) .addElement( 'E', buildHatchAdder(OTEComputer.class).atLeast(InputHatch) - .dot(2) + .hint(2) .casingIndex(BlockGTCasingsTT.textureOffset + 2) .buildAndChain(sBlockCasingsTT, 2)) .addElement('F', ofBlock(sBlockCasingsTT, 3)) @@ -255,7 +257,7 @@ public OTEComputer(String aName) { @Override public RecipeMap getRecipeMap() { - return quantumComputerFakeRecipes; + return OTEquantumComputerFakeRecipes; } @Override @@ -272,7 +274,7 @@ protected void parametersInstantiation_EM() { } @Override - public boolean checkMachine_EM(IGregTechTileEntity iGregTechTileEntity, ItemStack itemStack) { + public void checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack, List errors) { eRacks.clear(); if (!getBaseMetaTileEntity().isActive()) { this.eAvailableData = 0; @@ -281,10 +283,8 @@ public boolean checkMachine_EM(IGregTechTileEntity iGregTechTileEntity, ItemStac rack.getBaseMetaTileEntity() .setActive(false); } - if (!checkPiece(STRUCTURE_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet)) { - return false; - } - return true; + if (!checkPiece(STRUCTURE_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet, errors)) return; + repairMachine(); } @Override @@ -531,10 +531,10 @@ public void onScrewdriverRightClick(ForgeDirection side, EntityPlayer aPlayer, f public void registerIcons(IIconRegister aBlockIconRegister) { super.registerIcons(aBlockIconRegister); if (ScreenOFF == null) { - ScreenOFF = new Textures.BlockIcons.CustomIcon("iconsets/EM_COMPUTER"); + ScreenOFF = Textures.BlockIcons.custom("iconsets/EM_COMPUTER"); } if (ScreenON == null) { - ScreenON = new Textures.BlockIcons.CustomIcon("iconsets/EM_COMPUTER_ACTIVE"); + ScreenON = Textures.BlockIcons.custom("iconsets/EM_COMPUTER_ACTIVE"); } } diff --git a/src/main/java/com/newmaa/othtech/machine/OTEEIO.java b/src/main/java/com/newmaa/othtech/machine/OTEEIO.java index 5d9abf41..4d0796bc 100644 --- a/src/main/java/com/newmaa/othtech/machine/OTEEIO.java +++ b/src/main/java/com/newmaa/othtech/machine/OTEEIO.java @@ -8,6 +8,8 @@ import static gregtech.api.util.GTStructureUtility.*; import static net.minecraft.util.StatCollector.translateToLocal; +import java.util.List; + import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; @@ -36,6 +38,7 @@ import gregtech.api.recipe.check.CheckRecipeResult; import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.render.TextureFactory; +import gregtech.api.structure.error.StructureError; import gregtech.api.util.GTRecipe; import gregtech.api.util.MultiblockTooltipBuilder; import gregtech.common.blocks.BlockCasings2; @@ -172,10 +175,9 @@ public CheckRecipeResult checkProcessing() { } @Override - public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + public void checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack, List errors) { + if (!checkPiece(STRUCTURE_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet, errors)) return; repairMachine(); - return checkPiece(STRUCTURE_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet); - } @Override @@ -244,7 +246,7 @@ public IStructureDefinition getStructureDefinition() { buildHatchAdder(OTEEIO.class) .atLeast(Energy.or(ExoticEnergy), InputBus, OutputBus, InputHatch, OutputHatch) .adder(OTEEIO::addToMachineList) - .dot(1) + .hint(1) .casingIndex(((BlockCasings2) GregTechAPI.sBlockCasings2).getTextureIndex(0)) .buildAndChain(EnderIO.blockIngotStorage, 7)) .build(); diff --git a/src/main/java/com/newmaa/othtech/machine/OTEEpicCokeOven.java b/src/main/java/com/newmaa/othtech/machine/OTEEpicCokeOven.java index 72b658d3..e8eaaa66 100644 --- a/src/main/java/com/newmaa/othtech/machine/OTEEpicCokeOven.java +++ b/src/main/java/com/newmaa/othtech/machine/OTEEpicCokeOven.java @@ -38,12 +38,14 @@ import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.SoundResource; import gregtech.api.enums.Textures; +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.recipe.check.CheckRecipeResult; import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.render.TextureFactory; +import gregtech.api.structure.error.StructureError; import gregtech.api.util.GTModHandler; import gregtech.api.util.GTOreDictUnificator; import gregtech.api.util.GTUtility; @@ -154,10 +156,9 @@ protected float getSpeedBonus() { } @Override - public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + public void checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack, List errors) { + if (!checkPiece(STRUCTURE_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet, errors)) return; repairMachine(); - return checkPiece(STRUCTURE_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet); - } @Override @@ -209,7 +210,7 @@ public IStructureDefinition getStructureDefinition() { buildHatchAdder(OTEEpicCokeOven.class) .atLeast(InputBus, OutputBus, InputHatch, OutputHatch, Muffler) .adder(OTEEpicCokeOven::addToMachineList) - .dot(1) + .hint(1) .casingIndex(((BlockCasings2) GregTechAPI.sBlockCasings2).getTextureIndex(0)) .buildAndChain(sBlockCasings2, 0)) .addElement('B', ofFrame(Materials.Steel)) @@ -1390,12 +1391,12 @@ public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { return new OTEEpicCokeOven(this.mName); } - private static Textures.BlockIcons.CustomIcon ScreenON; + private static IIconContainer ScreenON; @Override @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister aBlockIconRegister) { - ScreenON = new Textures.BlockIcons.CustomIcon("iconsets/GODFORGE_CONTROLLER"); + ScreenON = Textures.BlockIcons.custom("iconsets/GODFORGE_CONTROLLER"); super.registerIcons(aBlockIconRegister); } diff --git a/src/main/java/com/newmaa/othtech/machine/OTEFireRocketAssembler.java b/src/main/java/com/newmaa/othtech/machine/OTEFireRocketAssembler.java index 15c8f6c4..73f69490 100644 --- a/src/main/java/com/newmaa/othtech/machine/OTEFireRocketAssembler.java +++ b/src/main/java/com/newmaa/othtech/machine/OTEFireRocketAssembler.java @@ -12,6 +12,7 @@ import static gregtech.api.util.GTStructureUtility.buildHatchAdder; import static net.minecraft.util.StatCollector.translateToLocal; +import java.util.List; import java.util.Objects; import net.minecraft.block.Block; @@ -52,6 +53,7 @@ import gregtech.api.recipe.check.CheckRecipeResult; import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.render.TextureFactory; +import gregtech.api.structure.error.StructureError; import gregtech.api.util.GTRecipe; import gregtech.api.util.MultiblockTooltipBuilder; @@ -147,10 +149,9 @@ protected void setupProcessingLogic(ProcessingLogic logic) { } @Override - public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + public void checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack, List errors) { + if (!checkPiece(STRUCTURE_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet, errors)) return; repairMachine(); - return checkPiece(STRUCTURE_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet); - } @Override @@ -220,7 +221,7 @@ public IStructureDefinition getStructureDefinition() { buildHatchAdder(OTEFireRocketAssembler.class) .atLeast(OutputBus, InputBus, InputHatch, OutputHatch, Energy.or(ExoticEnergy)) .adder(OTEFireRocketAssembler::addToMachineList) - .dot(1) + .hint(1) .casingIndex(210) .buildAndChain(sBlockReinforced, 2)) .build(); diff --git a/src/main/java/com/newmaa/othtech/machine/OTEFishtorio.java b/src/main/java/com/newmaa/othtech/machine/OTEFishtorio.java index 3c42f941..c0378a0b 100644 --- a/src/main/java/com/newmaa/othtech/machine/OTEFishtorio.java +++ b/src/main/java/com/newmaa/othtech/machine/OTEFishtorio.java @@ -4,6 +4,8 @@ import static gregtech.api.enums.HatchElement.*; import static net.minecraft.util.StatCollector.translateToLocal; +import java.util.List; + import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -29,6 +31,7 @@ import gregtech.api.recipe.check.CheckRecipeResult; import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.render.TextureFactory; +import gregtech.api.structure.error.StructureError; import gregtech.api.util.GTRecipe; import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; @@ -167,10 +170,9 @@ public CheckRecipeResult checkProcessing() { } @Override - public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + public void checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack, List errors) { + if (!checkPiece(STRUCTURE_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet, errors)) return; repairMachine(); - return checkPiece(STRUCTURE_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet); - } @Override diff --git a/src/main/java/com/newmaa/othtech/machine/OTEFoodGenerator.java b/src/main/java/com/newmaa/othtech/machine/OTEFoodGenerator.java index db51cd37..89be8721 100644 --- a/src/main/java/com/newmaa/othtech/machine/OTEFoodGenerator.java +++ b/src/main/java/com/newmaa/othtech/machine/OTEFoodGenerator.java @@ -39,6 +39,7 @@ import gregtech.api.GregTechAPI; import gregtech.api.enums.HeatingCoilLevel; import gregtech.api.enums.Textures; +import gregtech.api.interfaces.IIconContainer; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -46,6 +47,7 @@ import gregtech.api.recipe.check.CheckRecipeResult; import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.render.TextureFactory; +import gregtech.api.structure.error.StructureError; import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; import gregtech.common.blocks.BlockCasings1; @@ -102,7 +104,7 @@ public void getWailaNBTData(EntityPlayerMP player, TileEntity tile, NBTTagCompou super.getWailaNBTData(player, tile, tag, world, x, y, z); final IGregTechTileEntity tileEntity = getBaseMetaTileEntity(); if (tileEntity != null) { - String bonus = GTUtility.formatNumbers(mEUt); + String bonus = GTUtility.formatShortenedLong(mEUt); tag.setString("bonus", bonus); } } @@ -178,10 +180,9 @@ protected float getSpeedBonus() { } @Override - public boolean checkMachine_EM(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + public void checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack, List errors) { + if (!checkPiece(STRUCTURE_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet, errors)) return; repairMachine(); - return checkPiece(STRUCTURE_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet); - } @Override @@ -287,7 +288,7 @@ public IStructureDefinition getStructure_EM() { buildHatchAdder(OTEFoodGenerator.class) .atLeast(InputBus, OutputBus, InputHatch, OutputHatch, Muffler) .adder(OTEFoodGenerator::addToMachineList) - .dot(1) + .hint(1) .casingIndex(((BlockCasings2) GregTechAPI.sBlockCasings2).getTextureIndex(0)) .buildAndChain(sBlockCasings2, 0)) .addElement( @@ -325,7 +326,7 @@ public IStructureDefinition getStructure_EM() { 'F', buildHatchAdder(OTEFoodGenerator.class).atLeast(Dynamo) .adder(OTEFoodGenerator::addToMachineList) - .dot(2) + .hint(2) .casingIndex(((BlockCasings1) GregTechAPI.sBlockCasings1).getTextureIndex(9)) .buildAndChain(sBlockCasings2, 0)) .addElement('G', ofBlock(Blocks.iron_block, 0)) @@ -487,12 +488,12 @@ public boolean supportsSingleRecipeLocking() { return true; } - private static Textures.BlockIcons.CustomIcon ScreenON; + private static IIconContainer ScreenON; @Override @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister aBlockIconRegister) { - ScreenON = new Textures.BlockIcons.CustomIcon("123technology:iconSetOTH/LEEK"); + ScreenON = Textures.BlockIcons.custom("123technology:iconSetOTH/LEEK"); super.registerIcons(aBlockIconRegister); } diff --git a/src/main/java/com/newmaa/othtech/machine/OTEGraveDragon.java b/src/main/java/com/newmaa/othtech/machine/OTEGraveDragon.java index 3ff8e951..37d76a7a 100644 --- a/src/main/java/com/newmaa/othtech/machine/OTEGraveDragon.java +++ b/src/main/java/com/newmaa/othtech/machine/OTEGraveDragon.java @@ -41,6 +41,7 @@ import gregtech.api.recipe.check.CheckRecipeResult; import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.render.TextureFactory; +import gregtech.api.structure.error.StructureError; import gregtech.api.util.GTRecipe; import gregtech.api.util.MultiblockTooltipBuilder; import gtPlusPlus.core.block.ModBlocks; @@ -87,7 +88,7 @@ public IStructureDefinition getStructureDefinition() { buildHatchAdder(OTEGraveDragon.class) .atLeast(InputBus, InputHatch, OutputBus, OutputHatch, Energy.or(ExoticEnergy)) .casingIndex(CASING_INDEX) - .dot(1) + .hint(1) .buildAndChain(BlockLoader.defcCasingBlock, 7)) .build(); } @@ -207,10 +208,9 @@ protected CheckRecipeResult validateRecipe(@NotNull GTRecipe recipe) { } @Override - public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + public void checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack, List errors) { + if (!checkPiece(STRUCTURE_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet, errors)) return; repairMachine(); - return checkPiece(STRUCTURE_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet); - } @Override diff --git a/src/main/java/com/newmaa/othtech/machine/OTEHeatExchanger.java b/src/main/java/com/newmaa/othtech/machine/OTEHeatExchanger.java index 641a092f..64530c32 100644 --- a/src/main/java/com/newmaa/othtech/machine/OTEHeatExchanger.java +++ b/src/main/java/com/newmaa/othtech/machine/OTEHeatExchanger.java @@ -10,6 +10,8 @@ import static gregtech.api.util.GTStructureUtility.*; import static net.minecraft.util.StatCollector.translateToLocal; +import java.util.List; + import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; import net.minecraftforge.common.util.ForgeDirection; @@ -35,6 +37,7 @@ import gregtech.api.recipe.check.CheckRecipeResult; import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.render.TextureFactory; +import gregtech.api.structure.error.StructureError; import gregtech.api.util.GTRecipe; import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; @@ -72,10 +75,9 @@ public RecipeMap getRecipeMap() { } @Override - public boolean checkMachine_EM(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + public void checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack, List errors) { + if (!checkPiece(STRUCTURE_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet, errors)) return; repairMachine(); - return checkPiece(STRUCTURE_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet); - } @Override @@ -178,7 +180,7 @@ public IStructureDefinition getStructure_EM() { buildHatchAdder(OTEHeatExchanger.class) .atLeast(Energy.or(ExoticEnergy), InputBus, OutputBus, InputHatch, OutputHatch) .adder(OTEHeatExchanger::addToMachineList) - .dot(1) + .hint(1) .casingIndex(48) .buildAndChain(sBlockCasings4, 0)) .build(); diff --git a/src/main/java/com/newmaa/othtech/machine/OTEIMBABlastFurnace.java b/src/main/java/com/newmaa/othtech/machine/OTEIMBABlastFurnace.java index 21fd5d11..b883cd29 100644 --- a/src/main/java/com/newmaa/othtech/machine/OTEIMBABlastFurnace.java +++ b/src/main/java/com/newmaa/othtech/machine/OTEIMBABlastFurnace.java @@ -7,6 +7,8 @@ import static gregtech.api.util.GTStructureUtility.ofCoil; import static net.minecraft.util.StatCollector.translateToLocal; +import java.util.List; + import javax.annotation.Nonnull; import net.minecraft.item.ItemStack; @@ -25,6 +27,7 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.logic.ProcessingLogic; import gregtech.api.render.TextureFactory; +import gregtech.api.structure.error.StructureError; import gregtech.api.util.GTRecipe; import gregtech.api.util.MultiblockTooltipBuilder; import gregtech.api.util.OverclockCalculator; @@ -68,7 +71,7 @@ public String[] getStructureDescription(ItemStack stackSize) { return false; })) .casingIndex(CASING_INDEX) - .dot(1) + .hint(1) .buildAndChain(GregTechAPI.sBlockCasings1, CASING_INDEX)) .addElement( 'm', // 消音舱口 @@ -81,7 +84,7 @@ public String[] getStructureDescription(ItemStack stackSize) { buildHatchAdder(MTEElectricBlastFurnace.class) .atLeast(InputHatch, OutputHatch, InputBus, OutputBus, Maintenance) .casingIndex(CASING_INDEX) - .dot(1) + .hint(1) .buildAndChain(GregTechAPI.sBlockCasings1, CASING_INDEX)) .build(); @@ -137,16 +140,14 @@ public boolean drainEnergyInput(long aEUt) { } @Override - public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + public void checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack, List errors) { this.mHeatingCapacity = 0; setCoilLevel(HeatingCoilLevel.None); mMufflerHatches.clear(); - if (!checkPiece(STRUCTURE_PIECE_MAIN, 2, 3, 0)) return false; - if (getCoilLevel() == HeatingCoilLevel.None) return false; - if (mMaintenanceHatches.size() != 1) return false; + if (!checkPiece(STRUCTURE_PIECE_MAIN, 2, 3, 0, errors)) return; + if (getCoilLevel() == HeatingCoilLevel.None) return; + if (mMaintenanceHatches.size() != 1) return; this.mHeatingCapacity = 20001; - - return true; } @Override diff --git a/src/main/java/com/newmaa/othtech/machine/OTELaoBaChemicalReactor.java b/src/main/java/com/newmaa/othtech/machine/OTELaoBaChemicalReactor.java index 481c60bd..03634d67 100644 --- a/src/main/java/com/newmaa/othtech/machine/OTELaoBaChemicalReactor.java +++ b/src/main/java/com/newmaa/othtech/machine/OTELaoBaChemicalReactor.java @@ -47,6 +47,7 @@ import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.recipe.check.SimpleCheckRecipeResult; import gregtech.api.render.TextureFactory; +import gregtech.api.structure.error.StructureError; import gregtech.api.util.GTModHandler; import gregtech.api.util.GTRecipe; import gregtech.api.util.GTUtility; @@ -217,12 +218,11 @@ protected CheckRecipeResult validateRecipe(@NotNull GTRecipe recipe) { } @Override - public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + public void checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack, List errors) { updatetier(); repairMachine(); coilLevel = HeatingCoilLevel.None; - return checkPiece(STRUCTURE_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet); - + if (!checkPiece(STRUCTURE_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet, errors)) return; } @NotNull @@ -300,7 +300,7 @@ public IStructureDefinition getStructureDefinition() { buildHatchAdder(OTELaoBaChemicalReactor.class) .atLeast(Energy.or(ExoticEnergy), InputBus, OutputBus, InputHatch, OutputHatch) .adder(OTELaoBaChemicalReactor::addToMachineList) - .dot(1) + .hint(1) .casingIndex(CASING_TEXTURE_ID) .buildAndChain(sBlockCasings8, 6)) .build(); diff --git a/src/main/java/com/newmaa/othtech/machine/OTELargeBin.java b/src/main/java/com/newmaa/othtech/machine/OTELargeBin.java index 84132e70..7f3a2b9c 100644 --- a/src/main/java/com/newmaa/othtech/machine/OTELargeBin.java +++ b/src/main/java/com/newmaa/othtech/machine/OTELargeBin.java @@ -46,6 +46,7 @@ import gregtech.api.enums.ItemList; import gregtech.api.enums.SoundResource; import gregtech.api.enums.Textures; +import gregtech.api.interfaces.IIconContainer; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -55,6 +56,7 @@ import gregtech.api.recipe.check.CheckRecipeResult; import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.recipe.check.SimpleCheckRecipeResult; +import gregtech.api.structure.error.StructureError; import gregtech.api.util.GTModHandler; import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; @@ -83,13 +85,13 @@ public IStructureDefinition getStructureDefinition() { } @Override - public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + public void checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack, List errors) { repairMachine(); Tier = Math.max(1, Math.min(4, Tier)); - return Tier == 1 ? checkPiece(Tier1, 2, 3, 1) - : Tier == 2 ? checkPiece(Tier2, 4, 9, 2) - : Tier == 3 ? checkPiece(Tier3, 7, 18, 3) : checkPiece(Tier4, 9, 27, 1); - + if (Tier == 1 && !checkPiece(Tier1, 2, 3, 1, errors)) return; + if (Tier == 2 && !checkPiece(Tier2, 4, 9, 2, errors)) return; + if (Tier == 3 && !checkPiece(Tier3, 7, 18, 3, errors)) return; + if (Tier == 4 && !checkPiece(Tier4, 9, 27, 1, errors)) return; } @Override @@ -403,25 +405,25 @@ public Collection> getAvailableRecipeMaps() { .addElement( 'A', buildHatchAdder(OTELargeBin.class).atLeast(InputBus, InputHatch, Energy.or(ExoticEnergy), Dynamo, OutputBus) - .dot(1) + .hint(1) .casingIndex(((BlockCasings2) sBlockCasings2).getTextureIndex(0)) .buildAndChain(sBlockCasings2, 0)) .addElement( 'Y', buildHatchAdder(OTELargeBin.class).atLeast(InputBus, InputHatch, Energy.or(ExoticEnergy), Dynamo, OutputBus) - .dot(1) + .hint(1) .casingIndex(((BlockCasings4) sBlockCasings4).getTextureIndex(2)) .buildAndChain(sBlockCasings4, 2)) .addElement( 'M', buildHatchAdder(OTELargeBin.class).atLeast(InputBus, InputHatch, Energy.or(ExoticEnergy), Dynamo, OutputBus) - .dot(1) + .hint(1) .casingIndex(((BlockCasings4) sBlockCasings4).getTextureIndex(0)) .buildAndChain(sBlockCasings4, 0)) .addElement( 'N', buildHatchAdder(OTELargeBin.class).atLeast(InputBus, InputHatch, Energy.or(ExoticEnergy), Dynamo, OutputBus) - .dot(1) + .hint(1) .casingIndex(((BlockCasings1) sBlockCasings1).getTextureIndex(12)) .buildAndChain(sBlockCasings1, 12)) .addElement('Z', ofBlock(sBlockCasings3, 10)) @@ -460,7 +462,7 @@ public void getWailaNBTData(EntityPlayerMP player, TileEntity tile, NBTTagCompou super.getWailaNBTData(player, tile, tag, world, x, y, z); final IGregTechTileEntity tileEntity = getBaseMetaTileEntity(); if (tileEntity != null) { - String Mode = GTUtility.formatNumbers(this.mode); + String Mode = GTUtility.formatShortenedLong(this.mode); tag.setString("Mode", Mode); tag.setLong("MM", mSA); tag.setInteger("Tier", Tier); @@ -722,14 +724,14 @@ public MultiblockTooltipBuilder createTooltip() { return tt; } - protected static Textures.BlockIcons.CustomIcon ScreenOFF; - protected static Textures.BlockIcons.CustomIcon ScreenON; + protected static IIconContainer ScreenOFF; + protected static IIconContainer ScreenON; @Override @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister aBlockIconRegister) { - ScreenOFF = new Textures.BlockIcons.CustomIcon("iconsets/EM_CONTROLLER"); - ScreenON = new Textures.BlockIcons.CustomIcon("iconsets/EM_CONTROLLER_ACTIVE"); + ScreenOFF = Textures.BlockIcons.custom("iconsets/EM_CONTROLLER"); + ScreenON = Textures.BlockIcons.custom("iconsets/EM_CONTROLLER_ACTIVE"); super.registerIcons(aBlockIconRegister); } diff --git a/src/main/java/com/newmaa/othtech/machine/OTELargeCircuitAssembler.java b/src/main/java/com/newmaa/othtech/machine/OTELargeCircuitAssembler.java index fbcca577..9cfb85e7 100644 --- a/src/main/java/com/newmaa/othtech/machine/OTELargeCircuitAssembler.java +++ b/src/main/java/com/newmaa/othtech/machine/OTELargeCircuitAssembler.java @@ -49,6 +49,7 @@ import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.recipe.check.SimpleCheckRecipeResult; import gregtech.api.render.TextureFactory; +import gregtech.api.structure.error.StructureError; import gregtech.api.util.GTRecipe; import gregtech.api.util.MultiblockTooltipBuilder; import gregtech.common.tileentities.machines.IDualInputHatch; @@ -147,12 +148,11 @@ public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, ForgeDirec } else return new ITexture[] { Textures.BlockIcons.getCasingTextureForId(id) }; } - private static final IIconContainer textureFontOn = new Textures.BlockIcons.CustomIcon("iconsets/OVERLAY_QTANK"); - private static final IIconContainer textureFontOn_Glow = new Textures.BlockIcons.CustomIcon( - "iconsets/OVERLAY_QTANK_GLOW"); - private static final IIconContainer textureFontOff = new Textures.BlockIcons.CustomIcon("iconsets/OVERLAY_QCHEST"); - private static final IIconContainer textureFontOff_Glow = new Textures.BlockIcons.CustomIcon( - "iconsets/OVERLAY_QCHEST_GLOW"); + private static final IIconContainer textureFontOn = Textures.BlockIcons.custom("iconsets/OVERLAY_QTANK"); + private static final IIconContainer textureFontOn_Glow = Textures.BlockIcons.custom("iconsets/OVERLAY_QTANK_GLOW"); + private static final IIconContainer textureFontOff = Textures.BlockIcons.custom("iconsets/OVERLAY_QCHEST"); + private static final IIconContainer textureFontOff_Glow = Textures.BlockIcons + .custom("iconsets/OVERLAY_QCHEST_GLOW"); @Override public byte getUpdateData() { @@ -176,18 +176,17 @@ public void onValueUpdate(byte aValue) { private static IStructureDefinition STRUCTURE_DEFINITION = null; @Override - public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + public void checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack, List errors) { repairMachine(); this.casingTier = -2; this.machineLimitedVoltage = -1L; - var res = checkPiece(STRUCTURE_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet); + var res = checkPiece(STRUCTURE_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet, errors); if (res) { this.machineLimitedVoltage = GTValues.V[checkEnergyHatchTier()]; if (casingTier >= 0) { reUpdate(Math.max(CASING_INDEX, CASING_INDEX + casingTier)); } } - return res; } private final List> hatchList = Arrays.asList( @@ -262,21 +261,21 @@ public IStructureDefinition getStructureDefinition() { buildHatchAdder(OTELargeCircuitAssembler.class).atLeast(Energy.or(ExoticEnergy), Muffler) .adder(OTELargeCircuitAssembler::addToMachineList) .casingIndex(CASING_INDEX) - .dot(1) + .hint(1) .buildAndChain(c)) .addElement( 'G', buildHatchAdder(OTELargeCircuitAssembler.class).atLeast(OutputHatch, OutputBus) .adder(OTELargeCircuitAssembler::addToMachineList) .casingIndex(CASING_INDEX) - .dot(2) + .hint(2) .buildAndChain(c)) .addElement( 'F', buildHatchAdder(OTELargeCircuitAssembler.class).atLeast(InputBus, InputHatch) .adder(OTELargeCircuitAssembler::addToMachineList) .casingIndex(CASING_INDEX) - .dot(3) + .hint(3) .buildAndChain(c)) .build(); } diff --git a/src/main/java/com/newmaa/othtech/machine/OTEMegaCircuitAssLine.java b/src/main/java/com/newmaa/othtech/machine/OTEMegaCircuitAssLine.java index 13bdd0b0..f2351bcf 100644 --- a/src/main/java/com/newmaa/othtech/machine/OTEMegaCircuitAssLine.java +++ b/src/main/java/com/newmaa/othtech/machine/OTEMegaCircuitAssLine.java @@ -51,6 +51,7 @@ import gregtech.api.recipe.check.CheckRecipeResult; import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.render.TextureFactory; +import gregtech.api.structure.error.StructureError; import gregtech.api.util.GTRecipe; import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; @@ -170,10 +171,10 @@ protected CheckRecipeResult validateRecipe(@NotNull GTRecipe recipe) { } @Override - public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + public void checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack, List errors) { + if (!checkPiece(STRUCTURE_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet, errors)) return; updatetier(); - return checkPiece(STRUCTURE_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet); - + repairMachine(); } @Override @@ -241,7 +242,7 @@ public IStructureDefinition getStructureDefinition() { 'D', buildHatchAdder(OTEMegaCircuitAssLine.class).atLeast(OutputBus) .adder(OTEMegaCircuitAssLine::addToMachineList) - .dot(2) + .hint(2) .casingIndex(((BlockCasings2) GregTechAPI.sBlockCasings2).getTextureIndex(0)) .buildAndChain(sBlockCasings2, 0)) .addElement( @@ -249,7 +250,7 @@ public IStructureDefinition getStructureDefinition() { buildHatchAdder(OTEMegaCircuitAssLine.class) .atLeast(Energy.or(ExoticEnergy), InputBus, InputHatch, OutputHatch) .adder(OTEMegaCircuitAssLine::addToMachineList) - .dot(1) + .hint(1) .casingIndex(((BlockCasings2) GregTechAPI.sBlockCasings2).getTextureIndex(0)) .buildAndChain(sBlockCasings2, 0)) .build(); diff --git a/src/main/java/com/newmaa/othtech/machine/OTEMegaEBFGTpp.java b/src/main/java/com/newmaa/othtech/machine/OTEMegaEBFGTpp.java index d420c8e9..739524c1 100644 --- a/src/main/java/com/newmaa/othtech/machine/OTEMegaEBFGTpp.java +++ b/src/main/java/com/newmaa/othtech/machine/OTEMegaEBFGTpp.java @@ -8,6 +8,8 @@ import static gregtech.api.util.GTStructureUtility.ofCoil; import static net.minecraft.util.StatCollector.translateToLocal; +import java.util.List; + import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; @@ -42,6 +44,7 @@ import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.recipe.check.SimpleCheckRecipeResult; import gregtech.api.render.TextureFactory; +import gregtech.api.structure.error.StructureError; import gregtech.api.util.GTRecipe; import gregtech.api.util.MultiblockTooltipBuilder; import gregtech.api.util.OverclockCalculator; @@ -153,21 +156,22 @@ public CheckRecipeResult process() { } @Override - public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + public void checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack, List errors) { this.mHeatingCapacity = 0; - if (!this.checkPiece("main", 7, 17, 0) || this.getCoilLevel() == HeatingCoilLevel.None) return false; + if (!this.checkPiece(STRUCTURE_PIECE_MAIN, 7, 17, 0, errors) || this.getCoilLevel() == HeatingCoilLevel.None) + return; if (this.glassTier < 8) { for (MTEHatch hatch : this.mExoticEnergyHatches) { if (hatch.getConnectionType() == MTEHatch.ConnectionType.LASER) { - return false; + return; } if (this.glassTier < hatch.mTier) { - return false; + return; } } for (MTEHatchEnergy mEnergyHatch : this.mEnergyHatches) { if (this.glassTier < mEnergyHatch.mTier) { - return false; + return; } } } @@ -175,7 +179,6 @@ public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack a this.lava = true; } this.mHeatingCapacity = ((int) getCoilLevel().getHeat()); - return true; } @Override @@ -204,7 +207,7 @@ public int survivalConstruct(ItemStack stackSize, int elementBudget, ISurvivalBu public boolean checkForWater() { if (this.getStoredFluids() != null) { for (FluidStack stored : this.getStoredFluids()) { - if (stored.isFluidEqual(FluidUtils.getFluidStack("pyrotheum", 1))) { + if (stored.isFluidEqual(FluidUtils.getWildcardFluidStack("pyrotheum", 1))) { if (stored.amount >= 123 * 1000) { return true; } @@ -250,7 +253,7 @@ public IStructureDefinition getStructureDefinition() { buildHatchAdder(OTEMegaEBFGTpp.class) .atLeast(Energy.or(ExoticEnergy), InputBus, OutputBus, InputHatch, OutputHatch) .adder(OTEMegaEBFGTpp::addToMachineList) - .dot(1) + .hint(1) .casingIndex(TAE.getIndexFromPage(2, 11)) .buildAndChain(ofBlock(ModBlocks.blockCasings3Misc, 11))) .addElement( @@ -261,7 +264,7 @@ public IStructureDefinition getStructureDefinition() { 'D', buildHatchAdder(OTEMegaEBFGTpp.class).atLeast(Muffler) .adder(OTEMegaEBFGTpp::addToMachineList) - .dot(2) + .hint(2) .casingIndex(TAE.getIndexFromPage(2, 11)) .buildAndChain(ofBlock(ModBlocks.blockCasings3Misc, 11))) .build(); diff --git a/src/main/java/com/newmaa/othtech/machine/OTEMegaEEC.java b/src/main/java/com/newmaa/othtech/machine/OTEMegaEEC.java index 07dcf507..775d0df5 100644 --- a/src/main/java/com/newmaa/othtech/machine/OTEMegaEEC.java +++ b/src/main/java/com/newmaa/othtech/machine/OTEMegaEEC.java @@ -12,6 +12,7 @@ import static tectech.thing.casing.TTCasingsContainer.sBlockCasingsTT; import java.nio.charset.StandardCharsets; +import java.util.List; import java.util.Random; import java.util.UUID; @@ -54,6 +55,7 @@ import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.recipe.check.SimpleCheckRecipeResult; import gregtech.api.render.TextureFactory; +import gregtech.api.structure.error.StructureError; import gregtech.api.util.GTRecipe; import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; @@ -174,10 +176,9 @@ protected CheckRecipeResult validateRecipe(@NotNull GTRecipe recipe) { } @Override - public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + public void checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack, List errors) { + if (!checkPiece(STRUCTURE_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet, errors)) return; repairMachine(); - return checkPiece(STRUCTURE_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet); - } @Override @@ -248,7 +249,7 @@ public IStructureDefinition getStructureDefinition() { buildHatchAdder(OTEMegaEEC.class) .atLeast(Energy.or(ExoticEnergy), InputBus, OutputBus, InputHatch, OutputHatch) .adder(OTEMegaEEC::addToMachineList) - .dot(1) + .hint(1) .casingIndex(12) .buildAndChain(sBlockCasings1, 12)) .addElement('D', ofBlock(sBlockCasings1, 13)) diff --git a/src/main/java/com/newmaa/othtech/machine/OTEMegaFreezerGTpp.java b/src/main/java/com/newmaa/othtech/machine/OTEMegaFreezerGTpp.java index 07fb396d..7400339c 100644 --- a/src/main/java/com/newmaa/othtech/machine/OTEMegaFreezerGTpp.java +++ b/src/main/java/com/newmaa/othtech/machine/OTEMegaFreezerGTpp.java @@ -5,6 +5,8 @@ import static gregtech.api.util.GTStructureUtility.buildHatchAdder; import static net.minecraft.util.StatCollector.translateToLocal; +import java.util.List; + import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; @@ -29,13 +31,14 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.logic.ProcessingLogic; import gregtech.api.recipe.RecipeMap; +import gregtech.api.recipe.RecipeMaps; 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.structure.error.StructureError; import gregtech.api.util.GTRecipe; import gregtech.api.util.MultiblockTooltipBuilder; -import gtPlusPlus.api.recipe.GTPPRecipeMaps; import gtPlusPlus.core.block.ModBlocks; import gtPlusPlus.core.util.minecraft.FluidUtils; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; @@ -79,7 +82,7 @@ protected float getEuModifier() { @Override public RecipeMap getRecipeMap() { - return GTPPRecipeMaps.advancedFreezerRecipes; + return RecipeMaps.vacuumFreezerRecipes; } @@ -112,9 +115,9 @@ public CheckRecipeResult process() { } @Override - public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + public void checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack, List errors) { + if (!checkPiece(STRUCTURE_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet, errors)) return; repairMachine(); - return checkPiece(STRUCTURE_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet); } @Override @@ -143,7 +146,7 @@ public int survivalConstruct(ItemStack stackSize, int elementBudget, ISurvivalBu public boolean checkForLava() { if (this.getStoredFluids() != null) { for (FluidStack stored : this.getStoredFluids()) { - if (stored.isFluidEqual(FluidUtils.getFluidStack("cryotheum", 1))) { + if (stored.isFluidEqual(FluidUtils.getWildcardFluidStack("cryotheum", 1))) { if (stored.amount >= 123 * 1000) { return true; } @@ -179,7 +182,7 @@ public IStructureDefinition getStructureDefinition() { buildHatchAdder(OTEMegaFreezerGTpp.class) .atLeast(Energy.or(ExoticEnergy), InputBus, OutputBus, InputHatch, OutputHatch, Muffler) .adder(OTEMegaFreezerGTpp::addToMachineList) - .dot(1) + .hint(1) .casingIndex(TAE.getIndexFromPage(2, 10)) .buildAndChain(ofBlock(ModBlocks.blockCasings3Misc, 10))) diff --git a/src/main/java/com/newmaa/othtech/machine/OTEMegaIsaFactory.java b/src/main/java/com/newmaa/othtech/machine/OTEMegaIsaFactory.java index b562b0ab..11f602e9 100644 --- a/src/main/java/com/newmaa/othtech/machine/OTEMegaIsaFactory.java +++ b/src/main/java/com/newmaa/othtech/machine/OTEMegaIsaFactory.java @@ -44,6 +44,7 @@ import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.recipe.check.SimpleCheckRecipeResult; import gregtech.api.render.TextureFactory; +import gregtech.api.structure.error.StructureError; import gregtech.api.util.GTRecipe; import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; @@ -116,7 +117,7 @@ public void getWailaNBTData(EntityPlayerMP player, TileEntity tile, NBTTagCompou super.getWailaNBTData(player, tile, tag, world, x, y, z); final IGregTechTileEntity tileEntity = getBaseMetaTileEntity(); if (tileEntity != null) { - String bonus = GTUtility.formatNumbers(tierMill); + String bonus = GTUtility.formatShortenedLong(tierMill); tag.setString("tierMill", bonus); } } @@ -162,12 +163,9 @@ protected CheckRecipeResult validateRecipe(@NotNull GTRecipe recipe) { } @Override - public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { - + public void checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack, List errors) { + if (!checkPiece(STRUCTURE_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet, errors)) return; repairMachine(); - - return checkPiece(STRUCTURE_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet); - } @Override @@ -260,7 +258,7 @@ public IStructureDefinition getStructureDefinition() { 'L', buildHatchAdder(OTEMegaIsaFactory.class).atLeast(Muffler) .adder(OTEMegaIsaFactory::addToMachineList) - .dot(2) + .hint(2) .casingIndex(TAE.getIndexFromPage(3, 10)) .buildAndChain(ModBlocks.blockCasings4Misc, 10)) .addElement( @@ -268,7 +266,7 @@ public IStructureDefinition getStructureDefinition() { buildHatchAdder(OTEMegaIsaFactory.class) .atLeast(Energy.or(ExoticEnergy), InputBus, OutputBus, InputHatch, OutputHatch) .adder(OTEMegaIsaFactory::addToMachineList) - .dot(1) + .hint(1) .casingIndex(TAE.GTPP_INDEX(2)) .buildAndChain(ModBlocks.blockCasings5Misc, 0)) .build(); diff --git a/src/main/java/com/newmaa/othtech/machine/OTEMegaIsaForge.java b/src/main/java/com/newmaa/othtech/machine/OTEMegaIsaForge.java index 56854820..478e04ba 100644 --- a/src/main/java/com/newmaa/othtech/machine/OTEMegaIsaForge.java +++ b/src/main/java/com/newmaa/othtech/machine/OTEMegaIsaForge.java @@ -12,6 +12,7 @@ import java.util.Arrays; import java.util.Collection; +import java.util.List; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -42,6 +43,7 @@ import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.recipe.check.SimpleCheckRecipeResult; import gregtech.api.render.TextureFactory; +import gregtech.api.structure.error.StructureError; import gregtech.api.util.GTModHandler; import gregtech.api.util.GTRecipe; import gregtech.api.util.GTUtility; @@ -163,11 +165,10 @@ public final void onScrewdriverRightClick(ForgeDirection side, EntityPlayer aPla } @Override - public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + public void checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack, List errors) { + if (!checkPiece(STRUCTURE_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet, errors)) return; updatetier(); repairMachine(); - return checkPiece(STRUCTURE_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet); - } @NotNull @@ -248,7 +249,7 @@ public IStructureDefinition getStructureDefinition() { buildHatchAdder(OTEMegaIsaForge.class) .atLeast(Energy.or(ExoticEnergy), InputBus, OutputBus, InputHatch, OutputHatch, Muffler) .adder(OTEMegaIsaForge::addToMachineList) - .dot(1) + .hint(1) .casingIndex(1024 + 12) .buildAndChain(sBlockCasingsTT, 12)) .build(); diff --git a/src/main/java/com/newmaa/othtech/machine/OTEMegaNQFuelFactory.java b/src/main/java/com/newmaa/othtech/machine/OTEMegaNQFuelFactory.java index 0981be38..f66aa396 100644 --- a/src/main/java/com/newmaa/othtech/machine/OTEMegaNQFuelFactory.java +++ b/src/main/java/com/newmaa/othtech/machine/OTEMegaNQFuelFactory.java @@ -51,6 +51,7 @@ import gregtech.api.recipe.check.CheckRecipeResult; import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.render.TextureFactory; +import gregtech.api.structure.error.StructureError; import gregtech.api.util.GTRecipe; import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; @@ -93,8 +94,8 @@ public void getWailaNBTData(EntityPlayerMP player, TileEntity tile, NBTTagCompou super.getWailaNBTData(player, tile, tag, world, x, y, z); final IGregTechTileEntity tileEntity = getBaseMetaTileEntity(); if (tileEntity != null) { - String Mode = GTUtility.formatNumbers(mode); - String OC = GTUtility.formatNumbers(this.tier); + String Mode = GTUtility.formatShortenedLong(mode); + String OC = GTUtility.formatShortenedLong(this.tier); tag.setString("Tier", Mode); tag.setString("OC", OC); tag.setString("Parallel", String.valueOf(maxParallel)); @@ -159,8 +160,9 @@ public Collection> getAvailableRecipeMaps() { } @Override - public boolean checkMachine_EM(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { - return structureCheck_EM(mName, horizontalOffSet, verticalOffSet, depthOffSet); + public void checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack, List errors) { + if (!checkPiece(mName, horizontalOffSet, verticalOffSet, depthOffSet, errors)) return; + repairMachine(); } public int getParallel() { @@ -217,8 +219,9 @@ public int getMaxParallelRecipes() { } @Override - public void construct(ItemStack itemStack, boolean hintsOnly) { - structureBuild_EM(mName, horizontalOffSet, verticalOffSet, depthOffSet, itemStack, hintsOnly); + public void construct(ItemStack stackSize, boolean hintsOnly) { + repairMachine(); + buildPiece(mName, stackSize, hintsOnly, horizontalOffSet, verticalOffSet, depthOffSet); } @Override @@ -606,7 +609,7 @@ public IStructureDefinition getStructure_EM() { buildHatchAdder(OTEMegaNQFuelFactory.class).atLeast(InputHatch, OutputHatch) .adder(OTEMegaNQFuelFactory::addToMachineList) .casingIndex(179) - .dot(1) + .hint(1) .buildAndChain(ofBlock(Loaders.FRF_Casings, 0))) .addElement('A', ofBlock(Loaders.fieldRestrictingGlass, 0)) .addElement('G', ofFrame(Materials.NaquadahAlloy)) diff --git a/src/main/java/com/newmaa/othtech/machine/OTEMegaNineInOne.java b/src/main/java/com/newmaa/othtech/machine/OTEMegaNineInOne.java index 615cef17..d88ef6bb 100644 --- a/src/main/java/com/newmaa/othtech/machine/OTEMegaNineInOne.java +++ b/src/main/java/com/newmaa/othtech/machine/OTEMegaNineInOne.java @@ -17,6 +17,7 @@ import java.util.Arrays; import java.util.Collection; +import java.util.List; import java.util.stream.Stream; import javax.annotation.Nonnull; @@ -59,6 +60,7 @@ import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.recipe.metadata.CompressionTierKey; import gregtech.api.render.TextureFactory; +import gregtech.api.structure.error.StructureError; import gregtech.api.util.GTRecipe; import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; @@ -302,10 +304,9 @@ public final void onScrewdriverRightClick(ForgeDirection side, EntityPlayer aPla } @Override - public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + public void checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack, List errors) { + if (!checkPiece(STRUCTURE_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet, errors)) return; repairMachine(); - return checkPiece(STRUCTURE_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet); - } @Override @@ -371,7 +372,7 @@ public IStructureDefinition getStructureDefinition() { Maintenance, Energy.or(ExoticEnergy)) .adder(OTEMegaNineInOne::addToMachineList) - .dot(1) + .hint(1) .casingIndex(getTextureIndex()) .buildAndChain(ModBlocks.blockCasings3Misc, 2)) .addElement('A', BorosilicateGlass.ofBoroGlass(3)) diff --git a/src/main/java/com/newmaa/othtech/machine/OTEMegaQFT.java b/src/main/java/com/newmaa/othtech/machine/OTEMegaQFT.java index c047969a..5a637302 100644 --- a/src/main/java/com/newmaa/othtech/machine/OTEMegaQFT.java +++ b/src/main/java/com/newmaa/othtech/machine/OTEMegaQFT.java @@ -44,6 +44,7 @@ import gregtech.api.recipe.RecipeMap; import gregtech.api.recipe.check.CheckRecipeResult; import gregtech.api.render.TextureFactory; +import gregtech.api.structure.error.StructureError; import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; import gtPlusPlus.core.block.ModBlocks; @@ -134,7 +135,7 @@ public void getWailaNBTData(EntityPlayerMP player, TileEntity tile, NBTTagCompou super.getWailaNBTData(player, tile, tag, world, x, y, z); final IGregTechTileEntity tileEntity = getBaseMetaTileEntity(); if (tileEntity != null) { - plier = GTUtility.formatNumbers(multiplier); + plier = GTUtility.formatShortenedLong(multiplier); tag.setString("multiplier", plier); } @@ -257,12 +258,10 @@ private void checkMultiplier() { } } - @Override - public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + public void checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack, List errors) { + if (!checkPiece(STRUCTURE_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet, errors)) return; repairMachine(); - return checkPiece(STRUCTURE_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet); - } @Override @@ -384,7 +383,7 @@ public IStructureDefinition getStructureDefinition() { buildHatchAdder(OTEMegaQFT.class) .atLeast(Energy.or(ExoticEnergy), InputBus, OutputBus, InputHatch, OutputHatch, Muffler) .adder(OTEMegaQFT::addToMachineList) - .dot(1) + .hint(1) .casingIndex(1024 + 12) .buildAndChain(GregTechAPI.sBlockCasings8, 3)) .addElement('B', ofBlock(sBlockCasingsBA0, 10)) diff --git a/src/main/java/com/newmaa/othtech/machine/OTEMegaThermalCentrifuge.java b/src/main/java/com/newmaa/othtech/machine/OTEMegaThermalCentrifuge.java index 9fb5e684..69549808 100644 --- a/src/main/java/com/newmaa/othtech/machine/OTEMegaThermalCentrifuge.java +++ b/src/main/java/com/newmaa/othtech/machine/OTEMegaThermalCentrifuge.java @@ -5,6 +5,8 @@ import static gregtech.api.util.GTStructureUtility.buildHatchAdder; import static net.minecraft.util.StatCollector.translateToLocal; +import java.util.List; + import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; @@ -31,6 +33,7 @@ import gregtech.api.recipe.RecipeMaps; import gregtech.api.recipe.check.CheckRecipeResult; import gregtech.api.render.TextureFactory; +import gregtech.api.structure.error.StructureError; import gregtech.api.util.MultiblockTooltipBuilder; import gtPlusPlus.core.block.ModBlocks; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; @@ -121,9 +124,9 @@ public CheckRecipeResult process() { // ===================== Structure ===================== @Override - public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + public void checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack, List errors) { + if (!checkPiece(STRUCTURE_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet, errors)) return; repairMachine(); - return checkPiece(STRUCTURE_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet); } @Override @@ -174,7 +177,7 @@ public IStructureDefinition getStructureDefinition() { buildHatchAdder(OTEMegaThermalCentrifuge.class) .atLeast(Energy.or(ExoticEnergy), InputBus, OutputBus, InputHatch, OutputHatch, Muffler) .adder(OTEMegaThermalCentrifuge::addToMachineList) - .dot(1) + .hint(1) .casingIndex(TAE.GTPP_INDEX(16)) .buildAndChain(ofBlock(ModBlocks.blockCasings2Misc, 0))) diff --git a/src/main/java/com/newmaa/othtech/machine/OTEMiniActiveTransformer.java b/src/main/java/com/newmaa/othtech/machine/OTEMiniActiveTransformer.java index bb904fd8..37da00e5 100644 --- a/src/main/java/com/newmaa/othtech/machine/OTEMiniActiveTransformer.java +++ b/src/main/java/com/newmaa/othtech/machine/OTEMiniActiveTransformer.java @@ -7,6 +7,8 @@ import static gregtech.api.util.GTStructureUtility.buildHatchAdder; import static net.minecraft.util.StatCollector.translateToLocal; +import java.util.List; + import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; @@ -27,6 +29,7 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.recipe.check.CheckRecipeResult; import gregtech.api.recipe.check.SimpleCheckRecipeResult; +import gregtech.api.structure.error.StructureError; import gregtech.api.util.MultiblockTooltipBuilder; import tectech.thing.casing.BlockGTCasingsTT; import tectech.thing.casing.TTCasingsContainer; @@ -39,16 +42,16 @@ public class OTEMiniActiveTransformer extends OTHTTMultiMachineBaseEM private boolean grace = false; @Override - public boolean checkMachine_EM(IGregTechTileEntity iGregTechTileEntity, ItemStack itemStack) { + public void checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack, List errors) { + repairMachine(); casingCount = 0; - if (structureCheck_EM("main", 0, 1, 0) && casingCount >= 0) { + if (!checkPiece("main", 0, 1, 0, errors)) return; + if (checkPiece("main", 0, 1, 0, errors) && casingCount >= 0) { grace = true; - return true; } else if (grace) { grace = false; - return true; } - return false; + return; } @Override @@ -75,7 +78,7 @@ public void onFirstTick_EM(IGregTechTileEntity aBaseMetaTileEntity) { buildHatchAdder(OTEMiniActiveTransformer.class) .atLeast(Energy, HatchElement.EnergyMulti, Dynamo, HatchElement.DynamoMulti) .casingIndex(BlockGTCasingsTT.textureOffset) - .dot(1) + .hint(1) .buildAndChain(onElementPass(t -> t.casingCount++, ofBlock(TTCasingsContainer.sBlockCasingsTT, 0)))) .build(); @@ -198,7 +201,9 @@ public void onPreTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { @Override public void construct(ItemStack stackSize, boolean hintsOnly) { - structureBuild_EM("main", 0, 1, 0, stackSize, hintsOnly); + repairMachine(); + buildPiece("main", stackSize, hintsOnly, 0, 1, 0); + } @Override diff --git a/src/main/java/com/newmaa/othtech/machine/OTEMiniSteamNineInOne.java b/src/main/java/com/newmaa/othtech/machine/OTEMiniSteamNineInOne.java index ad8d10ea..76d50ba2 100644 --- a/src/main/java/com/newmaa/othtech/machine/OTEMiniSteamNineInOne.java +++ b/src/main/java/com/newmaa/othtech/machine/OTEMiniSteamNineInOne.java @@ -18,6 +18,7 @@ import java.util.Arrays; import java.util.Collection; +import java.util.List; import java.util.stream.Stream; import javax.annotation.Nonnull; @@ -53,6 +54,7 @@ import gregtech.api.recipe.check.CheckRecipeResult; import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.render.TextureFactory; +import gregtech.api.structure.error.StructureError; import gregtech.api.util.GTRecipe; import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; @@ -264,13 +266,11 @@ public int getTierRecipes() { } @Override - public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { - if (!checkPiece(STRUCTURE_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet)) return false; + public void checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack, List errors) { + if (!checkPiece(STRUCTURE_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet, errors)) return; if (mCountCasing >= 0 && checkHatches()) { updateHatchTexture(); - return true; } - return false; } @Override @@ -357,7 +357,7 @@ public IStructureDefinition getStructureDefinition() { 'H', ofChain( buildSteamInput(OTEMiniSteamNineInOne.class).casingIndex(10) - .dot(1) + .hint(1) .build(), buildHatchAdder(OTEMiniSteamNineInOne.class) .atLeast( @@ -369,7 +369,7 @@ public IStructureDefinition getStructureDefinition() { OutputBus, Muffler) .casingIndex(10) - .dot(1) + .hint(1) .buildAndChain(), ofBlock(sBlockCasings1, 10))) .build(); diff --git a/src/main/java/com/newmaa/othtech/machine/OTENQFuelGeneratorUniversal.java b/src/main/java/com/newmaa/othtech/machine/OTENQFuelGeneratorUniversal.java index e0d050f1..3b9bcfa0 100644 --- a/src/main/java/com/newmaa/othtech/machine/OTENQFuelGeneratorUniversal.java +++ b/src/main/java/com/newmaa/othtech/machine/OTENQFuelGeneratorUniversal.java @@ -56,6 +56,7 @@ import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.recipe.maps.FuelBackend; import gregtech.api.render.TextureFactory; +import gregtech.api.structure.error.StructureError; import gregtech.api.util.GTRecipe; import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; @@ -127,7 +128,7 @@ public void getWailaNBTData(EntityPlayerMP player, TileEntity tile, NBTTagCompou super.getWailaNBTData(player, tile, tag, world, x, y, z); final IGregTechTileEntity tileEntity = getBaseMetaTileEntity(); if (tileEntity != null) { - String bonus = GTUtility.formatNumbers(getPowerFlow()); + String bonus = GTUtility.formatShortenedLong(getPowerFlow()); tag.setString("bonus", bonus); tag.setBoolean("WM", isWirelessMode); tag.setString("costingWirelessEU", costingWirelessEU); @@ -261,7 +262,7 @@ protected CheckRecipeResult processFuel(ArrayList tFluids, RecipeMap .multiply(BigDecimal.valueOf(recipe.mDuration)) .divide(BigDecimal.valueOf(100), 0, RoundingMode.DOWN) .toBigInteger(); - costingWirelessEU = GTUtility.formatNumbers(costingWirelessEUTemp); + costingWirelessEU = GTUtility.scientificFormat(costingWirelessEUTemp); if (!addEUToGlobalEnergyMap(ownerUUID, costingWirelessEUTemp)) { return CheckRecipeResultRegistry.INTERNAL_ERROR; } @@ -410,17 +411,24 @@ public void consumeAllLiquid(FluidStack liquid, List input) { } @Override - public boolean checkMachine_EM(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + public void checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack, List errors) { for (final MTEHatchInput tHatch : validMTEList(mInputHatches)) { if (tHatch instanceof MTEHatchInputME) { - return false; + return; } } if (this.pipeTier != 2) { this.isWirelessMode = false; } + checkPiece(mName, 2, 2, 0, errors); + repairMachine(); + } + + @Override + public void construct(ItemStack stackSize, boolean hintsOnly) { + repairMachine(); + buildPiece(mName, stackSize, hintsOnly, 2, 2, 0); - return structureCheck_EM(mName, 2, 2, 0); } protected final List mMiddleInputHatches = new ArrayList<>(); @@ -445,11 +453,6 @@ public void endRecipeProcessing() { } } - @Override - public void construct(ItemStack stackSize, boolean hintsOnly) { - structureBuild_EM(mName, 2, 2, 0, stackSize, hintsOnly); - } - @Override public int survivalConstruct(ItemStack stackSize, int elementBudget, ISurvivalBuildEnvironment env) { if (mMachine) return -1; @@ -482,21 +485,21 @@ public IStructureDefinition getStructure_EM() { 'M', buildHatchAdder(OTENQFuelGeneratorUniversal.class).atLeast(Muffler) .adder(OTENQFuelGeneratorUniversal::addToMachineList) - .dot(2) + .hint(2) .casingIndex(((BlockCasings8) sBlockCasings8).getTextureIndex(10)) .buildAndChain(sBlockCasings8, 10)) .addElement( 'S', buildHatchAdder(OTENQFuelGeneratorUniversal.class).atLeast(InputHatch, OutputHatch) .adder(OTENQFuelGeneratorUniversal::addToMachineList) - .dot(3) + .hint(3) .casingIndex(((BlockCasings8) sBlockCasings8).getTextureIndex(10)) .buildAndChain(sBlockCasings8, 10)) .addElement( 'E', buildHatchAdder(OTENQFuelGeneratorUniversal.class).atLeast(Dynamo.or(DynamoMulti)) .adder(OTENQFuelGeneratorUniversal::addToMachineList) - .dot(4) + .hint(4) .casingIndex(((BlockCasings8) sBlockCasings8).getTextureIndex(10)) .buildAndChain(sBlockCasings8, 10)) .addElement('P', withChannel("pipe", ofBlocksTiered((block, meta) -> { diff --git a/src/main/java/com/newmaa/othtech/machine/OTESINOPEC.java b/src/main/java/com/newmaa/othtech/machine/OTESINOPEC.java index b0ac6ade..358249df 100644 --- a/src/main/java/com/newmaa/othtech/machine/OTESINOPEC.java +++ b/src/main/java/com/newmaa/othtech/machine/OTESINOPEC.java @@ -55,6 +55,7 @@ import gregtech.api.recipe.RecipeMap; import gregtech.api.recipe.check.CheckRecipeResult; import gregtech.api.render.TextureFactory; +import gregtech.api.structure.error.StructureError; import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; import mcp.mobius.waila.api.IWailaConfigHandler; @@ -174,13 +175,11 @@ public CheckRecipeResult process() { } @Override - public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + public void checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack, List errors) { updatetier(); repairMachine(); coilLevel = HeatingCoilLevel.None; - - return checkPiece(STRUCTURE_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet); - + checkPiece(STRUCTURE_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet, errors); } @NotNull @@ -259,14 +258,14 @@ public IStructureDefinition getStructureDefinition() { buildHatchAdder(OTESINOPEC.class) .atLeast(Energy.or(ExoticEnergy), InputBus, OutputBus, InputHatch, OutputHatch) .adder(OTESINOPEC::addToMachineList) - .dot(1) + .hint(1) .casingIndex(48) .buildAndChain(sBlockCasings4, 0)) .addElement( 'O', buildHatchAdder(OTESINOPEC.class).atLeast(Muffler) .adder(OTESINOPEC::addToMachineList) - .dot(2) + .hint(2) .casingIndex(48) .buildAndChain(sBlockCasings4, 0)) .build(); diff --git a/src/main/java/com/newmaa/othtech/machine/OTESunFactory.java b/src/main/java/com/newmaa/othtech/machine/OTESunFactory.java index 9128d22a..775a8a13 100644 --- a/src/main/java/com/newmaa/othtech/machine/OTESunFactory.java +++ b/src/main/java/com/newmaa/othtech/machine/OTESunFactory.java @@ -1,5 +1,6 @@ package com.newmaa.othtech.machine; +import static com.gtnewhorizon.gtnhlib.util.numberformatting.NumberFormatUtil.formatNumber; import static com.gtnewhorizon.structurelib.structure.StructureUtility.*; import static com.newmaa.othtech.Config.is_Enqing_Song_Play; import static com.newmaa.othtech.utils.Utils.metaItemEqual; @@ -51,6 +52,7 @@ import gregtech.api.recipe.check.CheckRecipeResult; import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.render.TextureFactory; +import gregtech.api.structure.error.StructureError; import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; import gregtech.api.util.shutdown.ShutDownReason; @@ -201,7 +203,7 @@ public void getWailaNBTData(EntityPlayerMP player, TileEntity tile, NBTTagCompou super.getWailaNBTData(player, tile, tag, world, x, y, z); final IGregTechTileEntity tileEntity = getBaseMetaTileEntity(); if (tileEntity != null) { - BYDS = GTUtility.formatNumbers(getSpeedBonus()); + BYDS = formatNumber(getSpeedBonus()); tag.setString("speedBonus", BYDS); } @@ -323,10 +325,9 @@ private void getBeeyonds() { } @Override - public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + public void checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack, List errors) { + if (!checkPiece(STRUCTURE_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet, errors)) return; repairMachine(); - return checkPiece(STRUCTURE_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet); - } @Override @@ -416,7 +417,7 @@ public IStructureDefinition getStructureDefinition() { buildHatchAdder(OTESunFactory.class) .atLeast(Energy.or(ExoticEnergy), InputBus, OutputBus, InputHatch, OutputHatch) .adder(OTESunFactory::addToMachineList) - .dot(1) + .hint(1) .casingIndex(1024 + 12) .buildAndChain(sBlockCasingsTT, 12)) .build(); diff --git a/src/main/java/com/newmaa/othtech/machine/OTETangShanSteelFactory.java b/src/main/java/com/newmaa/othtech/machine/OTETangShanSteelFactory.java index 3e20af99..a499b1e4 100644 --- a/src/main/java/com/newmaa/othtech/machine/OTETangShanSteelFactory.java +++ b/src/main/java/com/newmaa/othtech/machine/OTETangShanSteelFactory.java @@ -55,6 +55,7 @@ import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.recipe.check.SimpleCheckRecipeResult; import gregtech.api.render.TextureFactory; +import gregtech.api.structure.error.StructureError; import gregtech.api.util.GTRecipe; import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; @@ -233,7 +234,7 @@ public CheckRecipeResult checkProcessing() { BigInteger costingWirelessEUTemp = BigInteger.valueOf(processingLogic.getCalculatedEut()) .multiply(BigInteger.valueOf(processingLogic.getDuration())) .multiply(c.pow(2)); - costingWirelessEU = GTUtility.formatNumbers(costingWirelessEUTemp); + costingWirelessEU = GTUtility.scientificFormat(costingWirelessEUTemp); if (!addEUToGlobalEnergyMap(ownerUUID, costingWirelessEUTemp.multiply(NEGATIVE_ONE))) { return CheckRecipeResultRegistry.insufficientPower(costingWirelessEUTemp.longValue()); } @@ -270,11 +271,10 @@ private void flushOverclockParameter() { } @Override - public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { - repairMachine(); + public void checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack, List errors) { + if (!checkPiece(STRUCTURE_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet, errors)) return; coilLevel = HeatingCoilLevel.None; - return checkPiece(STRUCTURE_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet); - + repairMachine(); } @Override @@ -335,7 +335,7 @@ public IStructureDefinition getStructureDefinition() { buildHatchAdder(OTETangShanSteelFactory.class) .atLeast(Energy.or(ExoticEnergy), InputBus, OutputBus, InputHatch, OutputHatch) .adder(OTETangShanSteelFactory::addToMachineList) - .dot(1) + .hint(1) .casingIndex(((BlockCasings2) GregTechAPI.sBlockCasings2).getTextureIndex(0)) .buildAndChain(sBlockCasings2, 0)) .addElement('D', ofBlock(sBlockCasings2, 11)) @@ -383,7 +383,7 @@ public IStructureDefinition getStructureDefinition() { 'Y', buildHatchAdder(OTETangShanSteelFactory.class).atLeast(Muffler) .adder(OTETangShanSteelFactory::addToMachineList) - .dot(2) + .hint(2) .casingIndex(((BlockCasings2) GregTechAPI.sBlockCasings2).getTextureIndex(0)) .buildAndChain(sBlockCasings2, 0)) .addElement('Z', ofFrame(Materials.Steel)) diff --git a/src/main/java/com/newmaa/othtech/machine/OTETileEntityModulePumpT4.java b/src/main/java/com/newmaa/othtech/machine/OTETileEntityModulePumpT4.java index 91a3792f..24429aad 100644 --- a/src/main/java/com/newmaa/othtech/machine/OTETileEntityModulePumpT4.java +++ b/src/main/java/com/newmaa/othtech/machine/OTETileEntityModulePumpT4.java @@ -4,6 +4,7 @@ import static net.minecraft.util.StatCollector.translateToLocal; import java.util.ArrayList; +import java.util.List; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.item.ItemStack; @@ -22,15 +23,17 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.enums.Textures; +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.MTEHatchOutput; import gregtech.api.recipe.check.CheckRecipeResult; import gregtech.api.recipe.check.CheckRecipeResultRegistry; +import gregtech.api.structure.error.StructureError; import gregtech.api.util.MultiblockTooltipBuilder; import gregtech.api.util.ParallelHelper; -import gregtech.common.tileentities.machines.MTEHatchOutputME; +import gregtech.common.tileentities.machines.outputme.MTEHatchOutputME; import gtnhintergalactic.recipe.SpacePumpingRecipes; import gtnhintergalactic.tile.multi.elevator.TileEntitySpaceElevator; import gtnhintergalactic.tile.multi.elevatormodules.TileEntityModuleBase; @@ -109,8 +112,10 @@ public OTETileEntityModulePumpT4(String aName, int Tier, int tModuleTier, int tM if (!hasMeOutputHatch && !eSafeVoid) { for (MTEHatchOutput output : mOutputHatches) { if (output.mFluid != null && output.mFluid.getFluid() != null - && output.getLockedFluidName() != null - && output.getLockedFluidName() + && output.getLockedFluid() + .getName() != null + && output.getLockedFluid() + .getName() .equals( fluid.getFluid() .getName()) @@ -167,21 +172,18 @@ protected void parametersInstantiation_EM() { } @Override - public boolean checkMachine_EM(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { - boolean state = super.checkMachine_EM(aBaseMetaTileEntity, aStack); + public void checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack, List errors) { + super.checkMachine(aBaseMetaTileEntity, aStack, errors); hasMeOutputHatch = false; - if (state) { - for (MTEHatchOutput output : mOutputHatches) { - if (output instanceof MTEHatchOutputME) { - hasMeOutputHatch = true; - break; - } + for (MTEHatchOutput output : mOutputHatches) { + if (output instanceof MTEHatchOutputME) { + hasMeOutputHatch = true; + break; } } - return state; } - protected static Textures.BlockIcons.CustomIcon engraving; + protected static IIconContainer engraving; @Override public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, ForgeDirection side, ForgeDirection facing, @@ -201,7 +203,7 @@ public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, ForgeDirec @Override @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister aBlockIconRegister) { - engraving = new Textures.BlockIcons.CustomIcon("iconsets/OVERLAY_SIDE_PUMP_MODULE"); + engraving = Textures.BlockIcons.custom("iconsets/OVERLAY_SIDE_PUMP_MODULE"); super.registerIcons(aBlockIconRegister); } diff --git a/src/main/java/com/newmaa/othtech/machine/OTEWoodenFusionReactor.java b/src/main/java/com/newmaa/othtech/machine/OTEWoodenFusionReactor.java index b14e192a..56725826 100644 --- a/src/main/java/com/newmaa/othtech/machine/OTEWoodenFusionReactor.java +++ b/src/main/java/com/newmaa/othtech/machine/OTEWoodenFusionReactor.java @@ -22,6 +22,7 @@ import org.jetbrains.annotations.NotNull; +import com.gtnewhorizon.gtnhlib.util.numberformatting.NumberFormatUtil; import com.gtnewhorizon.structurelib.structure.IStructureDefinition; import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment; import com.gtnewhorizon.structurelib.structure.StructureDefinition; @@ -41,6 +42,7 @@ import gregtech.api.recipe.RecipeMap; import gregtech.api.recipe.check.CheckRecipeResult; import gregtech.api.render.TextureFactory; +import gregtech.api.structure.error.StructureError; import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; import mcp.mobius.waila.api.IWailaConfigHandler; @@ -85,9 +87,9 @@ public void getWailaNBTData(EntityPlayerMP player, TileEntity tile, NBTTagCompou super.getWailaNBTData(player, tile, tag, world, x, y, z); final IGregTechTileEntity tileEntity = getBaseMetaTileEntity(); if (tileEntity != null) { - String tier = GTUtility.formatNumbers(TierSteam); - String pla = GTUtility.formatNumbers(amountPlasma); - String bonus = GTUtility.formatNumbers(getSpeedBonus()); + String tier = GTUtility.formatShortenedLong(TierSteam); + String pla = GTUtility.formatShortenedLong(amountPlasma); + String bonus = NumberFormatUtil.formatNumber(getSpeedBonus()); tag.setString("Tier", tier); tag.setString("PlasmaAmount", pla); tag.setString("bonus", bonus); @@ -187,10 +189,9 @@ public void checkSteam() { } @Override - public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + public void checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack, List errors) { + if (!checkPiece(STRUCTURE_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet, errors)) return; repairMachine(); - return checkPiece(STRUCTURE_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet); - } @Override @@ -242,7 +243,7 @@ public IStructureDefinition getStructureDefinition() { 'D', buildHatchAdder(OTEWoodenFusionReactor.class).atLeast(InputHatch, OutputHatch) .adder(OTEWoodenFusionReactor::addToMachineList) - .dot(1) + .hint(1) .casingIndex(getTextureIndex()) .buildAndChain(Blocks.stonebrick, 0)) .addElement('A', ofBlock(Blocks.glass, 0)) diff --git a/src/main/java/com/newmaa/othtech/machine/hatch/OTEHatchRack.java b/src/main/java/com/newmaa/othtech/machine/hatch/OTEHatchRack.java index 7ba24c09..53abec15 100644 --- a/src/main/java/com/newmaa/othtech/machine/hatch/OTEHatchRack.java +++ b/src/main/java/com/newmaa/othtech/machine/hatch/OTEHatchRack.java @@ -18,13 +18,10 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraftforge.common.util.ForgeDirection; -import com.gtnewhorizons.modularui.api.math.Pos2d; -import com.gtnewhorizons.modularui.api.screen.ModularWindow; -import com.gtnewhorizons.modularui.api.screen.UIBuildContext; -import com.gtnewhorizons.modularui.common.internal.wrapper.BaseSlot; -import com.gtnewhorizons.modularui.common.widget.DrawableWidget; -import com.gtnewhorizons.modularui.common.widget.FakeSyncWidget; -import com.gtnewhorizons.modularui.common.widget.SlotWidget; +import com.cleanroommc.modularui.factory.PosGuiData; +import com.cleanroommc.modularui.screen.ModularPanel; +import com.cleanroommc.modularui.screen.UISettings; +import com.cleanroommc.modularui.value.sync.PanelSyncManager; import com.newmaa.othtech.common.OTHItemList; import com.newmaa.othtech.recipe.RecipesOTEFakeQuantumComputerData; @@ -33,28 +30,28 @@ import gregtech.api.enums.GTValues; import gregtech.api.enums.ItemList; import gregtech.api.enums.Textures; +import gregtech.api.interfaces.IIconContainer; import gregtech.api.interfaces.ITexture; -import gregtech.api.interfaces.modularui.IAddGregtechLogo; -import gregtech.api.interfaces.modularui.IAddUIWidgets; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.MTEHatch; +import gregtech.api.modularui2.GTGuiTheme; +import gregtech.api.modularui2.GTGuiThemes; import gregtech.api.render.TextureFactory; import gregtech.api.util.GTModHandler; import gregtech.mixin.interfaces.accessors.EntityPlayerMPAccessor; import tectech.TecTech; import tectech.loader.ConfigHandler; -import tectech.thing.gui.TecTechUITextures; import tectech.util.CommonValues; import tectech.util.TTUtility; /** * Created by Tec on 03.04.2017. */ -public class OTEHatchRack extends MTEHatch implements IAddGregtechLogo, IAddUIWidgets { +public class OTEHatchRack extends MTEHatch { - private static Textures.BlockIcons.CustomIcon EM_R; - private static Textures.BlockIcons.CustomIcon EM_R_ACTIVE; + private static IIconContainer EM_R; + private static IIconContainer EM_R_ACTIVE; private float overClock = 1, overVolt = 1; private static final Map componentBinds = new HashMap<>(); @@ -93,8 +90,8 @@ public void loadNBTData(NBTTagCompound aNBT) { @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister aBlockIconRegister) { super.registerIcons(aBlockIconRegister); - EM_R_ACTIVE = new Textures.BlockIcons.CustomIcon("iconsets/EM_RACK_ACTIVE"); - EM_R = new Textures.BlockIcons.CustomIcon("iconsets/EM_RACK"); + EM_R_ACTIVE = Textures.BlockIcons.custom("iconsets/EM_RACK_ACTIVE"); + EM_R = Textures.BlockIcons.custom("iconsets/EM_RACK"); } @Override @@ -127,21 +124,36 @@ public int getInventoryStackLimit() { return 1; } + public boolean isValidItem(ItemStack itemStack) { + return componentBinds.containsKey(TTUtility.getUniqueIdentifier(itemStack)); + } + + @Override + public boolean isItemValidForSlot(int index, ItemStack itemStack) { + return isValidItem(itemStack) && super.isItemValidForSlot(index, itemStack); + } + @Override public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, ItemStack aStack) { + if (aBaseMetaTileEntity.isActive()) { + return false; + } return side == aBaseMetaTileEntity.getFrontFacing(); } @Override public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, ItemStack aStack) { - return side == aBaseMetaTileEntity.getFrontFacing(); + if (aBaseMetaTileEntity.isActive()) { + return false; + } + return side == aBaseMetaTileEntity.getFrontFacing() && isValidItem(aStack); } @Override public int getSizeInventory() { - return mInventory.length; + return getBaseMetaTileEntity().isActive() ? 0 : mInventory.length; } @Override @@ -222,55 +234,25 @@ private int getInstalledComponentsCount() { return count; } + // region MUI2 GUI + @Override - public void addGregTechLogo(ModularWindow.Builder builder) { - builder.widget( - new DrawableWidget().setDrawable(TecTechUITextures.PICTURE_TECTECH_LOGO) - .setSize(18, 18) - .setPos(151, 63)); + protected boolean useMui2() { + return true; } @Override - public void addUIWidgets(ModularWindow.Builder builder, UIBuildContext buildContext) { - builder.widget( - new DrawableWidget().setDrawable(TecTechUITextures.PICTURE_HEAT_SINK) - .setPos(46, 17) - .setSize(84, 60)); - - Pos2d[] positions = new Pos2d[] { new Pos2d(68, 27), new Pos2d(90, 27), new Pos2d(68, 49), new Pos2d(90, 49), }; - for (int i = 0; i < positions.length; i++) { - builder.widget(new SlotWidget(new BaseSlot(inventoryHandler, i) { - - @Override - public int getSlotStackLimit() { - return 1; - } + protected GTGuiTheme getGuiTheme() { + return GTGuiThemes.TECTECH_STANDARD; + } - @Override - public boolean isEnabled() { - return !getBaseMetaTileEntity().isActive(); - } - }).setBackground(getGUITextureSet().getItemSlot(), TecTechUITextures.OVERLAY_SLOT_RACK) - .setPos(positions[i])); - - builder.widget( - new DrawableWidget().setDrawable(TecTechUITextures.BUTTON_STANDARD_LIGHT_16x16) - .setPos(152, 24) - .setSize(16, 16)) - .widget( - new DrawableWidget() - .setDrawable( - () -> getBaseMetaTileEntity().isActive() ? TecTechUITextures.OVERLAY_BUTTON_POWER_SWITCH_ON - : TecTechUITextures.OVERLAY_BUTTON_POWER_SWITCH_DISABLED) - .setPos(152, 24) - .setSize(16, 16)) - .widget( - new FakeSyncWidget.BooleanSyncer( - () -> getBaseMetaTileEntity().isActive(), - val -> getBaseMetaTileEntity().setActive(val))); - } + @Override + public ModularPanel buildUI(PosGuiData data, PanelSyncManager syncManager, UISettings uiSettings) { + return new OTEHatchRackGui(this).build(data, syncManager, uiSettings); } + // endregion + public static void run() { // 20k heat cap max! new RackComponent(ItemList.Circuit_Crystalprocessor.get(1), 60, 56, -1f, true); // IV @@ -302,9 +284,25 @@ public static void run() { // 20k heat cap max! new RackComponent(ItemList.Circuit_OpticalComputer.get(1), 2400, 22, -1f, true); // UEV new RackComponent(ItemList.Circuit_OpticalMainframe.get(1), 2600, 20, -1f, true); // UIV - new RackComponent(getModItem(NewHorizonsCoreMod.ID, "item.PikoCircuit", 1), 2600, 12, -1f, true); // UMV - new RackComponent(getModItem(NewHorizonsCoreMod.ID, "item.QuantumCircuit", 1), 3200, 10, -1f, true); // UXV - new RackComponent(OTHItemList.NukeThrowable.get(1), 123123, 114514, -1f, true); + ItemStack pikoCircuit = getModItem(NewHorizonsCoreMod.ID, "PikoCircuit", 1); + if (pikoCircuit != null) { + new RackComponent(pikoCircuit, 2600, 12, -1f, true); // UMV + } + + ItemStack quantumCircuit = getModItem(NewHorizonsCoreMod.ID, "QuantumCircuit", 1); + if (quantumCircuit != null) { + new RackComponent(quantumCircuit, 3200, 10, -1f, true); // UXV + } + + ItemStack planckCircuit = getModItem(NewHorizonsCoreMod.ID, "PlanckCircuit", 1); + if (planckCircuit != null) { + new RackComponent(planckCircuit, 3600, 8, -1f, true); // MAX + } + + ItemStack nukeStack = OTHItemList.NukeThrowable.get(1); + if (nukeStack != null) { + new RackComponent(nukeStack, 123123, 114514, -1f, true); + } } if (OpenComputers.isModLoaded()) { @@ -313,9 +311,20 @@ public static void run() { // 20k heat cap max! new RackComponent(apuT3Stack, 1200, 42, -1f, true); // APU T3 } - new RackComponent(getModItem(OpenComputers.ID, "item", 1, 43), 800, 46, -1f, true); // CPU T3 - new RackComponent(getModItem(OpenComputers.ID, "item", 1, 10), 1000, 44, -1f, true); // GPU T3 - new RackComponent(getModItem(OpenComputers.ID, "item", 1, 103), 2400, 40, -1f, true); // APU Creative + ItemStack cpuT3Stack = getModItem(OpenComputers.ID, "item", 1, 43); + if (cpuT3Stack != null) { + new RackComponent(cpuT3Stack, 800, 46, -1f, true); // CPU T3 + } + + ItemStack gpuT3Stack = getModItem(OpenComputers.ID, "item", 1, 10); + if (gpuT3Stack != null) { + new RackComponent(gpuT3Stack, 1000, 44, -1f, true); // GPU T3 + } + + ItemStack apuCreativeStack = getModItem(OpenComputers.ID, "item", 1, 103); + if (apuCreativeStack != null) { + new RackComponent(apuCreativeStack, 2400, 40, -1f, true); // APU Creative + } } } @@ -328,6 +337,12 @@ public static class RackComponent implements Comparable { + + public OTEHatchRackGui(OTEHatchRack machine) { + super(machine); + } + + @Override + protected ParentWidget createContentSection(ModularPanel panel, PanelSyncManager syncManager) { + BooleanSyncValue isActiveSyncer = syncManager.findSyncHandler("isActive", BooleanSyncValue.class); + + ParentWidget parent = super.createContentSection(panel, syncManager); + + // Central decoration: heat sink picture + parent.child( + GTGuiTextures.TT_PICTURE_HEAT_SINK.asWidget() + .size(84, 60) + .center()); + + // Status indicators column (top-right) + Flow statusColumn = Flow.col() + .coverChildren() + .childPadding(2) + .topRel(0) + .rightRel(0); + + statusColumn.child( + new DynamicDrawable( + () -> isActiveSyncer.getBoolValue() ? GTGuiTextures.TT_OVERLAY_BUTTON_POWER_SWITCH_ON + : GTGuiTextures.TT_OVERLAY_BUTTON_POWER_SWITCH_DISABLED).asWidget() + .background(GTGuiTextures.BUTTON_STANDARD_LIGHT_16x16) + .size(16) + .tooltipAutoUpdate(true) + .tooltipDynamic( + t -> t.addLine( + translateToLocalFormatted( + "tt.gui.text.hatch.status", + translateToLocal( + isActiveSyncer.getBoolValue() ? "tt.gui.text.hatch.status.active" + : "tt.gui.text.hatch.status.inactive"))))); + + parent.child(statusColumn); + + // Input slots (2x2 grid) — blocked when machine is active + parent.child( + new ItemSlotGridBuilder(machine.inventoryHandler, syncManager).size(2) + .itemSlotSupplier(() -> new ItemSlot().backgroundOverlay(GTGuiTextures.TT_OVERLAY_SLOT_RACK)) + .filter(stack -> !isActiveSyncer.getBoolValue()) + .build() + .center() + .minElementMargin(2)); + + return parent; + } + + @Override + public void registerSyncValues(PanelSyncManager syncManager) { + super.registerSyncValues(syncManager); + syncManager.syncValue("isActive", new BooleanSyncValue(baseMetaTileEntity::isActive)); + } + + @Override + protected boolean supportsBottomRowOverlap() { + return true; + } +} diff --git a/src/main/java/com/newmaa/othtech/machine/machineclass/OTHMultiMachineBase.java b/src/main/java/com/newmaa/othtech/machine/machineclass/OTHMultiMachineBase.java index fedb3403..03fa8332 100644 --- a/src/main/java/com/newmaa/othtech/machine/machineclass/OTHMultiMachineBase.java +++ b/src/main/java/com/newmaa/othtech/machine/machineclass/OTHMultiMachineBase.java @@ -391,30 +391,30 @@ public String[] getInfoData() { return new String[] { /* 1 */ StatCollector.translateToLocal("GT5U.multiblock.Progress") + ": " + EnumChatFormatting.GREEN - + GTUtility.formatNumbers(mProgresstime / 20) + + mProgresstime / 20 + EnumChatFormatting.RESET + " s / " + EnumChatFormatting.YELLOW - + GTUtility.formatNumbers(mMaxProgresstime / 20) + + mMaxProgresstime / 20 + EnumChatFormatting.RESET + " s", /* 2 */ StatCollector.translateToLocal("GT5U.multiblock.energy") + ": " + EnumChatFormatting.GREEN - + GTUtility.formatNumbers(storedEnergy) + + storedEnergy + EnumChatFormatting.RESET + " EU / " + EnumChatFormatting.YELLOW - + GTUtility.formatNumbers(maxEnergy) + + maxEnergy + EnumChatFormatting.RESET + " EU", /* 3 */ StatCollector.translateToLocal("GT5U.multiblock.usage") + ": " + EnumChatFormatting.RED - + GTUtility.formatNumbers(getActualEnergyUsage()) + + getActualEnergyUsage() + EnumChatFormatting.RESET + " EU/t", /* 4 */ StatCollector.translateToLocal("GT5U.multiblock.mei") + ": " + EnumChatFormatting.YELLOW - + GTUtility.formatNumbers(voltage) + + voltage + EnumChatFormatting.RESET + " EU/t(*" + amps diff --git a/src/main/java/com/newmaa/othtech/machine/machineclass/OTHSteamMultiBase.java b/src/main/java/com/newmaa/othtech/machine/machineclass/OTHSteamMultiBase.java index 05142b49..980e30e1 100644 --- a/src/main/java/com/newmaa/othtech/machine/machineclass/OTHSteamMultiBase.java +++ b/src/main/java/com/newmaa/othtech/machine/machineclass/OTHSteamMultiBase.java @@ -3,26 +3,17 @@ import static gregtech.api.enums.GTValues.V; import static gregtech.api.metatileentity.BaseTileEntity.TOOLTIP_DELAY; import static gregtech.api.util.GTStructureUtility.buildHatchAdder; -import static gregtech.api.util.GTUtility.filterValidMTEs; -import static gregtech.api.util.GTUtility.formatNumbers; import static gregtech.api.util.GTUtility.validMTEList; -import static mcp.mobius.waila.api.SpecialChars.GREEN; -import static mcp.mobius.waila.api.SpecialChars.RED; -import static mcp.mobius.waila.api.SpecialChars.RESET; import static net.minecraft.util.StatCollector.translateToLocalFormatted; import java.util.ArrayList; -import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Optional; import javax.annotation.Nonnull; -import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.StatCollector; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; @@ -34,36 +25,27 @@ import com.gtnewhorizons.modularui.common.widget.DrawableWidget; import com.gtnewhorizons.modularui.common.widget.FakeSyncWidget; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import gregtech.GTMod; import gregtech.api.enums.Materials; import gregtech.api.enums.SteamVariant; -import gregtech.api.enums.StructureError; import gregtech.api.enums.Textures; import gregtech.api.gui.modularui.CircularGaugeDrawable; import gregtech.api.gui.modularui.GTUITextures; import gregtech.api.interfaces.IHatchElement; import gregtech.api.interfaces.ITexture; -import gregtech.api.interfaces.metatileentity.IItemLockable; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.interfaces.tileentity.IOverclockDescriptionProvider; import gregtech.api.logic.ProcessingLogic; import gregtech.api.metatileentity.implementations.MTEBasicMachine; -import gregtech.api.metatileentity.implementations.MTEHatch; import gregtech.api.metatileentity.implementations.MTEHatchInput; import gregtech.api.metatileentity.implementations.MTEHatchInputBus; -import gregtech.api.metatileentity.implementations.MTEHatchOutput; -import gregtech.api.metatileentity.implementations.MTEHatchOutputBus; -import gregtech.api.metatileentity.implementations.MTEHatchVoidBus; import gregtech.api.objects.overclockdescriber.OverclockDescriber; import gregtech.api.objects.overclockdescriber.SteamOverclockDescriber; import gregtech.api.recipe.RecipeMap; import gregtech.api.recipe.check.CheckRecipeResult; import gregtech.api.recipe.check.CheckRecipeResultRegistry; +import gregtech.api.structure.error.StructureError; import gregtech.api.util.GTUtility; -import gregtech.api.util.GTWaila; import gregtech.api.util.HatchElementBuilder; import gregtech.api.util.IGTHatchAdder; import gregtech.api.util.shutdown.ShutDownReasonRegistry; @@ -71,14 +53,10 @@ import gregtech.common.tileentities.machines.IDualInputInventory; import gregtech.common.tileentities.machines.IDualInputInventoryWithPattern; import gregtech.common.tileentities.machines.MTEHatchCraftingInputME; -import gregtech.common.tileentities.machines.MTEHatchOutputBusME; -import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.MTEHatchSteamBusInput; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.MTEHatchSteamBusOutput; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GTPPMultiBlockBase; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.MTEHatchCustomFluidBase; -import mcp.mobius.waila.api.IWailaConfigHandler; -import mcp.mobius.waila.api.IWailaDataAccessor; public abstract class OTHSteamMultiBase> extends GTPPMultiBlockBase implements IOverclockDescriptionProvider { @@ -205,38 +183,8 @@ public boolean onRunningTick(ItemStack aStack) { @Override public boolean addToMachineList(final IGregTechTileEntity aTileEntity, final int aBaseCasingIndex) { - if (aTileEntity == null) { - log("Invalid IGregTechTileEntity"); - return false; - } - final IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); - if (aMetaTileEntity == null) { - log("Invalid IMetaTileEntity"); - return false; - } - - // Use this to determine the correct value, then update the hatch texture after. - boolean aDidAdd = false; - - if (aMetaTileEntity instanceof MTEHatchCustomFluidBase) { - log("Adding Steam Input Hatch"); - aDidAdd = addToMachineListInternal(mSteamInputFluids, aMetaTileEntity, aBaseCasingIndex); - } else if (aMetaTileEntity instanceof MTEHatchSteamBusInput) { - log( - "Trying to set recipe map. Type: " - + (getRecipeMap() != null ? getRecipeMap().unlocalizedName : "Null")); - this.resetRecipeMapForHatch(aTileEntity, getRecipeMap()); - log("Adding Steam Input Bus"); - aDidAdd = addToMachineListInternal(mSteamInputs, aMetaTileEntity, aBaseCasingIndex); - } else if (aMetaTileEntity instanceof MTEHatchSteamBusOutput || aMetaTileEntity instanceof MTEHatchVoidBus) { - log("Adding Steam Output Bus"); - aDidAdd = addToMachineListInternal(mSteamOutputs, aMetaTileEntity, aBaseCasingIndex); - } else if (aMetaTileEntity instanceof MTEHatchInput) - aDidAdd = addToMachineListInternal(mInputHatches, aMetaTileEntity, aBaseCasingIndex); - else if (aMetaTileEntity instanceof MTEHatchOutput) - aDidAdd = addToMachineListInternal(mOutputHatches, aMetaTileEntity, aBaseCasingIndex); - - return aDidAdd; + return super.addToMachineList(aTileEntity, aBaseCasingIndex) + || addExoticEnergyInputToMachineList(aTileEntity, aBaseCasingIndex); } /* @@ -338,123 +286,6 @@ public ArrayList getStoredInputsForColor(Optional color) { return rList; } - @Override - public boolean addOutput(ItemStack aStack) { - if (GTUtility.isStackInvalid(aStack)) return false; - aStack = GTUtility.copyOrNull(aStack); - - // 先尝试普通输出总线 - final List validBusses1 = filterValidMTEs(mOutputBusses); - if (dumpItem(validBusses1, aStack, true, false)) return true; - if (dumpItem(validBusses1, aStack, false, false)) return true; - - // 再尝试蒸汽输出总线 - final List validBusses2 = filterValidMTEs(mSteamOutputs); - if (dumpItem(validBusses2, aStack, true, false)) return true; - if (dumpItem(validBusses2, aStack, false, false)) return true; - - // 最后尝试通用输出仓(如物品输出仓) - boolean outputSuccess = true; - final List filteredHatches = filterValidMTEs(mOutputHatches); - while (outputSuccess && aStack.stackSize > 0) { - outputSuccess = false; - ItemStack single = aStack.splitStack(1); - for (MTEHatchOutput tHatch : filteredHatches) { - if (!outputSuccess && tHatch.outputsItems()) { - if (tHatch.getBaseMetaTileEntity() - .addStackToSlot(1, single)) { - outputSuccess = true; - } - } - } - } - return outputSuccess; - } - - @Override - public ArrayList getStoredOutputs() { - ArrayList rList = new ArrayList<>(); - // 从普通输出总线获取 - for (MTEHatchOutputBus tHatch : validMTEList(mOutputBusses)) { - IGregTechTileEntity base = tHatch.getBaseMetaTileEntity(); - for (int i = base.getSizeInventory() - 1; i >= 0; i--) { - rList.add(base.getStackInSlot(i)); - } - } - // 从蒸汽输出总线获取 - for (MTEHatchSteamBusOutput tHatch : validMTEList(mSteamOutputs)) { - IGregTechTileEntity base = tHatch.getBaseMetaTileEntity(); - for (int i = base.getSizeInventory() - 1; i >= 0; i--) { - rList.add(base.getStackInSlot(i)); - } - } - return rList; - } - - @Override - public List getItemOutputSlots(ItemStack[] toOutput) { - List ret = new ArrayList<>(); - // 处理普通输出总线(包含ME和锁定逻辑) - for (final MTEHatch tBus : validMTEList(mOutputBusses)) { - if (!(tBus instanceof MTEHatchOutputBusME meBus)) { - final IInventory tBusInv = tBus.getBaseMetaTileEntity(); - for (int i = 0; i < tBusInv.getSizeInventory(); i++) { - final ItemStack stackInSlot = tBus.getStackInSlot(i); - if (stackInSlot == null && tBus instanceof IItemLockable lockable && lockable.isLocked()) { - // 锁定但空槽,用大小为0的假物品表示 - assert lockable.getLockedItem() != null; - ItemStack fake = lockable.getLockedItem() - .copy(); - fake.stackSize = 0; - ret.add(fake); - } else { - ret.add(stackInSlot); - } - } - } else { - if (meBus.isLocked() && meBus.canAcceptItem()) { - for (ItemStack stack : meBus.getLockedItems()) { - ItemStack fake = stack.copy(); - fake.stackSize = 65; // ME总线用65表示无限容量 - ret.add(fake); - } - } - } - } - // 处理蒸汽输出总线(简单遍历槽位) - for (final MTEHatch tBus : validMTEList(mSteamOutputs)) { - final IInventory tBusInv = tBus.getBaseMetaTileEntity(); - for (int i = 0; i < tBusInv.getSizeInventory(); i++) { - ret.add(tBus.getStackInSlot(i)); - } - } - return ret; - } - - @Override - public List getVoidOutputSlots() { - List ret = new ArrayList<>(); - // 从普通输出总线中查找虚空总线 - for (final MTEHatch tBus : validMTEList(mOutputBusses)) { - if (tBus instanceof MTEHatchVoidBus vBus && vBus.isLocked()) { - for (ItemStack lockedItem : vBus.getLockedItems()) { - if (lockedItem == null) continue; - ret.add(lockedItem.copy()); - } - } - } - // 从蒸汽输出总线中查找虚空总线 - for (final MTEHatch tBus : validMTEList(mSteamOutputs)) { - if (tBus instanceof MTEHatchVoidBus vBus && vBus.isLocked()) { - for (ItemStack lockedItem : vBus.getLockedItems()) { - if (lockedItem == null) continue; - ret.add(lockedItem.copy()); - } - } - } - return ret; - } - @Override public void updateSlots() { for (MTEHatchCustomFluidBase tHatch : validMTEList(mSteamInputFluids)) tHatch.updateSlots(); @@ -600,30 +431,6 @@ public CheckRecipeResult doCheckRecipe() { return result; } - @Override - protected void validateStructure(Collection errors, NBTTagCompound context) { - super.validateStructure(errors, context); - - if (mSteamInputFluids.isEmpty()) { - errors.add(StructureError.MISSING_STEAM_HATCH); - } - } - - @Override - @SideOnly(Side.CLIENT) - protected void localizeStructureErrors(Collection errors, NBTTagCompound context, - List lines) { - super.localizeStructureErrors(errors, context, lines); - - if (errors.contains(StructureError.MISSING_STEAM_HATCH)) { - lines.add( - StatCollector.translateToLocalFormatted( - "GT5U.gui.missing_hatch", - GregtechItemList.Hatch_Input_Steam.get(1) - .getDisplayName())); - } - } - @Override public boolean resetRecipeMapForAllInputHatches(RecipeMap aMap) { boolean ret = super.resetRecipeMapForAllInputHatches(aMap); @@ -669,62 +476,61 @@ public void addUIWidgets(ModularWindow.Builder builder, UIBuildContext buildCont .setSize(18, 4)); } - @Override - public void getWailaBody(ItemStack itemStack, List currentTip, IWailaDataAccessor accessor, - IWailaConfigHandler config) { - final NBTTagCompound tag = accessor.getNBTData(); - - if (tag.getBoolean("incompleteStructure")) { - currentTip - .add(RED + StatCollector.translateToLocalFormatted("GT5U.waila.multiblock.status.incomplete") + RESET); - } - String efficiency = RESET + StatCollector - .translateToLocalFormatted("GT5U.waila.multiblock.status.efficiency", tag.getFloat("efficiency")); - if (tag.getBoolean("hasProblems")) { - currentTip - .add(RED + StatCollector.translateToLocal("GT5U.waila.multiblock.status.has_problem") + efficiency); - } else if (!tag.getBoolean("incompleteStructure")) { - currentTip - .add(GREEN + StatCollector.translateToLocal("GT5U.waila.multiblock.status.running_fine") + efficiency); - } - - boolean isActive = tag.getBoolean("isActive"); - if (isActive) { - long actualEnergyUsage = tag.getLong("energyUsage"); - if (actualEnergyUsage > 0) { - currentTip.add( - StatCollector - .translateToLocalFormatted("GTPP.waila.steam.use", formatNumbers(actualEnergyUsage * 20))); - } - } - currentTip.add( - GTWaila.getMachineProgressString( - isActive, - tag.getBoolean("isAllowedToWork"), - tag.getInteger("maxProgress"), - tag.getInteger("progress"))); - // Show ns on the tooltip - if (GTMod.proxy.wailaAverageNS && tag.hasKey("averageNS")) { - int tAverageTime = tag.getInteger("averageNS"); - currentTip.add( - StatCollector - .translateToLocalFormatted("GT5U.waila.multiblock.status.cpu_load", formatNumbers(tAverageTime))); - } - super.getMTEWailaBody(itemStack, currentTip, accessor, config); - } - - protected static String getSteamTierTextForWaila(NBTTagCompound tag) { - int tierMachine = tag.getInteger("tierMachine"); - String tierMachineText; - if (tierMachine == 1) { - tierMachineText = "Basic"; - } else if (tierMachine == 2) { - tierMachineText = "High Pressure"; - } else { - tierMachineText = String.valueOf(tierMachine); - } - return tierMachineText; - } + /* + * @Override + * public void getWailaBody(ItemStack itemStack, List currentTip, IWailaDataAccessor accessor, + * IWailaConfigHandler config) { + * final NBTTagCompound tag = accessor.getNBTData(); + * if (tag.getBoolean("incompleteStructure")) { + * currentTip + * .add(RED + StatCollector.translateToLocalFormatted("GT5U.waila.multiblock.status.incomplete") + RESET); + * } + * String efficiency = RESET + StatCollector + * .translateToLocalFormatted("GT5U.waila.multiblock.status.efficiency", tag.getFloat("efficiency")); + * if (tag.getBoolean("hasProblems")) { + * currentTip + * .add(RED + StatCollector.translateToLocal("GT5U.waila.multiblock.status.has_problem") + efficiency); + * } else if (!tag.getBoolean("incompleteStructure")) { + * currentTip + * .add(GREEN + StatCollector.translateToLocal("GT5U.waila.multiblock.status.running_fine") + efficiency); + * } + * boolean isActive = tag.getBoolean("isActive"); + * if (isActive) { + * long actualEnergyUsage = tag.getLong("energyUsage"); + * if (actualEnergyUsage > 0) { + * currentTip.add( + * StatCollector + * .translateToLocalFormatted("GTPP.waila.steam.use", formatNumbers(actualEnergyUsage * 20))); + * } + * } + * currentTip.add( + * GTWaila.getMachineProgressString( + * isActive, + * tag.getBoolean("isAllowedToWork"), + * tag.getInteger("maxProgress"), + * tag.getInteger("progress"))); + * // Show ns on the tooltip + * if (GTMod.proxy.wailaAverageNS && tag.hasKey("averageNS")) { + * int tAverageTime = tag.getInteger("averageNS"); + * currentTip.add( + * StatCollector + * .translateToLocalFormatted("GT5U.waila.multiblock.status.cpu_load", formatNumbers(tAverageTime))); + * } + * super.getMTEWailaBody(itemStack, currentTip, accessor, config); + * } + * protected static String getSteamTierTextForWaila(NBTTagCompound tag) { + * int tierMachine = tag.getInteger("tierMachine"); + * String tierMachineText; + * if (tierMachine == 1) { + * tierMachineText = "Basic"; + * } else if (tierMachine == 2) { + * tierMachineText = "High Pressure"; + * } else { + * tierMachineText = String.valueOf(tierMachine); + * } + * return tierMachineText; + * } + */ protected static > HatchElementBuilder buildSteamInput(Class typeToken) { return buildHatchAdder(typeToken).adder(OTHSteamMultiBase::addToMachineList) @@ -783,4 +589,9 @@ public boolean getDefaultInputSeparationMode() { public boolean getDefaultHasMaintenanceChecks() { return false; } + + @Override + public void checkHatch(List errors) { + super.checkHatch(errors); + } } diff --git a/src/main/java/com/newmaa/othtech/machine/machineclass/OTHTTMultiMachineBaseEM.java b/src/main/java/com/newmaa/othtech/machine/machineclass/OTHTTMultiMachineBaseEM.java index a2f90019..f689cf48 100644 --- a/src/main/java/com/newmaa/othtech/machine/machineclass/OTHTTMultiMachineBaseEM.java +++ b/src/main/java/com/newmaa/othtech/machine/machineclass/OTHTTMultiMachineBaseEM.java @@ -2,8 +2,8 @@ import static gregtech.api.enums.GTValues.V; -import com.brandon3055.brandonscore.common.handlers.ProcessHandler; import com.brandon3055.draconicevolution.common.tileentities.multiblocktiles.reactor.ReactorExplosion; +import com.brandon3055.draconicevolution.common.utils.handlers.ProcessHandler; import com.newmaa.othtech.Config; import gregtech.api.interfaces.ISecondaryDescribable; diff --git a/src/main/java/com/newmaa/othtech/mixin/BWRecipeLoadMixin.java b/src/main/java/com/newmaa/othtech/mixin/BWRecipeLoadMixin.java index 2cbd49ca..eaef4e38 100644 --- a/src/main/java/com/newmaa/othtech/mixin/BWRecipeLoadMixin.java +++ b/src/main/java/com/newmaa/othtech/mixin/BWRecipeLoadMixin.java @@ -14,7 +14,7 @@ @Mixin(value = CircuitImprintLoader.class, remap = false) public class BWRecipeLoadMixin { - @Inject(method = "run", at = @At("TAIL")) + @Inject(method = "makeCraftingRecipes", at = @At("TAIL")) private static void oth$methodHandle(CallbackInfo ci) { MegaCAL.getBackend() .clearRecipes(); diff --git a/src/main/java/com/newmaa/othtech/recipe/RecipeLoader.java b/src/main/java/com/newmaa/othtech/recipe/RecipeLoader.java index 7b944a67..1ed0be73 100644 --- a/src/main/java/com/newmaa/othtech/recipe/RecipeLoader.java +++ b/src/main/java/com/newmaa/othtech/recipe/RecipeLoader.java @@ -4,6 +4,7 @@ import net.minecraftforge.fluids.FluidRegistry; +import com.newmaa.othtech.OTHTechnology; import com.newmaa.othtech.machine.OTEMiniSteamNineInOne; import com.newmaa.othtech.utils.modsEnum; @@ -23,9 +24,13 @@ public static void loadRecipes() { new RecipesTangshanSteelFactory(), new RecipesSunFactoryEnqing(), new RecipesEpicCokeOvenFake(), new RecipesWoodenFusionReactor(), new RecipesMISA(), new RecipesNaquadah(), new RecipesEIO(), new RecipesEXH(), new RecipesNewWetware(), new RecipesAntimonia(), new RecipesNASA() }; + OTHTechnology.LOG.info("RecipeLoader: Loading OTEMiniSteamNineInOne recipes..."); OTEMiniSteamNineInOne.loadRecipes(); + OTHTechnology.LOG.info("RecipeLoader: OTEMiniSteamNineInOne done."); if (!modsEnum.TwistSpaceTechnology.isModLoaded()) { + OTHTechnology.LOG.info("RecipeLoader: Loading RecipesCopiedFromTST..."); new RecipesCopiedFromTST().loadRecipes(); + OTHTechnology.LOG.info("RecipeLoader: RecipesCopiedFromTST done."); } if (modsEnum.NHUtilities.isModLoaded() && is_EggMachine_Recipes_For_NHU) { new RecipesDE().loadRecipes(); @@ -46,8 +51,13 @@ public static void loadRecipes() { .addTo(RecipeMaps.assemblerRecipes); } + int idx = 0; for (IRecipePool recipePool : recipePools) { + String poolName = recipePool.getClass() + .getSimpleName(); + OTHTechnology.LOG.info("RecipeLoader: [{}/{}] Loading {}...", ++idx, recipePools.length, poolName); recipePool.loadRecipes(); + OTHTechnology.LOG.info("RecipeLoader: [{}/{}] {} done.", idx, recipePools.length, poolName); } } diff --git a/src/main/java/com/newmaa/othtech/recipe/RecipesCircuit.java b/src/main/java/com/newmaa/othtech/recipe/RecipesCircuit.java index bc6ba7a6..c061df14 100644 --- a/src/main/java/com/newmaa/othtech/recipe/RecipesCircuit.java +++ b/src/main/java/com/newmaa/othtech/recipe/RecipesCircuit.java @@ -15,7 +15,6 @@ import gregtech.api.enums.GTValues; import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; -import gregtech.api.enums.MaterialsUEVplus; import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.TierEU; import gregtech.api.recipe.RecipeMap; @@ -48,10 +47,10 @@ public void loadRecipes() { GTValues.RA.stdBuilder() .itemOutputs(OTHItemList.boardTransM.get(2)) .itemInputs( - GTOreDictUnificator.get(OrePrefixes.plateDense, MaterialsUEVplus.SpaceTime, 16), - GTOreDictUnificator.get(OrePrefixes.nanite, MaterialsUEVplus.TranscendentMetal, 16), + GTOreDictUnificator.get(OrePrefixes.plateDense, Materials.SpaceTime, 16), + GTOreDictUnificator.get(OrePrefixes.nanite, Materials.TranscendentMetal, 16), CustomItemList.SpacetimeCompressionFieldGeneratorTier0.get(2)) - .fluidInputs(MaterialsUEVplus.ExcitedDTSC.getFluid(2000)) + .fluidInputs(Materials.ExcitedDTSC.getFluid(2000)) .duration(40 * 20) .eut(eut) .addTo(MQFT); @@ -62,7 +61,7 @@ public void loadRecipes() { GTOreDictUnificator.get(OrePrefixes.plateDense, Materials.Infinity, 16), GTOreDictUnificator.get(OrePrefixes.circuit, Materials.UMV, 4), CustomItemList.StabilisationFieldGeneratorTier0.get(2)) - .fluidInputs(MaterialsUEVplus.ExcitedDTSC.getFluid(2000)) + .fluidInputs(Materials.ExcitedDTSC.getFluid(2000)) .duration(40 * 20) .eut(eut) .addTo(MQFT); @@ -70,13 +69,13 @@ public void loadRecipes() { GTValues.RA.stdBuilder() .itemOutputs(OTHItemList.transTransM.get(4)) .itemInputs( - GTOreDictUnificator.get(OrePrefixes.plateDense, MaterialsUEVplus.Universium, 4), - GTOreDictUnificator.get(OrePrefixes.circuit, Materials.Cosmic, 2), - GTOreDictUnificator.get(OrePrefixes.nanite, MaterialsUEVplus.TranscendentMetal, 64), + GTOreDictUnificator.get(OrePrefixes.plateDense, Materials.Universium, 4), + GTOreDictUnificator.get(OrePrefixes.circuit, Materials.MAX, 2), + GTOreDictUnificator.get(OrePrefixes.nanite, Materials.TranscendentMetal, 64), CustomItemList.SpacetimeCompressionFieldGeneratorTier6.get(4), ItemList.Field_Generator_UXV.get(1), ItemList.Sensor_UXV.get(1)) - .fluidInputs(MaterialsUEVplus.ExcitedDTSC.getFluid(4000)) + .fluidInputs(Materials.ExcitedDTSC.getFluid(4000)) .duration(80 * 20) .eut(eut) .addTo(MQFT); @@ -84,12 +83,12 @@ public void loadRecipes() { GTValues.RA.stdBuilder() .itemOutputs(OTHItemList.induTransM.get(4)) .itemInputs( - GTOreDictUnificator.get(OrePrefixes.plateDense, MaterialsUEVplus.MagMatter, 4), - GTOreDictUnificator.get(OrePrefixes.circuit, Materials.Cosmic, 2), + GTOreDictUnificator.get(OrePrefixes.plateDense, Materials.MagMatter, 4), + GTOreDictUnificator.get(OrePrefixes.circuit, Materials.MAX, 2), OTHItemList.beeISAM.get(64), OTHItemList.leCasimirM.get(16), getAstralArray(1)) - .fluidInputs(MaterialsUEVplus.ExcitedDTSC.getFluid(4000)) + .fluidInputs(Materials.ExcitedDTSC.getFluid(4000)) .duration(80 * 20) .eut(eut) .addTo(MQFT); @@ -97,13 +96,13 @@ public void loadRecipes() { GTValues.RA.stdBuilder() .itemOutputs(OTHItemList.resTransM.get(4)) .itemInputs( - GTOreDictUnificator.get(OrePrefixes.plateDense, MaterialsUEVplus.SpaceTime, 16), - GTOreDictUnificator.get(OrePrefixes.circuit, Materials.Exotic, 4), + GTOreDictUnificator.get(OrePrefixes.plateDense, Materials.SpaceTime, 16), + GTOreDictUnificator.get(OrePrefixes.circuit, Materials.UXV, 4), GTOreDictUnificator.get(OrePrefixes.nanite, Materials.Glowstone, 64), GTOreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorUMV, 64), GTOreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorUMV, 64), ItemList.Field_Generator_UMV.get(1)) - .fluidInputs(MaterialsUEVplus.ExcitedDTSC.getFluid(4000)) + .fluidInputs(Materials.ExcitedDTSC.getFluid(4000)) .duration(80 * 20) .eut(eut) .addTo(MQFT); @@ -111,12 +110,12 @@ public void loadRecipes() { GTValues.RA.stdBuilder() .itemOutputs(OTHItemList.dioTransM.get(4)) .itemInputs( - GTOreDictUnificator.get(OrePrefixes.circuit, Materials.Cosmic, 2), + GTOreDictUnificator.get(OrePrefixes.circuit, Materials.MAX, 2), OTHItemList.beeISAM.get(16), CustomItemList.TimeAccelerationFieldGeneratorTier5.get(4), ItemList.Field_Generator_UXV.get(1), ItemList.Emitter_UXV.get(2)) - .fluidInputs(MaterialsUEVplus.ExcitedDTSC.getFluid(4000)) + .fluidInputs(Materials.ExcitedDTSC.getFluid(4000)) .duration(80 * 20) .eut(eut) .addTo(MQFT); @@ -127,8 +126,8 @@ public void loadRecipes() { OTHItemList.finCasimirM.get(16), OTHItemList.beeISAM.get(16), GTOreDictUnificator.get(OrePrefixes.circuit, Materials.UIV, 32), - GTOreDictUnificator.get(OrePrefixes.nanite, MaterialsUEVplus.Eternity, 16)) - .fluidInputs(MaterialsUEVplus.ExcitedDTSC.getFluid(4000), BWLiquids.Stars.getFluidOrGas(16 * 144)) + GTOreDictUnificator.get(OrePrefixes.nanite, Materials.Eternity, 16)) + .fluidInputs(Materials.ExcitedDTSC.getFluid(4000), BWLiquids.Stars.getFluidOrGas(16 * 144)) .duration(256 * 20) .eut(eut) .addTo(ISA); @@ -140,14 +139,13 @@ public void loadRecipes() { OTHItemList.beeISAM.get(4), OTHItemList.beeMagM.get(4), OTHItemList.boardCasimirM.get(8), - GTOreDictUnificator - .get(OrePrefixes.foil, MaterialsUEVplus.MagnetohydrodynamicallyConstrainedStarMatter, 32), - GTOreDictUnificator.get(OrePrefixes.foil, MaterialsUEVplus.TranscendentMetal, 48), - GTOreDictUnificator.get(OrePrefixes.foil, MaterialsUEVplus.TranscendentMetal, 48), - GTOreDictUnificator.get(OrePrefixes.foil, MaterialsUEVplus.MagMatter, 32), - GTOreDictUnificator.get(OrePrefixes.stick, MaterialsUEVplus.MagMatter, 4), + GTOreDictUnificator.get(OrePrefixes.foil, Materials.WhiteDwarfMatter, 32), + GTOreDictUnificator.get(OrePrefixes.foil, Materials.TranscendentMetal, 48), + GTOreDictUnificator.get(OrePrefixes.foil, Materials.TranscendentMetal, 48), + GTOreDictUnificator.get(OrePrefixes.foil, Materials.MagMatter, 32), + GTOreDictUnificator.get(OrePrefixes.stick, Materials.MagMatter, 4), CustomItemList.StabilisationFieldGeneratorTier5.get(2)) - .fluidInputs(MaterialsUEVplus.ExcitedDTSC.getFluid(256 * 144), BWLiquids.Stars.getFluidOrGas(12 * 144)) + .fluidInputs(Materials.ExcitedDTSC.getFluid(256 * 144), BWLiquids.Stars.getFluidOrGas(12 * 144)) .duration(256 * 20) .eut(eut) .addTo(ISA); @@ -155,17 +153,15 @@ public void loadRecipes() { GTValues.RA.stdBuilder() .itemOutputs(OTHItemList.boardCasimirM.get(16)) .itemInputs( - GTOreDictUnificator - .get(OrePrefixes.itemCasing, MaterialsUEVplus.MagnetohydrodynamicallyConstrainedStarMatter, 64), - GTOreDictUnificator - .get(OrePrefixes.wireFine, MaterialsUEVplus.MagnetohydrodynamicallyConstrainedStarMatter, 64)) + GTOreDictUnificator.get(OrePrefixes.itemCasing, Materials.WhiteDwarfMatter, 64), + GTOreDictUnificator.get(OrePrefixes.foil, Materials.WhiteDwarfMatter, 64)) .fluidInputs( - MaterialsUEVplus.ExcitedDTSC.getFluid(64 * 144), + Materials.ExcitedDTSC.getFluid(64 * 144), BWLiquids.Stars.getFluidOrGas(8 * 144), - MaterialsUEVplus.MagMatter.getMolten(64 * 144), - MaterialsUEVplus.MagnetohydrodynamicallyConstrainedStarMatter.getMolten(64 * 144), - MaterialsUEVplus.Universium.getMolten(64 * 144), - MaterialsUEVplus.SpaceTime.getMolten(64 * 144)) + Materials.MagMatter.getMolten(64 * 144), + Materials.WhiteDwarfMatter.getMolten(64 * 144), + Materials.Universium.getMolten(64 * 144), + Materials.SpaceTime.getMolten(64 * 144)) .duration(128 * 20) .eut(eut) .addTo(ISA); @@ -177,7 +173,7 @@ public void loadRecipes() { ItemList.Wireless_Hatch_Energy_UMV.get(16), ItemList.Wireless_Hatch_Energy_UMV.get(16), ItemList.Emitter_UMV.get(16)) - .fluidInputs(MaterialsUEVplus.ExcitedDTSC.getFluid(16 * 144), BWLiquids.Stars.getFluidOrGas(4 * 144)) + .fluidInputs(Materials.ExcitedDTSC.getFluid(16 * 144), BWLiquids.Stars.getFluidOrGas(4 * 144)) .duration(512 * 20) .eut(eut) .addTo(ISA); @@ -236,8 +232,7 @@ public void loadRecipes() { GTValues.RA.stdBuilder() .itemOutputs(ItemList.Circuit_TranscendentMainframe.get(1)) .itemInputs( - GTOreDictUnificator - .get(OrePrefixes.frameGt, MaterialsUEVplus.MagnetohydrodynamicallyConstrainedStarMatter, 2), + GTOreDictUnificator.get(OrePrefixes.frameGt, Materials.WhiteDwarfMatter, 2), ItemList.Circuit_TranscendentComputer.get(2), OTHItemList.induTransM.get(16), OTHItemList.dioTransM.get(16), @@ -257,8 +252,7 @@ public void loadRecipes() { GTUtility.getIntegratedCircuit(17), OTHItemList.capTransM.get(16), OTHItemList.energyHatchSpacetimeM.get(4), - GTOreDictUnificator - .get(OrePrefixes.wireFine, MaterialsUEVplus.MagnetohydrodynamicallyConstrainedStarMatter, 64)) + GTOreDictUnificator.get(OrePrefixes.foil, Materials.WhiteDwarfMatter, 64)) .fluidInputs(BWLiquids.Stars.getFluidOrGas(10 * 144)) .duration(64 * 20) .eut(TierEU.MAX) diff --git a/src/main/java/com/newmaa/othtech/recipe/RecipesComponentAssemblyLineRecipes.java b/src/main/java/com/newmaa/othtech/recipe/RecipesComponentAssemblyLineRecipes.java index 47ae0ae0..a33113c0 100644 --- a/src/main/java/com/newmaa/othtech/recipe/RecipesComponentAssemblyLineRecipes.java +++ b/src/main/java/com/newmaa/othtech/recipe/RecipesComponentAssemblyLineRecipes.java @@ -16,7 +16,6 @@ import gregtech.api.enums.GTValues; import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; -import gregtech.api.enums.MaterialsUEVplus; import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.TierEU; import gregtech.api.recipe.RecipeMap; @@ -42,15 +41,15 @@ public void loadRecipes() { .itemInputs( GTModHandler.getModItem("eternalsingularity", "combined_singularity", 48, 15), setStackSize(coil, 6 * 64), - getNanites(48, MaterialsUEVplus.Eternity)) + getNanites(48, Materials.Eternity)) .itemOutputs(ItemList.Electric_Motor_MAX.get(64)) .fluidInputs( Materials.SuperconductorUMVBase.getMolten(276480), Materials.SuperconductorUIVBase.getMolten(276480), BWLiquids.Void.getFluidOrGas(16000 * 48), BWLiquids.Stars.getFluidOrGas(16 * 48 * 144), - MaterialsUEVplus.MagMatter.getMolten(442368), - MaterialsUEVplus.Universium.getMolten(118368)) + Materials.MagMatter.getMolten(442368), + Materials.Universium.getMolten(118368)) .duration(5904 * 20) .specialValue(14) .eut(512000000) @@ -60,7 +59,7 @@ public void loadRecipes() { ItemList.Electric_Motor_MAX.get(48), setStackSize(CustomItemList.SpacetimeCompressionFieldGeneratorTier8.get(1), 64 + 32), setStackSize(coil, 6 * 64), - getNanites(48, MaterialsUEVplus.Eternity), + getNanites(48, Materials.Eternity), GTUtility.getIntegratedCircuit(3)) .itemOutputs(ItemList.Electric_Pump_MAX.get(64)) .fluidInputs( @@ -68,10 +67,10 @@ public void loadRecipes() { Materials.SuperconductorUIVBase.getMolten(276480), BWLiquids.Void.getFluidOrGas(16000 * 48), BWLiquids.Stars.getFluidOrGas(16 * 48 * 144), - MaterialsUEVplus.MagMatter.getMolten(331776), - MaterialsUEVplus.Universium.getMolten(290304), - MaterialsUEVplus.Eternity.getMolten(290304), - MaterialsUEVplus.BlackDwarfMatter.getMolten(995328)) + Materials.MagMatter.getMolten(331776), + Materials.Universium.getMolten(290304), + Materials.Eternity.getMolten(290304), + Materials.BlackDwarfMatter.getMolten(995328)) .duration(5904 * 20) .specialValue(14) .eut(512000000) @@ -80,7 +79,7 @@ public void loadRecipes() { .itemInputs( ItemList.Electric_Motor_MAX.get(48), setStackSize(coil, 6 * 64), - getNanites(48, MaterialsUEVplus.Eternity), + getNanites(48, Materials.Eternity), GTUtility.getIntegratedCircuit(2)) .itemOutputs(ItemList.Electric_Piston_MAX.get(64)) .fluidInputs( @@ -88,10 +87,10 @@ public void loadRecipes() { Materials.SuperconductorUIVBase.getMolten(276480), BWLiquids.Void.getFluidOrGas(16000 * 48), BWLiquids.Stars.getFluidOrGas(16 * 48 * 144), - MaterialsUEVplus.MagMatter.getMolten(297216), - MaterialsUEVplus.Universium.getMolten(165888), - MaterialsUEVplus.Eternity.getMolten(165888), - MaterialsUEVplus.BlackDwarfMatter.getMolten(995328)) + Materials.MagMatter.getMolten(297216), + Materials.Universium.getMolten(165888), + Materials.Eternity.getMolten(165888), + Materials.BlackDwarfMatter.getMolten(995328)) .duration(5904 * 20) .specialValue(14) @@ -102,7 +101,7 @@ public void loadRecipes() { setStackSize(ItemList.Electric_Motor_MAX.get(1), 96), setStackSize(coil, 6 * 64), setStackSize(CustomItemList.SpacetimeCompressionFieldGeneratorTier8.get(1), 64 + 32), - getNanites(48, MaterialsUEVplus.Eternity), + getNanites(48, Materials.Eternity), GTUtility.getIntegratedCircuit(5)) .itemOutputs(ItemList.Conveyor_Module_MAX.get(64)) .fluidInputs( @@ -110,10 +109,10 @@ public void loadRecipes() { Materials.SuperconductorUIVBase.getMolten(276480), BWLiquids.Void.getFluidOrGas(16000 * 48), BWLiquids.Stars.getFluidOrGas(16 * 48 * 144), - MaterialsUEVplus.MagMatter.getMolten(96768), - MaterialsUEVplus.Universium.getMolten(884736), - MaterialsUEVplus.BlackDwarfMatter.getMolten(884736), - MaterialsUEVplus.WhiteDwarfMatter.getMolten(884736)) + Materials.MagMatter.getMolten(96768), + Materials.Universium.getMolten(884736), + Materials.BlackDwarfMatter.getMolten(884736), + Materials.WhiteDwarfMatter.getMolten(884736)) .duration(5904 * 20) .specialValue(14) .eut(512000000) @@ -124,7 +123,7 @@ public void loadRecipes() { GTModHandler.getModItem("GoodGenerator", "circuitWrap", 12, 14), setStackSize(coil, 6 * 64), setStackSize(CustomItemList.StabilisationFieldGeneratorTier8.get(1), 96), - getNanites(48, MaterialsUEVplus.Eternity), + getNanites(48, Materials.Eternity), setStackSize(OTHItemList.glassSingularityM.get(1), 192), GTUtility.getIntegratedCircuit(6)) .itemOutputs(ItemList.Emitter_MAX.get(64)) @@ -133,8 +132,8 @@ public void loadRecipes() { new FluidStack(FluidRegistry.getFluidID("temporalfluid"), 3072000), BWLiquids.Void.getFluidOrGas(16000 * 48), BWLiquids.Stars.getFluidOrGas(16 * 48 * 144), - MaterialsUEVplus.MagMatter.getMolten(276480), - MaterialsUEVplus.Universium.getMolten(110592), + Materials.MagMatter.getMolten(276480), + Materials.Universium.getMolten(110592), MaterialsElements.STANDALONE.CHRONOMATIC_GLASS.getFluidStack(552960)) .duration(5904 * 20) .specialValue(14) @@ -144,10 +143,10 @@ public void loadRecipes() { .itemInputs( ItemList.Electric_Motor_MAX.get(48), GTModHandler.getModItem("GoodGenerator", "circuitWrap", 12, 14), - GTOreDictUnificator.get(OrePrefixes.frameGt, MaterialsUEVplus.Eternity, 48), + GTOreDictUnificator.get(OrePrefixes.frameGt, Materials.Eternity, 48), setStackSize(coil, 6 * 64), setStackSize(CustomItemList.StabilisationFieldGeneratorTier8.get(1), 96), - getNanites(64, MaterialsUEVplus.Eternity), + getNanites(64, Materials.Eternity), setStackSize(OTHItemList.glassSingularityM.get(1), 192), GTUtility.getIntegratedCircuit(7)) .itemOutputs(ItemList.Sensor_MAX.get(64)) @@ -156,8 +155,8 @@ public void loadRecipes() { new FluidStack(FluidRegistry.getFluidID("spatialfluid"), 3072000), BWLiquids.Void.getFluidOrGas(16000 * 48), BWLiquids.Stars.getFluidOrGas(16 * 48 * 144), - MaterialsUEVplus.MagMatter.getMolten(276480), - MaterialsUEVplus.Universium.getMolten(110592), + Materials.MagMatter.getMolten(276480), + Materials.Universium.getMolten(110592), MaterialsElements.STANDALONE.CHRONOMATIC_GLASS.getFluidStack(552960)) .duration(5904 * 20) .specialValue(14) @@ -178,7 +177,7 @@ public void loadRecipes() { new FluidStack(FluidRegistry.getFluidID("spatialfluid"), 3072000), BWLiquids.Void.getFluidOrGas(16000 * 48), BWLiquids.Stars.getFluidOrGas(16 * 48 * 144), - MaterialsUEVplus.MagMatter.getMolten(193536)) + Materials.MagMatter.getMolten(193536)) .duration(5904 * 20) .specialValue(14) .eut(512000000) @@ -187,20 +186,20 @@ public void loadRecipes() { .itemInputs( setStackSize(ItemList.Emitter_MAX.get(1), 64 * 3), getAstralArray(50), - GTOreDictUnificator.get(OrePrefixes.frameGt, MaterialsUEVplus.Eternity, 48), + GTOreDictUnificator.get(OrePrefixes.frameGt, Materials.Eternity, 48), GTModHandler.getModItem("GoodGenerator", "circuitWrap", 24, 14), - getNanites(64, MaterialsUEVplus.Eternity), + getNanites(64, Materials.Eternity), setStackSize(OTHItemList.glassSingularityM.get(1), 192), setStackSize(OTHItemList.machineSingularityM.get(1), 192), GTUtility.getIntegratedCircuit(7)) .itemOutputs(ItemList.Field_Generator_MAX.get(64)) .fluidInputs( Materials.SuperconductorUMVBase.getMolten(276480), - MaterialsUEVplus.Eternity.getMolten(3072000), + Materials.Eternity.getMolten(3072000), BWLiquids.Void.getFluidOrGas(16000 * 48), BWLiquids.Stars.getFluidOrGas(16 * 48 * 144), - MaterialsUEVplus.MagMatter.getMolten(304128), - MaterialsUEVplus.Universium.getMolten(13834)) + Materials.MagMatter.getMolten(304128), + Materials.Universium.getMolten(13834)) .duration(5904 * 20) .specialValue(14) .eut(512000000) @@ -211,23 +210,19 @@ public void loadRecipes() { 4096, (int) TierEU.UMV, 123, - new Object[] { - GTOreDictUnificator - .get(OrePrefixes.frameGt, MaterialsUEVplus.MagnetohydrodynamicallyConstrainedStarMatter, 1), - StargateShieldingFoil.getIS(2), - GTOreDictUnificator.get(OrePrefixes.plateDense, MaterialsUEVplus.MagMatter, 12), - GTOreDictUnificator.get(OrePrefixes.plateDense, MaterialsUEVplus.Universium, 12), + new Object[] { GTOreDictUnificator.get(OrePrefixes.frameGt, Materials.WhiteDwarfMatter, 1), + StargateShieldingFoil.get(2), GTOreDictUnificator.get(OrePrefixes.plateDense, Materials.MagMatter, 12), + GTOreDictUnificator.get(OrePrefixes.plateDense, Materials.Universium, 12), ItemList.Robot_Arm_MAX.get(8), ItemList.Electric_Piston_MAX.get(10), ItemList.Electric_Motor_MAX.get(16), - GTOreDictUnificator.get(OrePrefixes.gearGt, MaterialsUEVplus.Universium, 4), - GTOreDictUnificator.get(OrePrefixes.gearGtSmall, MaterialsUEVplus.Universium, 16), - GTOreDictUnificator.get(OrePrefixes.gearGt, MaterialsUEVplus.Universium, 4), - GTOreDictUnificator.get(OrePrefixes.gearGtSmall, MaterialsUEVplus.Universium, 16), getAstralArray(2), - setStackSize(coil, 64), OTHItemList.machineSingularityM.get(12), - getNanites(64, MaterialsUEVplus.Universium), getNanites(64, MaterialsUEVplus.Eternity) }, - new FluidStack[] { MaterialsUEVplus.Universium.getMolten(114000), - MaterialsUEVplus.WhiteDwarfMatter.getMolten(514000), - MaterialsUEVplus.BlackDwarfMatter.getMolten(191000), MaterialsUEVplus.RawStarMatter.getMolten(9810) }, + GTOreDictUnificator.get(OrePrefixes.gearGt, Materials.Universium, 4), + GTOreDictUnificator.get(OrePrefixes.gearGtSmall, Materials.Universium, 16), + GTOreDictUnificator.get(OrePrefixes.gearGt, Materials.Universium, 4), + GTOreDictUnificator.get(OrePrefixes.gearGtSmall, Materials.Universium, 16), getAstralArray(2), + setStackSize(coil, 64), OTHItemList.machineSingularityM.get(12), getNanites(64, Materials.Universium), + getNanites(64, Materials.Eternity) }, + new FluidStack[] { Materials.Universium.getMolten(114000), Materials.WhiteDwarfMatter.getMolten(514000), + Materials.BlackDwarfMatter.getMolten(191000), Materials.RawStarMatter.getMolten(9810) }, GTModHandler.getModItem("GoodGenerator", "componentAssemblylineCasing", 1, 13), 2460, 2000000000); diff --git a/src/main/java/com/newmaa/othtech/recipe/RecipesCopiedFromTST.java b/src/main/java/com/newmaa/othtech/recipe/RecipesCopiedFromTST.java index e67cd579..d448f711 100644 --- a/src/main/java/com/newmaa/othtech/recipe/RecipesCopiedFromTST.java +++ b/src/main/java/com/newmaa/othtech/recipe/RecipesCopiedFromTST.java @@ -1,8 +1,13 @@ package com.newmaa.othtech.recipe; +import static com.newmaa.othtech.utils.Utils.hasNullItem; + +import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; +import com.newmaa.othtech.OTHTechnology; + import gregtech.api.enums.GTValues; import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; @@ -36,37 +41,41 @@ public void loadRecipes() { .duration(300 * 20) .addTo(Assembler); // 时空扭曲机械方块 - TTRecipeAdder.addResearchableAssemblylineRecipe( - GTModHandler.getModItem("tectech", "gt.blockcasingsTT", 1, 12), - (int) 81920, - 256, - (int) 2097152, - 64, - new Object[] { GTModHandler.getModItem("tectech", "gt.blockcasingsTT", 4, 8), - ItemList.Field_Generator_UEV.get(64), GTModHandler.getModItem("tectech", "gt.blockcasingsTT", 8, 7), - GTModHandler.getModItem("dreamcraft", "item.HighEnergyFlowCircuit", 4), - ItemList.Field_Generator_UEV.get(24), GTModHandler.getModItem("gregtech", "gt.blockcasings2", 24, 9), - GTModHandler.getModItem("gregtech", "gt.blockcasings2", 24, 5), - new Object[] { OrePrefixes.circuit.get(Materials.Optical), 64 }, - GTOreDictUnificator.get(OrePrefixes.plateDense, Materials.CosmicNeutronium, 64), - GTModHandler.getModItem("miscutils", "particleBase", 2, 14), - GTModHandler.getModItem("miscutils", "particleBase", 2, 14), - GTOreDictUnificator.get(OrePrefixes.plateDense, Materials.CosmicNeutronium, 64), - GTOreDictUnificator.get(OrePrefixes.plateDense, Materials.CosmicNeutronium, 64), - GTOreDictUnificator.get(OrePrefixes.plateDense, Materials.Neutronium, 64), - GTOreDictUnificator.get(OrePrefixes.plateDense, Materials.Neutronium, 64), - GTOreDictUnificator.get(OrePrefixes.plateDense, Materials.CosmicNeutronium, 64) - - }, - new FluidStack[] { FluidRegistry.getFluidStack("molten.mutatedlivingsolder", 147456), - FluidRegistry.getFluidStack("ic2uumatter", 64000), - FluidRegistry.getFluidStack("molten.osmiridium", 36864), - FluidRegistry.getFluidStack("molten.superconductoruevbase", 4608) }, - GTModHandler.getModItem("tectech", "gt.blockcasingsTT", 1, 9), - 512 * 20, - 1966080 - - ); + ItemStack ultimateMolecularResearch = GTModHandler.getModItem("tectech", "gt.blockcasingsTT", 1, 12); + ItemStack ultimateMolecularOutput = GTModHandler.getModItem("tectech", "gt.blockcasingsTT", 1, 9); + Object[] ultimateMolecularInputs = new Object[] { GTModHandler.getModItem("tectech", "gt.blockcasingsTT", 4, 8), + ItemList.Field_Generator_UEV.get(64), GTModHandler.getModItem("tectech", "gt.blockcasingsTT", 8, 7), + GTModHandler.getModItem("dreamcraft", "HighEnergyFlowCircuit", 4), ItemList.Field_Generator_UEV.get(24), + GTModHandler.getModItem("gregtech", "gt.blockcasings2", 24, 9), + GTModHandler.getModItem("gregtech", "gt.blockcasings2", 24, 5), + new Object[] { OrePrefixes.circuit.get(Materials.UHV), 64 }, + GTOreDictUnificator.get(OrePrefixes.plateDense, Materials.CosmicNeutronium, 64), + GTModHandler.getModItem("miscutils", "particleBase", 2, 14), + GTModHandler.getModItem("miscutils", "particleBase", 2, 14), + GTOreDictUnificator.get(OrePrefixes.plateDense, Materials.CosmicNeutronium, 64), + GTOreDictUnificator.get(OrePrefixes.plateDense, Materials.CosmicNeutronium, 64), + GTOreDictUnificator.get(OrePrefixes.plateDense, Materials.Neutronium, 64), + GTOreDictUnificator.get(OrePrefixes.plateDense, Materials.Neutronium, 64), + GTOreDictUnificator.get(OrePrefixes.plateDense, Materials.CosmicNeutronium, 64) }; + if (hasNullItem(ultimateMolecularInputs) || ultimateMolecularResearch == null + || ultimateMolecularOutput == null) { + OTHTechnology.LOG.error("Skipping Ultimate Molecular Casing recipe due to null items"); + } else { + TTRecipeAdder.addResearchableAssemblylineRecipe( + ultimateMolecularResearch, + (int) 81920, + 256, + (int) 2097152, + 64, + ultimateMolecularInputs, + new FluidStack[] { FluidRegistry.getFluidStack("molten.mutatedlivingsolder", 147456), + FluidRegistry.getFluidStack("ic2uumatter", 64000), + FluidRegistry.getFluidStack("molten.osmiridium", 36864), + FluidRegistry.getFluidStack("molten.superconductoruevbase", 4608) }, + ultimateMolecularOutput, + 512 * 20, + 1966080); + } // 传输机械方块 TTRecipeAdder.addResearchableAssemblylineRecipe( GTModHandler.getModItem("tectech", "gt.blockcasingsTT", 1, 9), @@ -79,7 +88,7 @@ public void loadRecipes() { GTModHandler.getModItem("gregtech", "gt.blockcasings", 4, 14), GTModHandler.getModItem("gregtech", "gt.blockcasings", 4, 13), GTModHandler.getModItem("tectech", "gt.blockcasingsTT", 16), ItemList.Field_Generator_UMV.get(8), - ItemList.Emitter_UMV.get(6), new Object[] { OrePrefixes.circuit.get(Materials.Exotic), 64 }, + ItemList.Emitter_UMV.get(6), new Object[] { OrePrefixes.circuit.get(Materials.UEV), 64 }, ItemList.Field_Generator_UEV.get(24), GTModHandler.getModItem("gregtech", "gt.metaitem.01", 16, 28581), GTModHandler.getModItem("gregtech", "gt.metaitem.01", 16, 23581), GTModHandler.getModItem("gregtech", "gt.metaitem.01", 8, 22581), diff --git a/src/main/java/com/newmaa/othtech/recipe/RecipesFreezerRecipes.java b/src/main/java/com/newmaa/othtech/recipe/RecipesFreezerRecipes.java index d3ee58e1..843dcacb 100644 --- a/src/main/java/com/newmaa/othtech/recipe/RecipesFreezerRecipes.java +++ b/src/main/java/com/newmaa/othtech/recipe/RecipesFreezerRecipes.java @@ -12,7 +12,6 @@ import gregtech.api.enums.TierEU; import gregtech.api.interfaces.IRecipeMap; import gregtech.api.recipe.RecipeMaps; -import gtPlusPlus.api.recipe.GTPPRecipeMaps; public class RecipesFreezerRecipes implements IRecipePool { @@ -39,6 +38,6 @@ public void loadRecipes() { .duration(2000) .eut(TierEU.RECIPE_UEV) - .addTo(GTPPRecipeMaps.advancedFreezerRecipes); + .addTo(RecipeMaps.vacuumFreezerRecipes); } } diff --git a/src/main/java/com/newmaa/othtech/recipe/RecipesMAXs.java b/src/main/java/com/newmaa/othtech/recipe/RecipesMAXs.java index c68d6432..21c6894f 100644 --- a/src/main/java/com/newmaa/othtech/recipe/RecipesMAXs.java +++ b/src/main/java/com/newmaa/othtech/recipe/RecipesMAXs.java @@ -2,6 +2,7 @@ import static com.newmaa.othtech.recipe.RecipesCircuit.getAstralArray; import static com.newmaa.othtech.recipe.RecipesComponentAssemblyLineRecipes.getNanites; +import static com.newmaa.othtech.utils.Utils.hasNullItem; import static com.newmaa.othtech.utils.Utils.setStackSize; import net.minecraft.item.ItemStack; @@ -9,13 +10,13 @@ import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; +import com.newmaa.othtech.OTHTechnology; import com.newmaa.othtech.common.OTHItemList; import com.newmaa.othtech.common.materials.BWLiquids; import gregtech.api.enums.GTValues; import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; -import gregtech.api.enums.MaterialsUEVplus; import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.TierEU; import gregtech.api.recipe.RecipeMap; @@ -28,20 +29,19 @@ public class RecipesMAXs implements IRecipePool { public static ItemStack getMM(int amount, OrePrefixes orePrefixes) { - return GTOreDictUnificator.get(orePrefixes, MaterialsUEVplus.MagMatter, amount); + return GTOreDictUnificator.get(orePrefixes, Materials.MagMatter, amount); } public static ItemStack getET(int amount, OrePrefixes orePrefixes) { - return GTOreDictUnificator.get(orePrefixes, MaterialsUEVplus.Eternity, amount); + return GTOreDictUnificator.get(orePrefixes, Materials.Eternity, amount); } public static ItemStack getMC(int amount, OrePrefixes orePrefixes) { - return GTOreDictUnificator - .get(orePrefixes, MaterialsUEVplus.MagnetohydrodynamicallyConstrainedStarMatter, amount); + return GTOreDictUnificator.get(orePrefixes, Materials.WhiteDwarfMatter, amount); } public static ItemStack getUN(int amount, OrePrefixes orePrefixes) { - return GTOreDictUnificator.get(orePrefixes, MaterialsUEVplus.Universium, amount); + return GTOreDictUnificator.get(orePrefixes, Materials.Universium, amount); } @Override @@ -53,24 +53,32 @@ public void loadRecipes() { final RecipeMap Tower = RecipeMaps.distillationTowerRecipes; ItemStack coil = GTModHandler.getModItem("gregtech", "gt.blockcasings5", 1, 13); - TTRecipeAdder.addResearchableAssemblylineRecipe( - ItemList.Electric_Motor_UXV.get(1), - (int) TierEU.UHV, - 2048, - (int) TierEU.UMV, - 123, - new ItemStack[] { GTModHandler.getModItem("eternalsingularity", "combined_singularity", 1, 15), - getUN(16, OrePrefixes.stickLong), getUN(16, OrePrefixes.ring), getUN(16, OrePrefixes.round), - getMM(16, OrePrefixes.wireFine), getMM(16, OrePrefixes.wireFine), getMM(16, OrePrefixes.wireFine), - getMM(16, OrePrefixes.wireFine), getMM(16, OrePrefixes.wireFine), getMM(16, OrePrefixes.wireFine), - getMM(16, OrePrefixes.wireFine), getMM(16, OrePrefixes.wireFine), setStackSize(coil, 8), - getNanites(4, MaterialsUEVplus.Universium), getNanites(4, MaterialsUEVplus.WhiteDwarfMatter), - getNanites(4, MaterialsUEVplus.BlackDwarfMatter) }, - new FluidStack[] { BWLiquids.Void.getFluidOrGas(16000), BWLiquids.Stars.getFluidOrGas(144 * 16), - new FluidStack(UIVsc, 5760), new FluidStack(UMVsc, 5760) }, - ItemList.Electric_Motor_MAX.get(1), - 2460, - 512000000); + ItemStack motorUxvResearch = ItemList.Electric_Motor_UXV.get(1); + ItemStack motorUxvOutput = ItemList.Electric_Motor_MAX.get(1); + Object[] motorUxvInputs = new ItemStack[] { + GTModHandler.getModItem("eternalsingularity", "combined_singularity", 1, 15), + getUN(16, OrePrefixes.stickLong), getUN(16, OrePrefixes.ring), getUN(16, OrePrefixes.round), + getMM(16, OrePrefixes.wireFine), getMM(16, OrePrefixes.wireFine), getMM(16, OrePrefixes.wireFine), + getMM(16, OrePrefixes.wireFine), getMM(16, OrePrefixes.wireFine), getMM(16, OrePrefixes.wireFine), + getMM(16, OrePrefixes.wireFine), getMM(16, OrePrefixes.wireFine), setStackSize(coil, 8), + getNanites(4, Materials.Universium), getNanites(4, Materials.WhiteDwarfMatter), + getNanites(4, Materials.BlackDwarfMatter) }; + if (hasNullItem(motorUxvInputs) || motorUxvResearch == null || motorUxvOutput == null) { + OTHTechnology.LOG.error("Skipping Electric Motor (UXV) recipe due to null items"); + } else { + TTRecipeAdder.addResearchableAssemblylineRecipe( + motorUxvResearch, + (int) TierEU.UHV, + 2048, + (int) TierEU.UMV, + 123, + motorUxvInputs, + new FluidStack[] { BWLiquids.Void.getFluidOrGas(16000), BWLiquids.Stars.getFluidOrGas(144 * 16), + new FluidStack(UIVsc, 5760), new FluidStack(UMVsc, 5760) }, + motorUxvOutput, + 2460, + 512000000); + } GTValues.RA.stdBuilder() .itemInputs(getMM(4, OrePrefixes.plateDouble), GTUtility.getIntegratedCircuit(16)) @@ -99,8 +107,8 @@ public void loadRecipes() { GTModHandler.getModItem("GoodGenerator", "compactFusionCoil", 16, 2), GTModHandler.getModItem("gregtech", "gt.blockmachines", 1, 15300), GTModHandler.getModItem("tectech", "gt.blockcasingsTT", 16), getUN(64, OrePrefixes.wireFine), - getMC(4, OrePrefixes.plateDense), new Object[] { OrePrefixes.circuit.get(Materials.Cosmic), 64 }, - getNanites(4, MaterialsUEVplus.Eternity), ItemList.Circuit_Chip_QPIC.get(32), ItemList.UHV_Coil.get(64), + getMC(4, OrePrefixes.plateDense), new Object[] { OrePrefixes.circuit.get(Materials.MAX), 64 }, + getNanites(4, Materials.Eternity), ItemList.Circuit_Chip_QPIC.get(32), ItemList.UHV_Coil.get(64), ItemList.Electric_Pump_MAX.get(1), ItemList.Reactor_Coolant_Sp_6.get(1), ItemList.Reactor_Coolant_Sp_6.get(1), ItemList.Reactor_Coolant_Sp_6.get(1), ItemList.Reactor_Coolant_Sp_6.get(1) }, @@ -112,32 +120,40 @@ public void loadRecipes() { 1000, 2000000000); - TTRecipeAdder.addResearchableAssemblylineRecipe( - GTModHandler.getModItem("gregtech", "gt.blockmachines", 1, 286), - 512000000, - 131072, - (int) TierEU.MAX, - 262144, - new Object[] { GTModHandler.getModItem("gregtech", "gt.blockmachines", 16, 11234), - GTModHandler.getModItem("GoodGenerator", "compactFusionCoil", 64, 4), - GTModHandler.getModItem("gregtech", "gt.blockmachines", 16, 15300), - GTModHandler.getModItem("tectech", "gt.blockcasingsTT", 64), getMM(64, OrePrefixes.wireFine), - getMC(64, OrePrefixes.plateDense), new Object[] { OrePrefixes.circuit.get(Materials.Transcendent), 64 }, - ItemList.EnergisedTesseract.get(64), GTModHandler.getModItem("gregtech", "gt.blockmachines", 64, 23524), - GTModHandler.getModItem("gregtech", "gt.blockmachines", 64, 23524), - GTModHandler.getModItem("gregtech", "gt.blockmachines", 64, 23524), - GTModHandler.getModItem("gregtech", "gt.blockmachines", 64, 23524), - GTModHandler.getModItem("gregtech", "gt.blockmachines", 64, 23524), - GTModHandler.getModItem("gregtech", "gt.blockmachines", 64, 23524), - GTModHandler.getModItem("gregtech", "gt.blockmachines", 64, 23524), - GTModHandler.getModItem("gregtech", "gt.blockmachines", 64, 23524) }, - new FluidStack[] { new FluidStack(FluidRegistry.getFluidID("cryotheum"), 64000000), - new FluidStack(FluidRegistry.getFluidID("molten.mutatedlivingsolder"), 64000000), - new FluidStack(FluidRegistry.getFluidID("ic2uumatter"), 64000000), - new FluidStack(FluidRegistry.getFluidID("exciteddtsc"), 64000000) }, - GTModHandler.getModItem("gregtech", "gt.blockmachines", 1, 23522), - 20000, - 2000000000); + ItemStack wirelessMaxResearch = GTModHandler.getModItem("gregtech", "gt.blockmachines", 1, 286); + ItemStack wirelessMaxOutput = GTModHandler.getModItem("gregtech", "gt.blockmachines", 1, 23522); + Object[] wirelessMaxInputs = new Object[] { GTModHandler.getModItem("gregtech", "gt.blockmachines", 16, 11234), + GTModHandler.getModItem("GoodGenerator", "compactFusionCoil", 64, 4), + GTModHandler.getModItem("gregtech", "gt.blockmachines", 16, 15300), + GTModHandler.getModItem("tectech", "gt.blockcasingsTT", 64), getMM(64, OrePrefixes.wireFine), + getMC(64, OrePrefixes.plateDense), + new Object[] { OrePrefixes.circuit.get(Materials.TranscendentMetal), 64 }, + ItemList.EnergisedTesseract.get(64), GTModHandler.getModItem("gregtech", "gt.blockmachines", 64, 23524), + GTModHandler.getModItem("gregtech", "gt.blockmachines", 64, 23524), + GTModHandler.getModItem("gregtech", "gt.blockmachines", 64, 23524), + GTModHandler.getModItem("gregtech", "gt.blockmachines", 64, 23524), + GTModHandler.getModItem("gregtech", "gt.blockmachines", 64, 23524), + GTModHandler.getModItem("gregtech", "gt.blockmachines", 64, 23524), + GTModHandler.getModItem("gregtech", "gt.blockmachines", 64, 23524), + GTModHandler.getModItem("gregtech", "gt.blockmachines", 64, 23524) }; + if (hasNullItem(wirelessMaxInputs) || wirelessMaxResearch == null || wirelessMaxOutput == null) { + OTHTechnology.LOG.error("Skipping MAX Wireless Energy Hatch recipe due to null items"); + } else { + TTRecipeAdder.addResearchableAssemblylineRecipe( + wirelessMaxResearch, + 512000000, + 131072, + (int) TierEU.MAX, + 262144, + wirelessMaxInputs, + new FluidStack[] { new FluidStack(FluidRegistry.getFluidID("cryotheum"), 64000000), + new FluidStack(FluidRegistry.getFluidID("molten.mutatedlivingsolder"), 64000000), + new FluidStack(FluidRegistry.getFluidID("ic2uumatter"), 64000000), + new FluidStack(FluidRegistry.getFluidID("exciteddtsc"), 64000000) }, + wirelessMaxOutput, + 20000, + 2000000000); + } TTRecipeAdder.addResearchableAssemblylineRecipe( GTModHandler.getModItem("gregtech", "gt.blockmachines", 1, 15199), @@ -277,102 +293,130 @@ public void loadRecipes() { ItemList.Conveyor_Module_MAX.get(1), 2460, 512000000); - TTRecipeAdder.addResearchableAssemblylineRecipe( - ItemList.Robot_Arm_UXV.get(1), - (int) TierEU.UHV, - 2048, - (int) TierEU.UMV, - 123, - new Object[] { GTModHandler.getModItem("gregtech", "gt.metaitem.01", 8, 23143), - GTModHandler.getModItem("gregtech", "gt.metaitem.02", 8, 31143), - GTModHandler.getModItem("gregtech", "gt.metaitem.02", 16, 20143), - GTModHandler.getModItem("tectech", "gt.time_acceleration_field_generator", 2, 8), - GTModHandler.getModItem("tectech", "gt.stabilisation_field_generator", 2, 8), - ItemList.Electric_Motor_MAX.get(2), ItemList.Electric_Piston_MAX.get(1), - new Object[] { OrePrefixes.circuit.get(Materials.Transcendent), 2 }, - new Object[] { OrePrefixes.circuit.get(Materials.Exotic), 4 }, - new Object[] { OrePrefixes.circuit.get(Materials.Cosmic), 8 }, - GTModHandler.getModItem("gregtech", "gt.blockcasings5", 8, 13), - GTModHandler.getModItem("gregtech", "gt.metaitem.03", 4, 4139), - GTModHandler.getModItem("gregtech", "gt.metaitem.03", 4, 4585), - GTModHandler.getModItem("gregtech", "gt.metaitem.03", 4, 4586), }, - new FluidStack[] { BWLiquids.Void.getFluidOrGas(16000), BWLiquids.Stars.getFluidOrGas(144 * 16), - new FluidStack(UIVsc, 5760), new FluidStack(UMVsc, 5760) }, - ItemList.Robot_Arm_MAX.get(1), - 2460, - 512000000); - TTRecipeAdder.addResearchableAssemblylineRecipe( - ItemList.Sensor_UXV.get(1), - (int) TierEU.UHV, - 2048, - (int) TierEU.UMV, - 123, - new Object[] { GTModHandler.getModItem("gregtech", "gt.blockframes", 1, 141), - ItemList.Electric_Motor_MAX.get(1), GTModHandler.getModItem("gregtech", "gt.metaitem.01", 16, 17143), - GTModHandler.getModItem("tectech", "gt.stabilisation_field_generator", 2, 8), - OTHItemList.glassSingularityM.get(4), GTModHandler.getModItem("dreamcraft", "item.ChromaticLens", 64), - new Object[] { OrePrefixes.circuit.get(Materials.Transcendent), 4 }, - GTModHandler.getModItem("gregtech", "gt.metaitem.01", 64, 29143), - GTModHandler.getModItem("gregtech", "gt.metaitem.01", 64, 29143), - GTModHandler.getModItem("gregtech", "gt.metaitem.01", 64, 29139), - GTModHandler.getModItem("gregtech", "gt.metaitem.01", 64, 29139), - GTModHandler.getModItem("gregtech", "gt.blockcasings5", 16, 13), - GTModHandler.getModItem("gregtech", "gt.metaitem.03", 8, 4139), - GTModHandler.getModItem("gregtech", "gt.metaitem.03", 8, 4585), - GTModHandler.getModItem("gregtech", "gt.metaitem.03", 8, 4586), }, - new FluidStack[] { BWLiquids.Void.getFluidOrGas(16000), BWLiquids.Stars.getFluidOrGas(144 * 16), - new FluidStack(FluidRegistry.getFluidID("spatialfluid"), 64000), new FluidStack(UMVsc, 5760) }, - ItemList.Sensor_MAX.get(1), - 2460, - 512000000); - TTRecipeAdder.addResearchableAssemblylineRecipe( - ItemList.Emitter_UXV.get(1), - (int) TierEU.UHV, - 2048, - (int) TierEU.UMV, - 123, - new Object[] { GTModHandler.getModItem("gregtech", "gt.blockframes", 1, 141), - ItemList.Electric_Motor_MAX.get(1), GTModHandler.getModItem("gregtech", "gt.metaitem.01", 16, 23143), - GTModHandler.getModItem("tectech", "gt.stabilisation_field_generator", 2, 8), - OTHItemList.glassSingularityM.get(4), GTModHandler.getModItem("dreamcraft", "item.ChromaticLens", 64), - new Object[] { OrePrefixes.circuit.get(Materials.Transcendent), 4 }, - GTModHandler.getModItem("gregtech", "gt.metaitem.01", 64, 29143), - GTModHandler.getModItem("gregtech", "gt.metaitem.01", 64, 29143), - GTModHandler.getModItem("gregtech", "gt.metaitem.01", 64, 29139), - GTModHandler.getModItem("gregtech", "gt.metaitem.01", 64, 29139), - GTModHandler.getModItem("gregtech", "gt.blockcasings5", 16, 13), - GTModHandler.getModItem("gregtech", "gt.metaitem.03", 8, 4139), - GTModHandler.getModItem("gregtech", "gt.metaitem.03", 8, 4585), - GTModHandler.getModItem("gregtech", "gt.metaitem.03", 8, 4586), }, - new FluidStack[] { BWLiquids.Void.getFluidOrGas(16000), BWLiquids.Stars.getFluidOrGas(144 * 16), - new FluidStack(FluidRegistry.getFluidID("temporalfluid"), 64000), new FluidStack(UMVsc, 5760) }, - ItemList.Emitter_MAX.get(1), - 2460, - 512000000); - TTRecipeAdder.addResearchableAssemblylineRecipe( - ItemList.Field_Generator_UXV.get(1), - (int) TierEU.UHV, - 2048, - (int) TierEU.UMV, - 123, - new Object[] { GTModHandler.getModItem("gregtech", "gt.blockframes", 1, 141), getAstralArray(1), - GTModHandler.getModItem("gregtech", "gt.metaitem.01", 12, 17143), - OTHItemList.machineSingularityM.get(4), OTHItemList.glassSingularityM.get(4), - GTModHandler.getModItem("eternalsingularity", "eternal_singularity", 4), ItemList.Emitter_MAX.get(4), - new Object[] { OrePrefixes.circuit.get(Materials.Transcendent), 8 }, - GTModHandler.getModItem("gregtech", "gt.metaitem.02", 64, 19143), - GTModHandler.getModItem("gregtech", "gt.metaitem.02", 64, 19143), - GTModHandler.getModItem("gregtech", "gt.metaitem.02", 64, 19143), - GTModHandler.getModItem("gregtech", "gt.metaitem.02", 64, 19143), - GTModHandler.getModItem("gregtech", "gt.blockcasings5", 32, 13), - GTModHandler.getModItem("gregtech", "gt.metaitem.03", 24, 4139), - GTModHandler.getModItem("gregtech", "gt.metaitem.03", 24, 4585), - GTModHandler.getModItem("gregtech", "gt.metaitem.03", 24, 4586), }, - new FluidStack[] { BWLiquids.Void.getFluidOrGas(16000), BWLiquids.Stars.getFluidOrGas(144 * 16), - new FluidStack(FluidRegistry.getFluidID("molten.eternity"), 64000), new FluidStack(UMVsc, 5760) }, - ItemList.Field_Generator_MAX.get(1), - 2460, - 512000000); + ItemStack robotArmUxvResearch = ItemList.Robot_Arm_UXV.get(1); + ItemStack robotArmUxvOutput = ItemList.Robot_Arm_MAX.get(1); + Object[] robotArmUxvInputs = new Object[] { GTModHandler.getModItem("gregtech", "gt.metaitem.01", 8, 23143), + GTModHandler.getModItem("gregtech", "gt.metaitem.02", 8, 31143), + GTModHandler.getModItem("gregtech", "gt.metaitem.02", 16, 20143), + GTModHandler.getModItem("tectech", "gt.time_acceleration_field_generator", 2, 8), + GTModHandler.getModItem("tectech", "gt.stabilisation_field_generator", 2, 8), + ItemList.Electric_Motor_MAX.get(2), ItemList.Electric_Piston_MAX.get(1), + new Object[] { OrePrefixes.circuit.get(Materials.TranscendentMetal), 2 }, + new Object[] { OrePrefixes.circuit.get(Materials.UXV), 4 }, + new Object[] { OrePrefixes.circuit.get(Materials.MAX), 8 }, + GTModHandler.getModItem("gregtech", "gt.blockcasings5", 8, 13), + GTModHandler.getModItem("gregtech", "gt.metaitem.03", 4, 4139), + GTModHandler.getModItem("gregtech", "gt.metaitem.03", 4, 4585), + GTModHandler.getModItem("gregtech", "gt.metaitem.03", 4, 4586), }; + if (hasNullItem(robotArmUxvInputs) || robotArmUxvResearch == null || robotArmUxvOutput == null) { + OTHTechnology.LOG.error("Skipping Robot Arm (UXV) recipe due to null items"); + } else { + TTRecipeAdder.addResearchableAssemblylineRecipe( + robotArmUxvResearch, + (int) TierEU.UHV, + 2048, + (int) TierEU.UMV, + 123, + robotArmUxvInputs, + new FluidStack[] { BWLiquids.Void.getFluidOrGas(16000), BWLiquids.Stars.getFluidOrGas(144 * 16), + new FluidStack(UIVsc, 5760), new FluidStack(UMVsc, 5760) }, + robotArmUxvOutput, + 2460, + 512000000); + } + ItemStack sensorUxvResearch = ItemList.Sensor_UXV.get(1); + ItemStack sensorUxvOutput = ItemList.Sensor_MAX.get(1); + Object[] sensorUxvInputs = new Object[] { GTModHandler.getModItem("gregtech", "gt.blockframes", 1, 141), + ItemList.Electric_Motor_MAX.get(1), GTModHandler.getModItem("gregtech", "gt.metaitem.01", 16, 17143), + GTModHandler.getModItem("tectech", "gt.stabilisation_field_generator", 2, 8), + OTHItemList.glassSingularityM.get(4), GTModHandler.getModItem("dreamcraft", "ChromaticLens", 64), + new Object[] { OrePrefixes.circuit.get(Materials.TranscendentMetal), 4 }, + GTModHandler.getModItem("gregtech", "gt.metaitem.01", 64, 29143), + GTModHandler.getModItem("gregtech", "gt.metaitem.01", 64, 29143), + GTModHandler.getModItem("gregtech", "gt.metaitem.01", 64, 29139), + GTModHandler.getModItem("gregtech", "gt.metaitem.01", 64, 29139), + GTModHandler.getModItem("gregtech", "gt.blockcasings5", 16, 13), + GTModHandler.getModItem("gregtech", "gt.metaitem.03", 8, 4139), + GTModHandler.getModItem("gregtech", "gt.metaitem.03", 8, 4585), + GTModHandler.getModItem("gregtech", "gt.metaitem.03", 8, 4586), }; + if (hasNullItem(sensorUxvInputs) || sensorUxvResearch == null || sensorUxvOutput == null) { + OTHTechnology.LOG.error("Skipping Sensor (UXV) recipe due to null items"); + } else { + TTRecipeAdder.addResearchableAssemblylineRecipe( + sensorUxvResearch, + (int) TierEU.UHV, + 2048, + (int) TierEU.UMV, + 123, + sensorUxvInputs, + new FluidStack[] { BWLiquids.Void.getFluidOrGas(16000), BWLiquids.Stars.getFluidOrGas(144 * 16), + new FluidStack(FluidRegistry.getFluidID("spatialfluid"), 64000), new FluidStack(UMVsc, 5760) }, + sensorUxvOutput, + 2460, + 512000000); + } + ItemStack emitterUxvResearch = ItemList.Emitter_UXV.get(1); + ItemStack emitterUxvOutput = ItemList.Emitter_MAX.get(1); + Object[] emitterUxvInputs = new Object[] { GTModHandler.getModItem("gregtech", "gt.blockframes", 1, 141), + ItemList.Electric_Motor_MAX.get(1), GTModHandler.getModItem("gregtech", "gt.metaitem.01", 16, 23143), + GTModHandler.getModItem("tectech", "gt.stabilisation_field_generator", 2, 8), + OTHItemList.glassSingularityM.get(4), GTModHandler.getModItem("dreamcraft", "ChromaticLens", 64), + new Object[] { OrePrefixes.circuit.get(Materials.TranscendentMetal), 4 }, + GTModHandler.getModItem("gregtech", "gt.metaitem.01", 64, 29143), + GTModHandler.getModItem("gregtech", "gt.metaitem.01", 64, 29143), + GTModHandler.getModItem("gregtech", "gt.metaitem.01", 64, 29139), + GTModHandler.getModItem("gregtech", "gt.metaitem.01", 64, 29139), + GTModHandler.getModItem("gregtech", "gt.blockcasings5", 16, 13), + GTModHandler.getModItem("gregtech", "gt.metaitem.03", 8, 4139), + GTModHandler.getModItem("gregtech", "gt.metaitem.03", 8, 4585), + GTModHandler.getModItem("gregtech", "gt.metaitem.03", 8, 4586), }; + if (hasNullItem(emitterUxvInputs) || emitterUxvResearch == null || emitterUxvOutput == null) { + OTHTechnology.LOG.error("Skipping Emitter (UXV) recipe due to null items"); + } else { + TTRecipeAdder.addResearchableAssemblylineRecipe( + emitterUxvResearch, + (int) TierEU.UHV, + 2048, + (int) TierEU.UMV, + 123, + emitterUxvInputs, + new FluidStack[] { BWLiquids.Void.getFluidOrGas(16000), BWLiquids.Stars.getFluidOrGas(144 * 16), + new FluidStack(FluidRegistry.getFluidID("temporalfluid"), 64000), new FluidStack(UMVsc, 5760) }, + emitterUxvOutput, + 2460, + 512000000); + } + ItemStack fieldGenUxvResearch = ItemList.Field_Generator_UXV.get(1); + ItemStack fieldGenUxvOutput = ItemList.Field_Generator_MAX.get(1); + Object[] fieldGenUxvInputs = new Object[] { GTModHandler.getModItem("gregtech", "gt.blockframes", 1, 141), + getAstralArray(1), GTModHandler.getModItem("gregtech", "gt.metaitem.01", 12, 17143), + OTHItemList.machineSingularityM.get(4), OTHItemList.glassSingularityM.get(4), + GTModHandler.getModItem("eternalsingularity", "eternal_singularity", 4), ItemList.Emitter_MAX.get(4), + new Object[] { OrePrefixes.circuit.get(Materials.TranscendentMetal), 8 }, + GTModHandler.getModItem("gregtech", "gt.metaitem.02", 64, 19143), + GTModHandler.getModItem("gregtech", "gt.metaitem.02", 64, 19143), + GTModHandler.getModItem("gregtech", "gt.metaitem.02", 64, 19143), + GTModHandler.getModItem("gregtech", "gt.metaitem.02", 64, 19143), + GTModHandler.getModItem("gregtech", "gt.blockcasings5", 32, 13), + GTModHandler.getModItem("gregtech", "gt.metaitem.03", 24, 4139), + GTModHandler.getModItem("gregtech", "gt.metaitem.03", 24, 4585), + GTModHandler.getModItem("gregtech", "gt.metaitem.03", 24, 4586), }; + if (hasNullItem(fieldGenUxvInputs) || fieldGenUxvResearch == null || fieldGenUxvOutput == null) { + OTHTechnology.LOG.error("Skipping Field Generator (UXV) recipe due to null items"); + } else { + TTRecipeAdder.addResearchableAssemblylineRecipe( + fieldGenUxvResearch, + (int) TierEU.UHV, + 2048, + (int) TierEU.UMV, + 123, + fieldGenUxvInputs, + new FluidStack[] { BWLiquids.Void.getFluidOrGas(16000), BWLiquids.Stars.getFluidOrGas(144 * 16), + new FluidStack(FluidRegistry.getFluidID("molten.eternity"), 64000), new FluidStack(UMVsc, 5760) }, + fieldGenUxvOutput, + 2460, + 512000000); + } } } diff --git a/src/main/java/com/newmaa/othtech/recipe/RecipesMISA.java b/src/main/java/com/newmaa/othtech/recipe/RecipesMISA.java index 9f67eb4b..3e114725 100644 --- a/src/main/java/com/newmaa/othtech/recipe/RecipesMISA.java +++ b/src/main/java/com/newmaa/othtech/recipe/RecipesMISA.java @@ -145,7 +145,7 @@ public void loadRecipes() { setStackSize(Materials.Iron.getDust(1), 16 * 150), setStackSize(Materials.Nickel.getDust(1), 16 * 100), setStackSize(GTModHandler.getModItem("bartworks", "gt.bwMetaGenerateddust", 1, 11000), 16 * 10), - setStackSize(Materials.Prometheum.getDust(1), 16 * 20)) + setStackSize(Materials.Promethium.getDust(1), 16 * 20)) .itemInputs( setStackSize(GTModHandler.getModItem("gregtech", "gt.metaitem.01", 1, 5909), 16 * 256), setStackSize(Materials.Carbon.getDust(1), 40), diff --git a/src/main/java/com/newmaa/othtech/recipe/RecipesMain.java b/src/main/java/com/newmaa/othtech/recipe/RecipesMain.java index eb2f6a7e..4379c265 100644 --- a/src/main/java/com/newmaa/othtech/recipe/RecipesMain.java +++ b/src/main/java/com/newmaa/othtech/recipe/RecipesMain.java @@ -3,6 +3,7 @@ import static com.newmaa.othtech.common.recipemap.Recipemaps.AE2; import static com.newmaa.othtech.common.recipemap.Recipemaps.RCY; import static com.newmaa.othtech.recipe.RecipesComponentAssemblyLineRecipes.getNanites; +import static com.newmaa.othtech.utils.Utils.hasNullItem; import static com.newmaa.othtech.utils.Utils.setStackSize; import static goodgenerator.api.recipe.GoodGeneratorRecipeMaps.preciseAssemblerRecipes; import static gregtech.api.enums.Mods.*; @@ -50,7 +51,6 @@ import gregtech.api.enums.GTValues; import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; -import gregtech.api.enums.MaterialsUEVplus; import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.TierEU; import gregtech.api.recipe.RecipeMap; @@ -158,9 +158,9 @@ public void loadRecipes() { GTModHandler.getModItem("miscutils", "MU-metaitem.01", 0, 32140), getGM(31027, 64), getGM(31028, 64), - getNanites(4, MaterialsUEVplus.WhiteDwarfMatter), - getNanites(4, MaterialsUEVplus.BlackDwarfMatter), - getNanites(4, MaterialsUEVplus.Universium)) + getNanites(4, Materials.WhiteDwarfMatter), + getNanites(4, Materials.BlackDwarfMatter), + getNanites(4, Materials.Universium)) .itemOutputs(OTHItemList.beeISAM.get(1)) .fluidInputs(new FluidStack(songyou, 256000)) .duration(500 * 20) @@ -169,33 +169,41 @@ public void loadRecipes() { .addTo(Nan); // Mega recipesQFTRecipes - TTRecipeAdder.addResearchableAssemblylineRecipe( - getGM(31151, 1), - 512000000, - 4096, - 123123123, - 256, - new Object[] { getGM(31151, 64), GTModHandler.getModItem("miscutils", "gtplusplus.blockcasings.5", 64, 10), - GTModHandler.getModItem("miscutils", "gtplusplus.blockcasings.5", 64, 14), - new Object[] { OrePrefixes.circuit.get(Materials.UXV), 64 }, - GTModHandler.getModItem("gregtech", "gt.metaitem.01", 64, 32417), - GTModHandler.getModItem("dreamcraft", "item.MysteriousCrystalLens", 64), - OTHItemList.dustIrOsSmM.get(64), OTHItemList.dustLookNEIM.get(64), - GTModHandler.getModItem("appliedenergistics2", "item.ItemExtremeStorageCell.Singularity", 1), - GTModHandler.getModItem("appliedenergistics2", "item.ItemExtremeStorageCell.Singularity", 1), - GTModHandler.getModItem("appliedenergistics2", "item.ItemExtremeStorageCell.Singularity", 1), - GTModHandler.getModItem("miscutils", "MU-metaitem.01", 64, 32105), - GTModHandler.getModItem("gregtech", "gt.metaitem.01", 64, 32429), - GTModHandler.getModItem("gregtech", "gt.metaitem.01", 64, 32428), - GTModHandler.getModItem("gregtech", "gt.metaitem.01", 64, 32427), - GTModHandler.getModItem("gregtech", "gt.metaitem.03", 64, 4581), }, - new FluidStack[] { new FluidStack(FluidRegistry.getFluidID("molten.spacetime"), 36000000), - new FluidStack(FluidRegistry.getFluidID("exciteddtsc"), 256000), - new FluidStack(FluidRegistry.getFluidID("plasma.neptunium"), 256000), - new FluidStack(FluidRegistry.getFluidID("plasma.fermium"), 256000) }, - getGM(23526, 1), - 1234 * 20, - 123123123); + ItemStack megaQftResearch = getGM(31151, 1); + ItemStack megaQftOutput = getGM(23526, 1); + Object[] megaQftInputs = new Object[] { getGM(31151, 64), + GTModHandler.getModItem("miscutils", "gtplusplus.blockcasings.5", 64, 10), + GTModHandler.getModItem("miscutils", "gtplusplus.blockcasings.5", 64, 14), + new Object[] { OrePrefixes.circuit.get(Materials.UXV), 64 }, + GTModHandler.getModItem("gregtech", "gt.metaitem.01", 64, 32417), + GTModHandler.getModItem("dreamcraft", "MysteriousCrystalLens", 64), OTHItemList.dustIrOsSmM.get(64), + OTHItemList.dustLookNEIM.get(64), + GTModHandler.getModItem("appliedenergistics2", "item.ItemExtremeStorageCell.Singularity", 1), + GTModHandler.getModItem("appliedenergistics2", "item.ItemExtremeStorageCell.Singularity", 1), + GTModHandler.getModItem("appliedenergistics2", "item.ItemExtremeStorageCell.Singularity", 1), + GTModHandler.getModItem("miscutils", "MU-metaitem.01", 64, 32105), + GTModHandler.getModItem("gregtech", "gt.metaitem.01", 64, 32429), + GTModHandler.getModItem("gregtech", "gt.metaitem.01", 64, 32428), + GTModHandler.getModItem("gregtech", "gt.metaitem.01", 64, 32427), + GTModHandler.getModItem("gregtech", "gt.metaitem.03", 64, 4581), }; + if (hasNullItem(megaQftInputs) || megaQftResearch == null || megaQftOutput == null) { + OTHTechnology.LOG.error("Skipping Quantum Force Transformer recipe due to null items"); + } else { + TTRecipeAdder.addResearchableAssemblylineRecipe( + megaQftResearch, + 512000000, + 4096, + 123123123, + 256, + megaQftInputs, + new FluidStack[] { new FluidStack(FluidRegistry.getFluidID("molten.spacetime"), 36000000), + new FluidStack(FluidRegistry.getFluidID("exciteddtsc"), 256000), + new FluidStack(FluidRegistry.getFluidID("plasma.neptunium"), 256000), + new FluidStack(FluidRegistry.getFluidID("plasma.fermium"), 256000) }, + megaQftOutput, + 1234 * 20, + 123123123); + } // 9in1 GTValues.RA.stdBuilder() .itemOutputs(getGM(23520, 1)) @@ -220,7 +228,7 @@ public void loadRecipes() { getGM(963, 64), getGM(963, 64), ItemList.Field_Generator_LuV.get(16), - GTOreDictUnificator.get(OrePrefixes.circuit, Materials.Superconductor, 64), + GTOreDictUnificator.get(OrePrefixes.circuit, Materials.UHV, 64), GTUtility.getIntegratedCircuit(17)) .fluidInputs(new FluidStack(FluidRegistry.getFluidID("molten.indalloy140"), 128 * 144)) @@ -235,7 +243,7 @@ public void loadRecipes() { getGM(910, 64), getGM(910, 64), ItemList.Electric_Piston_LuV.get(16), - GTOreDictUnificator.get(OrePrefixes.circuit, Materials.Superconductor, 64), + GTOreDictUnificator.get(OrePrefixes.circuit, Materials.UHV, 64), GTUtility.getIntegratedCircuit(17)) .fluidInputs(new FluidStack(FluidRegistry.getFluidID("molten.indalloy140"), 128 * 144)) @@ -251,7 +259,7 @@ public void loadRecipes() { getGM(1169, 16), ItemList.Robot_Arm_IV.get(8), ItemList.Electric_Pump_IV.get(8), - GTOreDictUnificator.get(OrePrefixes.circuit, Materials.Ultimate, 16), + GTOreDictUnificator.get(OrePrefixes.circuit, Materials.ZPM, 16), GTUtility.getIntegratedCircuit(17)) .fluidInputs(new FluidStack(FluidRegistry.getFluidID("molten.tungstensteel"), 128 * 144)) @@ -268,9 +276,9 @@ public void loadRecipes() { ItemList.Electric_Pump_LuV.get(16), getGM(31030, 4), GTModHandler.getModItem("miscutils", "item.BasicAgrichemItem", 64, 13), - GTOreDictUnificator.get(OrePrefixes.circuit, Materials.Elite, 16), - GTOreDictUnificator.get(OrePrefixes.circuit, Materials.Master, 16), - GTOreDictUnificator.get(OrePrefixes.circuit, Materials.Ultimate, 16), + GTOreDictUnificator.get(OrePrefixes.circuit, Materials.IV, 16), + GTOreDictUnificator.get(OrePrefixes.circuit, Materials.LuV, 16), + GTOreDictUnificator.get(OrePrefixes.circuit, Materials.ZPM, 16), GTUtility.getIntegratedCircuit(17)) .fluidInputs(new FluidStack(FluidRegistry.getFluidID("molten.zeron100"), 4 * 144)) @@ -309,7 +317,7 @@ public void loadRecipes() { GTModHandler.getModItem("gregtech", "gt.blockframes", 16, 395), GTModHandler.getModItem("gregtech", "gt.blockframes", 16, 395), GTModHandler.getModItem("tectech", "gt.blockcasingsTT", 16, 9), ItemList.Robot_Arm_UEV.get(64), - ItemList.Robot_Arm_UEV.get(64), new Object[] { OrePrefixes.circuit.get(Materials.Optical), 64 }, + ItemList.Robot_Arm_UEV.get(64), new Object[] { OrePrefixes.circuit.get(Materials.UHV), 64 }, GTModHandler.getModItem("gregtech", "gt.metaitem.03", 64, 4054), GTModHandler.getModItem("gregtech", "gt.metaitem.02", 24, 21397), new ItemStack(Items.skull, 64, 1), OTHItemList.dustIrOsSmM.get(64), @@ -334,7 +342,7 @@ public void loadRecipes() { ItemList.Electric_Motor_LuV.get(16), ItemList.Conveyor_Module_LuV.get(8), ItemList.Robot_Arm_LuV.get(4), - GTOreDictUnificator.get(OrePrefixes.circuit, Materials.Ultimate, 24), + GTOreDictUnificator.get(OrePrefixes.circuit, Materials.ZPM, 24), GTUtility.getIntegratedCircuit(17)) .duration(123 * 20) @@ -352,8 +360,7 @@ public void loadRecipes() { GTModHandler.getModItem("gregtech", "gt.blockmachines", 1, 555), GTModHandler.getModItem("gregtech", "gt.blockmachines", 1, 505), GTModHandler.getModItem("gregtech", "gt.blockmachines", 1, 515), - GTModHandler.getModItem("gregtech", "gt.blockmachines", 1, 275), - GTModHandler.getModItem("miscutils", "blockProjectBench", 1)) + GTModHandler.getModItem("gregtech", "gt.blockmachines", 1, 275)) .duration(4 * 20) .eut(TierEU.IV) .addTo(Assem); @@ -384,8 +391,8 @@ public void loadRecipes() { new Object[] { getGM(23520, 64), getGM(23527, 64), getGM(23528, 64), getGM(10886, 64), OTHItemList.itemEnqingM.get(64), OTHItemList.itemEnqingM.get(64), OTHItemList.itemEnqingM.get(64), OTHItemList.itemEnqingM.get(64), ItemList.Robot_Arm_UMV.get(64), - new Object[] { OrePrefixes.circuit.get(Materials.Cosmic), 64 }, - new Object[] { OrePrefixes.circuit.get(Materials.Cosmic), 64 }, ItemList.Field_Generator_UMV.get(64), + new Object[] { OrePrefixes.circuit.get(Materials.MAX), 64 }, + new Object[] { OrePrefixes.circuit.get(Materials.MAX), 64 }, ItemList.Field_Generator_UMV.get(64), new ItemStack(Items.bread, 64), new ItemStack(Items.nether_star, 64), getGM(15297, 64), getGM(15197, 64), @@ -403,7 +410,7 @@ public void loadRecipes() { .fluidInputs(FluidRegistry.getFluidStack("molten.staballoy", 16 * 144)) .itemInputs( getGM(1184, 64), - GTOreDictUnificator.get(OrePrefixes.circuit, Materials.Ultimate, 64), + GTOreDictUnificator.get(OrePrefixes.circuit, Materials.ZPM, 64), ItemList.Electric_Pump_IV.get(64), GTModHandler.getModItem("GoodGenerator", "huiCircuit", 16), GTModHandler.getModItem("gregtech", "gt.metaitem.03", 48, 32052), @@ -433,7 +440,7 @@ public void loadRecipes() { getGM(849, 64), getGM(849, 64), ItemList.Electric_Piston_LuV.get(16), - GTOreDictUnificator.get(OrePrefixes.circuit, Materials.Superconductor, 64), + GTOreDictUnificator.get(OrePrefixes.circuit, Materials.UHV, 64), GTUtility.getIntegratedCircuit(17)) .fluidInputs(new FluidStack(FluidRegistry.getFluidID("molten.indalloy140"), 123 * 144)) .duration(123 * 20) @@ -449,8 +456,8 @@ public void loadRecipes() { new Object[] { getGM(209, 64), getGM(209, 64), getGM(209, 64), getGM(209, 64), getGM(15300, 1), getGM(1445, 4), new ItemStack(ItemLoader.itemLeekBox, 64, 0), GTModHandler.getModItem("GoodGenerator", "compactFusionCoil", 16, 2), - ItemList.Field_Generator_EV.get(64), new Object[] { OrePrefixes.circuit.get(Materials.Elite), 64 }, - new Object[] { OrePrefixes.circuit.get(Materials.Elite), 64 }, ItemList.Field_Generator_EV.get(64), + ItemList.Field_Generator_EV.get(64), new Object[] { OrePrefixes.circuit.get(Materials.IV), 64 }, + new Object[] { OrePrefixes.circuit.get(Materials.IV), 64 }, ItemList.Field_Generator_EV.get(64), GTModHandler.getModItem("gregtech", "gt.1080k_Space_Coolantcell", 64), GTModHandler.getModItem("gregtech", "gt.1080k_Space_Coolantcell", 64), GTModHandler.getModItem("gregtech", "gt.1080k_Space_Coolantcell", 64), ItemList.Electric_Pump_HV.get(64) @@ -470,8 +477,8 @@ public void loadRecipes() { new Object[] { getGM(296, 64), getGM(296, 64), getGM(296, 64), getGM(296, 64), getGM(15300, 1), getGM(1445, 4), new ItemStack(ItemLoader.itemLeekBox, 64, 0), GTModHandler.getModItem("GoodGenerator", "compactFusionCoil", 16, 2), - ItemList.Field_Generator_EV.get(64), new Object[] { OrePrefixes.circuit.get(Materials.Elite), 64 }, - new Object[] { OrePrefixes.circuit.get(Materials.Elite), 64 }, ItemList.Field_Generator_EV.get(64), + ItemList.Field_Generator_EV.get(64), new Object[] { OrePrefixes.circuit.get(Materials.IV), 64 }, + new Object[] { OrePrefixes.circuit.get(Materials.IV), 64 }, ItemList.Field_Generator_EV.get(64), GTModHandler.getModItem("gregtech", "gt.1080k_Space_Coolantcell", 64), GTModHandler.getModItem("gregtech", "gt.1080k_Space_Coolantcell", 64), GTModHandler.getModItem("gregtech", "gt.1080k_Space_Coolantcell", 64), ItemList.Electric_Pump_HV.get(64) @@ -591,7 +598,7 @@ public void loadRecipes() { GTModHandler.getModItem("gregtech", "gt.blockmachines", 64, 31027), GTModHandler.getModItem("gregtech", "gt.blockmachines", 64, 31028), GTModHandler.getModItem("gregtech", "gt.blockmachines", 64, 995), - GTOreDictUnificator.get(OrePrefixes.circuit, Materials.Infinite, 64)) + GTOreDictUnificator.get(OrePrefixes.circuit, Materials.MAX, 64)) .itemOutputs(GTModHandler.getModItem("gregtech", "gt.blockmachines", 1, IDs + 24)) .fluidInputs(FluidRegistry.getFluidStack("advancedglue", 262144)) .duration(114514) @@ -993,8 +1000,8 @@ public void loadRecipes() { GTModHandler.getModItem("gregtech", "gt.blockmachines", 1, 15300), GTModHandler.getModItem("gregtech", "gt.blockcasings", 1, 15), ItemList.Emitter_ZPM.get(64), - new Object[] { OrePrefixes.circuit.get(Materials.Superconductor), 64 }, - new Object[] { OrePrefixes.circuit.get(Materials.Superconductor), 64 }, + new Object[] { OrePrefixes.circuit.get(Materials.UHV), 64 }, + new Object[] { OrePrefixes.circuit.get(Materials.UHV), 64 }, GTOreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorZPM, 64), GTModHandler.getModItem("gregtech", "gt.blockmachines", 64, 32001), GTModHandler.getModItem("gregtech", "gt.blockmachines", 1, 12732), @@ -1109,13 +1116,13 @@ public void loadRecipes() { ItemList.EnergisedTesseract.get(16), OTHItemList.UEVA.get(4), OTHItemList.UEVB.get(4), - GTOreDictUnificator.get(OrePrefixes.circuit, Materials.Infinite, 64), - GTOreDictUnificator.get(OrePrefixes.circuit, Materials.Bio, 64), - GTOreDictUnificator.get(OrePrefixes.circuit, Materials.Optical, 64), + GTOreDictUnificator.get(OrePrefixes.circuit, Materials.MAX, 64), + GTOreDictUnificator.get(OrePrefixes.circuit, Materials.ZPM, 64), + GTOreDictUnificator.get(OrePrefixes.circuit, Materials.UHV, 64), GTOreDictUnificator.get(OrePrefixes.wireGt04, Materials.SuperconductorUEV, 64)) .fluidInputs( Materials.SuperCoolant.getFluid(123123), - (MaterialsUEVplus.TranscendentMetal.getMolten(114514)), + (Materials.TranscendentMetal.getMolten(114514)), (Materials.Infinity.getMolten(144 * 1024))) .itemOutputs(OTHItemList.OTEBBPlasmaForge.get(1)) .eut(RECIPE_UEV) @@ -1144,9 +1151,9 @@ public void loadRecipes() { GTOreDictUnificator.get(OrePrefixes.plateDense, Materials.Neutronium, 64)) .itemOutputs(eM_Spacetime.get(1)) .fluidInputs( - MaterialsUEVplus.MagnetohydrodynamicallyConstrainedStarMatter.getMolten(INGOTS * 1024), + Materials.WhiteDwarfMatter.getMolten(INGOTS * 1024), Materials.Infinity.getMolten(INGOTS * 1024), - MaterialsUEVplus.SpaceTime.getMolten(INGOTS * 256)) + Materials.SpaceTime.getMolten(INGOTS * 256)) .duration(114514 * 20) .eut(RECIPE_UMV) .addTo(AssemblyLine); @@ -1182,7 +1189,7 @@ public void loadRecipes() { GTOreDictUnificator.get(OrePrefixes.circuit, Materials.UV, 2), CustomItemList.DATApipe.get(16), ItemList.Electric_Motor_UV.get(4), - GTModHandler.getModItem("IC2", "reactorVentDiamond", 4, 1)) + GTModHandler.getModItem("IC2", "reactorVentDiamond", 1, 1)) .itemOutputs(OTHItemList.OTEHatchRack.get(1)) .fluidInputs(Materials.Iridium.getMolten(9 * INGOTS)) .requiresCleanRoom() @@ -1224,15 +1231,15 @@ public void loadRecipes() { ItemList.Field_Generator_UHV.get(32), ItemList.Field_Generator_UV.get(64), GTOreDictUnificator.get(OrePrefixes.wireGt08, Materials.SuperconductorUHV, 64), - new Object[] { OrePrefixes.circuit.get(Materials.Bio), 64 }, + new Object[] { OrePrefixes.circuit.get(Materials.ZPM), 64 }, GTModHandler.getModItem(GoodGenerator.ID, "advancedRadiationProtectionPlate", 64), GTOreDictUnificator.get(OrePrefixes.pipeHuge, Materials.Infinity, 16), GTOreDictUnificator.get(OrePrefixes.pipeHuge, Materials.Infinity, 16), GTModHandler.getModItem(GoodGenerator.ID, "advancedRadiationProtectionPlate", 64), - GTModHandler.getModItem(NewHorizonsCoreMod.ID, "item.RadoxPolymerLens", 64), + GTModHandler.getModItem(NewHorizonsCoreMod.ID, "RadoxPolymerLens", 64), ItemList.Circuit_Wafer_QPIC.get(64), GTOreDictUnificator.get(OrePrefixes.bolt, Materials.Thulium, 64), - GTModHandler.getModItem(NewHorizonsCoreMod.ID, "item.RadoxPolymerLens", 64)) + GTModHandler.getModItem(NewHorizonsCoreMod.ID, "RadoxPolymerLens", 64)) .fluidInputs( Materials.CosmicNeutronium.getMolten(92160), FluidRegistry.getFluidStack("molten.mutatedlivingsolder", 114514), @@ -1249,8 +1256,8 @@ public void loadRecipes() { .itemInputs( GTModHandler.getModItem(GregTech.ID, "gt.blockmachines", 64, 12735), OTHItemList.LCA.get(64), - new Object[] { OrePrefixes.circuit.get(Materials.Infinite), 64 }, - new Object[] { OrePrefixes.circuit.get(Materials.Infinite), 64 }, + new Object[] { OrePrefixes.circuit.get(Materials.MAX), 64 }, + new Object[] { OrePrefixes.circuit.get(Materials.MAX), 64 }, ItemList.Robot_Arm_UV.get(16), ItemList.Electric_Motor_UV.get(64), ItemList.Electric_Pump_UV.get(32), @@ -1272,13 +1279,13 @@ public void loadRecipes() { GTValues.RA.stdBuilder() .itemInputsUnsafe( ItemList.SpaceElevatorModulePumpT3.get(4), - GTOreDictUnificator.get(OrePrefixes.frameGt, MaterialsUEVplus.Universium, 8), + GTOreDictUnificator.get(OrePrefixes.frameGt, Materials.Universium, 8), GTOreDictUnificator.get(OrePrefixes.circuit, Materials.UXV, 16), ItemList.Electric_Pump_MAX.get(8), - GTOreDictUnificator.get(OrePrefixes.gearGt, MaterialsUEVplus.Universium, 8), - GTOreDictUnificator.get(OrePrefixes.screw, MaterialsUEVplus.BlackDwarfMatter, 64), - GTOreDictUnificator.get(OrePrefixes.plateDouble, MaterialsUEVplus.Universium, 16)) - .fluidInputs(MaterialsUEVplus.DimensionallyShiftedSuperfluid.getFluid(9216)) + GTOreDictUnificator.get(OrePrefixes.gearGt, Materials.Universium, 8), + GTOreDictUnificator.get(OrePrefixes.screw, Materials.BlackDwarfMatter, 64), + GTOreDictUnificator.get(OrePrefixes.plateDouble, Materials.Universium, 16)) + .fluidInputs(Materials.DimensionallyShiftedSuperfluid.getFluid(9216)) .itemOutputs(OTHItemList.SpaceElevatorModulePumpT4.get(1)) .duration(123 * 20) .eut(TierEU.RECIPE_UXV) @@ -1293,12 +1300,12 @@ public void loadRecipes() { new Object[] { ItemList.OilDrillInfinite.get(64), new ItemStack(ItemList.PlanetaryGasSiphonCasing.getItem(), 64), CustomItemList.enderLinkFluidCover.get(64), CustomItemList.enderLinkFluidCover.get(64), - GTOreDictUnificator.get(OrePrefixes.frameGt, MaterialsUEVplus.Universium, 4), + GTOreDictUnificator.get(OrePrefixes.frameGt, Materials.Universium, 4), new Object[] { OrePrefixes.circuit.get(Materials.UXV), 16 }, ItemList.Electric_Pump_MAX.get(8), - GTOreDictUnificator.get(OrePrefixes.gearGt, MaterialsUEVplus.Universium, 4), - GTOreDictUnificator.get(OrePrefixes.screw, MaterialsUEVplus.BlackDwarfMatter, 64) }, - new FluidStack[] { MaterialsUEVplus.DimensionallyShiftedSuperfluid.getFluid(9216), - MaterialsUEVplus.Universium.getMolten(2304) }, + GTOreDictUnificator.get(OrePrefixes.gearGt, Materials.Universium, 4), + GTOreDictUnificator.get(OrePrefixes.screw, Materials.BlackDwarfMatter, 64) }, + new FluidStack[] { Materials.DimensionallyShiftedSuperfluid.getFluid(9216), + Materials.Universium.getMolten(2304) }, OTHItemList.SpaceElevatorModulePumpT4.getInternalStack_unsafe(), 123 * 20, (int) TierEU.RECIPE_UXV); diff --git a/src/main/java/com/newmaa/othtech/recipe/RecipesMegaISAForge.java b/src/main/java/com/newmaa/othtech/recipe/RecipesMegaISAForge.java index 9345ccc3..82aafbd0 100644 --- a/src/main/java/com/newmaa/othtech/recipe/RecipesMegaISAForge.java +++ b/src/main/java/com/newmaa/othtech/recipe/RecipesMegaISAForge.java @@ -45,7 +45,7 @@ public void loadRecipes() { GTModHandler.getModItem("miscutils", "itemDustGermanium", 64), GTModHandler.getModItem("gregtech", "gt.metaitem.01", 64, 2044), GTModHandler.getModItem("gregtech", "gt.metaitem.01", 64, 2073), - GTModHandler.getModItem("dreamcraft", "item.LapotronDust", 64)) + GTModHandler.getModItem("dreamcraft", "LapotronDust", 64)) .fluidOutputs(new FluidStack(FluidRegistry.getFluid("molten.quantum"), 114)) .eut(TierEU.RECIPE_MAX) @@ -265,9 +265,9 @@ public void loadRecipes() { .itemInputs( GTUtility.getIntegratedCircuit(13), GTModHandler.getModItem("eternalsingularity", "eternal_singularity", 0), - GTOreDictUnificator.get(OrePrefixes.circuit, Materials.Optical, 64), - GTOreDictUnificator.get(OrePrefixes.circuit, Materials.Bio, 64), - GTOreDictUnificator.get(OrePrefixes.circuit, Materials.Infinite, 64), + GTOreDictUnificator.get(OrePrefixes.circuit, Materials.UHV, 64), + GTOreDictUnificator.get(OrePrefixes.circuit, Materials.LuV, 64), + GTOreDictUnificator.get(OrePrefixes.circuit, Materials.MAX, 64), ItemList.Robot_Arm_UIV.get(64), ItemList.Robot_Arm_UEV.get(64), ItemList.Robot_Arm_UHV.get(64)) @@ -319,8 +319,8 @@ public void loadRecipes() { .fluidInputs(FluidRegistry.getFluidStack("molten.solderingalloy", Integer.MAX_VALUE)) .itemInputs( setStackSize(GTModHandler.getModItem("gregtech", "gt.blockmachines", 1, 12730), Integer.MAX_VALUE), - setStackSize(GTModHandler.getModItem("dreamcraft", "item.StargateShieldingFoil", 1), 114514), - setStackSize(GTModHandler.getModItem("dreamcraft", "item.StargateFramePart", 1), 114514), + setStackSize(GTModHandler.getModItem("dreamcraft", "StargateShieldingFoil", 1), 114514), + setStackSize(GTModHandler.getModItem("dreamcraft", "StargateFramePart", 1), 114514), setStackSize(GTModHandler.getModItem("gregtech", "gt.blockmachines", 1, 15411), 123123123), setStackSize(new ItemStack(ItemLoader.itemLeekBox, 1), Integer.MAX_VALUE), setStackSize(new ItemStack(ItemLoader.itemZhangww, 1), Integer.MAX_VALUE), @@ -420,11 +420,11 @@ public void loadRecipes() { .itemInputs( OTHItemList.beeISAM.get(0), ItemList.Field_Generator_MAX.get(0), - GTModHandler.getModItem("dreamcraft", "item.StargateShieldingFoil", 0), + GTModHandler.getModItem("dreamcraft", "StargateShieldingFoil", 0), GTModHandler.getModItem("gregtech", "gt.metaitem.03", 0, 4143), GTModHandler.getModItem("gregtech", "gt.blockmachines", 0, 15411), GTModHandler.getModItem("gregtech", "gt.blockmachines", 0, 15415), - GTModHandler.getModItem("dreamcraft", "item.StargateCrystalDust", 64)) + GTModHandler.getModItem("dreamcraft", "StargateCrystalDust", 64)) .fluidInputs(FluidRegistry.getFluidStack("phononmedium", 256000)) .fluidOutputs(FluidRegistry.getFluidStack("quarkgluonplasma", 3690000)) .duration(123 * 20) diff --git a/src/main/java/com/newmaa/othtech/recipe/RecipesMegaQFT.java b/src/main/java/com/newmaa/othtech/recipe/RecipesMegaQFT.java index 741c5da6..de09815a 100644 --- a/src/main/java/com/newmaa/othtech/recipe/RecipesMegaQFT.java +++ b/src/main/java/com/newmaa/othtech/recipe/RecipesMegaQFT.java @@ -215,7 +215,7 @@ public void loadRecipes() { .eut(TierEU.MAX) .addTo(MQFT); GTValues.RA.stdBuilder() - .itemOutputs(GTModHandler.getModItem("dreamcraft", "item.PicoWafer", 64)) + .itemOutputs(GTModHandler.getModItem("dreamcraft", "PicoWafer", 64)) .itemInputs( GTModHandler.getModItem("gregtech", "gt.metaitem.03", 4, 32722), GTModHandler.getModItem("gregtech", "gt.metaitem.01", 64, 2387), diff --git a/src/main/java/com/newmaa/othtech/recipe/RecipesNASA.java b/src/main/java/com/newmaa/othtech/recipe/RecipesNASA.java index ed67fdf1..f5bbf874 100644 --- a/src/main/java/com/newmaa/othtech/recipe/RecipesNASA.java +++ b/src/main/java/com/newmaa/othtech/recipe/RecipesNASA.java @@ -47,173 +47,192 @@ private static void recipes_t1() final ItemStack g = ItemList.Field_Generator_LV.get(1); final ItemStack d = GTOreDictUnificator.get(OrePrefixes.toolHeadDrill, Materials.Titanium, 1); final Fluid i140 = FluidRegistry.getFluid("molten.indalloy140"); - // rocket - GTRecipeBuilder.builder() - .itemInputs( - f, - f, - f, - f, - f, - f, - f, - f, - f, - f, - f, - f, - f, - f, - f, - f, - f, - f, - f, - f, - f, - f, - f, - f, - f, - f, - f, - f, - f, - f, - f, - n, - f, - f, - f, - f, - f, - p, - l, - p, - f, - f, - f, - f, - p, - c, - p, - f, - f, - f, - f, - p, - sf1, - p, - f, - f, - f, - f1, - p, - sf1, - p, - f1, - f, - f, - f1, - f, - e, - f, - f1, - f) - .itemOutputs(GTModHandler.getModItem(GalacticraftCore.ID, "item.spaceship", 1, 0)) - .eut(100) - .duration(100) - .special(GTModHandler.getModItem(NewHorizonsCoreMod.ID, "item.SchematicsTier1", 0, 0)) - .addTo(NASA); - // drone - GTRecipeBuilder.builder() - .itemInputs( - f, - f, - f, - f, - f, - f, - f, - f, - f, - f, - f, - f, - f, - f, - f, - f, - s, - d, - a, - f, - f, - f, - f, - p, - p, - p, - f, - f, - f, - p, - f, - f, - f, - p, - f, - f, - p, - f, - c, - f, - p, - f, - f, - p, - f, - g, - f, - p, - f, - f, - p, - f, - f, - f, - p, - f, - f, - f, - p, - p, - p, - f, - f, - f, - f, - e, - f, - e, - f, - f) - .itemOutputs(GTModHandler.getModItem(GTNHIntergalactic.ID, "item.MiningDrone", 1, 0)) - .eut(100) - .duration(100) - .special(GTModHandler.getModItem(NewHorizonsCoreMod.ID, "item.SchematicsTier1", 0, 0)) - .addTo(NASA); + + // Only register NASA recipes if the required mods are present + ItemStack schematic = GTModHandler.getModItem(GalacticraftCore.ID, "item.SchematicsTier1", 0, 0); + boolean hasSchematic = schematic != null; + ItemStack rocketOutput = GTModHandler.getModItem(GalacticraftCore.ID, "item.spaceship", 1, 0); + ItemStack droneOutput = GTModHandler.getModItem(GTNHIntergalactic.ID, "item.MiningDrone", 1, 0); + ItemStack platingOutput = p != null ? new ItemStack(p.getItem(), 64) : null; + + // rocket: exactly 70 item inputs to match maxIO(70, 1, 7, 3) + if (hasSchematic && rocketOutput != null + && n != null + && p != null + && l != null + && c != null + && sf1 != null + && f1 != null + && e != null) { + GTRecipeBuilder.builder() + .itemInputs( + f, + f, + f, + f, + f, + f, + f, + f, + f, + f, + f, + f, + f, + f, + f, + f, + f, + f, + f, + f, + f, + f, + f, + f, + f, + f, + f, + f, + f, + f, + f, + n, + f, + f, + f, + f, + f, + p, + l, + p, + f, + f, + f, + f, + p, + c, + p, + f, + f, + f, + f, + p, + sf1, + p, + f, + f, + f, + f1, + p, + sf1, + p, + f1, + f, + f, + f1, + f, + e, + f, + f1, + f) + .itemOutputs(rocketOutput) + .eut(100) + .duration(100) + .special(schematic) + .addTo(NASA); + // drone: exactly 70 item inputs + GTRecipeBuilder.builder() + .itemInputs( + f, + f, + f, + f, + f, + f, + f, + f, + f, + f, + f, + f, + f, + f, + f, + f, + s, + d, + a, + f, + f, + f, + f, + p, + p, + p, + f, + f, + f, + p, + f, + f, + f, + p, + f, + f, + p, + f, + c, + f, + p, + f, + f, + p, + f, + g, + f, + p, + f, + f, + p, + f, + f, + f, + p, + f, + f, + f, + p, + p, + p, + f, + f, + f, + f, + e, + f, + e, + f, + f) + .itemOutputs(droneOutput) + .eut(100) + .duration(100) + .special(schematic) + .addTo(NASA); + } // plating - GTRecipeBuilder.builder() - .itemInputsUnsafe( - Materials.Bronze.getPlates(48 * 3), - Materials.Aluminium.getPlates(48 * 3), - Materials.Steel.getPlates(48 * 3)) - .itemOutputs(new ItemStack(p.getItem(), 64)) - .fluidInputs(new FluidStack(i140, 144)) - .special(GTModHandler.getModItem(NewHorizonsCoreMod.ID, "item.SchematicsTier1", 0, 0)) - .duration(240) - .eut(1920) - .addTo(NASA); + if (hasSchematic && platingOutput != null) { + GTRecipeBuilder.builder() + .itemInputsUnsafe( + Materials.Bronze.getPlates(48 * 3), + Materials.Aluminium.getPlates(48 * 3), + Materials.Steel.getPlates(48 * 3)) + .itemOutputs(platingOutput) + .fluidInputs(new FluidStack(i140, 144)) + .special(schematic) + .duration(240) + .eut(1920) + .addTo(NASA); + } } } diff --git a/src/main/java/com/newmaa/othtech/recipe/RecipesNaquadah.java b/src/main/java/com/newmaa/othtech/recipe/RecipesNaquadah.java index 13eacfa0..1ca9d3b9 100644 --- a/src/main/java/com/newmaa/othtech/recipe/RecipesNaquadah.java +++ b/src/main/java/com/newmaa/othtech/recipe/RecipesNaquadah.java @@ -16,7 +16,6 @@ import goodgenerator.items.GGMaterial; import gregtech.api.enums.GTValues; import gregtech.api.enums.Materials; -import gregtech.api.enums.MaterialsUEVplus; import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.TierEU; import gregtech.api.recipe.RecipeMaps; @@ -63,7 +62,7 @@ public void loadRecipes() { setStackSize(GTModHandler.getModItem("bartworks", "gt.bwMetaGenerateddust", 1, 10022), 192), setStackSize(GTModHandler.getModItem("bartworks", "gt.bwMetaGenerateddust", 1, 10023), 1024), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.DraconiumAwakened, 1), 1024), - setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, MaterialsUEVplus.TranscendentMetal, 1), 64), + setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.TranscendentMetal, 1), 64), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Bedrockium, 1), 1024), setStackSize(GTModHandler.getModItem("bartworks", "gt.bwMetaGenerateddust", 1, 10001), 25600), setStackSize(GTModHandler.getModItem("miscutils", "itemDustChromaticGlass", 1), 1440)) @@ -86,7 +85,7 @@ public void loadRecipes() { setStackSize(GGMaterial.atomicSeparationCatalyst.get(OrePrefixes.dust, 1), 192), setStackSize(GGMaterial.orundum.get(OrePrefixes.dust, 1), 1024), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.DraconiumAwakened, 1), 1024), - setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, MaterialsUEVplus.TranscendentMetal, 1), 64), + setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.TranscendentMetal, 1), 64), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Bedrockium, 1), 1024), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Tritanium, 1), 32 * 3), setStackSize(MaterialsElements.STANDALONE.ASTRAL_TITANIUM.getDust(1), 192), @@ -109,7 +108,7 @@ public void loadRecipes() { setStackSize(GGMaterial.atomicSeparationCatalyst.get(OrePrefixes.dust, 1), 192), setStackSize(GGMaterial.orundum.get(OrePrefixes.dust, 1), 1024), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.DraconiumAwakened, 1), 1024), - setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, MaterialsUEVplus.TranscendentMetal, 1), 64), + setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.TranscendentMetal, 1), 64), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Bedrockium, 1), 1024), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Tritanium, 1), 48 * 3), setStackSize(MaterialsElements.STANDALONE.CELESTIAL_TUNGSTEN.getDust(1), 192), diff --git a/src/main/java/com/newmaa/othtech/recipe/RecipesNewWetware.java b/src/main/java/com/newmaa/othtech/recipe/RecipesNewWetware.java index 1a41c63f..16e012f8 100644 --- a/src/main/java/com/newmaa/othtech/recipe/RecipesNewWetware.java +++ b/src/main/java/com/newmaa/othtech/recipe/RecipesNewWetware.java @@ -61,7 +61,7 @@ public void loadRecipes() { ItemList.Circuit_Parts_Reinforced_Glass_Tube.get(16), GTOreDictUnificator.get(OrePrefixes.pipeTiny, Materials.Polybenzimidazole, 12), GTOreDictUnificator.get(OrePrefixes.itemCasing, Materials.Naquadria, 16), - GTOreDictUnificator.get(OrePrefixes.foil, Materials.Silicone, 64), + GTOreDictUnificator.get(OrePrefixes.foil, Materials.RubberSilicone, 64), GTOreDictUnificator.get(OrePrefixes.bolt, Materials.HSSS, 32), GTOreDictUnificator.get(OrePrefixes.bolt, Materials.Thaumium, 32)) .itemOutputs(ItemList.Circuit_Chip_NeuroCPU.get(1)) @@ -81,7 +81,7 @@ public void loadRecipes() { ItemList.Circuit_Parts_Reinforced_Glass_Tube.get(16), GTOreDictUnificator.get(OrePrefixes.pipeTiny, Materials.Polybenzimidazole, 12), GTOreDictUnificator.get(OrePrefixes.itemCasing, Materials.ElectrumFlux, 16), - GTOreDictUnificator.get(OrePrefixes.foil, Materials.Silicone, 64), + GTOreDictUnificator.get(OrePrefixes.foil, Materials.RubberSilicone, 64), GTOreDictUnificator.get(OrePrefixes.bolt, Materials.HSSS, 64), GTOreDictUnificator.get(OrePrefixes.bolt, Materials.Thaumium, 64)) .itemOutputs(ItemList.Circuit_Chip_BioCPU.get(1)) @@ -98,8 +98,8 @@ public void loadRecipes() { GTModHandler.getModItem("bartworks", "gt.bwMetaGeneratedItem0", 1, 32746), OTHItemList.encapsulatedBranins.get(4), GTOreDictUnificator.get(OrePrefixes.plate, Materials.Polybenzimidazole, 32), - GTOreDictUnificator.get(OrePrefixes.plateDouble, Materials.Silicone, 64), - GTOreDictUnificator.get(OrePrefixes.plateDouble, Materials.Silicone, 64), + GTOreDictUnificator.get(OrePrefixes.plateDouble, Materials.RubberSilicone, 64), + GTOreDictUnificator.get(OrePrefixes.plateDouble, Materials.RubberSilicone, 64), GTOreDictUnificator.get(OrePrefixes.plate, Materials.HSSS, 64), GTOreDictUnificator.get(OrePrefixes.plate, Materials.Thaumium, 64)) .fluidInputs(Materials.BioMediumSterilized.getFluid(6400)) @@ -113,8 +113,8 @@ public void loadRecipes() { GTModHandler.getModItem("bartworks", "gt.bwMetaGeneratedItem0", 1, 32750), OTHItemList.encapsulatedBranins.get(2), GTOreDictUnificator.get(OrePrefixes.plate, Materials.Polybenzimidazole, 32), - GTOreDictUnificator.get(OrePrefixes.plateDouble, Materials.Silicone, 64), - GTOreDictUnificator.get(OrePrefixes.plateDouble, Materials.Silicone, 64), + GTOreDictUnificator.get(OrePrefixes.plateDouble, Materials.RubberSilicone, 64), + GTOreDictUnificator.get(OrePrefixes.plateDouble, Materials.RubberSilicone, 64), GTOreDictUnificator.get(OrePrefixes.plate, Materials.HSSS, 64), GTOreDictUnificator.get(OrePrefixes.plate, Materials.Thaumium, 64)) .fluidInputs(Materials.GrowthMediumSterilized.getFluid(6400)) diff --git a/src/main/java/com/newmaa/othtech/recipe/RecipesOTEFakeQuantumComputerData.java b/src/main/java/com/newmaa/othtech/recipe/RecipesOTEFakeQuantumComputerData.java index eb1edfd5..6c184a48 100644 --- a/src/main/java/com/newmaa/othtech/recipe/RecipesOTEFakeQuantumComputerData.java +++ b/src/main/java/com/newmaa/othtech/recipe/RecipesOTEFakeQuantumComputerData.java @@ -4,15 +4,21 @@ public class RecipesOTEFakeQuantumComputerData extends QuantumComputerRecipeData { - public final float heatConstant, coolConstant, computation; + public final float heatConstant, coolConstant, computation, maxHeat; public final boolean subZero; public RecipesOTEFakeQuantumComputerData(float heatConstant, float coolConstant, float computation, boolean subZero) { - super(heatConstant, coolConstant, computation, 0, subZero); + this(heatConstant, coolConstant, computation, 0, subZero); + } + + public RecipesOTEFakeQuantumComputerData(float heatConstant, float coolConstant, float computation, float maxHeat, + boolean subZero) { + super(heatConstant, coolConstant, computation, maxHeat, subZero); this.heatConstant = heatConstant; this.coolConstant = coolConstant; this.computation = computation; + this.maxHeat = maxHeat; this.subZero = subZero; } } diff --git a/src/main/java/com/newmaa/othtech/recipe/RecipesSunFactoryEnqing.java b/src/main/java/com/newmaa/othtech/recipe/RecipesSunFactoryEnqing.java index 0f944a4f..d02f1677 100644 --- a/src/main/java/com/newmaa/othtech/recipe/RecipesSunFactoryEnqing.java +++ b/src/main/java/com/newmaa/othtech/recipe/RecipesSunFactoryEnqing.java @@ -61,7 +61,6 @@ import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; -import gregtech.api.enums.MaterialsUEVplus; import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.TierEU; import gregtech.api.recipe.RecipeMap; @@ -236,9 +235,7 @@ public void loadRecipes() { RecipeBuilder.builder() .itemInputs( GTUtility.getIntegratedCircuit(23), - setStackSize( - GTOreDictUnificator.get(OrePrefixes.dust, Materials.Longasssuperconductornameforuvwire, 1), - 300), + setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.SuperconductorUV, 1), 300), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Neutronium, 1), 300), setStackSize(GTModHandler.getModItem("gregtech", "gt.metaitem.03", 1, 32076), 64), setStackSize(GTOreDictUnificator.get(OrePrefixes.plateDense, Materials.Iron, 1), 59), @@ -254,9 +251,7 @@ public void loadRecipes() { RecipeBuilder.builder() .itemInputs( GTUtility.getIntegratedCircuit(24), - setStackSize( - GTOreDictUnificator.get(OrePrefixes.dust, Materials.Longasssuperconductornameforuvwire, 1), - 300), + setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.SuperconductorUV, 1), 300), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Neutronium, 1), 300), setStackSize(GTModHandler.getModItem("gregtech", "gt.metaitem.03", 1, 32076), 64), setStackSize(GTOreDictUnificator.get(OrePrefixes.plateDense, Materials.Iron, 1), 59), @@ -309,7 +304,7 @@ public void loadRecipes() { Materials.CosmicNeutronium.getDust(32), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.SuperconductorUIVBase, 1), 176), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.SuperconductorUMVBase, 1), 176)) - .fluidInputs(MaterialsUEVplus.SpaceTime.getMolten(32 * 667)) + .fluidInputs(Materials.SpaceTime.getMolten(32 * 667)) .itemOutputs( setStackSize(GTModHandler.getModItem(modsEnum.TwistSpaceTechnology.ID, "MetaItem01", 1, 30), 2048 * a)) @@ -320,7 +315,7 @@ public void loadRecipes() { // Yellow RecipeBuilder.builder() .itemInputs( - setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Plastic, 1), 217), + setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Polyethylene, 1), 217), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Tantalum, 1), 58), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Carbon, 1), 32), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Platinum, 1), 32), @@ -343,7 +338,7 @@ public void loadRecipes() { .addTo(SMD); RecipeBuilder.builder() .itemInputs( - setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Plastic, 1), 217), + setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Polyethylene, 1), 217), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Tantalum, 1), 58), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Carbon, 1), 32), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Platinum, 1), 32), @@ -415,20 +410,13 @@ public void loadRecipes() { RecipeBuilder.builder() .itemInputs( setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Carbon, 1), 83), - setStackSize( - GTOreDictUnificator.get( - OrePrefixes.dust, - Materials.Tetraindiumditindibariumtitaniumheptacoppertetrakaidekaoxid, - 1), - 72), + setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.CosmicNeutronium, 1), 72), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Draconium, 1), 32), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Naquadria, 1), 32), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.BlackPlutonium, 1), 32), setStackSize(GTModHandler.getModItem("bartworks", "gt.bwMetaGenerateddust", 1, 10105), 32), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Osmium, 1), 31), - setStackSize( - GTOreDictUnificator.get(OrePrefixes.dust, Materials.Tetranaquadahdiindiumhexaplatiumosminid, 1), - 28), + setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Infinity, 1), 28), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Tritanium, 1), 16), setStackSize(GTModHandler.getModItem("bartworks", "gt.bwMetaGenerateddust", 1, 10102), 8), setStackSize(GTModHandler.getModItem("miscutils", "itemDustPikyonium64B", 1), 16), @@ -450,20 +438,13 @@ public void loadRecipes() { RecipeBuilder.builder() .itemInputs( setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Carbon, 1), 83), - setStackSize( - GTOreDictUnificator.get( - OrePrefixes.dust, - Materials.Tetraindiumditindibariumtitaniumheptacoppertetrakaidekaoxid, - 1), - 72), + setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.CosmicNeutronium, 1), 72), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Draconium, 1), 32), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Naquadria, 1), 32), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.BlackPlutonium, 1), 32), setStackSize(GTModHandler.getModItem("bartworks", "gt.bwMetaGenerateddust", 1, 10105), 32), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Osmium, 1), 31), - setStackSize( - GTOreDictUnificator.get(OrePrefixes.dust, Materials.Tetranaquadahdiindiumhexaplatiumosminid, 1), - 28), + setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Infinity, 1), 28), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Tritanium, 1), 16), setStackSize(GTModHandler.getModItem("bartworks", "gt.bwMetaGenerateddust", 1, 10102), 8), setStackSize(GTModHandler.getModItem("miscutils", "itemDustPikyonium64B", 1), 16), @@ -486,20 +467,13 @@ public void loadRecipes() { RecipeBuilder.builder() .itemInputs( setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Carbon, 1), 83), - setStackSize( - GTOreDictUnificator.get( - OrePrefixes.dust, - Materials.Tetraindiumditindibariumtitaniumheptacoppertetrakaidekaoxid, - 1), - 72), + setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.CosmicNeutronium, 1), 72), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Draconium, 1), 32), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Naquadria, 1), 32), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.BlackPlutonium, 1), 32), setStackSize(GTModHandler.getModItem("bartworks", "gt.bwMetaGeneratedingot", 1, 10105), 32), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Osmium, 1), 31), - setStackSize( - GTOreDictUnificator.get(OrePrefixes.dust, Materials.Tetranaquadahdiindiumhexaplatiumosminid, 1), - 28), + setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Infinity, 1), 28), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Tritanium, 1), 16), setStackSize(GTModHandler.getModItem("bartworks", "gt.bwMetaGeneratedingot", 1, 10102), 8), setStackSize(GTModHandler.getModItem("miscutils", "itemIngotPikyonium64B", 1), 16), @@ -523,20 +497,13 @@ public void loadRecipes() { RecipeBuilder.builder() .itemInputs( setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Carbon, 1), 83), - setStackSize( - GTOreDictUnificator.get( - OrePrefixes.dust, - Materials.Tetraindiumditindibariumtitaniumheptacoppertetrakaidekaoxid, - 1), - 72), + setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.CosmicNeutronium, 1), 72), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Draconium, 1), 32), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Naquadria, 1), 32), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.BlackPlutonium, 1), 32), setStackSize(GTModHandler.getModItem("bartworks", "gt.bwMetaGeneratedingot", 1, 10105), 32), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Osmium, 1), 31), - setStackSize( - GTOreDictUnificator.get(OrePrefixes.dust, Materials.Tetranaquadahdiindiumhexaplatiumosminid, 1), - 28), + setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Infinity, 1), 28), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Tritanium, 1), 16), setStackSize(GTModHandler.getModItem("bartworks", "gt.bwMetaGeneratedingot", 1, 10102), 8), setStackSize(GTModHandler.getModItem("miscutils", "itemIngotPikyonium64B", 1), 16), @@ -1394,9 +1361,7 @@ public void loadRecipes() { setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Emerald, 1), 1024), GTUtility.getIntegratedCircuit(24)) .itemOutputs( - setStackSize( - GTModHandler.getModItem("dreamcraft", "item.EngineeringProcessorItemAdvEmeraldCore", a), - 1024)) + setStackSize(GTModHandler.getModItem("dreamcraft", "EngineeringProcessorItemAdvEmeraldCore", a), 1024)) .duration(114 * 20) .eut(TierEU.IV) @@ -1408,14 +1373,9 @@ public void loadRecipes() { setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Lead, 1), 36), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Aluminium, 1), 24), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Silver, 1), 20), - setStackSize(GTOreDictUnificator.get(OrePrefixes.circuit, Materials.Data, 1), 16), + setStackSize(GTOreDictUnificator.get(OrePrefixes.circuit, Materials.UHV, 1), 16), setStackSize(GTOreDictUnificator.get(OrePrefixes.plate, Materials.Obsidian, 1), 16), - setStackSize( - GTOreDictUnificator.get( - OrePrefixes.dust, - Materials.Tetraindiumditindibariumtitaniumheptacoppertetrakaidekaoxid, - 1), - 12), + setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.CosmicNeutronium, 1), 12), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.StainlessSteel, 1), 9 * 64), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Lapis, 1), 8 * 64), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Diamond, 1), 8 * 64), @@ -1512,8 +1472,8 @@ public void loadRecipes() { setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Bedrockium, 1), 144 * 256), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Draconium, 1), 144 * 256), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Diamond, 1), 144 * 256), - setStackSize(GTOreDictUnificator.get(OrePrefixes.circuit, Materials.Bio, 1), 90 * 256), - setStackSize(GTOreDictUnificator.get(OrePrefixes.circuit, Materials.Superconductor, 1), 48 * 256), + setStackSize(GTOreDictUnificator.get(OrePrefixes.circuit, Materials.ZPM, 1), 90 * 256), + setStackSize(GTOreDictUnificator.get(OrePrefixes.circuit, Materials.UHV, 1), 48 * 256), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Americium, 1), 54 * 256), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.CosmicNeutronium, 1), 54 * 256), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Infinity, 1), 54 * 256), @@ -1522,7 +1482,7 @@ public void loadRecipes() { setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.StainlessSteel, 1), 18 * 256), setStackSize(new ItemStack(Blocks.chest, 1), 18 * 256), setStackSize(GTModHandler.getModItem("eternalsingularity", "eternal_singularity", 1), 256), - GTModHandler.getModItem("dreamcraft", "item.EngineeringProcessorItemAdvEmeraldCore", 1)) + GTModHandler.getModItem("dreamcraft", "EngineeringProcessorItemAdvEmeraldCore", 1)) .duration(256 * 20 * 5) .eut(TierEU.UV) @@ -1537,7 +1497,7 @@ public void loadRecipes() { setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Infinity, 1), 8 * 256), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Diamond, 1), 8 * 256), setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Naquadria, 1), 32 * 256), - setStackSize(GTOreDictUnificator.get(OrePrefixes.circuit, Materials.Bio, 1), 6 * 256), + setStackSize(GTOreDictUnificator.get(OrePrefixes.circuit, Materials.ZPM, 1), 6 * 256), setStackSize(OTHItemList.dustIrOsSmM.get(64), 16 * 256), setStackSize(GTOreDictUnificator.get(OrePrefixes.wireGt02, Materials.SuperconductorUHV, 1), 26 * 256), setStackSize(GTModHandler.getModItem("gregtech", "Photonically Prepared Wafer", 1), 4 * 256)) diff --git a/src/main/java/com/newmaa/othtech/recipe/RecipesTangshanSteelFactory.java b/src/main/java/com/newmaa/othtech/recipe/RecipesTangshanSteelFactory.java index 6e713108..37592065 100644 --- a/src/main/java/com/newmaa/othtech/recipe/RecipesTangshanSteelFactory.java +++ b/src/main/java/com/newmaa/othtech/recipe/RecipesTangshanSteelFactory.java @@ -8,7 +8,6 @@ import com.newmaa.othtech.utils.RecipeBuilder; import gregtech.api.enums.Materials; -import gregtech.api.enums.MaterialsUEVplus; import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.TierEU; import gregtech.api.recipe.RecipeMap; @@ -990,8 +989,8 @@ public void loadRecipes() { FluidRegistry.getFluidStack("dimensionallytranscendentresidue", 64000 * 10000), FluidRegistry.getFluidStack("plasma.fermium", 448000)) .itemOutputs( - setStackSize(GTOreDictUnificator.get(OrePrefixes.ingot, MaterialsUEVplus.Mellion, 1), 64000 * 63), - setStackSize(GTOreDictUnificator.get(OrePrefixes.ingot, MaterialsUEVplus.Creon, 1), 64000 * 63)) + setStackSize(GTOreDictUnificator.get(OrePrefixes.ingot, Materials.Mellion, 1), 64000 * 63), + setStackSize(GTOreDictUnificator.get(OrePrefixes.ingot, Materials.Creon, 1), 64000 * 63)) .specialValue(13500) .eut(TierEU.MAX) .duration(80 * 512 * 20 * 63) @@ -999,9 +998,7 @@ public void loadRecipes() { // Six-Phased Copper RecipeBuilder.builder() .itemOutputs( - setStackSize( - GTOreDictUnificator.get(OrePrefixes.ingot, MaterialsUEVplus.SixPhasedCopper, 1), - 64000 * 72)) + setStackSize(GTOreDictUnificator.get(OrePrefixes.ingot, Materials.SixPhasedCopper, 1), 64000 * 72)) .itemInputs( setStackSize(GTModHandler.getModItem("Avaritia", "Singularity", 1, 5), 64000 * 8), setStackSize(GTModHandler.getModItem("miscutils", "itemDustCelestialTungsten", 1), 64000 * 72), @@ -1009,7 +1006,7 @@ public void loadRecipes() { setStackSize(GTModHandler.getModItem("miscutils", "itemDustHypogen", 1), 64000 * 36), setStackSize(GTModHandler.getModItem("miscutils", "itemDustChromaticGlass", 1), 64000 * 576), setStackSize(GTModHandler.getModItem("miscutils", "itemDustRhugnor", 1), 64000 * 18), - setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, MaterialsUEVplus.Mellion, 1), 64000 * 72)) + setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Mellion, 1), 64000 * 72)) .eut(TierEU.RECIPE_UXV) .duration(60 * 72 * 20 * 512) .specialValue(13000) @@ -1022,7 +1019,7 @@ public void loadRecipes() { setStackSize(Materials.Tartarite.getDust(1), 1000 * 2160), setStackSize(Materials.Vanadium.getDust(1), 1000 * 240), setStackSize(Materials.BlackPlutonium.getDust(1), 1000 * 80), - setStackSize(MaterialsUEVplus.TranscendentMetal.getDust(1), 1000 * 2160), + setStackSize(Materials.TranscendentMetal.getDust(1), 1000 * 2160), setStackSize(Materials.Naquadria.getDust(1), 1000 * 560), setStackSize(Materials.Bedrockium.getDust(1), 1000 * 320), setStackSize(Materials.Infinity.getDust(1), 1000 * 1080), @@ -1032,7 +1029,7 @@ public void loadRecipes() { setStackSize(GTOreDictUnificator.get(OrePrefixes.dust, Materials.InfusedEarth, 1), 1000 * 180), GTUtility.getIntegratedCircuit(11)) .fluidInputs(FluidRegistry.getFluidStack("dimensionallytranscendentresidue", 1000 * 1080000)) - .fluidOutputs(MaterialsUEVplus.MoltenProtoHalkoniteBase.getFluid(1244160000)) + .fluidOutputs(Materials.MoltenProtoHalkoniteBase.getFluid(1244160000)) .specialValue(10000) .eut(TierEU.UEV) diff --git a/src/main/java/com/newmaa/othtech/utils/RecipeBuilder.java b/src/main/java/com/newmaa/othtech/utils/RecipeBuilder.java index 8c1e1b8f..9ffc082b 100644 --- a/src/main/java/com/newmaa/othtech/utils/RecipeBuilder.java +++ b/src/main/java/com/newmaa/othtech/utils/RecipeBuilder.java @@ -101,7 +101,10 @@ public RecipeBuilder addTo(RecipeMap recipeMap) { inputItems, outputItems, null, + null, outputChance, + null, + null, inputFluids, outputFluids, duration, diff --git a/src/main/java/com/newmaa/othtech/utils/Utils.java b/src/main/java/com/newmaa/othtech/utils/Utils.java index 33c6c717..146fbbe6 100644 --- a/src/main/java/com/newmaa/othtech/utils/Utils.java +++ b/src/main/java/com/newmaa/othtech/utils/Utils.java @@ -298,6 +298,22 @@ public static int safeInt(long number, int margin) { return number > Integer.MAX_VALUE - margin ? Integer.MAX_VALUE - margin : (int) number; } + /** + * Recursively checks an Object array for null ItemStacks or nested null items. + * Used to validate recipe inputs before passing to TTRecipeAdder. + */ + public static boolean hasNullItem(Object... items) { + if (items == null) return true; + for (Object item : items) { + if (item == null) return true; + if (item instanceof ItemStack && isStackInvalid((ItemStack) item)) return true; + if (item instanceof Object[]) { + if (hasNullItem((Object[]) item)) return true; + } + } + return false; + } + public static ItemStack[] sortNoNullArray(ItemStack... itemStacks) { if (itemStacks == null) return null; List list = new ArrayList<>(); diff --git a/src/main/java/com/newmaa/othtech/utils/rewrites/OTHItemID.java b/src/main/java/com/newmaa/othtech/utils/rewrites/OTHItemID.java index 8518bad8..6be5bc69 100644 --- a/src/main/java/com/newmaa/othtech/utils/rewrites/OTHItemID.java +++ b/src/main/java/com/newmaa/othtech/utils/rewrites/OTHItemID.java @@ -102,24 +102,24 @@ public OTHItemID setNbt(NBTTagCompound nbt) { } @Override - protected Item item() { + public Item item() { return item; } @Override - protected int metaData() { + public int metaData() { return metaData; } @Nullable @Override - protected NBTTagCompound nbt() { + public NBTTagCompound nbt() { return nbt; } @Nullable @Override - protected Integer stackSize() { + public Integer stackSize() { // todo return null; } diff --git a/src/main/resources/assets/123technology/lang/en_US.lang b/src/main/resources/assets/123technology/lang/en_US.lang index 0042d1f1..7895176d 100644 --- a/src/main/resources/assets/123technology/lang/en_US.lang +++ b/src/main/resources/assets/123technology/lang/en_US.lang @@ -712,3 +712,5 @@ ote.la.umv=UMV 1,073,741,824A Laser Source Hatch ote.la.umvb=UMV 1,073,741,824A Laser Target Hatch ote.la.uxv=UXV 1,073,741,824A Laser Source Hatch ote.la.uxvb=UXV 1,073,741,824A Laser Target Hatch + +oth.clone.whereami=where am i? diff --git a/src/main/resources/assets/123technology/lang/zh_CN.lang b/src/main/resources/assets/123technology/lang/zh_CN.lang index bace978d..5905370a 100644 --- a/src/main/resources/assets/123technology/lang/zh_CN.lang +++ b/src/main/resources/assets/123technology/lang/zh_CN.lang @@ -711,3 +711,5 @@ ote.la.umv=UMV 1,073,741,824A 激光源仓 ote.la.umvb=UMV 1,073,741,824A 激光靶仓 ote.la.uxv=UXV 1,073,741,824A 激光源仓 ote.la.uxvb=UXV 1,073,741,824A 激光靶仓 + +oth.clone.whereami=我在哪里?