aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/goodgenerator/blocks/tileEntity
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/goodgenerator/blocks/tileEntity')
-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
14 files changed, 156 insertions, 82 deletions
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