aboutsummaryrefslogtreecommitdiff
path: root/src/main
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 /src/main
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>
Diffstat (limited to 'src/main')
-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
28 files changed, 549 insertions, 750 deletions
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;
import gregtech.api.recipe.check.CheckRecipeResult;
import gregtech.api.recipe.check.CheckRecipeResultRegistry;
import gregtech.api.render.TextureFactory;
@@ -206,8 +207,8 @@ public class FuelRefineFactory extends GT_MetaTileEntity_TooltipMultiBlockBase_E
}
@Override
- public GT_Recipe.GT_Recipe_Map getRecipeMap() {
- return MyRecipeAdder.instance.FRF;
+ public RecipeMap<?> getRecipeMap() {
+ return GoodGeneratorRecipeMaps.naquadahFuelRefineFactoryRecipes;
}
@Override
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/GTMetaTileEntity/DieselGenerator.java b/src/main/java/goodgenerator/blocks/tileEntity/GTMetaTileEntity/DieselGenerator.java
index 0a4a92f975..117b35f5aa 100644
--- a/src/main/java/goodgenerator/blocks/tileEntity/GTMetaTileEntity/DieselGenerator.java
+++ b/src/main/java/goodgenerator/blocks/tileEntity/GTMetaTileEntity/DieselGenerator.java
@@ -13,10 +13,11 @@ import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.metatileentity.MetaTileEntity;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicGenerator;
+import gregtech.api.recipe.RecipeMap;
+import gregtech.api.recipe.RecipeMaps;
import gregtech.api.render.TextureFactory;
import gregtech.api.util.GT_Log;
import gregtech.api.util.GT_ModHandler;
-import gregtech.api.util.GT_Recipe;
import gregtech.api.util.GT_Utility;
public class DieselGenerator extends GT_MetaTileEntity_BasicGenerator {
@@ -51,8 +52,8 @@ public class DieselGenerator extends GT_MetaTileEntity_BasicGenerator {
}
@Override
- public GT_Recipe.GT_Recipe_Map getRecipes() {
- return GT_Recipe.GT_Recipe_Map.sDieselFuels;
+ public RecipeMap<?> getRecipeMap() {
+ return RecipeMaps.dieselFuels;
}
@Override
@@ -67,7 +68,7 @@ public class DieselGenerator extends GT_MetaTileEntity_BasicGenerator {
@Override
public int getFuelValue(ItemStack aStack) {
- if (GT_Utility.isStackInvalid(aStack) || getRecipes() == null) return 0;
+ if (GT_Utility.isStackInvalid(aStack) || getRecipeMap() == null) return 0;
long rValue = Math.max(GT_ModHandler.getFuelCanValue(aStack) * 6 / 5, super.getFuelValue(aStack));
if (ItemList.Fuel_Can_Plastic_Filled.isStackEqual(aStack, false, true)) {
rValue = Math.max(rValue, GameRegistry.getFuelValue(aStack) * 3L);
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/LargeFusionComputer1.java b/src/main/java/goodgenerator/blocks/tileEntity/LargeFusionComputer1.java
index 22fb7fc694..1b18445f56 100644
--- a/src/main/java/goodgenerator/blocks/tileEntity/LargeFusionComputer1.java
+++ b/src/main/java/goodgenerator/blocks/tileEntity/LargeFusionComputer1.java
@@ -21,7 +21,6 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.render.TextureFactory;
import gregtech.api.util.GT_Multiblock_Tooltip_Builder;
import gregtech.api.util.GT_Utility;
-import gregtech.common.power.FusionPower;
public class LargeFusionComputer1 extends LargeFusionComputer {
@@ -31,12 +30,10 @@ public class LargeFusionComputer1 extends LargeFusionComputer {
public LargeFusionComputer1(int id, String name, String nameRegional) {
super(id, name, nameRegional);
- power = new FusionPower((byte) 6, 160_000_000);
}
public LargeFusionComputer1(String name) {
super(name);
- power = new FusionPower((byte) 6, 160_000_000);
}
@Override
@@ -71,11 +68,21 @@ public class LargeFusionComputer1 extends LargeFusionComputer {
}
@Override
+ public int tier() {
+ return 6;
+ }
+
+ @Override
public long maxEUStore() {
return 160008000L * (Math.min(32, this.mEnergyHatches.size() + this.eEnergyMulti.size())) / 32L;
}
@Override
+ public long capableStartupCanonical() {
+ return 160_000_000;
+ }
+
+ @Override
public Block getCasingBlock() {
return GregTech_API.sBlockCasings1;
}
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/LargeFusionComputer2.java b/src/main/java/goodgenerator/blocks/tileEntity/LargeFusionComputer2.java
index 770a14ffaf..381afb33d6 100644
--- a/src/main/java/goodgenerator/blocks/tileEntity/LargeFusionComputer2.java
+++ b/src/main/java/goodgenerator/blocks/tileEntity/LargeFusionComputer2.java
@@ -21,7 +21,6 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.render.TextureFactory;
import gregtech.api.util.GT_Multiblock_Tooltip_Builder;
import gregtech.api.util.GT_Utility;
-import gregtech.common.power.FusionPower;
public class LargeFusionComputer2 extends LargeFusionComputer {
@@ -31,12 +30,10 @@ public class LargeFusionComputer2 extends LargeFusionComputer {
public LargeFusionComputer2(int id, String name, String nameRegional) {
super(id, name, nameRegional);
- power = new FusionPower((byte) 7, 320_000_000);
}
public LargeFusionComputer2(String name) {
super(name);
- power = new FusionPower((byte) 7, 320_000_000);
}
@Override
@@ -72,11 +69,21 @@ public class LargeFusionComputer2 extends LargeFusionComputer {
}
@Override
+ public int tier() {
+ return 7;
+ }
+
+ @Override
public long maxEUStore() {
return 320006000L * (Math.min(32, this.mEnergyHatches.size() + this.eEnergyMulti.size())) / 32L;
}
@Override
+ public long capableStartupCanonical() {
+ return 320_000_000;
+ }
+
+ @Override
public Block getCasingBlock() {
return GregTech_API.sBlockCasings4;
}
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/LargeFusionComputer3.java b/src/main/java/goodgenerator/blocks/tileEntity/LargeFusionComputer3.java
index 50688ee678..334456e5b8 100644
--- a/src/main/java/goodgenerator/blocks/tileEntity/LargeFusionComputer3.java
+++ b/src/main/java/goodgenerator/blocks/tileEntity/LargeFusionComputer3.java
@@ -21,7 +21,6 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.render.TextureFactory;
import gregtech.api.util.GT_Multiblock_Tooltip_Builder;
import gregtech.api.util.GT_Utility;
-import gregtech.common.power.FusionPower;
public class LargeFusionComputer3 extends LargeFusionComputer {
@@ -31,12 +30,10 @@ public class LargeFusionComputer3 extends LargeFusionComputer {
public LargeFusionComputer3(int id, String name, String nameRegional) {
super(id, name, nameRegional);
- power = new FusionPower((byte) 8, 640_000_000);
}
public LargeFusionComputer3(String name) {
super(name);
- power = new FusionPower((byte) 8, 640_000_000);
}
@Override
@@ -73,11 +70,21 @@ public class LargeFusionComputer3 extends LargeFusionComputer {
}
@Override
+ public int tier() {
+ return 8;
+ }
+
+ @Override
public long maxEUStore() {
return 640060000L * (Math.min(32, this.mEnergyHatches.size() + this.eEnergyMulti.size())) / 32L;
}
@Override
+ public long capableStartupCanonical() {
+ return 640_000_000;
+ }
+
+ @Override
public Block getCasingBlock() {
return GregTech_API.sBlockCasings4;
}
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/LargeFusionComputer4.java b/src/main/java/goodgenerator/blocks/tileEntity/LargeFusionComputer4.java
index b25d5851d1..7930beb0fd 100644
--- a/src/main/java/goodgenerator/blocks/tileEntity/LargeFusionComputer4.java
+++ b/src/main/java/goodgenerator/blocks/tileEntity/LargeFusionComputer4.java
@@ -24,7 +24,6 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energ
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Output;
import gregtech.api.render.TextureFactory;
-import gregtech.api.util.AdvFusionPower;
import gregtech.api.util.GT_Multiblock_Tooltip_Builder;
import gregtech.api.util.GT_Utility;
import gtPlusPlus.core.block.ModBlocks;
@@ -34,13 +33,10 @@ public class LargeFusionComputer4 extends LargeFusionComputerPP {
public LargeFusionComputer4(int id, String name, String nameRegional) {
super(id, name, nameRegional);
- // Theoretically the reactor has a higher startup value but special recipe value is limited to int
- power = new AdvFusionPower((byte) 9, Integer.MAX_VALUE);
}
public LargeFusionComputer4(String name) {
super(name);
- power = new AdvFusionPower((byte) 9, Integer.MAX_VALUE);
}
@Override
@@ -78,11 +74,21 @@ public class LargeFusionComputer4 extends LargeFusionComputerPP {
}
@Override
+ public int tier() {
+ return 9;
+ }
+
+ @Override
public long maxEUStore() {
return 2560060000L * (Math.min(32, this.mEnergyHatches.size() + this.eEnergyMulti.size())) / 32L;
}
@Override
+ public long capableStartupCanonical() {
+ return 2_560_060_000L;
+ }
+
+ @Override
public Block getCasingBlock() {
return ModBlocks.blockCasings3Misc;
}
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/LargeFusionComputer5.java b/src/main/java/goodgenerator/blocks/tileEntity/LargeFusionComputer5.java
index 21ea21f59e..8ab7a83b30 100644
--- a/src/main/java/goodgenerator/blocks/tileEntity/LargeFusionComputer5.java
+++ b/src/main/java/goodgenerator/blocks/tileEntity/LargeFusionComputer5.java
@@ -24,7 +24,6 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energ
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Output;
import gregtech.api.render.TextureFactory;
-import gregtech.api.util.AdvFusionPower;
import gregtech.api.util.GT_Multiblock_Tooltip_Builder;
import gregtech.api.util.GT_Utility;
import gtPlusPlus.core.block.ModBlocks;
@@ -34,13 +33,10 @@ public class LargeFusionComputer5 extends LargeFusionComputerPP {
public LargeFusionComputer5(int id, String name, String nameRegional) {
super(id, name, nameRegional);
- // Theoretically the reactor has a higher startup value but special recipe value is limited to int
- power = new AdvFusionPower((byte) 10, Integer.MAX_VALUE);
}
public LargeFusionComputer5(String name) {
super(name);
- power = new AdvFusionPower((byte) 10, Integer.MAX_VALUE);
}
@Override
@@ -78,11 +74,21 @@ public class LargeFusionComputer5 extends LargeFusionComputerPP {
}
@Override
+ public int tier() {
+ return 10;
+ }
+
+ @Override
public long maxEUStore() {
return 10240800000L * (Math.min(32, this.mEnergyHatches.size() + this.eEnergyMulti.size())) / 32L;
}
@Override
+ public long capableStartupCanonical() {
+ return 10_240_800_000L;
+ }
+
+ @Override
public Block getCasingBlock() {
return ModBlocks.blockCasings6Misc;
}
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/MultiNqGenerator.java b/src/main/java/goodgenerator/blocks/tileEntity/MultiNqGenerator.java
index 2885ad1fa5..2e7e5e0de5 100644
--- a/src/main/java/goodgenerator/blocks/tileEntity/MultiNqGenerator.java
+++ b/src/main/java/goodgenerator/blocks/tileEntity/MultiNqGenerator.java
@@ -26,12 +26,12 @@ 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.blocks.tileEntity.base.GT_MetaTileEntity_TooltipMultiBlockBase_EM;
import goodgenerator.items.MyMaterial;
import goodgenerator.loader.Loaders;
import goodgenerator.util.CrackRecipeAdder;
import goodgenerator.util.DescTextLocalization;
-import goodgenerator.util.MyRecipeAdder;
import gregtech.api.GregTech_API;
import gregtech.api.enums.GT_HatchElement;
import gregtech.api.enums.Materials;
@@ -46,6 +46,7 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Maintenance;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Output;
import gregtech.api.objects.GT_RenderedTexture;
+import gregtech.api.recipe.RecipeMap;
import gregtech.api.recipe.check.CheckRecipeResult;
import gregtech.api.recipe.check.CheckRecipeResultRegistry;
import gregtech.api.render.TextureFactory;
@@ -191,6 +192,11 @@ public class MultiNqGenerator extends GT_MetaTileEntity_TooltipMultiBlockBase_EM
}
@Override
+ public RecipeMap<?> getRecipeMap() {
+ return GoodGeneratorRecipeMaps.naquadahReactorFuels;
+ }
+
+ @Override
public @NotNull CheckRecipeResult checkProcessing_EM() {
ArrayList<FluidStack> tFluids = getStoredFluids();
@@ -207,7 +213,7 @@ public class MultiNqGenerator extends GT_MetaTileEntity_TooltipMultiBlockBase_EM
}
}
- GT_Recipe tRecipe = MyRecipeAdder.instance.NqGFuels
+ GT_Recipe tRecipe = GoodGeneratorRecipeMaps.naquadahReactorFuels
.findRecipe(this.getBaseMetaTileEntity(), true, 1 << 30, tFluids.toArray(new FluidStack[0]));
if (tRecipe != null) {
Pair<FluidStack, Integer> excitedInfo = getExcited(tFluids.toArray(new FluidStack[0]), false);
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/NeutronActivator.java b/src/main/java/goodgenerator/blocks/tileEntity/NeutronActivator.java
index e1317c1174..21b1ec38d2 100644
--- a/src/main/java/goodgenerator/blocks/tileEntity/NeutronActivator.java
+++ b/src/main/java/goodgenerator/blocks/tileEntity/NeutronActivator.java
@@ -29,6 +29,7 @@ import com.gtnewhorizons.modularui.common.widget.FakeSyncWidget;
import com.gtnewhorizons.modularui.common.widget.SlotWidget;
import com.gtnewhorizons.modularui.common.widget.TextWidget;
+import goodgenerator.api.recipe.GoodGeneratorRecipeMaps;
import goodgenerator.blocks.tileEntity.GTMetaTileEntity.NeutronAccelerator;
import goodgenerator.blocks.tileEntity.GTMetaTileEntity.NeutronSensor;
import goodgenerator.blocks.tileEntity.base.GT_MetaTileEntity_TooltipMultiBlockBase_EM;
@@ -36,7 +37,6 @@ import goodgenerator.loader.Loaders;
import goodgenerator.util.CharExchanger;
import goodgenerator.util.DescTextLocalization;
import goodgenerator.util.ItemRefer;
-import goodgenerator.util.MyRecipeAdder;
import gregtech.api.GregTech_API;
import gregtech.api.enums.GT_HatchElement;
import gregtech.api.enums.Materials;
@@ -50,6 +50,7 @@ import gregtech.api.logic.ProcessingLogic;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch;
import gregtech.api.multitileentity.multiblock.casing.Glasses;
import gregtech.api.objects.XSTR;
+import gregtech.api.recipe.RecipeMap;
import gregtech.api.recipe.check.CheckRecipeResult;
import gregtech.api.render.TextureFactory;
import gregtech.api.util.GT_Multiblock_Tooltip_Builder;
@@ -170,8 +171,8 @@ public class NeutronActivator extends GT_MetaTileEntity_TooltipMultiBlockBase_EM
}
@Override
- public GT_Recipe.GT_Recipe_Map getRecipeMap() {
- return MyRecipeAdder.instance.NA;
+ public RecipeMap<?> getRecipeMap() {
+ return GoodGeneratorRecipeMaps.neutronActivatorRecipes;
}
protected GT_Multiblock_Tooltip_Builder createTooltip() {
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/PreciseAssembler.java b/src/main/java/goodgenerator/blocks/tileEntity/PreciseAssembler.java
index 3242ff8778..5793b62271 100644
--- a/src/main/java/goodgenerator/blocks/tileEntity/PreciseAssembler.java
+++ b/src/main/java/goodgenerator/blocks/tileEntity/PreciseAssembler.java
@@ -8,11 +8,13 @@ import static gregtech.api.metatileentity.BaseTileEntity.TOOLTIP_DELAY;
import static gregtech.api.util.GT_StructureUtility.ofFrame;
import static gregtech.api.util.GT_Utility.filterValidMTEs;
+import java.util.Arrays;
+import java.util.Collection;
import java.util.Collections;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
-import javax.annotation.Nullable;
+import javax.annotation.Nonnull;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
@@ -20,8 +22,6 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.StatCollector;
import net.minecraftforge.common.util.ForgeDirection;
-import org.jetbrains.annotations.NotNull;
-
import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyMulti;
import com.gtnewhorizon.structurelib.alignment.constructable.IConstructable;
import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructable;
@@ -33,10 +33,10 @@ import com.gtnewhorizons.modularui.api.screen.ModularWindow;
import com.gtnewhorizons.modularui.api.screen.UIBuildContext;
import com.gtnewhorizons.modularui.common.widget.CycleButtonWidget;
+import goodgenerator.api.recipe.GoodGeneratorRecipeMaps;
import goodgenerator.client.GUI.GG_UITextures;
import goodgenerator.loader.Loaders;
import goodgenerator.util.DescTextLocalization;
-import goodgenerator.util.MyRecipeAdder;
import gregtech.api.GregTech_API;
import gregtech.api.enums.GT_Values;
import gregtech.api.enums.Materials;
@@ -58,15 +58,15 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Maint
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Muffler;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Output;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_OutputBus;
+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.FindRecipeResult;
import gregtech.api.render.TextureFactory;
import gregtech.api.util.GT_HatchElementBuilder;
import gregtech.api.util.GT_Multiblock_Tooltip_Builder;
import gregtech.api.util.GT_OverclockCalculator;
import gregtech.api.util.GT_Recipe;
-import gregtech.api.util.GT_Recipe.GT_Recipe_Map;
import gregtech.api.util.GT_Utility;
import gregtech.common.tileentities.machines.IDualInputHatch;
@@ -221,34 +221,23 @@ public class PreciseAssembler extends GT_MetaTileEntity_ExtendedPowerMultiBlockB
protected ProcessingLogic createProcessingLogic() {
return new ProcessingLogic() {
- @NotNull
+ @Nonnull
@Override
- protected CheckRecipeResult validateRecipe(@NotNull GT_Recipe recipe) {
+ protected CheckRecipeResult validateRecipe(@Nonnull GT_Recipe recipe) {
if (mode == 0) {
if (recipe.mSpecialValue > (casingTier + 1)) {
return CheckRecipeResultRegistry.insufficientMachineTier(recipe.mSpecialValue);
}
}
+ if (availableVoltage < recipe.mEUt) {
+ return CheckRecipeResultRegistry.insufficientPower(recipe.mEUt);
+ }
return CheckRecipeResultRegistry.SUCCESSFUL;
}
- @NotNull
- @Override
- protected FindRecipeResult findRecipe(@Nullable GT_Recipe_Map map) {
- if (map == null) return FindRecipeResult.NOT_FOUND;
- return map.findRecipeWithResult(
- lastRecipe,
- false,
- false,
- availableVoltage,
- inputFluids,
- specialSlotItem,
- inputItems);
- }
-
- @NotNull
+ @Nonnull
@Override
- protected GT_OverclockCalculator createOverclockCalculator(@NotNull GT_Recipe recipe) {
+ protected GT_OverclockCalculator createOverclockCalculator(@Nonnull GT_Recipe recipe) {
return super.createOverclockCalculator(recipe).setSpeedBoost(mode == 0 ? 1 : 0.5F);
}
}.setMaxParallelSupplier(() -> mode == 0 ? 1 : (int) Math.pow(2, 4 + (casingTier + 1)));
@@ -256,7 +245,7 @@ public class PreciseAssembler extends GT_MetaTileEntity_ExtendedPowerMultiBlockB
@Override
protected void setProcessingLogicPower(ProcessingLogic logic) {
- boolean useSingleAmp = mEnergyHatches.size() == 1 && mExoticEnergyHatches.size() == 0;
+ boolean useSingleAmp = mEnergyHatches.size() == 1 && mExoticEnergyHatches.isEmpty();
logic.setAvailableVoltage(getMachineVoltageLimit());
logic.setAvailableAmperage(useSingleAmp ? 1 : getMaxInputAmps());
logic.setAmperageOC(true);
@@ -274,9 +263,15 @@ public class PreciseAssembler extends GT_MetaTileEntity_ExtendedPowerMultiBlockB
}
@Override
- public GT_Recipe.GT_Recipe_Map getRecipeMap() {
- if (this.mode == 0) return MyRecipeAdder.instance.PA;
- else return GT_Recipe.GT_Recipe_Map.sAssemblerRecipes;
+ public RecipeMap<?> getRecipeMap() {
+ if (this.mode == 0) return GoodGeneratorRecipeMaps.preciseAssemblerRecipes;
+ else return RecipeMaps.assemblerRecipes;
+ }
+
+ @Nonnull
+ @Override
+ public Collection<RecipeMap<?>> getAvailableRecipeMaps() {
+ return Arrays.asList(GoodGeneratorRecipeMaps.preciseAssemblerRecipes, RecipeMaps.assemblerRecipes);
}
@Override
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/UniversalChemicalFuelEngine.java b/src/main/java/goodgenerator/blocks/tileEntity/UniversalChemicalFuelEngine.java
index c89342aad4..112185efad 100644
--- a/src/main/java/goodgenerator/blocks/tileEntity/UniversalChemicalFuelEngine.java
+++ b/src/main/java/goodgenerator/blocks/tileEntity/UniversalChemicalFuelEngine.java
@@ -7,7 +7,6 @@ import static gregtech.api.enums.Textures.BlockIcons.*;
import static gregtech.api.util.GT_Utility.filterValidMTEs;
import java.util.ArrayList;
-import java.util.Collection;
import java.util.List;
import net.minecraft.item.ItemStack;
@@ -39,13 +38,14 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Dynam
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Maintenance;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Muffler;
+import gregtech.api.recipe.RecipeMaps;
import gregtech.api.recipe.check.CheckRecipeResult;
import gregtech.api.recipe.check.CheckRecipeResultRegistry;
import gregtech.api.render.TextureFactory;
-import gregtech.api.util.GTPP_Recipe;
import gregtech.api.util.GT_Multiblock_Tooltip_Builder;
import gregtech.api.util.GT_Recipe;
import gregtech.api.util.GT_Utility;
+import gtPlusPlus.api.recipe.GTPPRecipeMaps;
public class UniversalChemicalFuelEngine extends GT_MetaTileEntity_TooltipMultiBlockBase_EM
implements IConstructable, ISurvivalConstructable {
@@ -205,12 +205,9 @@ public class UniversalChemicalFuelEngine extends GT_MetaTileEntity_TooltipMultiB
ArrayList<FluidStack> tFluids = getStoredFluids();
- Collection<GT_Recipe> tDieselFuels = GT_Recipe.GT_Recipe_Map.sDieselFuels.mRecipeList;
- Collection<GT_Recipe> tGasFuels = GT_Recipe.GT_Recipe_Map.sTurbineFuels.mRecipeList;
-
int PromoterAmount = findLiquidAmount(getPromoter(), tFluids);
- for (GT_Recipe recipe : tDieselFuels) {
+ for (GT_Recipe recipe : RecipeMaps.dieselFuels.getAllRecipes()) {
FluidStack tFuel = findFuel(recipe);
if (tFuel == null) continue;
int FuelAmount = findLiquidAmount(tFuel, tFluids);
@@ -226,7 +223,7 @@ public class UniversalChemicalFuelEngine extends GT_MetaTileEntity_TooltipMultiB
return CheckRecipeResultRegistry.GENERATING;
}
- for (GT_Recipe recipe : tGasFuels) {
+ for (GT_Recipe recipe : RecipeMaps.gasTurbineFuels.getAllRecipes()) {
FluidStack tFuel = findFuel(recipe);
if (tFuel == null) continue;
int FuelAmount = findLiquidAmount(tFuel, tFluids);
@@ -243,8 +240,7 @@ public class UniversalChemicalFuelEngine extends GT_MetaTileEntity_TooltipMultiB
}
if (LoadedList.GTPP) {
- Collection<GT_Recipe> tRocketFuels = GTPP_Recipe.GTPP_Recipe_Map.sRocketFuels.mRecipeList;
- for (GT_Recipe recipe : tRocketFuels) {
+ for (GT_Recipe recipe : GTPPRecipeMaps.rocketFuels.getAllRecipes()) {
FluidStack tFuel = findFuel(recipe);
if (tFuel == null) continue;
int FuelAmount = findLiquidAmount(tFuel, tFluids);
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/base/LargeFusionComputer.java b/src/main/java/goodgenerator/blocks/tileEntity/base/LargeFusionComputer.java
index ec6c40a282..ef85023706 100644
--- a/src/main/java/goodgenerator/blocks/tileEntity/base/LargeFusionComputer.java
+++ b/src/main/java/goodgenerator/blocks/tileEntity/base/LargeFusionComputer.java
@@ -5,6 +5,8 @@ import static gregtech.api.enums.Textures.BlockIcons.*;
import static gregtech.api.util.GT_StructureUtility.ofFrame;
import static gregtech.api.util.GT_Utility.filterValidMTEs;
+import javax.annotation.Nullable;
+
import net.minecraft.block.Block;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
@@ -37,6 +39,7 @@ import gregtech.api.enums.Textures;
import gregtech.api.interfaces.ITexture;
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.GT_MetaTileEntity_Hatch;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy;
@@ -44,6 +47,10 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Output;
import gregtech.api.objects.GT_ChunkManager;
import gregtech.api.objects.GT_ItemStack;
+import gregtech.api.objects.overclockdescriber.FusionOverclockDescriber;
+import gregtech.api.objects.overclockdescriber.OverclockDescriber;
+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.render.TextureFactory;
@@ -52,16 +59,15 @@ import gregtech.api.util.GT_OverclockCalculator;
import gregtech.api.util.GT_ParallelHelper;
import gregtech.api.util.GT_Recipe;
import gregtech.api.util.GT_Utility;
-import gregtech.common.power.FusionPower;
public abstract class LargeFusionComputer extends GT_MetaTileEntity_TooltipMultiBlockBase_EM
- implements IConstructable, ISurvivalConstructable {
+ implements IConstructable, ISurvivalConstructable, IOverclockDescriptionProvider {
public static final String MAIN_NAME = "largeFusion";
private boolean isLoadedChunk;
public GT_Recipe mLastRecipe;
public int para;
- protected FusionPower power;
+ protected OverclockDescriber overclockDescriber;
private static final ClassValue<IStructureDefinition<LargeFusionComputer>> STRUCTURE_DEFINITION = new ClassValue<IStructureDefinition<LargeFusionComputer>>() {
@Override
@@ -101,21 +107,36 @@ public abstract class LargeFusionComputer extends GT_MetaTileEntity_TooltipMulti
public LargeFusionComputer(String name) {
super(name);
useLongPower = true;
+ this.overclockDescriber = createOverclockDescriber();
}
public LargeFusionComputer(int id, String name, String nameRegional) {
super(id, name, nameRegional);
useLongPower = true;
+ this.overclockDescriber = createOverclockDescriber();
+ }
+
+ protected OverclockDescriber createOverclockDescriber() {
+ return new FusionOverclockDescriber((byte) tier(), capableStartupCanonical());
}
+ @Nullable
@Override
- public FusionPower getPower() {
- return power;
+ public OverclockDescriber getOverclockDescriber() {
+ return overclockDescriber;
}
+ public abstract int tier();
+
@Override
public abstract long maxEUStore();
+ /**
+ * Unlike {@link #maxEUStore()}, this provides theoretical limit of startup EU, without considering the amount of
+ * hatches nor the room for extra energy. Intended for simulation.
+ */
+ public abstract long capableStartupCanonical();
+
public abstract Block getCasingBlock();
public abstract int getCasingMeta();
@@ -406,8 +427,14 @@ public abstract class LargeFusionComputer extends GT_MetaTileEntity_TooltipMulti
: ((mStartEnergy <= 640000000) ? 2 : (mStartEnergy <= 1280000000) ? 1 : 0));
}
- public GT_Recipe.GT_Recipe_Map getRecipeMap() {
- return GT_Recipe.GT_Recipe_Map.sFusionRecipes;
+ @Override
+ public RecipeMap<?> getRecipeMap() {
+ return RecipeMaps.fusionRecipes;
+ }
+
+ @Override
+ public int getRecipeCatalystPriority() {
+ return -2;
}
@Override
diff --git a/src/main/java/goodgenerator/crossmod/nei/IMCForNEI.java b/src/main/java/goodgenerator/crossmod/nei/IMCForNEI.java
deleted file mode 100644
index 863e18fe92..0000000000
--- a/src/main/java/goodgenerator/crossmod/nei/IMCForNEI.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package goodgenerator.crossmod.nei;
-
-import net.minecraft.nbt.NBTTagCompound;
-
-import cpw.mods.fml.common.event.FMLInterModComms;
-import goodgenerator.crossmod.LoadedList;
-
-public class IMCForNEI {
-
- public static void IMCSender() {
- sendHandler("gg.recipe.neutron_activator", "gregtech:gt.blockmachines:32013");
- sendCatalyst("gg.recipe.neutron_activator", "gregtech:gt.blockmachines:32013");
-
- sendHandler("gg.recipe.extreme_heat_exchanger", "gregtech:gt.blockmachines:32017");
- sendCatalyst("gg.recipe.extreme_heat_exchanger", "gregtech:gt.blockmachines:32017");
-
- sendHandler("gg.recipe.precise_assembler", "gregtech:gt.blockmachines:32018");
- sendCatalyst("gg.recipe.precise_assembler", "gregtech:gt.blockmachines:32018");
- sendCatalyst("gt.recipe.assembler", "gregtech:gt.blockmachines:32018");
-
- sendCatalyst("gt.recipe.fusionreactor", "gregtech:gt.blockmachines:32019", -10);
- sendCatalyst("gt.recipe.fusionreactor", "gregtech:gt.blockmachines:32020", -10);
- sendCatalyst("gt.recipe.fusionreactor", "gregtech:gt.blockmachines:32021", -10);
- if (LoadedList.GTPP) {
- sendCatalyst("gt.recipe.fusionreactor", "gregtech:gt.blockmachines:32022", -10);
- sendCatalyst("gt.recipe.fusionreactor", "gregtech:gt.blockmachines:32023", -10);
- }
-
- sendHandler("gg.recipe.componentassemblyline", "gregtech:gt.blockmachines:32026", 2);
- sendCatalyst("gg.recipe.componentassemblyline", "gregtech:gt.blockmachines:32026");
- }
-
- private static void sendHandler(String aName, String aBlock) {
- sendHandler(aName, aBlock, 1);
- }
-
- private static void sendHandler(String aName, String aBlock, int maxRecipesPerPage) {
- NBTTagCompound aNBT = new NBTTagCompound();
- aNBT.setString("handler", aName);
- aNBT.setString("modName", "Good Generator");
- aNBT.setString("modId", "GoodGenerator");
- aNBT.setBoolean("modRequired", true);
- aNBT.setString("itemName", aBlock);
- aNBT.setInteger("handlerHeight", 135);
- aNBT.setInteger("handlerWidth", 166);
- aNBT.setInteger("maxRecipesPerPage", maxRecipesPerPage);
- aNBT.setInteger("yShift", 6);
- FMLInterModComms.sendMessage("NotEnoughItems", "registerHandlerInfo", aNBT);
- }
-
- private static void sendCatalyst(String aName, String aStack, int aPriority) {
- NBTTagCompound aNBT = new NBTTagCompound();
- aNBT.setString("handlerID", aName);
- aNBT.setString("itemName", aStack);
- aNBT.setInteger("priority", aPriority);
- FMLInterModComms.sendMessage("NotEnoughItems", "registerCatalystInfo", aNBT);
- }
-
- private static void sendCatalyst(String aName, String aStack) {
- sendCatalyst(aName, aStack, 0);
- }
-}
diff --git a/src/main/java/goodgenerator/loader/ComponentAssemblyLineRecipeLoader.java b/src/main/java/goodgenerator/loader/ComponentAssemblyLineRecipeLoader.java
index a13fc94a36..18fda2f118 100644
--- a/src/main/java/goodgenerator/loader/ComponentAssemblyLineRecipeLoader.java
+++ b/src/main/java/goodgenerator/loader/ComponentAssemblyLineRecipeLoader.java
@@ -27,6 +27,7 @@ import gregtech.api.enums.Materials;
import gregtech.api.enums.MaterialsUEVplus;
import gregtech.api.enums.OrePrefixes;
import gregtech.api.objects.ItemData;
+import gregtech.api.recipe.RecipeMaps;
import gregtech.api.util.GT_OreDictUnificator;
import gregtech.api.util.GT_Recipe;
import gregtech.api.util.GT_Utility;
@@ -371,7 +372,7 @@ public class ComponentAssemblyLineRecipeLoader {
if (currentComponent.hasBeenSet()) {
if (t < 6) {
ArrayList<GT_Recipe> foundRecipes = new ArrayList<>();
- for (GT_Recipe recipe : GT_Recipe.GT_Recipe_Map.sAssemblerRecipes.mRecipeList) {
+ for (GT_Recipe recipe : RecipeMaps.assemblerRecipes.getAllRecipes()) {
if (GT_Utility.areStacksEqual(currentComponent.get(1), recipe.mOutputs[0])) {
foundRecipes.add(recipe);
}
diff --git a/src/main/java/goodgenerator/loader/Loaders.java b/src/main/java/goodgenerator/loader/Loaders.java
index b9f2e26a6f..1d2afe9d50 100644
--- a/src/main/java/goodgenerator/loader/Loaders.java
+++ b/src/main/java/goodgenerator/loader/Loaders.java
@@ -43,7 +43,6 @@ import goodgenerator.blocks.tileEntity.YottaFluidTank;
import goodgenerator.client.render.BlockRenderHandler;
import goodgenerator.crossmod.LoadedList;
import goodgenerator.crossmod.ic2.CropsLoader;
-import goodgenerator.crossmod.nei.IMCForNEI;
import goodgenerator.crossmod.nei.NEI_Config;
import goodgenerator.crossmod.thaumcraft.LargeEssentiaEnergyData;
import goodgenerator.items.MyItemBlocks;
@@ -468,7 +467,6 @@ public class Loaders {
}
GTMetaTileRegister();
initLoadRecipes();
- IMCForNEI.IMCSender();
CropsLoader.registerCrops();
}
diff --git a/src/main/java/goodgenerator/loader/NaquadahReworkRecipeLoader.java b/src/main/java/goodgenerator/loader/NaquadahReworkRecipeLoader.java
index 285fd801af..a733b87f55 100644
--- a/src/main/java/goodgenerator/loader/NaquadahReworkRecipeLoader.java
+++ b/src/main/java/goodgenerator/loader/NaquadahReworkRecipeLoader.java
@@ -67,13 +67,14 @@ import gregtech.api.enums.GT_Values;
import gregtech.api.enums.ItemList;
import gregtech.api.enums.Materials;
import gregtech.api.enums.OrePrefixes;
-import gregtech.api.util.GTPP_Recipe;
+import gregtech.api.recipe.RecipeMaps;
import gregtech.api.util.GT_Log;
import gregtech.api.util.GT_OreDictUnificator;
import gregtech.api.util.GT_Recipe;
import gregtech.api.util.GT_Utility;
import gregtech.common.items.CombType;
import gregtech.loaders.misc.GT_Bees;
+import gtPlusPlus.api.recipe.GTPPRecipeMaps;
import gtPlusPlus.core.item.chemistry.GenericChem;
import gtPlusPlus.core.lib.CORE;
@@ -567,7 +568,7 @@ public class NaquadahReworkRecipeLoader {
GT_Recipe tRecipe;
- tRecipe = GT_Recipe.GT_Recipe_Map.sChemicalRecipes.findRecipe(
+ tRecipe = RecipeMaps.chemicalReactorRecipes.findRecipe(
null,
false,
1 << 30,
@@ -575,15 +576,15 @@ public class NaquadahReworkRecipeLoader {
GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Platinum, 16),
ItemList.Empty_Board_Elite.get(2));
if (tRecipe != null) {
- GT_Recipe.GT_Recipe_Map.sChemicalRecipes.mRecipeList.remove(tRecipe);
+ RecipeMaps.chemicalReactorRecipes.getBackend().removeRecipe(tRecipe);
GT_Recipe tRecipe2 = tRecipe.copy();
tRecipe2.mInputs = new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Naquadah, 8),
ItemList.Empty_Board_Elite.get(2) };
- GT_Recipe.GT_Recipe_Map.sChemicalRecipes.mRecipeList.add(tRecipe2);
- GT_Recipe.GT_Recipe_Map.sChemicalRecipes.reInit();
+ RecipeMaps.chemicalReactorRecipes.add(tRecipe2);
+ RecipeMaps.chemicalReactorRecipes.getBackend().reInit();
}
- tRecipe = GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes.findRecipe(
+ tRecipe = RecipeMaps.multiblockChemicalReactorRecipes.findRecipe(
null,
false,
1 << 30,
@@ -591,15 +592,15 @@ public class NaquadahReworkRecipeLoader {
GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Platinum, 16),
ItemList.Empty_Board_Elite.get(2));
if (tRecipe != null) {
- GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes.mRecipeList.remove(tRecipe);
+ RecipeMaps.multiblockChemicalReactorRecipes.getBackend().removeRecipe(tRecipe);
GT_Recipe tRecipe2 = tRecipe.copy();
tRecipe2.mInputs = new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Naquadah, 8),
ItemList.Empty_Board_Elite.get(2) };
- GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes.mRecipeList.add(tRecipe2);
- GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes.reInit();
+ RecipeMaps.multiblockChemicalReactorRecipes.add(tRecipe2);
+ RecipeMaps.multiblockChemicalReactorRecipes.getBackend().reInit();
}
- tRecipe = GT_Recipe.GT_Recipe_Map.sAssemblerRecipes.findRecipe(
+ tRecipe = RecipeMaps.assemblerRecipes.findRecipe(
null,
false,
1 << 30,
@@ -608,13 +609,13 @@ public class NaquadahReworkRecipeLoader {
GT_OreDictUnificator.get(OrePrefixes.foil, Materials.HSSS, 1),
GT_Utility.getIntegratedCircuit(1));
if (tRecipe != null) {
- GT_Recipe.GT_Recipe_Map.sAssemblerRecipes.mRecipeList.remove(tRecipe);
+ RecipeMaps.assemblerRecipes.getBackend().removeRecipe(tRecipe);
GT_Recipe tRecipe2 = tRecipe.copy();
tRecipe2.mInputs = new ItemStack[] {
GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Polybenzimidazole, 2),
GT_OreDictUnificator.get(OrePrefixes.foil, Materials.NaquadahEnriched, 1) };
- GT_Recipe.GT_Recipe_Map.sAssemblerRecipes.mRecipeList.add(tRecipe2);
- GT_Recipe.GT_Recipe_Map.sAssemblerRecipes.reInit();
+ RecipeMaps.assemblerRecipes.add(tRecipe2);
+ RecipeMaps.assemblerRecipes.getBackend().reInit();
}
}
@@ -628,7 +629,7 @@ public class NaquadahReworkRecipeLoader {
HashSet<GT_Recipe> reAdd = new HashSet<>(5000);
// For Crusher
- for (GT_Recipe recipe : GT_Recipe.GT_Recipe_Map.sMaceratorRecipes.mRecipeList) {
+ for (GT_Recipe recipe : RecipeMaps.maceratorRecipes.getAllRecipes()) {
ItemStack input = recipe.mInputs[0];
if (GT_Utility.isStackValid(input)) {
int[] oreDict = OreDictionary.getOreIDs(input);
@@ -666,9 +667,9 @@ public class NaquadahReworkRecipeLoader {
}
}
}
- GT_Recipe.GT_Recipe_Map.sMaceratorRecipes.mRecipeList.removeAll(remove);
- GT_Recipe.GT_Recipe_Map.sMaceratorRecipes.mRecipeList.addAll(reAdd);
- GT_Recipe.GT_Recipe_Map.sMaceratorRecipes.reInit();
+ RecipeMaps.maceratorRecipes.getBackend().removeRecipes(remove);
+ reAdd.forEach(RecipeMaps.maceratorRecipes::add);
+ RecipeMaps.maceratorRecipes.getBackend().reInit();
GT_Log.out.print(GoodGenerator.MOD_ID + ": Replace " + remove.size() + "! ");
@@ -678,7 +679,7 @@ public class NaquadahReworkRecipeLoader {
GT_Log.out.print("Crusher done!\n");
// For Washer
- for (GT_Recipe recipe : GT_Recipe.GT_Recipe_Map.sOreWasherRecipes.mRecipeList) {
+ for (GT_Recipe recipe : RecipeMaps.oreWasherRecipes.getAllRecipes()) {
ItemStack input = recipe.mInputs[0];
if (GT_Utility.isStackValid(input)) {
int[] oreDict = OreDictionary.getOreIDs(input);
@@ -715,9 +716,9 @@ public class NaquadahReworkRecipeLoader {
}
}
}
- GT_Recipe.GT_Recipe_Map.sOreWasherRecipes.mRecipeList.removeAll(remove);
- GT_Recipe.GT_Recipe_Map.sOreWasherRecipes.mRecipeList.addAll(reAdd);
- GT_Recipe.GT_Recipe_Map.sOreWasherRecipes.reInit();
+ RecipeMaps.oreWasherRecipes.getBackend().removeRecipes(remove);
+ reAdd.forEach(RecipeMaps.oreWasherRecipes::add);
+ RecipeMaps.oreWasherRecipes.getBackend().reInit();
GT_Log.out.print(GoodGenerator.MOD_ID + ": Replace " + remove.size() + "! ");
@@ -727,7 +728,7 @@ public class NaquadahReworkRecipeLoader {
GT_Log.out.print("Washer done!\n");
// For Thermal Centrifuge
- for (GT_Recipe recipe : GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes.mRecipeList) {
+ for (GT_Recipe recipe : RecipeMaps.thermalCentrifugeRecipes.getAllRecipes()) {
ItemStack input = recipe.mInputs[0];
if (GT_Utility.isStackValid(input)) {
int[] oreDict = OreDictionary.getOreIDs(input);
@@ -764,9 +765,9 @@ public class NaquadahReworkRecipeLoader {
}
}
}
- GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes.mRecipeList.removeAll(remove);
- GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes.mRecipeList.addAll(reAdd);
- GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes.reInit();
+ RecipeMaps.thermalCentrifugeRecipes.getBackend().removeRecipes(remove);
+ reAdd.forEach(RecipeMaps.thermalCentrifugeRecipes::add);
+ RecipeMaps.thermalCentrifugeRecipes.getBackend().reInit();
GT_Log.out.print(GoodGenerator.MOD_ID + ": Replace " + remove.size() + "! ");
@@ -776,7 +777,7 @@ public class NaquadahReworkRecipeLoader {
GT_Log.out.print("Thermal Centrifuge done!\n");
// For Centrifuge
- for (GT_Recipe recipe : GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes.mRecipeList) {
+ for (GT_Recipe recipe : RecipeMaps.centrifugeRecipes.getAllRecipes()) {
ItemStack input = null;
if (recipe.mInputs.length > 0) input = recipe.mInputs[0];
if (GT_Utility.isStackValid(input)) {
@@ -862,9 +863,9 @@ public class NaquadahReworkRecipeLoader {
}
}
}
- GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes.mRecipeList.removeAll(remove);
- GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes.mRecipeList.addAll(reAdd);
- GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes.reInit();
+ RecipeMaps.centrifugeRecipes.getBackend().removeRecipes(remove);
+ reAdd.forEach(RecipeMaps.centrifugeRecipes::add);
+ RecipeMaps.centrifugeRecipes.getBackend().reInit();
GT_Log.out.print(GoodGenerator.MOD_ID + ": Replace " + remove.size() + "! ");
@@ -874,7 +875,7 @@ public class NaquadahReworkRecipeLoader {
GT_Log.out.print("Centrifuge done!\n");
// For Centrifuge (PA)
- for (GT_Recipe recipe : GT_Recipe.GT_Recipe_Map.sMultiblockCentrifugeRecipes.mRecipeList) {
+ for (GT_Recipe recipe : RecipeMaps.centrifugeNonCellRecipes.getAllRecipes()) {
ItemStack input = null;
if (recipe.mInputs.length > 0) input = recipe.mInputs[0];
if (GT_Utility.isStackValid(input)) {
@@ -960,9 +961,9 @@ public class NaquadahReworkRecipeLoader {
}
}
}
- GT_Recipe.GT_Recipe_Map.sMultiblockCentrifugeRecipes.mRecipeList.removeAll(remove);
- GT_Recipe.GT_Recipe_Map.sMultiblockCentrifugeRecipes.mRecipeList.addAll(reAdd);
- GT_Recipe.GT_Recipe_Map.sMultiblockCentrifugeRecipes.reInit();
+ RecipeMaps.centrifugeNonCellRecipes.getBackend().removeRecipes(remove);
+ reAdd.forEach(RecipeMaps.centrifugeNonCellRecipes::add);
+ RecipeMaps.centrifugeNonCellRecipes.getBackend().reInit();
GT_Log.out.print(GoodGenerator.MOD_ID + ": Replace " + remove.size() + "! ");
@@ -972,7 +973,7 @@ public class NaquadahReworkRecipeLoader {
GT_Log.out.print("Centrifuge (PA) done!\n");
// For Hammer
- for (GT_Recipe recipe : GT_Recipe.GT_Recipe_Map.sHammerRecipes.mRecipeList) {
+ for (GT_Recipe recipe : RecipeMaps.hammerRecipes.getAllRecipes()) {
ItemStack input = recipe.mInputs[0];
if (GT_Utility.isStackValid(input)) {
int[] oreDict = OreDictionary.getOreIDs(input);
@@ -1009,9 +1010,9 @@ public class NaquadahReworkRecipeLoader {
}
}
}
- GT_Recipe.GT_Recipe_Map.sHammerRecipes.mRecipeList.removeAll(remove);
- GT_Recipe.GT_Recipe_Map.sHammerRecipes.mRecipeList.addAll(reAdd);
- GT_Recipe.GT_Recipe_Map.sHammerRecipes.reInit();
+ RecipeMaps.hammerRecipes.getBackend().removeRecipes(remove);
+ reAdd.forEach(RecipeMaps.hammerRecipes::add);
+ RecipeMaps.hammerRecipes.getBackend().reInit();
GT_Log.out.print(GoodGenerator.MOD_ID + ": Replace " + remove.size() + "! ");
@@ -1021,7 +1022,7 @@ public class NaquadahReworkRecipeLoader {
GT_Log.out.print("Hammer done!\n");
// For Chemical Reactor
- for (GT_Recipe recipe : GT_Recipe.GT_Recipe_Map.sChemicalRecipes.mRecipeList) {
+ for (GT_Recipe recipe : RecipeMaps.chemicalReactorRecipes.getAllRecipes()) {
if (recipe.mFluidOutputs == null) continue;
boolean isAny = false;
for (int i = 0; i < recipe.mFluidOutputs.length; i++) {
@@ -1054,9 +1055,9 @@ public class NaquadahReworkRecipeLoader {
remove.add(recipe);
}
}
- GT_Recipe.GT_Recipe_Map.sChemicalRecipes.mRecipeList.removeAll(remove);
- GT_Recipe.GT_Recipe_Map.sChemicalRecipes.mRecipeList.addAll(reAdd);
- GT_Recipe.GT_Recipe_Map.sChemicalRecipes.reInit();
+ RecipeMaps.chemicalReactorRecipes.getBackend().removeRecipes(remove);
+ reAdd.forEach(RecipeMaps.chemicalReactorRecipes::add);
+ RecipeMaps.chemicalReactorRecipes.getBackend().reInit();
GT_Log.out.print(GoodGenerator.MOD_ID + ": Replace " + remove.size() + "! ");
@@ -1066,7 +1067,7 @@ public class NaquadahReworkRecipeLoader {
GT_Log.out.print("Chemical Reactor done!\n");
// For Multi Chemical Reactor
- for (GT_Recipe recipe : GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes.mRecipeList) {
+ for (GT_Recipe recipe : RecipeMaps.multiblockChemicalReactorRecipes.getAllRecipes()) {
if (recipe.mFluidOutputs == null) continue;
boolean isAny = false;
for (int i = 0; i < recipe.mFluidOutputs.length; i++) {
@@ -1099,9 +1100,9 @@ public class NaquadahReworkRecipeLoader {
remove.add(recipe);
}
}
- GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes.mRecipeList.removeAll(remove);
- GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes.mRecipeList.addAll(reAdd);
- GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes.reInit();
+ RecipeMaps.multiblockChemicalReactorRecipes.getBackend().removeRecipes(remove);
+ reAdd.forEach(RecipeMaps.multiblockChemicalReactorRecipes::add);
+ RecipeMaps.multiblockChemicalReactorRecipes.getBackend().reInit();
GT_Log.out.print(GoodGenerator.MOD_ID + ": Replace " + remove.size() + "! ");
@@ -1115,12 +1116,12 @@ public class NaquadahReworkRecipeLoader {
// Apparently NEI will break down if one modifies the hash list directly.
// GTPP_Recipe.GTPP_Recipe_Map.sMultiblockCentrifugeRecipes_GT.mRecipeList.clear();
// RecipeGen_MultisUsingFluidInsteadOfCells.generateRecipesNotUsingCells(
- // GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes,
+ // RecipeMaps.centrifugeRecipes,
// GTPP_Recipe.GTPP_Recipe_Map.sMultiblockCentrifugeRecipes_GT);
// GTPP_Recipe.GTPP_Recipe_Map.sMultiblockCentrifugeRecipes_GT.reInit();
// For Simple Washer
- for (GT_Recipe recipe : GTPP_Recipe.GTPP_Recipe_Map.sSimpleWasherRecipes.mRecipeList) {
+ for (GT_Recipe recipe : GTPPRecipeMaps.simpleWasherRecipes.getAllRecipes()) {
ItemStack input = recipe.mInputs[0];
if (GT_Utility.isStackValid(input)) {
int[] oreDict = OreDictionary.getOreIDs(input);
@@ -1156,9 +1157,9 @@ public class NaquadahReworkRecipeLoader {
}
}
}
- GTPP_Recipe.GTPP_Recipe_Map.sSimpleWasherRecipes.mRecipeList.removeAll(remove);
- GTPP_Recipe.GTPP_Recipe_Map.sSimpleWasherRecipes.mRecipeList.addAll(reAdd);
- GTPP_Recipe.GTPP_Recipe_Map.sSimpleWasherRecipes.reInit();
+ GTPPRecipeMaps.simpleWasherRecipes.getBackend().removeRecipes(remove);
+ reAdd.forEach(GTPPRecipeMaps.simpleWasherRecipes::add);
+ GTPPRecipeMaps.simpleWasherRecipes.getBackend().reInit();
GT_Log.out.print(GoodGenerator.MOD_ID + ": Replace " + remove.size() + "! ");
diff --git a/src/main/java/goodgenerator/loader/RecipeLoader_02.java b/src/main/java/goodgenerator/loader/RecipeLoader_02.java
index 71ba3df2fd..f1aed79f73 100644
--- a/src/main/java/goodgenerator/loader/RecipeLoader_02.java
+++ b/src/main/java/goodgenerator/loader/RecipeLoader_02.java
@@ -1,6 +1,6 @@
package goodgenerator.loader;
-import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sAutoclaveRecipes;
+import static gregtech.api.recipe.RecipeMaps.autoclaveRecipes;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.Fluid;
@@ -22,6 +22,7 @@ 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;
import gregtech.api.util.GT_ModHandler;
import gregtech.api.util.GT_OreDictUnificator;
import gregtech.api.util.GT_Recipe;
@@ -33,7 +34,6 @@ import gtPlusPlus.core.recipe.common.CI;
import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList;
import ic2.core.Ic2Items;
-@SuppressWarnings("deprecation")
public class RecipeLoader_02 {
public static void RecipeLoad() {
@@ -678,7 +678,7 @@ public class RecipeLoader_02 {
WerkstoffLoader.Tiberium.get(OrePrefixes.gem, 1),
WerkstoffLoader.Tiberium.get(OrePrefixes.gem, 1))
.outputChances(10000, 2000).fluidInputs(MyMaterial.naquadahGas.getFluidOrGas(250)).duration(400)
- .eut(TierEU.RECIPE_HV).addTo(sAutoclaveRecipes);
+ .eut(TierEU.RECIPE_HV).addTo(autoclaveRecipes);
GT_Values.RA.addChemicalBathRecipe(
Materials.Firestone.getGems(1),
@@ -1608,7 +1608,7 @@ public class RecipeLoader_02 {
}
public static void FinishLoadRecipe() {
- for (GT_Recipe plasmaFuel : GT_Recipe.GT_Recipe_Map.sPlasmaFuels.mRecipeList) {
+ for (GT_Recipe plasmaFuel : RecipeMaps.plasmaFuels.getAllRecipes()) {
FluidStack tPlasma = GT_Utility.getFluidForFilledItem(plasmaFuel.mInputs[0], true);
if (tPlasma == null) {
continue;
diff --git a/src/main/java/goodgenerator/util/MyRecipeAdder.java b/src/main/java/goodgenerator/util/MyRecipeAdder.java
index 7914fa580a..2d75509179 100644
--- a/src/main/java/goodgenerator/util/MyRecipeAdder.java
+++ b/src/main/java/goodgenerator/util/MyRecipeAdder.java
@@ -1,267 +1,32 @@
package goodgenerator.util;
-import java.awt.Rectangle;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.function.Supplier;
-
import net.minecraft.item.ItemStack;
-import net.minecraft.util.StatCollector;
-import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidStack;
-import com.gtnewhorizons.modularui.api.math.Pos2d;
-import com.gtnewhorizons.modularui.api.screen.ModularWindow;
-import com.gtnewhorizons.modularui.common.widget.DrawableWidget;
-
-import goodgenerator.client.GUI.GG_UITextures;
-import gregtech.api.enums.GT_Values;
-import gregtech.api.gui.modularui.GT_UITextures;
-import gregtech.api.util.GT_Recipe;
-import gregtech.api.util.GT_Utility;
-import gregtech.common.gui.modularui.UIHelper;
+import goodgenerator.api.recipe.ExtremeHeatExchangerRecipe;
+import goodgenerator.api.recipe.GoodGeneratorRecipeMaps;
public class MyRecipeAdder {
public static final MyRecipeAdder instance = new MyRecipeAdder();
- public final liquidMentalFuelMapper NqGFuels = (liquidMentalFuelMapper) new liquidMentalFuelMapper(
- new HashSet<>(50),
- "gg.recipe.naquadah_reactor",
- StatCollector.translateToLocal("tile.recipe.naquadah_reactor"),
- null,
- "goodgenerator:textures/gui/naquadah_reactor",
- 0,
- 0,
- 0,
- 1,
- 1,
- StatCollector.translateToLocal("value.naquadah_reactor") + " ",
- 1,
- " EU/t",
- false,
- true) {
-
- @Override
- public void addProgressBarUI(ModularWindow.Builder builder, Supplier<Float> progressSupplier,
- Pos2d windowOffset) {
- builder.widget(
- new DrawableWidget().setDrawable(GG_UITextures.PICTURE_NAQUADAH_REACTOR)
- .setPos(new Pos2d(59, 20).add(windowOffset)).setSize(58, 42));
- }
- }.useModularUI(true);
-
- public final NaqFuelRefineMapper FRF = new NaqFuelRefineMapper(
- new HashSet<>(50),
- "gg.recipe.naquadah_fuel_refine_factory",
- StatCollector.translateToLocal("tile.naquadah_fuel_refine_factory"),
- null,
- "gregtech:textures/gui/basicmachines/FusionReactor",
- 6,
- 0,
- 0,
- 1,
- 1,
- StatCollector.translateToLocal("value.naquadah_fuel_refine_factory.0") + " ",
- 1,
- StatCollector.translateToLocal("value.naquadah_fuel_refine_factory.1"),
- true,
- true);
-
- public final NeutronActivatorMapper NA = (NeutronActivatorMapper) new NeutronActivatorMapper(
- new HashSet<>(150),
- "gg.recipe.neutron_activator",
- StatCollector.translateToLocal("tile.neutron_activator"),
- null,
- "goodgenerator:textures/gui/neutron_activator",
- 9,
- 9,
- 0,
- 0,
- 0,
- null,
- 0,
- null,
- false,
- true).setNEISpecialInfoFormatter((recipeInfo, applyPrefixAndSuffix) -> {
- 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"));
- });
-
- public final ExtremeHeatExchangerMapper XHE = (ExtremeHeatExchangerMapper) new ExtremeHeatExchangerMapper(
- new HashSet<>(50),
- "gg.recipe.extreme_heat_exchanger",
- StatCollector.translateToLocal("tile.extreme_heat_exchanger"),
- null,
- "goodgenerator:textures/gui/extreme_heat_exchanger",
- 0,
- 0,
- 0,
- 0,
- 0,
- null,
- 0,
- null,
- false,
- true).setNEISpecialInfoFormatter((recipeInfo, applyPrefixAndSuffix) -> {
- 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");
- });
-
- public final PreciseAssemblerMapper PA = new PreciseAssemblerMapper(
- new HashSet<>(120),
- "gg.recipe.precise_assembler",
- StatCollector.translateToLocal("tile.precise_assembler"),
- null,
- "goodgenerator:textures/gui/precise_assembler",
- 4,
- 1,
- 1,
- 0,
- 1,
- StatCollector.translateToLocal("value.precise_assembler.0"),
- 1,
- StatCollector.translateToLocal("value.precise_assembler.1"),
- true,
- true);
-
- public static class liquidMentalFuelMapper extends GT_Recipe.GT_Recipe_Map_Fuel {
-
- public liquidMentalFuelMapper(Collection<GT_Recipe> aRecipeList, String aUnlocalizedName, String aLocalName,
- String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount,
- int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre,
- int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI,
- boolean aNEIAllowed) {
- super(
- aRecipeList,
- aUnlocalizedName,
- aLocalName,
- aNEIName,
- aNEIGUIPath,
- aUsualInputCount,
- aUsualOutputCount,
- aMinimalInputItems,
- aMinimalInputFluids,
- aAmperage,
- aNEISpecialValuePre,
- aNEISpecialValueMultiplier,
- aNEISpecialValuePost,
- aShowVoltageAmperageInNEI,
- aNEIAllowed);
- }
-
- public void addFuel(FluidStack input, FluidStack output, int EUt, int ticks) {
- super.addRecipe(
- true,
- null,
- null,
- null,
- new FluidStack[] { input },
- new FluidStack[] { output },
- ticks,
- 0,
- EUt);
- }
- }
-
public void addLiquidMentalFuel(FluidStack input, FluidStack output, int EUt, int ticks) {
- NqGFuels.addFuel(input, output, EUt, ticks);
- }
-
- public static class NaqFuelRefineMapper extends GT_Recipe.GT_Recipe_Map {
-
- public NaqFuelRefineMapper(Collection<GT_Recipe> aRecipeList, String aUnlocalizedName, String aLocalName,
- String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount,
- int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre,
- int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI,
- boolean aNEIAllowed) {
- super(
- aRecipeList,
- aUnlocalizedName,
- aLocalName,
- aNEIName,
- aNEIGUIPath,
- aUsualInputCount,
- aUsualOutputCount,
- aMinimalInputItems,
- aMinimalInputFluids,
- aAmperage,
- aNEISpecialValuePre,
- aNEISpecialValueMultiplier,
- aNEISpecialValuePost,
- aShowVoltageAmperageInNEI,
- aNEIAllowed);
- setUsualFluidInputCount(2);
- }
-
- public void addNaqFuelRefineRecipe(FluidStack[] input1, ItemStack[] input2, FluidStack output, int EUt,
- int ticks, int tier) {
- super.addRecipe(false, input2, null, null, input1, new FluidStack[] { output }, ticks, EUt, tier);
- }
+ GoodGeneratorRecipeMaps.naquadahReactorFuels.addRecipe(
+ true,
+ null,
+ null,
+ null,
+ new FluidStack[] { input },
+ new FluidStack[] { output },
+ ticks,
+ 0,
+ EUt);
}
public void addNaquadahFuelRefineRecipe(FluidStack[] input1, ItemStack[] input2, FluidStack output, int EUt,
int ticks, int tier) {
- FRF.addNaqFuelRefineRecipe(input1, input2, output, EUt, ticks, tier);
- }
-
- public static class NeutronActivatorMapper extends GT_Recipe.GT_Recipe_Map {
-
- public NeutronActivatorMapper(Collection<GT_Recipe> aRecipeList, String aUnlocalizedName, String aLocalName,
- String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount,
- int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre,
- int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI,
- boolean aNEIAllowed) {
- super(
- aRecipeList,
- aUnlocalizedName,
- aLocalName,
- aNEIName,
- aNEIGUIPath,
- aUsualInputCount,
- aUsualOutputCount,
- aMinimalInputItems,
- aMinimalInputFluids,
- aAmperage,
- aNEISpecialValuePre,
- aNEISpecialValueMultiplier,
- aNEISpecialValuePost,
- aShowVoltageAmperageInNEI,
- aNEIAllowed);
- useModularUI(true);
- }
-
- public void addNARecipe(FluidStack[] input1, ItemStack[] input2, FluidStack[] output1, ItemStack[] output2,
- int ticks, int special) {
- super.addRecipe(false, input2, output2, null, input1, output1, ticks, 0, special);
- }
-
- @Override
- public void addProgressBarUI(ModularWindow.Builder builder, Supplier<Float> progressSupplier,
- Pos2d windowOffset) {
- builder.widget(
- new DrawableWidget().setDrawable(GG_UITextures.PICTURE_NEUTRON_ACTIVATOR)
- .setPos(new Pos2d(73, 22).add(windowOffset)).setSize(31, 21));
- }
+ GoodGeneratorRecipeMaps.naquadahFuelRefineFactoryRecipes
+ .addRecipe(false, input2, null, null, input1, new FluidStack[] { output }, ticks, EUt, tier);
}
public void addNeutronActivatorRecipe(FluidStack[] input1, ItemStack[] input2, FluidStack[] output1,
@@ -270,215 +35,23 @@ public class MyRecipeAdder {
if (maxNKE >= 1100) maxNKE = 1100;
if (minNKE < 0) minNKE = 0;
if (minNKE >= maxNKE) minNKE = maxNKE - 1;
- NA.addNARecipe(input1, input2, output1, output2, ticks, maxNKE * 10000 + minNKE);
- }
-
- public static HashMap<Fluid, ExtremeHeatExchangerRecipe> mXHeatExchangerFuelMap = new HashMap<>();
-
- public static class ExtremeHeatExchangerMapper extends GT_Recipe.GT_Recipe_Map {
-
- public ExtremeHeatExchangerMapper(Collection<GT_Recipe> aRecipeList, String aUnlocalizedName, String aLocalName,
- String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount,
- int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre,
- int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI,
- boolean aNEIAllowed) {
- super(
- aRecipeList,
- aUnlocalizedName,
- aLocalName,
- aNEIName,
- aNEIGUIPath,
- aUsualInputCount,
- aUsualOutputCount,
- aMinimalInputItems,
- aMinimalInputFluids,
- aAmperage,
- aNEISpecialValuePre,
- aNEISpecialValueMultiplier,
- aNEISpecialValuePost,
- aShowVoltageAmperageInNEI,
- aNEIAllowed);
- setUsualFluidInputCount(2);
- setUsualFluidOutputCount(3);
- }
-
- @Override
- public GT_Recipe addRecipe(boolean aOptimize, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecial,
- int[] aOutputChances, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt,
- int aSpecialValue) {
- ExtremeHeatExchangerRecipe tRecipe = new ExtremeHeatExchangerRecipe(
- aFluidInputs,
- aFluidOutputs,
- aSpecialValue);
- mXHeatExchangerFuelMap.put(aFluidInputs[0].getFluid(), tRecipe);
- return addRecipe(tRecipe);
- }
-
- @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));
- }
-
- @Override
- public void addProgressBarUI(ModularWindow.Builder builder, Supplier<Float> progressSupplier,
- Pos2d windowOffset) {
- builder.widget(
- new DrawableWidget().setDrawable(GG_UITextures.PICTURE_EXTREME_HEAT_EXCHANGER)
- .setPos(new Pos2d(47, 13).add(windowOffset)).setSize(78, 59));
- }
- }
-
- public static 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;
- }
+ GoodGeneratorRecipeMaps.neutronActivatorRecipes
+ .addRecipe(false, input2, output2, null, input1, output1, ticks, 0, maxNKE * 10000 + minNKE);
}
public void addExtremeHeatExchangerRecipe(FluidStack HotFluid, FluidStack ColdFluid, FluidStack WorkFluid,
FluidStack HeatedWorkFluid, FluidStack OverHeatedWorkFluid, int Threshold) {
- XHE.addRecipe(
- false,
- null,
- null,
- null,
- null,
- new FluidStack[] { HotFluid, WorkFluid },
- new FluidStack[] { HeatedWorkFluid, OverHeatedWorkFluid, ColdFluid },
- 0,
- 0,
- Threshold);
- }
-
- public static class PreciseAssemblerMapper extends GT_Recipe.GT_Recipe_Map {
-
- public PreciseAssemblerMapper(Collection<GT_Recipe> aRecipeList, String aUnlocalizedName, String aLocalName,
- String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount,
- int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre,
- int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI,
- boolean aNEIAllowed) {
- super(
- aRecipeList,
- aUnlocalizedName,
- aLocalName,
- aNEIName,
- aNEIGUIPath,
- aUsualInputCount,
- aUsualOutputCount,
- aMinimalInputItems,
- aMinimalInputFluids,
- aAmperage,
- aNEISpecialValuePre,
- aNEISpecialValueMultiplier,
- aNEISpecialValuePost,
- aShowVoltageAmperageInNEI,
- aNEIAllowed);
- setUsualFluidInputCount(4);
- setProgressBar(GT_UITextures.PROGRESSBAR_ARROW_MULTIPLE);
- setProgressBarPos(85, 30);
- setNEITransferRect(new Rectangle(80, 30, 35, 18));
- }
-
- @Override
- public GT_Recipe addRecipe(boolean aOptimize, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecial,
- int[] aOutputChances, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt,
- int aSpecialValue) {
- PreciseAssemblerRecipe tRecipe = new PreciseAssemblerRecipe(
- aInputs,
- aFluidInputs,
- aOutputs[0],
- aEUt,
- aDuration,
- aSpecialValue);
- return addRecipe(tRecipe);
- }
-
- @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);
- }
- }
-
- public static class PreciseAssemblerRecipe extends GT_Recipe {
-
- public PreciseAssemblerRecipe(ItemStack[] input1, FluidStack[] input2, ItemStack output, int EUt, int ticks,
- int tier) {
- super(false, input1, new ItemStack[] { output }, null, null, input2, null, ticks, EUt, tier);
- }
+ GoodGeneratorRecipeMaps.extremeHeatExchangerFuels.addRecipe(
+ new ExtremeHeatExchangerRecipe(
+ new FluidStack[] { HotFluid, WorkFluid },
+ new FluidStack[] { HeatedWorkFluid, OverHeatedWorkFluid, ColdFluid },
+ Threshold));
}
public void addPreciseAssemblerRecipe(ItemStack[] aItemInputs, FluidStack[] aFluidInputs, ItemStack aOutput,
int aEUt, int aDuration, int aTier) {
if (aOutput == null) return;
- PA.addRecipe(
+ GoodGeneratorRecipeMaps.preciseAssemblerRecipes.addRecipe(
false,
aItemInputs,
new ItemStack[] { aOutput },
@@ -491,85 +64,9 @@ public class MyRecipeAdder {
aTier);
}
- public static class ComponentAssemblyLineMapper extends GT_Recipe.GT_Recipe_Map {
-
- public ComponentAssemblyLineMapper(Collection<GT_Recipe> aRecipeList, String aUnlocalizedName,
- String aLocalName, String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount,
- int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre,
- int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI,
- boolean aNEIAllowed) {
-
- super(
- aRecipeList,
- aUnlocalizedName,
- aLocalName,
- aNEIName,
- aNEIGUIPath,
- aUsualInputCount,
- aUsualOutputCount,
- aMinimalInputItems,
- aMinimalInputFluids,
- aAmperage,
- aNEISpecialValuePre,
- aNEISpecialValueMultiplier,
- aNEISpecialValuePost,
- aShowVoltageAmperageInNEI,
- aNEIAllowed);
- setUsualFluidInputCount(12);
- setNEITransferRect(new Rectangle(70, 15, 18, 54));
- setNEISpecialInfoFormatter(
- (recipeInfo, applyPrefixAndSuffix) -> Collections.singletonList(
- recipeInfo.recipeMap.mNEISpecialValuePre + GT_Values.VN[recipeInfo.recipe.mSpecialValue]));
- }
-
- @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 addGregTechLogoUI(ModularWindow.Builder builder, Pos2d windowOffset) {}
-
- @Override
- public void addProgressBarUI(ModularWindow.Builder builder, Supplier<Float> progressSupplier,
- Pos2d windowOffset) {
- builder.widget(
- new DrawableWidget().setDrawable(GG_UITextures.PICTURE_COMPONENT_ASSLINE)
- .setPos(new Pos2d(70, 11).add(windowOffset)).setSize(72, 40));
- }
- }
-
- public final ComponentAssemblyLineMapper COMPASSLINE_RECIPES = new ComponentAssemblyLineMapper(
- new HashSet<>(110),
- "gg.recipe.componentassemblyline",
- "Component Assembly Line",
- null,
- "goodgenerator:textures/gui/ComponentAssline",
- 12,
- 1,
- 0,
- 0,
- 1,
- "Casing Tier: ",
- 1,
- "",
- false,
- true);
-
- public GT_Recipe addComponentAssemblyLineRecipe(ItemStack[] ItemInputArray, FluidStack[] FluidInputArray,
+ public void addComponentAssemblyLineRecipe(ItemStack[] ItemInputArray, FluidStack[] FluidInputArray,
ItemStack OutputItem, int aDuration, int aEUt, int casingLevel) {
- return COMPASSLINE_RECIPES.addRecipe(
+ GoodGeneratorRecipeMaps.componentAssemblyLineRecipes.addRecipe(
false,
ItemInputArray,
new ItemStack[] { OutputItem },
diff --git a/src/main/resources/assets/goodgenerator/lang/en_US.lang b/src/main/resources/assets/goodgenerator/lang/en_US.lang
index 400243124a..57ca4fe5b0 100644
--- a/src/main/resources/assets/goodgenerator/lang/en_US.lang
+++ b/src/main/resources/assets/goodgenerator/lang/en_US.lang
@@ -57,7 +57,6 @@ componentAssemblyLineCasing.11.name=Component Assembly Line Casing (UMV)
componentAssemblyLineCasing.12.name=Component Assembly Line Casing (UXV)
componentAssemblyLineCasing.13.name=Component Assembly Line Casing (MAX)
-
#Items
item.radiationProtectionPlate.name=Radiation Proof Plate
item.wrappedUraniumIngot.name=Wrapped Uranium Ingot
@@ -312,15 +311,17 @@ gui.YOTTank.button.locking=Fluid locking
gui.LargeFusion.0=Energy Capacity:
gui.LargeFusion.1=Stored Energy:
+# RecipeMaps
+gg.recipe.naquadah_reactor=Large Naquadah Reactor
+gg.recipe.naquadah_fuel_refine_factory=Naquadah Fuel Refine Factory
+gg.recipe.neutron_activator=Neutron Activator
+gg.recipe.extreme_heat_exchanger=Extreme Heat Exchanger
+gg.recipe.precise_assembler=Precise Assembler
+gg.recipe.componentassemblyline=Component Assembly Line
+
#NEI Info
-tile.recipe.naquadah_reactor=Large Naquadah Reactor
-tile.naquadah_fuel_refine_factory=Naquadah Fuel Refine Factory
-tile.neutron_activator=Neutron Activator
-tile.extreme_heat_exchanger=Extreme Heat Exchanger
-tile.precise_assembler=Precise Assembler
-value.naquadah_reactor=Basic Output Voltage:
-value.naquadah_fuel_refine_factory.0=Need Tier
-value.naquadah_fuel_refine_factory.1= Coil
+value.naquadah_reactor=Basic Output Voltage: %s EU/t
+value.naquadah_fuel_refine_factory=Need Tier %s Coil
value.neutron_activator.0=Minimum Neutron Kinetic Energy:
value.neutron_activator.1=Maximum Neutron Kinetic Energy:
value.neutron_activator.2= MeV
@@ -328,8 +329,8 @@ value.extreme_heat_exchanger.0=Max Hot Fluid Input:
value.extreme_heat_exchanger.1=Max Distilled Water Input(Normal):
value.extreme_heat_exchanger.2=Max Distilled Water Input(OverHeated):
value.extreme_heat_exchanger.4=Threshold:
-value.precise_assembler.0=Need MK-
-value.precise_assembler.1= Casing
+value.precise_assembler=Need MK-%s Casing
+value.component_assembly_line=Casing Tier: %s
#TecTech Structure Info
FuelRefineFactory.hint.0=8x Field Restriction Glasses
diff --git a/src/main/resources/assets/goodgenerator/lang/zh_CN.lang b/src/main/resources/assets/goodgenerator/lang/zh_CN.lang
index 45be636b7e..1572a2f5ac 100644
--- a/src/main/resources/assets/goodgenerator/lang/zh_CN.lang
+++ b/src/main/resources/assets/goodgenerator/lang/zh_CN.lang
@@ -266,25 +266,24 @@ gui.YOTTank.2=已存储:
gui.LargeFusion.0=能量容量:
gui.LargeFusion.1=储存能量:
+# RecipeMaps
+gg.recipe.naquadah_reactor=大型硅岩反应堆
+gg.recipe.naquadah_fuel_refine_factory=硅岩燃料精炼厂
+gg.recipe.neutron_activator=中子活化器
+gg.recipe.extreme_heat_exchanger=超级热交换机
+gg.recipe.precise_assembler=精密组装机
+
#NEI Info
-tile.recipe.naquadah_reactor=大型硅岩反应堆
-tile.naquadah_fuel_refine_factory=硅岩燃料精炼厂
-tile.neutron_activator=中子活化器
-tile.extreme_heat_exchanger=超级热交换机
-tile.precise_assembler=精密组装机
-value.naquadah_reactor=基础输出电压:
-value.naquadah_fuel_refine_factory.0=要求等级
-value.naquadah_fuel_refine_factory.1=线圈
+value.naquadah_reactor=基础输出电压: %s EU/t
+value.naquadah_fuel_refine_factory=要求等级 %s 线圈
value.neutron_activator.0=最低中子动能:
value.neutron_activator.1=最高中子动能:
value.neutron_activator.2= MeV
value.extreme_heat_exchanger.0=最大热流体输入:
value.extreme_heat_exchanger.1=最大工质输入:
value.extreme_heat_exchanger.2=最大热工质输出:
-value.extreme_heat_exchanger.3=最大过热工质输出:
value.extreme_heat_exchanger.4=阈值:
-value.precise_assembler.0=要求 MK-
-value.precise_assembler.1= 机械方块
+value.precise_assembler=要求 MK-%s 机械方块
#TecTech Structure Info
FuelRefineFactory.hint.0=8x力场约束玻璃