diff options
Diffstat (limited to 'src/main/java/goodgenerator/blocks/tileEntity')
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 |