aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormiozune <miozune@gmail.com>2023-12-04 08:11:34 +0900
committerGitHub <noreply@github.com>2023-12-04 00:11:34 +0100
commit981df39ed10c780e38d91503de42dcd46c2e47e4 (patch)
tree13591ba87d0eb3bff575a405a3cd25360d3dd961
parentc8fc878cd693b454d500f1cae611a363b59914ea (diff)
downloadGT5-Unofficial-981df39ed10c780e38d91503de42dcd46c2e47e4.tar.gz
GT5-Unofficial-981df39ed10c780e38d91503de42dcd46c2e47e4.tar.bz2
GT5-Unofficial-981df39ed10c780e38d91503de42dcd46c2e47e4.zip
Migrate to new RecipeMap (#219)
* Migrate GG recipemaps * Migrate the rest * Split classes, renames, more adapt to GT changes * Update GT to adapt to MaceratorBackend removal * update gradle+deps+bs --------- Co-authored-by: Martin Robertz <dream-master@gmx.net> Co-authored-by: BlueWeabo <ilia.iliev2005@gmail.com>
-rw-r--r--build.gradle30
-rw-r--r--dependencies.gradle11
-rw-r--r--gradle/wrapper/gradle-wrapper.jarbin62076 -> 63375 bytes
-rw-r--r--gradle/wrapper/gradle-wrapper.properties3
-rwxr-xr-xgradlew5
-rw-r--r--src/main/java/goodgenerator/api/recipe/ComponentAssemblyLineFrontend.java44
-rw-r--r--src/main/java/goodgenerator/api/recipe/ExtremeHeatExchangerBackend.java25
-rw-r--r--src/main/java/goodgenerator/api/recipe/ExtremeHeatExchangerFrontend.java58
-rw-r--r--src/main/java/goodgenerator/api/recipe/ExtremeHeatExchangerRecipe.java66
-rw-r--r--src/main/java/goodgenerator/api/recipe/GoodGeneratorRecipeMaps.java58
-rw-r--r--src/main/java/goodgenerator/api/recipe/PreciseAssemblerFrontend.java39
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/ComponentAssemblyLine.java7
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/ExtremeHeatExchanger.java25
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/FuelRefineFactory.java7
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/GTMetaTileEntity/DieselGenerator.java9
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/LargeFusionComputer1.java13
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/LargeFusionComputer2.java13
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/LargeFusionComputer3.java13
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/LargeFusionComputer4.java14
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/LargeFusionComputer5.java14
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/MultiNqGenerator.java10
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/NeutronActivator.java7
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/PreciseAssembler.java51
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/UniversalChemicalFuelEngine.java14
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/base/LargeFusionComputer.java41
-rw-r--r--src/main/java/goodgenerator/crossmod/nei/IMCForNEI.java62
-rw-r--r--src/main/java/goodgenerator/loader/ComponentAssemblyLineRecipeLoader.java3
-rw-r--r--src/main/java/goodgenerator/loader/Loaders.java2
-rw-r--r--src/main/java/goodgenerator/loader/NaquadahReworkRecipeLoader.java101
-rw-r--r--src/main/java/goodgenerator/loader/RecipeLoader_02.java8
-rw-r--r--src/main/java/goodgenerator/util/MyRecipeAdder.java551
-rw-r--r--src/main/resources/assets/goodgenerator/lang/en_US.lang23
-rw-r--r--src/main/resources/assets/goodgenerator/lang/zh_CN.lang21
33 files changed, 567 insertions, 781 deletions
diff --git a/build.gradle b/build.gradle
index e59189c895..8507c7dfbd 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,4 +1,4 @@
-//version: 1697697256
+//version: 1701530445
/*
DO NOT CHANGE THIS FILE!
Also, you may replace this file at any time if there is an update available.
@@ -28,27 +28,12 @@ import java.util.concurrent.TimeUnit
buildscript {
repositories {
- mavenCentral()
-
- maven {
- name 'forge'
- url 'https://maven.minecraftforge.net'
- }
maven {
// GTNH RetroFuturaGradle and ASM Fork
name "GTNH Maven"
url "http://jenkins.usrv.eu:8081/nexus/content/groups/public/"
allowInsecureProtocol = true
}
- maven {
- name 'sonatype'
- url 'https://oss.sonatype.org/content/repositories/snapshots/'
- }
- maven {
- name 'Scala CI dependencies'
- url 'https://repo1.maven.org/maven2/'
- }
-
mavenLocal()
}
}
@@ -302,7 +287,7 @@ if (apiPackage) {
}
if (accessTransformersFile) {
- for (atFile in accessTransformersFile.split(",")) {
+ for (atFile in accessTransformersFile.split(" ")) {
String targetFile = "src/main/resources/META-INF/" + atFile.trim()
if (!getFile(targetFile).exists()) {
throw new GradleException("Could not resolve \"accessTransformersFile\"! Could not find " + targetFile)
@@ -646,7 +631,7 @@ repositories {
def mixinProviderGroup = "io.github.legacymoddingmc"
def mixinProviderModule = "unimixins"
-def mixinProviderVersion = "0.1.7.1"
+def mixinProviderVersion = "0.1.13"
def mixinProviderSpecNoClassifer = "${mixinProviderGroup}:${mixinProviderModule}:${mixinProviderVersion}"
def mixinProviderSpec = "${mixinProviderSpecNoClassifer}:dev"
ext.mixinProviderSpec = mixinProviderSpec
@@ -793,12 +778,12 @@ ext.java17PatchDependenciesCfg = configurations.create("java17PatchDependencies"
}
dependencies {
- def lwjgl3ifyVersion = '1.5.1'
+ def lwjgl3ifyVersion = '1.5.7'
if (modId != 'lwjgl3ify') {
java17Dependencies("com.github.GTNewHorizons:lwjgl3ify:${lwjgl3ifyVersion}")
}
if (modId != 'hodgepodge') {
- java17Dependencies('com.github.GTNewHorizons:Hodgepodge:2.3.17')
+ java17Dependencies('com.github.GTNewHorizons:Hodgepodge:2.3.35')
}
java17PatchDependencies("com.github.GTNewHorizons:lwjgl3ify:${lwjgl3ifyVersion}:forgePatches") {transitive = false}
@@ -1187,9 +1172,8 @@ publishing {
version = System.getenv("RELEASE_VERSION") ?: identifiedVersion
}
}
-
repositories {
- if (usesMavenPublishing.toBoolean()) {
+ if (usesMavenPublishing.toBoolean() && System.getenv("MAVEN_USER") != null) {
maven {
url = mavenPublishUrl
allowInsecureProtocol = mavenPublishUrl.startsWith("http://") // Mostly for the GTNH maven
@@ -1311,7 +1295,7 @@ def addCurseForgeRelation(String type, String name) {
// Updating
-def buildscriptGradleVersion = "8.2.1"
+def buildscriptGradleVersion = "8.5"
tasks.named('wrapper', Wrapper).configure {
gradleVersion = buildscriptGradleVersion
diff --git a/dependencies.gradle b/dependencies.gradle
index 9914c18a6e..5579995672 100644
--- a/dependencies.gradle
+++ b/dependencies.gradle
@@ -1,13 +1,12 @@
// Add your dependencies here
dependencies {
- api('com.github.GTNewHorizons:GT5-Unofficial:5.09.44.73:dev')
- api('com.github.GTNewHorizons:bartworks:0.8.9:dev')
+ api('com.github.GTNewHorizons:GT5-Unofficial:5.09.44.96:dev')
+ api('com.github.GTNewHorizons:bartworks:0.8.19:dev')
implementation('thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev')
- implementation('com.github.GTNewHorizons:GTplusplus:1.10.24:dev')
+ implementation('com.github.GTNewHorizons:GTplusplus:1.10.37:dev')
- compileOnly('com.github.GTNewHorizons:ThaumicEnergistics:1.4.13-GTNH:dev') {transitive = false}
+ compileOnly('com.github.GTNewHorizons:ThaumicEnergistics:1.5.3-GTNH:dev') {transitive = false}
- runtimeOnly('com.github.GTNewHorizons:NewHorizonsCoreMod:2.2.32:dev')
- runtimeOnly('com.github.GTNewHorizons:Baubles:1.0.1.16:dev')
+ runtimeOnly('com.github.GTNewHorizons:Baubles:1.0.3:dev')
}
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index c1962a79e2..033e24c4cd 100644
--- a/gradle/wrapper/gradle-wrapper.jar
+++ b/gradle/wrapper/gradle-wrapper.jar
Binary files differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 17a8ddce2d..1af9e0930b 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.2.1-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
networkTimeout=10000
+validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/gradlew b/gradlew
index aeb74cbb43..fcb6fca147 100755
--- a/gradlew
+++ b/gradlew
@@ -130,10 +130,13 @@ location of your Java installation."
fi
else
JAVACMD=java
- which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+ if ! command -v java >/dev/null 2>&1
+ then
+ die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
+ fi
fi
# Increase the maximum file descriptors if we can.
diff --git a/src/main/java/goodgenerator/api/recipe/ComponentAssemblyLineFrontend.java b/src/main/java/goodgenerator/api/recipe/ComponentAssemblyLineFrontend.java
new file mode 100644
index 0000000000..eae7fdc3e9
--- /dev/null
+++ b/src/main/java/goodgenerator/api/recipe/ComponentAssemblyLineFrontend.java
@@ -0,0 +1,44 @@
+package goodgenerator.api.recipe;
+
+import java.util.Collections;
+import java.util.List;
+
+import javax.annotation.ParametersAreNonnullByDefault;
+
+import com.gtnewhorizons.modularui.api.math.Pos2d;
+import com.gtnewhorizons.modularui.api.screen.ModularWindow;
+
+import gregtech.api.recipe.BasicUIPropertiesBuilder;
+import gregtech.api.recipe.NEIRecipePropertiesBuilder;
+import gregtech.api.recipe.RecipeMapFrontend;
+import gregtech.api.util.MethodsReturnNonnullByDefault;
+import gregtech.common.gui.modularui.UIHelper;
+
+@ParametersAreNonnullByDefault
+@MethodsReturnNonnullByDefault
+public class ComponentAssemblyLineFrontend extends RecipeMapFrontend {
+
+ public ComponentAssemblyLineFrontend(BasicUIPropertiesBuilder uiPropertiesBuilder,
+ NEIRecipePropertiesBuilder neiPropertiesBuilder) {
+ super(uiPropertiesBuilder, neiPropertiesBuilder);
+ }
+
+ @Override
+ public List<Pos2d> getItemInputPositions(int itemInputCount) {
+ return UIHelper.getGridPositions(itemInputCount, 16, 8, 3);
+ }
+
+ @Override
+ public List<Pos2d> getItemOutputPositions(int itemOutputCount) {
+ return Collections.singletonList(new Pos2d(142, 8));
+ }
+
+ @Override
+ public List<Pos2d> getFluidInputPositions(int fluidInputCount) {
+
+ return UIHelper.getGridPositions(fluidInputCount, 88, 26, 4);
+ }
+
+ @Override
+ public void addGregTechLogo(ModularWindow.Builder builder, Pos2d windowOffset) {}
+}
diff --git a/src/main/java/goodgenerator/api/recipe/ExtremeHeatExchangerBackend.java b/src/main/java/goodgenerator/api/recipe/ExtremeHeatExchangerBackend.java
new file mode 100644
index 0000000000..cdd3a4d57f
--- /dev/null
+++ b/src/main/java/goodgenerator/api/recipe/ExtremeHeatExchangerBackend.java
@@ -0,0 +1,25 @@
+package goodgenerator.api.recipe;
+
+import javax.annotation.ParametersAreNonnullByDefault;
+
+import gregtech.api.recipe.RecipeMapBackendPropertiesBuilder;
+import gregtech.api.recipe.maps.FuelBackend;
+import gregtech.api.util.GT_Recipe;
+import gregtech.api.util.MethodsReturnNonnullByDefault;
+
+@ParametersAreNonnullByDefault
+@MethodsReturnNonnullByDefault
+public class ExtremeHeatExchangerBackend extends FuelBackend {
+
+ public ExtremeHeatExchangerBackend(RecipeMapBackendPropertiesBuilder propertiesBuilder) {
+ super(propertiesBuilder);
+ }
+
+ @Override
+ public GT_Recipe compileRecipe(GT_Recipe recipe) {
+ if (!(recipe instanceof ExtremeHeatExchangerRecipe)) {
+ throw new RuntimeException("Recipe must be instance of ExtremeHeatExchangerRecipe");
+ }
+ return super.compileRecipe(recipe);
+ }
+}
diff --git a/src/main/java/goodgenerator/api/recipe/ExtremeHeatExchangerFrontend.java b/src/main/java/goodgenerator/api/recipe/ExtremeHeatExchangerFrontend.java
new file mode 100644
index 0000000000..51078a3a95
--- /dev/null
+++ b/src/main/java/goodgenerator/api/recipe/ExtremeHeatExchangerFrontend.java
@@ -0,0 +1,58 @@
+package goodgenerator.api.recipe;
+
+import java.util.Arrays;
+import java.util.List;
+
+import javax.annotation.ParametersAreNonnullByDefault;
+
+import net.minecraft.util.StatCollector;
+import net.minecraftforge.fluids.FluidStack;
+
+import com.gtnewhorizons.modularui.api.math.Pos2d;
+
+import gregtech.api.recipe.BasicUIPropertiesBuilder;
+import gregtech.api.recipe.NEIRecipePropertiesBuilder;
+import gregtech.api.recipe.RecipeMapFrontend;
+import gregtech.api.util.GT_Utility;
+import gregtech.api.util.MethodsReturnNonnullByDefault;
+import gregtech.nei.RecipeDisplayInfo;
+import gregtech.nei.formatter.INEISpecialInfoFormatter;
+
+@ParametersAreNonnullByDefault
+@MethodsReturnNonnullByDefault
+public class ExtremeHeatExchangerFrontend extends RecipeMapFrontend {
+
+ public ExtremeHeatExchangerFrontend(BasicUIPropertiesBuilder uiPropertiesBuilder,
+ NEIRecipePropertiesBuilder neiPropertiesBuilder) {
+ super(uiPropertiesBuilder, neiPropertiesBuilder.neiSpecialInfoFormatter(new EHESpecialValueFormatter()));
+ }
+
+ @Override
+ public List<Pos2d> getFluidInputPositions(int fluidInputCount) {
+ return Arrays.asList(new Pos2d(26, 13), new Pos2d(26, 37));
+ }
+
+ @Override
+ public List<Pos2d> getFluidOutputPositions(int fluidOutputCount) {
+ return Arrays.asList(new Pos2d(128, 13), new Pos2d(128, 31), new Pos2d(128, 54));
+ }
+
+ private static class EHESpecialValueFormatter implements INEISpecialInfoFormatter {
+
+ @Override
+ public List<String> format(RecipeDisplayInfo recipeInfo) {
+ FluidStack[] Inputs = recipeInfo.recipe.mFluidInputs;
+ FluidStack[] Outputs = recipeInfo.recipe.mFluidOutputs;
+ int threshold = recipeInfo.recipe.mSpecialValue;
+ return Arrays.asList(
+ StatCollector.translateToLocal("value.extreme_heat_exchanger.0") + " "
+ + GT_Utility.formatNumbers(Inputs[0].amount)
+ + " L/s",
+ StatCollector.translateToLocal("value.extreme_heat_exchanger.1"),
+ GT_Utility.formatNumbers(Outputs[0].amount / 160) + " L/s",
+ StatCollector.translateToLocal("value.extreme_heat_exchanger.2"),
+ GT_Utility.formatNumbers(Outputs[1].amount / 160) + " L/s",
+ StatCollector.translateToLocal("value.extreme_heat_exchanger.4") + " " + threshold + " L/s");
+ }
+ }
+}
diff --git a/src/main/java/goodgenerator/api/recipe/ExtremeHeatExchangerRecipe.java b/src/main/java/goodgenerator/api/recipe/ExtremeHeatExchangerRecipe.java
new file mode 100644
index 0000000000..4a32e882f8
--- /dev/null
+++ b/src/main/java/goodgenerator/api/recipe/ExtremeHeatExchangerRecipe.java
@@ -0,0 +1,66 @@
+package goodgenerator.api.recipe;
+
+import net.minecraftforge.fluids.Fluid;
+import net.minecraftforge.fluids.FluidStack;
+
+import gregtech.api.util.GT_Recipe;
+
+public class ExtremeHeatExchangerRecipe extends GT_Recipe {
+
+ public ExtremeHeatExchangerRecipe(FluidStack[] input, FluidStack[] output, int special) {
+ super(false, null, null, null, null, input, output, 0, 0, special);
+ }
+
+ public int getMaxHotFluidConsume() {
+ if (this.mFluidInputs != null) {
+ return this.mFluidInputs[0].amount;
+ }
+ return 0;
+ }
+
+ public Fluid getNormalSteam() {
+ if (this.mFluidOutputs != null) {
+ return this.mFluidOutputs[0].getFluid();
+ }
+ return null;
+ }
+
+ public Fluid getHeatedSteam() {
+ if (this.mFluidOutputs != null) {
+ return this.mFluidOutputs[1].getFluid();
+ }
+ return null;
+ }
+
+ public Fluid getCooledFluid() {
+ if (this.mFluidOutputs != null) {
+ return this.mFluidOutputs[2].getFluid();
+ }
+ return null;
+ }
+
+ public int getEUt() {
+ if (getNormalSteam() != null) {
+ switch (getNormalSteam().getName()) {
+ case "steam": {
+ int tVal = this.mFluidInputs[1].amount * 4;
+ if (tVal < 0) tVal = -tVal;
+ return tVal;
+ }
+ case "ic2superheatedsteam": {
+ int tVal = this.mFluidInputs[1].amount * 8;
+ if (tVal < 0) tVal = -tVal;
+ return tVal;
+ }
+ case "supercriticalsteam": {
+ int tVal = this.mFluidInputs[1].amount * 800;
+ if (tVal < 0) tVal = -tVal;
+ return tVal;
+ }
+ default:
+ return 0;
+ }
+ }
+ return 0;
+ }
+}
diff --git a/src/main/java/goodgenerator/api/recipe/GoodGeneratorRecipeMaps.java b/src/main/java/goodgenerator/api/recipe/GoodGeneratorRecipeMaps.java
new file mode 100644
index 0000000000..d65b8df611
--- /dev/null
+++ b/src/main/java/goodgenerator/api/recipe/GoodGeneratorRecipeMaps.java
@@ -0,0 +1,58 @@
+package goodgenerator.api.recipe;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Comparator;
+
+import net.minecraft.util.StatCollector;
+
+import goodgenerator.client.GUI.GG_UITextures;
+import gregtech.api.enums.GT_Values;
+import gregtech.api.gui.modularui.GT_UITextures;
+import gregtech.api.recipe.RecipeMap;
+import gregtech.api.recipe.RecipeMapBackend;
+import gregtech.api.recipe.RecipeMapBuilder;
+import gregtech.api.util.GT_Utility;
+import gregtech.nei.formatter.SimpleSpecialValueFormatter;
+
+public class GoodGeneratorRecipeMaps {
+
+ public static final RecipeMap<RecipeMapBackend> naquadahReactorFuels = RecipeMapBuilder
+ .of("gg.recipe.naquadah_reactor").maxIO(0, 0, 1, 1).minInputs(0, 1)
+ .neiSpecialInfoFormatter(new SimpleSpecialValueFormatter("value.naquadah_reactor"))
+ .neiRecipeComparator(Comparator.comparing(recipe -> recipe.mSpecialValue)).dontUseProgressBar()
+ .addSpecialTexture(59, 20, 58, 42, GG_UITextures.PICTURE_NAQUADAH_REACTOR).build();
+ public static final RecipeMap<RecipeMapBackend> naquadahFuelRefineFactoryRecipes = RecipeMapBuilder
+ .of("gg.recipe.naquadah_fuel_refine_factory").maxIO(6, 0, 2, 1).minInputs(0, 1)
+ .neiSpecialInfoFormatter(new SimpleSpecialValueFormatter("value.naquadah_fuel_refine_factory")).build();
+ public static final RecipeMap<?> neutronActivatorRecipes = RecipeMapBuilder.of("gg.recipe.neutron_activator")
+ .maxIO(9, 9, 1, 1).dontUseProgressBar()
+ .addSpecialTexture(73, 22, 31, 21, GG_UITextures.PICTURE_NEUTRON_ACTIVATOR)
+ .neiSpecialInfoFormatter(recipeInfo -> {
+ int minNKE = recipeInfo.recipe.mSpecialValue % 10000;
+ int maxNKE = recipeInfo.recipe.mSpecialValue / 10000;
+ return Arrays.asList(
+ StatCollector.translateToLocal("value.neutron_activator.0"),
+ GT_Utility.formatNumbers(minNKE) + StatCollector.translateToLocal("value.neutron_activator.2"),
+ StatCollector.translateToLocal("value.neutron_activator.1"),
+ GT_Utility.formatNumbers(maxNKE) + StatCollector.translateToLocal("value.neutron_activator.2"));
+ }).build();
+ public static final RecipeMap<ExtremeHeatExchangerBackend> extremeHeatExchangerFuels = RecipeMapBuilder
+ .of("gg.recipe.extreme_heat_exchanger", ExtremeHeatExchangerBackend::new).maxIO(0, 0, 2, 3)
+ .dontUseProgressBar().addSpecialTexture(47, 13, 78, 59, GG_UITextures.PICTURE_EXTREME_HEAT_EXCHANGER)
+ .frontend(ExtremeHeatExchangerFrontend::new).build();
+ public static final RecipeMap<RecipeMapBackend> preciseAssemblerRecipes = RecipeMapBuilder
+ .of("gg.recipe.precise_assembler").maxIO(4, 1, 4, 0).progressBar(GT_UITextures.PROGRESSBAR_ARROW_MULTIPLE)
+ .progressBarPos(85, 30).neiTransferRect(80, 30, 35, 18)
+ .neiSpecialInfoFormatter(new SimpleSpecialValueFormatter("value.precise_assembler"))
+ .frontend(PreciseAssemblerFrontend::new).build();
+ public static final RecipeMap<RecipeMapBackend> componentAssemblyLineRecipes = RecipeMapBuilder
+ .of("gg.recipe.componentassemblyline").maxIO(12, 1, 12, 0).neiTransferRect(70, 15, 18, 54)
+ .neiSpecialInfoFormatter(
+ recipeInfo -> Collections.singletonList(
+ StatCollector.translateToLocalFormatted(
+ "value.component_assembly_line",
+ GT_Values.VN[recipeInfo.recipe.mSpecialValue])))
+ .dontUseProgressBar().addSpecialTexture(70, 11, 72, 40, GG_UITextures.PICTURE_COMPONENT_ASSLINE)
+ .frontend(ComponentAssemblyLineFrontend::new).build();
+}
diff --git a/src/main/java/goodgenerator/api/recipe/PreciseAssemblerFrontend.java b/src/main/java/goodgenerator/api/recipe/PreciseAssemblerFrontend.java
new file mode 100644
index 0000000000..83b13abcfe
--- /dev/null
+++ b/src/main/java/goodgenerator/api/recipe/PreciseAssemblerFrontend.java
@@ -0,0 +1,39 @@
+package goodgenerator.api.recipe;
+
+import java.util.Collections;
+import java.util.List;
+
+import javax.annotation.ParametersAreNonnullByDefault;
+
+import com.gtnewhorizons.modularui.api.math.Pos2d;
+
+import gregtech.api.recipe.BasicUIPropertiesBuilder;
+import gregtech.api.recipe.NEIRecipePropertiesBuilder;
+import gregtech.api.recipe.RecipeMapFrontend;
+import gregtech.api.util.MethodsReturnNonnullByDefault;
+import gregtech.common.gui.modularui.UIHelper;
+
+@ParametersAreNonnullByDefault
+@MethodsReturnNonnullByDefault
+public class PreciseAssemblerFrontend extends RecipeMapFrontend {
+
+ public PreciseAssemblerFrontend(BasicUIPropertiesBuilder uiPropertiesBuilder,
+ NEIRecipePropertiesBuilder neiPropertiesBuilder) {
+ super(uiPropertiesBuilder, neiPropertiesBuilder);
+ }
+
+ @Override
+ public List<Pos2d> getItemInputPositions(int itemInputCount) {
+ return UIHelper.getGridPositions(itemInputCount, 8, 13, itemInputCount);
+ }
+
+ @Override
+ public List<Pos2d> getItemOutputPositions(int itemOutputCount) {
+ return Collections.singletonList(new Pos2d(115, 30));
+ }
+
+ @Override
+ public List<Pos2d> getFluidInputPositions(int fluidInputCount) {
+ return UIHelper.getGridPositions(fluidInputCount, 8, 48, fluidInputCount);
+ }
+}
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/ComponentAssemblyLine.java b/src/main/java/goodgenerator/blocks/tileEntity/ComponentAssemblyLine.java
index f50729f565..36a8da28c8 100644
--- a/src/main/java/goodgenerator/blocks/tileEntity/ComponentAssemblyLine.java
+++ b/src/main/java/goodgenerator/blocks/tileEntity/ComponentAssemblyLine.java
@@ -23,8 +23,8 @@ import com.gtnewhorizon.structurelib.structure.IStructureDefinition;
import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment;
import com.gtnewhorizon.structurelib.structure.StructureDefinition;
+import goodgenerator.api.recipe.GoodGeneratorRecipeMaps;
import goodgenerator.loader.Loaders;
-import goodgenerator.util.MyRecipeAdder;
import gregtech.api.GregTech_API;
import gregtech.api.enums.GT_Values;
import gregtech.api.enums.Materials;
@@ -34,6 +34,7 @@ import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.logic.ProcessingLogic;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_ExtendedPowerMultiBlockBase;
+import gregtech.api.recipe.RecipeMap;
import gregtech.api.recipe.check.CheckRecipeResult;
import gregtech.api.recipe.check.CheckRecipeResultRegistry;
import gregtech.api.render.TextureFactory;
@@ -324,8 +325,8 @@ public class ComponentAssemblyLine extends GT_MetaTileEntity_ExtendedPowerMultiB
}
@Override
- public GT_Recipe.GT_Recipe_Map getRecipeMap() {
- return MyRecipeAdder.instance.COMPASSLINE_RECIPES;
+ public RecipeMap<?> getRecipeMap() {
+ return GoodGeneratorRecipeMaps.componentAssemblyLineRecipes;
}
@Override
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/ExtremeHeatExchanger.java b/src/main/java/goodgenerator/blocks/tileEntity/ExtremeHeatExchanger.java
index b88bc0efbf..472579d6ac 100644
--- a/src/main/java/goodgenerator/blocks/tileEntity/ExtremeHeatExchanger.java
+++ b/src/main/java/goodgenerator/blocks/tileEntity/ExtremeHeatExchanger.java
@@ -17,6 +17,7 @@ import net.minecraft.util.StatCollector;
import net.minecraftforge.common.util.Constants;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.fluids.Fluid;
+import net.minecraftforge.fluids.FluidRegistry;
import net.minecraftforge.fluids.FluidStack;
import org.jetbrains.annotations.NotNull;
@@ -27,10 +28,11 @@ import com.gtnewhorizon.structurelib.structure.IStructureDefinition;
import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment;
import com.gtnewhorizon.structurelib.structure.StructureDefinition;
+import goodgenerator.api.recipe.ExtremeHeatExchangerRecipe;
+import goodgenerator.api.recipe.GoodGeneratorRecipeMaps;
import goodgenerator.blocks.tileEntity.base.GT_MetaTileEntity_TooltipMultiBlockBase_EM;
import goodgenerator.loader.Loaders;
import goodgenerator.util.DescTextLocalization;
-import goodgenerator.util.MyRecipeAdder;
import gregtech.api.GregTech_API;
import gregtech.api.enums.GT_HatchElement;
import gregtech.api.interfaces.IHatchElement;
@@ -41,6 +43,7 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Output;
import gregtech.api.multitileentity.multiblock.casing.Glasses;
+import gregtech.api.recipe.RecipeMap;
import gregtech.api.recipe.check.CheckRecipeResult;
import gregtech.api.recipe.check.CheckRecipeResultRegistry;
import gregtech.api.render.TextureFactory;
@@ -61,7 +64,7 @@ public class ExtremeHeatExchanger extends GT_MetaTileEntity_TooltipMultiBlockBas
protected GT_MetaTileEntity_Hatch_Output mCooledFluidHatch;
private boolean transformed = false;
private String hotName;
- private MyRecipeAdder.ExtremeHeatExchangerRecipe tRunningRecipe;
+ private ExtremeHeatExchangerRecipe tRunningRecipe;
public ExtremeHeatExchanger(String name) {
super(name);
@@ -145,8 +148,13 @@ public class ExtremeHeatExchanger extends GT_MetaTileEntity_TooltipMultiBlockBas
public void loadNBTData(NBTTagCompound aNBT) {
transformed = aNBT.getBoolean("transformed");
if (aNBT.hasKey("hotName", Constants.NBT.TAG_STRING)) {
- hotName = aNBT.getString("hotName");
- tRunningRecipe = MyRecipeAdder.mXHeatExchangerFuelMap.get(new Fluid(hotName));
+ String loadedHotName = aNBT.getString("hotName");
+ Fluid hotFluid = FluidRegistry.getFluid(loadedHotName);
+ if (hotFluid != null) {
+ hotName = loadedHotName;
+ tRunningRecipe = (ExtremeHeatExchangerRecipe) GoodGeneratorRecipeMaps.extremeHeatExchangerFuels
+ .getBackend().findFuel(hotFluid);
+ }
} else {
hotName = null;
tRunningRecipe = null;
@@ -162,6 +170,11 @@ public class ExtremeHeatExchanger extends GT_MetaTileEntity_TooltipMultiBlockBas
}
@Override
+ public RecipeMap<?> getRecipeMap() {
+ return GoodGeneratorRecipeMaps.extremeHeatExchangerFuels;
+ }
+
+ @Override
protected void clearHatches_EM() {
super.clearHatches_EM();
mCooledFluidHatch = null;
@@ -193,8 +206,8 @@ public class ExtremeHeatExchanger extends GT_MetaTileEntity_TooltipMultiBlockBas
public @NotNull CheckRecipeResult checkProcessing_EM() {
tRunningRecipe = null;
if (mHotFluidHatch.getFluid() == null) return CheckRecipeResultRegistry.SUCCESSFUL;
- MyRecipeAdder.ExtremeHeatExchangerRecipe tRecipe = MyRecipeAdder.mXHeatExchangerFuelMap
- .get(mHotFluidHatch.getFluid().getFluid());
+ ExtremeHeatExchangerRecipe tRecipe = (ExtremeHeatExchangerRecipe) GoodGeneratorRecipeMaps.extremeHeatExchangerFuels
+ .getBackend().findFuel(mHotFluidHatch.getFluid());
if (tRecipe == null) return CheckRecipeResultRegistry.NO_RECIPE;
tRunningRecipe = tRecipe;
this.hotName = mHotFluidHatch.getFluid().getFluid().getName();
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/FuelRefineFactory.java b/src/main/java/goodgenerator/blocks/tileEntity/FuelRefineFactory.java
index 7917e7890a..59928f984d 100644
--- a/src/main/java/goodgenerator/blocks/tileEntity/FuelRefineFactory.java
+++ b/src/main/java/goodgenerator/blocks/tileEntity/FuelRefineFactory.java
@@ -22,10 +22,10 @@ import com.gtnewhorizon.structurelib.structure.IStructureElement;
import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment;
import com.gtnewhorizon.structurelib.structure.StructureDefinition;
+import goodgenerator.api.recipe.GoodGeneratorRecipeMaps;
import goodgenerator.blocks.tileEntity.base.GT_MetaTileEntity_TooltipMultiBlockBase_EM;
import goodgenerator.loader.Loaders;
import goodgenerator.util.DescTextLocalization;
-import goodgenerator.util.MyRecipeAdder;
import gregtech.api.enums.GT_HatchElement;
import gregtech.api.enums.Textures;
import gregtech.api.interfaces.ITexture;
@@ -38,6 +38,7 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_InputBus;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Output;
import gregtech.api.objects.GT_RenderedTexture;
+import gregtech.api.recipe.RecipeMap;