diff options
| author | miozune <miozune@gmail.com> | 2023-12-04 05:34:27 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-12-03 21:34:27 +0100 |
| commit | f74c7cc297d1d19d38a19683cd277ad9ce605d3a (patch) | |
| tree | b2a5d66ec5a959099240fb1db239ffc0f9531839 /src/main/java/gregtech/common/tileentities | |
| parent | b08cde7de4ec93cba05fb070991ad1dffb800ce1 (diff) | |
| download | GT5-Unofficial-f74c7cc297d1d19d38a19683cd277ad9ce605d3a.tar.gz GT5-Unofficial-f74c7cc297d1d19d38a19683cd277ad9ce605d3a.tar.bz2 GT5-Unofficial-f74c7cc297d1d19d38a19683cd277ad9ce605d3a.zip | |
Refactor RecipeMap (#2345)
* Remove deprecated and unused things
* Move recipemap subclasses
* Move GT_Recipe_Map to outside and rename to RecipeMap
* Move recipemap instances to separated class & remove prepending s
* Remove useless GT_Recipe constructors
* Always use ModularUI
* Rename IGT_RecipeMap -> IRecipeMap
* Add RecipeMapBuilder
* Remove more deprecated and unused things
* Fix RecipeMap type parameters
* Use multimap for recipe index
* Fix bending recipe error in dev env
* Remove mUniqueIdentifier
* Update AE2FC
* Less edgy texture for NEI recipe background
* Add replicator fluid output slot for NEI and machine GUI
* Fix fluid fuels not having fuel value in large boilers
* Remove GT_RectHandler and NEI_TransferRectHost
* Remove RecipeMapHandler
* Move NEI energy description from RecipeMapFrontend to Power
* Refactor the way to filter fusion recipes
* Check restriction for some properties
* Remove showVoltageAmperage
* Make Power accept GT_Recipe
* Fix NPE
* Move NEI duration description to Power from Frontend
* Directly implement IRecipeProcessingAwareHatch for GT_MetaTileEntity_Hatch_InputBus_ME
* Make Power integrated with GT_OverclockCalculator
* Rename Power -> OverclockDescriber
* Don't modify recipe find logic until postload finishes
* Reformat reserved MTE ids
* Fix check for too few inputs on recipe addition
* Move replicator logic to backend
* Stop un-hiding assline recipes
* Allow setting custom recipe comparator & implement for fusion
* Update AE2FC
* Rename getRecipeList and getRecipes -> getRecipeMap
* Automatically register recipe catalysts
* Cleanup the way to detect recipe collision
* Make use of BasicUIProperties for basic machines
* Make use of BasicUIProperties for UIHelper
* Rename specialHandler -> recipeTransformer
* Add way to automatically register handler info
* Add recipe category
* Add some APIs for addons
* Rename blastRecipes ->
blastFurnaceRecipes
* Remove GT_MetaTileEntity_BasicMachine_GT_Recipe#mSharedTank and #mRequiresFluidForFiltering
* Don't require setting duration and EU/t for fuel recipes
* Don't require setting EU/t for primitive blast furnace recipes
* Revert change to addMultiblockChemicalRecipe
* Fix large boiler general desc recipe not being added
* Hide duration and EU/t from large boiler
* Cleanup recipe stacktrace draw
* Extend metadata usage of recipe builder to recipe itself
* Implement metadata handling & NEI comparator for PCB factory
* Some rename around NEIRecipeInfo
* Some toString implementations
* Add more APIs for addons & some rename
* Infer handler icon from recipe catalyst if one is not set
* Also shrink recipe title when OC is not used
* Remove rare earth centrifuge recipe
* Use metadata for replicator backend
* Adjust geothermal generator output slot
* Allow having multiple transferrects
* Store recipemap reference in backend
* Rename vacuumRecipes -> vacuumFreezerRecipes
* Add config to tweak visibility of recipe categories
* Remove mHideRecyclingRecipes in favor of recipe category config
* Fix typo fluidSolidfierRecipes -> fluidSolidifierRecipes
* Refactor findRecipe and ProcessingLogic to use Stream
* Fix BBF handler icon & remove bronze blast furnace
* Add fluent API for findRecipe
* Add way to stop adding progressbar
* Change arg order for special texture
* Avoid overwriting interesting failure with NO_RECIPE
* Some changes for FuelBackend
* Set space project icon
* Remove localization from TT
* Remove CNC recipe adder
* Move recipe extractor from AE2FC
* Minor internal change for ProcessingLogic#applyRecipe
* More javadoc on #getAvailableRecipeMaps
* Better implementation of #ofSupplier
* Move replicator exponent config to GT_Proxy
* Remove RC & IC2 macerator handling
* Rename StreamUtil -> GT_StreamUtil
* Refactor code around RecipeMetadataStorage
* Revise #compileRecipe javadoc
* Switch extreme diesel recipe loader to downstream recipe map
* Optimize #reMap
* Rename reload -> reloadNEICache
* Minor tweak for drawEnergyInfo
* a bit more doc
* Adjust recipe catalysts
* Add toString implementation for GT_Fluid for debug
* Minor revision for OilCrackerBackend
* Index replicator recipes by material
---------
Co-authored-by: Glease <4586901+Glease@users.noreply.github.com>
Diffstat (limited to 'src/main/java/gregtech/common/tileentities')
61 files changed, 432 insertions, 545 deletions
diff --git a/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_RecipeFilter.java b/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_RecipeFilter.java index 6f023e025b..05128ee255 100644 --- a/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_RecipeFilter.java +++ b/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_RecipeFilter.java @@ -32,14 +32,12 @@ import codechicken.nei.recipe.RecipeCatalysts; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.interfaces.tileentity.IRecipeLockable; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicGenerator; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine; +import gregtech.api.interfaces.tileentity.RecipeMapWorkable; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_SpecialFilter; import gregtech.api.multitileentity.MultiTileEntityContainer; import gregtech.api.multitileentity.MultiTileEntityItemInternal; +import gregtech.api.recipe.RecipeMap; import gregtech.api.render.TextureFactory; -import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; import gregtech.common.blocks.GT_Item_Machines; import gregtech.loaders.preload.GT_Loader_MultiTileEntities; @@ -49,7 +47,7 @@ public class GT_MetaTileEntity_RecipeFilter extends GT_MetaTileEntity_SpecialFil private static final String TT_machineType = "GT5U.MBTT.MachineType"; private static final String REPRESENTATION_SLOT_TOOLTIP = "GT5U.recipe_filter.representation_slot.tooltip"; private static final String EMPTY_REPRESENTATION_SLOT_TOOLTIP = "GT5U.recipe_filter.empty_representation_slot.tooltip"; - public GT_Recipe.GT_Recipe_Map mRecipeMap; + public RecipeMap<?> mRecipeMap; private List<ItemStack> filteredMachines = new ArrayList<>(); public int mRotationIndex = 0; @@ -72,7 +70,7 @@ public class GT_MetaTileEntity_RecipeFilter extends GT_MetaTileEntity_SpecialFil super(aName, aTier, aInvSlotCount, aDescription, aTextures); } - private static GT_Recipe.GT_Recipe_Map getItemStackMachineRecipeMap(ItemStack stack) { + private static RecipeMap<?> getItemStackMachineRecipeMap(ItemStack stack) { if (stack != null) { IMetaTileEntity metaTileEntity = GT_Item_Machines.getMetaTileEntity(stack); if (metaTileEntity != null) { @@ -84,28 +82,27 @@ public class GT_MetaTileEntity_RecipeFilter extends GT_MetaTileEntity_SpecialFil return null; } - private static GT_Recipe.GT_Recipe_Map getMetaTileEntityRecipeMap(IMetaTileEntity metaTileEntity) { - if (metaTileEntity instanceof GT_MetaTileEntity_BasicMachine machine) { - return machine.getRecipeList(); - } else if (metaTileEntity instanceof IRecipeLockable recipeLockable) { - return recipeLockable.getRecipeMap(); - } else if (metaTileEntity instanceof GT_MetaTileEntity_BasicGenerator generator) { - return generator.getRecipes(); + private static RecipeMap<?> getMetaTileEntityRecipeMap(IMetaTileEntity metaTileEntity) { + if (metaTileEntity instanceof RecipeMapWorkable recipeMapWorkable) { + return recipeMapWorkable.getRecipeMap(); } return null; } - private static GT_Recipe.GT_Recipe_Map getMuTeRecipeMap(@NotNull ItemStack stack) { + private static RecipeMap<?> getMuTeRecipeMap(@NotNull ItemStack stack) { MultiTileEntityContainer muTeEntityContainer = GT_Loader_MultiTileEntities.MACHINE_REGISTRY .getNewTileEntityContainer(stack); - if (muTeEntityContainer != null && muTeEntityContainer.mTileEntity instanceof IRecipeLockable recipeLockable) { - return recipeLockable.getRecipeMap(); + if (muTeEntityContainer != null + && muTeEntityContainer.mTileEntity instanceof RecipeMapWorkable recipeMapWorkable) { + return recipeMapWorkable.getRecipeMap(); } return null; } - private static List<ItemStack> getFilteredMachines(GT_Recipe.GT_Recipe_Map recipeMap) { - return RecipeCatalysts.getRecipeCatalysts(recipeMap.mNEIName) + private static List<ItemStack> getFilteredMachines(RecipeMap<?> recipeMap) { + return RecipeCatalysts.getRecipeCatalysts( + recipeMap.getFrontend() + .getUIProperties().neiTransferRectId) .stream() .map(positionedStack -> positionedStack.item) .collect(Collectors.toList()); @@ -147,7 +144,9 @@ public class GT_MetaTileEntity_RecipeFilter extends GT_MetaTileEntity_SpecialFil @Override public void saveNBTData(NBTTagCompound aNBT) { super.saveNBTData(aNBT); - if (mRecipeMap != null) aNBT.setString("mRecipeMap", this.mRecipeMap.mUniqueIdentifier); + if (mRecipeMap != null) { + aNBT.setString("mRecipeMap", this.mRecipeMap.unlocalizedName); + } NBTTagList tagList = new NBTTagList(); for (ItemStack filteredMachine : filteredMachines) { tagList.appendTag(filteredMachine.writeToNBT(new NBTTagCompound())); @@ -158,7 +157,7 @@ public class GT_MetaTileEntity_RecipeFilter extends GT_MetaTileEntity_SpecialFil @Override public void loadNBTData(NBTTagCompound aNBT) { super.loadNBTData(aNBT); - this.mRecipeMap = GT_Recipe.GT_Recipe_Map.sIndexedMappings.getOrDefault(aNBT.getString("mRecipeMap"), null); + this.mRecipeMap = RecipeMap.getFromOldIdentifier(aNBT.getString("mRecipeMap")); filteredMachines.clear(); NBTTagList tagList = aNBT.getTagList("filteredMachines", Constants.NBT.TAG_COMPOUND); for (int i = 0; i < tagList.tagCount(); i++) { @@ -179,8 +178,8 @@ public class GT_MetaTileEntity_RecipeFilter extends GT_MetaTileEntity_SpecialFil super.addUIWidgets(builder, buildContext); builder.widget( new FakeSyncWidget.StringSyncer( - () -> this.mRecipeMap == null ? "" : this.mRecipeMap.mUniqueIdentifier, - (id) -> this.mRecipeMap = GT_Recipe.GT_Recipe_Map.sIndexedMappings.getOrDefault(id, null))); + () -> this.mRecipeMap == null ? "" : this.mRecipeMap.unlocalizedName, + id -> this.mRecipeMap = RecipeMap.ALL_RECIPE_MAPS.get(id))); } @Override @@ -198,15 +197,17 @@ public class GT_MetaTileEntity_RecipeFilter extends GT_MetaTileEntity_SpecialFil } @NotNull - private List<String> assembleItemStackReplacementTooltip(GT_Recipe.GT_Recipe_Map recipeMap) { + private List<String> assembleItemStackReplacementTooltip(RecipeMap<?> recipeMap) { List<String> tooltip = new ArrayList<>(); tooltip.add( StatCollector.translateToLocal(TT_machineType) + ": " + EnumChatFormatting.YELLOW - + StatCollector.translateToLocal(recipeMap.mUnlocalizedName) + + StatCollector.translateToLocal(recipeMap.unlocalizedName) + EnumChatFormatting.RESET); - if (recipeMap.mRecipeItemMap.size() > 0) { - tooltip.add("Filter size: §e" + recipeMap.mRecipeItemMap.size() + "§r"); + int recipeSize = recipeMap.getAllRecipes() + .size(); + if (recipeSize > 0) { + tooltip.add("Filter size: §e" + recipeSize + "§r"); } tooltip.addAll(mTooltipCache.getData(REPRESENTATION_SLOT_TOOLTIP).text); return tooltip; @@ -251,7 +252,7 @@ public class GT_MetaTileEntity_RecipeFilter extends GT_MetaTileEntity_SpecialFil updateAndSendRecipeMapToServer(mRecipeMap); } - private void updateAndSendRecipeMapToServer(GT_Recipe.GT_Recipe_Map recipeMap) { + private void updateAndSendRecipeMapToServer(RecipeMap<?> recipeMap) { if (recipeMap != null) { filteredMachines = getFilteredMachines(recipeMap); } else { @@ -260,7 +261,7 @@ public class GT_MetaTileEntity_RecipeFilter extends GT_MetaTileEntity_SpecialFil } mRotationIndex = -1; syncToServer(SYNC_RECIPEMAP_C2S, buffer -> { - NetworkUtils.writeStringSafe(buffer, recipeMap != null ? recipeMap.mUniqueIdentifier : null); + NetworkUtils.writeStringSafe(buffer, recipeMap != null ? recipeMap.unlocalizedName : null); buffer.writeVarIntToBuffer(filteredMachines.size()); for (ItemStack filteredMachine : filteredMachines) { NetworkUtils.writeItemStack(buffer, filteredMachine); @@ -276,9 +277,7 @@ public class GT_MetaTileEntity_RecipeFilter extends GT_MetaTileEntity_SpecialFil } String recipeMapName = NetworkUtils.readStringSafe(buf); - mRecipeMap = recipeMapName != null - ? GT_Recipe.GT_Recipe_Map.sIndexedMappings.getOrDefault(recipeMapName, null) - : null; + mRecipeMap = recipeMapName != null ? RecipeMap.ALL_RECIPE_MAPS.get(recipeMapName) : null; if (mRecipeMap != null) { updateAndSendRecipeMapToServer(mRecipeMap); } @@ -296,9 +295,7 @@ public class GT_MetaTileEntity_RecipeFilter extends GT_MetaTileEntity_SpecialFil } String recipeMapName = NetworkUtils.readStringSafe(buf); - mRecipeMap = recipeMapName != null - ? GT_Recipe.GT_Recipe_Map.sIndexedMappings.getOrDefault(recipeMapName, null) - : null; + mRecipeMap = recipeMapName != null ? RecipeMap.getFromOldIdentifier(recipeMapName) : null; mRotationIndex = -1; mInventory[FILTER_SLOT_INDEX] = null; filteredMachines.clear(); @@ -322,7 +319,7 @@ public class GT_MetaTileEntity_RecipeFilter extends GT_MetaTileEntity_SpecialFil // backward compatibility: This machine used to store only mRecipeMap, not filteredMachines syncToClient( REQUEST_FILTERED_MACHINES_S2C, - buffer -> NetworkUtils.writeStringSafe(buffer, mRecipeMap.mUniqueIdentifier)); + buffer -> NetworkUtils.writeStringSafe(buffer, mRecipeMap.unlocalizedName)); } } diff --git a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_DieselGenerator.java b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_DieselGenerator.java index 1132a0d53e..5047cb7624 100644 --- a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_DieselGenerator.java +++ b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_DieselGenerator.java @@ -39,9 +39,10 @@ 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_Recipe; import gregtech.api.util.GT_Utility; import gregtech.api.util.WorldSpawnedEventBuilder.ParticleEventBuilder; @@ -84,8 +85,8 @@ public class GT_MetaTileEntity_DieselGenerator extends GT_MetaTileEntity_BasicGe } @Override - public GT_Recipe.GT_Recipe_Map getRecipes() { - return GT_Recipe.GT_Recipe_Map.sDieselFuels; + public RecipeMap<?> getRecipeMap() { + return RecipeMaps.dieselFuels; } @Override @@ -107,7 +108,7 @@ public class GT_MetaTileEntity_DieselGenerator extends GT_MetaTileEntity_BasicGe @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 = 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/gregtech/common/tileentities/generators/GT_MetaTileEntity_GasTurbine.java b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_GasTurbine.java index 771dc36788..163f9fa319 100644 --- a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_GasTurbine.java +++ b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_GasTurbine.java @@ -31,8 +31,9 @@ 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_Recipe; public class GT_MetaTileEntity_GasTurbine extends GT_MetaTileEntity_BasicGenerator { @@ -106,8 +107,8 @@ public class GT_MetaTileEntity_GasTurbine extends GT_MetaTileEntity_BasicGenerat } @Override - public GT_Recipe.GT_Recipe_Map getRecipes() { - return GT_Recipe.GT_Recipe_Map.sTurbineFuels; + public RecipeMap<?> getRecipeMap() { + return RecipeMaps.gasTurbineFuels; } @Override diff --git a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicEnergyConverter.java b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicEnergyConverter.java index 07990213be..7317180b5d 100644 --- a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicEnergyConverter.java +++ b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicEnergyConverter.java @@ -18,8 +18,9 @@ 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_Recipe; public class GT_MetaTileEntity_MagicEnergyConverter extends GT_MetaTileEntity_BasicGenerator { @@ -57,8 +58,8 @@ public class GT_MetaTileEntity_MagicEnergyConverter extends GT_MetaTileEntity_Ba } @Override - public GT_Recipe.GT_Recipe_Map getRecipes() { - return GT_Recipe.GT_Recipe_Map.sMagicFuels; + public RecipeMap<?> getRecipeMap() { + return RecipeMaps.magicFuels; } @Override diff --git a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicalEnergyAbsorber.java b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicalEnergyAbsorber.java index 1be4d521a1..8dc3417a84 100644 --- a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicalEnergyAbsorber.java +++ b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicalEnergyAbsorber.java @@ -59,11 +59,12 @@ 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_Config; import gregtech.api.util.GT_LanguageManager; import gregtech.api.util.GT_Log; -import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; import gregtech.api.util.WorldSpawnedEventBuilder.ParticleEventBuilder; import thaumcraft.api.aspects.Aspect; @@ -440,8 +441,8 @@ public class GT_MetaTileEntity_MagicalEnergyAbsorber extends GT_MetaTileEntity_B } @Override - public GT_Recipe.GT_Recipe_Map getRecipes() { - return GT_Recipe.GT_Recipe_Map.sMagicFuels; + public RecipeMap<?> getRecipeMap() { + return RecipeMaps.magicFuels; } @Override diff --git a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_NaquadahReactor.java b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_NaquadahReactor.java index babb4925bb..ba5aaf4c64 100644 --- a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_NaquadahReactor.java +++ b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_NaquadahReactor.java @@ -29,8 +29,9 @@ 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_Recipe; public class GT_MetaTileEntity_NaquadahReactor extends GT_MetaTileEntity_BasicGenerator { @@ -67,14 +68,14 @@ public class GT_MetaTileEntity_NaquadahReactor extends GT_MetaTileEntity_BasicGe } @Override - public GT_Recipe.GT_Recipe_Map getRecipes() { - GT_Recipe.GT_Recipe_Map ret; + public RecipeMap<?> getRecipeMap() { + RecipeMap<?> ret; switch (mTier) { - case 4 -> ret = GT_Recipe.GT_Recipe_Map.sSmallNaquadahReactorFuels; - case 5 -> ret = GT_Recipe.GT_Recipe_Map.sLargeNaquadahReactorFuels; - case 6 -> ret = GT_Recipe.GT_Recipe_Map.sHugeNaquadahReactorFuels; - case 7 -> ret = GT_Recipe.GT_Recipe_Map.sExtremeNaquadahReactorFuels; - case 8 -> ret = GT_Recipe.GT_Recipe_Map.sUltraHugeNaquadahReactorFuels; + case 4 -> ret = RecipeMaps.smallNaquadahReactorFuels; + case 5 -> ret = RecipeMaps.largeNaquadahReactorFuels; + case 6 -> ret = RecipeMaps.hugeNaquadahReactorFuels; + case 7 -> ret = RecipeMaps.extremeNaquadahReactorFuels; + case 8 -> ret = RecipeMaps.ultraHugeNaquadahReactorFuels; default -> ret = null; } return ret; @@ -82,7 +83,8 @@ public class GT_MetaTileEntity_NaquadahReactor extends GT_MetaTileEntity_BasicGe @Override public int getCapacity() { - return getRecipes() != null ? getRecipes().mMinimalInputFluids > 0 ? 8000 * (mTier + 1) : 0 : 0; + return getRecipeMap() != null ? getRecipeMap().getBackend() + .getProperties().minFluidInputs > 0 ? 8000 * (mTier + 1) : 0 : 0; } @Override diff --git a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_PlasmaGenerator.java b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_PlasmaGenerator.java index 00c7f93128..603c1439ba 100644 --- a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_PlasmaGenerator.java +++ b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_PlasmaGenerator.java @@ -13,8 +13,9 @@ 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_Recipe; public class GT_MetaTileEntity_PlasmaGenerator extends GT_MetaTileEntity_BasicGenerator { @@ -113,8 +114,8 @@ public class GT_MetaTileEntity_PlasmaGenerator extends GT_MetaTileEntity_BasicGe } @Override - public GT_Recipe.GT_Recipe_Map getRecipes() { - return GT_Recipe.GT_Recipe_Map.sPlasmaFuels; + public RecipeMap<?> getRecipeMap() { + return RecipeMaps.plasmaFuels; } @Override diff --git a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_SteamTurbine.java b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_SteamTurbine.java index bfc4529ffe..7a3d50f213 100644 --- a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_SteamTurbine.java +++ b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_SteamTurbine.java @@ -31,9 +31,9 @@ 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.render.TextureFactory; import gregtech.api.util.GT_ModHandler; -import gregtech.api.util.GT_Recipe; public class GT_MetaTileEntity_SteamTurbine extends GT_MetaTileEntity_BasicGenerator { @@ -70,7 +70,7 @@ public class GT_MetaTileEntity_SteamTurbine extends GT_MetaTileEntity_BasicGener } @Override - public GT_Recipe.GT_Recipe_Map getRecipes() { + public RecipeMap<?> getRecipeMap() { return null; } diff --git a/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_Hatch_InputBus_ME.java b/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_Hatch_InputBus_ME.java index 2449719079..59746800b1 100644 --- a/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_Hatch_InputBus_ME.java +++ b/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_Hatch_InputBus_ME.java @@ -74,8 +74,8 @@ import gregtech.common.gui.modularui.widget.AESlotWidget; import mcp.mobius.waila.api.IWailaConfigHandler; import mcp.mobius.waila.api.IWailaDataAccessor; -public class GT_MetaTileEntity_Hatch_InputBus_ME extends GT_MetaTileEntity_Hatch_InputBus - implements IConfigurationCircuitSupport, IAddGregtechLogo, IAddUIWidgets, IPowerChannelState { +public class GT_MetaTileEntity_Hatch_InputBus_ME extends GT_MetaTileEntity_Hatch_InputBus implements + IConfigurationCircuitSupport, IRecipeProcessingAwareHatch, IAddGregtechLogo, IAddUIWidgets, IPowerChannelState { private static final int SLOT_COUNT = 16; private BaseActionSource requestSource = null; diff --git a/src/main/java/gregtech/common/tileentities/machines/IRecipeProcessingAwareHatch.java b/src/main/java/gregtech/common/tileentities/machines/IRecipeProcessingAwareHatch.java index d78400b30e..c7a97ce969 100644 --- a/src/main/java/gregtech/common/tileentities/machines/IRecipeProcessingAwareHatch.java +++ b/src/main/java/gregtech/common/tileentities/machines/IRecipeProcessingAwareHatch.java @@ -2,30 +2,25 @@ package gregtech.common.tileentities.machines; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; import gregtech.api.recipe.check.CheckRecipeResult; -import gregtech.api.recipe.check.CheckRecipeResultRegistry; +/** + * Implement this interface for {@link gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch} + * if it does special stuff while multiblock controller is processing recipe. + */ public interface IRecipeProcessingAwareHatch { /** * Called when multiblock controller starts processing. - * {@link #endRecipeProcessing(GT_MetaTileEntity_MultiBlockBase)} is called on the same tick. + * {@link #endRecipeProcessing} is called on the same tick. */ - default void startRecipeProcessing() {} + void startRecipeProcessing(); /** - * Called when multiblock controller ends processing. {@link #startRecipeProcessing()} is called on the same tick. + * Called when multiblock controller ends processing. {@link #startRecipeProcessing} is called on the same tick. * * @param controller Caller of this method. * @return Result of the process of this method. {@code !wasSuccessful()} means the returned result should * overwrite the result calculated on multiblock whatever the reason is. */ - default CheckRecipeResult endRecipeProcessing(GT_MetaTileEntity_MultiBlockBase controller) { - endRecipeProcessing(); - return CheckRecipeResultRegistry.SUCCESSFUL; - } - - /** - * Simple version of {@link #endRecipeProcessing(GT_MetaTileEntity_MultiBlockBase)}. Maybe use it instead. - */ - default void endRecipeProcessing() {} + CheckRecipeResult endRecipeProcessing(GT_MetaTileEntity_MultiBlockBase controller); } diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Boxinator.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Boxinator.java index 34bb0b782c..6c908aadac 100644 --- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Boxinator.java +++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Boxinator.java @@ -26,9 +26,10 @@ import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine; +import gregtech.api.recipe.RecipeMap; +import gregtech.api.recipe.RecipeMaps; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_ModHandler; -import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; public class GT_MetaTileEntity_Boxinator extends GT_MetaTileEntity_BasicMachine { @@ -107,8 +108,8 @@ public class GT_MetaTileEntity_Boxinator extends GT_MetaTileEntity_BasicMachine } @Override - public GT_Recipe.GT_Recipe_Map getRecipeList() { - return GT_Recipe.GT_Recipe_Map.sBoxinatorRecipes; + public RecipeMap<?> getRecipeMap() { + return RecipeMaps.packagerRecipes; } private boolean hasValidCache(ItemStack mItem, int mType, boolean mClearOnFailure) { @@ -206,7 +207,7 @@ public class GT_MetaTileEntity_Boxinator extends GT_MetaTileEntity_BasicMachine if ((ItemList.Schematic_1by1.isStackEqual(tInput1)) || (ItemList.Schematic_2by2.isStackEqual(tInput1)) || (ItemList.Schematic_3by3.isStackEqual(tInput1))) { if (hasValidCache(aStack, aTypeCache, false)) return true; - if (GT_Recipe.GT_Recipe_Map.sBoxinatorRecipes.findRecipe( + if (RecipeMaps.packagerRecipes.findRecipe( getBaseMetaTileEntity(), true, gregtech.api.enums.GT_Values.V[mTier], @@ -224,7 +225,7 @@ public class GT_MetaTileEntity_Boxinator extends GT_MetaTileEntity_BasicMachine return ItemList.Schematic_3by3.isStackEqual(getInputAt(1)) && (GT_ModHandler .getRecipeOutput(aStack, aStack, aStack, aStack, aStack, aStack, aStack, aStack, aStack) != null); } else { - return GT_Recipe.GT_Recipe_Map.sBoxinatorRecipes.containsInput(aStack); + return RecipeMaps.packagerRecipes.containsInput(aStack); } } } diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_IndustrialApiary.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_IndustrialApiary.java index ad7b15ed60..3753fb8cd8 100644 --- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_IndustrialApiary.java +++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_IndustrialApiary.java @@ -50,6 +50,7 @@ import net.minecraft.world.biome.BiomeGenBase; import net.minecraftforge.common.util.ForgeDirection; import com.google.common.collect.ImmutableSet; +import com.gtnewhorizons.modularui.api.drawable.FallbackableUITexture; import com.gtnewhorizons.modularui.api.drawable.IDrawable; import com.gtnewhorizons.modularui.api.forge.IItemHandlerModifiable; import com.gtnewhorizons.modularui.api.math.Pos2d; @@ -63,7 +64,6 @@ import com.gtnewhorizons.modularui.common.widget.ButtonWidget; import com.gtnewhorizons.modularui.common.widget.CycleButtonWidget; import com.gtnewhorizons.modularui.common.widget.DrawableWidget; import com.gtnewhorizons.modularui.common.widget.FakeSyncWidget; -import com.gtnewhorizons.modularui.common.widget.ProgressBar; import com.gtnewhorizons.modularui.common.widget.SlotGroup; import com.gtnewhorizons.modularui.common.widget.SlotWidget; import com.gtnewhorizons.modularui.common.widget.TextWidget; @@ -110,6 +110,7 @@ import gregtech.api.interfaces.modularui.IAddUIWidgets; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine; +import gregtech.api.recipe.BasicUIProperties; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_ApiaryModifier; import gregtech.api.util.GT_ApiaryUpgrade; @@ -1178,17 +1179,12 @@ public class GT_MetaTileEntity_IndustrialApiary extends GT_MetaTileEntity_BasicM super.addUIWidgets(builder, buildContext); builder.widget( - new ProgressBar().setProgress(() -> (float) getProgresstime() / Math.max(maxProgresstime(), 1)) - .setTexture(GT_UITextures.PROGRESSBAR_ARROW, 20) - .setPos(70, 3) - .setSize(20, 18)) - .widget( - new ButtonWidget().setOnClick((clickData, widget) -> cancelProcess()) - .setBackground(GT_UITextures.BUTTON_STANDARD, GT_UITextures.OVERLAY_BUTTON_CROSS) - .setGTTooltip(() -> mTooltipCache.getData(CANCEL_PROCESS_TOOLTIP)) - .setTooltipShowUpDelay(TOOLTIP_DELAY) - .setPos(7, 26) - .setSize(18, 18)) + new ButtonWidget().setOnClick((clickData, widget) -> cancelProcess()) + .setBackground(GT_UITextures.BUTTON_STANDARD, GT_UITextures.OVERLAY_BUTTON_CROSS) + .setGTTooltip(() -> mTooltipCache.getData(CANCEL_PROCESS_TOOLTIP)) + .setTooltipShowUpDelay(TOOLTIP_DELAY) + .setPos(7, 26) + .setSize(18, 18)) .widget( new CycleButtonWidget().setToggle(() -> mAutoQueen, x -> mAutoQueen = x) .setTextureGetter( @@ -1286,6 +1282,17 @@ public class GT_MetaTileEntity_IndustrialApiary extends GT_MetaTileEntity_BasicM .setPos(26, 72)); } + private static final FallbackableUITexture progressBarTexture = GT_UITextures + .fallbackableProgressbar("iapiary", GT_UITextures.PROGRESSBAR_ARROW); + + @Override + protected BasicUIProperties getUIProperties() { + return super.getUIProperties().toBuilder() + .progressBarTexture(progressBarTexture) + .progressBarPos(new Pos2d(70, 3)) + .build(); + } + @Override protected SlotWidget createItemInputSlot(int index, IDrawable[] backgrounds, Pos2d pos) { // we have custom input slots diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Massfabricator.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Massfabricator.java index ca3707abc9..3e00bd1b1b 100644 --- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Massfabricator.java +++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Massfabricator.java @@ -20,8 +20,12 @@ import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_TOP_MASSFAB_GLOW; import java.util.Arrays; +import javax.annotation.ParametersAreNonnullByDefault; + import net.minecraftforge.fluids.FluidStack; +import com.google.common.primitives.Ints; + import gregtech.api.enums.ConfigCategories; import gregtech.api.enums.ItemList; import gregtech.api.enums.MachineType; @@ -30,12 +34,16 @@ import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine; +import gregtech.api.objects.overclockdescriber.EUOverclockDescriber; +import gregtech.api.objects.overclockdescriber.OverclockDescriber; +import gregtech.api.recipe.RecipeMap; +import gregtech.api.recipe.RecipeMaps; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_Config; +import gregtech.api.util.GT_OverclockCalculator; import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; -import gregtech.common.power.BasicMachineEUPower; -import gregtech.common.power.Power; +import gregtech.api.util.MethodsReturnNonnullByDefault; public class GT_MetaTileEntity_Massfabricator extends GT_MetaTileEntity_BasicMachine { @@ -43,7 +51,9 @@ public class GT_MetaTileEntity_Massfabricator extends GT_MetaTileEntity_BasicMac public static int sUUASpeedBonus = 4; public static int sDurationMultiplier = 3215; public static boolean sRequiresUUA = false; - protected final long EUt; + public static int BASE_EUT = 256; + public static GT_Recipe nonUUARecipe; + public static GT_Recipe uuaRecipe; public GT_MetaTileEntity_Massfabricator(int aID, String aName, String aNameRegional, int aTier) { super( @@ -51,7 +61,7 @@ public class GT_MetaTileEntity_Massfabricator extends GT_MetaTileEntity_BasicMac aName, aNameRegional, aTier, - 1, + 8, MachineType.MATTER_FABRICATOR.tooltipDescription(), 1, 1, @@ -103,12 +113,10 @@ public class GT_MetaTileEntity_Massfabricator extends GT_MetaTileEntity_BasicMac .addIcon(OVERLAY_BOTTOM_MASSFAB_GLOW) .glow() .build())); - EUt = V[1] * (long) Math.pow(2, mTier + 2); } public GT_MetaTileEntity_Massfabricator(String aName, int aTier, String[] aDescription, ITexture[][][] aTextures) { super(aName, aTier, 1, aDescription, aTextures, 1, 1); - EUt = V[1] * (long) Math.pow(2, mTier + 2); } @Override @@ -122,8 +130,8 @@ public class GT_MetaTileEntity_Massfabricator extends GT_MetaTileEntity_BasicMac } @Override - protected Power buildPower() { - return new MassfabricatorPower(mTier, mAmperage); + protected OverclockDescriber createOverclockDescriber() { + return new MassfabricatorOverclockDescriber(mTier, mAmperage); } @Override @@ -152,9 +160,7 @@ public class GT_MetaTileEntity_Massfabricator extends GT_MetaTileEntity_BasicMac FluidStack tFluid = getDrainableStack(); if ((tFluid == null) || (tFluid.amount < getCapacity())) { this.mOutputFluid = Materials.UUMatter.getFluid(1L); - calculateOverclockedNess( - (int) EUt, - containsUUA(getFillableStack()) ? sDurationMultiplier / sUUASpeedBonus : sDurationMultiplier); + calculateCustomOverclock(containsUUA(getFillableStack()) ? uuaRecipe : nonUUARecipe); // In case recipe is too OP for that machine if (mMaxProgresstime == Integer.MAX_VALUE - 1 && mEUt == Integer.MAX_VALUE - 1) return FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS; @@ -171,8 +177,8 @@ public class GT_MetaTileEntity_Massfabricator extends GT_MetaTileEntity_BasicMac } @Override - public GT_Recipe.GT_Recipe_Map getRecipeList() { - return GT_Recipe.GT_Recipe_Map.sMassFabFakeRecipes; + public RecipeMap<?> getRecipeMap() { + return RecipeMaps.massFabFakeRecipes; } @Override @@ -189,64 +195,37 @@ public class GT_MetaTileEntity_Massfabricator extends GT_MetaTileEntity_BasicMac return aFluid != null && aFluid.amount >= sUUAperUUM && aFluid.isFluidEqual(Materials.UUAmplifier.getFluid(1L)); } - protected class MassfabricatorPower extends BasicMachineEUPower { + @ParametersAreNonnullByDefault + @MethodsReturnNonnullByDefault + protected class MassfabricatorOverclockDescriber extends EUOverclockDescriber { - protected MassfabricatorPower(byte tier, int amperage) { + protected MassfabricatorOverclockDescriber(byte tier, int amperage) { super(tier, amperage); } @Override - public void computePowerUsageAndDuration(int euPerTick, int duration) { - originalVoltage = computeVoltageForEuRate(euPerTick); - - if (mTier == 0) { - // Long time calculation - long xMaxProgresstime = ((long) duration) << 1; - if (xMaxProgresstime > Integer.MAX_VALUE - 1) { - // make impossible if too long - recipeEuPerTick = Integer.MAX_VALUE - 1; - recipeDuration = Integer.MAX_VALUE - 1; - } else { - recipeEuPerTick = (int) (V[1] << 2); // 2^2=4 so shift <<2 - recipeDuration = (int) xMaxProgresstime; - } - } else { - // Long EUt calculation - long xEUt = EUt; - - long tempEUt = V[1]; - - recipeDuration = duration; + public GT_OverclockCalculator createCalculator(GT_OverclockCalculator template, GT_Recipe recipe) { + return super.createCalculator(template, recipe).setEUt(Ints.saturatedCast(V[tier] * amperage)) + .setEUtIncreasePerOC(1) + .limitOverclockCount(tier - 1) + .setOneTickDiscount(false); + } - while (tempEUt <= V[mTier - 1]) { - tempEUt <<= 2; // this actually controls overclocking - recipeDuration >>= 1; // this is effect of overclocking - if (recipeDuration == 0) xEUt = (long) (xEUt / 1.1D); // U know, if the time is less than 1 tick - // make the machine use less power - } - if (xEUt > Integer.MAX_VALUE - 1) { - recipeEuPerTick = Integer.MAX_VALUE - 1; - recipeDuration = Integer.MAX_VALUE - 1; - } else { - recipeEuPerTick = (int) xEUt; - if (recipeEuPerTick == 0) recipeEuPerTick = 1; - if (recipeDuration == 0) recipeDuration = 1; // set time to 1 tick - } - } - wasOverclocked = checkIfOverclocked(); + @Override + protected boolean shouldShowAmperage(GT_OverclockCalculator calculator) { + return true; } @Override - public String getVoltageString() { - long voltage = V[1]; - String voltageDescription = GT_Utility.formatNumbers(voltage) + " EU"; - voltageDescription += GT_Utility.getTierNameWithParentheses(voltage); - return voltageDescription; + protected String getVoltageString(GT_OverclockCalculator calculator) { + // standard amperage calculation doesn't work here + return decorateWithOverclockLabel(GT_Utility.formatNumbers(V[mTier]) + " EU/t", calculator) + + GT_Utility.getTierNameWithParentheses(V[mTier]); } @Override - public String getAmperageString() { - long amperage = originalVoltage / V[1]; + protected String getAmperageString(GT_OverclockCalculator calculator) { + int amperage = this.amperage; int denominator = 1; for (int i = 1; i < mTier; i++) { amperage >>= 1; diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Miner.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Miner.java index 3e5445a659..39581c6d93 100644 --- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Miner.java +++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Miner.java @@ -2,7 +2,6 @@ package gregtech.common.tileentities.machines.basic; import static gregtech.api.enums.GT_Values.V; import static gregtech.api.enums.GT_Values.debugBlockMiner; -import static gregtech.api.enums.Mods.GregTech; import java.util.ArrayList; @@ -19,12 +18,6 @@ import net.minecraftforge.common.util.FakePlayer; import net.minecraftforge.common.util.ForgeDirection; import com.gtnewhorizons.modularui.api.drawable.FallbackableUITexture; -import com.gtnewhorizons.modularui.api.drawable.UITexture; -import com.gtnewhorizons.modularui.api.math.Pos2d; -import com.gtnewhorizons.modularui.api.math.Size; -import com.gtnewhorizons.modularui.api.screen.ModularWindow; -import com.gtnewhorizons.modularui.api.screen.UIBuildContext; -import com.gtnewhorizons.modularui.common.widget.ProgressBar; import gregtech.api.enums.Textures; import gregtech.api.gui.modularui.GT_UITextures; @@ -33,6 +26,7 @@ import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.modularui.IAddUIWidgets; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine; +import gregtech.api.recipe.BasicUIProperties; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_Log; import gregtech.api.util.GT_Utility; @@ -429,19 +423,13 @@ public class GT_MetaTileEntity_Miner extends GT_MetaTileEntity_BasicMachine return true; } - private static final FallbackableUITexture progressBarTexture = new FallbackableUITexture( - UITexture.fullImage(GregTech.ID, "gui/progressbar/miner"), - GT_UITextures.PROGRESSBAR_CANNER); + private static final FallbackableUITexture progressBarTexture = GT_UITextures + .fallbackableProgressbar("miner", GT_UITextures.PROGRESSBAR_CANNER); @Override - public void addUIWidgets(ModularWindow.Builder builder, UIBuildContext buildContext) { - super.addUIWidgets(builder, buildContext); - builder.widget( - createProgressBar( - progressBarTexture.get(), - 20, - ProgressBar.Direction.RIGHT, - new Pos2d(78, 24), - new Size(20, 18))); + protected BasicUIProperties getUIProperties() { + return super.getUIProperties().toBuilder() + .progressBarTexture(progressBarTexture) + .build(); } } diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_PotionBrewer.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_PotionBrewer.java index 7b333208e0..15150abf67 100644 --- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_PotionBrewer.java +++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_PotionBrewer.java @@ -30,9 +30,10 @@ import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine; +import gregtech.api.recipe.RecipeMap; +import gregtech.api.recipe.RecipeMaps; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_OreDictUnificator; -import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; public class GT_MetaTileEntity_PotionBrewer extends GT_MetaTileEntity_BasicMachine { @@ -107,8 +108,8 @@ public class GT_MetaTileEntity_PotionBrewer extends GT_MetaTileEntity_BasicMachi } @Override - public GT_Recipe.GT_Recipe_Map getRecipeList() { - return GT_Recipe.GT_Recipe_Map.sBrewingRecipes; + public RecipeMap<?> getRecipeMap() { + return RecipeMaps.brewingRecipes; } @Override @@ -217,7 +218,7 @@ public class GT_MetaTileEntity_PotionBrewer extends GT_MetaTileEntity_BasicMachi public boolean allowPutStackValidated(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, ItemStack aStack) { return super.allowPutStackValidated(aBaseMetaTileEntity, aIndex, side, aStack) - && getRecipeList().containsInput(aStack); + && getRecipeMap().containsInput(aStack); } @Override diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Replicator.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Replicator.java index 92327984e7..a15d5b7f6d 100644 --- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Replicator.java +++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Replicator.java @@ -17,45 +17,23 @@ import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_TOP_REPLICATOR_ACTI import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_TOP_REPLICATOR_ACTIVE_GLOW; import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_TOP_REPLICATOR_GLOW; -import java.util.HashMap; -import java.util.NoSuchElementException; - import net.minecraft.item.ItemStack; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; -import gregtech.api.GregTech_API; -import gregtech.api.enums.Element; import gregtech.api.enums.ItemList; import gregtech.api.enums.MachineType; import gregtech.api.enums.Materials; -import gregtech.api.enums.OrePrefixes; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine; +import gregtech.api.recipe.RecipeMap; +import gregtech.api.recipe.RecipeMaps; import gregtech.api.render.TextureFactory; -import gregtech.api.util.GT_OreDictUnificator; -import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Utility; -import gregtech.common.items.behaviors.Behaviour_DataOrb; public class GT_MetaTileEntity_Replicator extends GT_MetaTileEntity_BasicMachine { - public static final HashMap<Materials, Long> MASS_OVERRIDES = new HashMap<>(); - public static final double EXPONENT = GregTech_API.sOPStuff.get("Replicator", "Nerf Exponent", 1.2D); - private static int sHeaviestElementMass = 0; - - static { - /* - * Put overrides here. For instance: - * MASS_OVERRIDES.put(Materials.get("cake"),Materials.get("cake").getMass()); - * MASS_OVERRIDES.put(Materials.get("otherCake"),1235234L); - * MASS_OVERRIDES.put(Materials.Kalendrite,1235234L); - * MASS_OVERRIDES.put(Materials.Kalendrite,Materials.Kalendrite.getMass()*2); - */ - } - public GT_MetaTileEntity_Replicator(int aID, String aName, String aNameRegional, int aTier) { super( aID, @@ -125,61 +103,9 @@ public class GT_MetaTileEntity_Replicator extends GT_MetaTileEntity_BasicMachine return new GT_MetaTileEntity_Replicator(this.mName, this.mTier, this.mDescriptionArray, this.mTextures); } - public static long cubicFluidMultiplier(long amount) { - return (long) Math.pow(amount, EXPONENT); - } - - @Override - public int checkRecipe() { - FluidStack tFluid = getFillableStack(); - if ((tFluid != null) && (tFluid.isFluidEqual(Materials.UUMatter.getFluid(1L)))) { - ItemStack tDataOrb = getSpecialSlot(); - if ((ItemList.Tool_DataOrb.isStackEqual(tDataOrb, false, true)) && (Behaviour_DataOrb.getDataTitle(tDataOrb) - .equals("Elemental-Scan"))) { - Materials tMaterial = Element.get(Behaviour_DataOrb.getDataName(tDataOrb)).mLinkedMaterials.get(0); - long tMass = cubicFluidMultiplier(MASS_OVERRIDES.getOrDefault(tMaterial, tMaterial.getMass())); - if ((tFluid.amount >= tMass) && (tMass > 0L)) { - - this.mEUt = GT_Utility.safeInt(gregtech.api.enums.GT_Values.VP[this.mTier], 1); - this.mMaxProgresstime = GT_Utility.safeInt(tMass * 1024L / (1L << this.mTier), 1); - if (mMaxProgresstime == Integer.MAX_VALUE - 1 || mEUt == Integer.MAX_VALUE - 1) - return FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS; - - if ((this.mOutputItems[0] = GT_OreDictUnificator.get(OrePrefixes.dust, tMaterial, 1L)) == null) { - if ((this.mOutputItems[0] = GT_OreDictUnificator.get(OrePrefixes.cell, tMaterial, 1L)) - != null) { - if ((this.mOutputFluid = GT_Utility.getFluidForFilledItem(this.mOutputItems[0], true)) - == null) { - if (ItemList.Cell_Empty.isStackEqual(getInputAt(0))) { - if (canOutput(this.mOutputItems[0])) { - getInputAt(0).stackSize -= 1; - tFluid.amount = ((int) (tFluid.amount - tMass)); - return 2; - } - } - } else { - this.mOutputItems[0] = null; - if ((getDrainableStack() == null) - || ((getDrainableStack().isFluidEqual(this.mOutputFluid)) - && (getDrainableStack().amount < 16000))) { - tFluid.amount = ((int) (tFluid.amount - tMass)); - return 2; - } - } - } - } else if (canOutput(this.mOutputItems[0])) { - tFluid.amount = ((int) (tFluid.amount - tMass)); - return 2; - } - } - } - } - return 0; - } - @Override - public GT_Recipe.GT_Recipe_Map getRecipeList() { - return GT_Recipe.GT_Recipe_Map.sReplicatorFakeRecipes; + public RecipeMap<?> getRecipeMap() { + return RecipeMaps.replicatorRecipes; } @Override @@ -196,16 +122,6 @@ public class GT_MetaTileEntity_Replicator extends GT_MetaTileEntity_BasicMachine @Override public int getCapacity() { - if ((sHeaviestElementMass == 0) && (GregTech_API.sPostloadFinished)) { - sHeaviestElementMass = Materials.getMaterialsMap() - .values() - .stream() - .mapToInt(material -> (int) cubicFluidMultiplier((int) material.getMass())) - .max() - .orElseThrow(NoSuchElementException::new); - // Make the Number nicer =) - sHeaviestElementMass = 1000 * (sHeaviestElementMass / 1000 + 1); - } - return sHeaviestElementMass; + return 3000; } } diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_RockBreaker.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_RockBreaker.java index c6d554b2eb..e632f4eeda 100644 --- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_RockBreaker.java +++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_RockBreaker.java @@ -28,9 +28,10 @@ import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine; +import gregtech.api.recipe.RecipeMap; +import gregtech.api.recipe.RecipeMaps; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_OreDictUnificator; -import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; public class GT_MetaTileEntity_RockBreaker extends GT_MetaTileEntity_BasicMachine { @@ -105,15 +106,15 @@ public class GT_MetaTileEntity_RockBreaker extends GT_MetaTileEntity_BasicMachin } @Override - public GT_Recipe.GT_Recipe_Map getRecipeList() { - return GT_Recipe.GT_Recipe_Map.sRockBreakerFakeRecipes; + public RecipeMap<?> getRecipeMap() { + return RecipeMaps.rockBreakerFakeRecipes; } @Override protected boolean allowPutStackValidated(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, ItemStack aStack) { return super.allowPutStackValidated(aBaseMetaTileEntity, aIndex, side, aStack) - && getRecipeList().containsInput(aStack); + && getRecipeMap().containsInput(aStack); } @Override diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java index 3bbd9f67ab..ba00be67f8 100644 --- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java +++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java @@ -19,7 +19,7 @@ import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_TOP_SCANNER; import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_TOP_SCANNER_ACTIVE; import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_TOP_SCANNER_ACTIVE_GLOW; import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_TOP_SCANNER_GLOW; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes; +import static gregtech.api.recipe.RecipeMaps.scannerFakeRecipes; import java.util.Objects; @@ -42,6 +42,7 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine; import gregtech.api.objects.ItemData; +import gregtech.api.recipe.RecipeMap; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_AssemblyLineUtils; import gregtech.api.util.GT_Log; @@ -117,15 +118,6 @@ public class GT_MetaTileEntity_Scanner extends GT_MetaTileEntity_BasicMachine { super(aName, aTier, 1, aDescription, aTextures, 1, 1); } - /** - * @deprecated Use {@link #GT_MetaTileEntity_Scanner(String, int, String[], ITexture[][][])} - */ - @Deprecated - public GT_MetaTileEntity_Scanner(String aName, int aTier, String[] aDescription, ITexture[][][] aTextures, - String aGUIName, String aNEIName) { - super(aName, aTier, 1, aDescription, aTextures, 1, 1); - } - @Override public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { return new GT_MetaTileEntity_Scanner(this.mName, this.mTier, this.mDescriptionArray, this.mTextures); @@ -358,7 +350,7 @@ public class GT_MetaTileEntity_Scanner extends GT_MetaTileEntity_BasicMachine { for (GT_Recipe.GT_Recipe_AssemblyLine tRecipe : GT_Recipe.GT_Recipe_AssemblyLine.sAssemblylineRecipes) { if (GT_Utility.areStacksEqual(tRecipe.mResearchItem, aStack, true)) { boolean failScanner = true; - for (GT_Recipe scannerRecipe : sScannerFakeRecipes.mRecipeList) { + for (GT_Recipe scannerRecipe : scannerFakeRecipes.getAllRecipes()) { if (GT_Utility.areStacksEqual(scannerRecipe.mInputs[0], aStack, true)) { failScanner = false; break; @@ -402,8 +394,8 @@ public class GT_MetaTileEntity_Scanner extends GT_MetaTileEntity_BasicMachine { } @Override - public GT_Recipe.GT_Recipe_Map getRecipeList() { - return sScannerFakeRecipes; + public RecipeMap<?> getRecipeMap() { + return scannerFakeRecipes; } @Override @@ -415,7 +407,7 @@ public class GT_MetaTileEntity_Scanner extends GT_MetaTileEntity_BasicMachine { protected boolean allowPutStackValidated(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, ItemStack aStack) { return super.allowPutStackValidated(aBaseMetaTileEntity, aIndex, side, aStack) - && getRecipeList().containsInput(aStack); + && getRecipeMap().containsInput(aStack); } @Override diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AssemblyLine.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AssemblyLine.java index e9f80b6824..80812d2cb2 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AssemblyLine.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AssemblyLine.java @@ -49,12 +49,13 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_DataA import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_InputBus; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_MultiInput; import gregtech.api.multitileentity.multiblock.casing.Glasses; +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; import gregtech.api.util.GT_AssemblyLineUtils; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; -import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Recipe.GT_Recipe_AssemblyLine; import gregtech.api.util.GT_Utility; import gregtech.api.util.IGT_HatchAdder; @@ -182,8 +183,8 @@ public class GT_MetaTileEntity_AssemblyLine } @Override - public GT_Recipe.GT_Recipe_Map getRecipeMap() { - return null; + public RecipeMap<?> getRecipeMap() { + return RecipeMaps.assemblylineVisualRecipes; } @Override diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_BronzeBlastFurnace.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_BronzeBlastFurnace.java deleted file mode 100644 index 83e8cc1817..0000000000 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_BronzeBlastFurnace.java +++ /dev/null @@ -1,80 +0,0 @@ -package gregtech.common.tileentities.machines.multi; - -import static gregtech.api.enums.Textures.BlockIcons.MACHINE_BRONZEBLASTFURNACE; -import static gregtech.api.enums.Textures.BlockIcons.MACHINE_BRONZEBLASTFURNACE_ACTIVE; -import static gregtech.api.enums.Textures.BlockIcons.MACHINE_BRONZEBLASTFURNACE_ACTIVE_GLOW; -import static gregtech.api.enums.Textures.BlockIcons.MACHINE_BRONZEPLATEDBRICKS; - -import net.minecraft.block.Block; -import net.minecraft.item.ItemStack; -import net.minecraftforge.common.util.ForgeDirection; - -import gregtech.api.GregTech_API; -import gregtech.api.enums.SteamVariant; -import gregtech.api.interfaces.ITexture; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.render.TextureFactory; - -public class GT_MetaTileEntity_BronzeBlastFurnace extends GT_MetaTileEntity_PrimitiveBlastFurnace { - - private static final ITexture[] FACING_SIDE = { TextureFactory.of(MACHINE_BRONZEPLATEDBRICKS) }; - private static final ITexture[] FACING_FRONT = { TextureFactory.of(MACHINE_BRONZEBLASTFURNACE) }; - private static final ITexture[] FACING_ACTIVE = { TextureFactory.of(MACHINE_BRONZEBLASTFURNACE_ACTIVE), - TextureFactory.builder() - .addIcon(MACHINE_BRONZEBLASTFURNACE_ACTIVE_GLOW) - .glow() - .build() }; - - public GT_MetaTileEntity_BronzeBlastFurnace(int aID, String aName, String aNameRegional) { - super(aID, aName, aNameRegional); - } - - public GT_MetaTileEntity_BronzeBlastFurnace(String aName) { - super(aName); - } - - @Override - public String[] getDescription() { - return new String[] { "Disabled" }; - } - - @Override - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, ForgeDirection side, ForgeDirection aFacing, - int colorIndex, boolean aActive, boolean redstoneLevel) { - if (side == aFacing) { - return aActive ? FACING_ACTIVE : FACING_FRONT; - } - return FACING_SIDE; - } - - @Override - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new GT_MetaTileEntity_BronzeBlastFurnace(this.mName); - } - - @Override - protected Block getCasingBlock() { - return GregTech_API.sBlockCasings1; - } - - @Override - protected int getCasingMetaID() { - return 10; - } - - @Override - public String getName() { - return "Bronze Blast Furnace"; - } - - @Override - public SteamVariant getSteamVariant() { - return SteamVariant.BRONZE; - } - - @Override - public String[] getStructureDescription(ItemStack stackSize) { - return new String[0]; - } -} diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_Charcoal_Pit.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_Charcoal_Pit.java index 392b77eb74..25daa06bcf 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_Charcoal_Pit.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_Charcoal_Pit.java @@ -29,11 +29,11 @@ import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_TooltipMultiBlockBase; +import gregtech.api.recipe.RecipeMap; import gregtech.api.recipe.check.CheckRecipeResult; import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; -import gregtech.api.util.GT_Recipe; import gregtech.api.util.WorldSpawnedEventBuilder; import gregtech.common.GT_Pollution; @@ -240,7 +240,7 @@ public class GT_MetaTileEntity_Charcoal_Pit extends GT_MetaTileEntity_TooltipMul } @Override - public GT_Recipe.GT_Recipe_Map getRecipeMap() { + public RecipeMap<?> getRecipeMap() { return null; } diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DieselEngine.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DieselEngine.java index 94334d9ade..cc4c4f7a84 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DieselEngine.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DieselEngine.java @@ -40,10 +40,14 @@ import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_EnhancedMultiBlockBase; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Dynamo; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Muffler; +import gregtech.api.recipe.RecipeMap; +import gregtech.api.recipe.RecipeMaps; import gregtech.api.recipe.check.CheckRecipeResult; import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.recipe.check.SimpleCheckRecipeResult; +import gregtech.api.recipe.maps.FuelBackend; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; import gregtech.api.util.GT_Recipe; @@ -150,9 +154,14 @@ public class GT_MetaTileEntity_DieselEngine return getMaxEfficiency(aStack) > 0; } - // can't use getRecipeMap() or else the fluid hatch will reject oxygen - protected GT_Recipe.GT_Recipe_Map_Fuel getFuelMap() { - return GT_Recipe.GT_Recipe_Map.sDieselFuels; + @Override + public RecipeMap<FuelBackend> getRecipeMap() { + return RecipeMaps.dieselFuels; + } + + @Override + protected void setHatchRecipeMap(GT_MetaTileEntity_Hatch_Input hatch) { + // Prevent fluid hatch rejecting oxygen } /** @@ -199,7 +208,8 @@ public class GT_MetaTileEntity_DieselEngine double boostedOutput = 0; double extraFuelFraction = 0; for (FluidStack tFluid : tFluids) { - GT_Recipe tRecipe = getFuelMap().findFuel(tFluid); + GT_Recipe tRecipe = getRecipeMap().getBackend() + .findFuel(tFluid); if (tRecipe == null) continue; fuelValue = tRecipe.mSpecialValue; diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DistillationTower.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DistillationTower.java index 349614ea1e..6dd47f0bf7 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DistillationTower.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DistillationTower.java @@ -43,9 +43,10 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.logic.ProcessingLogic; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_EnhancedMultiBlockBase; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Output; +import gregtech.api.recipe.RecipeMap; +import gregtech.api.recipe.RecipeMaps; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; -import gregtech.api.util.GT_Recipe; public class GT_MetaTileEntity_DistillationTower extends GT_MetaTileEntity_EnhancedMultiBlockBase<GT_MetaTileEntity_DistillationTower> implements ISurvivalConstructable { @@ -181,8 +182,8 @@ public class GT_MetaTileEntity_DistillationTower extends } @Override - public GT_Recipe.GT_Recipe_Map getRecipeMap() { - return GT_Recipe.GT_Recipe_Map.sDistillationRecipes; + public RecipeMap<?> getRecipeMap() { + return RecipeMaps.distillationTowerRecipes; } @Override diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ElectricBlastFurnace.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ElectricBlastFurnace.java index e2bd0b089b..f1bdc3dc23 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ElectricBlastFurnace.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ElectricBlastFurnace.java @@ -51,6 +51,8 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Muffler; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Output; +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; @@ -175,8 +177,8 @@ public class GT_MetaTileEntity_ElectricBlastFurnace extends } @Override - public GT_Recipe.GT_Recipe_Map getRecipeMap() { - return GT_Recipe.GT_Recipe_Map.sBlastRecipes; + public RecipeMap<?> getRecipeMap() { + return RecipeMaps.blastFurnaceRecipes; } @Override diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ExtremeDieselEngine.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ExtremeDieselEngine.java index fcb301d7c6..dace58a492 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ExtremeDieselEngine.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ExtremeDieselEngine.java @@ -21,9 +21,11 @@ import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Dynamo; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Muffler; +import gregtech.api.recipe.RecipeMap; +import gregtech.api.recipe.RecipeMaps; +import gregtech.api.recipe.maps.FuelBackend; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; -import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; public class GT_MetaTileEntity_ExtremeDieselEngine extends GT_MetaTileEntity_DieselEngine { @@ -65,8 +67,8 @@ public class GT_MetaTileEntity_ExtremeDieselEngine extends GT_MetaTileEntity_Die } @Override - protected GT_Recipe.GT_Recipe_Map_Fuel getFuelMap() { - return GT_Recipe.GT_Recipe_Map.sExtremeDieselFuels; + public RecipeMap<FuelBackend> getRecipeMap() { + return RecipeMaps.extremeDieselFuels; } @Override diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java index 477419bbd0..5fcb033109 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java @@ -15,6 +15,8 @@ import static gregtech.api.util.GT_Utility.filterValidMTEs; import java.util.Set; +import javax.annotation.Nonnull; + import net.minecraft.block.Block; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -50,6 +52,7 @@ import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.modularui.IAddUIWidgets; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.interfaces.tileentity.IOverclockDescriptionProvider; import gregtech.api.logic.ProcessingLogic; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_EnhancedMultiBlockBase; @@ -57,6 +60,10 @@ 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.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; @@ -65,14 +72,12 @@ 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; -import gregtech.common.power.Power; public abstract class GT_MetaTileEntity_FusionComputer extends GT_MetaTileEntity_EnhancedMultiBlockBase<GT_MetaTileEntity_FusionComputer> - implements ISurvivalConstructable, IAddUIWidgets { + implements ISurvivalConstructable, IAddUIWidgets, IOverclockDescriptionProvider { - protected FusionPower power; + private final OverclockDescriber overclockDescriber; public static final String STRUCTURE_PIECE_MAIN = "main"; private static final ClassValue<IStructureDefinition<GT_MetaTileEntity_FusionComputer>> STRUCTURE_DEFINITION = new ClassValue<>() { @@ -147,17 +152,24 @@ public abstract class GT_MetaTileEntity_FusionComputer .build())); } - public GT_MetaTileEntity_FusionComputer(int aID, String aName, String aNameRegional, int tier) { + public GT_MetaTileEntity_FusionComputer(int aID, String aName, String aNameRegional) { super(aID, aName, aNameRegional); + this.overclockDescriber = createOverclockDescriber(); } public GT_MetaTileEntity_FusionComputer(String aName) { super(aName); + this.overclockDescriber = createOverclockDescriber(); + } + + protected OverclockDescriber createOverclockDescriber() { + return new FusionOverclockDescriber((byte) tier(), capableStartupCanonical()); } + @Nonnull @Override - public Power getPower() { - return power; + public OverclockDescriber getOverclockDescriber() { + return overclockDescriber; } public abstract int tier(); @@ -165,6 +177,12 @@ public abstract class GT_MetaTileEntity_FusionComputer @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(); + @Override public abstract MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity); @@ -277,23 +295,9 @@ public abstract class GT_MetaTileEntity_FusionComputer return true; } - public int overclock(int mStartEnergy) { - if (tierOverclock() == 1) { - return 0; - } - if (tierOverclock() == 2) { - return mStartEnergy <= 160000000 ? 1 : 0; - } - if (this.tierOverclock() == 4) { - return (mStartEnergy <= 160000000 ? 2 : (mStartEnergy <= 320000000 ? 1 : 0)); - } - return (mStartEnergy <= 160000000) ? 3 - : ((mStartEnergy <= 320000000) ? 2 : (mStartEnergy <= 640000000) ? 1 : 0); - } - @Override - public GT_Recipe.GT_Recipe_Map getRecipeMap() { - return GT_Recipe.GT_Recipe_Map.sFusionRecipes; + public RecipeMap<?> getRecipeMap() { + return RecipeMaps.fusionRecipes; } @Override @@ -310,7 +314,7 @@ public abstract class GT_MetaTileEntity_FusionComputer @NotNull @Override protected GT_OverclockCalculator createOverclockCalculator(@NotNull GT_Recipe recipe) { - return super.createOverclockCalculator(recipe).limitOverclockCount(overclock(recipe.mSpecialValue)); + return overclockDescriber.createCalculator(super.createOverclockCalculator(recipe), recipe); } @NotNull @@ -345,8 +349,6 @@ public abstract class GT_MetaTileEntity_FusionComputer logic.setAmperageOC(false); } - public abstract int tierOverclock(); - public boolean turnCasingActive(boolean status) { if (this.mEnergyHatches != null) { for (GT_MetaTileEntity_Hatch_Energy hatch : this.mEnergyHatches) { @@ -625,7 +627,9 @@ public abstract class GT_MetaTileEntity_FusionComputer .setDefaultColor(COLOR_TEXT_RED.get()) .setPos(50, 155)) .widget( - new ButtonWidget().setNEITransferRect(GT_Recipe.GT_Recipe_Map.sFusionRecipes.mNEIName) + new ButtonWidget().setNEITransferRect( + RecipeMaps.fusionRecipes.getFrontend() + .getUIProperties().neiTransferRectId) .setBackground(GT_UITextures.BUTTON_STANDARD, GT_UITextures.OVERLAY_BUTTON_NEI) .setPos(154, 4) .setSize(18, 18)); diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer1.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer1.java index cd44756d62..e3a2432bf9 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer1.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer1.java @@ -11,7 +11,6 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; -import gregtech.common.power.FusionPower; public class GT_MetaTileEntity_FusionComputer1 extends GT_MetaTileEntity_FusionComputer { @@ -27,13 +26,11 @@ public class GT_MetaTileEntity_FusionComputer1 extends GT_MetaTileEntity_FusionC .build()); public GT_MetaTileEntity_FusionComputer1(int aID, String aName, String aNameRegional) { - super(aID, aName, aNameRegional, 6); - power = new FusionPower((byte) 6, 160_000_000); + super(aID, aName, aNameRegional); } public GT_MetaTileEntity_FusionComputer1(String aName) { super(aName); - power = new FusionPower((byte) 6, 160_000_000); } @Override @@ -47,6 +44,11 @@ public class GT_MetaTileEntity_FusionComputer1 extends GT_MetaTileEntity_FusionC } @Override + public long capableStartupCanonical() { + return 160_000_000; + } + + @Override public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { return new GT_MetaTileEntity_FusionComputer1(mName); } @@ -98,9 +100,4 @@ public class GT_MetaTileEntity_FusionComputer1 extends GT_MetaTileEntity_FusionC public ITexture getTextureOverlay() { return textureOverlay; } - - @Override - public int tierOverclock() { - return 1; - } } diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer2.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer2.java index 7b77ddcf66..0b1f10158b 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer2.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer2.java @@ -11,7 +11,6 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; -import gregtech.common.power.FusionPower; public class GT_MetaTileEntity_FusionComputer2 extends GT_MetaTileEntity_FusionComputer { @@ -27,13 +26,11 @@ public class GT_MetaTileEntity_FusionComputer2 extends GT_MetaTileEntity_FusionC .build()); public GT_MetaTileEntity_FusionComputer2(int aID, String aName, String aNameRegional) { - super(aID, aName, aNameRegional, 7); - power = new FusionPower((byte) 7, 320_000_000); + super(aID, aName, aNameRegional); } public GT_MetaTileEntity_FusionComputer2(String aName) { super(aName); - power = new FusionPower((byte) 7, 320_000_000); } @Override @@ -47,6 +44,11 @@ public class GT_MetaTileEntity_FusionComputer2 extends GT_MetaTileEntity_FusionC } @Override + public long capableStartupCanonical() { + return 320_000_000; + } + + @Override public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { return new GT_MetaTileEntity_FusionComputer2(mName); } @@ -98,9 +100,4 @@ public class GT_MetaTileEntity_FusionComputer2 extends GT_MetaTileEntity_FusionC public ITexture getTextureOverlay() { return textureOverlay; } - - @Override - public int tierOverclock() { - return 2; - } } diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer3.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer3.java index 271e28713d..64d92ccc99 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer3.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer3.java @@ -11,7 +11,6 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; -import gregtech.common.power.FusionPower; public class GT_MetaTileEntity_FusionComputer3 extends GT_MetaTileEntity_FusionComputer { @@ -27,13 +26,11 @@ public class GT_MetaTileEntity_FusionComputer3 extends GT_MetaTileEntity_FusionC .build()); public GT_MetaTileEntity_FusionComputer3(int aID, String aName, String aNameRegional) { - super(aID, aName, aNameRegional, 8); - power = new FusionPower((byte) 8, 640_000_000); + super(aID, aName, aNameRegional); } public GT_MetaTileEntity_FusionComputer3(String aName) { super(aName); - power = new FusionPower((byte) 8, 640_000_000); } @Override @@ -47,6 +44,11 @@ public class GT_MetaTileEntity_FusionComputer3 extends GT_MetaTileEntity_FusionC } @Override + public long capableStartupCanonical() { + return 640_000_000; + } + + @Override public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { return new GT_MetaTileEntity_FusionComputer3(mName); } @@ -98,9 +100,4 @@ public class GT_MetaTileEntity_FusionComputer3 extends GT_MetaTileEntity_FusionC public ITexture getTextureOverlay() { return textureOverlay; } - - @Override - public int tierOverclock() { - return 4; - } } diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ImplosionCompressor.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ImplosionCompressor.java index 4fe75734c3..a1968b05d4 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ImplosionCompressor.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ImplosionCompressor.java @@ -22,9 +22,10 @@ import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.logic.ProcessingLogic; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_CubicMultiBlockBase; +import gregtech.api.recipe.RecipeMap; +import gregtech.api.recipe.RecipeMaps; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; -import gregtech.api.util.GT_Recipe; public class GT_MetaTileEntity_ImplosionCompressor extends GT_MetaTileEntity_CubicMultiBlockBase<GT_MetaTileEntity_ImplosionCompressor> { @@ -96,8 +97,8 @@ public class GT_MetaTileEntity_ImplosionCompressor } @Override - public GT_Recipe.GT_Recipe_Map getRecipeMap() { - return GT_Recipe.GT_Recipe_Map.sImplosionRecipes; + public RecipeMap<?> getRecipeMap() { + return RecipeMaps.implosionRecipes; } @Override diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_IntegratedOreFactory.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_IntegratedOreFactory.java index ea61c5b7de..9ea42c6a00 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_IntegratedOreFactory.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_IntegratedOreFactory.java @@ -56,6 +56,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_Muffler; import gregtech.api.multitileentity.multiblock.casing.Glasses; +import gregtech.api.recipe.RecipeMaps; import gregtech.api.recipe.check.CheckRecipeResult; import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.render.TextureFactory; @@ -417,7 +418,7 @@ public class GT_MetaTileEntity_IntegratedOreFactory extends for (ItemStack aStack : sMidProduct) { int tID = GT_Utility.stackToInt(aStack); if (checkTypes(tID, aTables)) { - GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sMaceratorRecipes + GT_Recipe tRecipe = RecipeMaps.maceratorRecipes .findRecipe(getBaseMetaTileEntity(), false, GT_Values.V[15], null, aStack); if (tRecipe != null) { tProduct.addAll(getOutputStack(tRecipe, aStack.stackSize)); @@ -439,7 +440,7 @@ public class GT_MetaTileEntity_IntegratedOreFactory extends for (ItemStack aStack : sMidProduct) { int tID = GT_Utility.stackToInt(aStack); if (checkTypes(tID, aTables)) { - GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sOreWasherRecipes.findRecipe( + GT_Recipe tRecipe = RecipeMaps.oreWasherRecipes.findRecipe( getBaseMetaTileEntity(), false, GT_Values.V[15], @@ -465,7 +466,7 @@ public class GT_MetaTileEntity_IntegratedOreFactory extends for (ItemStack aStack : sMidProduct) { int tID = GT_Utility.stackToInt(aStack); if (checkTypes(tID, aTables)) { - GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes + GT_Recipe tRecipe = RecipeMaps.thermalCentrifugeRecipes .findRecipe(getBaseMetaTileEntity(), false, GT_Values.V[15], null, aStack); if (tRecipe != null) { tProduct.addAll(getOutputStack(tRecipe, aStack.stackSize)); @@ -487,7 +488,7 @@ public class GT_MetaTileEntity_IntegratedOreFactory extends for (ItemStack aStack : sMidProduct) { int tID = GT_Utility.stackToInt(aStack); if (checkTypes(tID, aTables)) { - GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes + GT_Recipe tRecipe = RecipeMaps.centrifugeRecipes .findRecipe(getBaseMetaTileEntity(), false, GT_Values.V[15], null, aStack); if (tRecipe != null) { tProduct.addAll(getOutputStack(tRecipe, aStack.stackSize)); @@ -509,7 +510,7 @@ public class GT_MetaTileEntity_IntegratedOreFactory extends for (ItemStack aStack : sMidProduct) { int tID = GT_Utility.stackToInt(aStack); if (checkTypes(tID, aTables)) { - GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sSifterRecipes + GT_Recipe tRecipe = RecipeMaps.sifterRecipes .findRecipe(getBaseMetaTileEntity(), false, GT_Values.V[15], null, aStack); if (tRecipe != null) { tProduct.addAll(getOutputStack(tRecipe, aStack.stackSize)); @@ -531,7 +532,7 @@ public class GT_MetaTileEntity_IntegratedOreFactory extends for (ItemStack aStack : sMidProduct) { int tID = GT_Utility.stackToInt(aStack); if (checkTypes(tID, aTables)) { - GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sChemicalBathRecipes.findRecipe( + GT_Recipe tRecipe = RecipeMaps.chemicalBathRecipes.findRecipe( getBaseMetaTileEntity(), false, GT_Values.V[15], diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler.java index 60b6137fd8..ea10795744 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler.java @@ -42,8 +42,11 @@ import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_EnhancedMultiBlockBase; +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.maps.LargeBoilerFuelBackend; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_Log; import gregtech.api.util.GT_ModHandler; @@ -230,7 +233,7 @@ public abstract class GT_MetaTileEntity_LargeBoiler boolean isFuelValid() { if (!isSuperheated()) return true; for (ItemStack input : getStoredInputs()) { - if (!GT_Recipe.GT_Recipe_Map_LargeBoilerFakeFuels.isAllowedSolidFuel(input) + if (!LargeBoilerFuelBackend.isAllowedSolidFuel(input) && !Circuit_Integrated.isStackEqual(input, true, true)) { // if any item is not in ALLOWED_SOLID_FUELS, operation cannot be allowed because it might still be // consumed @@ -243,6 +246,12 @@ public abstract class GT_MetaTileEntity_LargeBoiler } @Override + public RecipeMap<?> getRecipeMap() { + // Only for visual + return RecipeMaps.largeBoilerFakeFuels; + } + + @Override @NotNull public CheckRecipeResult checkProcessing() { if (!isFuelValid()) return CheckRecipeResultRegistry.NO_FUEL_FOUND; @@ -260,7 +269,7 @@ public abstract class GT_MetaTileEntity_LargeBoiler this.mSuperEfficencyIncrease = 0; if (!isSuperheated()) { - for (GT_Recipe tRecipe : GT_Recipe.GT_Recipe_Map.sDieselFuels.mRecipeList) { + for (GT_Recipe tRecipe : RecipeMaps.dieselFuels.getAllRecipes()) { FluidStack tFluid = GT_Utility.getFluidForFilledItem(tRecipe.getRepresentativeInput(0), true); if (tFluid != null && tRecipe.mSpecialValue > 1) { tFluid.amount = 1000; @@ -272,7 +281,7 @@ public abstract class GT_MetaTileEntity_LargeBoiler } } } - for (GT_Recipe tRecipe : GT_Recipe.GT_Recipe_Map.sDenseLiquidFuels.mRecipeList) { + for (GT_Recipe tRecipe : RecipeMaps.denseLiquidFuels.getAllRecipes()) { FluidStack tFluid = GT_Utility.getFluidForFilledItem(tRecipe.getRepresentativeInput(0), true); if (tFluid != null) { tFluid.amount = 1000; diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeChemicalReactor.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeChemicalReactor.java index ded2621fec..8e4b5ec650 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeChemicalReactor.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeChemicalReactor.java @@ -46,9 +46,10 @@ import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.logic.ProcessingLogic; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_EnhancedMultiBlockBase; +import gregtech.api.recipe.RecipeMap; +import gregtech.api.recipe.RecipeMaps; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; -import gregtech.api.util.GT_Recipe; public class GT_MetaTileEntity_LargeChemicalReactor extends GT_MetaTileEntity_EnhancedMultiBlockBase<GT_MetaTileEntity_LargeChemicalReactor> implements ISurvivalConstructable { @@ -161,8 +162,8 @@ public class GT_MetaTileEntity_LargeChemicalReactor extends } @Override - public GT_Recipe.GT_Recipe_Map getRecipeMap() { - return GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes; + public RecipeMap<?> getRecipeMap() { + return RecipeMaps.multiblockChemicalReactorRecipes; } @Override diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Gas.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Gas.java index 1f5bdf31d2..572a609458 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Gas.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Gas.java @@ -18,10 +18,11 @@ import gregtech.api.GregTech_API; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.recipe.RecipeMap; +import gregtech.api.recipe.RecipeMaps; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import gregtech.api.util.GT_Utility; public class GT_MetaTileEntity_LargeTurbine_Gas extends GT_MetaTileEntity_LargeTurbine { @@ -74,7 +75,8 @@ public class GT_MetaTileEntity_LargeTurbine_Gas extends GT_MetaTileEntity_LargeT public int getFuelValue(FluidStack aLiquid) { if (aLiquid == null) return 0; - GT_Recipe tFuel = GT_Recipe_Map.sTurbineFuels.findFuel(aLiquid); + GT_Recipe tFuel = RecipeMaps.gasTurbineFuels.getBackend() + .findFuel(aLiquid); if (tFuel != null) return tFuel.mSpecialValue; return 0; } @@ -85,6 +87,16 @@ public class GT_MetaTileEntity_LargeTurbine_Gas extends GT_MetaTileEntity_LargeT } @Override + public RecipeMap<?> getRecipeMap() { + return RecipeMaps.gasTurbineFuels; + } + + @Override + public int getRecipeCatalystPriority() { + return -1; + } + + @Override public Block getCasingBlock() { return GregTech_API.sBlockCasings4; } diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_GasAdvanced.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_GasAdvanced.java index 09c6d344b6..b12c1ca93d 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_GasAdvanced.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_GasAdvanced.java @@ -18,10 +18,11 @@ import gregtech.api.GregTech_API; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.recipe.RecipeMap; +import gregtech.api.recipe.RecipeMaps; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import gregtech.api.util.GT_Utility; public class GT_MetaTileEntity_LargeTurbine_GasAdvanced extends GT_MetaTileEntity_LargeTurbine { @@ -74,7 +75,8 @@ public class GT_MetaTileEntity_LargeTurbine_GasAdvanced extends GT_MetaTileEntit public int getFuelValue(FluidStack aLiquid) { if (aLiquid == null) return 0; - GT_Recipe tFuel = GT_Recipe_Map.sTurbineFuels.findFuel(aLiquid); + GT_Recipe tFuel = RecipeMaps.gasTurbineFuels.getBackend() + .findFuel(aLiquid); if (tFuel != null) return tFuel.mSpecialValue; return 0; } @@ -85,6 +87,16 @@ public class GT_MetaTileEntity_LargeTurbine_GasAdvanced extends GT_MetaTileEntit } @Override + public RecipeMap<?> getRecipeMap() { + return RecipeMaps.gasTurbineFuels; + } + + @Override + public int getRecipeCatalystPriority() { + return -2; + } + + @Override public Block getCasingBlock() { return GregTech_API.sBlockCasings8; } diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java index 839e52ffc1..cbaf0e34ad 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java @@ -26,12 +26,12 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.items.GT_MetaGenerated_Tool; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Dynamo; 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.GT_Multiblock_Tooltip_Builder; import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import gregtech.api.util.GT_Utility; import gregtech.common.items.GT_MetaGenerated_Tool_01; @@ -82,7 +82,8 @@ public class GT_MetaTileEntity_LargeTurbine_Plasma extends GT_MetaTileEntity_Lar public int getFuelValue(FluidStack aLiquid) { if (aLiquid == null) return 0; - GT_Recipe tFuel = GT_Recipe_Map.sPlasmaFuels.findFuel(aLiquid); + GT_Recipe tFuel = RecipeMaps.plasmaFuels.getBackend() + .findFuel(aLiquid); if (tFuel != null) return tFuel.mSpecialValue; return 0; } diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_MultiFurnace.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_MultiFurnace.java index d210e6bd55..14b9fa9edf 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_MultiFurnace.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_MultiFurnace.java @@ -38,12 +38,13 @@ import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Muffler; +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; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; -import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_StructureUtility; import gregtech.api.util.GT_Utility; @@ -137,8 +138,8 @@ public class GT_MetaTileEntity_MultiFurnace } @Override - public GT_Recipe.GT_Recipe_Map getRecipeMap() { - return GT_Recipe.GT_Recipe_Map.sFurnaceRecipes; + public RecipeMap<?> getRecipeMap() { + return RecipeMaps.furnaceRecipes; } @Override diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_NanoForge.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_NanoForge.java index 8da9f2f0ce..c251147587 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_NanoForge.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_NanoForge.java @@ -43,6 +43,8 @@ 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.RecipeMaps; import gregtech.api.recipe.check.CheckRecipeResult; import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.render.TextureFactory; @@ -170,8 +172,8 @@ public class GT_MetaTileEntity_NanoForge extends } @Override - public GT_Recipe.GT_Recipe_Map getRecipeMap() { - return GT_Recipe.GT_Recipe_Map.sNanoForge; + public RecipeMap<?> getRecipeMap() { + return RecipeMaps.nanoForgeRecipes; } @Override diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilCracker.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilCracker.java index 1e4e83b114..9ddd888cf6 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilCracker.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilCracker.java @@ -37,10 +37,12 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_EnhancedMul import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_MultiInput; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Output; +import gregtech.api.recipe.RecipeMap; +import gregtech.api.recipe.RecipeMaps; import gregtech.api.recipe.check.CheckRecipeResult; +import gregtech.api.recipe.maps.OilCrackerBackend; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; -import gregtech.api.util.GT_Recipe; public class GT_MetaTileEntity_OilCracker extends GT_MetaTileEntity_EnhancedMultiBlockBase<GT_MetaTileEntity_OilCracker> implements ISurvivalConstructable { @@ -167,8 +169,8 @@ public class GT_MetaTileEntity_OilCracker extends GT_MetaTileEntity_EnhancedMult } @Override - public GT_Recipe.GT_Recipe_Map getRecipeMap() { - return GT_Recipe.GT_Recipe_Map.sCrackingRecipes; + public RecipeMap<OilCrackerBackend> getRecipeMap() { + return RecipeMaps.crackingRecipes; } @Override @@ -324,14 +326,15 @@ public class GT_MetaTileEntity_OilCracker extends GT_MetaTileEntity_EnhancedMult tHatch.mRecipeMap = getRecipeMap(); if (tHatch instanceof GT_MetaTileEntity_Hatch_MultiInput) { for (final FluidStack tFluid : ((GT_MetaTileEntity_Hatch_MultiInput) tHatch).getStoredFluid()) { - if (tFluid != null && !GT_Recipe.GT_Recipe_Map.sCrackingRecipes.isValidCatalystFluid(tFluid)) { + if (tFluid != null && !getRecipeMap().getBackend() + .isValidCatalystFluid(tFluid)) { rList.add(tFluid); } } } else { if (tHatch.getFillableStack() != null) { - if (!GT_Recipe.GT_Recipe_Map.sCrackingRecipes.isValidCatalystFluid(tHatch.getFillableStack())) - rList.add(tHatch.getFillableStack()); + if (!getRecipeMap().getBackend() + .isValidCatalystFluid(tHatch.getFillableStack())) rList.add(tHatch.getFillableStack()); } } } @@ -339,14 +342,16 @@ public class GT_MetaTileEntity_OilCracker extends GT_MetaTileEntity_EnhancedMult tHatch.mRecipeMap = getRecipeMap(); if (tHatch instanceof GT_MetaTileEntity_Hatch_MultiInput) { for (final FluidStack tFluid : ((GT_MetaTileEntity_Hatch_MultiInput) tHatch).getStoredFluid()) { - if (tFluid != null && GT_Recipe.GT_Recipe_Map.sCrackingRecipes.isValidCatalystFluid(tFluid)) { + if (tFluid != null && getRecipeMap().getBackend() + .isValidCatalystFluid(tFluid)) { rList.add(tFluid); } } } else { if (tHatch.getFillableStack() != null) { final FluidStack tStack = tHatch.getFillableStack(); - if (GT_Recipe.GT_Recipe_Map.sCrackingRecipes.isValidCatalystFluid(tStack)) { + if (getRecipeMap().getBackend() + .isValidCatalystFluid(tStack)) { rList.add(tStack); } } diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OreDrillingPlantBase.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OreDrillingPlantBase.java index 935c8c0032..68828e55c4 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OreDrillingPlantBase.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OreDrillingPlantBase.java @@ -50,6 +50,7 @@ import gregtech.api.interfaces.IHatchElement; import gregtech.api.interfaces.metatileentity.IMetricsExporter; import gregtech.api.objects.GT_ChunkManager; import gregtech.api.objects.ItemData; +import gregtech.api.recipe.RecipeMaps; import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; import gregtech.api.util.GT_OreDictUnificator; @@ -464,7 +465,7 @@ public abstract class GT_MetaTileEntity_OreDrillingPlantBase extends GT_MetaTile outputItems.add(multiplyStackSize(currentItem)); return; } - GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sMaceratorRecipes + GT_Recipe tRecipe = RecipeMaps.maceratorRecipes .findRecipe(getBaseMetaTileEntity(), false, voltage, null, currentItem); if (tRecipe == null) { outputItems.add(currentItem); diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PCBFactory.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PCBFactory.java index 60d0d5b5a3..535f1ee239 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PCBFactory.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PCBFactory.java @@ -75,9 +75,14 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Muffler; import gregtech.api.multitileentity.multiblock.casing.Glasses; import gregtech.api.objects.ItemData; +import gregtech.api.recipe.RecipeMap; +import gregtech.api.recipe.RecipeMaps; import gregtech.api.recipe.check.CheckRecipeResult; import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.recipe.check.SimpleCheckRecipeResult; +import gregtech.api.recipe.metadata.PCBFactoryTierKey; +import gregtech.api.recipe.metadata.PCBFactoryUpgrade; +import gregtech.api.recipe.metadata.PCBFactoryUpgradeKey; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; @@ -518,8 +523,8 @@ public class GT_MetaTileEntity_PCBFactory extends } @Override - public GT_Recipe.GT_Recipe_Map getRecipeMap() { - return GT_Recipe.GT_Recipe_Map.sPCBFactory; + public RecipeMap<?> getRecipeMap() { + return RecipeMaps.pcbFactoryRecipes; } @Override @@ -543,16 +548,11 @@ public class GT_MetaTileEntity_PCBFactory extends maxParallel = (int) Math.max(Math.ceil(Math.log(numberOfNanites) / Math.log(2) + 0.00001), 1); mMaxParallel = maxParallel; - int recipeBitMap = recipe.mSpecialValue; - - if (((recipeBitMap & mBioBitMap) == mBioBitMap && !mBioUpgrade)) + PCBFactoryUpgrade requiredUpgrade = recipe.getMetadata(PCBFactoryUpgradeKey.INSTANCE); + if (requiredUpgrade == PCBFactoryUpgrade.BIO && !mBioUpgrade) return SimpleCheckRecipeResult.ofFailure("bio_upgrade_missing"); - int requiredPCBTier = 0; - if ((recipeBitMap & mTier3BitMap) == mTier3BitMap) requiredPCBTier = 3; - if ((recipeBitMap & mTier2BitMap) == mTier2BitMap) requiredPCBTier = 2; - if ((recipeBitMap & mTier1BitMap) == mTier1BitMap) requiredPCBTier = 1; - + int requiredPCBTier = recipe.getMetadataOrDefault(PCBFactoryTierKey.INSTANCE, 1); if (requiredPCBTier > mTier) return CheckRecipeResultRegistry.insufficientMachineTier(requiredPCBTier); return CheckRecipeResultRegistry.SUCCESSFUL; diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PlasmaForge.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PlasmaForge.java index f6c54f6b70..eb57b55696 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PlasmaForge.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PlasmaForge.java @@ -51,6 +51,8 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_ExtendedPow import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy; import gregtech.api.objects.GT_ChunkManager; +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; @@ -652,8 +654,8 @@ public class GT_MetaTileEntity_PlasmaForge extends } @Override - public GT_Recipe.GT_Recipe_Map getRecipeMap() { - return GT_Recipe.GT_Recipe_Map.sPlasmaForgeRecipes; + public RecipeMap<?> getRecipeMap() { + return RecipeMaps.plasmaForgeRecipes; } @Override diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PrimitiveBlastFurnace.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PrimitiveBlastFurnace.java index 8a2adc6e26..670d2a3aba 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PrimitiveBlastFurnace.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PrimitiveBlastFurnace.java @@ -40,8 +40,11 @@ import gregtech.api.gui.modularui.GUITextureSet; import gregtech.api.interfaces.modularui.IAddUIWidgets; import gregtech.api.interfaces.modularui.IGetTitleColor; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.interfaces.tileentity.RecipeMapWorkable; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.objects.GT_ItemStack; +import gregtech.api.recipe.RecipeMap; +import gregtech.api.recipe.RecipeMaps; import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; import gregtech.api.util.WorldSpawnedEventBuilder; @@ -49,7 +52,7 @@ import gregtech.api.util.WorldSpawnedEventBuilder.ParticleEventBuilder; import gregtech.common.GT_Pollution; public abstract class GT_MetaTileEntity_PrimitiveBlastFurnace extends MetaTileEntity - implements IAlignment, ISurvivalConstructable, IAddUIWidgets, IGetTitleColor { + implements IAlignment, ISurvivalConstructable, RecipeMapWorkable, IAddUIWidgets, IGetTitleColor { public static final int INPUT_SLOTS = 3, OUTPUT_SLOTS = 3; private static final ClassValue<IStructureDefinition<GT_MetaTileEntity_PrimitiveBlastFurnace>> STRUCTURE_DEFINITION = new ClassValue<>() { @@ -335,8 +338,9 @@ public abstract class GT_MetaTileEntity_PrimitiveBlastFurnace extends MetaTileEn } } - protected GT_Recipe.GT_Recipe_Map getRecipeMap() { - return GT_Recipe.GT_Recipe_Map.sPrimitiveBlastRecipes; + @Override + public RecipeMap<?> getRecipeMap() { + return RecipeMaps.primitiveBlastRecipes; } private void addOutputProducts() { @@ -509,7 +513,9 @@ public abstract class GT_MetaTileEntity_PrimitiveBlastFurnace extends MetaTileEn .widget( new ProgressBar().setTexture(GT_UITextures.PROGRESSBAR_ARROW_2_STEAM.get(getSteamVariant()), 20) .setProgress(() -> (float) mProgresstime / mMaxProgresstime) - .setNEITransferRect(getRecipeMap().mNEIName) + .setNEITransferRect( + getRecipeMap().getFrontend() + .getUIProperties().neiTransferRectId) .setPos(58, 24) .setSize(20, 18)); } diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java index 46d682d6c0..81af2247c5 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java @@ -65,6 +65,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_InputBus; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_TieredMachineBlock; +import gregtech.api.recipe.RecipeMap; import gregtech.api.recipe.check.CheckRecipeResult; import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.recipe.check.SimpleCheckRecipeResult; @@ -73,7 +74,6 @@ import gregtech.api.util.GT_ExoticEnergyInputHelper; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; import gregtech.api.util.GT_ProcessingArray_Manager; import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import gregtech.api.util.GT_StructureUtility; import gregtech.api.util.GT_Utility; import gregtech.common.blocks.GT_Item_Machines; @@ -104,7 +104,7 @@ public class GT_MetaTileEntity_ProcessingArray extends private int mCasingAmount = 0; - private GT_Recipe_Map mLastRecipeMap; + private RecipeMap<?> mLastRecipeMap; private ItemStack lastControllerStack; private int tTier = 0; private int mMult = 0; @@ -181,7 +181,7 @@ public class GT_MetaTileEntity_ProcessingArray extends return new ITexture[] { Textures.BlockIcons.casingTexturePages[0][48] }; } - private GT_Recipe_Map fetchRecipeMap() { + private RecipeMap<?> fetchRecipeMap() { if (isCorrectMachinePart(getControllerSlot())) { // Gets the recipe map for the given machine through its unlocalized name return GT_ProcessingArray_Manager @@ -191,7 +191,7 @@ public class GT_MetaTileEntity_ProcessingArray extends } @Override - public GT_Recipe_Map getRecipeMap() { + public RecipeMap<?> getRecipeMap() { return mLastRecipeMap; } @@ -261,7 +261,7 @@ public class GT_MetaTileEntity_ProcessingArray extends @Override protected void setProcessingLogicPower(ProcessingLogic logic) { - logic.setAvailableVoltage(GT_Values.V[tTier] * (mLastRecipeMap != null ? mLastRecipeMap.mAmperage : 1)); + logic.setAvailableVoltage(GT_Values.V[tTier] * (mLastRecipeMap != null ? mLastRecipeMap.getAmperage() : 1)); logic.setAvailableAmperage(getMaxParallel()); logic.setAmperageOC(false); } diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PyrolyseOven.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PyrolyseOven.java index 2d601b9055..ff84a69b44 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PyrolyseOven.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PyrolyseOven.java @@ -40,10 +40,11 @@ import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.logic.ProcessingLogic; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_EnhancedMultiBlockBase; +import gregtech.api.recipe.RecipeMap; +import gregtech.api.recipe.RecipeMaps; import gregtech.api.recipe.check.CheckRecipeResult; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; -import gregtech.api.util.GT_Recipe; public class GT_MetaTileEntity_PyrolyseOven extends GT_MetaTileEntity_EnhancedMultiBlockBase<GT_MetaTileEntity_PyrolyseOven> implements ISurvivalConstructable { @@ -153,8 +154,8 @@ public class GT_MetaTileEntity_PyrolyseOven } @Override - public GT_Recipe.GT_Recipe_Map getRecipeMap() { - return GT_Recipe.GT_Recipe_Map.sPyrolyseRecipes; + public RecipeMap<?> getRecipeMap() { + return RecipeMaps.pyrolyseRecipes; } @Override diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_TranscendentPlasmaMixer.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_TranscendentPlasmaMixer.java index dedcc1ac6a..e4873f6d9d 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_TranscendentPlasmaMixer.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_TranscendentPlasmaMixer.java @@ -40,6 +40,8 @@ import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.logic.ProcessingLogic; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_EnhancedMultiBlockBase; +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; @@ -145,8 +147,8 @@ public class GT_MetaTileEntity_TranscendentPlasmaMixer long mWirelessEUt = 0; @Override - public GT_Recipe.GT_Recipe_Map getRecipeMap() { - return GT_Recipe.GT_Recipe_Map.sTranscendentPlasmaMixerRecipes; + public RecipeMap<?> getRecipeMap() { + return RecipeMaps.transcendentPlasmaMixerRecipes; } @Override diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_VacuumFreezer.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_VacuumFreezer.java index 4c11850bb3..c9cfe7949f 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_VacuumFreezer.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_VacuumFreezer.java @@ -18,9 +18,10 @@ import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.logic.ProcessingLogic; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_CubicMultiBlockBase; +import gregtech.api.recipe.RecipeMap; +import gregtech.api.recipe.RecipeMaps; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; -import gregtech.api.util.GT_Recipe; public class GT_MetaTileEntity_VacuumFreezer extends GT_MetaTileEntity_CubicMultiBlockBase<GT_MetaTileEntity_VacuumFreezer> { @@ -91,8 +92,8 @@ public class GT_MetaTileEntity_VacuumFreezer } @Override - public GT_Recipe.GT_Recipe_Map getRecipeMap() { - return GT_Recipe.GT_Recipe_Map.sVacuumRecipes; + public RecipeMap<?> getRecipeMap() { + return RecipeMaps.vacuumFreezerRecipes; } @Override diff --git a/src/main/java/gregtech/common/tileentities/machines/multiblock/AdvChemicalReactor.java b/src/main/java/gregtech/common/tileentities/machines/multiblock/AdvChemicalReactor.java index 38152869e4..38ed9b6603 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multiblock/AdvChemicalReactor.java +++ b/src/main/java/gregtech/common/tileentities/machines/multiblock/AdvChemicalReactor.java @@ -46,8 +46,9 @@ import gregtech.api.logic.ComplexParallelProcessingLogic; import gregtech.api.multitileentity.enums.GT_MultiTileCasing; import gregtech.api.multitileentity.multiblock.base.ComplexParallelController; import gregtech.api.multitileentity.multiblock.casing.Glasses; +import gregtech.api.recipe.RecipeMap; +import gregtech.api.recipe.RecipeMaps; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; -import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_StructureUtility; import gregtech.common.tileentities.casings.upgrade.Inventory; @@ -82,8 +83,8 @@ public class AdvChemicalReactor extends ComplexParallelController<AdvChemicalRea } @Override - public GT_Recipe.GT_Recipe_Map getRecipeMap() { - return GT_Recipe.GT_Recipe_Map_LargeChemicalReactor.sChemicalRecipes; + public RecipeMap<?> getRecipeMap() { + return RecipeMaps.chemicalReactorRecipes; } @Override diff --git a/src/main/java/gregtech/common/tileentities/machines/multiblock/Macerator.java b/src/main/java/gregtech/common/tileentities/machines/multiblock/Macerator.java index 5d837f1150..dda7eb9420 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multiblock/Macerator.java +++ b/src/main/java/gregtech/common/tileentities/machines/multiblock/Macerator.java @@ -23,9 +23,10 @@ import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.enums.SoundResource; import gregtech.api.enums.TierEU; import gregtech.api.multitileentity.multiblock.base.StackableController; +import gregtech.api.recipe.RecipeMap; +import gregtech.api.recipe.RecipeMaps; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Recipe.GT_Recipe_Map; public class Macerator extends StackableController<Macerator> { @@ -150,7 +151,7 @@ public class Macerator extends StackableController<Macerator> { } private boolean processRecipe(ItemStack[] aItemInputs, String aInventory) { - GT_Recipe_Map tRecipeMap = GT_Recipe_Map.sMaceratorRecipes; + RecipeMap<?> tRecipeMap = RecipeMaps.maceratorRecipes; GT_Recipe tRecipe = tRecipeMap.findRecipe(this, false, TierEU.IV, null, aItemInputs); if (tRecipe == null) { return false; diff --git a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_AlloySmelter_Bronze.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_AlloySmelter_Bronze.java index 4aae38530d..9b2c6b3ada 100644 --- a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_AlloySmelter_Bronze.java +++ b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_AlloySmelter_Bronze.java @@ -22,8 +22,9 @@ import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine_Bronze; +import gregtech.api.recipe.RecipeMap; +import gregtech.api.recipe.RecipeMaps; import gregtech.api.render.TextureFactory; -import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; public class GT_MetaTileEntity_AlloySmelter_Bronze extends GT_MetaTileEntity_BasicMachine_Bronze { @@ -47,8 +48,8 @@ public class GT_MetaTileEntity_AlloySmelter_Bronze extends GT_MetaTileEntity_Bas } @Override - public GT_Recipe.GT_Recipe_Map getRecipeList() { - return GT_Recipe.GT_Recipe_Map.sAlloySmelterRecipes; + public RecipeMap<?> getRecipeMap() { + return RecipeMaps.alloySmelterRecipes; } @Override diff --git a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_AlloySmelter_Steel.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_AlloySmelter_Steel.java index cc4f8d66b0..8b96906da1 100644 --- a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_AlloySmelter_Steel.java +++ b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_AlloySmelter_Steel.java @@ -22,8 +22,9 @@ import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine_Steel; +import gregtech.api.recipe.RecipeMap; +import gregtech.api.recipe.RecipeMaps; import gregtech.api.render.TextureFactory; -import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; public class GT_MetaTileEntity_AlloySmelter_Steel extends GT_MetaTileEntity_BasicMachine_Steel { @@ -47,8 +48,8 @@ public class GT_MetaTileEntity_AlloySmelter_Steel extends GT_MetaTileEntity_Basi } @Override - public GT_Recipe.GT_Recipe_Map getRecipeList() { - return GT_Recipe.GT_Recipe_Map.sAlloySmelterRecipes; + public RecipeMap<?> getRecipeMap() { + return RecipeMaps.alloySmelterRecipes; } @Override diff --git a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Compressor_Bronze.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Compressor_Bronze.java index cc5fad4db5..ef91ed5baf 100644 --- a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Compressor_Bronze.java +++ b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Compressor_Bronze.java @@ -22,8 +22,9 @@ import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine_Bronze; +import gregtech.api.recipe.RecipeMap; +import gregtech.api.recipe.RecipeMaps; import gregtech.api.render.TextureFactory; -import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; public class GT_MetaTileEntity_Compressor_Bronze extends GT_MetaTileEntity_BasicMachine_Bronze { @@ -42,8 +43,8 @@ public class GT_MetaTileEntity_Compressor_Bronze extends GT_MetaTileEntity_Basic } @Override - public GT_Recipe.GT_Recipe_Map getRecipeList() { - return GT_Recipe.GT_Recipe_Map.sCompressorRecipes; + public RecipeMap<?> getRecipeMap() { + return RecipeMaps.compressorRecipes; } @Override diff --git a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Compressor_Steel.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Compressor_Steel.java index e1485d1a07..c213cf04f5 100644 --- a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Compressor_Steel.java +++ b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Compressor_Steel.java @@ -22,8 +22,9 @@ import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine_Steel; +import gregtech.api.recipe.RecipeMap; +import gregtech.api.recipe.RecipeMaps; import gregtech.api.render.TextureFactory; -import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; public class GT_MetaTileEntity_Compressor_Steel extends GT_MetaTileEntity_BasicMachine_Steel { @@ -42,8 +43,8 @@ public class GT_MetaTileEntity_Compressor_Steel extends GT_MetaTileEntity_BasicM } @Override - public GT_Recipe.GT_Recipe_Map getRecipeList() { - return GT_Recipe.GT_Recipe_Map.sCompressorRecipes; + public RecipeMap<?> getRecipeMap() { + return RecipeMaps.compressorRecipes; } @Override diff --git a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Extractor_Bronze.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Extractor_Bronze.java index fd40b61201..6e986992f3 100644 --- a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Extractor_Bronze.java +++ b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Extractor_Bronze.java @@ -22,8 +22,9 @@ import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine_Bronze; +import gregtech.api.recipe.RecipeMap; +import gregtech.api.recipe.RecipeMaps; import gregtech.api.render.TextureFactory; -import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; public class GT_MetaTileEntity_Extractor_Bronze extends GT_MetaTileEntity_BasicMachine_Bronze { @@ -42,8 +43,8 @@ public class GT_MetaTileEntity_Extractor_Bronze extends GT_MetaTileEntity_BasicM } @Override - public GT_Recipe.GT_Recipe_Map getRecipeList() { - return GT_Recipe.GT_Recipe_Map.sExtractorRecipes; + public RecipeMap<?> getRecipeMap() { + return RecipeMaps.extractorRecipes; } @Override diff --git a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Extractor_Steel.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Extractor_Steel.java index e40086515c..6a3d024e25 100644 --- a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Extractor_Steel.java +++ b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Extractor_Steel.java @@ -22,8 +22,9 @@ import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine_Steel; +import gregtech.api.recipe.RecipeMap; +import gregtech.api.recipe.RecipeMaps; import gregtech.api.render.TextureFactory; -import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; public class GT_MetaTileEntity_Extractor_Steel extends GT_MetaTileEntity_BasicMachine_Steel { @@ -42,8 +43,8 @@ public class GT_MetaTileEntity_Extractor_Steel extends GT_MetaTileEntity_BasicMa } @Override - public GT_Recipe.GT_Recipe_Map getRecipeList() { - return GT_Recipe.GT_Recipe_Map.sExtractorRecipes; + public RecipeMap<?> getRecipeMap() { + return RecipeMaps.extractorRecipes; } @Override diff --git a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Bronze.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Bronze.java index e4eeb0533f..b7d25ac172 100644 --- a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Bronze.java +++ b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Bronze.java @@ -29,8 +29,9 @@ import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine_Bronze; +import gregtech.api.recipe.RecipeMap; +import gregtech.api.recipe.RecipeMaps; import gregtech.api.render.TextureFactory; -import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; import gregtech.api.util.WorldSpawnedEventBuilder.ParticleEventBuilder; @@ -50,8 +51,8 @@ public class GT_MetaTileEntity_ForgeHammer_Bronze extends GT_MetaTileEntity_Basi } @Override - public GT_Recipe.GT_Recipe_Map getRecipeList() { - return GT_Recipe.GT_Recipe_Map.sHammerRecipes; + public RecipeMap<?> getRecipeMap() { + return RecipeMaps.hammerRecipes; } @Override diff --git a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Steel.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Steel.java index 704d5e26a7..25785f3fa3 100644 --- a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Steel.java +++ b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Steel.java @@ -29,8 +29,9 @@ import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine_Steel; +import gregtech.api.recipe.RecipeMap; +import gregtech.api.recipe.RecipeMaps; import gregtech.api.render.TextureFactory; -import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; import gregtech.api.util.WorldSpawnedEventBuilder.ParticleEventBuilder; @@ -50,8 +51,8 @@ public class GT_MetaTileEntity_ForgeHammer_Steel extends GT_MetaTileEntity_Basic } @Override - public GT_Recipe.GT_Recipe_Map getRecipeList() { - return GT_Recipe.GT_Recipe_Map.sHammerRecipes; + public RecipeMap<?> getRecipeMap() { + return RecipeMaps.hammerRecipes; } @Override diff --git a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Furnace_Bronze.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Furnace_Bronze.java index d950663edc..51a91874a0 100644 --- a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Furnace_Bronze.java +++ b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Furnace_Bronze.java @@ -24,9 +24,10 @@ import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine_Bronze; +import gregtech.api.recipe.RecipeMap; +import gregtech.api.recipe.RecipeMaps; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_ModHandler; -import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; public class GT_MetaTileEntity_Furnace_Bronze extends GT_MetaTileEntity_BasicMachine_Bronze { @@ -50,8 +51,8 @@ public class GT_MetaTileEntity_Furnace_Bronze extends GT_MetaTileEntity_BasicMac } @Override - public GT_Recipe.GT_Recipe_Map getRecipeList() { - return GT_Recipe.GT_Recipe_Map.sFurnaceRecipes; + public RecipeMap<?> getRecipeMap() { + return RecipeMaps.furnaceRecipes; } @Override diff --git a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Furnace_Steel.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Furnace_Steel.java index 9249590cdc..a151c724f3 100644 --- a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Furnace_Steel.java +++ b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Furnace_Steel.java @@ -24,9 +24,10 @@ import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine_Steel; +import gregtech.api.recipe.RecipeMap; +import gregtech.api.recipe.RecipeMaps; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_ModHandler; -import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; public class GT_MetaTileEntity_Furnace_Steel extends GT_MetaTileEntity_BasicMachine_Steel { @@ -50,8 +51,8 @@ public class GT_MetaTileEntity_Furnace_Steel extends GT_MetaTileEntity_BasicMach } @Override - public GT_Recipe.GT_Recipe_Map getRecipeList() { - return GT_Recipe.GT_Recipe_Map.sFurnaceRecipes; + public RecipeMap<?> getRecipeMap() { + return RecipeMaps.furnaceRecipes; } @Override diff --git a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Macerator_Bronze.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Macerator_Bronze.java index af025293c7..cdbf9f2123 100644 --- a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Macerator_Bronze.java +++ b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Macerator_Bronze.java @@ -29,9 +29,10 @@ import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine_Bronze; +import gregtech.api.recipe.RecipeMap; +import gregtech.api.recipe.RecipeMaps; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import gregtech.api.util.GT_Utility; import gregtech.api.util.WorldSpawnedEventBuilder.ParticleEventBuilder; @@ -72,13 +73,13 @@ public class GT_MetaTileEntity_Macerator_Bronze extends GT_MetaTileEntity_BasicM } @Override - public GT_Recipe.GT_Recipe_Map getRecipeList() { - return GT_Recipe.GT_Recipe_Map.sMaceratorRecipes; + public RecipeMap<?> getRecipeMap() { + return RecipeMaps.maceratorRecipes; } @Override public int checkRecipe() { - GT_Recipe tRecipe = getRecipeList() + GT_Recipe tRecipe = getRecipeMap() .findRecipe(getBaseMetaTileEntity(), mLastRecipe, false, TierEU.LV, null, null, getAllInputs()); if (tRecipe == null) return DID_NOT_FIND_RECIPE; if (tRecipe.mCanBeBuffered) mLastRecipe = tRecipe; @@ -90,7 +91,7 @@ public class GT_MetaTileEntity_Macerator_Bronze extends GT_MetaTileEntity_BasicM if (!tRecipe.isRecipeInputEqual(true, new FluidStack[] { getFillableStack() }, getAllInputs())) return FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS; if (tRecipe.getOutput(0) != null) mOutputItems[0] = tRecipe.getOutput(0); - calculateOverclockedNess(tRecipe); + calculateCustomOverclock(tRecipe); return FOUND_AND_SUCCESSFULLY_USED_RECIPE; } @@ -98,7 +99,7 @@ public class GT_MetaTileEntity_Macerator_Bronze extends GT_MetaTileEntity_BasicM protected boolean allowPutStackValidated(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, ItemStack aStack) { return super.allowPutStackValidated(aBaseMetaTileEntity, aIndex, side, aStack) - && GT_Recipe_Map.sMaceratorRecipes.containsInput(GT_Utility.copyAmount(64, aStack)); + && RecipeMaps.maceratorRecipes.containsInput(GT_Utility.copyAmount(64, aStack)); } @Override diff --git a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Macerator_Steel.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Macerator_Steel.java index 6901fcce98..95d510ffa3 100644 --- a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Macerator_Steel.java +++ b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Macerator_Steel.java @@ -29,9 +29,10 @@ import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine_Steel; +import gregtech.api.recipe.RecipeMap; +import gregtech.api.recipe.RecipeMaps; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import gregtech.api.util.GT_Utility; import gregtech.api.util.WorldSpawnedEventBuilder; @@ -71,13 +72,13 @@ public class GT_MetaTileEntity_Macerator_Steel extends GT_MetaTileEntity_BasicMa } @Override - public GT_Recipe.GT_Recipe_Map getRecipeList() { - return GT_Recipe.GT_Recipe_Map.sMaceratorRecipes; + public RecipeMap<?> getRecipeMap() { + return RecipeMaps.maceratorRecipes; } @Override public int checkRecipe() { - GT_Recipe tRecipe = getRecipeList() + GT_Recipe tRecipe = getRecipeMap() .findRecipe(getBaseMetaTileEntity(), mLastRecipe, false, TierEU.LV, null, null, getAllInputs()); if (tRecipe == null) return DID_NOT_FIND_RECIPE; if (tRecipe.mCanBeBuffered) mLastRecipe = tRecipe; @@ -89,7 +90,7 @@ public class GT_MetaTileEntity_Macerator_Steel extends GT_MetaTileEntity_BasicMa if (!tRecipe.isRecipeInputEqual(true, new FluidStack[] { getFillableStack() }, getAllInputs())) return FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS; if (tRecipe.getOutput(0) != null) mOutputItems[0] = tRecipe.getOutput(0); - calculateOverclockedNess(tRecipe); + calculateCustomOverclock(tRecipe); return FOUND_AND_SUCCESSFULLY_USED_RECIPE; } @@ -97,7 +98,7 @@ public class GT_MetaTileEntity_Macerator_Steel extends GT_MetaTileEntity_BasicMa public boolean allowPutStackValidated(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, ItemStack aStack) { return super.allowPutStackValidated(aBaseMetaTileEntity, aIndex, side, aStack) - && GT_Recipe_Map.sMaceratorRecipes.containsInput(GT_Utility.copyAmount(64, aStack)); + && RecipeMaps.maceratorRecipes.containsInput(GT_Utility.copyAmount(64, aStack)); } @Override |
