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 | |
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')
305 files changed, 12587 insertions, 12877 deletions
diff --git a/src/main/java/gregtech/GT_Mod.java b/src/main/java/gregtech/GT_Mod.java index b1146a10bb..59ee674e75 100644 --- a/src/main/java/gregtech/GT_Mod.java +++ b/src/main/java/gregtech/GT_Mod.java @@ -31,6 +31,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import com.google.common.base.Stopwatch; +import com.google.common.collect.SetMultimap; import appeng.api.AEApi; import cpw.mods.fml.common.FMLCommonHandler; @@ -63,6 +64,7 @@ import gregtech.api.metatileentity.BaseMetaPipeEntity; import gregtech.api.objects.GT_ItemStack; import gregtech.api.objects.ItemData; import gregtech.api.objects.XSTR; +import gregtech.api.recipe.RecipeMaps; import gregtech.api.threads.GT_Runnable_MachineBlockUpdate; import gregtech.api.util.GT_Assemblyline_Server; import gregtech.api.util.GT_Forestry_Compat; @@ -100,7 +102,6 @@ import gregtech.loaders.postload.GT_BlockResistanceLoader; import gregtech.loaders.postload.GT_BookAndLootLoader; import gregtech.loaders.postload.GT_CraftingRecipeLoader; import gregtech.loaders.postload.GT_CropLoader; -import gregtech.loaders.postload.GT_ExtremeDieselFuelLoader; import gregtech.loaders.postload.GT_FakeRecipeLoader; import gregtech.loaders.postload.GT_ItemMaxStacksizeLoader; import gregtech.loaders.postload.GT_MachineRecipeLoader; @@ -118,7 +119,6 @@ import gregtech.loaders.preload.GT_Loader_MultiTileEntities; import gregtech.loaders.preload.GT_Loader_OreDictionary; import gregtech.loaders.preload.GT_Loader_OreProcessing; import gregtech.loaders.preload.GT_PreLoad; -import gregtech.nei.IMCForNEI; import ic2.api.recipe.IRecipeInput; import ic2.api.recipe.RecipeOutput; @@ -362,7 +362,6 @@ public class GT_Mod implements IGT_Mod { if (Mods.HoloInventory.isModLoaded()) { HoloInventory.init(); } - IMCForNEI.IMCSender(); GregTech_API.sLoadFinished = true; GT_Log.out.println("GT_Mod: Load-Phase finished!"); GT_Log.ore.println("GT_Mod: Load-Phase finished!"); @@ -522,7 +521,6 @@ public class GT_Mod implements IGT_Mod { .forEach(GT_ModHandler::removeRecipeByOutputDelayed); GT_PostLoad.nerfVanillaTools(); - new GT_ExtremeDieselFuelLoader().run(); /* * Until this point most crafting recipe additions, and removals, have been buffered. Go through, execute the @@ -579,6 +577,7 @@ public class GT_Mod implements IGT_Mod { @Mod.EventHandler public void onLoadComplete(FMLLoadCompleteEvent aEvent) { + gregtechproxy.onLoadComplete(); for (Runnable tRunnable : GregTech_API.sGTCompleteLoad) { try { tRunnable.run(); @@ -612,33 +611,17 @@ public class GT_Mod implements IGT_Mod { gregtechproxy.onServerStarting(); // Check for more IC2 recipes on ServerStart to also catch MineTweaker additions - GT_ModHandler.addIC2RecipesToGT( - GT_ModHandler.getMaceratorRecipeList(), - GT_Recipe.GT_Recipe_Map.sMaceratorRecipes, - true, - true, - true); - GT_ModHandler.addIC2RecipesToGT( - GT_ModHandler.getCompressorRecipeList(), - GT_Recipe.GT_Recipe_Map.sCompressorRecipes, - true, - true, - true); - GT_ModHandler.addIC2RecipesToGT( - GT_ModHandler.getExtractorRecipeList(), - GT_Recipe.GT_Recipe_Map.sExtractorRecipes, - true, - true, - true); - GT_ModHandler.addIC2RecipesToGT( - GT_ModHandler.getOreWashingRecipeList(), - GT_Recipe.GT_Recipe_Map.sOreWasherRecipes, - false, - true, - true); + GT_ModHandler + .addIC2RecipesToGT(GT_ModHandler.getMaceratorRecipeList(), RecipeMaps.maceratorRecipes, true, true, true); + GT_ModHandler + .addIC2RecipesToGT(GT_ModHandler.getCompressorRecipeList(), RecipeMaps.compressorRecipes, true, true, true); + GT_ModHandler + .addIC2RecipesToGT(GT_ModHandler.getExtractorRecipeList(), RecipeMaps.extractorRecipes, true, true, true); + GT_ModHandler + .addIC2RecipesToGT(GT_ModHandler.getOreWashingRecipeList(), RecipeMaps.oreWasherRecipes, false, true, true); GT_ModHandler.addIC2RecipesToGT( GT_ModHandler.getThermalCentrifugeRecipeList(), - GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes, + RecipeMaps.thermalCentrifugeRecipes, true, true, true); @@ -814,6 +797,9 @@ public class GT_Mod implements IGT_Mod { for (Map<? extends GT_ItemStack, ?> gt_itemStackMap : GregTech_API.sItemStackMappings) { GT_Utility.reMap(gt_itemStackMap); } + for (SetMultimap<? extends GT_ItemStack, ?> gt_itemStackMap : GregTech_API.itemStackMultiMaps) { + GT_Utility.reMap(gt_itemStackMap); + } } catch (Throwable e) { e.printStackTrace(GT_Log.err); } diff --git a/src/main/java/gregtech/api/GregTech_API.java b/src/main/java/gregtech/api/GregTech_API.java index 6848c66a38..c5e27aebca 100644 --- a/src/main/java/gregtech/api/GregTech_API.java +++ b/src/main/java/gregtech/api/GregTech_API.java @@ -36,6 +36,7 @@ import net.minecraft.world.World; import com.google.common.collect.Multimap; import com.google.common.collect.Multimaps; +import com.google.common.collect.SetMultimap; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; @@ -107,6 +108,7 @@ public class GregTech_API { * Fixes the HashMap Mappings for ItemStacks once the Server started */ public static final Collection<Map<? extends GT_ItemStack, ?>> sItemStackMappings = new ArrayList<>(); + public static final Collection<SetMultimap<? extends GT_ItemStack, ?>> itemStackMultiMaps = new ArrayList<>(); /** * The MetaTileEntity-ID-List-Length @@ -121,17 +123,36 @@ public class GregTech_API { /** * A List of all registered MetaTileEntities * <p/> - * 0 - 749 are used by GregTech. 750 - 999 are reserved for Alkalus. 1000 - 2047 are used by GregTech. 2048 - 2559 - * are reserved for OvermindDL. 2560 - 3071 are reserved for Immibis. 3072 - 3583 are reserved for LinusPhoenix. - * 3584 - 4095 are reserved for BloodyAsp. 4096 - 5095 are used for GregTech Frames. 5096 - 6099 are used for - * GregTech Pipes. 6100 - 8191 are used for GregTech Decoration Blocks. 8192 - 8703 are reserved for ZL123. 8704 - - * 9215 are reserved for Mr10Movie. 9216 - 9727 are used for GregTech Automation Machines. 9728 - 10239 are reserved - * for 28Smiles. 10240 - 10751 are reserved for VirMan. 10752 - 11263 are reserved for Briareos81. 11264 - 12000 are - * reserved for Quantum64. 12001 - 12500 are reserved for RedMage17. 12501 - 13000 are reserved for bartimaeusnek. - * 13001 - 13100 are reserved for Techlone 13101 - 13500 are reserved for kekzdealer 13501 - 14000 are reserved for - * glee8e. 14001 - 14100 are reserved for glowredman 14101 - 14200 are reserved for MuXiu1997. 14201 - 14300 are - * reserved for kuba6000. 14301 - 14999 are currently free. 15000 - 16999 are reserved for TecTech. 17000 - 29999 - * are currently free. 30000 - 31999 are reserved for Alkalus. 32001 - 32766 are reserved for Glod. + * 0 - 749 are used by GregTech. + * 750 - 999 are reserved for Alkalus. + * 1000 - 2047 are used by GregTech. + * 2048 - 2559 are reserved for OvermindDL. + * 2560 - 3071 are reserved for Immibis. + * 3072 - 3583 are reserved for LinusPhoenix. + * 3584 - 4095 are reserved for BloodyAsp. + * 4096 - 5095 are used for GregTech Frames. + * 5096 - 6099 are used for GregTech Pipes. + * 6100 - 8191 are used for GregTech Decoration Blocks. + * 8192 - 8703 are reserved for ZL123. + * 8704 - 9215 are reserved for Mr10Movie. + * 9216 - 9727 are used for GregTech Automation Machines. + * 9728 - 10239 are reserved for 28Smiles. + * 10240 - 10751 are reserved for VirMan. + * 10752 - 11263 are reserved for Briareos81. + * 11264 - 12000 are reserved for Quantum64. + * 12001 - 12500 are reserved for RedMage17. + * 12501 - 13000 are reserved for bartimaeusnek. + * 13001 - 13100 are reserved for Techlone. + * 13101 - 13500 are reserved for kekzdealer. + * 13501 - 14000 are reserved for glee8e. + * 14001 - 14100 are reserved for glowredman. + * 14101 - 14200 are reserved for MuXiu1997. + * 14201 - 14300 are reserved for kuba6000. + * 14301 - 14999 are currently free. + * 15000 - 16999 are reserved for TecTech. + * 17000 - 29999 are currently free. + * 30000 - 31999 are reserved for Alkalus. + * 32001 - 32766 are reserved for Glod. * <p/> * Contact me if you need a free ID-Range, which doesn't conflict with other Addons. You could make an ID-Config, * but we all know what "stupid" customers think about conflicting ID's diff --git a/src/main/java/gregtech/api/enums/Element.java b/src/main/java/gregtech/api/enums/Element.java index a0f8e6c0b1..0931663b0b 100644 --- a/src/main/java/gregtech/api/enums/Element.java +++ b/src/main/java/gregtech/api/enums/Element.java @@ -4,6 +4,8 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.Map; +import javax.annotation.Nonnull; + /** * This is some kind of Periodic Table, which I use to determine Properties of the Materials. */ @@ -308,6 +310,7 @@ public enum Element { Companion.VALUES.put(name(), this); } + @Nonnull public static Element get(String aMaterialName) { return Companion.VALUES.getOrDefault(aMaterialName, _NULL); } diff --git a/src/main/java/gregtech/api/enums/ItemList.java b/src/main/java/gregtech/api/enums/ItemList.java index ed2cad0ce1..5ecf39a722 100644 --- a/src/main/java/gregtech/api/enums/ItemList.java +++ b/src/main/java/gregtech/api/enums/ItemList.java @@ -807,7 +807,6 @@ public enum ItemList implements IItemContainer { Machine_Bronze_Hammer, Machine_Bronze_Compressor, Machine_Bronze_AlloySmelter, - Machine_Bronze_BlastFurnace, Machine_Bricked_BlastFurnace, Machine_Steel_Boiler_Lava, Machine_Steel_Boiler, diff --git a/src/main/java/gregtech/api/enums/MachineType.java b/src/main/java/gregtech/api/enums/MachineType.java index 7868d80f8f..14e1781350 100644 --- a/src/main/java/gregtech/api/enums/MachineType.java +++ b/src/main/java/gregtech/api/enums/MachineType.java @@ -10,7 +10,7 @@ public enum MachineType { ASSEMBLER(FunnyTexts.ASSEMBLER, "gt.recipe.assembler"), AUTOCLAVE(FunnyTexts.AUTOCLAVE, "gt.recipe.autoclave"), BENDING_MACHINE(FunnyTexts.BENDING_MACHINE, "gt.recipe.metalbender"), - BREWERY(FunnyTexts.BREWERY, "gt.recipe.brewery"), + BREWERY(FunnyTexts.BREWERY, "gt.recipe.brewer"), CANNER(FunnyTexts.CANNER, "gt.recipe.canner"), CENTRIFUGE(FunnyTexts.CENTRIFUGE, "gt.recipe.centrifuge"), CHEMICAL_BATH(FunnyTexts.CHEMICAL_BATH, "gt.recipe.chemicalbath"), @@ -62,7 +62,7 @@ public enum MachineType { static final String ASSEMBLER = "gt.recipe.assembler.description"; static final String AUTOCLAVE = "gt.recipe.autoclave.description"; static final String BENDING_MACHINE = "gt.recipe.metalbender.description"; - static final String BREWERY = "gt.recipe.brewery.description"; + static final String BREWERY = "gt.recipe.brewer.description"; static final String CANNER = "gt.recipe.canner.description"; static final String CENTRIFUGE = "gt.recipe.centrifuge.description"; static final String CHEMICAL_BATH = "gt.recipe.chemicalbath.description"; diff --git a/src/main/java/gregtech/api/enums/MetaTileEntityIDs.java b/src/main/java/gregtech/api/enums/MetaTileEntityIDs.java index ace5f620d4..3994a02085 100644 --- a/src/main/java/gregtech/api/enums/MetaTileEntityIDs.java +++ b/src/main/java/gregtech/api/enums/MetaTileEntityIDs.java @@ -108,7 +108,6 @@ public enum MetaTileEntityIDs { SIMPLE_SOLAR_BOILER(105), STEAM_MACERATOR(106), HP_STEAM_MACERATOR(107), - BRONZE_BLAST_FURNACE_CONTROLLER(108), STEAM_EXTRACTOR(109), HP_STEAM_EXTRACTOR(110), AUTO_MAINTENANCE_HATCH(111), diff --git a/src/main/java/gregtech/api/gui/modularui/GT_UITextures.java b/src/main/java/gregtech/api/gui/modularui/GT_UITextures.java index 1a47e41e8c..1dd7c9f6d2 100644 --- a/src/main/java/gregtech/api/gui/modularui/GT_UITextures.java +++ b/src/main/java/gregtech/api/gui/modularui/GT_UITextures.java @@ -7,6 +7,7 @@ import java.util.stream.Collectors; import java.util.stream.IntStream; import com.gtnewhorizons.modularui.api.drawable.AdaptableUITexture; +import com.gtnewhorizons.modularui.api.drawable.FallbackableUITexture; import com.gtnewhorizons.modularui.api.drawable.UITexture; public class GT_UITextures { @@ -23,6 +24,8 @@ public class GT_UITextures { .of(GregTech.ID, "gui/background/text_field", 142, 28, 1); public static final AdaptableUITexture BACKGROUND_TEXT_FIELD_LIGHT_GRAY = AdaptableUITexture .of(GregTech.ID, "gui/background/text_field_light_gray", 61, 12, 1); + public static final AdaptableUITexture BACKGROUND_NEI_SINGLE_RECIPE = AdaptableUITexture + .of(GregTech.ID, "gui/background/nei_single_recipe.png", 64, 64, 2); public static final SteamTexture SLOT_ITEM_STEAM = SteamTexture.fullImage(GregTech.ID, "gui/slot/item_%s"); public static final SteamTexture SLOT_FLUID_STEAM = SteamTexture.fullImage(GregTech.ID, "gui/slot/fluid_%s"); @@ -200,6 +203,10 @@ public class GT_UITextures { public static final UITexture PROGRESSBAR_STORED_EU = UITexture.fullImage(GregTech.ID, "gui/progressbar/stored_eu"); public static final UITexture PROGRESSBAR_WIREMILL = UITexture.fullImage(GregTech.ID, "gui/progressbar/wiremill"); + public static FallbackableUITexture fallbackableProgressbar(String name, UITexture fallback) { + return new FallbackableUITexture(UITexture.fullImage(GregTech.ID, "gui/progressbar/" + name), fallback); + } + public static final UITexture TAB_COVER_NORMAL = UITexture.fullImage(GregTech.ID, "gui/tab/cover_normal"); public static final UITexture TAB_COVER_HIGHLIGHT = UITexture.fullImage(GregTech.ID, "gui/tab/cover_highlight"); public static final UITexture TAB_COVER_DISABLED = UITexture.fullImage(GregTech.ID, "gui/tab/cover_disabled"); diff --git a/src/main/java/gregtech/api/interfaces/IGT_RecipeMap.java b/src/main/java/gregtech/api/interfaces/IRecipeMap.java index 2c5259882a..ce48b29927 100644 --- a/src/main/java/gregtech/api/interfaces/IGT_RecipeMap.java +++ b/src/main/java/gregtech/api/interfaces/IRecipeMap.java @@ -14,7 +14,7 @@ import gregtech.api.util.GT_Utility; /** * Represents the target of a recipe adding action, usually, but not necessarily, is a recipe map itself. */ -public interface IGT_RecipeMap { +public interface IRecipeMap { /** * Add a downstream recipe map that will get to handle the original builder. @@ -27,7 +27,7 @@ public interface IGT_RecipeMap { * * @param downstream the downstream recipe map to add */ - void addDownstream(IGT_RecipeMap downstream); + void addDownstream(IRecipeMap downstream); /** * Actually add the recipe represented by the builder. CAN modify the builder's internal states!!! @@ -41,17 +41,17 @@ public interface IGT_RecipeMap { * <p> * The returned recipe map will not have any downstreams, but can accept new downstreams. */ - default IGT_RecipeMap deepCopyInput() { + default IRecipeMap deepCopyInput() { return newRecipeMap(b -> doAdd(b.copy())); } - static IGT_RecipeMap newRecipeMap(Function<? super GT_RecipeBuilder, Collection<GT_Recipe>> func) { - return new IGT_RecipeMap() { + static IRecipeMap newRecipeMap(Function<? super GT_RecipeBuilder, Collection<GT_Recipe>> func) { + return new IRecipeMap() { - private final Collection<IGT_RecipeMap> downstreams = new ArrayList<>(); + private final Collection<IRecipeMap> downstreams = new ArrayList<>(); @Override - public void addDownstream(IGT_RecipeMap downstream) { + public void addDownstream(IRecipeMap downstream) { downstreams.add(downstream); } @@ -63,7 +63,7 @@ public interface IGT_RecipeMap { ret.add(out); builder.clearInvalid(); if (!out.isEmpty()) { - for (IGT_RecipeMap downstream : downstreams) { + for (IRecipeMap downstream : downstreams) { ret.add(downstream.doAdd(builder)); } } diff --git a/src/main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java b/src/main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java index 361e391a9b..e7abfea98f 100644 --- a/src/main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java +++ b/src/main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java @@ -321,17 +321,6 @@ public interface IGT_RecipeAdder { boolean hidden); /** - * Adds a CNC-Machine Recipe - * - * @param aInput1 must be != null - * @param aOutput1 must be != null - * @param aDuration must be > 0 - * @param aEUt should be > 0 - */ - @Deprecated - boolean addCNCRecipe(ItemStack aInput1, ItemStack aOutput1, int aDuration, int aEUt); - - /** * Adds an Assembler Recipe * * @param aInput1 must be != null @@ -1047,21 +1036,6 @@ public interface IGT_RecipeAdder { FluidStack[] aFluidOutputs, int[] aChances, int aDuration, int aEUt, int aSpecialValue); /** - * Add a Board Manufacturer Recipe. The Board Manufacturer's main use is to make the circuit boards needed to make - * circuits. - * - * @param aInputs must not be null - * @param aFluidInputs must not be null - * @param aOutputs must not be null - * @param aDuration recipe duration - * @param aEUt recipe EU/t expenditure - * @param aSpecialValue defines the tier of the board manufacturer required. - */ - @Deprecated - boolean addPCBFactoryRecipe(ItemStack[] aInputs, FluidStack[] aFluidInputs, ItemStack[] aOutputs, int aDuration, - int aEUt, int aSpecialValue); - - /** * Add a breeder cell. * * @param input raw stack. should be undamaged. diff --git a/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java b/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java index ba164352aa..04522b1012 100644 --- a/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java +++ b/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java @@ -38,7 +38,6 @@ import gregtech.api.interfaces.tileentity.IMachineBlockUpdateable; import gregtech.api.objects.GT_ItemStack; import gregtech.api.util.GT_Config; import gregtech.api.util.GT_Util; -import gregtech.common.power.Power; /** * Warning, this Interface has just been made to be able to add multiple kinds of MetaTileEntities (Cables, Pipes, @@ -366,13 +365,6 @@ public interface IMetaTileEntity extends ISidedInventory, IFluidTank, IFluidHand String getSpecialVoltageToolTip(); /** - * @return Power object used for displaying in NEI - */ - default Power getPower() { - return null; - } - - /** * Icon of the Texture. If this returns null then it falls back to getTextureIndex. * * @param side is the Side of the Block diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IOverclockDescriptionProvider.java b/src/main/java/gregtech/api/interfaces/tileentity/IOverclockDescriptionProvider.java new file mode 100644 index 0000000000..495cd9def4 --- /dev/null +++ b/src/main/java/gregtech/api/interfaces/tileentity/IOverclockDescriptionProvider.java @@ -0,0 +1,15 @@ +package gregtech.api.interfaces.tileentity; + +import javax.annotation.Nullable; + +import gregtech.api.objects.overclockdescriber.OverclockDescriber; + +/** + * Classes implementing this interface can provide {@link OverclockDescriber} to provide overclock behavior and NEI + * description. + */ +public interface IOverclockDescriptionProvider { + + @Nullable + OverclockDescriber getOverclockDescriber(); +} diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IRecipeLockable.java b/src/main/java/gregtech/api/interfaces/tileentity/IRecipeLockable.java index f793221a50..54d178af3c 100644 --- a/src/main/java/gregtech/api/interfaces/tileentity/IRecipeLockable.java +++ b/src/main/java/gregtech/api/interfaces/tileentity/IRecipeLockable.java @@ -1,12 +1,11 @@ package gregtech.api.interfaces.tileentity; import gregtech.api.recipe.check.SingleRecipeCheck; -import gregtech.api.util.GT_Recipe; /** * Machines implementing this interface can have logic to lock to a single recipe. */ -public interface IRecipeLockable { +public interface IRecipeLockable extends RecipeMapWorkable { /** * @return if this machine supports single recipe locking. @@ -29,6 +28,4 @@ public interface IRecipeLockable { } default void setSingleRecipeCheck(SingleRecipeCheck recipeCheck) {} - - GT_Recipe.GT_Recipe_Map getRecipeMap(); } diff --git a/src/main/java/gregtech/api/interfaces/tileentity/RecipeMapWorkable.java b/src/main/java/gregtech/api/interfaces/tileentity/RecipeMapWorkable.java new file mode 100644 index 0000000000..7d4db4396c --- /dev/null +++ b/src/main/java/gregtech/api/interfaces/tileentity/RecipeMapWorkable.java @@ -0,0 +1,49 @@ +package gregtech.api.interfaces.tileentity; + +import java.util.Collection; +import java.util.Collections; + +import javax.annotation.Nonnull; + +import net.minecraft.item.ItemStack; + +import gregtech.api.recipe.RecipeMap; + +/** + * Machines implementing this interface are capable of executing certain recipes provided by {@link RecipeMap}. + * They will also be automatically registered as NEI recipe catalyst for the corresponding recipemaps. + */ +public interface RecipeMapWorkable { + + /** + * @return RecipeMap this machine currently can execute. In general, it's allowed to be null. + */ + RecipeMap<?> getRecipeMap(); + + /** + * @return ItemStack form of this machine. + */ + ItemStack getStackForm(long amount); + + /** + * If the machine supports multiple recipemaps by switching mode, override this method so that it will be displayed + * as NEI recipe catalyst on all the supported recipemaps. + * + * @return List of possible {@link RecipeMap}s this machine can execute. Must not contain null element. + */ + @Nonnull + default Collection<RecipeMap<?>> getAvailableRecipeMaps() { + RecipeMap<?> recipeMap = getRecipeMap(); + if (recipeMap != null) { + return Collections.singletonList(recipeMap); + } + return Collections.emptyList(); + } + + /** + * @return Priority for NEI recipe catalyst. Higher priority comes first. + */ + default int getRecipeCatalystPriority() { + return 0; + } +} diff --git a/src/main/java/gregtech/api/items/GT_MetaGenerated_Item.java b/src/main/java/gregtech/api/items/GT_MetaGenerated_Item.java index 828fab4368..465c4bc9d6 100644 --- a/src/main/java/gregtech/api/items/GT_MetaGenerated_Item.java +++ b/src/main/java/gregtech/api/items/GT_MetaGenerated_Item.java @@ -3,7 +3,7 @@ package gregtech.api.items; import static gregtech.api.enums.GT_Values.D1; import static gregtech.api.enums.Mods.AppleCore; import static gregtech.api.enums.Mods.GregTech; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCannerRecipes; +import static gregtech.api.recipe.RecipeMaps.cannerRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import java.util.ArrayList; @@ -153,7 +153,7 @@ public abstract class GT_MetaGenerated_Item extends GT_MetaBase_Item implements : ItemList.IC2_Food_Can_Filled.get(tFoodValue)) .duration(tFoodValue * 5 * SECONDS) .eut(1) - .addTo(sCannerRecipes); + .addTo(cannerRecipes); } } tUseOreDict = false; diff --git a/src/main/java/gregtech/api/logic/ComplexParallelProcessingLogic.java b/src/main/java/gregtech/api/logic/ComplexParallelProcessingLogic.java index 05d39cd02c..3c7974db9e 100644 --- a/src/main/java/gregtech/api/logic/ComplexParallelProcessingLogic.java +++ b/src/main/java/gregtech/api/logic/ComplexParallelProcessingLogic.java @@ -6,6 +6,7 @@ import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidStack; import gregtech.api.multitileentity.multiblock.base.Controller; +import gregtech.api.recipe.RecipeMap; import gregtech.api.util.GT_OverclockCalculator; import gregtech.api.util.GT_ParallelHelper; import gregtech.api.util.GT_Recipe; @@ -13,7 +14,7 @@ import gregtech.api.util.GT_Recipe; public class ComplexParallelProcessingLogic { protected Controller<?> tileEntity; - protected GT_Recipe.GT_Recipe_Map recipeMap; + protected RecipeMap<?> recipeMap; protected boolean hasPerfectOverclock; protected final int maxComplexParallels; protected final ItemStack[][] outputItems; @@ -30,7 +31,7 @@ public class ComplexParallelProcessingLogic { this(null, maxComplexParallels); } - public ComplexParallelProcessingLogic(GT_Recipe.GT_Recipe_Map recipeMap, int maxComplexParallels) { + public ComplexParallelProcessingLogic(RecipeMap<?> recipeMap, int maxComplexParallels) { this.maxComplexParallels = maxComplexParallels; this.recipeMap = recipeMap; inputItems = new ItemStack[maxComplexParallels][]; @@ -44,7 +45,7 @@ public class ComplexParallelProcessingLogic { isFluidVoidProtected = new boolean[maxComplexParallels]; } - public ComplexParallelProcessingLogic setRecipeMap(GT_Recipe.GT_Recipe_Map recipeMap) { + public ComplexParallelProcessingLogic setRecipeMap(RecipeMap<?> recipeMap) { this.recipeMap = recipeMap; return this; } diff --git a/src/main/java/gregtech/api/logic/ProcessingLogic.java b/src/main/java/gregtech/api/logic/ProcessingLogic.java index 803abafbe3..6b9f2d454f 100644 --- a/src/main/java/gregtech/api/logic/ProcessingLogic.java +++ b/src/main/java/gregtech/api/logic/ProcessingLogic.java @@ -2,6 +2,7 @@ package gregtech.api.logic; import java.util.List; import java.util.function.Supplier; +import java.util.stream.Stream; import javax.annotation.Nonnull; import javax.annotation.Nullable; @@ -13,15 +14,13 @@ import org.jetbrains.annotations.NotNull; import gregtech.api.interfaces.tileentity.IRecipeLockable; import gregtech.api.interfaces.tileentity.IVoidable; +import gregtech.api.recipe.RecipeMap; import gregtech.api.recipe.check.CheckRecipeResult; import gregtech.api.recipe.check.CheckRecipeResultRegistry; -import gregtech.api.recipe.check.FindRecipeResult; -import gregtech.api.recipe.check.RecipeValidator; import gregtech.api.recipe.check.SingleRecipeCheck; import gregtech.api.util.GT_OverclockCalculator; import gregtech.api.util.GT_ParallelHelper; import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Recipe.GT_Recipe_Map; /** * Logic class to calculate result of recipe check from inputs, based on recipemap. @@ -31,9 +30,9 @@ public class ProcessingLogic { protected IVoidable machine; protected IRecipeLockable recipeLockableMachine; - protected Supplier<GT_Recipe_Map> recipeMapSupplier; + protected Supplier<RecipeMap<?>> recipeMapSupplier; protected GT_Recipe lastRecipe; - protected GT_Recipe_Map lastRecipeMap; + protected RecipeMap<?> lastRecipeMap; protected ItemStack specialSlotItem; protected ItemStack[] inputItems; protected ItemStack[] outputItems; @@ -146,11 +145,11 @@ public class ProcessingLogic { return this; } - public ProcessingLogic setRecipeMap(GT_Recipe_Map recipeMap) { + public ProcessingLogic setRecipeMap(RecipeMap<?> recipeMap) { return setRecipeMapSupplier(() -> recipeMap); } - public ProcessingLogic setRecipeMapSupplier(Supplier<GT_Recipe_Map> supplier) { + public ProcessingLogic setRecipeMapSupplier(Supplier<RecipeMap<?>> supplier) { this.recipeMapSupplier = supplier; return this; } @@ -263,7 +262,7 @@ public class ProcessingLogic { */ @Nonnull public CheckRecipeResult process() { - GT_Recipe_Map recipeMap; + RecipeMap<?> recipeMap; if (recipeMapSupplier == null) { recipeMap = null; } else { @@ -278,6 +277,13 @@ public class ProcessingLogic { maxParallel = maxParallelSupplier.get(); } + if (inputItems == null) { + inputItems = new ItemStack[0]; + } + if (inputFluids == null) { + inputFluids = new FluidStack[0]; + } + if (isRecipeLocked && recipeLockableMachine != null && recipeLockableMachine.getSingleRecipeCheck() != null) { // Recipe checker is already built, we'll use it SingleRecipeCheck singleRecipeCheck = recipeLockableMachine.getSingleRecipeCheck(); @@ -287,55 +293,39 @@ public class ProcessingLogic { return CheckRecipeResultRegistry.NO_RECIPE; } - return processRecipe( + return validateAndCalculateRecipe( recipeLockableMachine.getSingleRecipeCheck() - .getRecipe()); + .getRecipe()).checkRecipeResult; } - FindRecipeResult findRecipeResult = findRecipe(recipeMap); - // If processRecipe is not overridden, advanced recipe validation logic is used, and we can reuse calculations. - if (findRecipeResult.hasRecipeValidator()) { - RecipeValidator recipeValidator = findRecipeResult.getRecipeValidator(); - - // There are two cases: - // 1 - there are actually no matching recipes - // 2 - there are some matching recipes, but we rejected it due to our advanced validation (e.g. OUTPUT_FULL) - if (findRecipeResult.getState() == FindRecipeResult.State.NOT_FOUND - && recipeValidator.getFirstCheckResult() != null) { - // Here we're handling case 2 - // If there are matching recipes but our validation rejected them, - // we should return a first one to display a proper error in the machine GUI - return recipeValidator.getFirstCheckResult(); + Stream<GT_Recipe> matchedRecipes = findRecipeMatches(recipeMap); + Iterable<GT_Recipe> recipeIterable = matchedRecipes::iterator; + CheckRecipeResult checkRecipeResult = CheckRecipeResultRegistry.NO_RECIPE; + for (GT_Recipe matchedRecipe : recipeIterable) { + CalculationResult foundResult = validateAndCalculateRecipe(matchedRecipe); + if (foundResult.successfullyConsumedInputs) { + // Successfully found and set recipe, so return it + return foundResult.checkRecipeResult; } - - // If everything is ok, reuse our calculations - if (recipeValidator.isExecutedAtLeastOnce() && findRecipeResult.isSuccessful()) { - return applyRecipe( - findRecipeResult.getRecipeNonNull(), - recipeValidator.getLastParallelHelper(), - recipeValidator.getLastOverclockCalculator(), - recipeValidator.getLastCheckResult()); + if (foundResult.checkRecipeResult != CheckRecipeResultRegistry.NO_RECIPE) { + // Recipe failed in interesting way, so remember that and continue searching + checkRecipeResult = foundResult.checkRecipeResult; } } - - if (!findRecipeResult.isSuccessful()) { - return CheckRecipeResultRegistry.NO_RECIPE; - } - - return processRecipe(findRecipeResult.getRecipeNonNull()); + return checkRecipeResult; } /** - * Checks if supplied recipe is valid for process. - * If so, additionally performs input consumption, output calculation with parallel, and overclock calculation. + * Checks if supplied recipe is valid for process. This involves voltage check, output full check. If successful, + * additionally performs input consumption, output calculation with parallel, and overclock calculation. * * @param recipe The recipe which will be checked and processed */ @Nonnull - protected CheckRecipeResult processRecipe(@Nonnull GT_Recipe recipe) { + private CalculationResult validateAndCalculateRecipe(@Nonnull GT_Recipe recipe) { CheckRecipeResult result = validateRecipe(recipe); if (!result.wasSuccessful()) { - return result; + return CalculationResult.ofFailure(result); } GT_ParallelHelper helper = createParallelHelper(recipe); @@ -343,19 +333,20 @@ public class ProcessingLogic { helper.setCalculator(calculator); helper.build(); - return applyRecipe(recipe, helper, calculator, result); + if (!helper.getResult() + .wasSuccessful()) { + return CalculationResult.ofFailure(helper.getResult()); + } + + return CalculationResult.ofSuccess(applyRecipe(recipe, helper, calculator, result)); } /** - * Applies the recipe and calculated parameters + * Check has been succeeded, so it applies the recipe and calculated parameters. + * At this point, inputs have been already consumed. */ private CheckRecipeResult applyRecipe(@NotNull GT_Recipe recipe, GT_ParallelHelper helper, GT_OverclockCalculator calculator, CheckRecipeResult result) { - if (!helper.getResult() - .wasSuccessful()) { - return helper.getResult(); - } - if (recipe.mCanBeBuffered) { lastRecipe = recipe; } else { @@ -398,30 +389,31 @@ public class ProcessingLogic { } /** - * Override if you don't work with regular gt recipe maps + * Finds a list of matched recipes. At this point no additional check to the matched recipe has been done. + * <p> + * Override {@link #validateRecipe} to have custom check. + * <p> + * Override this method if it doesn't work with normal recipemaps. */ @Nonnull - protected FindRecipeResult findRecipe(@Nullable GT_Recipe_Map map) { - if (map == null) return FindRecipeResult.NOT_FOUND; - - RecipeValidator recipeValidator = new RecipeValidator( - this::validateRecipe, - this::createParallelHelper, - this::createOverclockCalculator); - - FindRecipeResult findRecipeResult = map.findRecipeWithResult( - lastRecipe, - recipeValidator, - false, - false, - amperageOC ? availableVoltage * availableAmperage : availableVoltage, - inputFluids, - specialSlotItem, - inputItems); - - findRecipeResult.setRecipeValidator(recipeValidator); + protected Stream<GT_Recipe> findRecipeMatches(@Nullable RecipeMap<?> map) { + if (map == null) { + return Stream.empty(); + } + return map.findRecipeQuery() + .items(inputItems) + .fluids(inputFluids) + .specialSlot(specialSlotItem) + .cachedRecipe(lastRecipe) + .findAll(); + } - return findRecipeResult; + /** + * Override to do additional check for found recipe if needed. + */ + @Nonnull + protected CheckRecipeResult validateRecipe(@Nonnull GT_Recipe recipe) { + return CheckRecipeResultRegistry.SUCCESSFUL; } /** @@ -443,24 +435,6 @@ public class ProcessingLogic { } /** - * Override to do additional check for finding recipe if needed, mainly for special value of the recipe. - */ - @Nonnull - protected CheckRecipeResult validateRecipe(@Nonnull GT_Recipe recipe) { - return CheckRecipeResultRegistry.SUCCESSFUL; - } - - /** - * Use {@link #createOverclockCalculator(GT_Recipe)} - */ - @Nonnull - @Deprecated - protected GT_OverclockCalculator createOverclockCalculator(@Nonnull GT_Recipe recipe, - @Nullable GT_ParallelHelper helper) { - return createOverclockCalculator(recipe); - } - - /** * Override to tweak overclock logic if needed. */ @Nonnull @@ -514,4 +488,28 @@ public class ProcessingLogic { } // endregion + + /** + * Represents the status of check recipe calculation. {@link #successfullyConsumedInputs} does not necessarily mean + * {@link #checkRecipeResult} being successful, when duration or power is overflowed. Being failure means + * recipe cannot meet requirements and recipe search should be continued if possible. + */ + protected final static class CalculationResult { + + public final boolean successfullyConsumedInputs; + public final CheckRecipeResult checkRecipeResult; + + public static CalculationResult ofSuccess(CheckRecipeResult checkRecipeResult) { + return new CalculationResult(true, checkRecipeResult); + } + + public static CalculationResult ofFailure(CheckRecipeResult checkRecipeResult) { + return new CalculationResult(false, checkRecipeResult); + } + + private CalculationResult(boolean successfullyConsumedInputs, CheckRecipeResult checkRecipeResult) { + this.successfullyConsumedInputs = successfullyConsumedInputs; + this.checkRecipeResult = checkRecipeResult; + } + } } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Frame.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Frame.java index f17626cdd8..399c536b9f 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Frame.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Frame.java @@ -1,6 +1,6 @@ package gregtech.api.metatileentity.implementations; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sAssemblerRecipes; +import static gregtech.api.recipe.RecipeMaps.assemblerRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; import static gregtech.api.util.GT_Utility.calculateRecipeEU; @@ -54,7 +54,7 @@ public class GT_MetaPipeEntity_Frame extends MetaPipeEntity { .itemOutputs(getStackForm(1)) .duration(3 * SECONDS + 4 * TICKS) .eut(calculateRecipeEU(aMaterial, 7)) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicGenerator.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicGenerator.java index 93bbdd2d18..897f9dad6f 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicGenerator.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicGenerator.java @@ -15,14 +15,17 @@ import gregtech.api.enums.Textures; import gregtech.api.gui.modularui.GT_UIInfos; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.interfaces.tileentity.RecipeMapWorkable; import gregtech.api.objects.ItemData; +import gregtech.api.recipe.RecipeMap; +import gregtech.api.recipe.maps.FuelBackend; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import gregtech.api.util.GT_Utility; import gregtech.common.GT_Pollution; -public abstract class GT_MetaTileEntity_BasicGenerator extends GT_MetaTileEntity_BasicTank { +public abstract class GT_MetaTileEntity_BasicGenerator extends GT_MetaTileEntity_BasicTank + implements RecipeMapWorkable { public GT_MetaTileEntity_BasicGenerator(int aID, String aName, String aNameRegional, int aTier, String aDescription, ITexture... aTextures) { @@ -273,7 +276,8 @@ public abstract class GT_MetaTileEntity_BasicGenerator extends GT_MetaTileEntity public abstract int getPollution(); - public abstract GT_Recipe_Map getRecipes(); + @Override + public abstract RecipeMap<?> getRecipeMap(); public abstract int getEfficiency(); @@ -287,8 +291,8 @@ public abstract class GT_MetaTileEntity_BasicGenerator extends GT_MetaTileEntity } public long getFuelValue(FluidStack aLiquid, boolean aLong) { - GT_Recipe_Map tRecipes = getRecipes(); - if (aLiquid == null || !(tRecipes instanceof GT_Recipe.GT_Recipe_Map_Fuel tFuels)) return 0; + RecipeMap<?> tRecipes = getRecipeMap(); + if (aLiquid == null || !(tRecipes.getBackend() instanceof FuelBackend tFuels)) return 0; GT_Recipe tFuel = tFuels.findFuel(aLiquid); if (tFuel == null) return 0; @@ -301,8 +305,8 @@ public abstract class GT_MetaTileEntity_BasicGenerator extends GT_MetaTileEntity } public long getFuelValue(ItemStack aStack, boolean aLong) { - if (GT_Utility.isStackInvalid(aStack) || getRecipes() == null) return 0; - GT_Recipe tFuel = getRecipes().findRecipe(getBaseMetaTileEntity(), false, Long.MAX_VALUE, null, aStack); + if (GT_Utility.isStackInvalid(aStack) || getRecipeMap() == null) return 0; + GT_Recipe tFuel = getRecipeMap().findRecipe(getBaseMetaTileEntity(), false, Long.MAX_VALUE, null, aStack); if (tFuel == null) return 0; long liters = 10L; // 1000mb/100 @@ -310,8 +314,8 @@ public abstract class GT_MetaTileEntity_BasicGenerator extends GT_MetaTileEntity } public ItemStack getEmptyContainer(ItemStack aStack) { - if (GT_Utility.isStackInvalid(aStack) || getRecipes() == null) return null; - GT_Recipe tFuel = getRecipes().findRecipe(getBaseMetaTileEntity(), false, Long.MAX_VALUE, null, aStack); + if (GT_Utility.isStackInvalid(aStack) || getRecipeMap() == null) return null; + GT_Recipe tFuel = getRecipeMap().findRecipe(getBaseMetaTileEntity(), false, Long.MAX_VALUE, null, aStack); if (tFuel != null) return GT_Utility.copyOrNull(tFuel.getOutput(0)); return GT_Utility.getContainerItem(aStack, true); } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java index 0e86829027..ba8c865301 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java @@ -14,6 +14,8 @@ import static gregtech.api.metatileentity.BaseTileEntity.STALLED_STUTTERING_TOOL import static gregtech.api.metatileentity.BaseTileEntity.STALLED_VENT_TOOLTIP; import static gregtech.api.metatileentity.BaseTileEntity.TOOLTIP_DELAY; import static gregtech.api.metatileentity.BaseTileEntity.UNUSED_SLOT_TOOLTIP; +import static gregtech.api.util.GT_RecipeConstants.EXPLODE; +import static gregtech.api.util.GT_RecipeConstants.ON_FIRE; import static gregtech.api.util.GT_Utility.moveMultipleItemStacks; import static net.minecraftforge.common.util.ForgeDirection.DOWN; import static net.minecraftforge.common.util.ForgeDirection.UNKNOWN; @@ -23,6 +25,8 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; +import javax.annotation.Nonnull; + import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemStack; @@ -39,7 +43,6 @@ import net.minecraftforge.fluids.IFluidHandler; import org.apache.commons.lang3.tuple.Pair; import com.gtnewhorizons.modularui.api.drawable.IDrawable; -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; @@ -65,21 +68,24 @@ import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.modularui.IAddGregtechLogo; import gregtech.api.interfaces.modularui.IAddUIWidgets; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.interfaces.tileentity.IOverclockDescriptionProvider; +import gregtech.api.interfaces.tileentity.RecipeMapWorkable; import gregtech.api.objects.GT_ItemStack; -import gregtech.api.recipe.check.FindRecipeResult; +import gregtech.api.objects.overclockdescriber.EUOverclockDescriber; +import gregtech.api.objects.overclockdescriber.OverclockDescriber; +import gregtech.api.recipe.BasicUIProperties; +import gregtech.api.recipe.RecipeMap; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_ClientPreference; import gregtech.api.util.GT_CoverBehaviorBase; import gregtech.api.util.GT_Log; import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_OverclockCalculator; import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import gregtech.api.util.GT_TooltipDataCache; import gregtech.api.util.GT_Utility; import gregtech.api.util.GT_Waila; import gregtech.common.gui.modularui.UIHelper; -import gregtech.common.power.BasicMachineEUPower; -import gregtech.common.power.Power; import mcp.mobius.waila.api.IWailaConfigHandler; import mcp.mobius.waila.api.IWailaDataAccessor; @@ -89,8 +95,8 @@ import mcp.mobius.waila.api.IWailaDataAccessor; * This is the main construct for my Basic Machines such as the Automatic Extractor Extend this class to make a simple * Machine */ -public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_BasicTank - implements IConfigurationCircuitSupport, IAddGregtechLogo, IAddUIWidgets { +public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_BasicTank implements RecipeMapWorkable, + IConfigurationCircuitSupport, IOverclockDescriptionProvider, IAddGregtechLogo, IAddUIWidgets { /** * return values for checkRecipe() @@ -108,9 +114,7 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B public int mProgresstime = 0, mMaxProgresstime = 0, mEUt = 0, mOutputBlocked = 0; public ForgeDirection mMainFacing = ForgeDirection.WEST; public FluidStack mOutputFluid; - @Deprecated - public String mGUIName = "", mNEIName = ""; - protected final Power mPower; + protected final OverclockDescriber overclockDescriber; /** * Contains the Recipe which has been previously used, or null if there was no previous Recipe, which could have @@ -147,29 +151,7 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B mInputSlotCount = Math.max(0, aInputSlotCount); mOutputItems = new ItemStack[Math.max(0, aOutputSlotCount)]; mAmperage = aAmperage; - mPower = buildPower(); - } - - /** - * @deprecated Use {@link #GT_MetaTileEntity_BasicMachine(int, String, String, int, int, String, int, int, - * ITexture...)} - */ - @Deprecated - public GT_MetaTileEntity_BasicMachine(int aID, String aName, String aNameRegional, int aTier, int aAmperage, - String aDescription, int aInputSlotCount, int aOutputSlotCount, String aGUIName, String aNEIName, - ITexture... aOverlays) { - super( - aID, - aName, - aNameRegional, - aTier, - OTHER_SLOT_COUNT + aInputSlotCount + aOutputSlotCount + 1, - aDescription, - aOverlays); - mInputSlotCount = Math.max(0, aInputSlotCount); - mOutputItems = new ItemStack[Math.max(0, aOutputSlotCount)]; - mAmperage = aAmperage; - mPower = buildPower(); + overclockDescriber = createOverclockDescriber(); } /** @@ -188,42 +170,7 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B mInputSlotCount = Math.max(0, aInputSlotCount); mOutputItems = new ItemStack[Math.max(0, aOutputSlotCount)]; mAmperage = aAmperage; - mPower = buildPower(); - } - - /** - * @deprecated Use {@link #GT_MetaTileEntity_BasicMachine(int, String, String, int, int, String[], int, int, - * ITexture...)} - */ - @Deprecated - public GT_MetaTileEntity_BasicMachine(int aID, String aName, String aNameRegional, int aTier, int aAmperage, - String[] aDescription, int aInputSlotCount, int aOutputSlotCount, String aGUIName, String aNEIName, - ITexture... aOverlays) { - super( - aID, - aName, - aNameRegional, - aTier, - OTHER_SLOT_COUNT + aInputSlotCount + aOutputSlotCount + 1, - aDescription, - aOverlays); - mInputSlotCount = Math.max(0, aInputSlotCount); - mOutputItems = new ItemStack[Math.max(0, aOutputSlotCount)]; - mAmperage = aAmperage; - mPower = buildPower(); - } - - /** - * @deprecated Use {@link #GT_MetaTileEntity_BasicMachine(String, int, int, String[], ITexture[][][], int, int)} - */ - @Deprecated - public GT_MetaTileEntity_BasicMachine(String aName, int aTier, int aAmperage, String aDescription, - ITexture[][][] aTextures, int aInputSlotCount, int aOutputSlotCount, String aGUIName, String aNEIName) { - super(aName, aTier, OTHER_SLOT_COUNT + aInputSlotCount + aOutputSlotCount + 1, aDescription, aTextures); - mInputSlotCount = Math.max(0, aInputSlotCount); - mOutputItems = new ItemStack[Math.max(0, aOutputSlotCount)]; - mAmperage = aAmperage; - mPower = buildPower(); + overclockDescriber = createOverclockDescriber(); } /** @@ -235,27 +182,14 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B mInputSlotCount = Math.max(0, aInputSlotCount); mOutputItems = new ItemStack[Math.max(0, aOutputSlotCount)]; mAmperage = aAmperage; - mPower = buildPower(); - } - - /** - * @deprecated Use {@link #GT_MetaTileEntity_BasicMachine(String, int, int, String[], ITexture[][][], int, int)} - */ - @Deprecated - public GT_MetaTileEntity_BasicMachine(String aName, int aTier, int aAmperage, String[] aDescription, - ITexture[][][] aTextures, int aInputSlotCount, int aOutputSlotCount, String aGUIName, String aNEIName) { - super(aName, aTier, OTHER_SLOT_COUNT + aInputSlotCount + aOutputSlotCount + 1, aDescription, aTextures); - mInputSlotCount = Math.max(0, aInputSlotCount); - mOutputItems = new ItemStack[Math.max(0, aOutputSlotCount)]; - mAmperage = aAmperage; - mPower = buildPower(); + overclockDescriber = createOverclockDescriber(); } /** - * To be called by the constructor to initialize this instance's Power + * To be called by the constructor to initialize this instance's overclock behavior */ - protected Power buildPower() { - return new BasicMachineEUPower(mTier, mAmperage); + protected OverclockDescriber createOverclockDescriber() { + return new EUOverclockDescriber(mTier, mAmperage); } protected boolean isValidMainFacing(ForgeDirection side) { @@ -502,7 +436,7 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B @Override public boolean isFluidInputAllowed(FluidStack aFluid) { - return getFillableStack() != null || (getRecipeList() != null && getRecipeList().containsInput(aFluid)); + return getFillableStack() != null || (getRecipeMap() != null && getRecipeMap().containsInput(aFluid)); } @Override @@ -780,20 +714,30 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B return getBaseMetaTileEntity().decreaseStoredEnergyUnits(aEUt, false); } - protected void calculateOverclockedNess(GT_Recipe aRecipe) { - calculateOverclockedNess(aRecipe.mEUt, aRecipe.mDuration); + /** + * Calculates overclock based on {@link #overclockDescriber}. + */ + protected void calculateCustomOverclock(GT_Recipe recipe) { + GT_OverclockCalculator calculator = overclockDescriber.createCalculator( + new GT_OverclockCalculator().setRecipeEUt(recipe.mEUt) + .setDuration(recipe.mDuration) + .setOneTickDiscount(true), + recipe); + calculator.calculate(); + mEUt = (int) calculator.getConsumption(); + mMaxProgresstime = calculator.getDuration(); } /** - * Calcualtes overclocked ness using long integers - * - * @param aEUt - recipe EUt - * @param aDuration - recipe Duration + * Helper method for calculating simple overclock. */ - protected void calculateOverclockedNess(int aEUt, int aDuration) { - mPower.computePowerUsageAndDuration(aEUt, aDuration); - mEUt = mPower.getEuPerTick(); - mMaxProgresstime = mPower.getDurationTicks(); + protected void calculateOverclockedNess(int eut, int duration) { + GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(eut) + .setDuration(duration) + .setOneTickDiscount(true) + .calculate(); + mEUt = (int) calculator.getConsumption(); + mMaxProgresstime = calculator.getDuration(); } protected ItemStack getSpecialSlot() { @@ -1063,10 +1007,8 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B return GregTech_API.getConfigurationCircuitList(mTier); } - /** - * @return the Recipe List which is used for this Machine, this is a useful Default Handler - */ - public GT_Recipe_Map getRecipeList() { + @Override + public RecipeMap<?> getRecipeMap() { return null; } @@ -1115,26 +1057,26 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B * FOUND_AND_SUCCESSFULLY_USED_RECIPE = 2; */ public int checkRecipe(boolean skipOC) { - GT_Recipe_Map tMap = getRecipeList(); + RecipeMap<?> tMap = getRecipeMap(); if (tMap == null) return DID_NOT_FIND_RECIPE; - FindRecipeResult result = tMap.findRecipeWithResult( - mLastRecipe, - false, - false, - V[mTier], - new FluidStack[] { getFillableStack() }, - getSpecialSlot(), - getAllInputs()); - if (result.getState() == FindRecipeResult.State.EXPLODE && getBaseMetaTileEntity() != null) { + GT_Recipe tRecipe = tMap.findRecipeQuery() + .items(getAllInputs()) + .fluids(getFillableStack()) + .specialSlot(getSpecialSlot()) + .voltage(V[mTier]) + .cachedRecipe(mLastRecipe) + .find(); + if (tRecipe == null) { + return DID_NOT_FIND_RECIPE; + } + if (tRecipe.getMetadataOrDefault(EXPLODE, false) && getBaseMetaTileEntity() != null) { getBaseMetaTileEntity().doExplosion(V[mTier] * 4); return DID_NOT_FIND_RECIPE; } - if (result.getState() == FindRecipeResult.State.ON_FIRE && getBaseMetaTileEntity() != null) { + if (tRecipe.getMetadataOrDefault(ON_FIRE, false) && getBaseMetaTileEntity() != null) { getBaseMetaTileEntity().setOnFire(); return DID_NOT_FIND_RECIPE; } - if (!result.isSuccessful()) return DID_NOT_FIND_RECIPE; - GT_Recipe tRecipe = result.getRecipeNonNull(); if (GT_Mod.gregtechproxy.mLowGravProcessing && (tRecipe.mSpecialValue == -100 || tRecipe.mSpecialValue == -300) && !isValidForLowGravity(tRecipe, getBaseMetaTileEntity().getWorld().provider.dimensionId)) @@ -1169,7 +1111,7 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B } mOutputFluid = tRecipe.getFluidOutput(0); if (!skipOC) { - calculateOverclockedNess(tRecipe); + calculateCustomOverclock(tRecipe); // 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; @@ -1317,16 +1259,17 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B } } + @Nonnull @Override - public Power getPower() { - return mPower; + public OverclockDescriber getOverclockDescriber() { + return overclockDescriber; } // GUI stuff @Override public boolean useModularUI() { - return getRecipeList() != null && getRecipeList().useModularUI; + return getRecipeMap() != null; } @Override @@ -1341,8 +1284,9 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B @Override public void addGregTechLogo(ModularWindow.Builder builder) { - if (getRecipeList() != null) { - getRecipeList().addGregTechLogoUI(builder, new Pos2d(0, 0)); + if (getRecipeMap() != null) { + getRecipeMap().getFrontend() + .addGregTechLogo(builder, new Pos2d(0, 0)); } else { builder.widget( new DrawableWidget().setDrawable(getGUITextureSet().getGregTechLogo()) @@ -1358,22 +1302,13 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B builder.widget(createItemAutoOutputButton()); } - addIOSlots(builder); + BasicUIProperties uiProperties = getUIProperties(); + addIOSlots(builder, uiProperties); builder.widget(createChargerSlot(79, 62)); - if (getRecipeList() != null) { - builder.widget( - setNEITransferRect( - createProgressBar( - isSteampowered() ? getRecipeList().getProgressBarTextureSteam(getSteamVariant()) - : getRecipeList().getProgressBarTexture(), - getRecipeList().getProgressBarImageSize(), - getRecipeList().progressBarDirection, - getRecipeList().progressBarPos, - getRecipeList().progressBarSize), - getRecipeList().mNEIName)); - addProgressBarSpecialTextures(builder); - } + + addProgressBar(builder, uiProperties); + builder.widget( createErrorStatusArea( builder, @@ -1381,29 +1316,82 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B } /** + * Override to specify UI properties if this machine doesn't work with recipemap. + */ + protected BasicUIProperties getUIProperties() { + if (getRecipeMap() != null) { + BasicUIProperties originalProperties = getRecipeMap().getFrontend() + .getUIProperties(); + return originalProperties.toBuilder() + .maxItemInputs(mInputSlotCount) + .maxItemOutputs(mOutputItems.length) + .maxFluidInputs(Math.min(originalProperties.maxFluidInputs, 1)) + .maxFluidOutputs(Math.min(originalProperties.maxFluidOutputs, 1)) + .build(); + } + return BasicUIProperties.builder() + .maxItemInputs(mInputSlotCount) + .maxItemOutputs(mOutputItems.length) + .maxFluidInputs(getCapacity() != 0 ? 1 : 0) + .maxFluidOutputs(0) + .build(); + } + + /** * Adds item I/O, special item, and fluid I/O slots. */ - protected void addIOSlots(ModularWindow.Builder builder) { - final boolean hasFluidInput = getRecipeList() != null ? (getRecipeList().hasFluidInputs()) - : (getCapacity() != 0); - final boolean hasFluidOutput = getRecipeList() != null && getRecipeList().hasFluidOutputs(); + protected void addIOSlots(ModularWindow.Builder builder, BasicUIProperties uiProperties) { UIHelper.forEachSlots( (i, backgrounds, pos) -> builder.widget(createItemInputSlot(i, backgrounds, pos)), (i, backgrounds, pos) -> builder.widget(createItemOutputSlot(i, backgrounds, pos)), - (i, backgrounds, pos) -> builder.widget(createSpecialSlot(backgrounds, pos)), + (i, backgrounds, pos) -> builder.widget(createSpecialSlot(backgrounds, pos, uiProperties)), (i, backgrounds, pos) -> builder.widget(createFluidInputSlot(backgrounds, pos)), (i, backgrounds, pos) -> builder.widget(createFluidOutputSlot(backgrounds, pos)), getGUITextureSet().getItemSlot(), getGUITextureSet().getFluidSlot(), - getRecipeList(), - mInputSlotCount, - mOutputItems.length, - hasFluidInput ? 1 : 0, - hasFluidOutput ? 1 : 0, + uiProperties, + uiProperties.maxItemInputs, + uiProperties.maxItemOutputs, + uiProperties.maxFluidInputs, + uiProperties.maxFluidOutputs, getSteamVariant(), Pos2d.ZERO); } + protected void addProgressBar(ModularWindow.Builder builder, BasicUIProperties uiProperties) { + boolean isSteamPowered = isSteampowered(); + RecipeMap<?> recipeMap = getRecipeMap(); + if (!isSteamPowered && uiProperties.progressBarTexture == null) { + if (recipeMap != null) { + // Require progress bar texture for machines working with recipemap, otherwise permit + throw new RuntimeException("Missing progressbar texture for " + recipeMap.unlocalizedName); + } else { + return; + } + } + if (isSteamPowered && uiProperties.progressBarTextureSteam == null) { + if (recipeMap != null) { + throw new RuntimeException("Missing steam progressbar texture for " + recipeMap.unlocalizedName); + } else { + return; + } + } + + builder.widget( + setNEITransferRect( + new ProgressBar() + .setProgress(() -> maxProgresstime() != 0 ? (float) getProgresstime() / maxProgresstime() : 0) + .setTexture( + isSteamPowered ? uiProperties.progressBarTextureSteam.get(getSteamVariant()) + : uiProperties.progressBarTexture.get(), + uiProperties.progressBarImageSize) + .setDirection(uiProperties.progressBarDirection) + .setPos(uiProperties.progressBarPos) + .setSize(uiProperties.progressBarSize), + uiProperties.neiTransferRectId)); + addProgressBarSpecialTextures(builder, uiProperties); + } + /** * Override this as needed instead of calling. */ @@ -1425,13 +1413,11 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B /** * Override this as needed instead of calling. */ - protected SlotWidget createSpecialSlot(IDrawable[] backgrounds, Pos2d pos) { + protected SlotWidget createSpecialSlot(IDrawable[] backgrounds, Pos2d pos, BasicUIProperties uiProperties) { return (SlotWidget) new SlotWidget(inventoryHandler, getSpecialSlotIndex()).setAccess(true, true) .disableShiftInsert() .setGTTooltip( - () -> mTooltipCache.getData( - getRecipeList() != null && getRecipeList().usesSpecialSlot() ? SPECIAL_SLOT_TOOLTIP - : UNUSED_SLOT_TOOLTIP)) + () -> mTooltipCache.getData(uiProperties.useSpecialSlot ? SPECIAL_SLOT_TOOLTIP : UNUSED_SLOT_TOOLTIP)) .setTooltipShowUpDelay(TOOLTIP_DELAY) .setBackground(backgrounds) .setPos(pos); @@ -1478,40 +1464,25 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B .setSize(18, 18); } - protected ProgressBar createProgressBar(UITexture texture, int imageSize, ProgressBar.Direction direction, - Pos2d pos, Size size) { - final ProgressBar ret = new ProgressBar(); - ret.setProgress(() -> maxProgresstime() != 0 ? (float) getProgresstime() / maxProgresstime() : 0) - .setTexture(texture, imageSize) - .setDirection(direction) - .setPos(pos) - .setSize(size); - return ret; - } - - public boolean hasNEITransferRect() { - return getRecipeList() != null; - } - protected Widget setNEITransferRect(Widget widget, String transferRectID) { - if (hasNEITransferRect()) { - final Power powerInfo = getPower(); - final String transferRectTooltip; - if (isSteampowered()) { - transferRectTooltip = StatCollector - .translateToLocalFormatted(NEI_TRANSFER_STEAM_TOOLTIP, powerInfo.getTierString()); - } else { - transferRectTooltip = StatCollector - .translateToLocalFormatted(NEI_TRANSFER_VOLTAGE_TOOLTIP, powerInfo.getTierString()); - } - widget.setNEITransferRect(transferRectID, new Object[] { powerInfo }, transferRectTooltip); + if (GT_Utility.isStringInvalid(transferRectID)) { + return widget; + } + final String transferRectTooltip; + if (isSteampowered()) { + transferRectTooltip = StatCollector + .translateToLocalFormatted(NEI_TRANSFER_STEAM_TOOLTIP, overclockDescriber.getTierString()); + } else { + transferRectTooltip = StatCollector + .translateToLocalFormatted(NEI_TRANSFER_VOLTAGE_TOOLTIP, overclockDescriber.getTierString()); } + widget.setNEITransferRect(transferRectID, new Object[] { overclockDescriber }, transferRectTooltip); return widget; } - protected void addProgressBarSpecialTextures(ModularWindow.Builder builder) { + protected void addProgressBarSpecialTextures(ModularWindow.Builder builder, BasicUIProperties uiProperties) { if (isSteampowered()) { - for (Pair<SteamTexture, Pair<Size, Pos2d>> specialTexture : getRecipeList().specialTexturesSteam) { + for (Pair<SteamTexture, Pair<Size, Pos2d>> specialTexture : uiProperties.specialTexturesSteam) { builder.widget( new DrawableWidget().setDrawable( specialTexture.getLeft() @@ -1524,7 +1495,7 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B .getRight())); } } else { - for (Pair<IDrawable, Pair<Size, Pos2d>> specialTexture : getRecipeList().specialTextures) { + for (Pair<IDrawable, Pair<Size, Pos2d>> specialTexture : uiProperties.specialTextures) { builder.widget( new DrawableWidget().setDrawable(specialTexture.getLeft()) .setSize( diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_Bronze.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_Bronze.java index e1321c144f..5eb648d560 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_Bronze.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_Bronze.java @@ -35,13 +35,13 @@ import gregtech.api.gui.modularui.GUITextureSet; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.objects.GT_ItemStack; +import gregtech.api.objects.overclockdescriber.OverclockDescriber; +import gregtech.api.objects.overclockdescriber.SteamOverclockDescriber; 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; -import gregtech.common.power.Power; -import gregtech.common.power.SteamPower; /** * NEVER INCLUDE THIS FILE IN YOUR MOD!!! @@ -70,8 +70,8 @@ public abstract class GT_MetaTileEntity_BasicMachine_Bronze extends GT_MetaTileE } @Override - public Power buildPower() { - return new SteamPower(mTier, 1, 2); + public OverclockDescriber createOverclockDescriber() { + return new SteamOverclockDescriber(SteamVariant.BRONZE, 1, 2); } @Override @@ -189,11 +189,11 @@ public abstract class GT_MetaTileEntity_BasicMachine_Bronze extends GT_MetaTileE @Override public int checkRecipe() { - GT_Recipe tRecipe = getRecipeList().findRecipe(getBaseMetaTileEntity(), false, TierEU.LV, null, getAllInputs()); + GT_Recipe tRecipe = getRecipeMap().findRecipe(getBaseMetaTileEntity(), false, TierEU.LV, null, getAllInputs()); if ((tRecipe != null) && (canOutput(tRecipe.mOutputs)) && (tRecipe.isRecipeInputEqual(true, null, getAllInputs()))) { this.mOutputItems[0] = tRecipe.getOutput(0); - calculateOverclockedNess(tRecipe); + calculateCustomOverclock(tRecipe); return FOUND_AND_SUCCESSFULLY_USED_RECIPE; } return DID_NOT_FIND_RECIPE; @@ -380,7 +380,7 @@ public abstract class GT_MetaTileEntity_BasicMachine_Bronze extends GT_MetaTileE String[] description = Arrays.copyOf(mDescriptionArray, mDescriptionArray.length + 1); description[mDescriptionArray.length] = StatCollector.translateToLocal(TT_machineType) + ": " + EnumChatFormatting.YELLOW - + StatCollector.translateToLocal(this.getRecipeList().mUnlocalizedName) + + StatCollector.translateToLocal(this.getRecipeMap().unlocalizedName) + EnumChatFormatting.RESET; return description; } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_GT_Recipe.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_GT_Recipe.java index 3297490b51..8bba0fee25 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_GT_Recipe.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_GT_Recipe.java @@ -5,7 +5,6 @@ import static gregtech.api.enums.GT_Values.VN; import static gregtech.api.enums.GT_Values.W; import static gregtech.api.enums.GT_Values.ticksBetweenSounds; import static gregtech.api.enums.Mods.BartWorks; -import static gregtech.api.enums.Mods.GregTech; import static gregtech.api.objects.XSTR.XSTR_INSTANCE; import static net.minecraftforge.common.util.ForgeDirection.UP; @@ -21,9 +20,6 @@ import net.minecraftforge.oredict.OreDictionary; 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.common.widget.ProgressBar; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -39,10 +35,11 @@ import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.BaseMetaTileEntity; +import gregtech.api.recipe.BasicUIProperties; +import gregtech.api.recipe.RecipeMap; import gregtech.api.render.TextureFactory; import gregtech.api.util.ExternalMaterials; import gregtech.api.util.GT_ModHandler; -import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; import gregtech.api.util.WorldSpawnedEventBuilder.ParticleEventBuilder; import ic2.core.Ic2Items; @@ -55,20 +52,19 @@ import ic2.core.Ic2Items; */ public class GT_MetaTileEntity_BasicMachine_GT_Recipe extends GT_MetaTileEntity_BasicMachine { - private final GT_Recipe.GT_Recipe_Map mRecipes; + private final RecipeMap<?> mRecipes; private final int mTankCapacity; private final SpecialEffects mSpecialEffect; private final ResourceLocation mSoundResourceLocation; - private final boolean mSharedTank, mRequiresFluidForFiltering; private FallbackableUITexture progressBarTexture; + private int recipeCatalystPriority; /** * Registers machine with single-line description, specific tank capacity, and sound specified by ResourceLocation. */ public GT_MetaTileEntity_BasicMachine_GT_Recipe(int aID, String aName, String aNameRegional, int aTier, - String aDescription, GT_Recipe.GT_Recipe_Map aRecipes, int aInputSlots, int aOutputSlots, int aTankCapacity, - ResourceLocation aSound, boolean aSharedTank, boolean aRequiresFluidForFiltering, SpecialEffects aSpecialEffect, - String aOverlays, Object[] aRecipe) { + String aDescription, RecipeMap<?> aRecipes, int aInputSlots, int aOutputSlots, int aTankCapacity, + ResourceLocation aSound, SpecialEffects aSpecialEffect, String aOverlays, Object[] aRecipe) { this( aID, aName, @@ -80,8 +76,6 @@ public class GT_MetaTileEntity_BasicMachine_GT_Recipe extends GT_MetaTileEntity_ aOutputSlots, aTankCapacity, aSound, - aSharedTank, - aRequiresFluidForFiltering, aSpecialEffect, aOverlays, aRecipe); @@ -91,15 +85,14 @@ public class GT_MetaTileEntity_BasicMachine_GT_Recipe extends GT_MetaTileEntity_ * Registers machine with multi-line descriptions, specific tank capacity, and sound specified by ResourceLocation. */ public GT_MetaTileEntity_BasicMachine_GT_Recipe(int aID, String aName, String aNameRegional, int aTier, - String[] aDescription, GT_Recipe.GT_Recipe_Map aRecipes, int aInputSlots, int aOutputSlots, int aTankCapacity, - ResourceLocation aSound, boolean aSharedTank, boolean aRequiresFluidForFiltering, SpecialEffects aSpecialEffect, - String aOverlays, Object[] aRecipe) { + String[] aDescription, RecipeMap<?> aRecipes, int aInputSlots, int aOutputSlots, int aTankCapacity, + ResourceLocation aSound, SpecialEffects aSpecialEffect, String aOverlays, Object[] aRecipe) { super( aID, aName, aNameRegional, aTier, - aRecipes.mAmperage, + aRecipes.getAmperage(), aDescription, aInputSlots, aOutputSlots, @@ -176,13 +169,12 @@ public class GT_MetaTileEntity_BasicMachine_GT_Recipe extends GT_MetaTileEntity_ "basicmachines/" + aOverlays.toLowerCase(Locale.ENGLISH) + "/OVERLAY_BOTTOM_GLOW"))) .glow() .build())); - this.mSharedTank = aSharedTank; this.mTankCapacity = aTankCapacity; this.mSpecialEffect = aSpecialEffect; - this.mRequiresFluidForFiltering = aRequiresFluidForFiltering; this.mRecipes = aRecipes; this.mSoundResourceLocation = aSound; - this.progressBarTexture = mRecipes.getProgressBarTextureRaw(); + this.progressBarTexture = mRecipes.getFrontend() + .getUIProperties().progressBarTexture; // TODO: CHECK if (aRecipe != null) { @@ -447,9 +439,8 @@ public class GT_MetaTileEntity_BasicMachine_GT_Recipe extends GT_MetaTileEntity_ * Registers machine with single-line description, auto-scaled fluid tank, and sound specified by SoundResource. */ public GT_MetaTileEntity_BasicMachine_GT_Recipe(int aID, String aName, String aNameRegional, int aTier, - String aDescription, GT_Recipe.GT_Recipe_Map aRecipes, int aInputSlots, int aOutputSlots, boolean usesFluids, - SoundResource aSound, boolean aSharedTank, boolean aRequiresFluidForFiltering, SpecialEffects aSpecialEffect, - String aOverlays, Object[] aRecipe) { + String aDescription, RecipeMap<?> aRecipes, int aInputSlots, int aOutputSlots, boolean usesFluids, + SoundResource aSound, SpecialEffects aSpecialEffect, String aOverlays, Object[] aRecipe) { this( aID, aName, @@ -461,35 +452,6 @@ public class GT_MetaTileEntity_BasicMachine_GT_Recipe extends GT_MetaTileEntity_ aOutputSlots, usesFluids ? getCapacityForTier(aTier) : 0, aSound.resourceLocation, - aSharedTank, - aRequiresFluidForFiltering, - aSpecialEffect, - aOverlays, - aRecipe); - } - - /** - * @deprecated Use {@link #GT_MetaTileEntity_BasicMachine_GT_Recipe(int, String, String, int, String, - * GT_Recipe.GT_Recipe_Map, int, int, boolean, SoundResource, boolean, boolean, SpecialEffects, String, Object[])} - */ - @Deprecated - public GT_MetaTileEntity_BasicMachine_GT_Recipe(int aID, String aName, String aNameRegional, int aTier, - String aDescription, GT_Recipe.GT_Recipe_Map aRecipes, int aInputSlots, int aOutputSlots, boolean usesFluids, - int aGUIParameterA, int aGUIParameterB, String aGUIName, SoundResource aSound, boolean aSharedTank, - boolean aRequiresFluidForFiltering, SpecialEffects aSpecialEffect, String aOverlays, Object[] aRecipe) { - this( - aID, - aName, - aNameRegional, - aTier, - aDescription, - aRecipes, - aInputSlots, - aOutputSlots, - usesFluids ? getCapacityForTier(aTier) : 0, - aSound.resourceLocation, - aSharedTank, - aRequiresFluidForFiltering, aSpecialEffect, aOverlays, aRecipe); @@ -499,9 +461,8 @@ public class GT_MetaTileEntity_BasicMachine_GT_Recipe extends GT_MetaTileEntity_ * Registers machine with multi-line descriptions, auto-scaled fluid tank, and sound specified by SoundResource. */ public GT_MetaTileEntity_BasicMachine_GT_Recipe(int aID, String aName, String aNameRegional, int aTier, - String[] aDescription, GT_Recipe.GT_Recipe_Map aRecipes, int aInputSlots, int aOutputSlots, boolean usesFluids, - SoundResource aSound, boolean aSharedTank, boolean aRequiresFluidForFiltering, SpecialEffects aSpecialEffect, - String aOverlays, Object[] aRecipe) { + String[] aDescription, RecipeMap<?> aRecipes, int aInputSlots, int aOutputSlots, boolean usesFluids, + SoundResource aSound, SpecialEffects aSpecialEffect, String aOverlays, Object[] aRecipe) { this( aID, aName, @@ -513,35 +474,6 @@ public class GT_MetaTileEntity_BasicMachine_GT_Recipe extends GT_MetaTileEntity_ aOutputSlots, usesFluids ? getCapacityForTier(aTier) : 0, aSound.resourceLocation, - aSharedTank, - aRequiresFluidForFiltering, - aSpecialEffect, - aOverlays, - aRecipe); - } - - /** - * @deprecated Use {@link #GT_MetaTileEntity_BasicMachine_GT_Recipe(int, String, String, int, String[], - * GT_Recipe.GT_Recipe_Map, int, int, boolean, SoundResource, boolean, boolean, SpecialEffects, String, Object[])} - */ - @Deprecated - public GT_MetaTileEntity_BasicMachine_GT_Recipe(int aID, String aName, String aNameRegional, int aTier, - String[] aDescription, GT_Recipe.GT_Recipe_Map aRecipes, int aInputSlots, int aOutputSlots, boolean usesFluids, - int aGUIParameterA, int aGUIParameterB, String aGUIName, SoundResource aSound, boolean aSharedTank, - boolean aRequiresFluidForFiltering, SpecialEffects aSpecialEffect, String aOverlays, Object[] aRecipe) { - this( - aID, - aName, - aNameRegional, - aTier, - aDescription, - aRecipes, - aInputSlots, - aOutputSlots, - usesFluids ? getCapacityForTier(aTier) : 0, - aSound.resourceLocation, - aSharedTank, - aRequiresFluidForFiltering, aSpecialEffect, aOverlays, aRecipe); @@ -551,9 +483,8 @@ public class GT_MetaTileEntity_BasicMachine_GT_Recipe extends GT_MetaTileEntity_ * Registers machine with single-line description, specific tank capacity, and sound specified by SoundResource. */ public GT_MetaTileEntity_BasicMachine_GT_Recipe(int aID, String aName, String aNameRegional, int aTier, - String aDescription, GT_Recipe.GT_Recipe_Map aRecipes, int aInputSlots, int aOutputSlots, int aTankCapacity, - SoundResource aSound, boolean aSharedTank, boolean aRequiresFluidForFiltering, SpecialEffects aSpecialEffect, - String aOverlays, Object[] aRecipe) { + String aDescription, RecipeMap<?> aRecipes, int aInputSlots, int aOutputSlots, int aTankCapacity, + SoundResource aSound, SpecialEffects aSpecialEffect, String aOverlays, Object[] aRecipe) { this( aID, aName, @@ -565,35 +496,6 @@ public class GT_MetaTileEntity_BasicMachine_GT_Recipe extends GT_MetaTileEntity_ aOutputSlots, aTankCapacity, aSound.resourceLocation, - aSharedTank, - aRequiresFluidForFiltering, - aSpecialEffect, - aOverlays, - aRecipe); - } - - /** - * @deprecated Use {@link #GT_MetaTileEntity_BasicMachine_GT_Recipe(int, String, String, int, String, - * GT_Recipe.GT_Recipe_Map, int, int, int, SoundResource, boolean, boolean, SpecialEffects, String, Object[])} - */ - @Deprecated - public GT_MetaTileEntity_BasicMachine_GT_Recipe(int aID, String aName, String aNameRegional, int aTier, - String aDescription, GT_Recipe.GT_Recipe_Map aRecipes, int aInputSlots, int aOutputSlots, int aTankCapacity, - int aGUIParameterA, int aGUIParameterB, String aGUIName, SoundResource aSound, boolean aSharedTank, - boolean aRequiresFluidForFiltering, SpecialEffects aSpecialEffect, String aOverlays, Object[] aRecipe) { - this( - aID, - aName, - aNameRegional, - aTier, - aDescription, - aRecipes, - aInputSlots, - aOutputSlots, - aTankCapacity, - aSound.resourceLocation, - aSharedTank, - aRequiresFluidForFiltering, aSpecialEffect, aOverlays, aRecipe); @@ -603,36 +505,8 @@ public class GT_MetaTileEntity_BasicMachine_GT_Recipe extends GT_MetaTileEntity_ * Registers machine with multi-line descriptions, specific tank capacity, and sound specified by SoundResource. */ public GT_MetaTileEntity_BasicMachine_GT_Recipe(int aID, String aName, String aNameRegional, int aTier, - String[] aDescription, GT_Recipe.GT_Recipe_Map aRecipes, int aInputSlots, int aOutputSlots, int aTankCapacity, - SoundResource aSound, boolean aSharedTank, boolean aRequiresFluidForFiltering, SpecialEffects aSpecialEffect, - String aOverlays, Object[] aRecipe) { - this( - aID, - aName, - aNameRegional, - aTier, - aDescription, - aRecipes, - aInputSlots, - aOutputSlots, - aTankCapacity, - aSound.resourceLocation, - aSharedTank, - aRequiresFluidForFiltering, - aSpecialEffect, - aOverlays, - aRecipe); - } - - /** - * @deprecated Use {@link #GT_MetaTileEntity_BasicMachine_GT_Recipe(int, String, String, int, String[], - * GT_Recipe.GT_Recipe_Map, int, int, int, SoundResource, boolean, boolean, SpecialEffects, String, Object[])} - */ - @Deprecated - public GT_MetaTileEntity_BasicMachine_GT_Recipe(int aID, String aName, String aNameRegional, int aTier, - String[] aDescription, GT_Recipe.GT_Recipe_Map aRecipes, int aInputSlots, int aOutputSlots, int aTankCapacity, - int aGUIParameterA, int aGUIParameterB, String aGUIName, SoundResource aSound, boolean aSharedTank, - boolean aRequiresFluidForFiltering, SpecialEffects aSpecialEffect, String aOverlays, Object[] aRecipe) { + String[] aDescription, RecipeMap<?> aRecipes, int aInputSlots, int aOutputSlots, int aTankCapacity, + SoundResource aSound, SpecialEffects aSpecialEffect, String aOverlays, Object[] aRecipe) { this( aID, aName, @@ -644,52 +518,20 @@ public class GT_MetaTileEntity_BasicMachine_GT_Recipe extends GT_MetaTileEntity_ aOutputSlots, aTankCapacity, aSound.resourceLocation, - aSharedTank, - aRequiresFluidForFiltering, aSpecialEffect, aOverlays, aRecipe); } /** - * @deprecated Use {@link #GT_MetaTileEntity_BasicMachine_GT_Recipe(int, String, String, int, String, - * GT_Recipe.GT_Recipe_Map, int, int, int, ResourceLocation, boolean, boolean, SpecialEffects, String, Object[])} - */ - @Deprecated - public GT_MetaTileEntity_BasicMachine_GT_Recipe(int aID, String aName, String aNameRegional, int aTier, - String aDescription, GT_Recipe.GT_Recipe_Map aRecipes, int aInputSlots, int aOutputSlots, int aTankCapacity, - int aGUIParameterA, int aGUIParameterB, String aGUIName, String aSound, boolean aSharedTank, - boolean aRequiresFluidForFiltering, int aSpecialEffect, String aOverlays, Object[] aRecipe) { - this( - aID, - aName, - aNameRegional, - aTier, - aDescription, - aRecipes, - aInputSlots, - aOutputSlots, - aTankCapacity, - new ResourceLocation(aSound), - aSharedTank, - aRequiresFluidForFiltering, - SpecialEffects.fromId(aSpecialEffect), - aOverlays, - aRecipe); - } - - /** * For {@link #newMetaEntity}. */ public GT_MetaTileEntity_BasicMachine_GT_Recipe(String aName, int aTier, String[] aDescription, - GT_Recipe.GT_Recipe_Map aRecipes, int aInputSlots, int aOutputSlots, int aTankCapacity, int aAmperage, - ITexture[][][] aTextures, ResourceLocation aSound, boolean aSharedTank, boolean aRequiresFluidForFiltering, - SpecialEffects aSpecialEffect) { + RecipeMap<?> aRecipes, int aInputSlots, int aOutputSlots, int aTankCapacity, int aAmperage, + ITexture[][][] aTextures, ResourceLocation aSound, SpecialEffects aSpecialEffect) { super(aName, aTier, aAmperage, aDescription, aTextures, aInputSlots, aOutputSlots); - this.mSharedTank = aSharedTank; this.mTankCapacity = aTankCapacity; this.mSpecialEffect = aSpecialEffect; - this.mRequiresFluidForFiltering = aRequiresFluidForFiltering; this.mRecipes = aRecipes; this.mSoundResourceLocation = aSound; } @@ -707,9 +549,8 @@ public class GT_MetaTileEntity_BasicMachine_GT_Recipe extends GT_MetaTileEntity_ this.mAmperage, this.mTextures, this.mSoundResourceLocation, - this.mSharedTank, - this.mRequiresFluidForFiltering, - this.mSpecialEffect).setProgressBarTexture(this.progressBarTexture); + this.mSpecialEffect).setProgressBarTexture(this.progressBarTexture) + .setRecipeCatalystPriority(this.recipeCatalystPriority); } public GT_MetaTileEntity_BasicMachine_GT_Recipe setProgressBarTexture(FallbackableUITexture progressBarTexture) { @@ -718,8 +559,7 @@ public class GT_MetaTileEntity_BasicMachine_GT_Recipe extends GT_MetaTileEntity_ } public GT_MetaTileEntity_BasicMachine_GT_Recipe setProgressBarTextureName(String name, UITexture fallback) { - return setProgressBarTexture( - new FallbackableUITexture(UITexture.fullImage(GregTech.ID, "gui/progressbar/" + name), fallback)); + return setProgressBarTexture(GT_UITextures.fallbackableProgressbar(name, fallback)); } public GT_MetaTileEntity_BasicMachine_GT_Recipe setProgressBarTextureName(String name) { @@ -735,9 +575,9 @@ public class GT_MetaTileEntity_BasicMachine_GT_Recipe extends GT_MetaTileEntity_ return false; } case 1 -> { - if (this.getFillableStack() == null) return !this.mRequiresFluidForFiltering && this.getRecipeList() + if (this.getFillableStack() == null) return this.getRecipeMap() .containsInput(aStack); - else return this.getRecipeList() + else return this.getRecipeMap() .findRecipe( this.getBaseMetaTileEntity(), this.mLastRecipe, @@ -750,25 +590,23 @@ public class GT_MetaTileEntity_BasicMachine_GT_Recipe extends GT_MetaTileEntity_ != null; } case 2 -> { - return (!this.mRequiresFluidForFiltering || this.getFillableStack() != null) - && (((this.getInputAt(0) != null && this.getInputAt(1) != null) - || (this.getInputAt(0) == null && this.getInputAt(1) == null ? this.getRecipeList() + return ((this.getInputAt(0) != null && this.getInputAt(1) != null) + || (this.getInputAt(0) == null && this.getInputAt(1) == null ? this.getRecipeMap() + .containsInput(aStack) + : (this.getRecipeMap() .containsInput(aStack) - : (this.getRecipeList() - .containsInput(aStack) - && this.getRecipeList() - .findRecipe( - this.getBaseMetaTileEntity(), - this.mLastRecipe, - true, - true, - V[this.mTier], - new FluidStack[] { this.getFillableStack() }, - this.getSpecialSlot(), - aIndex == this.getInputSlot() - ? appendSelectedCircuit(aStack, this.getInputAt(1)) - : appendSelectedCircuit(this.getInputAt(0), aStack)) - != null)))); + && this.getRecipeMap() + .findRecipe( + this.getBaseMetaTileEntity(), + this.mLastRecipe, + true, + true, + V[this.mTier], + new FluidStack[] { this.getFillableStack() }, + this.getSpecialSlot(), + aIndex == this.getInputSlot() ? appendSelectedCircuit(aStack, this.getInputAt(1)) + : appendSelectedCircuit(this.getInputAt(0), aStack)) + != null))); } default -> { int tID = this.getBaseMetaTileEntity() @@ -786,7 +624,7 @@ public class GT_MetaTileEntity_BasicMachine_GT_Recipe extends GT_MetaTileEntity_ .startsWith("circuit")) return true; } } - return this.getRecipeList() + return this.getRecipeMap() .containsInput(aStack); } } @@ -889,11 +727,21 @@ public class GT_MetaTileEntity_BasicMachine_GT_Recipe extends GT_MetaTileEntity_ } @Override - public GT_Recipe.GT_Recipe_Map getRecipeList() { + public RecipeMap<?> getRecipeMap() { return this.mRecipes; } @Override + public int getRecipeCatalystPriority() { + return recipeCatalystPriority; + } + + public GT_MetaTileEntity_BasicMachine_GT_Recipe setRecipeCatalystPriority(int recipeCatalystPriority) { + this.recipeCatalystPriority = recipeCatalystPriority; + return this; + } + + @Override public int getCapacity() { return this.mTankCapacity; } @@ -922,20 +770,10 @@ public class GT_MetaTileEntity_BasicMachine_GT_Recipe extends GT_MetaTileEntity_ } @Override - public FluidStack getFillableStack() { - return this.mSharedTank ? this.getDrainableStack() : super.getFillableStack(); - } - - @Override - public FluidStack setFillableStack(FluidStack aFluid) { - return this.mSharedTank ? this.setDrainableStack(aFluid) : super.setFillableStack(aFluid); - } - - @Override - protected ProgressBar createProgressBar(UITexture texture, int imageSize, ProgressBar.Direction direction, - Pos2d pos, Size size) { - return super.createProgressBar(texture, imageSize, direction, pos, size) - .setTexture(progressBarTexture.get(), mRecipes.getProgressBarImageSize()); + protected BasicUIProperties getUIProperties() { + return super.getUIProperties().toBuilder() + .progressBarTexture(progressBarTexture) + .build(); } public enum X { diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_Steel.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_Steel.java index eae713d28a..d6ae385430 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_Steel.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_Steel.java @@ -12,9 +12,9 @@ import gregtech.api.enums.Dyes; import gregtech.api.enums.SteamVariant; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.modularui.IGetTitleColor; +import gregtech.api.objects.overclockdescriber.OverclockDescriber; +import gregtech.api.objects.overclockdescriber.SteamOverclockDescriber; import gregtech.api.render.TextureFactory; -import gregtech.common.power.Power; -import gregtech.common.power.SteamPower; /** * NEVER INCLUDE THIS FILE IN YOUR MOD!!! @@ -36,8 +36,8 @@ public abstract class GT_MetaTileEntity_BasicMachine_Steel extends GT_MetaTileEn } @Override - public Power buildPower() { - return new SteamPower(mTier, 2, 1); + public OverclockDescriber createOverclockDescriber() { + return new SteamOverclockDescriber(SteamVariant.STEEL, 2, 1); } @Override diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_ExtendedPowerMultiBlockBase.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_ExtendedPowerMultiBlockBase.java index 85fb98cafd..6f351fb5ab 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_ExtendedPowerMultiBlockBase.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_ExtendedPowerMultiBlockBase.java @@ -20,6 +20,7 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.logic.ProcessingLogic; import gregtech.api.recipe.check.CheckRecipeResult; import gregtech.api.util.GT_ExoticEnergyInputHelper; +import gregtech.api.util.GT_OverclockCalculator; import gregtech.api.util.GT_Utility; /** @@ -54,29 +55,13 @@ public abstract class GT_MetaTileEntity_ExtendedPowerMultiBlockBase<T extends GT @Override protected void calculateOverclockedNessMultiInternal(long aEUt, int aDuration, int mAmperage, long maxInputVoltage, boolean perfectOC) { - // 5% space for cable loss - long zMaxInputVoltage = maxInputVoltage / 100L * 95L; - long zTime = aDuration; - long zEUt = aEUt; - while (zEUt < zMaxInputVoltage) { - zEUt = zEUt << 2; - zTime = zTime >> (perfectOC ? 2 : 1); - if (zTime <= 0) { - break; - } - } - if (zTime <= 0) { - zTime = 1; - } - if (zEUt > zMaxInputVoltage) { - zEUt = zEUt >> 2; - zTime = zTime << (perfectOC ? 2 : 1); - } - if (zTime > Integer.MAX_VALUE - 1) { - zTime = Integer.MAX_VALUE - 1; - } - this.lEUt = zEUt; - this.mMaxProgresstime = (int) zTime; + GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(aEUt) + .setEUt(maxInputVoltage * mAmperage) + .setDuration(aDuration) + .setDurationDecreasePerOC(perfectOC ? 2 : 1) + .calculate(); + lEUt = calculator.getConsumption(); + mMaxProgresstime = calculator.getDuration(); } @Override diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Input.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Input.java index b6eb19b5aa..18aef371b6 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Input.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Input.java @@ -14,13 +14,13 @@ import gregtech.api.gui.modularui.GT_UIInfos; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; +import gregtech.api.recipe.RecipeMap; import gregtech.api.render.TextureFactory; -import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import gregtech.api.util.GT_Utility; public class GT_MetaTileEntity_Hatch_Input extends GT_MetaTileEntity_Hatch { - public GT_Recipe_Map mRecipeMap = null; + public RecipeMap<?> mRecipeMap = null; public GT_MetaTileEntity_Hatch_Input(int aID, String aName, String aNameRegional, int aTier) { this( @@ -112,13 +112,15 @@ public class GT_MetaTileEntity_Hatch_Input extends GT_MetaTileEntity_Hatch { @Override public void saveNBTData(NBTTagCompound aNBT) { super.saveNBTData(aNBT); - if (mRecipeMap != null) aNBT.setString("recipeMap", mRecipeMap.mUniqueIdentifier); + if (mRecipeMap != null) { + aNBT.setString("recipeMap", mRecipeMap.unlocalizedName); + } } @Override public void loadNBTData(NBTTagCompound aNBT) { super.loadNBTData(aNBT); - mRecipeMap = GT_Recipe_Map.sIndexedMappings.getOrDefault(aNBT.getString("recipeMap"), null); + mRecipeMap = RecipeMap.getFromOldIdentifier(aNBT.getString("recipeMap")); } @Override diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java index 5769cd82c2..f4c4eb6a14 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java @@ -30,23 +30,22 @@ import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.modularui.IAddUIWidgets; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; +import gregtech.api.recipe.RecipeMap; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_ClientPreference; import gregtech.api.util.GT_OreDictUnificator; -import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import gregtech.api.util.GT_TooltipDataCache; import gregtech.api.util.GT_Utility; import gregtech.api.util.extensions.ArrayExt; -import gregtech.common.tileentities.machines.IRecipeProcessingAwareHatch; public class GT_MetaTileEntity_Hatch_InputBus extends GT_MetaTileEntity_Hatch - implements IConfigurationCircuitSupport, IAddUIWidgets, IRecipeProcessingAwareHatch { + implements IConfigurationCircuitSupport, IAddUIWidgets { private static final String SORTING_MODE_TOOLTIP = "GT5U.machines.sorting_mode.tooltip"; private static final String ONE_STACK_LIMIT_TOOLTIP = "GT5U.machines.one_stack_limit.tooltip"; private static final int BUTTON_SIZE = 18; - public GT_Recipe_Map mRecipeMap = null; + public RecipeMap<?> mRecipeMap = null; public boolean disableSort; public boolean disableFilter = true; public boolean disableLimited = true; @@ -204,7 +203,9 @@ public class GT_MetaTileEntity_Hatch_InputBus extends GT_MetaTileEntity_Hatch aNBT.setBoolean("disableSort", disableSort); aNBT.setBoolean("disableFilter", disableFilter); aNBT.setBoolean("disableLimited", disableLimited); - if (mRecipeMap != null) aNBT.setString("recipeMap", mRecipeMap.mUniqueIdentifier); + if (mRecipeMap != null) { + aNBT.setString("recipeMap", mRecipeMap.unlocalizedName); + } } @Override @@ -212,8 +213,10 @@ public class GT_MetaTileEntity_Hatch_InputBus extends GT_MetaTileEntity_Hatch super.loadNBTData(aNBT); disableSort = aNBT.getBoolean("disableSort"); disableFilter = aNBT.getBoolean("disableFilter"); - if (aNBT.hasKey("disableLimited")) disableLimited = aNBT.getBoolean("disableLimited"); - mRecipeMap = GT_Recipe_Map.sIndexedMappings.getOrDefault(aNBT.getString("recipeMap"), null); + if (aNBT.hasKey("disableLimited")) { + disableLimited = aNBT.getBoolean("disableLimited"); + } + mRecipeMap = RecipeMap.getFromOldIdentifier(aNBT.getString("recipeMap")); } @Override diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java index 767695658c..d2d3c347a0 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java @@ -72,15 +72,16 @@ import gregtech.api.items.GT_MetaGenerated_Tool; import gregtech.api.logic.ProcessingLogic; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.objects.GT_ItemStack; +import gregtech.api.recipe.RecipeMap; import gregtech.api.recipe.check.CheckRecipeResult; import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.recipe.check.SingleRecipeCheck; import gregtech.api.util.GT_ClientPreference; import gregtech.api.util.GT_ExoticEnergyInputHelper; import gregtech.api.util.GT_Log; +import gregtech.api.util.GT_OverclockCalculator; import gregtech.api.util.GT_ParallelHelper; 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.GT_Waila; import gregtech.api.util.OutputHatchWrapper; @@ -785,9 +786,13 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity IDualInputInventory slot = it.next(); processingLogic.setInputItems(slot.getItemInputs()); processingLogic.setInputFluids(slot.getFluidInputs()); - result = processingLogic.process(); - if (result.wasSuccessful()) { - return result; + CheckRecipeResult foundResult = processingLogic.process(); + if (foundResult.wasSuccessful()) { + return foundResult; + } + if (foundResult != CheckRecipeResultRegistry.NO_RECIPE) { + // Recipe failed in interesting way, so remember that and continue searching + result = foundResult; } } } @@ -808,9 +813,13 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity inputItems.add(getControllerSlot()); } processingLogic.setInputItems(inputItems.toArray(new ItemStack[0])); - result = processingLogic.process(); - if (result.wasSuccessful()) { - return result; + CheckRecipeResult foundResult = processingLogic.process(); + if (foundResult.wasSuccessful()) { + return foundResult; + } + if (foundResult != CheckRecipeResultRegistry.NO_RECIPE) { + // Recipe failed in interesting way, so remember that and continue searching + result = foundResult; } } } else { @@ -819,7 +828,14 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity inputItems.add(getControllerSlot()); } processingLogic.setInputItems(inputItems); - result = processingLogic.process(); + CheckRecipeResult foundResult = processingLogic.process(); + if (foundResult.wasSuccessful()) { + return foundResult; + } + if (foundResult != CheckRecipeResultRegistry.NO_RECIPE) { + // Recipe failed in interesting way, so remember that + result = foundResult; + } } return result; } @@ -1119,50 +1135,13 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity */ protected void calculateOverclockedNessMultiInternal(long aEUt, int aDuration, int mAmperage, long maxInputVoltage, boolean perfectOC) { - byte mTier = (byte) Math.max(0, GT_Utility.getTier(maxInputVoltage)); - if (mTier == 0) { - // Long time calculation - long xMaxProgresstime = ((long) aDuration) << 1; - if (xMaxProgresstime > Integer.MAX_VALUE - 1) { - // make impossible if too long - mEUt = Integer.MAX_VALUE - 1; - mMaxProgresstime = Integer.MAX_VALUE - 1; - } else { - mEUt = GT_Utility.safeInt(aEUt >> 2); - mMaxProgresstime = (int) xMaxProgresstime; - } - } else { - // Long EUt calculation - long xEUt = aEUt; - // Isnt too low EUt check? - long tempEUt = Math.max(xEUt, V[1]); - - mMaxProgresstime = aDuration; - - final int ocTimeShift = perfectOC ? 2 : 1; - - while (tempEUt <= V[mTier - 1] * mAmperage) { - tempEUt <<= 2; // this actually controls overclocking - // xEUt *= 4;//this is effect of everclocking - int oldTime = mMaxProgresstime; - mMaxProgresstime >>= ocTimeShift; // this is effect of overclocking - if (mMaxProgresstime < 1) { - if (oldTime == 1) break; - xEUt *= (long) oldTime * (perfectOC ? 1 : 2); - break; - } else { - xEUt <<= 2; - } - } - if (xEUt > Integer.MAX_VALUE - 1) { - mEUt = Integer.MAX_VALUE - 1; - mMaxProgresstime = Integer.MAX_VALUE - 1; - } else { - mEUt = (int) xEUt; - if (mEUt == 0) mEUt = 1; - if (mMaxProgresstime == 0) mMaxProgresstime = 1; // set time to 1 tick - } - } + GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(aEUt) + .setEUt(maxInputVoltage * mAmperage) + .setDuration(aDuration) + .setDurationDecreasePerOC(perfectOC ? 2 : 1) + .calculate(); + mEUt = (int) calculator.getConsumption(); + mMaxProgresstime = calculator.getDuration(); } @Deprecated @@ -1234,7 +1213,7 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity public boolean depleteInput(FluidStack aLiquid, boolean simulate) { if (aLiquid == null) return false; for (GT_MetaTileEntity_Hatch_Input tHatch : filterValidMTEs(mInputHatches)) { - tHatch.mRecipeMap = getRecipeMap(); + setHatchRecipeMap(tHatch); FluidStack tLiquid = tHatch.drain(ForgeDirection.UNKNOWN, aLiquid, false); if (tLiquid != null && tLiquid.amount >= aLiquid.amount) { if (simulate) { @@ -1274,7 +1253,7 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity FluidStack aLiquid = GT_Utility.getFluidForFilledItem(aStack, true); if (aLiquid != null) return depleteInput(aLiquid); for (GT_MetaTileEntity_Hatch_Input tHatch : filterValidMTEs(mInputHatches)) { - tHatch.mRecipeMap = getRecipeMap(); + setHatchRecipeMap(tHatch); if (GT_Utility.areStacksEqual( aStack, tHatch.getBaseMetaTileEntity() @@ -1336,7 +1315,7 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity ArrayList<FluidStack> rList = new ArrayList<>(); for (GT_MetaTileEntity_Hatch_Input tHatch : filterValidMTEs(mInputHatches)) { - tHatch.mRecipeMap = getRecipeMap(); + setHatchRecipeMap(tHatch); if (tHatch instanceof GT_MetaTileEntity_Hatch_MultiInput) { for (FluidStack tFluid : ((GT_MetaTileEntity_Hatch_MultiInput) tHatch).getStoredFluid()) { if (tFluid != null) { @@ -1393,7 +1372,7 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity } @Override - public GT_Recipe_Map getRecipeMap() { + public RecipeMap<?> getRecipeMap() { return null; } @@ -1414,7 +1393,9 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity protected void startRecipeProcessing() { for (GT_MetaTileEntity_Hatch_InputBus hatch : filterValidMTEs(mInputBusses)) { - hatch.startRecipeProcessing(); + if (hatch instanceof IRecipeProcessingAwareHatch aware) { + aware.startRecipeProcessing(); + } } for (GT_MetaTileEntity_Hatch_Input hatch : filterValidMTEs(mInputHatches)) { if (hatch instanceof IRecipeProcessingAwareHatch aware) { @@ -1431,7 +1412,9 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity }; for (GT_MetaTileEntity_Hatch_InputBus hatch : filterValidMTEs(mInputBusses)) { - setResultIfFailure.accept(hatch.endRecipeProcessing(this)); + if (hatch instanceof IRecipeProcessingAwareHatch aware) { + setResultIfFailure.accept(aware.endRecipeProcessing(this)); + } } for (GT_MetaTileEntity_Hatch_Input hatch : filterValidMTEs(mInputHatches)) { if (hatch instanceof IRecipeProcessingAwareHatch aware) { @@ -1453,7 +1436,7 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity return mDualInputHatches.add(hatch); } if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Input) { - ((GT_MetaTileEntity_Hatch_Input) aMetaTileEntity).mRecipeMap = getRecipeMap(); + setHatchRecipeMap((GT_MetaTileEntity_Hatch_Input) aMetaTileEntity); return mInputHatches.add((GT_MetaTileEntity_Hatch_Input) aMetaTileEntity); } if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_InputBus) { @@ -1587,7 +1570,7 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Input hatch) { hatch.updateTexture(aBaseCasingIndex); hatch.updateCraftingIcon(this.getMachineCraftingIcon()); - hatch.mRecipeMap = getRecipeMap(); + setHatchRecipeMap(hatch); return mInputHatches.add(hatch); } return false; @@ -1605,6 +1588,10 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity return false; } + protected void setHatchRecipeMap(GT_MetaTileEntity_Hatch_Input hatch) { + hatch.mRecipeMap = getRecipeMap(); + } + @Override public String[] getInfoData() { int mPollutionReduction = 0; diff --git a/src/main/java/gregtech/api/multitileentity/multiblock/base/Controller.java b/src/main/java/gregtech/api/multitileentity/multiblock/base/Controller.java index 24c057251e..00201171a8 100644 --- a/src/main/java/gregtech/api/multitileentity/multiblock/base/Controller.java +++ b/src/main/java/gregtech/api/multitileentity/multiblock/base/Controller.java @@ -209,10 +209,10 @@ import gregtech.api.multitileentity.machine.MultiTileBasicMachine; import gregtech.api.multitileentity.multiblock.casing.FunctionalCasing; import gregtech.api.multitileentity.multiblock.casing.UpgradeCasing; import gregtech.api.objects.GT_ItemStack; +import gregtech.api.recipe.RecipeMap; import gregtech.api.recipe.check.CheckRecipeResult; import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; -import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; import gregtech.api.util.GT_Waila; import gregtech.common.tileentities.casings.upgrade.Inventory; @@ -2184,7 +2184,7 @@ public abstract class Controller<T extends Controller<T>> extends MultiTileBasic } @Override - public GT_Recipe.GT_Recipe_Map getRecipeMap() { + public RecipeMap<?> getRecipeMap() { return null; } diff --git a/src/main/java/gregtech/api/objects/overclockdescriber/EUNoOverclockDescriber.java b/src/main/java/gregtech/api/objects/overclockdescriber/EUNoOverclockDescriber.java new file mode 100644 index 0000000000..1e29e2d812 --- /dev/null +++ b/src/main/java/gregtech/api/objects/overclockdescriber/EUNoOverclockDescriber.java @@ -0,0 +1,110 @@ +package gregtech.api.objects.overclockdescriber; + +import static gregtech.api.util.GT_Utility.trans; + +import javax.annotation.ParametersAreNonnullByDefault; + +import gregtech.api.util.GT_OverclockCalculator; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_Utility; +import gregtech.api.util.MethodsReturnNonnullByDefault; +import gregtech.nei.RecipeDisplayInfo; + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +public class EUNoOverclockDescriber extends OverclockDescriber { + + /** + * Amperage of the recipemap. + */ + protected final int amperage; + + public EUNoOverclockDescriber(byte tier, int amperage) { + super(tier); + if (amperage < 1) { + throw new IllegalArgumentException("Amperage cannot be lower than 1"); + } + this.amperage = amperage; + } + + @Override + public GT_OverclockCalculator createCalculator(GT_OverclockCalculator template, GT_Recipe recipe) { + return GT_OverclockCalculator.ofNoOverclock(recipe); + } + + @Override + public String getTierString() { + return GT_Utility.getColoredTierNameFromTier(tier); + } + + @Override + public final void drawEnergyInfo(RecipeDisplayInfo recipeInfo) { + if (recipeInfo.calculator.getDuration() > 0 && recipeInfo.calculator.getConsumption() > 0) { + recipeInfo.drawText(trans("152", "Total: ") + getTotalPowerString(recipeInfo.calculator)); + } + drawEnergyInfoImpl(recipeInfo); + } + + /** + * Override this to draw custom info about the energy this object can handle on NEI recipe GUI, minus total + * power usage. + */ + protected void drawEnergyInfoImpl(RecipeDisplayInfo recipeInfo) { + if (recipeInfo.calculator.getConsumption() <= 0) { + return; + } + recipeInfo.drawText(trans("153", "Usage: ") + getEUtDisplay(recipeInfo.calculator)); + if (shouldShowAmperage(recipeInfo.calculator)) { + recipeInfo.drawText(trans("154", "Voltage: ") + getVoltageString(recipeInfo.calculator)); + recipeInfo.drawText(trans("155", "Amperage: ") + getAmperageString(recipeInfo.calculator)); + } + } + + protected String getTotalPowerString(GT_OverclockCalculator calculator) { + return GT_Utility.formatNumbers(calculator.getConsumption() * calculator.getDuration()) + " EU"; + } + + /** + * @return If amperage should be shown on NEI. + */ + protected boolean shouldShowAmperage(GT_OverclockCalculator calculator) { + return amperage != 1; + } + + /** + * @return Whole EU/t usage, without tier display. + */ + protected String getEUtWithoutTier(GT_OverclockCalculator calculator) { + return GT_Utility.formatNumbers(calculator.getConsumption()) + " EU/t"; + } + + /** + * @return Whole EU/t usage, with tier display. + */ + protected String getEUtWithTier(GT_OverclockCalculator calculator) { + return getEUtWithoutTier(calculator) + GT_Utility.getTierNameWithParentheses(calculator.getConsumption()); + } + + /** + * @return Whole EU/t usage. Also displays voltage tier if it should be shown. + */ + protected String getEUtDisplay(GT_OverclockCalculator calculator) { + return shouldShowAmperage(calculator) ? getEUtWithoutTier(calculator) : getEUtWithTier(calculator); + } + + /** + * @return EU/t usage, divided by amperage. With tier display. + */ + protected String getVoltageString(GT_OverclockCalculator calculator) { + long voltage = computeVoltageForEURate(calculator.getConsumption()); + return GT_Utility.formatNumbers(voltage) + " EU/t" + GT_Utility.getTierNameWithParentheses(voltage); + } + + protected String getAmperageString(GT_OverclockCalculator calculator) { + return GT_Utility.formatNumbers(amperage); + } + + protected long computeVoltageForEURate(long euPerTick) { + return euPerTick / amperage; + } +} diff --git a/src/main/java/gregtech/api/objects/overclockdescriber/EUOverclockDescriber.java b/src/main/java/gregtech/api/objects/overclockdescriber/EUOverclockDescriber.java new file mode 100644 index 0000000000..9d53711515 --- /dev/null +++ b/src/main/java/gregtech/api/objects/overclockdescriber/EUOverclockDescriber.java @@ -0,0 +1,80 @@ +package gregtech.api.objects.overclockdescriber; + +import static gregtech.api.enums.GT_Values.V; +import static gregtech.api.util.GT_Utility.trans; + +import javax.annotation.ParametersAreNonnullByDefault; + +import com.google.common.primitives.Ints; + +import gregtech.GT_Mod; +import gregtech.api.util.GT_OverclockCalculator; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_Utility; +import gregtech.api.util.MethodsReturnNonnullByDefault; +import gregtech.nei.RecipeDisplayInfo; + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +public class EUOverclockDescriber extends EUNoOverclockDescriber { + + public EUOverclockDescriber(byte tier, int amperage) { + super(tier, amperage); + } + + @Override + public GT_OverclockCalculator createCalculator(GT_OverclockCalculator template, GT_Recipe recipe) { + return template.setEUt(Ints.saturatedCast(V[tier] * amperage)); + } + + @Override + protected void drawEnergyInfoImpl(RecipeDisplayInfo recipeInfo) { + if (!wasOverclocked(recipeInfo.calculator)) { + super.drawEnergyInfoImpl(recipeInfo); + return; + } + + recipeInfo.drawText(trans("153", "Usage: ") + getEUtDisplay(recipeInfo.calculator)); + if (shouldShowAmperage(recipeInfo.calculator)) { + recipeInfo.drawText(trans("154", "Voltage: ") + getVoltageString(recipeInfo.calculator)); + } + if (GT_Mod.gregtechproxy.mNEIOriginalVoltage) { + EUNoOverclockDescriber originalPower = new EUNoOverclockDescriber(tier, amperage); + GT_OverclockCalculator originalPowerCalculator = GT_OverclockCalculator.ofNoOverclock(recipeInfo.recipe) + .calculate(); + recipeInfo + .drawText(trans("275", "Original usage: ") + originalPower.getEUtDisplay(originalPowerCalculator)); + } + if (shouldShowAmperage(recipeInfo.calculator)) { + recipeInfo.drawText(trans("155", "Amperage: ") + getAmperageString(recipeInfo.calculator)); + } + } + + @Override + protected String getEUtWithoutTier(GT_OverclockCalculator calculator) { + return decorateWithOverclockLabel(super.getEUtWithoutTier(calculator), calculator); + } + + @Override + protected String getEUtWithTier(GT_OverclockCalculator calculator) { + return this.getEUtWithoutTier(calculator) + GT_Utility.getTierNameWithParentheses(calculator.getConsumption()); + } + + @Override + protected String getVoltageString(GT_OverclockCalculator calculator) { + long voltage = computeVoltageForEURate(calculator.getConsumption()); + return decorateWithOverclockLabel(GT_Utility.formatNumbers(voltage) + " EU/t", calculator) + + GT_Utility.getTierNameWithParentheses(voltage); + } + + protected String decorateWithOverclockLabel(String s, GT_OverclockCalculator calculator) { + if (wasOverclocked(calculator)) { + s += " (OC)"; + } + return s; + } + + protected boolean wasOverclocked(GT_OverclockCalculator calculator) { + return calculator.getPerformedOverclocks() > 0; + } +} diff --git a/src/main/java/gregtech/api/objects/overclockdescriber/FusionOverclockDescriber.java b/src/main/java/gregtech/api/objects/overclockdescriber/FusionOverclockDescriber.java new file mode 100644 index 0000000000..43ce1c8760 --- /dev/null +++ b/src/main/java/gregtech/api/objects/overclockdescriber/FusionOverclockDescriber.java @@ -0,0 +1,69 @@ +package gregtech.api.objects.overclockdescriber; + +import javax.annotation.ParametersAreNonnullByDefault; + +import net.minecraft.util.EnumChatFormatting; + +import gregtech.api.enums.GT_Values; +import gregtech.api.util.GT_OverclockCalculator; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_Utility; +import gregtech.api.util.MethodsReturnNonnullByDefault; + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +public class FusionOverclockDescriber extends EUOverclockDescriber { + + protected final long capableStartup; + + public FusionOverclockDescriber(byte energyTier, long capableStartup) { + super(energyTier, 1); + this.capableStartup = capableStartup; + } + + @Override + public GT_OverclockCalculator createCalculator(GT_OverclockCalculator template, GT_Recipe recipe) { + return super.createCalculator(template, recipe).limitOverclockCount(overclock(recipe.mSpecialValue)) + .setEUtIncreasePerOC(getEUtIncreasePerOC()) + .setDurationDecreasePerOC(getDurationDecreasePerOC()); + } + + protected int getEUtIncreasePerOC() { + return 1; + } + + protected int getDurationDecreasePerOC() { + return 1; + } + + @Override + public String getTierString() { + return GT_Values.TIER_COLORS[tier] + "MK " + getFusionTier() + EnumChatFormatting.RESET; + } + + @Override + public boolean canHandle(GT_Recipe recipe) { + byte tier = GT_Utility.getTier(recipe.mEUt); + if (this.tier < tier) { + return false; + } + return this.capableStartup >= recipe.mSpecialValue; + } + + protected int overclock(int startEnergy) { + return switch (getFusionTier()) { + case 1 -> 0; + case 2 -> (startEnergy <= 160000000) ? 1 : 0; + case 3 -> (startEnergy <= 160000000) ? 2 : ((startEnergy <= 320000000) ? 1 : 0); + case 4 -> (startEnergy <= 160000000) ? 3 + : (startEnergy <= 320000000) ? 2 : (startEnergy <= 640000000) ? 1 : 0; + case 5 -> (startEnergy <= 160000000) ? 4 + : (startEnergy <= 320000000) ? 3 : (startEnergy <= 640000000) ? 2 : (startEnergy <= 1280000000) ? 1 : 0; + default -> throw new IllegalStateException("Unexpected fusion tier: " + getFusionTier()); + }; + } + + protected int getFusionTier() { + return this.tier - 5; // Mk1 <-> LuV + } +} diff --git a/src/main/java/gregtech/api/objects/overclockdescriber/OverclockDescriber.java b/src/main/java/gregtech/api/objects/overclockdescriber/OverclockDescriber.java new file mode 100644 index 0000000000..0b253c95fa --- /dev/null +++ b/src/main/java/gregtech/api/objects/overclockdescriber/OverclockDescriber.java @@ -0,0 +1,106 @@ +package gregtech.api.objects.overclockdescriber; + +import static gregtech.api.util.GT_Utility.trans; + +import javax.annotation.ParametersAreNonnullByDefault; + +import gregtech.GT_Mod; +import gregtech.api.util.GT_OverclockCalculator; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_Utility; +import gregtech.api.util.MethodsReturnNonnullByDefault; +import gregtech.nei.RecipeDisplayInfo; + +/** + * Provides an overclock behavior that will run on machines with the ability to draw information about it on NEI. + * <p> + * Implement {@link gregtech.api.interfaces.tileentity.IOverclockDescriptionProvider} for corresponding machine to use + * derivative of this class when looking up NEI recipe catalyst. + */ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +public abstract class OverclockDescriber { + + /** + * Tier of the (maybe virtual) machine this object belongs to. + */ + protected final byte tier; + + public OverclockDescriber(byte tier) { + this.tier = tier; + } + + /** + * @return Tier of this object. Used to limit recipes shown on NEI, based on recipe EU/t. + */ + public final byte getTier() { + return tier; + } + + /** + * @return Tier display of this object, shown on NEI header in a form of {@code Machine Name (tier)} + */ + public abstract String getTierString(); + + /** + * Creates overclock calculator from given template. This template should be used instead of building from the + * ground to avoid issues coming from different caller using different templates, but it's not applicable when using + * {@link GT_OverclockCalculator#ofNoOverclock(GT_Recipe)}. + * + * @param template Calculator that can be used as template. Recipe EU/t and duration are already set. + * @param recipe Recipe to calculate. + */ + public abstract GT_OverclockCalculator createCalculator(GT_OverclockCalculator template, GT_Recipe recipe); + + /** + * Draws info about the energy this object can handle on NEI recipe GUI. + */ + public abstract void drawEnergyInfo(RecipeDisplayInfo recipeInfo); + + public void drawDurationInfo(RecipeDisplayInfo recipeInfo) { + if (getDurationTicks(recipeInfo.calculator) <= 0) return; + + String textToDraw = trans("158", "Time: "); + if (GT_Mod.gregtechproxy.mNEIRecipeSecondMode) { + textToDraw += getDurationStringSeconds(recipeInfo.calculator); + if (getDurationSeconds(recipeInfo.calculator) <= 1.0d) { + textToDraw += String.format(" (%s)", getDurationStringTicks(recipeInfo.calculator)); + } + } else { + textToDraw += getDurationStringTicks(recipeInfo.calculator); + } + recipeInfo.drawText(textToDraw); + } + + /** + * Used to limit the shown recipes when searching recipes with NEI recipe catalyst. Unless overridden, this method + * doesn't do anything special (except for a bit worse performance). + * <p> + * In order to make use of this method, {@link gregtech.api.recipe.RecipeMapBuilder#useCustomFilterForNEI} + * should be enabled for the recipemap. + * + * @return If this object can handle the supplied recipe + */ + public boolean canHandle(GT_Recipe recipe) { + byte tier = GT_Utility.getTier(recipe.mEUt); + return this.tier >= tier; + } + + private int getDurationTicks(GT_OverclockCalculator calculator) { + return calculator.getDuration(); + } + + private double getDurationSeconds(GT_OverclockCalculator calculator) { + return 0.05d * getDurationTicks(calculator); + } + + private String getDurationStringSeconds(GT_OverclockCalculator calculator) { + return GT_Utility.formatNumbers(getDurationSeconds(calculator)) + GT_Utility.trans("161", " secs"); + } + + private String getDurationStringTicks(GT_OverclockCalculator calculator) { + String ticksString = getDurationTicks(calculator) == 1 ? GT_Utility.trans("209.1", " tick") + : GT_Utility.trans("209", " ticks"); + return GT_Utility.formatNumbers(getDurationTicks(calculator)) + ticksString; + } +} diff --git a/src/main/java/gregtech/api/objects/overclockdescriber/SteamOverclockDescriber.java b/src/main/java/gregtech/api/objects/overclockdescriber/SteamOverclockDescriber.java new file mode 100644 index 0000000000..5da64d4028 --- /dev/null +++ b/src/main/java/gregtech/api/objects/overclockdescriber/SteamOverclockDescriber.java @@ -0,0 +1,64 @@ +package gregtech.api.objects.overclockdescriber; + +import static gregtech.api.util.GT_Utility.trans; + +import javax.annotation.ParametersAreNonnullByDefault; + +import net.minecraft.util.StatCollector; + +import gregtech.api.enums.SteamVariant; +import gregtech.api.util.GT_OverclockCalculator; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_Utility; +import gregtech.api.util.MethodsReturnNonnullByDefault; +import gregtech.nei.RecipeDisplayInfo; + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +public class SteamOverclockDescriber extends OverclockDescriber { + + private final SteamVariant steamVariant; + private final int euPerTickMultiplier; + private final int durationMultiplier; + + public SteamOverclockDescriber(SteamVariant steamVariant, int euPerTickMultiplier, int durationMultiplier) { + super((byte) 1); // recipe tier is always LV + this.steamVariant = steamVariant; + this.euPerTickMultiplier = euPerTickMultiplier; + this.durationMultiplier = durationMultiplier; + } + + @Override + public String getTierString() { + return StatCollector.translateToLocal("GT5U.steam_variant." + steamVariant.toString()); + } + + @Override + public GT_OverclockCalculator createCalculator(GT_OverclockCalculator template, GT_Recipe recipe) { + return GT_OverclockCalculator.ofNoOverclock(recipe) + .setEUtDiscount(euPerTickMultiplier) + .setSpeedBoost(durationMultiplier); + } + + @Override + public void drawEnergyInfo(RecipeDisplayInfo recipeInfo) { + if (recipeInfo.calculator.getConsumption() <= 0) return; + + recipeInfo.drawText(trans("152", "Total: ") + getTotalPowerString(recipeInfo.calculator)); + recipeInfo.drawText(trans("153", "Usage: ") + getSteamUsageString(recipeInfo.calculator)); + } + + private String getTotalPowerString(GT_OverclockCalculator calculator) { + return GT_Utility.formatNumbers(convertEUToSteam(calculator.getConsumption() * calculator.getDuration())) + + " Steam"; + } + + private String getSteamUsageString(GT_OverclockCalculator calculator) { + return GT_Utility.formatNumbers(20 * convertEUToSteam(calculator.getConsumption())) + " L/s Steam"; + } + + private static long convertEUToSteam(long eu) { + // 2L normal steam == 1EU + return 2 * eu; + } +} diff --git a/src/main/java/gregtech/api/recipe/BasicUIProperties.java b/src/main/java/gregtech/api/recipe/BasicUIProperties.java new file mode 100644 index 0000000000..fde86785b2 --- /dev/null +++ b/src/main/java/gregtech/api/recipe/BasicUIProperties.java @@ -0,0 +1,251 @@ +package gregtech.api.recipe; + +import java.awt.Rectangle; +import java.util.List; +import java.util.function.IntFunction; +import java.util.function.Supplier; + +import javax.annotation.Nullable; +import javax.annotation.ParametersAreNonnullByDefault; + +import org.apache.commons.lang3.tuple.Pair; + +import com.gtnewhorizons.modularui.api.drawable.FallbackableUITexture; +import com.gtnewhorizons.modularui.api.drawable.IDrawable; +import com.gtnewhorizons.modularui.api.math.Pos2d; +import com.gtnewhorizons.modularui.api.math.Size; +import com.gtnewhorizons.modularui.common.widget.ProgressBar; + +import gregtech.api.gui.modularui.FallbackableSteamTexture; +import gregtech.api.gui.modularui.SteamTexture; +import gregtech.api.util.FieldsAreNonnullByDefault; +import gregtech.api.util.MethodsReturnNonnullByDefault; + +/** + * Data object to store properties, used to draw both basic machine GUI and NEI recipe GUI, mainly GUI widgets. + * Not all the info used to draw NEI are listed here, see also {@link NEIRecipeProperties}. + * <p> + * Use {@link #builder()} for creation. + */ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +@FieldsAreNonnullByDefault +public final class BasicUIProperties { + + /** + * Starts constructing BasicUIProperties. + */ + public static BasicUIPropertiesBuilder builder() { + return new BasicUIPropertiesBuilder(); + } + + /** + * Creates new builder from this instance. + */ + public BasicUIPropertiesBuilder toBuilder() { + return new BasicUIPropertiesBuilder().maxItemInputs(maxItemInputs) + .maxItemOutputs(maxItemOutputs) + .maxFluidInputs(maxFluidInputs) + .maxFluidOutputs(maxFluidOutputs) + .slotOverlays(slotOverlays) + .slotOverlaysSteam(slotOverlaysSteam) + .progressBarTexture(progressBarTexture) + .progressBarTextureSteam(progressBarTextureSteam) + .progressBarDirection(progressBarDirection) + .progressBarSize(progressBarSize) + .progressBarPos(progressBarPos) + .useProgressBar(useProgressBar) + .useSpecialSlot(useSpecialSlot) + .neiTransferRect(neiTransferRect) + .neiTransferRectId(neiTransferRectId) + .specialTextures(specialTextures) + .specialTexturesSteam(specialTexturesSteam) + .logo(logo) + .logoSize(logoSize) + .logoPos(logoPos) + .itemInputPositionsGetter(itemInputPositionsGetter) + .itemOutputPositionsGetter(itemOutputPositionsGetter) + .specialItemPositionGetter(specialItemPositionGetter) + .fluidInputPositionsGetter(fluidInputPositionsGetter) + .fluidOutputPositionsGetter(fluidOutputPositionsGetter) + .amperage(amperage); + } + + /** + * How many item inputs does this recipemap usually has at most. + * It does not actually restrict number of items used in the recipe. + */ + public final int maxItemInputs; + /** + * How many item outputs does this recipemap usually has at most. + * It does not actually restrict number of items used in the recipe. + */ + public final int maxItemOutputs; + /** + * How many fluid inputs does this recipemap usually has at most. + * It does not actually restrict number of items used in the recipe. + */ + public final int maxFluidInputs; + /** + * How many fluid outputs does this recipemap usually has at most. + * It does not actually restrict number of items used in the recipe. + */ + public final int maxFluidOutputs; + + private final SlotOverlayGetter<IDrawable> slotOverlays; + private final SlotOverlayGetter<SteamTexture> slotOverlaysSteam; + + /** + * Progressbar used for BasicMachine GUI and NEI. + */ + @Nullable + public final FallbackableUITexture progressBarTexture; + /** + * Progressbar used for steam machine GUI. + */ + @Nullable + public final FallbackableSteamTexture progressBarTextureSteam; + /** + * Direction of progressbar animation. + */ + public final ProgressBar.Direction progressBarDirection; + /** + * Size of the progressbar. (20, 36) by default. + */ + public final Size progressBarSize; + /** + * Position of the progressbar. (78, 24) by default. + */ + public final Pos2d progressBarPos; + /** + * Image size in the direction of progressbar. Used for non-smooth rendering. + */ + public final int progressBarImageSize; + + /** + * If progressbar should be added. + */ + public final boolean useProgressBar; + + /** + * If special slot has its usage for this GUI. + */ + public final boolean useSpecialSlot; + + /** + * GUI area where clicking shows up all the recipes available. + */ + public final List<Rectangle> neiTransferRect; + /** + * ID used to open NEI recipe GUI when progressbar is clicked. + */ + @Nullable + public final String neiTransferRectId; + + /** + * Additional textures shown on GUI. + */ + public final List<Pair<IDrawable, Pair<Size, Pos2d>>> specialTextures; + /** + * Additional textures shown on steam machine GUI. + */ + public final List<Pair<SteamTexture, Pair<Size, Pos2d>>> specialTexturesSteam; + + /** + * Logo shown on GUI. GregTech logo by default. + */ + public final IDrawable logo; + /** + * Size of logo. (17, 17) by default. + */ + public final Size logoSize; + /** + * Position of logo. (152, 63) by default. + */ + public final Pos2d logoPos; + + public final IntFunction<List<Pos2d>> itemInputPositionsGetter; + public final IntFunction<List<Pos2d>> itemOutputPositionsGetter; + public final Supplier<Pos2d> specialItemPositionGetter; + public final IntFunction<List<Pos2d>> fluidInputPositionsGetter; + public final IntFunction<List<Pos2d>> fluidOutputPositionsGetter; + + /** + * Amperage for the recipemap. Even though this is placed at frontend because backend logic doesn't need it, + * some machine logic also use this variable. + */ + public final int amperage; + + BasicUIProperties(int maxItemInputs, int maxItemOutputs, int maxFluidInputs, int maxFluidOutputs, + SlotOverlayGetter<IDrawable> slotOverlays, SlotOverlayGetter<SteamTexture> slotOverlaysSteam, + @Nullable FallbackableUITexture progressBarTexture, @Nullable FallbackableSteamTexture progressBarTextureSteam, + ProgressBar.Direction progressBarDirection, Size progressBarSize, Pos2d progressBarPos, boolean useProgressBar, + boolean useSpecialSlot, List<Rectangle> neiTransferRect, @Nullable String neiTransferRectId, + List<Pair<IDrawable, Pair<Size, Pos2d>>> specialTextures, + List<Pair<SteamTexture, Pair<Size, Pos2d>>> specialTexturesSteam, IDrawable logo, Size logoSize, Pos2d logoPos, + IntFunction<List<Pos2d>> itemInputPositionsGetter, IntFunction<List<Pos2d>> itemOutputPositionsGetter, + Supplier<Pos2d> specialItemPositionGetter, IntFunction<List<Pos2d>> fluidInputPositionsGetter, + IntFunction<List<Pos2d>> fluidOutputPositionsGetter, int amperage) { + if (maxItemInputs < 0 || maxItemOutputs < 0 || maxFluidInputs < 0 || maxFluidOutputs < 0) { + throw new IllegalArgumentException( + "maxItemInputs, maxItemOutputs, maxFluidInputs and maxFluidOutputs cannot be negative"); + } + if (amperage < 1) { + throw new IllegalArgumentException("Amperage cannot be lower than 1"); + } + this.maxItemInputs = maxItemInputs; + this.maxItemOutputs = maxItemOutputs; + this.maxFluidInputs = maxFluidInputs; + this.maxFluidOutputs = maxFluidOutputs; + this.slotOverlays = slotOverlays; + this.slotOverlaysSteam = slotOverlaysSteam; + this.progressBarTexture = progressBarTexture; + this.progressBarTextureSteam = progressBarTextureSteam; + this.progressBarDirection = progressBarDirection; + this.progressBarSize = progressBarSize; + this.progressBarPos = progressBarPos; + this.useProgressBar = useProgressBar; + this.useSpecialSlot = useSpecialSlot; + this.neiTransferRect = neiTransferRect; + this.neiTransferRectId = neiTransferRectId; + this.specialTextures = specialTextures; + this.specialTexturesSteam = specialTexturesSteam; + this.logo = logo; + this.logoSize = logoSize; + this.logoPos = logoPos; + this.itemInputPositionsGetter = itemInputPositionsGetter; + this.itemOutputPositionsGetter = itemOutputPositionsGetter; + this.specialItemPositionGetter = specialItemPositionGetter; + this.fluidInputPositionsGetter = fluidInputPositionsGetter; + this.fluidOutputPositionsGetter = fluidOutputPositionsGetter; + this.amperage = amperage; + + this.progressBarImageSize = switch (progressBarDirection) { + case UP, DOWN -> progressBarSize.height; + case CIRCULAR_CW -> Math.max(progressBarSize.width, progressBarSize.height); + default -> progressBarSize.width; + }; + } + + /** + * Retrieves overlay for slot, with given matching conditions. + */ + @Nullable + public IDrawable getOverlayForSlot(int index, boolean isFluid, boolean isOutput, boolean isSpecial) { + return slotOverlays.apply(index, isFluid, isOutput, isSpecial); + } + + /** + * Retrieves overlay for slot of steam machines, with given matching conditions. + */ + @Nullable + public SteamTexture getOverlayForSlotSteam(int index, boolean isFluid, boolean isOutput, boolean isSpecial) { + return slotOverlaysSteam.apply(index, isFluid, isOutput, isSpecial); + } + + public interface SlotOverlayGetter<T> { + + @Nullable + T apply(int index, boolean isFluid, boolean isOutput, boolean isSpecial); + } +} diff --git a/src/main/java/gregtech/api/recipe/BasicUIPropertiesBuilder.java b/src/main/java/gregtech/api/recipe/BasicUIPropertiesBuilder.java new file mode 100644 index 0000000000..7be2c94b23 --- /dev/null +++ b/src/main/java/gregtech/api/recipe/BasicUIPropertiesBuilder.java @@ -0,0 +1,264 @@ +package gregtech.api.recipe; + +import java.awt.Rectangle; +import java.util.Collections; +import java.util.List; +import java.util.function.IntFunction; +import java.util.function.Supplier; + +import javax.annotation.Nullable; +import javax.annotation.ParametersAreNonnullByDefault; + +import org.apache.commons.lang3.tuple.ImmutablePair; +import org.apache.commons.lang3.tuple.Pair; + +import com.google.common.collect.ImmutableList; +import com.gtnewhorizons.modularui.api.drawable.FallbackableUITexture; +import com.gtnewhorizons.modularui.api.drawable.IDrawable; +import com.gtnewhorizons.modularui.api.math.Pos2d; +import com.gtnewhorizons.modularui.api.math.Size; +import com.gtnewhorizons.modularui.common.widget.ProgressBar; + +import gregtech.api.gui.modularui.FallbackableSteamTexture; +import gregtech.api.gui.modularui.GT_UITextures; +import gregtech.api.gui.modularui.SteamTexture; +import gregtech.api.util.MethodsReturnNonnullByDefault; +import gregtech.common.gui.modularui.UIHelper; + +/** + * Builder class for {@link BasicUIProperties}. + */ +@SuppressWarnings("UnusedReturnValue") +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +public final class BasicUIPropertiesBuilder { + + private int maxItemInputs, maxItemOutputs, maxFluidInputs, maxFluidOutputs; + + private BasicUIProperties.SlotOverlayGetter<IDrawable> slotOverlays = (index, isFluid, isOutput, isSpecial) -> null; + private BasicUIProperties.SlotOverlayGetter<SteamTexture> slotOverlaysSteam = (index, isFluid, isOutput, + isSpecial) -> null; + + @Nullable + private FallbackableUITexture progressBarTexture; + @Nullable + private FallbackableSteamTexture progressBarTextureSteam; + private ProgressBar.Direction progressBarDirection = ProgressBar.Direction.RIGHT; + private Size progressBarSize = new Size(20, 18); + private Pos2d progressBarPos = new Pos2d(78, 24); + + private boolean useProgressBar = true; + + private boolean useSpecialSlot; + + private final ImmutableList.Builder<Rectangle> neiTransferRect = ImmutableList.builder(); + @Nullable + private String neiTransferRectId; + + private final ImmutableList.Builder<Pair<IDrawable, Pair<Size, Pos2d>>> specialTextures = ImmutableList.builder(); + private final ImmutableList.Builder<Pair<SteamTexture, Pair<Size, Pos2d>>> specialTexturesSteam = ImmutableList + .builder(); + + private IDrawable logo = GT_UITextures.PICTURE_GT_LOGO_17x17_TRANSPARENT; + private Size logoSize = new Size(17, 17); + private Pos2d logoPos = new Pos2d(152, 63); + + private IntFunction<List<Pos2d>> itemInputPositionsGetter = UIHelper::getItemInputPositions; + private IntFunction<List<Pos2d>> itemOutputPositionsGetter = UIHelper::getItemOutputPositions; + private Supplier<Pos2d> specialItemPositionGetter = UIHelper::getSpecialItemPosition; + private IntFunction<List<Pos2d>> fluidInputPositionsGetter = UIHelper::getFluidInputPositions; + private IntFunction<List<Pos2d>> fluidOutputPositionsGetter = UIHelper::getFluidOutputPositions; + + private int amperage = 1; + + BasicUIPropertiesBuilder() {} + + public BasicUIProperties build() { + if (maxItemInputs == 0 && maxItemOutputs == 0 && maxFluidInputs == 0 && maxFluidOutputs == 0) { + throw new IllegalArgumentException("Set either of max I/O count"); + } + List<Rectangle> builtNEITransferRect = neiTransferRect.build(); + if (builtNEITransferRect.isEmpty()) { + builtNEITransferRect = Collections.singletonList( + new Rectangle( + progressBarPos.x - (16 / 2), + progressBarPos.y, + progressBarSize.width + 16, + progressBarSize.height)); + } + return new BasicUIProperties( + maxItemInputs, + maxItemOutputs, + maxFluidInputs, + maxFluidOutputs, + slotOverlays, + slotOverlaysSteam, + progressBarTexture, + progressBarTextureSteam, + progressBarDirection, + progressBarSize, + progressBarPos, + useProgressBar, + useSpecialSlot, + builtNEITransferRect, + neiTransferRectId, + specialTextures.build(), + specialTexturesSteam.build(), + logo, + logoSize, + logoPos, + itemInputPositionsGetter, + itemOutputPositionsGetter, + specialItemPositionGetter, + fluidInputPositionsGetter, + fluidOutputPositionsGetter, + amperage); + } + + public BasicUIPropertiesBuilder maxItemInputs(int maxItemInputs) { + this.maxItemInputs = maxItemInputs; + return this; + } + + public BasicUIPropertiesBuilder maxItemOutputs(int maxItemOutputs) { + this.maxItemOutputs = maxItemOutputs; + return this; + } + + public BasicUIPropertiesBuilder maxFluidInputs(int maxFluidInputs) { + this.maxFluidInputs = maxFluidInputs; + return this; + } + + public BasicUIPropertiesBuilder maxFluidOutputs(int maxFluidOutputs) { + this.maxFluidOutputs = maxFluidOutputs; + return this; + } + + public BasicUIPropertiesBuilder slotOverlays(BasicUIProperties.SlotOverlayGetter<IDrawable> slotOverlays) { + this.slotOverlays = slotOverlays; + return this; + } + + public BasicUIPropertiesBuilder slotOverlaysSteam( + BasicUIProperties.SlotOverlayGetter<SteamTexture> slotOverlaysSteam) { + this.slotOverlaysSteam = slotOverlaysSteam; + return this; + } + + public BasicUIPropertiesBuilder progressBarTexture(@Nullable FallbackableUITexture progressBarTexture) { + this.progressBarTexture = progressBarTexture; + return this; + } + + public BasicUIPropertiesBuilder progressBarTextureSteam( + @Nullable FallbackableSteamTexture progressBarTextureSteam) { + this.progressBarTextureSteam = progressBarTextureSteam; + return this; + } + + public BasicUIPropertiesBuilder progressBarDirection(ProgressBar.Direction progressBarDirection) { + this.progressBarDirection = progressBarDirection; + return this; + } + + public BasicUIPropertiesBuilder progressBarSize(Size progressBarSize) { + this.progressBarSize = progressBarSize; + return this; + } + + public BasicUIPropertiesBuilder progressBarPos(Pos2d progressBarPos) { + this.progressBarPos = progressBarPos; + return this; + } + + public BasicUIPropertiesBuilder useProgressBar(boolean useProgressBar) { + this.useProgressBar = useProgressBar; + return this; + } + + public BasicUIPropertiesBuilder useSpecialSlot(boolean useSpecialSlot) { + this.useSpecialSlot = useSpecialSlot; + return this; + } + + public BasicUIPropertiesBuilder addNEITransferRect(Rectangle neiTransferRect) { + this.neiTransferRect.add(neiTransferRect); + return this; + } + + BasicUIPropertiesBuilder neiTransferRect(List<Rectangle> neiTransferRect) { + this.neiTransferRect.addAll(neiTransferRect); + return this; + } + + public BasicUIPropertiesBuilder neiTransferRectId(@Nullable String neiTransferRectId) { + this.neiTransferRectId = neiTransferRectId; + return this; + } + + public BasicUIPropertiesBuilder addSpecialTexture(Size size, Pos2d pos, IDrawable texture) { + this.specialTextures.add(new ImmutablePair<>(texture, new ImmutablePair<>(size, pos))); + return this; + } + + BasicUIPropertiesBuilder specialTextures(List<Pair<IDrawable, Pair<Size, Pos2d>>> specialTextures) { + this.specialTextures.addAll(specialTextures); + return this; + } + + public BasicUIPropertiesBuilder addSpecialTextureSteam(Size size, Pos2d pos, SteamTexture texture) { + this.specialTexturesSteam.add(new ImmutablePair<>(texture, new ImmutablePair<>(size, pos))); + return this; + } + + BasicUIPropertiesBuilder specialTexturesSteam(List<Pair<SteamTexture, Pair<Size, Pos2d>>> specialTextures) { + this.specialTexturesSteam.addAll(specialTextures); + return this; + } + + public BasicUIPropertiesBuilder logo(IDrawable logo) { + this.logo = logo; + return this; + } + + public BasicUIPropertiesBuilder logoSize(Size logoSize) { + this.logoSize = logoSize; + return this; + } + + public BasicUIPropertiesBuilder logoPos(Pos2d logoPos) { + this.logoPos = logoPos; + return this; + } + + public BasicUIPropertiesBuilder itemInputPositionsGetter(IntFunction<List<Pos2d>> itemInputPositionsGetter) { + this.itemInputPositionsGetter = itemInputPositionsGetter; + return this; + } + + public BasicUIPropertiesBuilder itemOutputPositionsGetter(IntFunction<List<Pos2d>> itemOutputPositionsGetter) { + this.itemOutputPositionsGetter = itemOutputPositionsGetter; + return this; + } + + public BasicUIPropertiesBuilder specialItemPositionGetter(Supplier<Pos2d> specialItemPositionGetter) { + this.specialItemPositionGetter = specialItemPositionGetter; + return this; + } + + public BasicUIPropertiesBuilder fluidInputPositionsGetter(IntFunction<List<Pos2d>> fluidInputPositionsGetter) { + this.fluidInputPositionsGetter = fluidInputPositionsGetter; + return this; + } + + public BasicUIPropertiesBuilder fluidOutputPositionsGetter(IntFunction<List<Pos2d>> fluidOutputPositionsGetter) { + this.fluidOutputPositionsGetter = fluidOutputPositionsGetter; + return this; + } + + public BasicUIPropertiesBuilder amperage(int amperage) { + this.amperage = amperage; + return this; + } +} diff --git a/src/main/java/gregtech/api/recipe/FindRecipeQuery.java b/src/main/java/gregtech/api/recipe/FindRecipeQuery.java new file mode 100644 index 0000000000..77c0648688 --- /dev/null +++ b/src/main/java/gregtech/api/recipe/FindRecipeQuery.java @@ -0,0 +1,178 @@ +package gregtech.api.recipe; + +import java.util.function.Predicate; +import java.util.stream.Stream; + +import javax.annotation.Nullable; +import javax.annotation.ParametersAreNonnullByDefault; + +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidStack; + +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.MethodsReturnNonnullByDefault; + +// spotless:off spotless likes formatting @code to @code +/** + * Helper class for searching recipe. Retrieve instance with {@link RecipeMap#findRecipeQuery}. + * <p> + * It features fluent API, so you can find recipes like this: + * + * <pre> + * {@code + * GT_Recipe recipe = recipeMap.findRecipeQuery() + * .items(inputItems) + * .fluids(inputFluids) + * .find(); + * } + * </pre> + */ +// spotless:on +@SuppressWarnings("unused") +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +public final class FindRecipeQuery { + + private static final Predicate<GT_Recipe> ALWAYS = r -> true; + + private final RecipeMap<?> recipeMap; + + @Nullable + private ItemStack[] items; + @Nullable + private FluidStack[] fluids; + @Nullable + private ItemStack specialSlot; + private Predicate<GT_Recipe> filter = ALWAYS; + private long voltage = Integer.MAX_VALUE; + @Nullable + private GT_Recipe cachedRecipe; + private boolean notUnificated; + private boolean dontCheckStackSizes; + private boolean forCollisionCheck; + + FindRecipeQuery(RecipeMap<?> recipeMap) { + this.recipeMap = recipeMap; + } + + // region executors + + /** + * @return The first matched recipe, or null if not found. + */ + @Nullable + public GT_Recipe find() { + return findAll().findFirst() + .orElse(null); + } + + /** + * @return All the matched recipes in the form of Stream. + */ + public Stream<GT_Recipe> findAll() { + if (items == null) { + items = new ItemStack[0]; + } + if (fluids == null) { + fluids = new FluidStack[0]; + } + + return recipeMap.getBackend() + .matchRecipeStream( + items, + fluids, + specialSlot, + cachedRecipe, + notUnificated, + dontCheckStackSizes, + forCollisionCheck) + .filter(recipe -> voltage * recipeMap.getAmperage() >= recipe.mEUt && filter.test(recipe)); + } + + /** + * Checks if given inputs conflict with already registered recipes. + * + * @return True if collision is found. + */ + public boolean checkCollision() { + dontCheckStackSizes = true; + forCollisionCheck = true; + return findAll().findAny() + .isPresent(); + } + + // endregion + + // region setters + + /** + * @param items Item inputs. + */ + public FindRecipeQuery items(@Nullable ItemStack... items) { + this.items = items; + return this; + } + + /** + * @param fluids Fluid inputs. + */ + public FindRecipeQuery fluids(@Nullable FluidStack... fluids) { + this.fluids = fluids; + return this; + } + + /** + * @param specialSlot Content of the special slot. Normal recipemaps don't need this, but some do. + * Set {@link RecipeMapBuilder#specialSlotSensitive} to make it actually functional. + * Alternatively overriding {@link RecipeMapBackend#filterFindRecipe} will also work. + */ + public FindRecipeQuery specialSlot(@Nullable ItemStack specialSlot) { + this.specialSlot = specialSlot; + return this; + } + + /** + * @param filter Matched recipe will be tested by this function. If it returns false, the query will attempt to + * find next recipe. + */ + public FindRecipeQuery filter(Predicate<GT_Recipe> filter) { + this.filter = filter; + return this; + } + + /** + * @param voltage Recipes that exceed this voltage won't match. It will be automatically multiplied by amperage + * of the recipemap. + */ + public FindRecipeQuery voltage(long voltage) { + this.voltage = voltage; + return this; + } + + /** + * @param cachedRecipe If this is not null, the query tests it before all other recipes. + */ + public FindRecipeQuery cachedRecipe(@Nullable GT_Recipe cachedRecipe) { + this.cachedRecipe = cachedRecipe; + return this; + } + + /** + * @param notUnificated If this is set to true, item inputs will be unificated. + */ + public FindRecipeQuery notUnificated(boolean notUnificated) { + this.notUnificated = notUnificated; + return this; + } + + /** + * @param dontCheckStackSizes If this is set to true, the query won't check item count and fluid amount + * for the matched recipe. + */ + public FindRecipeQuery dontCheckStackSizes(boolean dontCheckStackSizes) { + this.dontCheckStackSizes = dontCheckStackSizes; + return this; + } + + // endregion +} diff --git a/src/main/java/gregtech/api/recipe/NEIRecipeProperties.java b/src/main/java/gregtech/api/recipe/NEIRecipeProperties.java new file mode 100644 index 0000000000..2ba49f5da1 --- /dev/null +++ b/src/main/java/gregtech/api/recipe/NEIRecipeProperties.java @@ -0,0 +1,89 @@ +package gregtech.api.recipe; + +import java.util.Comparator; +import java.util.function.UnaryOperator; + +import javax.annotation.Nullable; +import javax.annotation.ParametersAreNonnullByDefault; + +import com.gtnewhorizons.modularui.api.math.Pos2d; +import com.gtnewhorizons.modularui.api.math.Size; + +import codechicken.nei.recipe.HandlerInfo; +import gregtech.api.objects.overclockdescriber.OverclockDescriber; +import gregtech.api.util.FieldsAreNonnullByDefault; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.MethodsReturnNonnullByDefault; +import gregtech.nei.formatter.INEISpecialInfoFormatter; + +/** + * Data object storing info exclusively used to draw NEI recipe GUI. Not all the properties used to draw NEI + * are present here. See {@link BasicUIProperties} for the rest. + * <p> + * Use {@link #builder} for creation. + */ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +@FieldsAreNonnullByDefault +public final class NEIRecipeProperties { + + static NEIRecipePropertiesBuilder builder() { + return new NEIRecipePropertiesBuilder(); + } + + /** + * Whether to register dedicated NEI recipe page for the recipemap. + */ + public final boolean registerNEI; + @Nullable + public final UnaryOperator<HandlerInfo.Builder> handlerInfoCreator; + + /** + * Size of background shown. + */ + // todo make it final + public Size recipeBackgroundSize; + /** + * Offset of background shown. + */ + public final Pos2d recipeBackgroundOffset; + + /** + * Formats special description for the recipe, mainly {@link gregtech.api.util.GT_Recipe#mSpecialValue}. + */ + public final INEISpecialInfoFormatter neiSpecialInfoFormatter; + + /** + * Whether to show oredict equivalent item outputs. + */ + public final boolean unificateOutput; + /** + * If a custom filter method {@link OverclockDescriber#canHandle} should be used to limit the shown recipes when + * searching recipes with recipe catalyst. Else, the voltage of the recipe is the only factor to filter recipes. + */ + public final boolean useCustomFilter; + /** + * Whether to render the actual stack size of items or not. + */ + public final boolean renderRealStackSizes; + + /** + * Comparator for NEI recipe sort. {@link GT_Recipe#compareTo(GT_Recipe)} by default. + */ + public final Comparator<GT_Recipe> comparator; + + NEIRecipeProperties(boolean registerNEI, @Nullable UnaryOperator<HandlerInfo.Builder> handlerInfoCreator, + Size recipeBackgroundSize, Pos2d recipeBackgroundOffset, INEISpecialInfoFormatter neiSpecialInfoFormatter, + boolean unificateOutput, boolean useCustomFilter, boolean renderRealStackSizes, + Comparator<GT_Recipe> comparator) { + this.registerNEI = registerNEI; + this.handlerInfoCreator = handlerInfoCreator; + this.recipeBackgroundOffset = recipeBackgroundOffset; + this.recipeBackgroundSize = recipeBackgroundSize; + this.neiSpecialInfoFormatter = neiSpecialInfoFormatter; + this.unificateOutput = unificateOutput; + this.useCustomFilter = useCustomFilter; + this.renderRealStackSizes = renderRealStackSizes; + this.comparator = comparator; + } +} diff --git a/src/main/java/gregtech/api/recipe/NEIRecipePropertiesBuilder.java b/src/main/java/gregtech/api/recipe/NEIRecipePropertiesBuilder.java new file mode 100644 index 0000000000..050a1c4920 --- /dev/null +++ b/src/main/java/gregtech/api/recipe/NEIRecipePropertiesBuilder.java @@ -0,0 +1,100 @@ +package gregtech.api.recipe; + +import java.util.Comparator; +import java.util.function.UnaryOperator; + +import javax.annotation.Nullable; +import javax.annotation.ParametersAreNonnullByDefault; + +import com.gtnewhorizons.modularui.api.math.Pos2d; +import com.gtnewhorizons.modularui.api.math.Size; + +import codechicken.nei.recipe.HandlerInfo; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.MethodsReturnNonnullByDefault; +import gregtech.nei.formatter.DefaultSpecialValueFormatter; +import gregtech.nei.formatter.INEISpecialInfoFormatter; + +/** + * Builder class for {@link NEIRecipeProperties}. + */ +@SuppressWarnings("UnusedReturnValue") +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +public final class NEIRecipePropertiesBuilder { + + private boolean registerNEI = true; + @Nullable + private UnaryOperator<HandlerInfo.Builder> handlerInfoCreator; + + private Size recipeBackgroundSize = new Size(170, 82); + private Pos2d recipeBackgroundOffset = new Pos2d(3, 3); + + private INEISpecialInfoFormatter neiSpecialInfoFormatter = DefaultSpecialValueFormatter.INSTANCE; + + private boolean unificateOutput = true; + private boolean useCustomFilter; + private boolean renderRealStackSizes = true; + + private Comparator<GT_Recipe> comparator = GT_Recipe::compareTo; + + NEIRecipePropertiesBuilder() {} + + public NEIRecipeProperties build() { + return new NEIRecipeProperties( + registerNEI, + handlerInfoCreator, + recipeBackgroundSize, + recipeBackgroundOffset, + neiSpecialInfoFormatter, + unificateOutput, + useCustomFilter, + renderRealStackSizes, + comparator); + } + + public NEIRecipePropertiesBuilder disableRegisterNEI() { + this.registerNEI = false; + return this; + } + + public NEIRecipePropertiesBuilder handlerInfoCreator(UnaryOperator<HandlerInfo.Builder> builderCreator) { + this.handlerInfoCreator = builderCreator; + return this; + } + + public NEIRecipePropertiesBuilder recipeBackgroundSize(Size recipeBackgroundSize) { + this.recipeBackgroundSize = recipeBackgroundSize; + return this; + } + + public NEIRecipePropertiesBuilder recipeBackgroundOffset(Pos2d recipeBackgroundOffset) { + this.recipeBackgroundOffset = recipeBackgroundOffset; + return this; + } + + public NEIRecipePropertiesBuilder neiSpecialInfoFormatter(INEISpecialInfoFormatter neiSpecialInfoFormatter) { + this.neiSpecialInfoFormatter = neiSpecialInfoFormatter; + return this; + } + + public NEIRecipePropertiesBuilder unificateOutput(boolean unificateOutput) { + this.unificateOutput = unificateOutput; + return this; + } + + public NEIRecipePropertiesBuilder useCustomFilter() { + this.useCustomFilter = true; + return this; + } + + public NEIRecipePropertiesBuilder disableRenderRealStackSizes() { + this.renderRealStackSizes = false; + return this; + } + + public NEIRecipePropertiesBuilder recipeComparator(Comparator<GT_Recipe> comparator) { + this.comparator = comparator; + return this; + } +} diff --git a/src/main/java/gregtech/api/recipe/RecipeCategories.java b/src/main/java/gregtech/api/recipe/RecipeCategories.java new file mode 100644 index 0000000000..c2de890793 --- /dev/null +++ b/src/main/java/gregtech/api/recipe/RecipeCategories.java @@ -0,0 +1,56 @@ +package gregtech.api.recipe; + +import static gregtech.api.enums.Mods.GregTech; +import static gregtech.api.recipe.RecipeCategory.createIcon; + +public final class RecipeCategories { + + @RecipeCategoryHolder + public static final RecipeCategory arcFurnaceRecycling = new RecipeCategory( + "gt.recipe.category.arc_furnace_recycling", + RecipeMaps.arcFurnaceRecipes, + builder -> builder.setDisplayImage( + createIcon(GregTech.getResourcePath("textures", "gui", "picture", "arc_furnace_recycling.png")))); + + @RecipeCategoryHolder + public static final RecipeCategory plasmaArcFurnaceRecycling = new RecipeCategory( + "gt.recipe.category.plasma_arc_furnace_recycling", + RecipeMaps.plasmaArcFurnaceRecipes, + builder -> builder.setDisplayImage( + createIcon(GregTech.getResourcePath("textures", "gui", "picture", "plasma_arc_furnace_recycling.png")))); + + @RecipeCategoryHolder + public static final RecipeCategory maceratorRecycling = new RecipeCategory( + "gt.recipe.category.macerator_recycling", + RecipeMaps.maceratorRecipes, + builder -> builder.setDisplayImage( + createIcon(GregTech.getResourcePath("textures", "gui", "picture", "macerator_recycling.png")))); + + @RecipeCategoryHolder + public static final RecipeCategory fluidExtractorRecycling = new RecipeCategory( + "gt.recipe.category.fluid_extractor_recycling", + RecipeMaps.fluidExtractionRecipes, + builder -> builder.setDisplayImage( + createIcon(GregTech.getResourcePath("textures", "gui", "picture", "fluid_extractor_recycling.png")))); + + @RecipeCategoryHolder + public static final RecipeCategory alloySmelterRecycling = new RecipeCategory( + "gt.recipe.category.alloy_smelter_recycling", + RecipeMaps.alloySmelterRecipes, + builder -> builder.setDisplayImage( + createIcon(GregTech.getResourcePath("textures", "gui", "picture", "alloy_smelter_recycling.png")))); + + @RecipeCategoryHolder + public static final RecipeCategory alloySmelterMolding = new RecipeCategory( + "gt.recipe.category.alloy_smelter_molding", + RecipeMaps.alloySmelterRecipes, + builder -> builder.setDisplayImage( + createIcon(GregTech.getResourcePath("textures", "gui", "picture", "alloy_smelter_molding.png")))); + + @RecipeCategoryHolder + public static final RecipeCategory forgeHammerRecycling = new RecipeCategory( + "gt.recipe.category.forge_hammer_recycling", + RecipeMaps.hammerRecipes, + builder -> builder.setDisplayImage( + createIcon(GregTech.getResourcePath("textures", "gui", "picture", "forge_hammer_recycling.png")))); +} diff --git a/src/main/java/gregtech/api/recipe/RecipeCategory.java b/src/main/java/gregtech/api/recipe/RecipeCategory.java new file mode 100644 index 0000000000..d7729ac493 --- /dev/null +++ b/src/main/java/gregtech/api/recipe/RecipeCategory.java @@ -0,0 +1,81 @@ +package gregtech.api.recipe; + +import java.util.HashMap; +import java.util.Map; +import java.util.function.UnaryOperator; + +import javax.annotation.Nullable; +import javax.annotation.ParametersAreNonnullByDefault; + +import codechicken.nei.drawable.DrawableBuilder; +import codechicken.nei.drawable.DrawableResource; +import codechicken.nei.recipe.HandlerInfo; +import cpw.mods.fml.common.Loader; +import cpw.mods.fml.common.ModContainer; +import gregtech.api.util.FieldsAreNonnullByDefault; +import gregtech.api.util.MethodsReturnNonnullByDefault; + +/** + * Used to display recipes on NEI on different tabs. + * <p> + * Also apply {@link RecipeCategoryHolder} annotation to each instance to be picked up by GT config. + */ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +@FieldsAreNonnullByDefault +public final class RecipeCategory { + + public static final Map<String, RecipeCategory> ALL_RECIPE_CATEGORIES = new HashMap<>(); + + public final String unlocalizedName; + public final RecipeMap<?> recipeMap; + public final ModContainer ownerMod; + @Nullable + public final UnaryOperator<HandlerInfo.Builder> handlerInfoCreator; + + /** + * @param unlocalizedName Unlocalized name of this category. Must be unique. + * @param recipeMap RecipeMap this category belongs to. + * @param handlerInfoCreator Supplier of handler info for the NEI handler this category belongs to. + */ + public RecipeCategory(String unlocalizedName, RecipeMap<?> recipeMap, + @Nullable UnaryOperator<HandlerInfo.Builder> handlerInfoCreator) { + this.unlocalizedName = unlocalizedName; + this.recipeMap = recipeMap; + this.ownerMod = Loader.instance() + .activeModContainer(); + this.handlerInfoCreator = handlerInfoCreator; + if (ALL_RECIPE_CATEGORIES.containsKey(unlocalizedName)) { + throw new IllegalArgumentException( + "Cannot register recipe category with duplicated unlocalized name: " + unlocalizedName); + } + ALL_RECIPE_CATEGORIES.put(unlocalizedName, this); + } + + RecipeCategory(RecipeMap<?> recipeMap) { + this(recipeMap.unlocalizedName, recipeMap, recipeMap.getFrontend().neiProperties.handlerInfoCreator); + } + + @Override + public String toString() { + return "RecipeCategory{" + "unlocalizedName='" + + unlocalizedName + + '\'' + + ", recipeMap=" + + recipeMap.unlocalizedName + + ", ownerMod=" + + ownerMod.getModId() + + '}'; + } + + /** + * Creates icon for recipe category. Size is 16px. + */ + public static DrawableResource createIcon(String resourceLocation) { + return new DrawableBuilder(resourceLocation, 0, 0, 16, 16) + // GuiRecipeTab#drawForeground draws icon with 1px offset to make fuel icon (14px) prettier + .addPadding(-1, 0, -1, 0) + .setTextureSize(16, 16) + .build(); + } +} diff --git a/src/main/java/gregtech/api/recipe/RecipeCategoryHolder.java b/src/main/java/gregtech/api/recipe/RecipeCategoryHolder.java new file mode 100644 index 0000000000..0ad87e3f6f --- /dev/null +++ b/src/main/java/gregtech/api/recipe/RecipeCategoryHolder.java @@ -0,0 +1,13 @@ +package gregtech.api.recipe; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Apply this annotation to each recipe category so that GT config will pick it up. + */ +@Target(ElementType.FIELD) +@Retention(RetentionPolicy.RUNTIME) +public @interface RecipeCategoryHolder {} diff --git a/src/main/java/gregtech/api/recipe/RecipeCategorySetting.java b/src/main/java/gregtech/api/recipe/RecipeCategorySetting.java new file mode 100644 index 0000000000..4920d64212 --- /dev/null +++ b/src/main/java/gregtech/api/recipe/RecipeCategorySetting.java @@ -0,0 +1,52 @@ +package gregtech.api.recipe; + +import java.util.Locale; +import java.util.stream.Stream; + +import javax.annotation.ParametersAreNonnullByDefault; + +import gregtech.api.util.MethodsReturnNonnullByDefault; + +/** + * Specifies behaviors for {@link RecipeCategory}. + */ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +public enum RecipeCategorySetting { + + /** + * Show the category in separated NEI tab. + */ + ENABLE, + /** + * The category is merged to default one for the recipemap. + */ + MERGE, + /** + * Recipes belonging to the category are hidden from NEI. + */ + HIDE; + + public static final RecipeCategorySetting[] VALUES = values(); + public static final String[] NAMES = Stream.of(VALUES) + .map(RecipeCategorySetting::toName) + .toArray(String[]::new); + + public static RecipeCategorySetting getDefault() { + return ENABLE; + } + + public String toName() { + return toString().toLowerCase(Locale.ENGLISH); + } + + public static RecipeCategorySetting find(String name) { + for (RecipeCategorySetting setting : VALUES) { + if (setting.toName() + .equals(name)) { + return setting; + } + } + return getDefault(); + } +} diff --git a/src/main/java/gregtech/api/recipe/RecipeMap.java b/src/main/java/gregtech/api/recipe/RecipeMap.java new file mode 100644 index 0000000000..2ee2d3cb94 --- /dev/null +++ b/src/main/java/gregtech/api/recipe/RecipeMap.java @@ -0,0 +1,395 @@ +package gregtech.api.recipe; + +import java.util.Collection; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import java.util.stream.Collectors; + +import javax.annotation.Nonnull; +import javax.annotation.Nullable; +import javax.annotation.ParametersAreNonnullByDefault; + +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidStack; + +import org.jetbrains.annotations.Unmodifiable; + +import gregtech.api.interfaces.IRecipeMap; +import gregtech.api.interfaces.tileentity.IHasWorldObjectAndCoords; +import gregtech.api.util.FieldsAreNonnullByDefault; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_RecipeBuilder; +import gregtech.api.util.MethodsReturnNonnullByDefault; + +/** + * Manages list of recipes. Its functionalities are split + * between {@link RecipeMapBackend} and {@link RecipeMapFrontend}. + * + * @param <B> Type of {@link RecipeMapBackend} + */ +@SuppressWarnings({ "unused", "UnusedReturnValue" }) +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +@FieldsAreNonnullByDefault +public final class RecipeMap<B extends RecipeMapBackend> implements IRecipeMap { + + /** + * All the recipemap instances. key=unlocalized name, value=instance. + */ + public static final Map<String, RecipeMap<?>> ALL_RECIPE_MAPS = new HashMap<>(); + + private final B backend; + private final RecipeMapFrontend frontend; + + /** + * Unique unlocalized name of this recipemap. Used for identifier, localization key for NEI tab name, etc. + */ + public final String unlocalizedName; + + private final RecipeCategory defaultRecipeCategory; + + /** + * Use {@link RecipeMapBuilder} to instantiate. + */ + RecipeMap(String unlocalizedName, B backend, RecipeMapFrontend frontend) { + this.unlocalizedName = unlocalizedName; + this.backend = backend; + this.frontend = frontend; + this.defaultRecipeCategory = new RecipeCategory(this); + backend.setRecipeMap(this); + if (ALL_RECIPE_MAPS.containsKey(unlocalizedName)) { + throw new IllegalArgumentException( + "Cannot register recipemap with duplicated unlocalized name: " + unlocalizedName); + } + ALL_RECIPE_MAPS.put(unlocalizedName, this); + } + + public B getBackend() { + return backend; + } + + public RecipeMapFrontend getFrontend() { + return frontend; + } + + /** + * @return All the recipes belonging to this recipemap. + */ + @Unmodifiable + public Collection<GT_Recipe> getAllRecipes() { + return backend.getAllRecipes(); + } + + /** + * @return List of registered recipe categories associated with this recipemap. + */ + public List<RecipeCategory> getAssociatedCategories() { + return RecipeCategory.ALL_RECIPE_CATEGORIES.values() + .stream() + .filter(category -> category.recipeMap == this) + .collect(Collectors.toList()); + } + + public RecipeCategory getDefaultRecipeCategory() { + return defaultRecipeCategory; + } + + /** + * @return Amperage of this recipemap. Note that recipes store EU/t with amperage included, + * e.g. Arc Furnace recipe with 90 EU/t means 30 EU/t (LV) with 3 amperage. + */ + public int getAmperage() { + return frontend.getUIProperties().amperage; + } + + @Override + public void addDownstream(IRecipeMap downstream) { + backend.addDownstream(downstream); + } + + // region add recipe + + @Nullable + public GT_Recipe addRecipe(boolean aOptimize, @Nullable ItemStack[] aInputs, @Nullable ItemStack[] aOutputs, + @Nullable Object aSpecial, @Nullable int[] aOutputChances, @Nullable FluidStack[] aFluidInputs, + @Nullable FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue) { + return addRecipe( + new GT_Recipe( + aOptimize, + aInputs, + aOutputs, + aSpecial, + aOutputChances, + aFluidInputs, + aFluidOutputs, + aDuration, + aEUt, + aSpecialValue)); + } + + @Nullable + public GT_Recipe addRecipe(@Nullable int[] aOutputChances, @Nullable FluidStack[] aFluidInputs, + @Nullable FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue) { + return addRecipe( + new GT_Recipe( + false, + null, + null, + null, + aOutputChances, + aFluidInputs, + aFluidOutputs, + aDuration, + aEUt, + aSpecialValue), + false, + false, + false); + } + + @Nullable + public GT_Recipe addRecipe(boolean aOptimize, @Nullable ItemStack[] aInputs, @Nullable ItemStack[] aOutputs, + @Nullable Object aSpecial, @Nullable FluidStack[] aFluidInputs, @Nullable FluidStack[] aFluidOutputs, + int aDuration, int aEUt, int aSpecialValue) { + return addRecipe( + new GT_Recipe( + aOptimize, + aInputs, + aOutputs, + aSpecial, + null, + aFluidInputs, + aFluidOutputs, + aDuration, + aEUt, + aSpecialValue)); + } + + @Nullable + public GT_Recipe addRecipe(GT_Recipe aRecipe) { + return addRecipe(aRecipe, true, false, false); + } + + @Nullable + public GT_Recipe addRecipe(GT_Recipe aRecipe, boolean aCheckForCollisions, boolean aFakeRecipe, boolean aHidden) { + aRecipe.mHidden = aHidden; + aRecipe.mFakeRecipe = aFakeRecipe; + if (aRecipe.mFluidInputs.length < backend.properties.minFluidInputs + && aRecipe.mInputs.length < backend.properties.minItemInputs) return null; + if (aCheckForCollisions && backend.checkCollision(aRecipe)) return null; + return backend.compileRecipe(aRecipe); + } + + /** + * Only used for fake Recipe Handlers to show something in NEI, do not use this for adding actual Recipes! + * findRecipe won't find fake Recipes, containsInput WILL find fake Recipes + */ + @Nullable + public GT_Recipe addFakeRecipe(boolean aCheckForCollisions, @Nullable ItemStack[] aInputs, + @Nullable ItemStack[] aOutputs, @Nullable Object aSpecial, @Nullable int[] aOutputChances, + @Nullable FluidStack[] aFluidInputs, @Nullable FluidStack[] aFluidOutputs, int aDuration, int aEUt, + int aSpecialValue) { + return addFakeRecipe( + aCheckForCollisions, + new GT_Recipe( + false, + aInputs, + aOutputs, + aSpecial, + aOutputChances, + aFluidInputs, + aFluidOutputs, + aDuration, + aEUt, + aSpecialValue)); + } + + /** + * Only used for fake Recipe Handlers to show something in NEI, do not use this for adding actual Recipes! + * findRecipe won't find fake Recipes, containsInput WILL find fake Recipes + */ + @Nullable + public GT_Recipe addFakeRecipe(boolean aCheckForCollisions, @Nullable ItemStack[] aInputs, + @Nullable ItemStack[] aOutputs, @Nullable Object aSpecial, @Nullable FluidStack[] aFluidInputs, + @Nullable FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue) { + return addFakeRecipe( + aCheckForCollisions, + new GT_Recipe( + false, + aInputs, + aOutputs, + aSpecial, + null, + aFluidInputs, + aFluidOutputs, + aDuration, + aEUt, + aSpecialValue)); + } + + @Nullable + public GT_Recipe addFakeRecipe(boolean aCheckForCollisions, @Nullable ItemStack[] aInputs, + @Nullable ItemStack[] aOutputs, @Nullable Object aSpecial, @Nullable FluidStack[] aFluidInputs, + @Nullable FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue, boolean hidden) { + return addFakeRecipe( + aCheckForCollisions, + new GT_Recipe( + false, + aInputs, + aOutputs, + aSpecial, + null, + aFluidInputs, + aFluidOutputs, + aDuration, + aEUt, + aSpecialValue), + hidden); + } + + @Nullable + public GT_Recipe addFakeRecipe(boolean aCheckForCollisions, @Nullable ItemStack[] aInputs, + @Nullable ItemStack[] aOutputs, @Nullable Object aSpecial, @Nullable FluidStack[] aFluidInputs, + @Nullable FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue, ItemStack[][] aAlt, + boolean hidden) { + return addFakeRecipe( + aCheckForCollisions, + new GT_Recipe.GT_Recipe_WithAlt( + false, + aInputs, + aOutputs, + aSpecial, + null, + aFluidInputs, + aFluidOutputs, + aDuration, + aEUt, + aSpecialValue, + aAlt), + hidden); + } + + /** + * Only used for fake Recipe Handlers to show something in NEI, do not use this for adding actual Recipes! + * findRecipe won't find fake Recipes, containsInput WILL find fake Recipes + */ + @Nullable + public GT_Recipe addFakeRecipe(boolean aCheckForCollisions, GT_Recipe aRecipe) { + return addRecipe(aRecipe, aCheckForCollisions, true, false); + } + + @Nullable + public GT_Recipe addFakeRecipe(boolean aCheckForCollisions, GT_Recipe aRecipe, boolean hidden) { + return addRecipe(aRecipe, aCheckForCollisions, true, hidden); + } + + @Nonnull + @Override + public Collection<GT_Recipe> doAdd(GT_RecipeBuilder builder) { + return backend.doAdd(builder); + } + + public GT_Recipe add(GT_Recipe aRecipe) { + return backend.compileRecipe(aRecipe); + } + + // endregion + + /** + * @return if this Item is a valid Input for any for the Recipes + */ + public boolean containsInput(@Nullable ItemStack aStack) { + return aStack != null && backend.containsInput(aStack); + } + + /** + * @return if this Fluid is a valid Input for any for the Recipes + */ + public boolean containsInput(@Nullable FluidStack aFluid) { + return aFluid != null && containsInput(aFluid.getFluid()); + } + + /** + * @return if this Fluid is a valid Input for any for the Recipes + */ + public boolean containsInput(@Nullable Fluid aFluid) { + return aFluid != null && backend.containsInput(aFluid); + } + + // region find recipe + + /** + * @return Entrypoint for fluent API for finding recipe. + */ + public FindRecipeQuery findRecipeQuery() { + return new FindRecipeQuery(this); + } + + @Nullable + public GT_Recipe findRecipe(@Nullable IHasWorldObjectAndCoords aTileEntity, boolean aNotUnificated, long aVoltage, + @Nullable FluidStack[] aFluids, @Nullable ItemStack... aInputs) { + return findRecipe(aTileEntity, null, aNotUnificated, aVoltage, aFluids, null, aInputs); + } + + @Nullable + public GT_Recipe findRecipe(@Nullable IHasWorldObjectAndCoords aTileEntity, boolean aNotUnificated, + boolean aDontCheckStackSizes, long aVoltage, @Nullable FluidStack[] aFluids, @Nullable ItemStack... aInputs) { + return findRecipe(aTileEntity, null, aNotUnificated, aDontCheckStackSizes, aVoltage, aFluids, null, aInputs); + } + + @Nullable + public GT_Recipe findRecipe(@Nullable IHasWorldObjectAndCoords aTileEntity, @Nullable GT_Recipe aRecipe, + boolean aNotUnificated, long aVoltage, @Nullable FluidStack[] aFluids, @Nullable ItemStack aSpecialSlot, + @Nullable ItemStack... aInputs) { + return findRecipe(aTileEntity, aRecipe, aNotUnificated, false, aVoltage, aFluids, aSpecialSlot, aInputs); + } + + @Nullable + public GT_Recipe findRecipe(@Nullable IHasWorldObjectAndCoords aTileEntity, @Nullable GT_Recipe aRecipe, + boolean aNotUnificated, boolean aDontCheckStackSizes, long aVoltage, @Nullable FluidStack[] aFluids, + @Nullable ItemStack aSpecialSlot, @Nullable ItemStack... aInputs) { + return findRecipeQuery().items(aInputs != null ? aInputs : new ItemStack[0]) + .fluids(aFluids != null ? aFluids : new FluidStack[0]) + .specialSlot(aSpecialSlot) + .voltage(aVoltage) + .cachedRecipe(aRecipe) + .notUnificated(aNotUnificated) + .dontCheckStackSizes(aDontCheckStackSizes) + .find(); + } + + // endregion + + @Override + public String toString() { + return "RecipeMap{" + "unlocalizedName='" + + unlocalizedName + + '\'' + + ", ownerMod=" + + defaultRecipeCategory.ownerMod.getModId() + + '}'; + } + + private static final Pattern LEGACY_IDENTIFIER_PATTERN = Pattern.compile("(.+)_[0-9]+_[0-9]+_[0-9]+_[0-9]+_[0-9]+"); + + /** + * Gets recipemap instance from old mUniqueIdentifier format. This is only for backward compat, where tiles + * saved recipemap with mUniqueIdentifier. + * + * @param legacyIdentifier mUniqueIdentifier, in %s_%d_%d_%d_%d_%d format + * @return Found recipemap, can be null + */ + @Nullable + public static RecipeMap<?> getFromOldIdentifier(String legacyIdentifier) { + Matcher matcher = LEGACY_IDENTIFIER_PATTERN.matcher(legacyIdentifier); + if (!matcher.find()) { + // It can be new format + return ALL_RECIPE_MAPS.get(legacyIdentifier); + } + return ALL_RECIPE_MAPS.get(matcher.group(1)); + } +} diff --git a/src/main/java/gregtech/api/recipe/RecipeMapBackend.java b/src/main/java/gregtech/api/recipe/RecipeMapBackend.java new file mode 100644 index 0000000000..a20a99d3c3 --- /dev/null +++ b/src/main/java/gregtech/api/recipe/RecipeMapBackend.java @@ -0,0 +1,461 @@ +package gregtech.api.recipe; + +import static gregtech.api.util.GT_RecipeBuilder.handleInvalidRecipe; +import static gregtech.api.util.GT_RecipeBuilder.handleRecipeCollision; +import static gregtech.api.util.GT_Utility.areStacksEqualOrNull; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.function.Function; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import javax.annotation.Nullable; +import javax.annotation.ParametersAreNonnullByDefault; + +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidStack; + +import org.jetbrains.annotations.Unmodifiable; + +import com.google.common.collect.HashMultimap; +import com.google.common.collect.SetMultimap; + +import gregtech.api.GregTech_API; +import gregtech.api.interfaces.IRecipeMap; +import gregtech.api.objects.GT_ItemStack; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_RecipeBuilder; +import gregtech.api.util.GT_StreamUtil; +import gregtech.api.util.MethodsReturnNonnullByDefault; + +/** + * Responsible for recipe addition / search for recipemap. + * <p> + * In order to bind custom backend to recipemap, use {@link RecipeMapBuilder#of(String, BackendCreator)}. + */ +@SuppressWarnings("unused") +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +public class RecipeMapBackend { + + private RecipeMap<?> recipeMap; + + /** + * Recipe index based on items. + */ + private final SetMultimap<GT_ItemStack, GT_Recipe> itemIndex = HashMultimap.create(); + /** + * Recipe index based on fluids. + */ + private final SetMultimap<String, GT_Recipe> fluidIndex = HashMultimap.create(); + + /** + * All the recipes belonging to this backend, indexed by recipe category. + */ + private final Map<RecipeCategory, Collection<GT_Recipe>> recipesByCategory = new HashMap<>(); + + /** + * List of recipemaps that also receive recipe addition from this backend. + */ + private final List<IRecipeMap> downstreams = new ArrayList<>(0); + + /** + * All the properties specific to this backend. + */ + protected final RecipeMapBackendProperties properties; + + public RecipeMapBackend(RecipeMapBackendPropertiesBuilder propertiesBuilder) { + this.properties = propertiesBuilder.build(); + GregTech_API.itemStackMultiMaps.add(itemIndex); + } + + void setRecipeMap(RecipeMap<?> recipeMap) { + this.recipeMap = recipeMap; + } + + /** + * @return Properties specific to this backend. + */ + public RecipeMapBackendProperties getProperties() { + return properties; + } + + /** + * @return All the recipes belonging to this backend. Returned collection is immutable, + * use {@link #compileRecipe} to add / {@link #removeRecipes} to remove. + */ + @Unmodifiable + public Collection<GT_Recipe> getAllRecipes() { + return Collections.unmodifiableCollection(allRecipes()); + } + + /** + * @return Raw recipe list + */ + private Collection<GT_Recipe> allRecipes() { + return recipesByCategory.values() + .stream() + .flatMap(Collection::stream) + .collect(Collectors.toCollection(ArrayList::new)); + } + + /** + * @return All the recipes belonging to this backend, indexed by recipe category. + */ + @Unmodifiable + public Collection<GT_Recipe> getRecipesByCategory(RecipeCategory recipeCategory) { + return Collections + .unmodifiableCollection(recipesByCategory.getOrDefault(recipeCategory, Collections.emptyList())); + } + + @Unmodifiable + public Map<RecipeCategory, Collection<GT_Recipe>> getRecipeCategoryMap() { + return Collections.unmodifiableMap(recipesByCategory); + } + + // region add recipe + + /** + * Adds the supplied recipe to the recipe list and index, without any check. + * + * @return Supplied recipe. + */ + public GT_Recipe compileRecipe(GT_Recipe recipe) { + if (recipe.getRecipeCategory() == null) { + recipe.setRecipeCategory(recipeMap.getDefaultRecipeCategory()); + } + recipesByCategory.computeIfAbsent(recipe.getRecipeCategory(), v -> new ArrayList<>()) + .add(recipe); + for (FluidStack fluid : recipe.mFluidInputs) { + if (fluid == null) continue; + fluidIndex.put( + fluid.getFluid() + .getName(), + recipe); + } + return addToItemMap(recipe); + } + + /** + * Adds the supplied recipe to the item cache. + */ + protected GT_Recipe addToItemMap(GT_Recipe recipe) { + for (ItemStack item : recipe.mInputs) { + if (item == null) continue; + itemIndex.put(new GT_ItemStack(item), recipe); + } + return recipe; + } + + /** + * Builds recipe from supplied recipe builder and adds it. + */ + protected Collection<GT_Recipe> doAdd(GT_RecipeBuilder builder) { + Iterable<? extends GT_Recipe> recipes = properties.recipeEmitter.apply(builder); + Collection<GT_Recipe> ret = new ArrayList<>(); + for (GT_Recipe recipe : recipes) { + if (properties.recipeConfigCategory != null) { + assert properties.recipeConfigKeyConvertor != null; + String configKey = properties.recipeConfigKeyConvertor.apply(recipe); + if (configKey != null && (recipe.mDuration = GregTech_API.sRecipeFile + .get(properties.recipeConfigCategory, configKey, recipe.mDuration)) <= 0) { + continue; + } + } + if (recipe.mFluidInputs.length < properties.minFluidInputs + || recipe.mInputs.length < properties.minItemInputs) { + return Collections.emptyList(); + } + if (properties.recipeTransformer != null) { + recipe = properties.recipeTransformer.apply(recipe); + } + if (recipe == null) continue; + if (builder.isCheckForCollision() && checkCollision(recipe)) { + handleCollision(recipe); + continue; + } + if (recipe.getRecipeCategory() != null && recipe.getRecipeCategory().recipeMap != this.recipeMap) { + handleInvalidRecipe(); + continue; + } + ret.add(compileRecipe(recipe)); + } + if (!ret.isEmpty()) { + builder.clearInvalid(); + for (IRecipeMap downstream : downstreams) { + downstream.doAdd(builder); + } + } + return ret; + } + + private void handleCollision(GT_Recipe recipe) { + StringBuilder errorInfo = new StringBuilder(); + boolean hasAnEntry = false; + for (FluidStack fluid : recipe.mFluidInputs) { + if (fluid == null) { + continue; + } + String s = fluid.getLocalizedName(); + if (s == null) { + continue; + } + if (hasAnEntry) { + errorInfo.append("+") + .append(s); + } else { + errorInfo.append(s); + } + hasAnEntry = true; + } + for (ItemStack item : recipe.mInputs) { + if (item == null) { + continue; + } + String itemName = item.getDisplayName(); + if (hasAnEntry) { + errorInfo.append("+") + .append(itemName); + } else { + errorInfo.append(itemName); + } + hasAnEntry = true; + } + handleRecipeCollision(errorInfo.toString()); + } + + void addDownstream(IRecipeMap downstream) { + downstreams.add(downstream); + } + + /** + * Removes supplied recipes from recipe list. Do not use unless absolute necessity! + */ + public void removeRecipes(Collection<? extends GT_Recipe> recipesToRemove) { + for (Collection<GT_Recipe> recipes : recipesByCategory.values()) { + recipes.removeAll(recipesToRemove); + } + for (GT_ItemStack key : new HashMap<>(itemIndex.asMap()).keySet()) { + itemIndex.get(key) + .removeAll(recipesToRemove); + } + for (String key : new HashMap<>(fluidIndex.asMap()).keySet()) { + fluidIndex.get(key) + .removeAll(recipesToRemove); + } + } + + /** + * Removes supplied recipe from recipe list. Do not use unless absolute necessity! + */ + public void removeRecipe(GT_Recipe recipe) { + removeRecipes(Collections.singleton(recipe)); + } + + /** + * If you want to shoot your foot... + */ + public void clearRecipes() { + recipesByCategory.clear(); + } + + // endregion + + /** + * Re-unificates all the items present in recipes. Also reflects recipe removals. + */ + public void reInit() { + itemIndex.clear(); + for (GT_Recipe recipe : allRecipes()) { + GT_OreDictUnificator.setStackArray(true, recipe.mInputs); + GT_OreDictUnificator.setStackArray(true, recipe.mOutputs); + addToItemMap(recipe); + } + } + + /** + * @return If supplied item is a valid input for any of the recipes + */ + public boolean containsInput(ItemStack item) { + return itemIndex.containsKey(new GT_ItemStack(item)) || itemIndex.containsKey(new GT_ItemStack(item, true)); + } + + /** + * @return If supplied fluid is a valid input for any of the recipes + */ + public boolean containsInput(Fluid fluid) { + return fluidIndex.containsKey(fluid.getName()); + } + + // region find recipe + + /** + * Checks if given recipe conflicts with already registered recipes. + * + * @return True if collision is found. + */ + boolean checkCollision(GT_Recipe recipe) { + return matchRecipeStream(recipe.mInputs, recipe.mFluidInputs, null, null, false, true, true).findAny() + .isPresent(); + } + + /** + * Overwrites {@link #matchRecipeStream} method. Also override {@link #doesOverwriteFindRecipe} to make it work. + */ + @Nullable + protected GT_Recipe overwriteFindRecipe(ItemStack[] items, FluidStack[] fluids, @Nullable ItemStack specialSlot, + @Nullable GT_Recipe cachedRecipe) { + return null; + } + + /** + * @return Whether to use {@link #overwriteFindRecipe} for finding recipe. + */ + protected boolean doesOverwriteFindRecipe() { + return false; + } + + /** + * Modifies successfully found recipe. Make sure not to mutate the found recipe but use copy! + */ + @Nullable + protected GT_Recipe modifyFoundRecipe(GT_Recipe recipe, ItemStack[] items, FluidStack[] fluids, + @Nullable ItemStack specialSlot) { + return recipe; + } + + /** + * Called when {@link #matchRecipeStream} cannot find recipe. + */ + @Nullable + protected GT_Recipe findFallback(ItemStack[] items, FluidStack[] fluids, @Nullable ItemStack specialSlot) { + return null; + } + + /** + * Returns all the matched recipes in the form of Stream, without any additional check for matches. + * + * @param rawItems Item inputs. + * @param fluids Fluid inputs. + * @param specialSlot Content of the special slot. Normal recipemaps don't need this, but some do. + * Set {@link RecipeMapBuilder#specialSlotSensitive} to make it actually functional. + * Alternatively overriding {@link #filterFindRecipe} will also work. + * @param cachedRecipe If this is not null, this method tests it before all other recipes. + * @param notUnificated If this is set to true, item inputs will be unificated. + * @param dontCheckStackSizes If this is set to true, this method won't check item count and fluid amount + * for the matched recipe. + * @param forCollisionCheck If this method is called to check collision with already registered recipes. + * @return Stream of matches recipes. + */ + Stream<GT_Recipe> matchRecipeStream(ItemStack[] rawItems, FluidStack[] fluids, @Nullable ItemStack specialSlot, + @Nullable GT_Recipe cachedRecipe, boolean notUnificated, boolean dontCheckStackSizes, + boolean forCollisionCheck) { + if (doesOverwriteFindRecipe()) { + return GT_StreamUtil.ofNullable(overwriteFindRecipe(rawItems, fluids, specialSlot, cachedRecipe)); + } + + if (recipesByCategory.isEmpty()) { + return Stream.empty(); + } + + // Some recipe classes require a certain amount of inputs of certain kinds. Like "at least 1 fluid + 1 item" + // or "at least 2 items" before they start searching for recipes. + // This improves performance massively, especially when people leave things like programmed circuits, + // molds or shapes in their machines. + // For checking collision, we assume min inputs check already has been passed as of building the recipe. + if (!forCollisionCheck) { + if (properties.minFluidInputs > 0) { + int count = 0; + for (FluidStack fluid : fluids) if (fluid != null) count++; + if (count < properties.minFluidInputs) { + return Stream.empty(); + } + } + if (properties.minItemInputs > 0) { + int count = 0; + for (ItemStack item : rawItems) if (item != null) count++; + if (count < properties.minItemInputs) { + return Stream.empty(); + } + } + } + + ItemStack[] items; + // Unification happens here in case the item input isn't already unificated. + if (notUnificated) { + items = GT_OreDictUnificator.getStackArray(true, (Object[]) rawItems); + } else { + items = rawItems; + } + + return Stream.<Stream<GT_Recipe>>of( + // Check the recipe which has been used last time in order to not have to search for it again, if possible. + GT_StreamUtil.ofNullable(cachedRecipe) + .filter(recipe -> recipe.mCanBeBuffered) + .filter(recipe -> filterFindRecipe(recipe, items, fluids, specialSlot, dontCheckStackSizes)) + .map(recipe -> modifyFoundRecipe(recipe, items, fluids, specialSlot)) + .filter(Objects::nonNull), + // Now look for the recipes inside the item index, but only when the recipes actually can have items inputs. + GT_StreamUtil.ofConditional(!itemIndex.isEmpty(), items) + .filter(Objects::nonNull) + .flatMap(item -> Stream.of(new GT_ItemStack(item), new GT_ItemStack(item, true))) + .map(itemIndex::get) + .flatMap(Collection::stream) + .filter(recipe -> filterFindRecipe(recipe, items, fluids, specialSlot, dontCheckStackSizes)) + .map(recipe -> modifyFoundRecipe(recipe, items, fluids, specialSlot)) + .filter(Objects::nonNull), + // If the minimum amount of items required for the recipes is 0, then it could match to fluid-only recipes, + // so check fluid index too. + GT_StreamUtil.ofConditional(properties.minItemInputs == 0, fluids) + .filter(Objects::nonNull) + .map( + fluidStack -> fluidIndex.get( + fluidStack.getFluid() + .getName())) + .flatMap(Collection::stream) + .filter(recipe -> filterFindRecipe(recipe, items, fluids, specialSlot, dontCheckStackSizes)) + .map(recipe -> modifyFoundRecipe(recipe, items, fluids, specialSlot)) + .filter(Objects::nonNull), + // Lastly, find fallback. + forCollisionCheck ? Stream.empty() + : GT_StreamUtil.ofSupplier(() -> findFallback(items, fluids, specialSlot)) + .filter(Objects::nonNull)) + .flatMap(Function.identity()); + } + + /** + * The minimum filter required for recipe match logic. You can override this to have custom validation. + * <p> + * Other checks like machine voltage will be done in another places. + * <p> + * Note that this won't be called if {@link #doesOverwriteFindRecipe} is true. + */ + protected boolean filterFindRecipe(GT_Recipe recipe, ItemStack[] items, FluidStack[] fluids, + @Nullable ItemStack specialSlot, boolean dontCheckStackSizes) { + if (recipe.mEnabled && !recipe.mFakeRecipe + && recipe.isRecipeInputEqual(false, dontCheckStackSizes, fluids, items)) { + return !properties.specialSlotSensitive + || areStacksEqualOrNull((ItemStack) recipe.mSpecialItems, specialSlot); + } + return false; + } + + // endregion + + @FunctionalInterface + public interface BackendCreator<B extends RecipeMapBackend> { + + /** + * @see RecipeMapBackend#RecipeMapBackend + */ + B create(RecipeMapBackendPropertiesBuilder propertiesBuilder); + } +} diff --git a/src/main/java/gregtech/api/recipe/RecipeMapBackendProperties.java b/src/main/java/gregtech/api/recipe/RecipeMapBackendProperties.java new file mode 100644 index 0000000000..7262b794ab --- /dev/null +++ b/src/main/java/gregtech/api/recipe/RecipeMapBackendProperties.java @@ -0,0 +1,77 @@ +package gregtech.api.recipe; + +import java.util.function.Function; + +import javax.annotation.Nullable; +import javax.annotation.ParametersAreNonnullByDefault; + +import gregtech.api.util.FieldsAreNonnullByDefault; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_RecipeBuilder; +import gregtech.api.util.MethodsReturnNonnullByDefault; + +/** + * Data object to store properties used for {@link RecipeMapBackend}. Use {@link #builder()} for creation. + */ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +@FieldsAreNonnullByDefault +public final class RecipeMapBackendProperties { + + static RecipeMapBackendPropertiesBuilder builder() { + return new RecipeMapBackendPropertiesBuilder(); + } + + /** + * Minimum amount of item inputs required for the recipes. + */ + public final int minItemInputs; + /** + * Minimum amount of fluid inputs required for the recipes. + */ + public final int minFluidInputs; + + /** + * Whether this backend should check for equality of special slot when searching recipe. + */ + public final boolean specialSlotSensitive; + + /** + * If recipe builder should stop optimizing inputs. + */ + public final boolean disableOptimize; + + /** + * Changes how recipes are emitted by a particular recipe builder. + */ + public final Function<? super GT_RecipeBuilder, ? extends Iterable<? extends GT_Recipe>> recipeEmitter; + + /** + * Runs a custom hook on all recipes added <b>via builder</b>. + */ + @Nullable + public final Function<? super GT_Recipe, ? extends GT_Recipe> recipeTransformer; + + @Nullable + public final String recipeConfigCategory; + @Nullable + public final Function<? super GT_Recipe, String> recipeConfigKeyConvertor; + + RecipeMapBackendProperties(int minItemInputs, int minFluidInputs, boolean specialSlotSensitive, + boolean disableOptimize, + Function<? super GT_RecipeBuilder, ? extends Iterable<? extends GT_Recipe>> recipeEmitter, + @Nullable Function<? super GT_Recipe, ? extends GT_Recipe> recipeTransformer, + @Nullable String recipeConfigCategory, @Nullable Function<? super GT_Recipe, String> recipeConfigKeyConvertor) { + if (minItemInputs < 0 || minFluidInputs < 0) { + throw new IllegalArgumentException("minItemInputs and minFluidInputs cannot be negative"); + } + this.minItemInputs = minItemInputs; + this.minFluidInputs = minFluidInputs; + this.specialSlotSensitive = specialSlotSensitive; + this.disableOptimize = disableOptimize; + this.recipeEmitter = recipeEmitter; + this.recipeTransformer = recipeTransformer; + this.recipeConfigCategory = recipeConfigCategory; + this.recipeConfigKeyConvertor = recipeConfigKeyConvertor; + } +} diff --git a/src/main/java/gregtech/api/recipe/RecipeMapBackendPropertiesBuilder.java b/src/main/java/gregtech/api/recipe/RecipeMapBackendPropertiesBuilder.java new file mode 100644 index 0000000000..933ea1b06b --- /dev/null +++ b/src/main/java/gregtech/api/recipe/RecipeMapBackendPropertiesBuilder.java @@ -0,0 +1,119 @@ +package gregtech.api.recipe; + +import static gregtech.api.util.GT_RecipeMapUtil.buildOrEmpty; + +import java.util.function.Function; + +import javax.annotation.Nullable; +import javax.annotation.ParametersAreNonnullByDefault; + +import com.google.common.collect.Iterables; + +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_RecipeBuilder; +import gregtech.api.util.MethodsReturnNonnullByDefault; + +/** + * Builder class for {@link RecipeMapBackendProperties}. + */ +@SuppressWarnings({ "unused", "UnusedReturnValue" }) +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +public final class RecipeMapBackendPropertiesBuilder { + + private int minItemInputs; + private int minFluidInputs; + + private boolean specialSlotSensitive; + + private boolean disableOptimize; + + private Function<? super GT_RecipeBuilder, ? extends Iterable<? extends GT_Recipe>> recipeEmitter = this::defaultBuildRecipe; + + @Nullable + private Function<? super GT_Recipe, ? extends GT_Recipe> recipeTransformer; + + @Nullable + private String recipeConfigCategory; + @Nullable + private Function<? super GT_Recipe, String> recipeConfigKeyConvertor; + + RecipeMapBackendPropertiesBuilder() {} + + RecipeMapBackendProperties build() { + return new RecipeMapBackendProperties( + minItemInputs, + minFluidInputs, + specialSlotSensitive, + disableOptimize, + recipeEmitter, + recipeTransformer, + recipeConfigCategory, + recipeConfigKeyConvertor); + } + + public RecipeMapBackendPropertiesBuilder minItemInputs(int minItemInputs) { + this.minItemInputs = minItemInputs; + return this; + } + + public RecipeMapBackendPropertiesBuilder minFluidInputs(int minFluidInputs) { + this.minFluidInputs = minFluidInputs; + return this; + } + + public RecipeMapBackendPropertiesBuilder specialSlotSensitive() { + this.specialSlotSensitive = true; + return this; + } + + public RecipeMapBackendPropertiesBuilder disableOptimize() { + this.disableOptimize = true; + return this; + } + + public RecipeMapBackendPropertiesBuilder recipeEmitter( + Function<? super GT_RecipeBuilder, ? extends Iterable<? extends GT_Recipe>> recipeEmitter) { + this.recipeEmitter = recipeEmitter; + return this; + } + + public RecipeMapBackendPropertiesBuilder combineRecipeEmitter( + Function<? super GT_RecipeBuilder, ? extends Iterable<? extends GT_Recipe>> func) { + // move recipeEmitter to local variable, so lambda capture the function itself instead of this + Function<? super GT_RecipeBuilder, ? extends Iterable<? extends GT_Recipe>> cur = this.recipeEmitter; + return recipeEmitter(b -> Iterables.concat(cur.apply(b), func.apply(b))); + } + + public RecipeMapBackendPropertiesBuilder recipeTransformer( + Function<? super GT_Recipe, ? extends GT_Recipe> recipeTransformer) { + this.recipeTransformer = recipeTransformer; + return this; + } + + public RecipeMapBackendPropertiesBuilder chainRecipeTransformer( + Function<? super GT_Recipe, ? extends GT_Recipe> func) { + this.recipeTransformer = this.recipeTransformer == null ? func : this.recipeTransformer.andThen(func); + return this; + } + + public RecipeMapBackendPropertiesBuilder recipeConfigFile(String category, + Function<? super GT_Recipe, String> keyConvertor) { + this.recipeConfigCategory = category; + this.recipeConfigKeyConvertor = keyConvertor; + return this; + } + + private Iterable<? extends GT_Recipe> defaultBuildRecipe(GT_RecipeBuilder builder) { + // TODO sensible validation + GT_RecipeBuilder b = builder; + if (disableOptimize && builder.isOptimize()) { + b = copy(builder, b).noOptimize(); + } + return buildOrEmpty(b); + } + + private static GT_RecipeBuilder copy(GT_RecipeBuilder original, GT_RecipeBuilder b) { + return b == original ? b.copy() : b; + } +} diff --git a/src/main/java/gregtech/api/recipe/RecipeMapBuilder.java b/src/main/java/gregtech/api/recipe/RecipeMapBuilder.java new file mode 100644 index 0000000000..8659018934 --- /dev/null +++ b/src/main/java/gregtech/api/recipe/RecipeMapBuilder.java @@ -0,0 +1,522 @@ +package gregtech.api.recipe; + +import static gregtech.api.enums.Mods.GregTech; + +import java.awt.Rectangle; +import java.util.Collections; +import java.util.Comparator; +import java.util.function.Consumer; +import java.util.function.Function; +import java.util.function.UnaryOperator; + +import javax.annotation.ParametersAreNonnullByDefault; + +import org.apache.commons.lang3.StringUtils; + +import com.gtnewhorizons.modularui.api.drawable.FallbackableUITexture; +import com.gtnewhorizons.modularui.api.drawable.IDrawable; +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.common.widget.ProgressBar; + +import codechicken.nei.recipe.HandlerInfo; +import gregtech.api.gui.modularui.FallbackableSteamTexture; +import gregtech.api.gui.modularui.GT_UITextures; +import gregtech.api.gui.modularui.SteamTexture; +import gregtech.api.objects.overclockdescriber.OverclockDescriber; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_RecipeBuilder; +import gregtech.api.util.MethodsReturnNonnullByDefault; +import gregtech.nei.formatter.INEISpecialInfoFormatter; + +// spotless:off spotless likes formatting @code to @code +/** + * Builder class for constructing {@link RecipeMap}. Instantiate this class and call {@link #build} + * to retrieve RecipeMap. Smallest example: + * + * <pre> + * {@code + * RecipeMap<RecipeMapBackend> exampleRecipes = RecipeMapBuilder.of("example") + * .maxIO(9, 4, 1, 1) + * .build(); + * } + * </pre> + * + * Note that {@link #maxIO} is required to build. + */ +// spotless:on +@SuppressWarnings("unused") +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +public final class RecipeMapBuilder<B extends RecipeMapBackend> { + + private final String unlocalizedName; + private final RecipeMapBackendPropertiesBuilder backendPropertiesBuilder = RecipeMapBackendProperties.builder(); + private final RecipeMapBackend.BackendCreator<B> backendCreator; + private final BasicUIPropertiesBuilder uiPropertiesBuilder; + private final NEIRecipePropertiesBuilder neiPropertiesBuilder = NEIRecipeProperties.builder(); + private RecipeMapFrontend.FrontendCreator frontendCreator = RecipeMapFrontend::new; + + /** + * Constructs builder object for {@link RecipeMap} with given backend logic. For custom frontend, + * call {@link #frontend} for the created builder object. + * + * @param unlocalizedName Unique identifier for the recipemap. This is also used as translation key + * for NEI recipe GUI header, so add localization for it if needed. + * @return New builder object. + */ + public static <B extends RecipeMapBackend> RecipeMapBuilder<B> of(String unlocalizedName, + RecipeMapBackend.BackendCreator<B> backendCreator) { + return new RecipeMapBuilder<>(unlocalizedName, backendCreator); + } + + /** + * Constructs builder object for {@link RecipeMap}. + * + * @param unlocalizedName Unique identifier for the recipemap. This is also used as translation key + * for NEI recipe GUI header, so add localization for it if needed. + * @return New builder object. + */ + public static RecipeMapBuilder<RecipeMapBackend> of(String unlocalizedName) { + return new RecipeMapBuilder<>(unlocalizedName, RecipeMapBackend::new); + } + + private RecipeMapBuilder(String unlocalizedName, RecipeMapBackend.BackendCreator<B> backendCreator) { + this.unlocalizedName = unlocalizedName; + this.backendCreator = backendCreator; + this.uiPropertiesBuilder = BasicUIProperties.builder() + .progressBarTexture(GT_UITextures.fallbackableProgressbar(unlocalizedName, GT_UITextures.PROGRESSBAR_ARROW)) + .neiTransferRectId(unlocalizedName); + } + + // region backend + + /** + * Sets minimum amount of inputs required for the recipes. + */ + public RecipeMapBuilder<B> minInputs(int minItemInputs, int minFluidInputs) { + backendPropertiesBuilder.minItemInputs(minItemInputs) + .minFluidInputs(minFluidInputs); + return this; + } + + /** + * Whether this recipemap should check for equality of special slot when searching recipe. + */ + public RecipeMapBuilder<B> specialSlotSensitive() { + backendPropertiesBuilder.specialSlotSensitive(); + return this; + } + + /** + * If recipe builder should stop optimizing inputs. + */ + public RecipeMapBuilder<B> disableOptimize() { + backendPropertiesBuilder.disableOptimize(); + return this; + } + + /** + * Changes how recipes are emitted by a particular recipe builder. Can emit multiple recipe per builder. + */ + public RecipeMapBuilder<B> recipeEmitter( + Function<? super GT_RecipeBuilder, ? extends Iterable<? extends GT_Recipe>> recipeEmitter) { + backendPropertiesBuilder.recipeEmitter(recipeEmitter); + return this; + } + + /** + * Changes how recipes are emitted by a particular recipe builder. Should not return null. + * <p> + * Recipes added via one of the overloads of addRecipe will NOT be affected by this function. + */ + public RecipeMapBuilder<B> recipeEmitterSingle( + Function<? super GT_RecipeBuilder, ? extends GT_Recipe> recipeEmitter) { + return recipeEmitter(recipeEmitter.andThen(Collections::singletonList)); + } + + /** + * Changes how recipes are emitted by a particular recipe builder. Can emit multiple recipe per builder. + * <p> + * Recipes added via one of the overloads of addRecipe will NOT be affected by this function. + * <p> + * Unlike {@link #recipeEmitter(Function)}, this one does not clear the existing recipe being emitted, if any + */ + public RecipeMapBuilder<B> combineRecipeEmitter( + Function<? super GT_RecipeBuilder, ? extends Iterable<? extends GT_Recipe>> recipeEmitter) { + backendPropertiesBuilder.combineRecipeEmitter(recipeEmitter); + return this; + } + + /** + * Changes how recipes are emitted by a particular recipe builder. Effectively add a new recipe per recipe added. + * func must not return null. + * <p> + * Recipes added via one of the overloads of addRecipe will NOT be affected by this function. + * <p> + * Unlike {@link #recipeEmitter(Function)}, this one does not clear the existing recipe being emitted, if any + */ + public RecipeMapBuilder<B> combineRecipeEmitterSingle( + Function<? super GT_RecipeBuilder, ? extends GT_Recipe> recipeEmitter) { + return combineRecipeEmitter(recipeEmitter.andThen(Collections::singletonList)); + } + + /** + * Runs a custom hook on all recipes added <b>via builder</b>. For more complicated behavior, + * use {@link #recipeEmitter}. + * <p> + * Recipes added via one of the overloads of addRecipe will NOT be affected by this function. + */ + public RecipeMapBuilder<B> recipeTransformer(Function<? super GT_Recipe, ? extends GT_Recipe> recipeTransformer) { + backendPropertiesBuilder.recipeTransformer(recipeTransformer); + return this; + } + + /** + * Runs a custom hook on all recipes added <b>via builder</b>. For more complicated behavior, + * use {@link #recipeEmitter}. + * <p> + * Recipes added via one of the overloads of addRecipe will NOT be affected by this function. + */ + public RecipeMapBuilder<B> recipeTransformer(Consumer<GT_Recipe> recipeTransformer) { + return recipeTransformer(withIdentityReturn(recipeTransformer)); + } + + /** + * Runs a custom hook on all recipes added <b>via builder</b>. For more complicated behavior, + * use {@link #recipeEmitter}. + * <p> + * Recipes added via one of the overloads of addRecipe will NOT be affected by this function. + * <p> + * Unlike {@link #recipeTransformer(Function)}, this one will not replace the existing special handler. + * The supplied function will be given the output of existing handler when a recipe is added. + */ + public RecipeMapBuilder<B> chainRecipeTransformer( + Function<? super GT_Recipe, ? extends GT_Recipe> recipeTransformer) { + backendPropertiesBuilder.chainRecipeTransformer(recipeTransformer); + return this; + } + + /** + * Runs a custom hook on all recipes added <b>via builder</b>. For more complicated behavior, + * use {@link #recipeEmitter}. + * <p> + * Recipes added via one of the overloads of addRecipe will NOT be affected by this function. + * <p> + * Unlike {@link #recipeTransformer(Function)}, this one will not replace the existing special handler. + * The supplied function will be given the output of existing handler when a recipe is added. + */ + public RecipeMapBuilder<B> chainRecipeTransformer(Consumer<GT_Recipe> recipeTransformer) { + return chainRecipeTransformer(withIdentityReturn(recipeTransformer)); + } + + public RecipeMapBuilder<B> recipeConfigFile(String category, Function<? super GT_Recipe, String> keyConvertor) { + if (StringUtils.isBlank(category)) throw new IllegalArgumentException(); + backendPropertiesBuilder.recipeConfigFile(category, keyConvertor); + return this; + } + + // endregion + + // region frontend UI properties + + /** + * Sets how many item/fluid inputs/outputs does this recipemap usually has at most. + * It does not actually restrict the number of items that can be used in recipes. + */ + public RecipeMapBuilder<B> maxIO(int maxItemInputs, int maxItemOutputs, int maxFluidInputs, int maxFluidOutputs) { + uiPropertiesBuilder.maxItemInputs(maxItemInputs) + .maxItemOutputs(maxItemOutputs) + .maxFluidInputs(maxFluidInputs) + .maxFluidOutputs(maxFluidOutputs); + return this; + } + + /** + * Sets function to get overlay for slots. + */ + public RecipeMapBuilder<B> slotOverlays(BasicUIProperties.SlotOverlayGetter<IDrawable> slotOverlays) { + uiPropertiesBuilder.slotOverlays(slotOverlays); + return this; + } + + /** + * Sets function to get overlay for slots of steam machines. + */ + public RecipeMapBuilder<B> slotOverlaysSteam(BasicUIProperties.SlotOverlayGetter<SteamTexture> slotOverlaysSteam) { + uiPropertiesBuilder.slotOverlaysSteam(slotOverlaysSteam); + return this; + } + + /** + * Sets texture and animation direction of the progressbar. + * <p> + * Unless specified, size should be (20, 36), consisting of two parts; + * First is (20, 18) size of "empty" image at the top, Second is (20, 18) size of "filled" image at the bottom. + * <p> + * By default, it's set to {@code GT_UITextures.PROGRESSBAR_ARROW, ProgressBar.Direction.RIGHT}. + */ + public RecipeMapBuilder<B> progressBar(UITexture texture, ProgressBar.Direction direction) { + return progressBarWithFallback(GT_UITextures.fallbackableProgressbar(unlocalizedName, texture), direction); + } + + /** + * Sets progressbar texture with right direction. + * <p> + * Unless specified, size should be (20, 36), consisting of two parts; + * First is (20, 18) size of "empty" image at the top, Second is (20, 18) size of "filled" image at the bottom. + */ + public RecipeMapBuilder<B> progressBar(UITexture texture) { + return progressBar(texture, ProgressBar.Direction.RIGHT); + } + + /** + * Some resource packs want to use custom progress bar textures even for plain arrow. This method allows them to + * add unique textures, yet other packs don't need to make textures for every recipemap. + */ + private RecipeMapBuilder<B> progressBarWithFallback(FallbackableUITexture texture, + ProgressBar.Direction direction) { + uiPropertiesBuilder.progressBarTexture(texture) + .progressBarDirection(direction); + return this; + } + + /** + * Sets progressbar texture for steam machines. + * <p> + * Unless specified, size should be (20, 36), consisting of two parts; + * First is (20, 18) size of "empty" image at the top, Second is (20, 18) size of "filled" image at the bottom. + */ + public RecipeMapBuilder<B> progressBarSteam(SteamTexture texture) { + return progressBarSteamWithFallback( + new FallbackableSteamTexture( + SteamTexture.fullImage(GregTech.ID, "gui/progressbar/" + unlocalizedName + "_%s"), + texture)); + } + + private RecipeMapBuilder<B> progressBarSteamWithFallback(FallbackableSteamTexture texture) { + uiPropertiesBuilder.progressBarTextureSteam(texture); + return this; + } + + /** + * Sets size of the progressbar. (20, 36) by default. + */ + public RecipeMapBuilder<B> progressBarSize(int x, int y) { + uiPropertiesBuilder.progressBarSize(new Size(x, y)); + return this; + } + + /** + * Sets position of the progressbar. (78, 24) by default. + */ + public RecipeMapBuilder<B> progressBarPos(int x, int y) { + uiPropertiesBuilder.progressBarPos(new Pos2d(x, y)); + return this; + } + + /** + * Stops adding progressbar to the UI. + */ + public RecipeMapBuilder<B> dontUseProgressBar() { + uiPropertiesBuilder.useProgressBar(false); + return this; + } + + /** + * Configures this recipemap to use special slot. This means special slot shows up on NEI and tooltip for + * special slot on basic machine GUI indicates it has actual usage. + */ + public RecipeMapBuilder<B> useSpecialSlot() { + uiPropertiesBuilder.useSpecialSlot(true); + return this; + } + + /** + * Adds GUI area where clicking shows up all the recipes available. + * + * @see codechicken.nei.recipe.TemplateRecipeHandler.RecipeTransferRect + */ + public RecipeMapBuilder<B> neiTransferRect(int x, int y, int width, int height) { + uiPropertiesBuilder.addNEITransferRect(new Rectangle(x, y, width, height)); + return this; + } + + /** + * Sets ID used to open NEI recipe GUI when progressbar is clicked. + */ + public RecipeMapBuilder<B> neiTransferRectId(String neiTransferRectId) { + uiPropertiesBuilder.neiTransferRectId(neiTransferRectId); + return this; + } + + /** + * Adds additional textures shown on GUI. + */ + public RecipeMapBuilder<B> addSpecialTexture(int x, int y, int width, int height, IDrawable texture) { + uiPropertiesBuilder.addSpecialTexture(new Size(width, height), new Pos2d(x, y), texture); + return this; + } + + /** + * Adds additional textures shown on steam machine GUI. + */ + public RecipeMapBuilder<B> addSpecialTextureSteam(int x, int y, int width, int height, SteamTexture texture) { + uiPropertiesBuilder.addSpecialTextureSteam(new Size(width, height), new Pos2d(x, y), texture); + return this; + } + + /** + * Sets logo shown on GUI. GregTech logo by default. + */ + public RecipeMapBuilder<B> logo(IDrawable logo) { + uiPropertiesBuilder.logo(logo); + return this; + } + + /** + * Sets size of logo. (17, 17) by default. + */ + public RecipeMapBuilder<B> logoSize(int width, int height) { + uiPropertiesBuilder.logoSize(new Size(width, height)); + return this; + } + + /** + * Sets position of logo. (152, 63) by default. + */ + public RecipeMapBuilder<B> logoPos(int x, int y) { + uiPropertiesBuilder.logoPos(new Pos2d(x, y)); + return this; + } + + /** + * Sets amperage for the recipemap. + */ + public RecipeMapBuilder<B> amperage(int amperage) { + uiPropertiesBuilder.amperage(amperage); + return this; + } + + // endregion + + // region frontend NEI properties + + /** + * Stops adding dedicated NEI recipe page for this recipemap. This does not prevent adding transferrect + * for the machine GUI. + */ + public RecipeMapBuilder<B> disableRegisterNEI() { + neiPropertiesBuilder.disableRegisterNEI(); + return this; + } + + /** + * Sets properties of NEI handler info this recipemap belongs to. You can specify icon shown on recipe tab, + * handler height, number of recipes per page, etc. Either use supplied template or return newly constructed one. + * <p> + * Invocation of the builder creator is delayed until the actual registration (FMLLoadCompleteEvent), + * so you can safely use itemstack that doesn't exist as of recipemap initialization. + * <p> + * If this method is not used, handler icon will be inferred from recipe catalysts associated with this recipemap. + * <p> + * Precisely, what's registered to NEI is {@link RecipeCategory}, not RecipeMap. However, handler info supplied + * by this method will be used for default category where most of the recipes belong to. + */ + public RecipeMapBuilder<B> neiHandlerInfo(UnaryOperator<HandlerInfo.Builder> handlerInfoCreator) { + neiPropertiesBuilder.handlerInfoCreator(handlerInfoCreator); + return this; + } + + /** + * Sets offset of background shown on NEI. + */ + public RecipeMapBuilder<B> neiRecipeBackgroundSize(int width, int height) { + neiPropertiesBuilder.recipeBackgroundSize(new Size(width, height)); + return this; + } + + /** + * Sets size of background shown on NEI. + */ + public RecipeMapBuilder<B> neiRecipeBackgroundOffset(int x, int y) { + neiPropertiesBuilder.recipeBackgroundOffset(new Pos2d(x, y)); + return this; + } + + /** + * Sets formatter for special description for the recipe, mainly {@link gregtech.api.util.GT_Recipe#mSpecialValue}. + */ + public RecipeMapBuilder<B> neiSpecialInfoFormatter(INEISpecialInfoFormatter neiSpecialInfoFormatter) { + neiPropertiesBuilder.neiSpecialInfoFormatter(neiSpecialInfoFormatter); + return this; + } + + /** + * Sets whether to show oredict equivalent item outputs on NEI. + */ + public RecipeMapBuilder<B> unificateOutputNEI(boolean unificateOutputNEI) { + neiPropertiesBuilder.unificateOutput(unificateOutputNEI); + return this; + } + + /** + * Sets NEI recipe handler to use a custom filter method {@link OverclockDescriber#canHandle} to limit the shown + * recipes when searching recipes with recipe catalyst. Without calling this method, the voltage of the recipe is + * the only factor to filter recipes by default. + * <p> + * This method on its own doesn't do anything. You need to bind custom {@link OverclockDescriber} object to machines + * that will be shown as recipe catalysts for this recipemap by implementing + * {@link gregtech.api.interfaces.tileentity.IOverclockDescriptionProvider}. + */ + public RecipeMapBuilder<B> useCustomFilterForNEI() { + neiPropertiesBuilder.useCustomFilter(); + return this; + } + + /** + * Stops rendering the actual stack size of items on NEI. + */ + public RecipeMapBuilder<B> disableRenderRealStackSizes() { + neiPropertiesBuilder.disableRenderRealStackSizes(); + return this; + } + + /** + * Sets custom comparator for NEI recipe sort. + */ + public RecipeMapBuilder<B> neiRecipeComparator(Comparator<GT_Recipe> comparator) { + neiPropertiesBuilder.recipeComparator(comparator); + return this; + } + + // endregion + + /** + * Sets custom frontend logic. For custom backend, pass it to {@link #of(String, RecipeMapBackend.BackendCreator)}. + */ + public RecipeMapBuilder<B> frontend(RecipeMapFrontend.FrontendCreator frontendCreator) { + this.frontendCreator = frontendCreator; + return this; + } + + /** + * Builds new recipemap. + * + * @return Recipemap object with backend type parameter, which is {@code RecipeMapFrontend} unless specified. + */ + public RecipeMap<B> build() { + return new RecipeMap<>( + unlocalizedName, + backendCreator.create(backendPropertiesBuilder), + frontendCreator.create(uiPropertiesBuilder, neiPropertiesBuilder)); + } + + private static <T> Function<? super T, ? extends T> withIdentityReturn(Consumer<T> func) { + return r -> { + func.accept(r); + return r; + }; + } +} diff --git a/src/main/java/gregtech/api/recipe/RecipeMapFrontend.java b/src/main/java/gregtech/api/recipe/RecipeMapFrontend.java new file mode 100644 index 0000000000..63daa00dc7 --- /dev/null +++ b/src/main/java/gregtech/api/recipe/RecipeMapFrontend.java @@ -0,0 +1,395 @@ +package gregtech.api.recipe; + +import static gregtech.api.util.GT_Utility.trans; +import static net.minecraft.util.EnumChatFormatting.GRAY; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.function.Supplier; +import java.util.stream.IntStream; + +import javax.annotation.ParametersAreNonnullByDefault; + +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; + +import org.apache.commons.lang3.tuple.Pair; + +import com.gtnewhorizons.modularui.api.GlStateManager; +import com.gtnewhorizons.modularui.api.ModularUITextures; +import com.gtnewhorizons.modularui.api.drawable.IDrawable; +import com.gtnewhorizons.modularui.api.forge.IItemHandlerModifiable; +import com.gtnewhorizons.modularui.api.math.Alignment; +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.common.widget.DrawableWidget; +import com.gtnewhorizons.modularui.common.widget.ProgressBar; +import com.gtnewhorizons.modularui.common.widget.SlotWidget; + +import codechicken.nei.PositionedStack; +import gregtech.GT_Mod; +import gregtech.api.enums.SteamVariant; +import gregtech.api.gui.GT_GUIColorOverride; +import gregtech.api.gui.modularui.GT_UITextures; +import gregtech.api.recipe.metadata.IRecipeMetadataStorage; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.MethodsReturnNonnullByDefault; +import gregtech.common.gui.modularui.UIHelper; +import gregtech.nei.GT_NEI_DefaultHandler; +import gregtech.nei.RecipeDisplayInfo; + +/** + * Responsible for managing GUI tied to recipemap. It has two property objects, {@link NEIRecipeProperties} and + * {@link BasicUIProperties}. The former is only for NEI display, while the latter is for both NEI and basic machine. + * <p> + * In order to bind custom frontend to recipemap, use {@link RecipeMapBuilder#frontend}. + */ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +public class RecipeMapFrontend { + + /** + * Properties specific to this frontend, mainly for GUI widgets. + */ + protected final BasicUIProperties uiProperties; + /** + * Properties specific to this frontend, only for NEI specific settings. + */ + protected final NEIRecipeProperties neiProperties; + + protected final GT_GUIColorOverride colorOverride = GT_GUIColorOverride + .get(GT_UITextures.BACKGROUND_NEI_SINGLE_RECIPE.location); + + public RecipeMapFrontend(BasicUIPropertiesBuilder uiPropertiesBuilder, + NEIRecipePropertiesBuilder neiPropertiesBuilder) { + this.uiProperties = uiPropertiesBuilder.itemInputPositionsGetter(this::getItemInputPositions) + .itemOutputPositionsGetter(this::getItemOutputPositions) + .specialItemPositionGetter(this::getSpecialItemPosition) + .fluidInputPositionsGetter(this::getFluidInputPositions) + .fluidOutputPositionsGetter(this::getFluidOutputPositions) + .build(); + this.neiProperties = neiPropertiesBuilder.build(); + } + + /** + * @return Properties specific to this frontend, mainly for GUI widgets. + */ + public BasicUIProperties getUIProperties() { + return uiProperties; + } + + /** + * @return Properties specific to this frontend, only for NEI specific settings. + */ + public NEIRecipeProperties getNEIProperties() { + return neiProperties; + } + + /** + * Creates NEI recipe layout, except for actual items / fluids. + */ + public ModularWindow.Builder createNEITemplate(IItemHandlerModifiable itemInputsInventory, + IItemHandlerModifiable itemOutputsInventory, IItemHandlerModifiable specialSlotInventory, + IItemHandlerModifiable fluidInputsInventory, IItemHandlerModifiable fluidOutputsInventory, + Supplier<Float> progressSupplier, Pos2d windowOffset) { + ModularWindow.Builder builder = ModularWindow.builder(neiProperties.recipeBackgroundSize) + .setBackground(GT_UITextures.BACKGROUND_NEI_SINGLE_RECIPE); + + UIHelper.forEachSlots( + (i, backgrounds, pos) -> builder.widget( + SlotWidget.phantom(itemInputsInventory, i) + .setBackground(backgrounds) + .setPos(pos) + .setSize(18, 18)), + (i, backgrounds, pos) -> builder.widget( + SlotWidget.phantom(itemOutputsInventory, i) + .setBackground(backgrounds) + .setPos(pos) + .setSize(18, 18)), + (i, backgrounds, pos) -> { + if (uiProperties.useSpecialSlot) builder.widget( + SlotWidget.phantom(specialSlotInventory, 0) + .setBackground(backgrounds) + .setPos(pos) + .setSize(18, 18)); + }, + (i, backgrounds, pos) -> builder.widget( + SlotWidget.phantom(fluidInputsInventory, i) + .setBackground(backgrounds) + .setPos(pos) + .setSize(18, 18)), + (i, backgrounds, pos) -> builder.widget( + SlotWidget.phantom(fluidOutputsInventory, i) + .setBackground(backgrounds) + .setPos(pos) + .setSize(18, 18)), + ModularUITextures.ITEM_SLOT, + ModularUITextures.FLUID_SLOT, + uiProperties, + uiProperties.maxItemInputs, + uiProperties.maxItemOutputs, + uiProperties.maxFluidInputs, + uiProperties.maxFluidOutputs, + SteamVariant.NONE, + windowOffset); + + if (uiProperties.useProgressBar) { + addProgressBar(builder, progressSupplier, windowOffset); + } + addGregTechLogo(builder, windowOffset); + + for (Pair<IDrawable, Pair<Size, Pos2d>> specialTexture : uiProperties.specialTextures) { + builder.widget( + new DrawableWidget().setDrawable(specialTexture.getLeft()) + .setSize( + specialTexture.getRight() + .getLeft()) + .setPos( + specialTexture.getRight() + .getRight() + .add(windowOffset))); + } + + return builder; + } + + public void addProgressBar(ModularWindow.Builder builder, Supplier<Float> progressSupplier, Pos2d windowOffset) { + assert uiProperties.progressBarTexture != null; + builder.widget( + new ProgressBar().setTexture(uiProperties.progressBarTexture.get(), 20) + .setDirection(uiProperties.progressBarDirection) + .setProgress(progressSupplier) + .setSynced(false, false) + .setPos(uiProperties.progressBarPos.add(windowOffset)) + .setSize(uiProperties.progressBarSize)); + } + + public void addGregTechLogo(ModularWindow.Builder builder, Pos2d windowOffset) { + builder.widget( + new DrawableWidget().setDrawable(uiProperties.logo) + .setSize(uiProperties.logoSize) + .setPos(uiProperties.logoPos.add(windowOffset))); + } + + /** + * Overriding this method allows custom NEI stack placement + */ + public List<Pos2d> getItemInputPositions(int itemInputCount) { + return UIHelper.getItemInputPositions(itemInputCount); + } + + /** + * Overriding this method allows custom NEI stack placement + */ + public List<Pos2d> getItemOutputPositions(int itemOutputCount) { + return UIHelper.getItemOutputPositions(itemOutputCount); + } + + /** + * Overriding this method allows custom NEI stack placement + */ + public Pos2d getSpecialItemPosition() { + return UIHelper.getSpecialItemPosition(); + } + + /** + * Overriding this method allows custom NEI stack placement + */ + public List<Pos2d> getFluidInputPositions(int fluidInputCount) { + return UIHelper.getFluidInputPositions(fluidInputCount); + } + + /** + * Overriding this method allows custom NEI stack placement + */ + public List<Pos2d> getFluidOutputPositions(int fluidOutputCount) { + return UIHelper.getFluidOutputPositions(fluidOutputCount); + } + + public void drawDescription(RecipeDisplayInfo recipeInfo) { + drawEnergyInfo(recipeInfo); + drawDurationInfo(recipeInfo); + drawSpecialInfo(recipeInfo); + drawMetadataInfo(recipeInfo); + drawRecipeOwnerInfo(recipeInfo); + } + + protected void drawEnergyInfo(RecipeDisplayInfo recipeInfo) { + recipeInfo.overclockDescriber.drawEnergyInfo(recipeInfo); + } + + protected void drawDurationInfo(RecipeDisplayInfo recipeInfo) { + recipeInfo.overclockDescriber.drawDurationInfo(recipeInfo); + } + + protected void drawSpecialInfo(RecipeDisplayInfo recipeInfo) { + String[] recipeDesc = recipeInfo.recipe.getNeiDesc(); + if (recipeDesc != null) { + for (String s : recipeDesc) { + recipeInfo.drawText(s); + } + } else { + recipeInfo.drawTextMultipleLines(neiProperties.neiSpecialInfoFormatter.format(recipeInfo)); + } + } + + protected void drawMetadataInfo(RecipeDisplayInfo recipeInfo) { + IRecipeMetadataStorage metadataStorage = recipeInfo.recipe.getMetadataStorage(); + for (Map.Entry<RecipeMetadataKey<?>, Object> entry : metadataStorage.getEntries()) { + entry.getKey() + .drawInfo(recipeInfo, entry.getValue()); + } + } + + protected void drawRecipeOwnerInfo(RecipeDisplayInfo recipeInfo) { + GT_Recipe recipe = recipeInfo.recipe; + if (GT_Mod.gregtechproxy.mNEIRecipeOwner) { + if (recipe.owners.size() > 1) { + recipeInfo.drawText( + EnumChatFormatting.ITALIC + trans("273", "Original Recipe by: ") + + recipe.owners.get(0) + .getName()); + for (int i = 1; i < recipe.owners.size(); i++) { + recipeInfo.drawText( + EnumChatFormatting.ITALIC + trans("274", "Modified by: ") + + recipe.owners.get(i) + .getName()); + } + } else if (!recipe.owners.isEmpty()) { + recipeInfo.drawText( + EnumChatFormatting.ITALIC + trans("272", "Recipe by: ") + + recipe.owners.get(0) + .getName()); + } + } + if (GT_Mod.gregtechproxy.mNEIRecipeOwnerStackTrace && recipe.stackTraces != null + && !recipe.stackTraces.isEmpty()) { + recipeInfo.drawText("stackTrace:"); + // todo: good way to show all stacktraces + for (String stackTrace : recipe.stackTraces.get(0)) { + recipeInfo.drawText(stackTrace); + } + } + } + + public List<String> handleNEIItemTooltip(ItemStack stack, List<String> currentTip, + GT_NEI_DefaultHandler.CachedDefaultRecipe neiCachedRecipe) { + for (PositionedStack pStack : neiCachedRecipe.mInputs) { + if (stack == pStack.item) { + if (pStack instanceof GT_NEI_DefaultHandler.FixedPositionedStack) { + currentTip = handleNEIItemInputTooltip( + currentTip, + (GT_NEI_DefaultHandler.FixedPositionedStack) pStack); + } + break; + } + } + for (PositionedStack pStack : neiCachedRecipe.mOutputs) { + if (stack == pStack.item) { + if (pStack instanceof GT_NEI_DefaultHandler.FixedPositionedStack) { + currentTip = handleNEIItemOutputTooltip( + currentTip, + (GT_NEI_DefaultHandler.FixedPositionedStack) pStack); + } + break; + } + } + return currentTip; + } + + protected List<String> handleNEIItemInputTooltip(List<String> currentTip, + GT_NEI_DefaultHandler.FixedPositionedStack pStack) { + if (pStack.isNotConsumed()) { + currentTip.add(GRAY + trans("151", "Does not get consumed in the process")); + } + return currentTip; + } + + protected List<String> handleNEIItemOutputTooltip(List<String> currentTip, + GT_NEI_DefaultHandler.FixedPositionedStack pStack) { + if (pStack.isChanceBased()) { + currentTip.add(GRAY + trans("150", "Chance: ") + pStack.getChanceText()); + } + return currentTip; + } + + public void drawNEIOverlays(GT_NEI_DefaultHandler.CachedDefaultRecipe neiCachedRecipe) { + for (PositionedStack stack : neiCachedRecipe.mInputs) { + if (stack instanceof GT_NEI_DefaultHandler.FixedPositionedStack) { + drawNEIOverlayForInput((GT_NEI_DefaultHandler.FixedPositionedStack) stack); + } + } + for (PositionedStack stack : neiCachedRecipe.mOutputs) { + if (stack instanceof GT_NEI_DefaultHandler.FixedPositionedStack) { + drawNEIOverlayForOutput((GT_NEI_DefaultHandler.FixedPositionedStack) stack); + } + } + } + + protected void drawNEIOverlayForInput(GT_NEI_DefaultHandler.FixedPositionedStack stack) { + if (stack.isNotConsumed()) { + drawNEIOverlayText("NC", stack); + } + } + + protected void drawNEIOverlayForOutput(GT_NEI_DefaultHandler.FixedPositionedStack stack) { + if (stack.isChanceBased()) { + drawNEIOverlayText(stack.getChanceText(), stack); + } + } + + @SuppressWarnings("SameParameterValue") + protected void drawNEIOverlayText(String text, PositionedStack stack, int color, float scale, boolean shadow, + Alignment alignment) { + FontRenderer fontRenderer = net.minecraft.client.Minecraft.getMinecraft().fontRenderer; + int width = fontRenderer.getStringWidth(text); + int x = (int) ((stack.relx + 8 + 8 * alignment.x) / scale) - (width / 2 * (alignment.x + 1)); + int y = (int) ((stack.rely + 8 + 8 * alignment.y) / scale) - (fontRenderer.FONT_HEIGHT / 2 * (alignment.y + 1)) + - (alignment.y - 1) / 2; + + GlStateManager.pushMatrix(); + GlStateManager.scale(scale, scale, 1); + fontRenderer.drawString(text, x, y, color, shadow); + GlStateManager.popMatrix(); + } + + protected void drawNEIOverlayText(String text, PositionedStack stack) { + drawNEIOverlayText( + text, + stack, + colorOverride.getTextColorOrDefault("nei_overlay_yellow", 0xFDD835), + 0.5f, + false, + Alignment.TopLeft); + } + + public static List<Supplier<Float>> splitProgress(Supplier<Float> progress, int... progressbarLengthArray) { + float lengthSum = IntStream.of(progressbarLengthArray) + .sum(); + List<Supplier<Float>> ret = new ArrayList<>(); + float currentLengthSum = 0; + for (int progressbarLength : progressbarLengthArray) { + float speed = lengthSum / progressbarLength; + float offset = currentLengthSum / lengthSum; + ret.add(() -> { + float current = progress.get(); + return (current - offset) * speed; + }); + currentLengthSum += progressbarLength; + } + return ret; + } + + @FunctionalInterface + public interface FrontendCreator { + + /** + * @see RecipeMapFrontend#RecipeMapFrontend + */ + RecipeMapFrontend create(BasicUIPropertiesBuilder uiPropertiesBuilder, + NEIRecipePropertiesBuilder neiPropertiesBuilder); + } +} diff --git a/src/main/java/gregtech/api/recipe/RecipeMaps.java b/src/main/java/gregtech/api/recipe/RecipeMaps.java new file mode 100644 index 0000000000..f11466a426 --- /dev/null +++ b/src/main/java/gregtech/api/recipe/RecipeMaps.java @@ -0,0 +1,1177 @@ +package gregtech.api.recipe; + +import static gregtech.api.enums.Mods.*; +import static gregtech.api.util.GT_RecipeConstants.ADDITIVE_AMOUNT; +import static gregtech.api.util.GT_RecipeConstants.FUEL_VALUE; +import static gregtech.api.util.GT_RecipeMapUtil.*; +import static gregtech.api.util.GT_Utility.*; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.Comparator; +import java.util.Optional; + +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidStack; + +import org.apache.commons.lang3.ArrayUtils; + +import com.gtnewhorizons.modularui.api.drawable.UITexture; +import com.gtnewhorizons.modularui.common.widget.ProgressBar; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.gui.modularui.GT_UITextures; +import gregtech.api.interfaces.IRecipeMap; +import gregtech.api.objects.ItemData; +import gregtech.api.recipe.maps.AssemblerBackend; +import gregtech.api.recipe.maps.AssemblyLineFrontend; +import gregtech.api.recipe.maps.DistillationTowerFrontend; +import gregtech.api.recipe.maps.FluidCannerBackend; +import gregtech.api.recipe.maps.FluidOnlyFrontend; +import gregtech.api.recipe.maps.FormingPressBackend; +import gregtech.api.recipe.maps.FuelBackend; +import gregtech.api.recipe.maps.FurnaceBackend; +import gregtech.api.recipe.maps.LargeBoilerFuelBackend; +import gregtech.api.recipe.maps.LargeBoilerFuelFrontend; +import gregtech.api.recipe.maps.LargeNEIFrontend; +import gregtech.api.recipe.maps.MicrowaveBackend; +import gregtech.api.recipe.maps.OilCrackerBackend; +import gregtech.api.recipe.maps.PrinterBackend; +import gregtech.api.recipe.maps.RecyclerBackend; +import gregtech.api.recipe.maps.ReplicatorBackend; +import gregtech.api.recipe.maps.SpaceProjectFrontend; +import gregtech.api.recipe.maps.TranscendentPlasmaMixerFrontend; +import gregtech.api.recipe.maps.UnpackagerBackend; +import gregtech.api.recipe.metadata.PCBFactoryTierKey; +import gregtech.api.util.GT_Config; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_RecipeConstants; +import gregtech.api.util.GT_RecipeMapUtil; +import gregtech.api.util.GT_Utility; +import gregtech.nei.formatter.FuelSpecialValueFormatter; +import gregtech.nei.formatter.FusionSpecialValueFormatter; +import gregtech.nei.formatter.HeatingCoilSpecialValueFormatter; +import gregtech.nei.formatter.SimpleSpecialValueFormatter; +import mods.railcraft.common.blocks.aesthetics.cube.EnumCube; +import mods.railcraft.common.items.RailcraftToolItems; + +@SuppressWarnings("SimplifyOptionalCallChains") +public final class RecipeMaps { + + public static final RecipeMap<RecipeMapBackend> oreWasherRecipes = RecipeMapBuilder.of("gt.recipe.orewasher") + .maxIO(1, 3, 1, 0) + .minInputs(1, 1) + .slotOverlays((index, isFluid, isOutput, isSpecial) -> { + if (isFluid) { + return null; + } + if (isOutput) { + return GT_UITextures.OVERLAY_SLOT_DUST; + } else { + return GT_UITextures.OVERLAY_SLOT_CRUSHED_ORE; + } + }) + .progressBar(GT_UITextures.PROGRESSBAR_BATH, ProgressBar.Direction.CIRCULAR_CW) + .recipeConfigFile("orewasher", FIRST_ITEM_INPUT) + .build(); + public static final RecipeMap<RecipeMapBackend> thermalCentrifugeRecipes = RecipeMapBuilder + .of("gt.recipe.thermalcentrifuge") + .maxIO(1, 3, 0, 0) + .minInputs(1, 0) + .amperage(2) + .slotOverlays((index, isFluid, isOutput, isSpecial) -> { + if (isFluid) { + return null; + } + if (isOutput) { + return GT_UITextures.OVERLAY_SLOT_DUST; + } else { + return GT_UITextures.OVERLAY_SLOT_CRUSHED_ORE; + } + }) + .recipeConfigFile("thermalcentrifuge", FIRST_ITEM_INPUT) + .build(); + public static final RecipeMap<RecipeMapBackend> compressorRecipes = RecipeMapBuilder.of("gt.recipe.compressor") + .maxIO(1, 1, 0, 0) + .minInputs(1, 0) + .slotOverlays( + (index, isFluid, isOutput, isSpecial) -> !isFluid && !isOutput ? GT_UITextures.OVERLAY_SLOT_COMPRESSOR + : null) + .progressBar(GT_UITextures.PROGRESSBAR_COMPRESS) + .slotOverlaysSteam( + (index, isFluid, isOutput, isSpecial) -> !isFluid && !isOutput ? GT_UITextures.OVERLAY_SLOT_COMPRESSOR_STEAM + : null) + .progressBarSteam(GT_UITextures.PROGRESSBAR_COMPRESS_STEAM) + // Avoid steam machine being used as handler icon + .neiHandlerInfo(builder -> builder.setDisplayStack(ItemList.Machine_LV_Compressor.get(1))) + .recipeConfigFile("compressor", FIRST_ITEM_INPUT) + .build(); + public static final RecipeMap<RecipeMapBackend> extractorRecipes = RecipeMapBuilder.of("gt.recipe.extractor") + .maxIO(1, 1, 0, 0) + .minInputs(1, 0) + .slotOverlays( + (index, isFluid, isOutput, isSpecial) -> !isFluid && !isOutput ? GT_UITextures.OVERLAY_SLOT_CENTRIFUGE + : null) + .progressBar(GT_UITextures.PROGRESSBAR_EXTRACT) + .slotOverlaysSteam( + (index, isFluid, isOutput, isSpecial) -> !isFluid && !isOutput ? GT_UITextures.OVERLAY_SLOT_CENTRIFUGE_STEAM + : null) + .progressBarSteam(GT_UITextures.PROGRESSBAR_EXTRACT_STEAM) + // Avoid steam machine being used as handler icon + .neiHandlerInfo(builder -> builder.setDisplayStack(ItemList.Machine_LV_Extractor.get(1))) + .recipeConfigFile("extractor", FIRST_ITEM_INPUT) + .build(); + public static final RecipeMap<RecyclerBackend> recyclerRecipes = RecipeMapBuilder + .of("ic.recipe.recycler", RecyclerBackend::new) + .maxIO(1, 1, 0, 0) + .minInputs(1, 0) + .slotOverlays( + (index, isFluid, isOutput, isSpecial) -> !isFluid && !isOutput ? GT_UITextures.OVERLAY_SLOT_RECYCLE : null) + .progressBar(GT_UITextures.PROGRESSBAR_RECYCLE, ProgressBar.Direction.CIRCULAR_CW) + .neiTransferRectId("ic2.recycler") + .disableRegisterNEI() + .build(); + public static final RecipeMap<FurnaceBackend> furnaceRecipes = RecipeMapBuilder + .of("mc.recipe.furnace", FurnaceBackend::new) + .maxIO(1, 1, 0, 0) + .minInputs(1, 9) + .slotOverlays( + (index, isFluid, isOutput, isSpecial) -> !isFluid && !isOutput ? GT_UITextures.OVERLAY_SLOT_FURNACE : null) + .slotOverlaysSteam( + (index, isFluid, isOutput, isSpecial) -> !isFluid && !isOutput ? GT_UITextures.OVERLAY_SLOT_FURNACE_STEAM + : null) + .progressBarSteam(GT_UITextures.PROGRESSBAR_ARROW_STEAM) + .neiTransferRectId("smelting") + .disableRegisterNEI() + .build(); + public static final RecipeMap<MicrowaveBackend> microwaveRecipes = RecipeMapBuilder + .of("gt.recipe.microwave", MicrowaveBackend::new) + .maxIO(1, 1, 0, 0) + .minInputs(1, 0) + .slotOverlays( + (index, isFluid, isOutput, isSpecial) -> !isFluid && !isOutput ? GT_UITextures.OVERLAY_SLOT_FURNACE : null) + .neiTransferRectId("smelting") + .disableRegisterNEI() + .build(); + public static final RecipeMap<RecipeMapBackend> scannerFakeRecipes = RecipeMapBuilder.of("gt.recipe.scanner") + .maxIO(1, 1, 1, 0) + .minInputs(1, 0) + .useSpecialSlot() + .slotOverlays((index, isFluid, isOutput, isSpecial) -> { + if (isSpecial) { + return GT_UITextures.OVERLAY_SLOT_DATA_ORB; + } + if (!isFluid && !isOutput) { + return GT_UITextures.OVERLAY_SLOT_MICROSCOPE; + } + return null; + }) + .build(); + public static final RecipeMap<RecipeMapBackend> rockBreakerFakeRecipes = RecipeMapBuilder + .of("gt.recipe.rockbreaker") + .maxIO(2, 1, 0, 0) + .slotOverlays((index, isFluid, isOutput, isSpecial) -> { + if (isOutput) { + return GT_UITextures.OVERLAY_SLOT_CRUSHED_ORE; + } else { + return GT_UITextures.OVERLAY_SLOT_DUST; + } + }) + .progressBar(GT_UITextures.PROGRESSBAR_MACERATE) + .build(); + public static final RecipeMap<ReplicatorBackend> replicatorRecipes = RecipeMapBuilder + .of("gt.recipe.replicator", ReplicatorBackend::new) + .maxIO(0, 1, 1, 1) + .minInputs(0, 1) + .useSpecialSlot() + .slotOverlays((index, isFluid, isOutput, isSpecial) -> { + if (isSpecial) { + return GT_UITextures.OVERLAY_SLOT_DATA_ORB; + } + if (isFluid && !isOutput) { + return GT_UITextures.OVERLAY_SLOT_UUM; + } + return null; + }) + .build(); + /** + * Use {@link GT_RecipeConstants#AssemblyLine} for recipe addition. + */ + public static final RecipeMap<RecipeMapBackend> assemblylineVisualRecipes = RecipeMapBuilder + .of("gt.recipe.fakeAssemblylineProcess") + .maxIO(16, 1, 4, 0) + .minInputs(1, 0) + .useSpecialSlot() + .slotOverlays((index, isFluid, isOutput, isSpecial) -> isSpecial ? GT_UITextures.OVERLAY_SLOT_DATA_ORB : null) + .disableOptimize() + .neiTransferRect(88, 8, 18, 72) + .neiTransferRect(124, 8, 18, 72) + .neiTransferRect(142, 26, 18, 18) + .frontend(AssemblyLineFrontend::new) + .build(); + /** + * Usually, but not always, you should use {@link GT_RecipeConstants#UniversalArcFurnace} instead. + */ + public static final RecipeMap<RecipeMapBackend> plasmaArcFurnaceRecipes = RecipeMapBuilder + .of("gt.recipe.plasmaarcfurnace") + .maxIO(1, 9, 1, 1) + .minInputs(1, 1) + .recipeConfigFile("arcfurnace", FIRST_ITEM_INPUT) + .build(); + /** + * Usually, but not always, you should use {@link GT_RecipeConstants#UniversalArcFurnace} instead. + */ + public static final RecipeMap<RecipeMapBackend> arcFurnaceRecipes = RecipeMapBuilder.of("gt.recipe.arcfurnace") + .maxIO(1, 9, 1, 0) + .minInputs(1, 1) + .amperage(3) + .recipeConfigFile("arcfurnace", FIRST_ITEM_INPUT) + .build(); + public static final RecipeMap<PrinterBackend> printerRecipes = RecipeMapBuilder + .of("gt.recipe.printer", PrinterBackend::new) + .maxIO(1, 1, 1, 0) + .minInputs(1, 1) + .useSpecialSlot() + .slotOverlays((index, isFluid, isOutput, isSpecial) -> { + if (isSpecial) { + return GT_UITextures.OVERLAY_SLOT_DATA_STICK; + } + if (isFluid) { + return null; + } + if (isOutput) { + return GT_UITextures.OVERLAY_SLOT_PAGE_PRINTED; + } + return GT_UITextures.OVERLAY_SLOT_PAGE_BLANK; + }) + .recipeConfigFile("printer", FIRST_ITEM_INPUT) + .build(); + public static final RecipeMap<RecipeMapBackend> sifterRecipes = RecipeMapBuilder.of("gt.recipe.sifter") + .maxIO(1, 9, 1, 1) + .progressBar(GT_UITextures.PROGRESSBAR_SIFT, ProgressBar.Direction.DOWN) + .recipeConfigFile("sifter", FIRST_ITEM_INPUT) + .build(); + public static final RecipeMap<FormingPressBackend> formingPressRecipes = RecipeMapBuilder + .of("gt.recipe.press", FormingPressBackend::new) + .maxIO(6, 1, 0, 0) + .minInputs(2, 0) + .slotOverlays((index, isFluid, isOutput, isSpecial) -> { + if (isOutput) { + return GT_UITextures.OVERLAY_SLOT_PRESS_3; + } + if (index == 0) { + return GT_UITextures.OVERLAY_SLOT_PRESS_1; + } + return GT_UITextures.OVERLAY_SLOT_PRESS_2; + }) + .progressBar(GT_UITextures.PROGRESSBAR_COMPRESS) + .recipeConfigFile("press", FIRST_ITEM_OUTPUT) + .build(); + public static final RecipeMap<RecipeMapBackend> laserEngraverRecipes = RecipeMapBuilder + .of("gt.recipe.laserengraver") + .maxIO(4, 4, 2, 2) + .slotOverlays( + (index, isFluid, isOutput, + isSpecial) -> !isFluid && !isOutput && index != 0 ? GT_UITextures.OVERLAY_SLOT_LENS : null) + .recipeConfigFile("laserengraving", FIRST_ITEM_OUTPUT) + .build(); + public static final RecipeMap<RecipeMapBackend> mixerRecipes = RecipeMapBuilder.of("gt.recipe.mixer") + .maxIO(9, 4, 1, 1) + .minInputs(1, 0) + .slotOverlays((index, isFluid, isOutput, isSpecial) -> !isFluid ? GT_UITextures.OVERLAY_SLOT_DUST : null) + .progressBar(GT_UITextures.PROGRESSBAR_MIXER, ProgressBar.Direction.CIRCULAR_CW) + .recipeConfigFile("mixer", FIRST_ITEM_OR_FLUID_OUTPUT) + .build(); + public static final RecipeMap<RecipeMapBackend> autoclaveRecipes = RecipeMapBuilder.of("gt.recipe.autoclave") + .maxIO(2, 4, 1, 1) + .minInputs(1, 1) + .slotOverlays((index, isFluid, isOutput, isSpecial) -> { + if (isFluid) { + return null; + } + if (isOutput) { + if (index == 0) { + return GT_UITextures.OVERLAY_SLOT_GEM; + } + return GT_UITextures.OVERLAY_SLOT_DUST; + } + return GT_UITextures.OVERLAY_SLOT_DUST; + }) + + .recipeConfigFile("autoclave", FIRST_ITEM_INPUT) + .build(); + public static final RecipeMap<RecipeMapBackend> electroMagneticSeparatorRecipes = RecipeMapBuilder + .of("gt.recipe.electromagneticseparator") + .maxIO(1, 3, 0, 0) + .minInputs(1, 0) + .slotOverlays( + (index, isFluid, isOutput, isSpecial) -> isOutput ? GT_UITextures.OVERLAY_SLOT_DUST + : GT_UITextures.OVERLAY_SLOT_CRUSHED_ORE) + .progressBar(GT_UITextures.PROGRESSBAR_MAGNET) + .recipeConfigFile("electromagneticseparator", FIRST_ITEM_INPUT) + .build(); + public static final RecipeMap<RecipeMapBackend> polarizerRecipes = RecipeMapBuilder.of("gt.recipe.polarizer") + .maxIO(1, 1, 0, 0) + .minInputs(1, 0) + .progressBar(GT_UITextures.PROGRESSBAR_MAGNET) + .recipeConfigFile("polarizer", FIRST_ITEM_INPUT) + .build(); + public static final RecipeMap<RecipeMapBackend> maceratorRecipes = RecipeMapBuilder.of("gt.recipe.macerator") + .maxIO(1, 4, 0, 0) + .minInputs(1, 0) + .slotOverlays( + (index, isFluid, isOutput, isSpecial) -> isOutput ? GT_UITextures.OVERLAY_SLOT_DUST + : GT_UITextures.OVERLAY_SLOT_CRUSHED_ORE) + .slotOverlaysSteam( + (index, isFluid, isOutput, isSpecial) -> isOutput ? GT_UITextures.OVERLAY_SLOT_DUST_STEAM + : GT_UITextures.OVERLAY_SLOT_CRUSHED_ORE_STEAM) + .progressBar(GT_UITextures.PROGRESSBAR_MACERATE) + .progressBarSteam(GT_UITextures.PROGRESSBAR_MACERATE_STEAM) + // Avoid steam machine being used as handler icon + .neiHandlerInfo(builder -> builder.setDisplayStack(ItemList.Machine_LV_Macerator.get(1))) + .recipeConfigFile("pulveriser", FIRST_ITEM_INPUT) + .build(); + public static final RecipeMap<RecipeMapBackend> chemicalBathRecipes = RecipeMapBuilder.of("gt.recipe.chemicalbath") + .maxIO(1, 3, 1, 1) + .minInputs(1, 1) + .progressBar(GT_UITextures.PROGRESSBAR_BATH, ProgressBar.Direction.CIRCULAR_CW) + .recipeConfigFile("chemicalbath", FIRST_ITEM_INPUT) + .build(); + public static final RecipeMap<FluidCannerBackend> fluidCannerRecipes = RecipeMapBuilder + .of("gt.recipe.fluidcanner", FluidCannerBackend::new) + .maxIO(1, 1, 1, 1) + .minInputs(1, 0) + .slotOverlays((index, isFluid, isOutput, isSpecial) -> !isFluid ? GT_UITextures.OVERLAY_SLOT_CANISTER : null) + .progressBar(GT_UITextures.PROGRESSBAR_CANNER) + .recipeConfigFile("canning", FIRST_ITEM_INPUT) + .build(); + public static final RecipeMap<RecipeMapBackend> brewingRecipes = RecipeMapBuilder.of("gt.recipe.brewer") + .maxIO(1, 0, 1, 1) + .minInputs(1, 1) + .slotOverlays( + (index, isFluid, isOutput, isSpecial) -> !isFluid && !isOutput ? GT_UITextures.OVERLAY_SLOT_CAULDRON : null) + .progressBar(GT_UITextures.PROGRESSBAR_ARROW_MULTIPLE) + .recipeConfigFile("brewing", FIRST_FLUIDSTACK_OUTPUT) + .build(); + public static final RecipeMap<RecipeMapBackend> fluidHeaterRecipes = RecipeMapBuilder.of("gt.recipe.fluidheater") + .maxIO(1, 0, 1, 1) + .slotOverlays((index, isFluid, isOutput, isSpecial) -> { + if (!isFluid) { + return null; + } + if (isOutput) { + return GT_UITextures.OVERLAY_SLOT_HEATER_2; + } + return GT_UITextures.OVERLAY_SLOT_HEATER_1; + }) + .progressBar(GT_UITextures.PROGRESSBAR_ARROW_MULTIPLE) + .recipeConfigFile("fluidheater", FIRST_FLUIDSTACK_OUTPUT) + .build(); + public static final RecipeMap<RecipeMapBackend> distilleryRecipes = RecipeMapBuilder.of("gt.recipe.distillery") + .maxIO(1, 1, 1, 1) + .minInputs(1, 1) + .slotOverlays((index, isFluid, isOutput, isSpecial) -> { + if (!isFluid) { + return null; + } + if (isOutput) { + return GT_UITextures.OVERLAY_SLOT_BEAKER_2; + } + return GT_UITextures.OVERLAY_SLOT_BEAKER_1; + }) + .progressBar(GT_UITextures.PROGRESSBAR_ARROW_MULTIPLE) + .recipeTransformer(r -> { + int aInput = r.mFluidInputs[0].amount, aOutput = r.mFluidOutputs[0].amount, aDuration = r.mDuration; + + // reduce the batch size if fluid amount is exceeding + int tScale = (Math.max(aInput, aOutput) + 999) / 1000; + if (tScale <= 0) tScale = 1; + if (tScale > 1) { + // trying to find whether there is a better factor + for (int i = tScale; i <= 5; i++) { + if (aInput % i == 0 && aDuration % i == 0) { + tScale = i; + break; + } + } + for (int i = tScale; i <= 5; i++) { + if (aInput % i == 0 && aDuration % i == 0 && aOutput % i == 0) { + tScale = i; + break; + } + } + aInput = (aInput + tScale - 1) / tScale; + aOutput = aOutput / tScale; + if (!isArrayEmptyOrNull(r.mOutputs)) { + ItemData tData = GT_OreDictUnificator.getItemData(r.mOutputs[0]); + if (tData != null && (tData.mPrefix == OrePrefixes.dust + || OrePrefixes.dust.mFamiliarPrefixes.contains(tData.mPrefix))) { + r.mOutputs[0] = GT_OreDictUnificator.getDust( + tData.mMaterial.mMaterial, + tData.mMaterial.mAmount * r.mOutputs[0].stackSize / tScale); + } else { + if (r.mOutputs[0].stackSize / tScale == 0) r.mOutputs[0] = GT_Values.NI; + else r.mOutputs[0] = copyAmount(r.mOutputs[0].stackSize / tScale, r.mOutputs[0]); + } + } + aDuration = (aDuration + tScale - 1) / tScale; + r.mFluidInputs[0] = copyAmount(aInput, r.mFluidInputs[0]); + r.mFluidOutputs[0] = copyAmount(aOutput, r.mFluidOutputs[0]); + r.mDuration = aDuration; + } + }) + .recipeConfigFile("distillery", FIRST_FLUIDSTACK_OUTPUT) + .build(); + public static final RecipeMap<RecipeMapBackend> fermentingRecipes = RecipeMapBuilder.of("gt.recipe.fermenter") + .maxIO(0, 0, 1, 1) + .minInputs(0, 1) + .progressBar(GT_UITextures.PROGRESSBAR_ARROW_MULTIPLE) + .recipeConfigFile("fermenting", FIRST_FLUIDSTACK_OUTPUT) + .build(); + public static final RecipeMap<RecipeMapBackend> fluidSolidifierRecipes = RecipeMapBuilder + .of("gt.recipe.fluidsolidifier") + .maxIO(1, 1, 1, 0) + .minInputs(1, 1) + .slotOverlays( + (index, isFluid, isOutput, isSpecial) -> !isFluid && !isOutput ? GT_UITextures.OVERLAY_SLOT_MOLD : null) + .recipeTransformer(r -> { + if (ArrayUtils.isNotEmpty(r.mFluidInputs)) { + if (Materials.PhasedGold.getMolten(1) + .isFluidEqual(r.mFluidInputs[0])) + r.mFluidInputs = new FluidStack[] { Materials.VibrantAlloy.getMolten(r.mFluidInputs[0].amount) }; + else if (Materials.PhasedIron.getMolten(1) + .isFluidEqual(r.mFluidInputs[0])) + r.mFluidInputs = new FluidStack[] { Materials.PulsatingIron.getMolten(r.mFluidInputs[0].amount) }; + } + }) + .recipeConfigFile("fluidsolidifier", FIRST_ITEM_OUTPUT) + .build(); + public static final RecipeMap<RecipeMapBackend> fluidExtractionRecipes = RecipeMapBuilder + .of("gt.recipe.fluidextractor") + .maxIO(1, 1, 0, 1) + .minInputs(1, 0) + .slotOverlays( + (index, isFluid, isOutput, isSpecial) -> !isFluid && !isOutput ? GT_UITextures.OVERLAY_SLOT_CENTRIFUGE + : null) + .progressBar(GT_UITextures.PROGRESSBAR_EXTRACT) + .recipeTransformer(r -> { + if (ArrayUtils.isNotEmpty(r.mFluidInputs)) { + if (Materials.PhasedGold.getMolten(1) + .isFluidEqual(r.mFluidInputs[0])) + r.mFluidInputs = new FluidStack[] { Materials.VibrantAlloy.getMolten(r.mFluidInputs[0].amount) }; + else if (Materials.PhasedIron.getMolten(1) + .isFluidEqual(r.mFluidInputs[0])) + r.mFluidInputs = new FluidStack[] { Materials.PulsatingIron.getMolten(r.mFluidInputs[0].amount) }; + } + }) + .recipeConfigFile("fluidextractor", FIRST_ITEM_INPUT) + .build(); + public static final RecipeMap<RecipeMapBackend> packagerRecipes = RecipeMapBuilder.of("gt.recipe.packager") + .maxIO(2, 1, 0, 0) + .minInputs(2, 0) + .slotOverlays((index, isFluid, isOutput, isSpecial) -> { + if (isOutput) { + return GT_UITextures.OVERLAY_SLOT_BOXED; + } + if (index != 0) { + return GT_UITextures.OVERLAY_SLOT_BOX; + } + return null; + }) + .recipeConfigFile("boxing", FIRST_ITEM_OUTPUT) + .build(); + public static final RecipeMap<UnpackagerBackend> unpackagerRecipes = RecipeMapBuilder + .of("gt.recipe.unpackager", UnpackagerBackend::new) + .maxIO(1, 2, 0, 0) + .minInputs(1, 0) + .slotOverlays((index, isFluid, isOutput, isSpecial) -> !isOutput ? GT_UITextures.OVERLAY_SLOT_BOXED : null) + .recipeConfigFile("unboxing", FIRST_ITEM_OUTPUT) + .build(); + public static final RecipeMap<RecipeMapBackend> fusionRecipes = RecipeMapBuilder.of("gt.recipe.fusionreactor") + .maxIO(0, 0, 2, 1) + .minInputs(0, 2) + .disableOptimize() + .useCustomFilterForNEI() + .neiSpecialInfoFormatter(FusionSpecialValueFormatter.INSTANCE) + .neiRecipeComparator( + Comparator + .<GT_Recipe, Integer>comparing( + recipe -> FusionSpecialValueFormatter.getFusionTier(recipe.mSpecialValue, recipe.mEUt)) + .thenComparing(GT_Recipe::compareTo)) + .frontend(FluidOnlyFrontend::new) + .recipeConfigFile("fusion", FIRST_FLUID_OUTPUT) + .build(); + public static final RecipeMap<RecipeMapBackend> centrifugeRecipes = RecipeMapBuilder.of("gt.recipe.centrifuge") + .maxIO(2, 6, 1, 1) + .slotOverlays((index, isFluid, isOutput, isSpecial) -> { + if (isOutput) { + return null; + } + if (isFluid) { + return GT_UITextures.OVERLAY_SLOT_CENTRIFUGE_FLUID; + } else { + if (index == 0) { + return GT_UITextures.OVERLAY_SLOT_CENTRIFUGE; + } + return GT_UITextures.OVERLAY_SLOT_CANISTER; + } + }) + .progressBar(GT_UITextures.PROGRESSBAR_EXTRACT) + .recipeConfigFile("centrifuge", FIRST_ITEM_OR_FLUID_INPUT) + .build(); + public static final RecipeMap<RecipeMapBackend> electrolyzerRecipes = RecipeMapBuilder.of("gt.recipe.electrolyzer") + .maxIO(2, 6, 1, 1) + .slotOverlays((index, isFluid, isOutput, isSpecial) -> { + if (isOutput) { + return null; + } + if (isFluid) { + return GT_UITextures.OVERLAY_SLOT_CHARGER_FLUID; + } else { + if (index == 0) { + return GT_UITextures.OVERLAY_SLOT_CHARGER; + } + return GT_UITextures.OVERLAY_SLOT_CANISTER; + } + }) + .progressBar(GT_UITextures.PROGRESSBAR_EXTRACT) + .recipeConfigFile("electrolyzer", FIRST_ITEM_OR_FLUID_INPUT) + .build(); + /** + * Use {@link GT_RecipeConstants#COIL_HEAT} as heat level. + */ + public static final RecipeMap<RecipeMapBackend> blastFurnaceRecipes = RecipeMapBuilder.of("gt.recipe.blastfurnace") + .maxIO(6, 6, 1, 1) + .minInputs(1, 0) + .neiSpecialInfoFormatter(HeatingCoilSpecialValueFormatter.INSTANCE) + .recipeConfigFile("blastfurnace", FIRST_ITEM_INPUT) + .build(); + /** + * Use {@link GT_RecipeConstants#COIL_HEAT} as heat level. + */ + public static final RecipeMap<RecipeMapBackend> plasmaForgeRecipes = RecipeMapBuilder.of("gt.recipe.plasmaforge") + .maxIO(9, 9, 9, 9) + .disableOptimize() + .neiSpecialInfoFormatter(HeatingCoilSpecialValueFormatter.INSTANCE) + .neiHandlerInfo( + builder -> builder.setDisplayStack(ItemList.Machine_Multi_PlasmaForge.get(1)) + .setMaxRecipesPerPage(1)) + .frontend(LargeNEIFrontend::new) + .build(); + public static final RecipeMap<RecipeMapBackend> transcendentPlasmaMixerRecipes = RecipeMapBuilder + .of("gt.recipe.transcendentplasmamixerrecipes") + .maxIO(1, 0, 20, 1) + .progressBarPos(86, 44) + .logoPos(87, 99) + .neiRecipeBackgroundSize(170, 118) + .neiHandlerInfo( + builder -> builder.setDisplayStack(ItemList.Machine_Multi_TranscendentPlasmaMixer.get(1)) + .setMaxRecipesPerPage(1)) + .frontend(TranscendentPlasmaMixerFrontend::new) + .disableOptimize() + .build(); + public static final RecipeMap<RecipeMapBackend> spaceProjectFakeRecipes = RecipeMapBuilder + .of("gt.recipe.fakespaceprojects") + .maxIO(12, 0, 4, 0) + .neiSpecialInfoFormatter(new SimpleSpecialValueFormatter("GT5U.nei.stages")) + .neiRecipeBackgroundOffset(3, 23) + .logo(UITexture.fullImage(GTNHIntergalactic.ID, "gui/picture/space_elevator_logo.png")) + .logoSize(18, 18) + .logoPos(152, 83) + .neiTransferRect(70, 28, 18, 72) + .neiTransferRect(106, 28, 18, 72) + .frontend(SpaceProjectFrontend::new) + .disableRenderRealStackSizes() + .disableOptimize() + .build(); + /** + * Uses {@link GT_RecipeConstants#ADDITIVE_AMOUNT} for coal/charcoal amount. + */ + public static final RecipeMap<RecipeMapBackend> primitiveBlastRecipes = RecipeMapBuilder + .of("gt.recipe.primitiveblastfurnace") + .maxIO(3, 3, 0, 0) + .minInputs(1, 0) + .recipeEmitter(builder -> { + Optional<GT_Recipe> rr = builder.eut(0) + .validateInputCount(1, 2) + .validateOutputCount(1, 2) + .validateNoInputFluid() + .validateNoOutputFluid() + .noOptimize() + .build(); + if (!rr.isPresent()) return Collections.emptyList(); + ItemStack aInput1 = builder.getItemInputBasic(0); + ItemStack aInput2 = builder.getItemInputBasic(1); + ItemStack aOutput1 = builder.getItemOutput(0); + ItemStack aOutput2 = builder.getItemOutput(1); + if ((aInput1 == null && aInput2 == null) || (aOutput1 == null && aOutput2 == null)) + return Collections.emptyList(); + int aCoalAmount = builder.getMetadataOrDefault(ADDITIVE_AMOUNT, 0); + if (aCoalAmount <= 0) return Collections.emptyList(); + GT_RecipeTemplate coll = asTemplate(rr.get()); + for (Materials coal : new Materials[] { Materials.Coal, Materials.Charcoal }) { + coll.derive() + .setInputs(aInput1, aInput2, coal.getGems(aCoalAmount)) + .setOutputs(aOutput1, aOutput2, Materials.DarkAsh.getDustTiny(aCoalAmount)); + coll.derive() + .setInputs(aInput1, aInput2, coal.getDust(aCoalAmount)) + .setOutputs(aOutput1, aOutput2, Materials.DarkAsh.getDustTiny(aCoalAmount)); + } + int aDuration = builder.getDuration(); + if (Railcraft.isModLoaded()) { + coll.derive() + .setInputs(aInput1, aInput2, RailcraftToolItems.getCoalCoke(aCoalAmount / 2)) + .setOutputs(aOutput1, aOutput2, Materials.Ash.getDustTiny(aCoalAmount / 2)) + .setDuration(aDuration * 2 / 3); + } + if (GTPlusPlus.isModLoaded()) { + ItemStack cactusCoke = GT_ModHandler.getModItem(GTPlusPlus.ID, "itemCactusCoke", aCoalAmount * 2L); + ItemStack sugarCoke = GT_ModHandler.getModItem(GTPlusPlus.ID, "itemSugarCoke", aCoalAmount * 2L); + coll.derive() + .setInputs(aInput1, aInput2, cactusCoke) + .setOutputs(aOutput1, aOutput2, Materials.Ash.getDustTiny(aCoalAmount * 2)) + .setDuration(aDuration * 2 / 3); + coll.derive() + .setInputs(aInput1, aInput2, sugarCoke) + .setOutputs(aOutput1, aOutput2, Materials.Ash.getDustTiny(aCoalAmount * 2)) + .setDuration(aDuration * 2 / 3); + } + if ((aInput1 == null || aInput1.stackSize <= 6) && (aInput2 == null || aInput2.stackSize <= 6) + && (aOutput1 == null || aOutput1.stackSize <= 6) + && (aOutput2 == null || aOutput2.stackSize <= 6)) { + // we don't use GT_Utility.mul() here. It does not have the truncating we need here. + aInput1 = multiplyStack(10, aInput1); + aInput2 = multiplyStack(10, aInput2); + aOutput1 = multiplyStack(10, aOutput1); + aOutput2 = multiplyStack(10, aOutput2); + for (Materials coal : new Materials[] { Materials.Coal, Materials.Charcoal }) { + coll.derive() + .setInputs(aInput1, aInput2, coal.getBlocks(aCoalAmount)) + .setOutputs(aOutput1, aOutput2, Materials.DarkAsh.getDust(aCoalAmount)) + .setDuration(aDuration * 10); + coll.derive() + .setInputs(aInput1, aInput2, coal.getBlocks(aCoalAmount)) + .setOutputs(aOutput1, aOutput2, Materials.DarkAsh.getDust(aCoalAmount)) + .setDuration(aDuration * 10); + } + if (Railcraft.isModLoaded()) { + coll.derive() + .setInputs(aInput1, aInput2, EnumCube.COKE_BLOCK.getItem(aCoalAmount / 2)) + .setOutputs(aOutput1, aOutput2, Materials.Ash.getDust(aCoalAmount / 2)) + .setDuration(aDuration * 20 / 3); + } + } + return coll.getAll(); + }) + .recipeConfigFile("primitiveblastfurnace", FIRST_ITEM_INPUT) + .build(); + /** + * Uses {@link GT_RecipeConstants#ADDITIVE_AMOUNT} for TNT/ITNT/... amount. Value is truncated to [0, 64] + */ + public static final RecipeMap<RecipeMapBackend> implosionRecipes = RecipeMapBuilder + .of("gt.recipe.implosioncompressor") + .maxIO(2, 2, 0, 0) + .minInputs(2, 0) + .slotOverlays((index, isFluid, isOutput, isSpecial) -> { + if (!isFluid && !isOutput) { + if (index == 0) { + return GT_UITextures.OVERLAY_SLOT_IMPLOSION; + } + return GT_UITextures.OVERLAY_SLOT_EXPLOSIVE; + } + return null; + }) + .progressBar(GT_UITextures.PROGRESSBAR_COMPRESS) + .disableOptimize() + .recipeEmitter(b -> { + switch (b.getItemInputsBasic().length) { + case 0: + return Collections.emptyList(); + case 1: + break; + default: + return b.build() + .map(Collections::singletonList) + .orElse(Collections.emptyList()); + } + Optional<GT_Recipe> t = b.noOptimize() + .duration(20) + .eut(30) + .validateInputCount(1, 1) + .validateOutputCount(1, 2) + .build(); + if (!t.isPresent()) return Collections.emptyList(); + ItemStack input = b.getItemInputBasic(0); + GT_RecipeTemplate coll = asTemplate(t.get()); + int tExplosives = Math.min(b.getMetadataOrDefault(ADDITIVE_AMOUNT, 0), 64); + int tGunpowder = tExplosives << 1; // Worst + int tDynamite = Math.max(1, tExplosives >> 1); // good + @SuppressWarnings("UnnecessaryLocalVariable") + int tTNT = tExplosives; // Slightly better + int tITNT = Math.max(1, tExplosives >> 2); // the best + if (tGunpowder < 65) coll.derive() + .setInputs(input, ItemList.Block_Powderbarrel.get(tGunpowder)); + if (tDynamite < 17) coll.derive() + .setInputs(input, GT_ModHandler.getIC2Item("dynamite", tDynamite, null)); + coll.derive() + .setInputs(input, new ItemStack(Blocks.tnt, tTNT)); + coll.derive() + .setInputs(input, GT_ModHandler.getIC2Item("industrialTnt", tITNT, null)); + return coll.getAll(); + }) + .recipeConfigFile("implosion", FIRST_ITEM_INPUT) + .build(); + public static final RecipeMap<RecipeMapBackend> vacuumFreezerRecipes = RecipeMapBuilder + .of("gt.recipe.vacuumfreezer") + .maxIO(1, 1, 2, 1) + .recipeEmitter(b -> { + b.noOptimize(); + FluidStack in, out; + if (isArrayOfLength(b.getItemInputsBasic(), 1) && isArrayOfLength(b.getItemOutputs(), 1) + && isArrayEmptyOrNull(b.getFluidInputs()) + && isArrayEmptyOrNull(b.getFluidOutputs()) + && (in = getFluidForFilledItem(b.getItemInputBasic(0), true)) != null + && (out = getFluidForFilledItem(b.getItemOutput(0), true)) != null) { + Collection<GT_Recipe> ret = new ArrayList<>(); + b.build() + .ifPresent(ret::add); + b.itemInputs() + .itemOutputs() + .fluidInputs(in) + .fluidOutputs(out) + .build() + .ifPresent(ret::add); + return ret; + } + return buildOrEmpty(b); + }) + .recipeConfigFile("vacuumfreezer", FIRST_ITEM_INPUT) + .build(); + /** + * Using {@code .addTo(chemicalReactorRecipes)} will cause the recipe to be added to single block recipe map ONLY! + * Use {@link GT_RecipeConstants#UniversalChemical} to add to both. + */ + public static final RecipeMap<RecipeMapBackend> chemicalReactorRecipes = RecipeMapBuilder + .of("gt.recipe.chemicalreactor") + .maxIO(2, 2, 1, 1) + .minInputs(1, 0) + .slotOverlays((index, isFluid, isOutput, isSpecial) -> { + if (isFluid) { + if (isOutput) { + return GT_UITextures.OVERLAY_SLOT_VIAL_2; + } + return GT_UITextures.OVERLAY_SLOT_MOLECULAR_3; + } else { + if (isOutput) { + return GT_UITextures.OVERLAY_SLOT_VIAL_1; + } + if (index == 0) { + return GT_UITextures.OVERLAY_SLOT_MOLECULAR_1; + } + return GT_UITextures.OVERLAY_SLOT_MOLECULAR_2; + } + }) + .progressBar(GT_UITextures.PROGRESSBAR_ARROW_MULTIPLE) + .disableOptimize() + .recipeConfigFile("chemicalreactor", FIRST_ITEM_OR_FLUID_OUTPUT) + .build(); + /** + * Using {@code .addTo(multiblockChemicalReactorRecipes)} will cause the recipe to be added to + * multiblock recipe map ONLY! Use {@link GT_RecipeConstants#UniversalChemical} to add to both. + */ + public static final RecipeMap<RecipeMapBackend> multiblockChemicalReactorRecipes = RecipeMapBuilder + .of("gt.recipe.largechemicalreactor") + .maxIO(6, 6, 6, 6) + .progressBar(GT_UITextures.PROGRESSBAR_ARROW_MULTIPLE) + .disableOptimize() + .frontend(LargeNEIFrontend::new) + .build(); + public static final RecipeMap<RecipeMapBackend> distillationTowerRecipes = RecipeMapBuilder + .of("gt.recipe.distillationtower") + .maxIO(2, 1, 1, 11) + .slotOverlays((index, isFluid, isOutput, isSpecial) -> { + if (!isOutput) { + return null; + } + if (isFluid) { + return GT_UITextures.OVERLAY_SLOTS_NUMBER[index + 1]; + } else { + return GT_UITextures.OVERLAY_SLOTS_NUMBER[0]; + } + }) + .progressBar(GT_UITextures.PROGRESSBAR_ARROW_MULTIPLE) + .logoPos(80, 62) + .frontend(DistillationTowerFrontend::new) + .disableOptimize() + .recipeConfigFile("distillation", FIRST_FLUIDSTACK_INPUT) + .build(); + public static final RecipeMap<OilCrackerBackend> crackingRecipes = RecipeMapBuilder + .of("gt.recipe.craker", OilCrackerBackend::new) + .maxIO(1, 1, 2, 1) + .minInputs(1, 2) + .progressBar(GT_UITextures.PROGRESSBAR_ARROW_MULTIPLE) + .recipeConfigFile("cracking", FIRST_FLUIDSTACK_INPUT) + .build(); + public static final RecipeMap<RecipeMapBackend> pyrolyseRecipes = RecipeMapBuilder.of("gt.recipe.pyro") + .maxIO(2, 1, 1, 1) + .minInputs(1, 0) + .disableOptimize() + .recipeConfigFile("pyrolyse", FIRST_ITEM_INPUT) + .build(); + public static final RecipeMap<RecipeMapBackend> wiremillRecipes = RecipeMapBuilder.of("gt.recipe.wiremill") + .maxIO(2, 1, 0, 0) + .minInputs(1, 0) + .slotOverlays( + (index, isFluid, isOutput, isSpecial) -> !isFluid && !isOutput ? GT_UITextures.OVERLAY_SLOT_WIREMILL : null) + .progressBar(GT_UITextures.PROGRESSBAR_WIREMILL) + .recipeConfigFile("wiremill", FIRST_ITEM_INPUT) + .build(); + public static final RecipeMap<RecipeMapBackend> benderRecipes = RecipeMapBuilder.of("gt.recipe.metalbender") + .maxIO(2, 1, 0, 0) + .minInputs(2, 0) + .slotOverlays( + (index, isFluid, isOutput, isSpecial) -> !isFluid && !isOutput ? GT_UITextures.OVERLAY_SLOT_BENDER : null) + .progressBar(GT_UITextures.PROGRESSBAR_BENDING) + .recipeConfigFile("bender", FIRST_ITEM_INPUT) + .build(); + public static final RecipeMap<RecipeMapBackend> alloySmelterRecipes = RecipeMapBuilder.of("gt.recipe.alloysmelter") + .maxIO(2, 1, 0, 0) + .minInputs(2, 0) + .slotOverlays( + (index, isFluid, isOutput, isSpecial) -> !isFluid && !isOutput ? GT_UITextures.OVERLAY_SLOT_FURNACE : null) + .slotOverlaysSteam((index, isFluid, isOutput, isSpecial) -> GT_UITextures.OVERLAY_SLOT_FURNACE_STEAM) + .progressBarSteam(GT_UITextures.PROGRESSBAR_ARROW_STEAM) + .recipeEmitter(b -> { + if (Materials.Graphite.contains(b.getItemInputBasic(0))) return Collections.emptyList(); + if (GT_Utility.isArrayOfLength(b.getItemInputsBasic(), 1)) { + ItemStack aInput1 = b.getItemInputBasic(0); + if (((OrePrefixes.ingot.contains(aInput1)) || (OrePrefixes.dust.contains(aInput1)) + || (OrePrefixes.gem.contains(aInput1)))) return Collections.emptyList(); + } + return buildOrEmpty( + b.validateNoInputFluid() + .validateNoOutputFluid() + .validateInputCount(1, 2) + .validateOutputCount(1, 1)); + }) + // Avoid steam machine being used as handler icon + .neiHandlerInfo(builder -> builder.setDisplayStack(ItemList.Machine_LV_AlloySmelter.get(1))) + .recipeConfigFile( + "alloysmelting", + r -> GT_Config.getStackConfigName(GT_Utility.isArrayOfLength(r.mInputs, 1) ? r.mInputs[0] : r.mOutputs[0])) + .build(); + public static final RecipeMap<AssemblerBackend> assemblerRecipes = RecipeMapBuilder + .of("gt.recipe.assembler", AssemblerBackend::new) + .maxIO(9, 1, 1, 0) + .minInputs(1, 0) + .slotOverlays( + (index, isFluid, isOutput, isSpecial) -> !isFluid && !isOutput ? GT_UITextures.OVERLAY_SLOT_CIRCUIT : null) + .progressBar(GT_UITextures.PROGRESSBAR_ASSEMBLE) + .disableOptimize() + .recipeConfigFile("assembling", FIRST_ITEM_OUTPUT) + .build(); + public static final RecipeMap<RecipeMapBackend> circuitAssemblerRecipes = RecipeMapBuilder + .of("gt.recipe.circuitassembler") + .maxIO(6, 1, 1, 0) + .minInputs(1, 0) + .slotOverlays( + (index, isFluid, isOutput, isSpecial) -> !isFluid && !isOutput ? GT_UITextures.OVERLAY_SLOT_CIRCUIT : null) + .progressBar(GT_UITextures.PROGRESSBAR_CIRCUIT_ASSEMBLER) + .unificateOutputNEI(!NEICustomDiagrams.isModLoaded()) + .recipeConfigFile("circuitassembler", FIRST_ITEM_OUTPUT) + .build(); + public static final RecipeMap<RecipeMapBackend> cannerRecipes = RecipeMapBuilder.of("gt.recipe.canner") + .maxIO(2, 2, 0, 0) + .minInputs(1, 0) + .slotOverlays((index, isFluid, isOutput, isSpecial) -> { + if (isOutput) { + return null; + } + if (index == 0) { + return GT_UITextures.OVERLAY_SLOT_CANNER; + } + return GT_UITextures.OVERLAY_SLOT_CANISTER; + }) + .progressBar(GT_UITextures.PROGRESSBAR_CANNER) + .recipeConfigFile("canning", FIRST_ITEM_INPUT) + .build(); + public static final RecipeMap<RecipeMapBackend> latheRecipes = RecipeMapBuilder.of("gt.recipe.lathe") + .maxIO(1, 2, 0, 0) + .minInputs(1, 0) + .slotOverlays((index, isFluid, isOutput, isSpecial) -> { + if (isOutput) { + if (index == 0) { + return GT_UITextures.OVERLAY_SLOT_ROD_2; + } + return GT_UITextures.OVERLAY_SLOT_DUST; + } + return GT_UITextures.OVERLAY_SLOT_ROD_1; + }) + .progressBar(GT_UITextures.PROGRESSBAR_LATHE) + .addSpecialTexture(98, 24, 5, 18, GT_UITextures.PROGRESSBAR_LATHE_BASE) + .recipeConfigFile("lathe", FIRST_ITEM_INPUT) + .build(); + public static final RecipeMap<RecipeMapBackend> cutterRecipes = RecipeMapBuilder.of("gt.recipe.cuttingsaw") + .maxIO(2, 4, 1, 0) + .minInputs(1, 1) + .slotOverlays((index, isFluid, isOutput, isSpecial) -> { + if (isFluid) { + return null; + } + if (isOutput) { + if (index == 0) { + return GT_UITextures.OVERLAY_SLOT_CUTTER_SLICED; + } + return GT_UITextures.OVERLAY_SLOT_DUST; + } + return GT_UITextures.OVERLAY_SLOT_BOX; + }) + .progressBar(GT_UITextures.PROGRESSBAR_CUT) + .recipeEmitter(b -> { + b.validateInputCount(1, 2) + .validateOutputCount(1, 4) + .validateNoOutputFluid(); + if ((b.getFluidInputs() != null && b.getFluidInputs().length > 0) || !b.isValid()) + return buildOrEmpty(b.validateInputFluidCount(1, 1)); + int aDuration = b.getDuration(), aEUt = b.getEUt(); + Collection<GT_Recipe> ret = new ArrayList<>(); + b.copy() + .fluidInputs(Materials.Water.getFluid(clamp(aDuration * aEUt / 320, 4, 1000))) + .duration(aDuration * 2) + .build() + .ifPresent(ret::add); + b.copy() + .fluidInputs(GT_ModHandler.getDistilledWater(clamp(aDuration * aEUt / 426, 3, 750))) + .duration(aDuration * 2) + .build() + .ifPresent(ret::add); + b.fluidInputs(Materials.Lubricant.getFluid(clamp(aDuration * aEUt / 1280, 1, 250))) + .duration(aDuration) + .build() + .ifPresent(ret::add); + return ret; + }) + .recipeConfigFile("cutting", FIRST_ITEM_INPUT) + .build(); + public static final RecipeMap<RecipeMapBackend> slicerRecipes = RecipeMapBuilder.of("gt.recipe.slicer") + .maxIO(2, 1, 0, 0) + .minInputs(2, 0) + .slotOverlays((index, isFluid, isOutput, isSpecial) -> { + if (isOutput) { + return GT_UITextures.OVERLAY_SLOT_SLICER_SLICED; + } + if (index == 0) { + return GT_UITextures.OVERLAY_SLOT_SQUARE; + } + return GT_UITextures.OVERLAY_SLOT_SLICE_SHAPE; + }) + .progressBar(GT_UITextures.PROGRESSBAR_SLICE) + .recipeConfigFile("slicer", FIRST_ITEM_OUTPUT) + .build(); + public static final RecipeMap<RecipeMapBackend> extruderRecipes = RecipeMapBuilder.of("gt.recipe.extruder") + .maxIO(2, 1, 0, 0) + .minInputs(2, 0) + .slotOverlays( + (index, isFluid, isOutput, + isSpecial) -> !isFluid && !isOutput && index != 0 ? GT_UITextures.OVERLAY_SLOT_EXTRUDER_SHAPE : null) + .progressBar(GT_UITextures.PROGRESSBAR_EXTRUDE) + .recipeConfigFile("extruder", FIRST_ITEM_OUTPUT) + .build(); + public static final RecipeMap<RecipeMapBackend> hammerRecipes = RecipeMapBuilder.of("gt.recipe.hammer") + .maxIO(2, 2, 2, 2) + .minInputs(1, 0) + .slotOverlays( + (index, isFluid, isOutput, isSpecial) -> !isFluid && !isOutput ? GT_UITextures.OVERLAY_SLOT_HAMMER : null) + .progressBar(GT_UITextures.PROGRESSBAR_HAMMER, ProgressBar.Direction.DOWN) + .addSpecialTexture(78, 42, 20, 6, GT_UITextures.PROGRESSBAR_HAMMER_BASE) + .slotOverlaysSteam( + (index, isFluid, isOutput, isSpecial) -> !isOutput ? GT_UITextures.OVERLAY_SLOT_HAMMER_STEAM : null) + .progressBarSteam(GT_UITextures.PROGRESSBAR_HAMMER_STEAM) + .addSpecialTextureSteam(78, 42, 20, 6, GT_UITextures.PROGRESSBAR_HAMMER_BASE_STEAM) + // Avoid steam machine being used as handler icon + .neiHandlerInfo(builder -> builder.setDisplayStack(ItemList.Machine_LV_Hammer.get(1))) + .recipeConfigFile("forgehammer", FIRST_ITEM_OUTPUT) + .build(); + public static final RecipeMap<RecipeMapBackend> amplifierRecipes = RecipeMapBuilder.of("gt.recipe.uuamplifier") + .maxIO(1, 0, 0, 1) + .minInputs(1, 0) + .slotOverlays((index, isFluid, isOutput, isSpecial) -> { + if (isFluid) { + return GT_UITextures.OVERLAY_SLOT_UUA; + } + if (!isOutput) { + return GT_UITextures.OVERLAY_SLOT_CENTRIFUGE; + } + return null; + }) + .progressBar(GT_UITextures.PROGRESSBAR_EXTRACT) + .recipeConfigFile("amplifier", FIRST_ITEM_INPUT) + .build(); + public static final RecipeMap<RecipeMapBackend> massFabFakeRecipes = RecipeMapBuilder.of("gt.recipe.massfab") + .maxIO(1, 0, 1, 1) + .minInputs(1, 0) + .amperage(8) + .slotOverlays((index, isFluid, isOutput, isSpecial) -> { + if (!isFluid) { + return null; + } + if (isOutput) { + return GT_UITextures.OVERLAY_SLOT_UUM; + } + return GT_UITextures.OVERLAY_SLOT_UUA; + }) + .build(); + public static final RecipeMap<FuelBackend> dieselFuels = RecipeMapBuilder + .of("gt.recipe.dieselgeneratorfuel", FuelBackend::new) + .maxIO(1, 1, 0, 0) + .neiSpecialInfoFormatter(FuelSpecialValueFormatter.INSTANCE) + .build(); + public static final RecipeMap<FuelBackend> extremeDieselFuels = RecipeMapBuilder + .of("gt.recipe.extremedieselgeneratorfuel", FuelBackend::new) + .maxIO(1, 1, 0, 0) + .neiSpecialInfoFormatter(FuelSpecialValueFormatter.INSTANCE) + .build(); + public static final RecipeMap<FuelBackend> gasTurbineFuels = RecipeMapBuilder + .of("gt.recipe.gasturbinefuel", FuelBackend::new) + .maxIO(1, 1, 0, 0) + .neiSpecialInfoFormatter(FuelSpecialValueFormatter.INSTANCE) + .build(); + public static final RecipeMap<FuelBackend> hotFuels = RecipeMapBuilder + .of("gt.recipe.thermalgeneratorfuel", FuelBackend::new) + .maxIO(1, 4, 0, 0) + .neiSpecialInfoFormatter(FuelSpecialValueFormatter.INSTANCE) + .build(); + public static final RecipeMap<FuelBackend> denseLiquidFuels = RecipeMapBuilder + .of("gt.recipe.semifluidboilerfuels", FuelBackend::new) + .maxIO(1, 1, 0, 0) + .neiSpecialInfoFormatter(FuelSpecialValueFormatter.INSTANCE) + .build(); + public static final RecipeMap<FuelBackend> plasmaFuels = RecipeMapBuilder + .of("gt.recipe.plasmageneratorfuels", FuelBackend::new) + .maxIO(1, 1, 0, 0) + .neiSpecialInfoFormatter(FuelSpecialValueFormatter.INSTANCE) + .build(); + public static final RecipeMap<FuelBackend> magicFuels = RecipeMapBuilder + .of("gt.recipe.magicfuels", FuelBackend::new) + .maxIO(1, 1, 0, 0) + .neiSpecialInfoFormatter(FuelSpecialValueFormatter.INSTANCE) + .build(); + public static final RecipeMap<FuelBackend> smallNaquadahReactorFuels = RecipeMapBuilder + .of("gt.recipe.smallnaquadahreactor", FuelBackend::new) + .maxIO(1, 1, 0, 0) + .neiSpecialInfoFormatter(FuelSpecialValueFormatter.INSTANCE) + .build(); + public static final RecipeMap<FuelBackend> largeNaquadahReactorFuels = RecipeMapBuilder + .of("gt.recipe.largenaquadahreactor", FuelBackend::new) + .maxIO(1, 1, 0, 0) + .neiSpecialInfoFormatter(FuelSpecialValueFormatter.INSTANCE) + .build(); + public static final RecipeMap<FuelBackend> hugeNaquadahReactorFuels = RecipeMapBuilder + .of("gt.recipe.fluidnaquadahreactor", FuelBackend::new) + .maxIO(1, 1, 0, 0) + .neiSpecialInfoFormatter(FuelSpecialValueFormatter.INSTANCE) + .build(); + public static final RecipeMap<FuelBackend> extremeNaquadahReactorFuels = RecipeMapBuilder + .of("gt.recipe.hugenaquadahreactor", FuelBackend::new) + .maxIO(1, 1, 0, 0) + .neiSpecialInfoFormatter(FuelSpecialValueFormatter.INSTANCE) + .build(); + public static final RecipeMap<FuelBackend> ultraHugeNaquadahReactorFuels = RecipeMapBuilder + .of("gt.recipe.extrahugenaquadahreactor", FuelBackend::new) + .maxIO(1, 1, 0, 0) + .neiSpecialInfoFormatter(FuelSpecialValueFormatter.INSTANCE) + .build(); + public static final RecipeMap<FuelBackend> fluidNaquadahReactorFuels = RecipeMapBuilder + .of("gt.recipe.fluidfuelnaquadahreactor", FuelBackend::new) + .maxIO(1, 1, 0, 0) + .neiSpecialInfoFormatter(FuelSpecialValueFormatter.INSTANCE) + .build(); + public static final RecipeMap<RecipeMapBackend> electrolyzerNonCellRecipes = RecipeMapBuilder + .of("gt.recipe.largeelectrolyzer") + .maxIO(1, 6, 1, 6) + .disableRegisterNEI() + .recipeEmitter(GT_RecipeMapUtil::buildRecipeForMultiblock) + .build(); + public static final RecipeMap<RecipeMapBackend> centrifugeNonCellRecipes = RecipeMapBuilder + .of("gt.recipe.largecentrifuge") + .maxIO(2, 6, 1, 6) + .disableOptimize() + .disableRegisterNEI() + .recipeEmitter(GT_RecipeMapUtil::buildRecipeForMultiblock) + .build(); + public static final RecipeMap<RecipeMapBackend> mixerNonCellRecipes = RecipeMapBuilder.of("gt.recipe.largemixer") + .maxIO(9, 4, 6, 4) + .disableOptimize() + .disableRegisterNEI() + .recipeEmitter(GT_RecipeMapUtil::buildRecipeForMultiblockNoCircuit) + .build(); + public static final RecipeMap<LargeBoilerFuelBackend> largeBoilerFakeFuels = RecipeMapBuilder + .of("gt.recipe.largeboilerfakefuels", LargeBoilerFuelBackend::new) + .maxIO(1, 1, 0, 0) + .minInputs(1, 0) + .disableOptimize() + .frontend(LargeBoilerFuelFrontend::new) + .build(); + public static final RecipeMap<RecipeMapBackend> nanoForgeRecipes = RecipeMapBuilder.of("gt.recipe.nanoforge") + .maxIO(6, 2, 3, 0) + .minInputs(2, 1) + .slotOverlays( + (index, isFluid, isOutput, + isSpecial) -> !isFluid && !isOutput && index == 0 ? GT_UITextures.OVERLAY_SLOT_LENS : null) + .progressBar(GT_UITextures.PROGRESSBAR_ASSEMBLE) + .disableOptimize() + .neiSpecialInfoFormatter(new SimpleSpecialValueFormatter("GT5U.nei.tier")) + .build(); + public static final RecipeMap<RecipeMapBackend> pcbFactoryRecipes = RecipeMapBuilder.of("gt.recipe.pcbfactory") + .maxIO(6, 9, 3, 0) + .minInputs(3, 1) + .progressBar(GT_UITextures.PROGRESSBAR_ASSEMBLE) + .disableOptimize() + .neiRecipeComparator( + Comparator + .<GT_Recipe, Integer>comparing(recipe -> recipe.getMetadataOrDefault(PCBFactoryTierKey.INSTANCE, 1)) + .thenComparing(GT_Recipe::compareTo)) + .build(); + public static final RecipeMap<RecipeMapBackend> ic2NuclearFakeRecipes = RecipeMapBuilder.of("gt.recipe.ic2nuke") + .maxIO(1, 1, 0, 0) + .minInputs(1, 0) + .disableOptimize() + .logo(GT_UITextures.PICTURE_RADIATION_WARNING) + .logoPos(152, 41) + .neiRecipeBackgroundSize(170, 60) + .neiHandlerInfo(builder -> builder.setDisplayStack(GT_ModHandler.getIC2Item("nuclearReactor", 1, null))) + .build(); + + static { + RecipeMaps.centrifugeRecipes.addDownstream(RecipeMaps.centrifugeNonCellRecipes.deepCopyInput()); + RecipeMaps.mixerRecipes.addDownstream(RecipeMaps.mixerNonCellRecipes.deepCopyInput()); + RecipeMaps.electrolyzerRecipes.addDownstream(RecipeMaps.electrolyzerNonCellRecipes.deepCopyInput()); + RecipeMaps.dieselFuels.addDownstream( + IRecipeMap.newRecipeMap( + b -> b.build() + .map( + r -> RecipeMaps.largeBoilerFakeFuels.getBackend() + .addDieselRecipe(r)) + .map(Collections::singletonList) + .orElse(Collections.emptyList()))); + RecipeMaps.dieselFuels.addDownstream(IRecipeMap.newRecipeMap(b -> { + if (b.getMetadataOrDefault(FUEL_VALUE, 0) < 1500) return Collections.emptyList(); + return b.addTo(RecipeMaps.extremeDieselFuels); + })); + RecipeMaps.denseLiquidFuels.addDownstream( + IRecipeMap.newRecipeMap( + b -> b.build() + .map( + r -> RecipeMaps.largeBoilerFakeFuels.getBackend() + .addDenseLiquidRecipe(r)) + .map(Collections::singletonList) + .orElse(Collections.emptyList()))); + } +} diff --git a/src/main/java/gregtech/api/recipe/RecipeMetadataKey.java b/src/main/java/gregtech/api/recipe/RecipeMetadataKey.java new file mode 100644 index 0000000000..2156421835 --- /dev/null +++ b/src/main/java/gregtech/api/recipe/RecipeMetadataKey.java @@ -0,0 +1,84 @@ +package gregtech.api.recipe; + +import java.util.HashSet; +import java.util.Set; + +import javax.annotation.Nullable; +import javax.annotation.ParametersAreNonnullByDefault; + +import org.jetbrains.annotations.Contract; + +import gregtech.api.recipe.metadata.IRecipeMetadataStorage; +import gregtech.api.util.FieldsAreNonnullByDefault; +import gregtech.api.util.MethodsReturnNonnullByDefault; +import gregtech.nei.RecipeDisplayInfo; + +/** + * Unique key for the {@link IRecipeMetadataStorage}. It's also responsible for drawing metadata info on NEI. + * <p> + * You can use {@link gregtech.api.recipe.metadata.SimpleRecipeMetadataKey} if your metadata does not need NEI handling. + * + * @param <T> Type of the metadata to use. + */ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +@FieldsAreNonnullByDefault +public abstract class RecipeMetadataKey<T> { + + private static final Set<RecipeMetadataKey<?>> allIdentifiers = new HashSet<>(); + private final Class<T> clazz; + private final String identifier; + + protected RecipeMetadataKey(Class<T> clazz, String identifier) { + this.clazz = clazz; + this.identifier = identifier; + if (allIdentifiers.contains(this)) { + throw new IllegalArgumentException( + "Cannot register metadata key with exact same properties: " + identifier + "@" + clazz); + } + allIdentifiers.add(this); + } + + /** + * Draws info about the metadata. + * + * @param recipeInfo Object to use for drawing text. + * @param value Metadata stored in the recipe. Can be safely {@link #cast}ed to the desired type. + */ + public abstract void drawInfo(RecipeDisplayInfo recipeInfo, @Nullable Object value); + + @Nullable + public T cast(@Nullable Object o) { + return clazz.cast(o); + } + + @Contract("_, !null -> !null") + @Nullable + public T cast(@Nullable Object o, @Nullable T defaultValue) { + T val = cast(o); + return val != null ? val : defaultValue; + } + + @Override + public String toString() { + return "RecipeMetadataKey{" + "clazz=" + clazz.getName() + ", identifier=" + identifier + '\'' + '}'; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + RecipeMetadataKey<?> that = (RecipeMetadataKey<?>) o; + + if (!clazz.equals(that.clazz)) return false; + return identifier.equals(that.identifier); + } + + @Override + public int hashCode() { + int result = clazz.hashCode(); + result = 31 * result + identifier.hashCode(); + return result; + } +} diff --git a/src/main/java/gregtech/api/recipe/check/FindRecipeResult.java b/src/main/java/gregtech/api/recipe/check/FindRecipeResult.java deleted file mode 100644 index fa0e251fa1..0000000000 --- a/src/main/java/gregtech/api/recipe/check/FindRecipeResult.java +++ /dev/null @@ -1,125 +0,0 @@ -package gregtech.api.recipe.check; - -import java.util.Objects; - -import javax.annotation.Nonnull; -import javax.annotation.Nullable; - -import org.jetbrains.annotations.NotNull; - -import gregtech.api.util.GT_Recipe; - -/** - * Wrapper class to get result of recipe search for recipemap. Note that this only validates recipe input and voltage, - * and does not involve in actual check in the machine such as output space or special value. - */ -public class FindRecipeResult { - - @Nonnull - private final State state; - @Nullable - private final GT_Recipe recipe; - @Nullable - private RecipeValidator recipeValidator; - - private FindRecipeResult(@Nonnull State state, @Nullable GT_Recipe recipe) { - this.state = state; - this.recipe = recipe; - } - - @Nonnull - public State getState() { - return state; - } - - public boolean isSuccessful() { - return state.success; - } - - /** - * If you already checked {@link #isSuccessful()}, you can use {@link #getRecipeNonNull()} instead. - */ - @Nullable - public GT_Recipe getRecipe() { - return recipe; - } - - /** - * You should use this ONLY WHEN state == FOUND. - */ - @Nonnull - public GT_Recipe getRecipeNonNull() { - return Objects.requireNonNull(recipe); - } - - /** - * Gets recipeValidator if it is not null. - * Be sure to call hasRecipeValidator before to determine if recipeValidator exists - * - * @return not null recipe validator - */ - @NotNull - public RecipeValidator getRecipeValidator() { - return Objects.requireNonNull(recipeValidator); - } - - /** - * Sets recipeValidator which used to get this result - */ - public void setRecipeValidator(@Nullable RecipeValidator recipeValidator) { - this.recipeValidator = recipeValidator; - } - - /** - * Gets if this result has recipeValidator - */ - public boolean hasRecipeValidator() { - return recipeValidator != null; - } - - /** - * Successfully found recipe. - */ - public static FindRecipeResult ofSuccess(@Nonnull GT_Recipe recipe) { - return new FindRecipeResult(State.FOUND, Objects.requireNonNull(recipe)); - } - - /** - * No recipe found. - */ - public static final FindRecipeResult NOT_FOUND = new FindRecipeResult(State.NOT_FOUND, null); - /** - * For Microwave. - */ - public static final FindRecipeResult EXPLODE = new FindRecipeResult(State.EXPLODE, null); - /** - * For Microwave. - */ - public static final FindRecipeResult ON_FIRE = new FindRecipeResult(State.ON_FIRE, null); - - public enum State { - - /** - * Successfully found recipe. - */ - FOUND(true), - /** - * No recipe found. - */ - NOT_FOUND(false), - /** - * For Microwave. - */ - EXPLODE(false), - /** - * For Microwave. - */ - ON_FIRE(false); - - private final boolean success; - - State(boolean success) { - this.success = success; - } - } -} diff --git a/src/main/java/gregtech/api/recipe/check/RecipeValidator.java b/src/main/java/gregtech/api/recipe/check/RecipeValidator.java deleted file mode 100644 index 8fb7b87cfe..0000000000 --- a/src/main/java/gregtech/api/recipe/check/RecipeValidator.java +++ /dev/null @@ -1,80 +0,0 @@ -package gregtech.api.recipe.check; - -import java.util.function.Function; -import java.util.function.Predicate; - -import gregtech.api.util.GT_OverclockCalculator; -import gregtech.api.util.GT_ParallelHelper; -import gregtech.api.util.GT_Recipe; - -/** - * Predicate for simple recipe validation. - * Also store some validation results for reusing it - */ -public class RecipeValidator implements Predicate<GT_Recipe> { - - private CheckRecipeResult firstCheckResult; - private CheckRecipeResult lastCheckResult; - private GT_ParallelHelper lastParallelHelper; - private GT_OverclockCalculator lastOverclockCalculator; - private boolean wasExecutedAtLeastOnce = false; - private final Function<GT_Recipe, CheckRecipeResult> recipeValidator; - private final Function<GT_Recipe, GT_ParallelHelper> parallelHelperFactory; - private final Function<GT_Recipe, GT_OverclockCalculator> overclockCalculatorFactory; - - public RecipeValidator(Function<GT_Recipe, CheckRecipeResult> recipeValidator, - Function<GT_Recipe, GT_ParallelHelper> parallelHelperFactory, - Function<GT_Recipe, GT_OverclockCalculator> overclockCalculatorFactory) { - this.recipeValidator = recipeValidator; - this.parallelHelperFactory = parallelHelperFactory; - this.overclockCalculatorFactory = overclockCalculatorFactory; - } - - @Override - public boolean test(GT_Recipe recipe) { - wasExecutedAtLeastOnce = true; - CheckRecipeResult checkRecipeResult = checkRecipe(recipe); - if (firstCheckResult == null) { - firstCheckResult = checkRecipeResult; - } - return checkRecipeResult.wasSuccessful(); - } - - private CheckRecipeResult checkRecipe(GT_Recipe recipe) { - lastCheckResult = recipeValidator.apply(recipe); - - if (!lastCheckResult.wasSuccessful()) { - return lastCheckResult; - } - - lastParallelHelper = parallelHelperFactory.apply(recipe); - lastOverclockCalculator = overclockCalculatorFactory.apply(recipe); - lastParallelHelper.setCalculator(lastOverclockCalculator); - lastParallelHelper.build(); - - return lastParallelHelper.getResult(); - } - - public Boolean isExecutedAtLeastOnce() { - return wasExecutedAtLeastOnce; - } - - /** - * Gets first check result in case if nothing matching recipe found. - */ - public CheckRecipeResult getFirstCheckResult() { - return firstCheckResult; - } - - public CheckRecipeResult getLastCheckResult() { - return lastCheckResult; - } - - public GT_ParallelHelper getLastParallelHelper() { - return lastParallelHelper; - } - - public GT_OverclockCalculator getLastOverclockCalculator() { - return lastOverclockCalculator; - } -} diff --git a/src/main/java/gregtech/api/recipe/check/SingleRecipeCheck.java b/src/main/java/gregtech/api/recipe/check/SingleRecipeCheck.java index d0a952b8d5..8683812d84 100644 --- a/src/main/java/gregtech/api/recipe/check/SingleRecipeCheck.java +++ b/src/main/java/gregtech/api/recipe/check/SingleRecipeCheck.java @@ -23,6 +23,7 @@ import net.minecraftforge.fluids.FluidStack; import com.google.common.collect.ImmutableMap; import gregtech.api.enums.GT_Values; +import gregtech.api.recipe.RecipeMap; import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; import gregtech.api.util.GT_Utility.ItemId; @@ -34,7 +35,7 @@ import gregtech.api.util.GT_Utility.ItemId; * <ul> * Normal recipe check: * <ul> - * {@link GT_Recipe.GT_Recipe_Map#findRecipeWithResult Find recipe from recipemap}: O(NCR) + * {@link gregtech.api.recipe.FindRecipeQuery#find Find recipe from recipemap}: O(NCR) * where N = number of machine inputs, C = average amount of recipe candidates found for specific input, * R = computation time to {@link GT_Recipe#isRecipeInputEqual check if inputs match to recipe} * </ul> @@ -53,7 +54,7 @@ public class SingleRecipeCheck { @Nonnull private final GT_Recipe recipe; @Nonnull - private final GT_Recipe.GT_Recipe_Map recipeMap; + private final RecipeMap<?> recipeMap; @Nonnull private final ImmutableMap<ItemId, Integer> itemCost; @Nonnull @@ -62,7 +63,7 @@ public class SingleRecipeCheck { private final int totalItemCost; private final int totalFluidCost; - private SingleRecipeCheck(@Nonnull GT_Recipe recipe, @Nonnull GT_Recipe.GT_Recipe_Map recipeMap, + private SingleRecipeCheck(@Nonnull GT_Recipe recipe, @Nonnull RecipeMap<?> recipeMap, @Nonnull ImmutableMap<ItemId, Integer> itemCost, @Nonnull ImmutableMap<Fluid, Integer> fluidCost) { this.recipe = recipe; this.recipeMap = recipeMap; @@ -85,7 +86,7 @@ public class SingleRecipeCheck { } @Nonnull - public GT_Recipe.GT_Recipe_Map getRecipeMap() { + public RecipeMap<?> getRecipeMap() { return recipeMap; } @@ -189,7 +190,7 @@ public class SingleRecipeCheck { // we don't yet have a mean to uniquely name a recipe, this will have to make do. // Consider move serialization code to GT_Recipe once this has been proven to work NBTTagCompound tag = new NBTTagCompound(); - tag.setString("recipemap", recipeMap.mUnlocalizedName); + tag.setString("recipemap", recipeMap.unlocalizedName); if (recipe.mInputs != null) { tag.setTag("inputs", writeList(recipe.mInputs, GT_Utility::saveItem)); } @@ -250,13 +251,13 @@ public class SingleRecipeCheck { } @Nullable - public static SingleRecipeCheck tryLoad(GT_Recipe.GT_Recipe_Map recipeMap, NBTTagCompound tag) { + public static SingleRecipeCheck tryLoad(RecipeMap<?> recipeMap, NBTTagCompound tag) { if (tag == null || tag.hasNoTags()) return null; - GT_Recipe.GT_Recipe_Map mapToUse; + RecipeMap<?> mapToUse; if (tag.hasKey("recipemap")) { String mapName = tag.getString("recipemap"); - GT_Recipe.GT_Recipe_Map foundMap = GT_Recipe.GT_Recipe_Map.findRecipeMap(mapName); + RecipeMap<?> foundMap = RecipeMap.ALL_RECIPE_MAPS.get(mapName); if (foundMap != null) { mapToUse = foundMap; } else { @@ -288,7 +289,7 @@ public class SingleRecipeCheck { .toImmutableMapSerial(t -> ItemId.create(t.getCompoundTag("id")), t -> t.getInteger("count"))); } - private static GT_Recipe tryFindRecipe(@Nonnull GT_Recipe.GT_Recipe_Map recipeMap, NBTTagCompound tag) { + private static GT_Recipe tryFindRecipe(@Nonnull RecipeMap<?> recipeMap, NBTTagCompound tag) { ItemStack[] inputs = GT_Utility.streamCompounds(tag.getTagList("inputs", Constants.NBT.TAG_COMPOUND)) .map(GT_Utility::loadItem) .toArray(ItemStack[]::new); @@ -334,13 +335,13 @@ public class SingleRecipeCheck { return ImmutableMap.copyOf(fluidMap); } - public static Builder builder(@Nonnull GT_Recipe.GT_Recipe_Map recipeMap) { + public static Builder builder(@Nonnull RecipeMap<?> recipeMap) { return new Builder(Objects.requireNonNull(recipeMap)); } public static class Builder { - private final GT_Recipe.GT_Recipe_Map recipeMap; + private final RecipeMap<?> recipeMap; // In order to compute which items and fluids are consumed by the recipe, we compare the // multi-block's items and fluids before and after inputs are consumed by the recipe. @@ -351,7 +352,7 @@ public class SingleRecipeCheck { private GT_Recipe recipe; - private Builder(@Nonnull GT_Recipe.GT_Recipe_Map recipeMap) { + private Builder(@Nonnull RecipeMap<?> recipeMap) { this.recipeMap = recipeMap; } diff --git a/src/main/java/gregtech/api/recipe/maps/AssemblerBackend.java b/src/main/java/gregtech/api/recipe/maps/AssemblerBackend.java new file mode 100644 index 0000000000..cfa25e9fe2 --- /dev/null +++ b/src/main/java/gregtech/api/recipe/maps/AssemblerBackend.java @@ -0,0 +1,35 @@ +package gregtech.api.recipe.maps; + +import javax.annotation.Nullable; +import javax.annotation.ParametersAreNonnullByDefault; + +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidStack; + +import gregtech.api.enums.ItemList; +import gregtech.api.recipe.RecipeMapBackend; +import gregtech.api.recipe.RecipeMapBackendPropertiesBuilder; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.MethodsReturnNonnullByDefault; + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +public class AssemblerBackend extends RecipeMapBackend { + + public AssemblerBackend(RecipeMapBackendPropertiesBuilder propertiesBuilder) { + super(propertiesBuilder); + } + + @Override + protected GT_Recipe modifyFoundRecipe(GT_Recipe recipe, ItemStack[] items, FluidStack[] fluids, + @Nullable ItemStack specialSlot) { + for (ItemStack item : items) { + if (ItemList.Paper_Printed_Pages.isStackEqual(item, false, true)) { + recipe = recipe.copy(); + recipe.mCanBeBuffered = false; + recipe.mOutputs[0].setTagCompound(item.getTagCompound()); + } + } + return recipe; + } +} diff --git a/src/main/java/gregtech/api/recipe/maps/AssemblyLineFrontend.java b/src/main/java/gregtech/api/recipe/maps/AssemblyLineFrontend.java new file mode 100644 index 0000000000..3d56c96b82 --- /dev/null +++ b/src/main/java/gregtech/api/recipe/maps/AssemblyLineFrontend.java @@ -0,0 +1,76 @@ +package gregtech.api.recipe.maps; + +import java.util.Collections; +import java.util.List; +import java.util.function.Supplier; + +import javax.annotation.ParametersAreNonnullByDefault; + +import com.gtnewhorizons.modularui.api.math.Pos2d; +import com.gtnewhorizons.modularui.api.screen.ModularWindow; +import com.gtnewhorizons.modularui.common.widget.ProgressBar; + +import gregtech.api.gui.modularui.GT_UITextures; +import gregtech.api.recipe.BasicUIPropertiesBuilder; +import gregtech.api.recipe.NEIRecipePropertiesBuilder; +import gregtech.api.recipe.RecipeMapFrontend; +import gregtech.api.util.MethodsReturnNonnullByDefault; +import gregtech.common.gui.modularui.UIHelper; + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +public class AssemblyLineFrontend extends RecipeMapFrontend { + + public AssemblyLineFrontend(BasicUIPropertiesBuilder uiPropertiesBuilder, + NEIRecipePropertiesBuilder neiPropertiesBuilder) { + super(uiPropertiesBuilder, neiPropertiesBuilder); + } + + @Override + public List<Pos2d> getItemInputPositions(int itemInputCount) { + return UIHelper.getGridPositions(itemInputCount, 16, 8, 4); + } + + @Override + public List<Pos2d> getItemOutputPositions(int itemOutputCount) { + return Collections.singletonList(new Pos2d(142, 8)); + } + + @Override + public Pos2d getSpecialItemPosition() { + return new Pos2d(142, 44); + } + + @Override + public List<Pos2d> getFluidInputPositions(int fluidInputCount) { + return UIHelper.getGridPositions(fluidInputCount, 106, 8, 1); + } + + @Override + public void addProgressBar(ModularWindow.Builder builder, Supplier<Float> progressSupplier, Pos2d windowOffset) { + int bar1Width = 17; + int bar2Width = 18; + List<Supplier<Float>> splitProgress = splitProgress(progressSupplier, bar1Width, bar2Width); + builder.widget( + new ProgressBar().setTexture(GT_UITextures.PROGRESSBAR_ASSEMBLY_LINE_1, bar1Width) + .setDirection(ProgressBar.Direction.RIGHT) + .setProgress(splitProgress.get(0)) + .setSynced(false, false) + .setPos(new Pos2d(88, 8).add(windowOffset)) + .setSize(bar1Width, 72)); + builder.widget( + new ProgressBar().setTexture(GT_UITextures.PROGRESSBAR_ASSEMBLY_LINE_2, bar2Width) + .setDirection(ProgressBar.Direction.RIGHT) + .setProgress(splitProgress.get(1)) + .setSynced(false, false) + .setPos(new Pos2d(124, 8).add(windowOffset)) + .setSize(bar2Width, 72)); + builder.widget( + new ProgressBar().setTexture(GT_UITextures.PROGRESSBAR_ASSEMBLY_LINE_3, 18) + .setDirection(ProgressBar.Direction.UP) + .setProgress(progressSupplier) + .setSynced(false, false) + .setPos(new Pos2d(146, 26).add(windowOffset)) + .setSize(10, 18)); + } +} diff --git a/src/main/java/gregtech/api/recipe/maps/DistillationTowerFrontend.java b/src/main/java/gregtech/api/recipe/maps/DistillationTowerFrontend.java new file mode 100644 index 0000000000..b061d10d55 --- /dev/null +++ b/src/main/java/gregtech/api/recipe/maps/DistillationTowerFrontend.java @@ -0,0 +1,38 @@ +package gregtech.api.recipe.maps; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import javax.annotation.ParametersAreNonnullByDefault; + +import com.gtnewhorizons.modularui.api.math.Pos2d; + +import gregtech.api.recipe.BasicUIPropertiesBuilder; +import gregtech.api.recipe.NEIRecipePropertiesBuilder; +import gregtech.api.recipe.RecipeMapFrontend; +import gregtech.api.util.MethodsReturnNonnullByDefault; + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +public class DistillationTowerFrontend extends RecipeMapFrontend { + + public DistillationTowerFrontend(BasicUIPropertiesBuilder uiPropertiesBuilder, + NEIRecipePropertiesBuilder neiPropertiesBuilder) { + super(uiPropertiesBuilder, neiPropertiesBuilder); + } + + @Override + public List<Pos2d> getItemOutputPositions(int itemOutputCount) { + return Collections.singletonList(new Pos2d(106, 62)); + } + + @Override + public List<Pos2d> getFluidOutputPositions(int fluidOutputCount) { + List<Pos2d> results = new ArrayList<>(); + for (int i = 1; i < fluidOutputCount + 1; i++) { + results.add(new Pos2d(106 + (i % 3) * 18, 62 - (i / 3) * 18)); + } + return results; + } +} diff --git a/src/main/java/gregtech/api/recipe/maps/FluidCannerBackend.java b/src/main/java/gregtech/api/recipe/maps/FluidCannerBackend.java new file mode 100644 index 0000000000..e5681f59aa --- /dev/null +++ b/src/main/java/gregtech/api/recipe/maps/FluidCannerBackend.java @@ -0,0 +1,73 @@ +package gregtech.api.recipe.maps; + +import javax.annotation.Nullable; +import javax.annotation.ParametersAreNonnullByDefault; + +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.IFluidContainerItem; + +import gregtech.api.enums.GT_Values; +import gregtech.api.recipe.RecipeMapBackend; +import gregtech.api.recipe.RecipeMapBackendPropertiesBuilder; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_Utility; +import gregtech.api.util.MethodsReturnNonnullByDefault; + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +public class FluidCannerBackend extends RecipeMapBackend { + + public FluidCannerBackend(RecipeMapBackendPropertiesBuilder propertiesBuilder) { + super(propertiesBuilder); + } + + @Override + protected GT_Recipe findFallback(ItemStack[] items, FluidStack[] fluids, @Nullable ItemStack specialSlot) { + if (items.length == 0 || items[0] == null) { + return null; + } + + if (fluids.length > 0 && fluids[0] != null) { + ItemStack filledItem = GT_Utility.fillFluidContainer(fluids[0], items[0], false, true); + FluidStack fluidToTake = GT_Utility.getFluidForFilledItem(filledItem, true); + if (fluidToTake != null) { + return GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, items[0])) + .itemOutputs(filledItem) + .fluidInputs(fluidToTake) + .duration(Math.max(fluidToTake.amount / 64, 16)) + .eut(1) + .noOptimize() + .noBuffer() + .build() + .orElse(null); + } + } + FluidStack drainedFluid = GT_Utility.getFluidForFilledItem(items[0], true); + if (drainedFluid != null) { + return GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, items[0])) + .itemOutputs(GT_Utility.getContainerItem(items[0], true)) + .fluidOutputs(drainedFluid) + .duration(Math.max(drainedFluid.amount / 64, 16)) + .eut(1) + .noBuffer() + .build() + .orElse(null); + } + return null; + } + + @Override + public boolean containsInput(ItemStack item) { + return super.containsInput(item) || (item.getItem() instanceof IFluidContainerItem + && ((IFluidContainerItem) item.getItem()).getCapacity(item) > 0); + } + + @Override + public boolean containsInput(Fluid fluid) { + return true; + } +} diff --git a/src/main/java/gregtech/api/recipe/maps/FluidOnlyFrontend.java b/src/main/java/gregtech/api/recipe/maps/FluidOnlyFrontend.java new file mode 100644 index 0000000000..8b37f6388c --- /dev/null +++ b/src/main/java/gregtech/api/recipe/maps/FluidOnlyFrontend.java @@ -0,0 +1,33 @@ +package gregtech.api.recipe.maps; + +import java.util.List; + +import com.gtnewhorizons.modularui.api.math.Pos2d; + +import gregtech.api.recipe.BasicUIPropertiesBuilder; +import gregtech.api.recipe.NEIRecipePropertiesBuilder; +import gregtech.api.recipe.RecipeMapFrontend; +import gregtech.api.util.MethodsReturnNonnullByDefault; +import gregtech.common.gui.modularui.UIHelper; + +/** + * Display fluids where normally items are placed on NEI. + */ +@MethodsReturnNonnullByDefault +public class FluidOnlyFrontend extends RecipeMapFrontend { + + public FluidOnlyFrontend(BasicUIPropertiesBuilder uiPropertiesBuilder, + NEIRecipePropertiesBuilder neiPropertiesBuilder) { + super(uiPropertiesBuilder, neiPropertiesBuilder); + } + + @Override + public List<Pos2d> getFluidInputPositions(int fluidInputCount) { + return UIHelper.getItemInputPositions(fluidInputCount); + } + + @Override + public List<Pos2d> getFluidOutputPositions(int fluidOutputCount) { + return UIHelper.getItemOutputPositions(fluidOutputCount); + } +} diff --git a/src/main/java/gregtech/api/recipe/maps/FormingPressBackend.java b/src/main/java/gregtech/api/recipe/maps/FormingPressBackend.java new file mode 100644 index 0000000000..ce3ea3e89c --- /dev/null +++ b/src/main/java/gregtech/api/recipe/maps/FormingPressBackend.java @@ -0,0 +1,92 @@ +package gregtech.api.recipe.maps; + +import javax.annotation.Nullable; +import javax.annotation.ParametersAreNonnullByDefault; + +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.fluids.FluidStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.recipe.RecipeMapBackend; +import gregtech.api.recipe.RecipeMapBackendPropertiesBuilder; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_Utility; +import gregtech.api.util.MethodsReturnNonnullByDefault; + +/** + * Special Class for Forming Press handling. + */ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +public class FormingPressBackend extends RecipeMapBackend { + + public FormingPressBackend(RecipeMapBackendPropertiesBuilder propertiesBuilder) { + super(propertiesBuilder); + } + + @Override + protected GT_Recipe modifyFoundRecipe(GT_Recipe recipe, ItemStack[] items, FluidStack[] fluids, + @Nullable ItemStack specialSlot) { + for (ItemStack mold : items) { + if (ItemList.Shape_Mold_Credit.isStackEqual(mold, false, true)) { + NBTTagCompound nbt = mold.getTagCompound(); + if (nbt == null) nbt = new NBTTagCompound(); + if (!nbt.hasKey("credit_security_id")) nbt.setLong("credit_security_id", System.nanoTime()); + mold.setTagCompound(nbt); + + recipe = recipe.copy(); + recipe.mCanBeBuffered = false; + recipe.mOutputs[0].setTagCompound(nbt); + return recipe; + } + } + return recipe; + } + + @Override + protected GT_Recipe findFallback(ItemStack[] items, FluidStack[] fluids, @Nullable ItemStack specialSlot) { + if (items.length < 2) { + return null; + } + return findRenamingRecipe(items); + } + + @Nullable + private GT_Recipe findRenamingRecipe(ItemStack[] inputs) { + ItemStack mold = findNameMoldIndex(inputs); + if (mold == null) return null; + ItemStack input = findStackToRename(inputs, mold); + if (input == null) return null; + ItemStack output = GT_Utility.copyAmount(1, input); + if (output == null) return null; + output.setStackDisplayName(mold.getDisplayName()); + return GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(0, mold), GT_Utility.copyAmount(1, input)) + .itemOutputs(output) + .duration(128) + .eut(8) + .noBuffer() + .nbtSensitive() + .build() + .orElse(null); + } + + @Nullable + private ItemStack findNameMoldIndex(ItemStack[] inputs) { + for (ItemStack stack : inputs) { + if (ItemList.Shape_Mold_Name.isStackEqual(stack, false, true)) return stack; + } + return null; + } + + @Nullable + private ItemStack findStackToRename(ItemStack[] inputs, ItemStack mold) { + for (ItemStack stack : inputs) { + if (stack == mold || stack == null) continue; + return stack; + } + return null; + } +} diff --git a/src/main/java/gregtech/api/recipe/maps/FuelBackend.java b/src/main/java/gregtech/api/recipe/maps/FuelBackend.java new file mode 100644 index 0000000000..49c989e174 --- /dev/null +++ b/src/main/java/gregtech/api/recipe/maps/FuelBackend.java @@ -0,0 +1,75 @@ +package gregtech.api.recipe.maps; + +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; + +import javax.annotation.Nullable; +import javax.annotation.ParametersAreNonnullByDefault; + +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidStack; + +import gregtech.api.recipe.RecipeMapBackend; +import gregtech.api.recipe.RecipeMapBackendPropertiesBuilder; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_RecipeBuilder; +import gregtech.api.util.GT_Utility; +import gregtech.api.util.MethodsReturnNonnullByDefault; + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +public class FuelBackend extends RecipeMapBackend { + + private final Map<String, GT_Recipe> recipesByFluidInput = new HashMap<>(); + + public FuelBackend(RecipeMapBackendPropertiesBuilder propertiesBuilder) { + super(propertiesBuilder.disableOptimize()); + } + + @Override + protected Collection<GT_Recipe> doAdd(GT_RecipeBuilder builder) { + if (builder.getDuration() == -1) { + builder.duration(0); + } + if (builder.getEUt() == -1) { + builder.eut(0); + } + return super.doAdd(builder); + } + + @Override + public GT_Recipe compileRecipe(GT_Recipe recipe) { + super.compileRecipe(recipe); + if (recipe.mInputs != null && GT_Utility.getNonnullElementCount(recipe.mInputs) == 1 + && (recipe.mFluidInputs == null || GT_Utility.getNonnullElementCount(recipe.mFluidInputs) == 0)) { + FluidStack fluidStack = GT_Utility.getFluidForFilledItem(recipe.mInputs[0], true); + if (fluidStack != null) { + fluidStack.amount = 0; + recipesByFluidInput.put( + fluidStack.getFluid() + .getName(), + recipe); + } + } else if ((recipe.mInputs == null || GT_Utility.getNonnullElementCount(recipe.mInputs) == 0) + && recipe.mFluidInputs != null + && GT_Utility.getNonnullElementCount(recipe.mFluidInputs) >= 1 + && recipe.mFluidInputs[0] != null) { + recipesByFluidInput.put( + recipe.mFluidInputs[0].getFluid() + .getName(), + recipe); + } + return recipe; + } + + @Nullable + public GT_Recipe findFuel(FluidStack fluidStack) { + return findFuel(fluidStack.getFluid()); + } + + @Nullable + public GT_Recipe findFuel(Fluid fluid) { + return recipesByFluidInput.get(fluid.getName()); + } +} diff --git a/src/main/java/gregtech/api/recipe/maps/FurnaceBackend.java b/src/main/java/gregtech/api/recipe/maps/FurnaceBackend.java new file mode 100644 index 0000000000..c4095eeb4e --- /dev/null +++ b/src/main/java/gregtech/api/recipe/maps/FurnaceBackend.java @@ -0,0 +1,52 @@ +package gregtech.api.recipe.maps; + +import javax.annotation.Nullable; +import javax.annotation.ParametersAreNonnullByDefault; + +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.recipe.RecipeMapBackendPropertiesBuilder; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_Utility; +import gregtech.api.util.MethodsReturnNonnullByDefault; + +/** + * Special Class for Furnace Recipe handling. + */ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +public class FurnaceBackend extends NonGTBackend { + + public FurnaceBackend(RecipeMapBackendPropertiesBuilder propertiesBuilder) { + super(propertiesBuilder); + } + + @Override + protected GT_Recipe overwriteFindRecipe(ItemStack[] items, FluidStack[] fluids, @Nullable ItemStack specialSlot, + @Nullable GT_Recipe cachedRecipe) { + if (items.length == 0 || items[0] == null) { + return null; + } + if (cachedRecipe != null && cachedRecipe.isRecipeInputEqual(false, true, fluids, items)) { + return cachedRecipe; + } + ItemStack output = GT_ModHandler.getSmeltingOutput(items[0], false, null); + return output == null ? null + : GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, items[0])) + .itemOutputs(output) + .duration(128) + .eut(4) + .noOptimize() + .build() + .orElse(null); + } + + @Override + public boolean containsInput(ItemStack item) { + return GT_ModHandler.getSmeltingOutput(item, false, null) != null; + } +} diff --git a/src/main/java/gregtech/api/recipe/maps/LargeBoilerFuelBackend.java b/src/main/java/gregtech/api/recipe/maps/LargeBoilerFuelBackend.java new file mode 100644 index 0000000000..53152312f4 --- /dev/null +++ b/src/main/java/gregtech/api/recipe/maps/LargeBoilerFuelBackend.java @@ -0,0 +1,132 @@ +package gregtech.api.recipe.maps; + +import java.util.Arrays; +import java.util.List; + +import javax.annotation.Nullable; +import javax.annotation.ParametersAreNonnullByDefault; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +import gregtech.api.GregTech_API; +import gregtech.api.enums.ConfigCategories; +import gregtech.api.enums.GT_Values; +import gregtech.api.recipe.RecipeMapBackend; +import gregtech.api.recipe.RecipeMapBackendPropertiesBuilder; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.MethodsReturnNonnullByDefault; + +@SuppressWarnings({ "unused", "UnusedReturnValue" }) +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +public class LargeBoilerFuelBackend extends RecipeMapBackend { + + private static boolean addedGeneralDesc = false; + + private static final List<String> ALLOWED_SOLID_FUELS = Arrays.asList( + GregTech_API.sMachineFile.mConfig.getStringList( + "LargeBoiler.allowedFuels", + ConfigCategories.machineconfig.toString(), + new String[] { "gregtech:gt.blockreinforced:6", "gregtech:gt.blockreinforced:7" }, + "Allowed fuels for the Large Titanium Boiler and Large Tungstensteel Boiler")); + + public LargeBoilerFuelBackend(RecipeMapBackendPropertiesBuilder propertiesBuilder) { + super(propertiesBuilder); + } + + public static boolean isAllowedSolidFuel(ItemStack stack) { + return isAllowedSolidFuel(Item.itemRegistry.getNameForObject(stack.getItem()), stack.getItemDamage()); + } + + public static boolean isAllowedSolidFuel(String itemRegistryName, int meta) { + return ALLOWED_SOLID_FUELS.contains(itemRegistryName + ":" + meta); + } + + public static boolean addAllowedSolidFuel(ItemStack stack) { + return addAllowedSolidFuel(Item.itemRegistry.getNameForObject(stack.getItem()), stack.getItemDamage()); + } + + public static boolean addAllowedSolidFuel(String itemregistryName, int meta) { + return ALLOWED_SOLID_FUELS.add(itemregistryName + ":" + meta); + } + + public GT_Recipe addDenseLiquidRecipe(GT_Recipe recipe) { + return addRecipe(recipe, ((double) recipe.mSpecialValue) / 10, false); + } + + public GT_Recipe addDieselRecipe(GT_Recipe recipe) { + return addRecipe(recipe, ((double) recipe.mSpecialValue) / 40, false); + } + + public void addSolidRecipes(ItemStack... itemStacks) { + for (ItemStack itemStack : itemStacks) { + addSolidRecipe(itemStack); + } + } + + @Nullable + public GT_Recipe addSolidRecipe(@Nullable ItemStack fuelItemStack) { + if (fuelItemStack == null) { + return null; + } + if (!addedGeneralDesc) { + GT_Values.RA.stdBuilder() + .duration(1) + .eut(1) + .specialValue(1) + .setNEIDesc( + "Not all solid fuels are listed.", + "Any item that burns in a", + "vanilla furnace will burn in", + "a Large Bronze or Steel Boiler.") + .build() + .map(this::compileRecipe); + addedGeneralDesc = true; + } + + String registryName = Item.itemRegistry.getNameForObject(fuelItemStack.getItem()); + boolean isHighTierAllowed = ALLOWED_SOLID_FUELS.contains(registryName + ":" + fuelItemStack.getItemDamage()); + return GT_Values.RA.stdBuilder() + .itemInputs(fuelItemStack) + .duration(1) + .eut(0) + .specialValue(GT_ModHandler.getFuelValue(fuelItemStack) / 1600) + .build() + .map(r -> addRecipe(r, ((double) GT_ModHandler.getFuelValue(fuelItemStack)) / 1600, isHighTierAllowed)) + .orElse(null); + } + + private GT_Recipe addRecipe(GT_Recipe recipe, double baseBurnTime, boolean isHighTierAllowed) { + // Some recipes will have a burn time like 15.9999999 and % always rounds down + double floatErrorCorrection = 0.0001; + + double bronzeBurnTime = baseBurnTime * 2 + floatErrorCorrection; + bronzeBurnTime -= bronzeBurnTime % 0.05; + double steelBurnTime = baseBurnTime + floatErrorCorrection; + steelBurnTime -= steelBurnTime % 0.05; + double titaniumBurnTime = baseBurnTime * 0.3 + floatErrorCorrection; + titaniumBurnTime -= titaniumBurnTime % 0.05; + double tungstensteelBurnTime = baseBurnTime * 0.15 + floatErrorCorrection; + tungstensteelBurnTime -= tungstensteelBurnTime % 0.05; + + if (isHighTierAllowed) { + recipe.setNeiDesc( + "Burn time in seconds:", + String.format("Bronze Boiler: %.4f", bronzeBurnTime), + String.format("Steel Boiler: %.4f", steelBurnTime), + String.format("Titanium Boiler: %.4f", titaniumBurnTime), + String.format("Tungstensteel Boiler: %.4f", tungstensteelBurnTime)); + } else { + recipe.setNeiDesc( + "Burn time in seconds:", + String.format("Bronze Boiler: %.4f", bronzeBurnTime), + String.format("Steel Boiler: %.4f", steelBurnTime), + "Titanium Boiler: Not allowed", + "Tungstenst. Boiler: Not allowed"); + } + + return compileRecipe(recipe); + } +} diff --git a/src/main/java/gregtech/api/recipe/maps/LargeBoilerFuelFrontend.java b/src/main/java/gregtech/api/recipe/maps/LargeBoilerFuelFrontend.java new file mode 100644 index 0000000000..dbe7f6fe2f --- /dev/null +++ b/src/main/java/gregtech/api/recipe/maps/LargeBoilerFuelFrontend.java @@ -0,0 +1,25 @@ +package gregtech.api.recipe.maps; + +import javax.annotation.ParametersAreNonnullByDefault; + +import gregtech.api.recipe.BasicUIPropertiesBuilder; +import gregtech.api.recipe.NEIRecipePropertiesBuilder; +import gregtech.api.recipe.RecipeMapFrontend; +import gregtech.api.util.MethodsReturnNonnullByDefault; +import gregtech.nei.RecipeDisplayInfo; + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +public class LargeBoilerFuelFrontend extends RecipeMapFrontend { + + public LargeBoilerFuelFrontend(BasicUIPropertiesBuilder uiPropertiesBuilder, + NEIRecipePropertiesBuilder neiPropertiesBuilder) { + super(uiPropertiesBuilder, neiPropertiesBuilder); + } + + @Override + protected void drawEnergyInfo(RecipeDisplayInfo recipeInfo) {} + + @Override + protected void drawDurationInfo(RecipeDisplayInfo recipeInfo) {} +} diff --git a/src/main/java/gregtech/api/recipe/maps/LargeNEIFrontend.java b/src/main/java/gregtech/api/recipe/maps/LargeNEIFrontend.java new file mode 100644 index 0000000000..70184a83de --- /dev/null +++ b/src/main/java/gregtech/api/recipe/maps/LargeNEIFrontend.java @@ -0,0 +1,65 @@ +package gregtech.api.recipe.maps; + +import java.util.List; + +import javax.annotation.ParametersAreNonnullByDefault; + +import com.gtnewhorizons.modularui.api.math.Pos2d; +import com.gtnewhorizons.modularui.api.math.Size; + +import gregtech.api.recipe.BasicUIPropertiesBuilder; +import gregtech.api.recipe.NEIRecipePropertiesBuilder; +import gregtech.api.recipe.RecipeMapFrontend; +import gregtech.api.util.MethodsReturnNonnullByDefault; +import gregtech.common.gui.modularui.UIHelper; + +/** + * Nicely display NEI with many items and fluids. Remember to call + * If row count >= 6, it doesn't fit in 2 recipes per page, so change it via IMC. + */ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +public class LargeNEIFrontend extends RecipeMapFrontend { + + private static final int xDirMaxCount = 3; + private static final int yOrigin = 8; + + private final int itemRowCount; + private final int fluidRowCount; + + public LargeNEIFrontend(BasicUIPropertiesBuilder uiPropertiesBuilder, + NEIRecipePropertiesBuilder neiPropertiesBuilder) { + super(uiPropertiesBuilder.logoPos(new Pos2d(80, 62)), neiPropertiesBuilder); + this.itemRowCount = getItemRowCount(); + this.fluidRowCount = getFluidRowCount(); + neiProperties.recipeBackgroundSize = new Size(170, 82 + (Math.max(itemRowCount + fluidRowCount - 4, 0)) * 18); + } + + @Override + public List<Pos2d> getItemInputPositions(int itemInputCount) { + return UIHelper.getGridPositions(itemInputCount, 16, yOrigin, xDirMaxCount); + } + + @Override + public List<Pos2d> getItemOutputPositions(int itemOutputCount) { + return UIHelper.getGridPositions(itemOutputCount, 106, yOrigin, xDirMaxCount); + } + + @Override + public List<Pos2d> getFluidInputPositions(int fluidInputCount) { + return UIHelper.getGridPositions(fluidInputCount, 16, yOrigin + itemRowCount * 18, xDirMaxCount); + } + + @Override + public List<Pos2d> getFluidOutputPositions(int fluidOutputCount) { + return UIHelper.getGridPositions(fluidOutputCount, 106, yOrigin + itemRowCount * 18, xDirMaxCount); + } + + private int getItemRowCount() { + return (Math.max(uiProperties.maxItemInputs, uiProperties.maxItemOutputs) - 1) / xDirMaxCount + 1; + } + + private int getFluidRowCount() { + return (Math.max(uiProperties.maxFluidInputs, uiProperties.maxFluidOutputs) - 1) / xDirMaxCount + 1; + } +} diff --git a/src/main/java/gregtech/api/recipe/maps/MicrowaveBackend.java b/src/main/java/gregtech/api/recipe/maps/MicrowaveBackend.java new file mode 100644 index 0000000000..53623cb0c7 --- /dev/null +++ b/src/main/java/gregtech/api/recipe/maps/MicrowaveBackend.java @@ -0,0 +1,145 @@ +package gregtech.api.recipe.maps; + +import static gregtech.api.enums.GT_Values.W; +import static gregtech.api.util.GT_RecipeConstants.EXPLODE; +import static gregtech.api.util.GT_RecipeConstants.ON_FIRE; + +import javax.annotation.Nullable; +import javax.annotation.ParametersAreNonnullByDefault; + +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntityFurnace; +import net.minecraftforge.fluids.FluidStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.SubTag; +import gregtech.api.objects.ItemData; +import gregtech.api.objects.MaterialStack; +import gregtech.api.recipe.RecipeMapBackendPropertiesBuilder; +import gregtech.api.util.GT_Log; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_RecipeBuilder; +import gregtech.api.util.GT_Utility; +import gregtech.api.util.MethodsReturnNonnullByDefault; + +/** + * Special Class for Microwave Recipe handling. + */ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +public class MicrowaveBackend extends NonGTBackend { + + public MicrowaveBackend(RecipeMapBackendPropertiesBuilder propertiesBuilder) { + super(propertiesBuilder); + } + + @Override + protected GT_Recipe overwriteFindRecipe(ItemStack[] items, FluidStack[] fluids, @Nullable ItemStack specialSlot, + @Nullable GT_Recipe cachedRecipe) { + if (items.length == 0 || items[0] == null) { + return null; + } + if (cachedRecipe != null && cachedRecipe.isRecipeInputEqual(false, true, fluids, items)) { + return cachedRecipe; + } + + ItemStack output = GT_ModHandler.getSmeltingOutput(items[0], false, null); + + if (GT_Utility.areStacksEqual(items[0], new ItemStack(Items.book, 1, W))) { + return GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, items[0])) + .itemOutputs(GT_Utility.getWrittenBook("Manual_Microwave", ItemList.Book_Written_03.get(1))) + .duration(32) + .eut(4) + .noOptimize() + .build() + .orElse(null); + } + + // Check Container Item of Input since it is around the Input, then the Input itself, then Container Item of + // Output and last check the Output itself + for (ItemStack item : new ItemStack[] { GT_Utility.getContainerItem(items[0], true), items[0], + GT_Utility.getContainerItem(output, true), output }) { + if (item == null) continue; + if (GT_Utility.areStacksEqual(item, new ItemStack(Blocks.netherrack, 1, W), true) + || GT_Utility.areStacksEqual(item, new ItemStack(Blocks.tnt, 1, W), true) + || GT_Utility.areStacksEqual(item, new ItemStack(Items.egg, 1, W), true) + || GT_Utility.areStacksEqual(item, new ItemStack(Items.firework_charge, 1, W), true) + || GT_Utility.areStacksEqual(item, new ItemStack(Items.fireworks, 1, W), true) + || GT_Utility.areStacksEqual(item, new ItemStack(Items.fire_charge, 1, W), true)) { + GT_Log.exp + .println("Microwave Explosion due to TNT || EGG || FIREWORKCHARGE || FIREWORK || FIRE CHARGE"); + return GT_RecipeBuilder.empty() + .metadata(EXPLODE, true) + .build() + .orElse(null); + } + + ItemData itemData = GT_OreDictUnificator.getItemData(item); + if (itemData != null) { + if (itemData.mMaterial != null && itemData.mMaterial.mMaterial != null) { + if (itemData.mMaterial.mMaterial.contains(SubTag.METAL) + || itemData.mMaterial.mMaterial.contains(SubTag.EXPLOSIVE)) { + GT_Log.exp.println("Microwave Explosion due to METAL insertion"); + return GT_RecipeBuilder.empty() + .metadata(EXPLODE, true) + .build() + .orElse(null); + } + if (itemData.mMaterial.mMaterial.contains(SubTag.FLAMMABLE)) { + GT_Log.exp.println("Microwave INFLAMMATION due to FLAMMABLE insertion"); + return GT_RecipeBuilder.empty() + .metadata(ON_FIRE, true) + .build() + .orElse(null); + } + } + for (MaterialStack materialStack : itemData.mByProducts) { + if (materialStack == null) continue; + if (materialStack.mMaterial.contains(SubTag.METAL) + || materialStack.mMaterial.contains(SubTag.EXPLOSIVE)) { + GT_Log.exp.println("Microwave Explosion due to METAL insertion"); + return GT_RecipeBuilder.empty() + .metadata(EXPLODE, true) + .build() + .orElse(null); + } + if (materialStack.mMaterial.contains(SubTag.FLAMMABLE)) { + GT_Log.exp.println("Microwave INFLAMMATION due to FLAMMABLE insertion"); + return GT_RecipeBuilder.empty() + .metadata(ON_FIRE, true) + .build() + .orElse(null); + } + } + } + if (TileEntityFurnace.getItemBurnTime(item) > 0) { + GT_Log.exp.println("Microwave INFLAMMATION due to BURNABLE insertion"); + return GT_RecipeBuilder.empty() + .metadata(ON_FIRE, true) + .build() + .orElse(null); + } + } + + return output == null ? null + : GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, items[0])) + .itemOutputs(output) + .duration(32) + .eut(4) + .noOptimize() + .build() + .orElse(null); + } + + @Override + public boolean containsInput(ItemStack item) { + return GT_ModHandler.getSmeltingOutput(item, false, null) != null; + } +} diff --git a/src/main/java/gregtech/api/recipe/maps/NonGTBackend.java b/src/main/java/gregtech/api/recipe/maps/NonGTBackend.java new file mode 100644 index 0000000000..1e871df372 --- /dev/null +++ b/src/main/java/gregtech/api/recipe/maps/NonGTBackend.java @@ -0,0 +1,52 @@ +package gregtech.api.recipe.maps; + +import javax.annotation.Nullable; +import javax.annotation.ParametersAreNonnullByDefault; + +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidStack; + +import gregtech.api.recipe.RecipeMapBackend; +import gregtech.api.recipe.RecipeMapBackendPropertiesBuilder; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.MethodsReturnNonnullByDefault; + +/** + * Abstract class for general recipe handling of non GT recipes + */ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +public abstract class NonGTBackend extends RecipeMapBackend { + + public NonGTBackend(RecipeMapBackendPropertiesBuilder propertiesBuilder) { + super(propertiesBuilder); + } + + @Override + protected abstract GT_Recipe overwriteFindRecipe(ItemStack[] items, FluidStack[] fluids, + @Nullable ItemStack specialSlot, @Nullable GT_Recipe cachedRecipe); + + @Override + protected boolean doesOverwriteFindRecipe() { + return true; + } + + @Override + public boolean containsInput(ItemStack item) { + return false; + } + + @Override + public boolean containsInput(Fluid fluid) { + return false; + } + + @Override + public void reInit() {} + + @Override + protected GT_Recipe addToItemMap(GT_Recipe recipe) { + return recipe; + } +} diff --git a/src/main/java/gregtech/api/recipe/maps/OilCrackerBackend.java b/src/main/java/gregtech/api/recipe/maps/OilCrackerBackend.java new file mode 100644 index 0000000000..c2c312a48a --- /dev/null +++ b/src/main/java/gregtech/api/recipe/maps/OilCrackerBackend.java @@ -0,0 +1,41 @@ +package gregtech.api.recipe.maps; + +import java.util.HashSet; +import java.util.Set; + +import javax.annotation.ParametersAreNonnullByDefault; + +import net.minecraftforge.fluids.FluidStack; + +import gregtech.api.recipe.RecipeMapBackend; +import gregtech.api.recipe.RecipeMapBackendPropertiesBuilder; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.MethodsReturnNonnullByDefault; + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +public class OilCrackerBackend extends RecipeMapBackend { + + private final Set<String> validCatalystFluidNames = new HashSet<>(); + + public OilCrackerBackend(RecipeMapBackendPropertiesBuilder propertiesBuilder) { + super(propertiesBuilder); + } + + @Override + public GT_Recipe compileRecipe(GT_Recipe recipe) { + super.compileRecipe(recipe); + if (recipe.mFluidInputs != null && recipe.mFluidInputs.length > 1 && recipe.mFluidInputs[1] != null) { + validCatalystFluidNames.add( + recipe.mFluidInputs[1].getFluid() + .getName()); + } + return recipe; + } + + public boolean isValidCatalystFluid(FluidStack fluid) { + return validCatalystFluidNames.contains( + fluid.getFluid() + .getName()); + } +} diff --git a/src/main/java/gregtech/api/recipe/maps/PrinterBackend.java b/src/main/java/gregtech/api/recipe/maps/PrinterBackend.java new file mode 100644 index 0000000000..a933886447 --- /dev/null +++ b/src/main/java/gregtech/api/recipe/maps/PrinterBackend.java @@ -0,0 +1,142 @@ +package gregtech.api.recipe.maps; + +import static gregtech.api.enums.GT_Values.L; + +import javax.annotation.Nullable; +import javax.annotation.ParametersAreNonnullByDefault; + +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidStack; + +import gregtech.api.enums.Dyes; +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.recipe.RecipeMapBackend; +import gregtech.api.recipe.RecipeMapBackendPropertiesBuilder; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_Utility; +import gregtech.api.util.MethodsReturnNonnullByDefault; + +/** + * Special Class for Printer handling. + */ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +public class PrinterBackend extends RecipeMapBackend { + + public PrinterBackend(RecipeMapBackendPropertiesBuilder propertiesBuilder) { + super(propertiesBuilder); + } + + @Override + protected GT_Recipe modifyFoundRecipe(GT_Recipe recipe, ItemStack[] items, FluidStack[] fluids, + @Nullable ItemStack specialSlot) { + if (items[0].getItem() == Items.paper) { + assert specialSlot != null; + if (!ItemList.Tool_DataStick.isStackEqual(specialSlot, false, true)) return null; + NBTTagCompound nbt = specialSlot.getTagCompound(); + if (nbt == null || GT_Utility.isStringInvalid(nbt.getString("title")) + || GT_Utility.isStringInvalid(nbt.getString("author"))) return null; + + recipe = recipe.copy(); + recipe.mCanBeBuffered = false; + recipe.mOutputs[0].setTagCompound(nbt); + return recipe; + } + if (items[0].getItem() == Items.map) { + assert specialSlot != null; + if (!ItemList.Tool_DataStick.isStackEqual(specialSlot, false, true)) return null; + NBTTagCompound nbt = specialSlot.getTagCompound(); + if (nbt == null || !nbt.hasKey("map_id")) return null; + + recipe = recipe.copy(); + recipe.mCanBeBuffered = false; + recipe.mOutputs[0].setItemDamage(nbt.getShort("map_id")); + return recipe; + } + if (ItemList.Paper_Punch_Card_Empty.isStackEqual(items[0], false, true)) { + assert specialSlot != null; + if (!ItemList.Tool_DataStick.isStackEqual(specialSlot, false, true)) return null; + NBTTagCompound nbt = specialSlot.getTagCompound(); + if (nbt == null || !nbt.hasKey("GT.PunchCardData")) return null; + + recipe = recipe.copy(); + recipe.mCanBeBuffered = false; + recipe.mOutputs[0].setTagCompound( + GT_Utility.getNBTContainingString( + new NBTTagCompound(), + "GT.PunchCardData", + nbt.getString("GT.PunchCardData"))); + return recipe; + } + return recipe; + } + + @Override + protected GT_Recipe findFallback(ItemStack[] items, FluidStack[] fluids, @Nullable ItemStack specialSlot) { + if (items.length == 0 || items[0] == null || fluids.length == 0 || fluids[0] == null) { + return null; + } + Dyes dye = null; + for (Dyes tDye : Dyes.VALUES) if (tDye.isFluidDye(fluids[0])) { + dye = tDye; + break; + } + if (dye == null) return null; + + ItemStack batchRecolorOutput = GT_ModHandler.getAllRecipeOutput( + null, + items[0], + items[0], + items[0], + items[0], + ItemList.DYE_ONLY_ITEMS[dye.mIndex].get(1), + items[0], + items[0], + items[0], + items[0]); + if (batchRecolorOutput != null) { + return GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(8, items[0])) + .itemOutputs(batchRecolorOutput) + .fluidInputs(new FluidStack(fluids[0].getFluid(), (int) L)) + .duration(256) + .eut(2) + .hidden() + .build() + .map(this::compileRecipe) + .orElse(null); + } + + ItemStack singleRecolorOutput = GT_ModHandler + .getAllRecipeOutput(null, items[0], ItemList.DYE_ONLY_ITEMS[dye.mIndex].get(1)); + if (singleRecolorOutput != null) { + return GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, items[0])) + .itemOutputs(singleRecolorOutput) + .fluidInputs(new FluidStack(fluids[0].getFluid(), (int) L)) + .duration(32) + .eut(2) + .hidden() + .build() + .map(this::compileRecipe) + .orElse(null); + } + + return null; + } + + @Override + public boolean containsInput(ItemStack item) { + return true; + } + + @Override + public boolean containsInput(Fluid fluid) { + return super.containsInput(fluid) || Dyes.isAnyFluidDye(fluid); + } +} diff --git a/src/main/java/gregtech/api/recipe/maps/RecyclerBackend.java b/src/main/java/gregtech/api/recipe/maps/RecyclerBackend.java new file mode 100644 index 0000000000..5d65468004 --- /dev/null +++ b/src/main/java/gregtech/api/recipe/maps/RecyclerBackend.java @@ -0,0 +1,51 @@ +package gregtech.api.recipe.maps; + +import javax.annotation.Nullable; +import javax.annotation.ParametersAreNonnullByDefault; + +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.recipe.RecipeMapBackendPropertiesBuilder; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_Utility; +import gregtech.api.util.MethodsReturnNonnullByDefault; + +/** + * Special Class for Recycler Recipe handling. + */ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +public class RecyclerBackend extends NonGTBackend { + + public RecyclerBackend(RecipeMapBackendPropertiesBuilder propertiesBuilder) { + super(propertiesBuilder); + } + + @Override + protected GT_Recipe overwriteFindRecipe(ItemStack[] items, FluidStack[] fluids, @Nullable ItemStack specialSlot, + @Nullable GT_Recipe cachedRecipe) { + if (items.length == 0 || items[0] == null) { + return null; + } + if (cachedRecipe != null && cachedRecipe.isRecipeInputEqual(false, true, fluids, items)) { + return cachedRecipe; + } + return GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, items[0])) + .itemOutputs(GT_ModHandler.getRecyclerOutput(items[0], 0)) + .outputChances(1250) + .duration(45) + .eut(1) + .noOptimize() + .build() + .orElse(null); + } + + @Override + public boolean containsInput(ItemStack item) { + return GT_ModHandler.getRecyclerOutput(item, 0) != null; + } +} diff --git a/src/main/java/gregtech/api/recipe/maps/ReplicatorBackend.java b/src/main/java/gregtech/api/recipe/maps/ReplicatorBackend.java new file mode 100644 index 0000000000..f201698457 --- /dev/null +++ b/src/main/java/gregtech/api/recipe/maps/ReplicatorBackend.java @@ -0,0 +1,100 @@ +package gregtech.api.recipe.maps; + +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; +import java.util.Optional; + +import javax.annotation.Nullable; +import javax.annotation.ParametersAreNonnullByDefault; + +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidStack; + +import gregtech.GT_Mod; +import gregtech.api.enums.Element; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.TierEU; +import gregtech.api.recipe.RecipeMapBackend; +import gregtech.api.recipe.RecipeMapBackendPropertiesBuilder; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_RecipeBuilder; +import gregtech.api.util.GT_RecipeConstants; +import gregtech.api.util.GT_Utility; +import gregtech.api.util.MethodsReturnNonnullByDefault; +import gregtech.common.items.behaviors.Behaviour_DataOrb; + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +public class ReplicatorBackend extends RecipeMapBackend { + + private final Map<Materials, GT_Recipe> recipesByMaterial = new HashMap<>(); + + public ReplicatorBackend(RecipeMapBackendPropertiesBuilder propertiesBuilder) { + super(propertiesBuilder.recipeEmitter(ReplicatorBackend::replicatorRecipeEmitter)); + } + + @Override + public GT_Recipe compileRecipe(GT_Recipe recipe) { + super.compileRecipe(recipe); + Materials material = recipe.getMetadata(GT_RecipeConstants.MATERIAL); + assert material != null; // checked by replicatorRecipeEmitter + recipesByMaterial.put(material, recipe); + return recipe; + } + + @Override + protected boolean doesOverwriteFindRecipe() { + return true; + } + + @Override + protected GT_Recipe overwriteFindRecipe(ItemStack[] items, FluidStack[] fluids, @Nullable ItemStack specialSlot, + @Nullable GT_Recipe cachedRecipe) { + if (specialSlot == null) { + return null; + } + Materials foundMaterial = getMaterialFromDataOrb(specialSlot); + if (foundMaterial == null) { + return null; + } + return recipesByMaterial.getOrDefault(foundMaterial, null); + } + + @Nullable + private static Materials getMaterialFromDataOrb(ItemStack stack) { + if (ItemList.Tool_DataOrb.isStackEqual(stack, false, true) && Behaviour_DataOrb.getDataTitle(stack) + .equals("Elemental-Scan")) { + return Element.get(Behaviour_DataOrb.getDataName(stack)).mLinkedMaterials.stream() + .findFirst() + .orElse(null); + } + return null; + } + + private static Collection<GT_Recipe> replicatorRecipeEmitter(GT_RecipeBuilder builder) { + Materials material = builder.getMetadata(GT_RecipeConstants.MATERIAL); + if (material == null) { + throw new IllegalStateException("GT_RecipeConstants.MATERIAL must be set for replicator recipe"); + } + return Optional.of(material) + .map(material1 -> material1.mElement) + .map(Element::getMass) + .map(ReplicatorBackend::getUUMAmountFromMass) + .flatMap( + uum -> builder.fluidInputs(Materials.UUMatter.getFluid(uum)) + .duration(GT_Utility.safeInt(uum * 512L, 1)) + .eut(TierEU.RECIPE_LV) + .ignoreCollision() + .noOptimize() + .build()) + .map(Collections::singletonList) + .orElse(Collections.emptyList()); + } + + private static int getUUMAmountFromMass(long mass) { + return GT_Utility.safeInt((long) Math.pow(mass, GT_Mod.gregtechproxy.replicatorExponent), 1); + } +} diff --git a/src/main/java/gregtech/api/recipe/maps/SpaceProjectFrontend.java b/src/main/java/gregtech/api/recipe/maps/SpaceProjectFrontend.java new file mode 100644 index 0000000000..98463dcc4d --- /dev/null +++ b/src/main/java/gregtech/api/recipe/maps/SpaceProjectFrontend.java @@ -0,0 +1,131 @@ +package gregtech.api.recipe.maps; + +import static gregtech.api.util.GT_Utility.formatNumbers; +import static net.minecraft.util.EnumChatFormatting.GRAY; +import static net.minecraft.util.StatCollector.translateToLocal; + +import java.util.List; +import java.util.function.Supplier; + +import javax.annotation.ParametersAreNonnullByDefault; + +import net.minecraft.util.EnumChatFormatting; + +import com.gtnewhorizons.modularui.api.drawable.IDrawable; +import com.gtnewhorizons.modularui.api.forge.IItemHandlerModifiable; +import com.gtnewhorizons.modularui.api.math.Alignment; +import com.gtnewhorizons.modularui.api.math.Pos2d; +import com.gtnewhorizons.modularui.api.screen.ModularWindow; +import com.gtnewhorizons.modularui.common.widget.DrawableWidget; +import com.gtnewhorizons.modularui.common.widget.ProgressBar; + +import appeng.util.ReadableNumberConverter; +import codechicken.lib.gui.GuiDraw; +import codechicken.nei.PositionedStack; +import gregtech.api.gui.modularui.GT_UITextures; +import gregtech.api.recipe.BasicUIPropertiesBuilder; +import gregtech.api.recipe.NEIRecipePropertiesBuilder; +import gregtech.api.recipe.RecipeMapFrontend; +import gregtech.api.util.MethodsReturnNonnullByDefault; +import gregtech.common.gui.modularui.UIHelper; +import gregtech.common.misc.spaceprojects.SpaceProjectManager; +import gregtech.common.misc.spaceprojects.SpaceProjectManager.FakeSpaceProjectRecipe; +import gregtech.common.misc.spaceprojects.interfaces.ISpaceProject; +import gregtech.nei.GT_NEI_DefaultHandler; + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +public class SpaceProjectFrontend extends RecipeMapFrontend { + + IDrawable projectTexture; + + public SpaceProjectFrontend(BasicUIPropertiesBuilder uiPropertiesBuilder, + NEIRecipePropertiesBuilder neiPropertiesBuilder) { + super(uiPropertiesBuilder, neiPropertiesBuilder); + } + + @Override + public ModularWindow.Builder createNEITemplate(IItemHandlerModifiable itemInputsInventory, + IItemHandlerModifiable itemOutputsInventory, IItemHandlerModifiable specialSlotInventory, + IItemHandlerModifiable fluidInputsInventory, IItemHandlerModifiable fluidOutputsInventory, + Supplier<Float> progressSupplier, Pos2d windowOffset) { + ModularWindow.Builder builder = super.createNEITemplate( + itemInputsInventory, + itemOutputsInventory, + specialSlotInventory, + fluidInputsInventory, + fluidOutputsInventory, + progressSupplier, + windowOffset); + builder.widget( + new DrawableWidget().setDrawable(() -> projectTexture) + .setSize(18, 18) + .setPos(new Pos2d(124, 28).add(windowOffset))); + return builder; + } + + @Override + public List<Pos2d> getItemInputPositions(int itemInputCount) { + return UIHelper.getGridPositions(itemInputCount, 16, 28, 3); + } + + @Override + public List<Pos2d> getFluidInputPositions(int fluidInputCount) { + return UIHelper.getGridPositions(fluidInputCount, 88, 28, 1); + } + + @Override + protected List<String> handleNEIItemInputTooltip(List<String> currentTip, + GT_NEI_DefaultHandler.FixedPositionedStack pStack) { + super.handleNEIItemOutputTooltip(currentTip, pStack); + if (pStack.isFluid()) return currentTip; + currentTip.add(GRAY + translateToLocal("Item Count: ") + formatNumbers(pStack.realStackSize)); + return currentTip; + } + + @Override + public void drawNEIOverlays(GT_NEI_DefaultHandler.CachedDefaultRecipe neiCachedRecipe) { + for (PositionedStack stack : neiCachedRecipe.mInputs) { + if (stack instanceof GT_NEI_DefaultHandler.FixedPositionedStack pStack && stack.item != null + && !pStack.isFluid()) { + int stackSize = ((GT_NEI_DefaultHandler.FixedPositionedStack) stack).realStackSize; + String displayString; + if (stack.item.stackSize > 9999) { + displayString = ReadableNumberConverter.INSTANCE.toWideReadableForm(stackSize); + } else { + displayString = String.valueOf(stackSize); + } + drawNEIOverlayText(displayString, stack, 0xffffff, 0.5f, true, Alignment.BottomRight); + } + } + if (neiCachedRecipe.mRecipe instanceof FakeSpaceProjectRecipe) { + ISpaceProject project = SpaceProjectManager + .getProject(((FakeSpaceProjectRecipe) neiCachedRecipe.mRecipe).projectName); + if (project != null) { + projectTexture = project.getTexture(); + GuiDraw.drawStringC(EnumChatFormatting.BOLD + project.getLocalizedName(), 85, 0, 0x404040, false); + } + } + } + + @Override + public void addProgressBar(ModularWindow.Builder builder, Supplier<Float> progressSupplier, Pos2d windowOffset) { + int bar1Width = 17; + int bar2Width = 18; + List<Supplier<Float>> splitProgress = splitProgress(progressSupplier, bar1Width, bar2Width); + builder.widget( + new ProgressBar().setTexture(GT_UITextures.PROGRESSBAR_ASSEMBLY_LINE_1, 17) + .setDirection(ProgressBar.Direction.RIGHT) + .setProgress(splitProgress.get(0)) + .setSynced(false, false) + .setPos(new Pos2d(70, 28).add(windowOffset)) + .setSize(bar1Width, 72)); + builder.widget( + new ProgressBar().setTexture(GT_UITextures.PROGRESSBAR_ASSEMBLY_LINE_2, 18) + .setDirection(ProgressBar.Direction.RIGHT) + .setProgress(splitProgress.get(1)) + .setSynced(false, false) + .setPos(new Pos2d(106, 28).add(windowOffset)) + .setSize(bar2Width, 72)); + } +} diff --git a/src/main/java/gregtech/api/recipe/maps/TranscendentPlasmaMixerFrontend.java b/src/main/java/gregtech/api/recipe/maps/TranscendentPlasmaMixerFrontend.java new file mode 100644 index 0000000000..7a5d7ff164 --- /dev/null +++ b/src/main/java/gregtech/api/recipe/maps/TranscendentPlasmaMixerFrontend.java @@ -0,0 +1,56 @@ +package gregtech.api.recipe.maps; + +import static gregtech.api.util.GT_Utility.formatNumbers; + +import java.util.List; + +import javax.annotation.ParametersAreNonnullByDefault; + +import com.gtnewhorizons.modularui.api.math.Pos2d; + +import gregtech.api.recipe.BasicUIPropertiesBuilder; +import gregtech.api.recipe.NEIRecipePropertiesBuilder; +import gregtech.api.recipe.RecipeMapFrontend; +import gregtech.api.util.GT_Utility; +import gregtech.api.util.MethodsReturnNonnullByDefault; +import gregtech.common.gui.modularui.UIHelper; +import gregtech.nei.RecipeDisplayInfo; + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +public class TranscendentPlasmaMixerFrontend extends RecipeMapFrontend { + + public TranscendentPlasmaMixerFrontend(BasicUIPropertiesBuilder uiPropertiesBuilder, + NEIRecipePropertiesBuilder neiPropertiesBuilder) { + super(uiPropertiesBuilder, neiPropertiesBuilder); + } + + @Override + public List<Pos2d> getItemInputPositions(int itemInputCount) { + return UIHelper.getGridPositions(itemInputCount, 60, 8, 1); + } + + @Override + public List<Pos2d> getFluidInputPositions(int fluidInputCount) { + return UIHelper.getGridPositions(fluidInputCount, 6, 26, 4, 5); + } + + @Override + public List<Pos2d> getFluidOutputPositions(int fluidOutputCount) { + return UIHelper.getGridPositions(fluidOutputCount, 114, 44, 1); + } + + @Override + protected void drawEnergyInfo(RecipeDisplayInfo recipeInfo) { + // These look odd because recipeInfo.recipe.mEUt is actually the EU per litre of fluid processed, not + // the EU/t. + recipeInfo.drawText( + GT_Utility.trans("152", "Total: ") + + formatNumbers(1000L * recipeInfo.recipe.mDuration / 100L * recipeInfo.recipe.mEUt) + + " EU"); + // 1000 / (20 ticks * 5 seconds) = 10L/t. 10L/t * x EU/L = 10 * x EU/t. + long averageUsage = 10L * recipeInfo.recipe.mEUt; + recipeInfo.drawText( + "Average: " + formatNumbers(averageUsage) + " EU/t" + GT_Utility.getTierNameWithParentheses(averageUsage)); + } +} diff --git a/src/main/java/gregtech/api/recipe/maps/UnpackagerBackend.java b/src/main/java/gregtech/api/recipe/maps/UnpackagerBackend.java new file mode 100644 index 0000000000..e7297f0609 --- /dev/null +++ b/src/main/java/gregtech/api/recipe/maps/UnpackagerBackend.java @@ -0,0 +1,53 @@ +package gregtech.api.recipe.maps; + +import javax.annotation.Nullable; +import javax.annotation.ParametersAreNonnullByDefault; + +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.recipe.RecipeMapBackend; +import gregtech.api.recipe.RecipeMapBackendPropertiesBuilder; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.MethodsReturnNonnullByDefault; + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +public class UnpackagerBackend extends RecipeMapBackend { + + public UnpackagerBackend(RecipeMapBackendPropertiesBuilder propertiesBuilder) { + super(propertiesBuilder); + } + + @Override + protected GT_Recipe findFallback(ItemStack[] items, FluidStack[] fluids, @Nullable ItemStack specialSlot) { + if (items.length == 0 || !ItemList.IC2_Scrapbox.isStackEqual(items[0], false, true)) { + return null; + } + + ItemStack output = GT_ModHandler.getRandomScrapboxDrop(); + if (output == null) { + return null; + } + return GT_Values.RA.stdBuilder() + .itemInputs(ItemList.IC2_Scrapbox.get(1)) + .itemOutputs(output) + .duration(16) + .eut(1) + // It is not allowed to be buffered due to the random Output + .noBuffer() + // Due to its randomness it is not good if there are Items in the Output Slot, because those Items could + // manipulate the outcome. + .needsEmptyOutput() + .build() + .orElse(null); + } + + @Override + public boolean containsInput(ItemStack item) { + return ItemList.IC2_Scrapbox.isStackEqual(item, false, true) || super.containsInput(item); + } +} diff --git a/src/main/java/gregtech/api/recipe/metadata/EmptyRecipeMetadataStorage.java b/src/main/java/gregtech/api/recipe/metadata/EmptyRecipeMetadataStorage.java new file mode 100644 index 0000000000..f7831f1485 --- /dev/null +++ b/src/main/java/gregtech/api/recipe/metadata/EmptyRecipeMetadataStorage.java @@ -0,0 +1,50 @@ +package gregtech.api.recipe.metadata; + +import java.util.Collections; +import java.util.Map; +import java.util.Set; + +import javax.annotation.Nullable; +import javax.annotation.ParametersAreNonnullByDefault; + +import org.jetbrains.annotations.Contract; + +import gregtech.api.recipe.RecipeMetadataKey; +import gregtech.api.util.MethodsReturnNonnullByDefault; + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +public final class EmptyRecipeMetadataStorage implements IRecipeMetadataStorage { + + public static EmptyRecipeMetadataStorage INSTANCE = new EmptyRecipeMetadataStorage(); + + private EmptyRecipeMetadataStorage() {} + + @Override + public <T> void store(RecipeMetadataKey<T> key, @Nullable T value) { + throw new UnsupportedOperationException(); + } + + @Nullable + @Override + public <T> T getMetadata(RecipeMetadataKey<T> key) { + return null; + } + + @Contract("_, !null -> !null") + @Nullable + @Override + public <T> T getMetadataOrDefault(RecipeMetadataKey<T> key, @Nullable T defaultValue) { + return defaultValue; + } + + @Override + public Set<Map.Entry<RecipeMetadataKey<?>, Object>> getEntries() { + return Collections.emptySet(); + } + + @Override + public IRecipeMetadataStorage copy() { + throw new UnsupportedOperationException(); + } +} diff --git a/src/main/java/gregtech/api/recipe/metadata/IRecipeMetadataStorage.java b/src/main/java/gregtech/api/recipe/metadata/IRecipeMetadataStorage.java new file mode 100644 index 0000000000..52141937cf --- /dev/null +++ b/src/main/java/gregtech/api/recipe/metadata/IRecipeMetadataStorage.java @@ -0,0 +1,34 @@ +package gregtech.api.recipe.metadata; + +import java.util.Map; +import java.util.Set; + +import javax.annotation.Nullable; +import javax.annotation.ParametersAreNonnullByDefault; + +import org.jetbrains.annotations.Contract; + +import gregtech.api.recipe.RecipeMetadataKey; +import gregtech.api.util.MethodsReturnNonnullByDefault; + +/** + * Stores set of metadata for the recipe with key {@link RecipeMetadataKey}. More explicit way to store various info + * on recipe than special value or special object. Type of the metadata can be anything. + */ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +public interface IRecipeMetadataStorage { + + <T> void store(RecipeMetadataKey<T> key, @Nullable T value); + + @Nullable + <T> T getMetadata(RecipeMetadataKey<T> key); + + @Contract("_, !null -> !null") + @Nullable + <T> T getMetadataOrDefault(RecipeMetadataKey<T> key, @Nullable T defaultValue); + + Set<Map.Entry<RecipeMetadataKey<?>, Object>> getEntries(); + + IRecipeMetadataStorage copy(); +} diff --git a/src/main/java/gregtech/api/recipe/metadata/PCBFactoryTierKey.java b/src/main/java/gregtech/api/recipe/metadata/PCBFactoryTierKey.java new file mode 100644 index 0000000000..05db919b57 --- /dev/null +++ b/src/main/java/gregtech/api/recipe/metadata/PCBFactoryTierKey.java @@ -0,0 +1,30 @@ +package gregtech.api.recipe.metadata; + +import static gregtech.api.util.GT_Utility.trans; + +import javax.annotation.Nullable; +import javax.annotation.ParametersAreNonnullByDefault; + +import gregtech.api.recipe.RecipeMetadataKey; +import gregtech.api.util.MethodsReturnNonnullByDefault; +import gregtech.nei.RecipeDisplayInfo; + +/** + * Minimum tier required for the PCB factory recipe. + */ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +public class PCBFactoryTierKey extends RecipeMetadataKey<Integer> { + + public static final PCBFactoryTierKey INSTANCE = new PCBFactoryTierKey(); + + private PCBFactoryTierKey() { + super(Integer.class, "pcb_factory_tier"); + } + + @Override + public void drawInfo(RecipeDisplayInfo recipeInfo, @Nullable Object value) { + int tier = cast(value, 1); + recipeInfo.drawText(trans("336", "PCB Factory Tier: ") + tier); + } +} diff --git a/src/main/java/gregtech/api/recipe/metadata/PCBFactoryUpgrade.java b/src/main/java/gregtech/api/recipe/metadata/PCBFactoryUpgrade.java new file mode 100644 index 0000000000..6d76ae05c3 --- /dev/null +++ b/src/main/java/gregtech/api/recipe/metadata/PCBFactoryUpgrade.java @@ -0,0 +1,7 @@ +package gregtech.api.recipe.metadata; + +public enum PCBFactoryUpgrade { + + NONE, + BIO +} diff --git a/src/main/java/gregtech/api/recipe/metadata/PCBFactoryUpgradeKey.java b/src/main/java/gregtech/api/recipe/metadata/PCBFactoryUpgradeKey.java new file mode 100644 index 0000000000..8257f1e6ef --- /dev/null +++ b/src/main/java/gregtech/api/recipe/metadata/PCBFactoryUpgradeKey.java @@ -0,0 +1,32 @@ +package gregtech.api.recipe.metadata; + +import static gregtech.api.util.GT_Utility.trans; + +import javax.annotation.Nullable; +import javax.annotation.ParametersAreNonnullByDefault; + +import gregtech.api.recipe.RecipeMetadataKey; +import gregtech.api.util.MethodsReturnNonnullByDefault; +import gregtech.nei.RecipeDisplayInfo; + +/** + * If bio upgrade is required for the PCB factory recipe. + */ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +public class PCBFactoryUpgradeKey extends RecipeMetadataKey<PCBFactoryUpgrade> { + + public static final PCBFactoryUpgradeKey INSTANCE = new PCBFactoryUpgradeKey(); + + private PCBFactoryUpgradeKey() { + super(PCBFactoryUpgrade.class, "pcb_factory_bio_upgrade"); + } + + @Override + public void drawInfo(RecipeDisplayInfo recipeInfo, @Nullable Object value) { + PCBFactoryUpgrade upgrade = cast(value); + if (upgrade == PCBFactoryUpgrade.BIO) { + recipeInfo.drawText(trans("337", "Upgrade Required: ") + trans("338", "Bio")); + } + } +} diff --git a/src/main/java/gregtech/api/recipe/metadata/RecipeMetadataStorage.java b/src/main/java/gregtech/api/recipe/metadata/RecipeMetadataStorage.java new file mode 100644 index 0000000000..5b65d8a600 --- /dev/null +++ b/src/main/java/gregtech/api/recipe/metadata/RecipeMetadataStorage.java @@ -0,0 +1,56 @@ +package gregtech.api.recipe.metadata; + +import java.util.HashMap; +import java.util.Map; +import java.util.Set; + +import javax.annotation.Nullable; +import javax.annotation.ParametersAreNonnullByDefault; + +import org.jetbrains.annotations.Contract; + +import gregtech.api.recipe.RecipeMetadataKey; +import gregtech.api.util.FieldsAreNonnullByDefault; +import gregtech.api.util.MethodsReturnNonnullByDefault; + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +@FieldsAreNonnullByDefault +public final class RecipeMetadataStorage implements IRecipeMetadataStorage { + + private final Map<RecipeMetadataKey<?>, Object> metadata = new HashMap<>(); + + public RecipeMetadataStorage() {} + + private RecipeMetadataStorage(Map<RecipeMetadataKey<?>, Object> metadata) { + this.metadata.putAll(metadata); + } + + @Override + public <T> void store(RecipeMetadataKey<T> key, @Nullable T value) { + metadata.put(key, key.cast(value)); + } + + @Nullable + @Override + public <T> T getMetadata(RecipeMetadataKey<T> key) { + return key.cast(metadata.get(key)); + } + + @Contract("_, !null -> !null") + @Nullable + @Override + public <T> T getMetadataOrDefault(RecipeMetadataKey<T> key, @Nullable T defaultValue) { + return key.cast(metadata.getOrDefault(key, defaultValue)); + } + + @Override + public Set<Map.Entry<RecipeMetadataKey<?>, Object>> getEntries() { + return metadata.entrySet(); + } + + @Override + public IRecipeMetadataStorage copy() { + return new RecipeMetadataStorage(metadata); + } +} diff --git a/src/main/java/gregtech/api/recipe/metadata/SimpleRecipeMetadataKey.java b/src/main/java/gregtech/api/recipe/metadata/SimpleRecipeMetadataKey.java new file mode 100644 index 0000000000..19395f11a0 --- /dev/null +++ b/src/main/java/gregtech/api/recipe/metadata/SimpleRecipeMetadataKey.java @@ -0,0 +1,27 @@ +package gregtech.api.recipe.metadata; + +import javax.annotation.Nullable; +import javax.annotation.ParametersAreNonnullByDefault; + +import gregtech.api.recipe.RecipeMetadataKey; +import gregtech.api.util.MethodsReturnNonnullByDefault; +import gregtech.nei.RecipeDisplayInfo; + +/** + * Simple metadata key that does not draw anything on NEI. + */ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +public class SimpleRecipeMetadataKey<T> extends RecipeMetadataKey<T> { + + private SimpleRecipeMetadataKey(Class<T> clazz, String identifier) { + super(clazz, identifier); + } + + public static <T> RecipeMetadataKey<T> create(Class<T> clazz, String identifier) { + return new SimpleRecipeMetadataKey<>(clazz, identifier); + } + + @Override + public void drawInfo(RecipeDisplayInfo recipeInfo, @Nullable Object value) {} +} diff --git a/src/main/java/gregtech/api/util/FieldsAreNonnullByDefault.java b/src/main/java/gregtech/api/util/FieldsAreNonnullByDefault.java new file mode 100644 index 0000000000..1f51aa39a7 --- /dev/null +++ b/src/main/java/gregtech/api/util/FieldsAreNonnullByDefault.java @@ -0,0 +1,18 @@ +package gregtech.api.util; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +import javax.annotation.Nonnull; +import javax.annotation.meta.TypeQualifierDefault; + +/** + * This annotation can be applied to a package or class to indicate that + * the fields in that element are nonnull by default unless there is an explicit nullness annotation. + * </ul> + */ +@Nonnull +@TypeQualifierDefault({ ElementType.FIELD }) +@Retention(RetentionPolicy.RUNTIME) +public @interface FieldsAreNonnullByDefault {} diff --git a/src/main/java/gregtech/api/util/GT_Config.java b/src/main/java/gregtech/api/util/GT_Config.java index 36585559c2..dc56def68f 100644 --- a/src/main/java/gregtech/api/util/GT_Config.java +++ b/src/main/java/gregtech/api/util/GT_Config.java @@ -139,6 +139,20 @@ public class GT_Config implements Runnable { return rResult; } + public String getWithValidValues(Object aCategory, String aName, String[] validValues, String aDefault) { + if (GT_Utility.isStringInvalid(aName)) return aDefault; + Property tProperty = mConfig.get( + aCategory.toString() + .replaceAll("\\|", "_"), + aName.replaceAll("\\|", "_"), + aDefault, + null, + validValues); + String rResult = tProperty.getString(); + if (!tProperty.wasRead() && GregTech_API.sPostloadFinished) mConfig.save(); + return rResult; + } + @Override public void run() { mConfig.save(); diff --git a/src/main/java/gregtech/api/util/GT_Forestry_Compat.java b/src/main/java/gregtech/api/util/GT_Forestry_Compat.java index 933c379db1..427703e6f7 100644 --- a/src/main/java/gregtech/api/util/GT_Forestry_Compat.java +++ b/src/main/java/gregtech/api/util/GT_Forestry_Compat.java @@ -11,12 +11,13 @@ import forestry.api.recipes.RecipeManagers; import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; +import gregtech.api.recipe.RecipeMaps; public class GT_Forestry_Compat { public static void populateFakeNeiRecipes() { if (ItemList.FR_Bee_Drone.get(1L) != null) { - GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe( + RecipeMaps.scannerFakeRecipes.addFakeRecipe( false, new ItemStack[] { ItemList.FR_Bee_Drone.getWildcard(1L) }, new ItemStack[] { ItemList.FR_Bee_Drone.getWithName(1L, "Scanned Drone") }, @@ -28,7 +29,7 @@ public class GT_Forestry_Compat { 0); } if (ItemList.FR_Bee_Princess.get(1L) != null) { - GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe( + RecipeMaps.scannerFakeRecipes.addFakeRecipe( false, new ItemStack[] { ItemList.FR_Bee_Princess.getWildcard(1L) }, new ItemStack[] { ItemList.FR_Bee_Princess.getWithName(1L, "Scanned Princess") }, @@ -40,7 +41,7 @@ public class GT_Forestry_Compat { 0); } if (ItemList.FR_Bee_Queen.get(1L) != null) { - GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe( + RecipeMaps.scannerFakeRecipes.addFakeRecipe( false, new ItemStack[] { ItemList.FR_Bee_Queen.getWildcard(1L) }, new ItemStack[] { ItemList.FR_Bee_Queen.getWithName(1L, "Scanned Queen") }, @@ -52,7 +53,7 @@ public class GT_Forestry_Compat { 0); } if (ItemList.FR_Tree_Sapling.get(1L) != null) { - GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe( + RecipeMaps.scannerFakeRecipes.addFakeRecipe( false, new ItemStack[] { ItemList.FR_Tree_Sapling.getWildcard(1L) }, new ItemStack[] { ItemList.FR_Tree_Sapling.getWithName(1L, "Scanned Sapling") }, @@ -64,7 +65,7 @@ public class GT_Forestry_Compat { 0); } if (ItemList.FR_Butterfly.get(1L) != null) { - GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe( + RecipeMaps.scannerFakeRecipes.addFakeRecipe( false, new ItemStack[] { ItemList.FR_Butterfly.getWildcard(1L) }, new ItemStack[] { ItemList.FR_Butterfly.getWithName(1L, "Scanned Butterfly") }, @@ -76,7 +77,7 @@ public class GT_Forestry_Compat { 0); } if (ItemList.FR_Larvae.get(1L) != null) { - GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe( + RecipeMaps.scannerFakeRecipes.addFakeRecipe( false, new ItemStack[] { ItemList.FR_Larvae.getWildcard(1L) }, new ItemStack[] { ItemList.FR_Larvae.getWithName(1L, "Scanned Larvae") }, @@ -88,7 +89,7 @@ public class GT_Forestry_Compat { 0); } if (ItemList.FR_Serum.get(1L) != null) { - GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe( + RecipeMaps.scannerFakeRecipes.addFakeRecipe( false, new ItemStack[] { ItemList.FR_Serum.getWildcard(1L) }, new ItemStack[] { ItemList.FR_Serum.getWithName(1L, "Scanned Serum") }, @@ -100,7 +101,7 @@ public class GT_Forestry_Compat { 0); } if (ItemList.FR_Caterpillar.get(1L) != null) { - GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe( + RecipeMaps.scannerFakeRecipes.addFakeRecipe( false, new ItemStack[] { ItemList.FR_Caterpillar.getWildcard(1L) }, new ItemStack[] { ItemList.FR_Caterpillar.getWithName(1L, "Scanned Caterpillar") }, @@ -112,7 +113,7 @@ public class GT_Forestry_Compat { 0); } if (ItemList.FR_PollenFertile.get(1L) != null) { - GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe( + RecipeMaps.scannerFakeRecipes.addFakeRecipe( false, new ItemStack[] { ItemList.FR_PollenFertile.getWildcard(1L) }, new ItemStack[] { ItemList.FR_PollenFertile.getWithName(1L, "Scanned Pollen") }, @@ -138,7 +139,7 @@ public class GT_Forestry_Compat { .copy(); i++; } - GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes.addRecipe( + RecipeMaps.centrifugeRecipes.addRecipe( true, new ItemStack[] { tRecipe.getInput() }, tOutputs, @@ -149,7 +150,7 @@ public class GT_Forestry_Compat { 128, 5, 0); - GT_Recipe.GT_Recipe_Map.sMultiblockCentrifugeRecipes.addRecipe( + RecipeMaps.centrifugeNonCellRecipes.addRecipe( true, new ItemStack[] { tRecipe.getInput() }, tOutputs, @@ -172,7 +173,7 @@ public class GT_Forestry_Compat { try { for (ISqueezerRecipe tRecipe : RecipeManagers.squeezerManager.recipes()) { if ((tRecipe.getResources().length == 1) && (tRecipe.getFluidOutput() != null)) { - GT_Recipe.GT_Recipe_Map.sFluidExtractionRecipes.addRecipe( + RecipeMaps.fluidExtractionRecipes.addRecipe( true, new ItemStack[] { tRecipe.getResources()[0] }, new ItemStack[] { tRecipe.getRemnants() }, diff --git a/src/main/java/gregtech/api/util/GT_LanguageManager.java b/src/main/java/gregtech/api/util/GT_LanguageManager.java index 76e59eed22..ed82befbcc 100644 --- a/src/main/java/gregtech/api/util/GT_LanguageManager.java +++ b/src/main/java/gregtech/api/util/GT_LanguageManager.java @@ -315,7 +315,6 @@ public class GT_LanguageManager { addStringLocalization("Interaction_DESCRIPTION_Index_151.2", "Outputs 1 specific Fluid"); addStringLocalization("Interaction_DESCRIPTION_Index_151.4", "Successfully locked Fluid to %s"); addStringLocalization("Interaction_DESCRIPTION_Index_152", "Total: "); - addStringLocalization("Interaction_DESCRIPTION_Index_152.1", "Max EU: "); addStringLocalization("Interaction_DESCRIPTION_Index_153", "Usage: "); addStringLocalization("Interaction_DESCRIPTION_Index_154", "Voltage: "); addStringLocalization("Interaction_DESCRIPTION_Index_155", "Amperage: "); diff --git a/src/main/java/gregtech/api/util/GT_ModHandler.java b/src/main/java/gregtech/api/util/GT_ModHandler.java index e16e559360..b83c70d7de 100644 --- a/src/main/java/gregtech/api/util/GT_ModHandler.java +++ b/src/main/java/gregtech/api/util/GT_ModHandler.java @@ -9,9 +9,9 @@ import static gregtech.api.enums.GT_Values.M; import static gregtech.api.enums.GT_Values.RA; import static gregtech.api.enums.GT_Values.V; import static gregtech.api.enums.GT_Values.W; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sAlloySmelterRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sExtractorRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sOreWasherRecipes; +import static gregtech.api.recipe.RecipeMaps.alloySmelterRecipes; +import static gregtech.api.recipe.RecipeMaps.extractorRecipes; +import static gregtech.api.recipe.RecipeMaps.oreWasherRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; @@ -70,6 +70,8 @@ import gregtech.api.items.GT_MetaBase_Item; import gregtech.api.objects.GT_HashSet; import gregtech.api.objects.GT_ItemStack; import gregtech.api.objects.ItemData; +import gregtech.api.recipe.RecipeCategories; +import gregtech.api.recipe.RecipeMap; import ic2.api.item.IBoxable; import ic2.api.item.IC2Items; import ic2.api.item.IElectricItem; @@ -569,11 +571,12 @@ public class GT_ModHandler { } recipeBuilder.itemOutputs(aOutput) .duration(duration * TICKS) - .eut(3); + .eut(3) + .recipeCategory(RecipeCategories.alloySmelterRecycling); if (hidden) { recipeBuilder.hidden(); } - recipeBuilder.addTo(sAlloySmelterRecipes); + recipeBuilder.addTo(alloySmelterRecipes); return true; } @@ -617,7 +620,7 @@ public class GT_ModHandler { .itemOutputs(aOutput) .duration(15 * SECONDS) .eut(2) - .addTo(sExtractorRecipes); + .addTo(extractorRecipes); return true; } @@ -733,7 +736,7 @@ public class GT_ModHandler { .itemOutputs(aOutput1) .duration(aDuration) .eut(aEUt) - .addTo(sAlloySmelterRecipes); + .addTo(alloySmelterRecipes); return true; } @@ -759,9 +762,8 @@ public class GT_ModHandler { /** * Adds GT versions of the IC2 recipes from the supplied IC2RecipeList. */ - public static void addIC2RecipesToGT(Map<IRecipeInput, RecipeOutput> aIC2RecipeList, - GT_Recipe.GT_Recipe_Map aGTRecipeMap, boolean aAddGTRecipe, boolean aRemoveIC2Recipe, - boolean aExcludeGTIC2Items) { + public static void addIC2RecipesToGT(Map<IRecipeInput, RecipeOutput> aIC2RecipeList, RecipeMap<?> aGTRecipeMap, + boolean aAddGTRecipe, boolean aRemoveIC2Recipe, boolean aExcludeGTIC2Items) { Map<ItemStack, ItemStack> aRecipesToRemove = new HashMap<>(); for (Entry<IRecipeInput, RecipeOutput> iRecipeInputRecipeOutputEntry : aIC2RecipeList.entrySet()) { if (iRecipeInputRecipeOutputEntry.getValue().items.isEmpty()) { @@ -773,7 +775,7 @@ public class GT_ModHandler { continue; } - if (aAddGTRecipe && (aGTRecipeMap.findRecipe(null, false, Long.MAX_VALUE, null, tStack) == null)) { + if (aAddGTRecipe) { try { if (aExcludeGTIC2Items && ((tStack.getUnlocalizedName() .contains("gt.metaitem.01") @@ -784,7 +786,7 @@ public class GT_ModHandler { || tStack.getUnlocalizedName() .contains("ic2.itemPurifiedCrushed")))) continue; - switch (aGTRecipeMap.mUnlocalizedName) { + switch (aGTRecipeMap.unlocalizedName) { case "gt.recipe.macerator", "gt.recipe.extractor", "gt.recipe.compressor" -> aGTRecipeMap .addRecipe( true, @@ -928,7 +930,7 @@ public class GT_ModHandler { .fluidInputs(GT_ModHandler.getWater(aWaterAmount)) .duration(25 * SECONDS) .eut(16) - .addTo(sOreWasherRecipes); + .addTo(oreWasherRecipes); RA.stdBuilder() .itemInputs(aInput) @@ -937,7 +939,7 @@ public class GT_ModHandler { .fluidInputs(GT_ModHandler.getDistilledWater(aWaterAmount / 5)) .duration(15 * SECONDS) .eut(16) - .addTo(sOreWasherRecipes); + .addTo(oreWasherRecipes); return true; } @@ -950,7 +952,7 @@ public class GT_ModHandler { .fluidInputs(GT_ModHandler.getWater(aWaterAmount)) .duration(25 * SECONDS) .eut(16) - .addTo(sOreWasherRecipes); + .addTo(oreWasherRecipes); RA.stdBuilder() .itemInputs(aInput) @@ -958,7 +960,7 @@ public class GT_ModHandler { .fluidInputs(GT_ModHandler.getDistilledWater(aWaterAmount / 5)) .duration(15 * SECONDS) .eut(16) - .addTo(sOreWasherRecipes); + .addTo(oreWasherRecipes); return true; } diff --git a/src/main/java/gregtech/api/util/GT_OverclockCalculator.java b/src/main/java/gregtech/api/util/GT_OverclockCalculator.java index 582b65e7ec..8e896fd8de 100644 --- a/src/main/java/gregtech/api/util/GT_OverclockCalculator.java +++ b/src/main/java/gregtech/api/util/GT_OverclockCalculator.java @@ -198,14 +198,6 @@ public class GT_OverclockCalculator { } /** - * Use {@link #setHeatOC(boolean)} - */ - @Deprecated - public GT_OverclockCalculator enableHeatOC() { - return setHeatOC(true); - } - - /** * Set if we should be calculating overclocking using EBF's perfectOC */ public GT_OverclockCalculator setHeatOC(boolean heatOC) { @@ -214,14 +206,6 @@ public class GT_OverclockCalculator { } /** - * Use {@link #setHeatDiscount(boolean)} - */ - @Deprecated - public GT_OverclockCalculator enableHeatDiscount() { - return setHeatDiscount(true); - } - - /** * Sets if we should add a heat discount at the end of calculating an overclock, just like the EBF */ public GT_OverclockCalculator setHeatDiscount(boolean heatDiscount) { @@ -238,14 +222,6 @@ public class GT_OverclockCalculator { } /** - * Use {@link #setMachineHeat(int)} - */ - @Deprecated - public GT_OverclockCalculator setMultiHeat(int machineHeat) { - return setMachineHeat(machineHeat); - } - - /** * Sets the heat of the coils on the machine */ public GT_OverclockCalculator setMachineHeat(int machineHeat) { @@ -313,14 +289,6 @@ public class GT_OverclockCalculator { } /** - * Use {@link #setOneTickDiscount(boolean)} - */ - @Deprecated - public GT_OverclockCalculator enableOneTickDiscount() { - return setOneTickDiscount(true); - } - - /** * Set One Tick Discount on EUt based on Duration Decrease Per Overclock. This functions the same as single * blocks. */ @@ -556,7 +524,7 @@ public class GT_OverclockCalculator { /** * Returns the EUt consumption one would get from overclocking under 1 tick * This Doesn't count as calculating - * + * * @param originalMaxParallel Parallels which are of the actual machine before the overclocking extra ones */ public long calculateEUtConsumptionUnderOneTick(int originalMaxParallel, int currentParallel) { diff --git a/src/main/java/gregtech/api/util/GT_ParallelHelper.java b/src/main/java/gregtech/api/util/GT_ParallelHelper.java index d3921b613d..8a5cd0b9f8 100644 --- a/src/main/java/gregtech/api/util/GT_ParallelHelper.java +++ b/src/main/java/gregtech/api/util/GT_ParallelHelper.java @@ -10,8 +10,8 @@ import net.minecraftforge.fluids.FluidStack; import gregtech.api.interfaces.tileentity.IRecipeLockable; import gregtech.api.interfaces.tileentity.IVoidable; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; import gregtech.api.objects.XSTR; +import gregtech.api.recipe.RecipeMap; import gregtech.api.recipe.check.CheckRecipeResult; import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.recipe.check.SingleRecipeCheck; @@ -124,27 +124,6 @@ public class GT_ParallelHelper { public GT_ParallelHelper() {} /** - * Sets MetaTE controller, with current configuration for void protection mode. - * - * @deprecated Use {@link #setMachine(IVoidable)} - */ - @Deprecated - public GT_ParallelHelper setController(GT_MetaTileEntity_MultiBlockBase machineMeta) { - return setMachine(machineMeta, machineMeta.protectsExcessItem(), machineMeta.protectsExcessFluid()); - } - - /** - * Sets MetaTE controller, with void protection mode forcibly. - * - * @deprecated Use {@link #setMachine(IVoidable, boolean, boolean)} - */ - @Deprecated - public GT_ParallelHelper setController(GT_MetaTileEntity_MultiBlockBase machineMeta, boolean protectExcessItem, - boolean protectExcessFluid) { - return setMachine(machineMeta, protectExcessItem, protectExcessFluid); - } - - /** * Sets machine, with current configuration for void protection mode. */ public GT_ParallelHelper setMachine(IVoidable machine) { @@ -213,14 +192,6 @@ public class GT_ParallelHelper { } /** - * Use {@link #setConsumption(boolean)} - */ - @Deprecated - public GT_ParallelHelper enableConsumption() { - return setConsumption(true); - } - - /** * Set if we should consume inputs or not when trying for parallels * * @param consume Should we consume inputs @@ -249,14 +220,6 @@ public class GT_ParallelHelper { } /** - * Use {@link #setOutputCalculation(boolean)} - */ - @Deprecated - public GT_ParallelHelper enableOutputCalculation() { - return setOutputCalculation(true); - } - - /** * Sets if we should calculate outputs with the parallels we found or not * * @param calculateOutputs Should we calculate outputs with the helper or not @@ -339,14 +302,6 @@ public class GT_ParallelHelper { } /** - * @deprecated Use {@link #getDurationMultiplierDouble()} - */ - @Deprecated - public float getDurationMultiplier() { - return (float) getDurationMultiplierDouble(); - } - - /** * @return The ItemOutputs from the recipe */ @Nonnull @@ -382,23 +337,6 @@ public class GT_ParallelHelper { } /** - * @deprecated Use {@link #setMaxParallelCalculator} and {@link #setInputConsumer} - */ - @Deprecated - protected boolean tryConsumeRecipeInputs(GT_Recipe recipe, FluidStack[] fluids, ItemStack[] items) { - return false; - } - - /** - * @deprecated Use {@link #setMaxParallelCalculator} and {@link #setInputConsumer} - */ - @Deprecated - protected boolean tryConsumeRecipeInputs(GT_Recipe recipe, FluidStack[] fluids, ItemStack[] items, - int minParallel) { - return false; - } - - /** * Called by build(). Determines the parallels and everything else that needs to be done at build time */ protected void determineParallel() { @@ -446,7 +384,7 @@ public class GT_ParallelHelper { if (recipeCheck == null) { // Machine is configured to lock to a single recipe, but haven't built the recipe checker yet. // Build the checker on next successful recipe. - GT_Recipe.GT_Recipe_Map recipeMap = singleRecipeMachine.getRecipeMap(); + RecipeMap<?> recipeMap = singleRecipeMachine.getRecipeMap(); if (recipeMap != null) { tSingleRecipeCheckBuilder = SingleRecipeCheck.builder(recipeMap) .setBefore(itemInputs, fluidInputs); diff --git a/src/main/java/gregtech/api/util/GT_ProcessingArray_Manager.java b/src/main/java/gregtech/api/util/GT_ProcessingArray_Manager.java index 7ff37a927c..ead9393d0e 100644 --- a/src/main/java/gregtech/api/util/GT_ProcessingArray_Manager.java +++ b/src/main/java/gregtech/api/util/GT_ProcessingArray_Manager.java @@ -5,24 +5,24 @@ import java.util.HashMap; import net.minecraft.item.ItemStack; import gregtech.api.enums.SoundResource; -import gregtech.api.util.GT_Recipe.GT_Recipe_Map; +import gregtech.api.recipe.RecipeMap; @Deprecated public class GT_ProcessingArray_Manager { - private static final HashMap<String, GT_Recipe_Map> mRecipeSaves = new HashMap<>(); + private static final HashMap<String, RecipeMap<?>> mRecipeSaves = new HashMap<>(); private static final HashMap<String, SoundResource> machineSounds = new HashMap<>(); // Adds recipe Maps to the PA using the machines unlocalized name. // Example: basicmachine.electrolyzer, with its recipe map will add the electrolyzer's recipe map to the PA - public static void addRecipeMapToPA(String aMachineName, GT_Recipe_Map aMap) { + public static void addRecipeMapToPA(String aMachineName, RecipeMap<?> aMap) { if (aMachineName != null) { mRecipeSaves.put(aMachineName, aMap); } } // Allows the PA to extract the recipe map for the machine inside it. - public static GT_Recipe_Map giveRecipeMap(String aMachineName) { + public static RecipeMap<?> giveRecipeMap(String aMachineName) { if (aMachineName != null) { return mRecipeSaves.get(aMachineName); } diff --git a/src/main/java/gregtech/api/util/GT_Recipe.java b/src/main/java/gregtech/api/util/GT_Recipe.java index 535da25934..a444a16ef2 100644 --- a/src/main/java/gregtech/api/util/GT_Recipe.java +++ b/src/main/java/gregtech/api/util/GT_Recipe.java @@ -1,148 +1,38 @@ package gregtech.api.util; -import static gregtech.api.enums.GT_Values.D1; import static gregtech.api.enums.GT_Values.D2; -import static gregtech.api.enums.GT_Values.E; -import static gregtech.api.enums.GT_Values.L; -import static gregtech.api.enums.GT_Values.W; -import static gregtech.api.enums.Mods.GTPlusPlus; -import static gregtech.api.enums.Mods.GregTech; -import static gregtech.api.enums.Mods.NEICustomDiagrams; -import static gregtech.api.enums.Mods.Railcraft; -import static gregtech.api.recipe.check.FindRecipeResult.EXPLODE; -import static gregtech.api.recipe.check.FindRecipeResult.NOT_FOUND; -import static gregtech.api.recipe.check.FindRecipeResult.ON_FIRE; -import static gregtech.api.recipe.check.FindRecipeResult.ofSuccess; -import static gregtech.api.util.GT_RecipeBuilder.handleRecipeCollision; -import static gregtech.api.util.GT_RecipeConstants.ADDITIVE_AMOUNT; -import static gregtech.api.util.GT_RecipeMapUtil.FIRST_FLUIDSTACK_INPUT; -import static gregtech.api.util.GT_RecipeMapUtil.FIRST_FLUIDSTACK_OUTPUT; -import static gregtech.api.util.GT_RecipeMapUtil.FIRST_FLUID_OUTPUT; -import static gregtech.api.util.GT_RecipeMapUtil.FIRST_ITEM_INPUT; -import static gregtech.api.util.GT_RecipeMapUtil.FIRST_ITEM_OR_FLUID_INPUT; -import static gregtech.api.util.GT_RecipeMapUtil.FIRST_ITEM_OR_FLUID_OUTPUT; -import static gregtech.api.util.GT_RecipeMapUtil.FIRST_ITEM_OUTPUT; -import static gregtech.api.util.GT_RecipeMapUtil.GT_RecipeTemplate; -import static gregtech.api.util.GT_RecipeMapUtil.SPECIAL_VALUE_ALIASES; -import static gregtech.api.util.GT_RecipeMapUtil.asTemplate; -import static gregtech.api.util.GT_RecipeMapUtil.buildOrEmpty; -import static gregtech.api.util.GT_Utility.formatNumbers; -import static gregtech.api.util.GT_Utility.isArrayEmptyOrNull; -import static gregtech.api.util.GT_Utility.isArrayOfLength; -import static net.minecraft.util.EnumChatFormatting.GRAY; -import static net.minecraft.util.StatCollector.translateToLocal; -import java.awt.Rectangle; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; import java.util.HashMap; -import java.util.HashSet; import java.util.List; import java.util.Map; -import java.util.Optional; -import java.util.Set; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.function.Consumer; -import java.util.function.Function; -import java.util.function.Predicate; -import java.util.function.Supplier; import javax.annotation.Nonnull; import javax.annotation.Nullable; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntityFurnace; -import net.minecraft.util.EnumChatFormatting; import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidContainerRegistry; import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.IFluidContainerItem; -import org.apache.commons.lang3.ArrayUtils; -import org.apache.commons.lang3.StringUtils; -import org.apache.commons.lang3.tuple.ImmutablePair; -import org.apache.commons.lang3.tuple.Pair; +import org.jetbrains.annotations.Contract; -import com.google.common.collect.Iterables; -import com.gtnewhorizons.modularui.api.GlStateManager; -import com.gtnewhorizons.modularui.api.ModularUITextures; -import com.gtnewhorizons.modularui.api.drawable.FallbackableUITexture; -import com.gtnewhorizons.modularui.api.drawable.IDrawable; -import com.gtnewhorizons.modularui.api.drawable.UITexture; -import com.gtnewhorizons.modularui.api.forge.IItemHandlerModifiable; -import com.gtnewhorizons.modularui.api.math.Alignment; -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.common.widget.DrawableWidget; -import com.gtnewhorizons.modularui.common.widget.ProgressBar; -import com.gtnewhorizons.modularui.common.widget.SlotWidget; - -import appeng.util.ReadableNumberConverter; -import codechicken.lib.gui.GuiDraw; -import codechicken.nei.PositionedStack; import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.ModContainer; -import gnu.trove.map.TByteObjectMap; -import gnu.trove.map.hash.TByteObjectHashMap; import gregtech.GT_Mod; import gregtech.api.GregTech_API; -import gregtech.api.enums.ConfigCategories; -import gregtech.api.enums.Dyes; -import gregtech.api.enums.Element; -import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; -import gregtech.api.enums.OrePrefixes; -import gregtech.api.enums.SteamVariant; -import gregtech.api.enums.SubTag; -import gregtech.api.gui.GT_GUIColorOverride; -import gregtech.api.gui.modularui.FallbackableSteamTexture; -import gregtech.api.gui.modularui.GT_UITextures; -import gregtech.api.gui.modularui.SteamTexture; -import gregtech.api.interfaces.IGT_RecipeMap; -import gregtech.api.interfaces.tileentity.IHasWorldObjectAndCoords; import gregtech.api.objects.GT_ItemStack; -import gregtech.api.objects.ItemData; -import gregtech.api.objects.MaterialStack; -import gregtech.api.recipe.check.FindRecipeResult; +import gregtech.api.recipe.RecipeCategory; +import gregtech.api.recipe.RecipeMap; +import gregtech.api.recipe.RecipeMaps; +import gregtech.api.recipe.RecipeMetadataKey; +import gregtech.api.recipe.metadata.EmptyRecipeMetadataStorage; +import gregtech.api.recipe.metadata.IRecipeMetadataStorage; import gregtech.api.util.extensions.ArrayExt; -import gregtech.common.gui.modularui.UIHelper; -import gregtech.common.items.GT_FluidDisplayItem; -import gregtech.common.misc.spaceprojects.SpaceProjectManager; -import gregtech.common.misc.spaceprojects.interfaces.ISpaceProject; -import gregtech.common.power.EUPower; -import gregtech.common.power.Power; -import gregtech.common.power.UnspecifiedEUPower; -import gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_Replicator; -import gregtech.nei.FusionSpecialValueFormatter; -import gregtech.nei.GT_NEI_DefaultHandler; -import gregtech.nei.HeatingCoilSpecialValueFormatter; -import gregtech.nei.INEISpecialInfoFormatter; -import gregtech.nei.NEIRecipeInfo; import ic2.core.Ic2Items; -import mods.railcraft.common.blocks.aesthetics.cube.EnumCube; -import mods.railcraft.common.items.RailcraftToolItems; -/** - * NEVER INCLUDE THIS FILE IN YOUR MOD!!! - * <p/> - * This File contains the functions used for Recipes. Please do not include this File AT ALL in your Moddownload as it - * ruins compatibility This is just the Core of my Recipe System, if you just want to GET the Recipes I add, then you - * can access this File. Do NOT add Recipes using the Constructors inside this Class, The GregTech_API File calls the - * correct Functions for these Constructors. - * <p/> - * I know this File causes some Errors, because of missing Main Functions, but if you just need to compile Stuff, then - * remove said erroreous Functions. - */ public class GT_Recipe implements Comparable<GT_Recipe> { /** @@ -200,13 +90,24 @@ public class GT_Recipe implements Comparable<GT_Recipe> { */ private String[] neiDesc = null; /** + * Holds a set of metadata for this recipe. + */ + @Nonnull + private final IRecipeMetadataStorage metadataStorage; + /** + * Category this recipe belongs to. Recipes belonging to recipemap are forced to have non-null category when added, + * otherwise it can be null. + */ + private RecipeCategory recipeCategory; + /** * Stores which mod added this recipe */ public List<ModContainer> owners = new ArrayList<>(); /** * Stores stack traces where this recipe was added */ - public List<List<StackTraceElement>> stackTraces = new ArrayList<>(); + // BW wants to overwrite it, so no final + public List<List<String>> stackTraces = new ArrayList<>(); private GT_Recipe(GT_Recipe aRecipe, boolean shallow) { mInputs = shallow ? aRecipe.mInputs : GT_Utility.copyItemArray(aRecipe.mInputs); @@ -219,18 +120,23 @@ public class GT_Recipe implements Comparable<GT_Recipe> { mSpecialValue = aRecipe.mSpecialValue; mEUt = aRecipe.mEUt; mNeedsEmptyOutput = aRecipe.mNeedsEmptyOutput; + isNBTSensitive = aRecipe.isNBTSensitive; mCanBeBuffered = aRecipe.mCanBeBuffered; mFakeRecipe = aRecipe.mFakeRecipe; mEnabled = aRecipe.mEnabled; mHidden = aRecipe.mHidden; + metadataStorage = EmptyRecipeMetadataStorage.INSTANCE; owners = new ArrayList<>(aRecipe.owners); reloadOwner(); } - // only used for GT_RecipeBuilder. Should not be called otherwise + /** + * Only for {@link GT_RecipeBuilder}. + */ GT_Recipe(ItemStack[] mInputs, ItemStack[] mOutputs, FluidStack[] mFluidInputs, FluidStack[] mFluidOutputs, int[] mChances, Object mSpecialItems, int mDuration, int mEUt, int mSpecialValue, boolean mEnabled, - boolean mHidden, boolean mFakeRecipe, boolean mCanBeBuffered, boolean mNeedsEmptyOutput, String[] neiDesc) { + boolean mHidden, boolean mFakeRecipe, boolean mCanBeBuffered, boolean mNeedsEmptyOutput, boolean nbtSensitive, + String[] neiDesc, @Nullable IRecipeMetadataStorage metadataStorage, RecipeCategory recipeCategory) { this.mInputs = mInputs; this.mOutputs = mOutputs; this.mFluidInputs = mFluidInputs; @@ -245,7 +151,10 @@ public class GT_Recipe implements Comparable<GT_Recipe> { this.mFakeRecipe = mFakeRecipe; this.mCanBeBuffered = mCanBeBuffered; this.mNeedsEmptyOutput = mNeedsEmptyOutput; + this.isNBTSensitive = nbtSensitive; this.neiDesc = neiDesc; + this.metadataStorage = metadataStorage == null ? EmptyRecipeMetadataStorage.INSTANCE : metadataStorage.copy(); + this.recipeCategory = recipeCategory; reloadOwner(); } @@ -311,19 +220,11 @@ public class GT_Recipe implements Comparable<GT_Recipe> { mDuration = aDuration; mSpecialValue = aSpecialValue; mEUt = aEUt; + metadataStorage = EmptyRecipeMetadataStorage.INSTANCE; // checkCellBalance(); reloadOwner(); } - public GT_Recipe(ItemStack aInput1, ItemStack aOutput1, int aFuelValue, int aType) { - this(aInput1, aOutput1, null, null, null, aFuelValue, aType); - } - - private static FluidStack[] tryGetFluidInputsFromCells(ItemStack aInput) { - FluidStack tFluid = GT_Utility.getFluidForFilledItem(aInput, true); - return tFluid == null ? null : new FluidStack[] { tFluid }; - } - // aSpecialValue = EU per Liter! If there is no Liquid for this Object, then it gets multiplied with 1000! public GT_Recipe(ItemStack aInput1, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4, int aSpecialValue, int aType) { @@ -343,208 +244,32 @@ public class GT_Recipe implements Comparable<GT_Recipe> { switch (aType) { // Diesel Generator case 0 -> { - GT_Recipe_Map.sDieselFuels.addRecipe(this); - GT_Recipe_Map.sLargeBoilerFakeFuels.addDieselRecipe(this); + RecipeMaps.dieselFuels.addRecipe(this); + RecipeMaps.largeBoilerFakeFuels.getBackend() + .addDieselRecipe(this); } // Gas Turbine - case 1 -> GT_Recipe_Map.sTurbineFuels.addRecipe(this); + case 1 -> RecipeMaps.gasTurbineFuels.addRecipe(this); // Thermal Generator - case 2 -> GT_Recipe_Map.sHotFuels.addRecipe(this); + case 2 -> RecipeMaps.hotFuels.addRecipe(this); // Plasma Generator - case 4 -> GT_Recipe_Map.sPlasmaFuels.addRecipe(this); + case 4 -> RecipeMaps.plasmaFuels.addRecipe(this); // Magic Generator - case 5 -> GT_Recipe_Map.sMagicFuels.addRecipe(this); + case 5 -> RecipeMaps.magicFuels.addRecipe(this); // Fluid Generator. Usually 3. Every wrong Type ends up in the Semifluid Generator default -> { - GT_Recipe_Map.sDenseLiquidFuels.addRecipe(this); - GT_Recipe_Map.sLargeBoilerFakeFuels.addDenseLiquidRecipe(this); + RecipeMaps.denseLiquidFuels.addRecipe(this); + RecipeMaps.largeBoilerFakeFuels.getBackend() + .addDenseLiquidRecipe(this); } } } } - public GT_Recipe(FluidStack aInput1, FluidStack aInput2, FluidStack aOutput1, int aDuration, int aEUt, - int aSpecialValue) { - this( - true, - null, - null, - null, - null, - new FluidStack[] { aInput1, aInput2 }, - new FluidStack[] { aOutput1 }, - Math.max(aDuration, 1), - aEUt, - Math.max(Math.min(aSpecialValue, 160000000), 0)); - if (mInputs.length > 1) { - GT_Recipe_Map.sFusionRecipes.addRecipe(this); - } - } - - public GT_Recipe(ItemStack aInput1, ItemStack aOutput1, ItemStack aOutput2, int aDuration, int aEUt) { - this( - true, - new ItemStack[] { aInput1 }, - new ItemStack[] { aOutput1, aOutput2 }, - null, - null, - null, - null, - aDuration, - aEUt, - 0); - if (mInputs.length > 0 && mOutputs[0] != null) { - GT_Recipe_Map.sLatheRecipes.addRecipe(this); - } - } - - public GT_Recipe(ItemStack aInput1, int aCellAmount, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, - ItemStack aOutput4, int aDuration, int aEUt) { - this( - true, - new ItemStack[] { aInput1, - aCellAmount > 0 ? ItemList.Cell_Empty.get(Math.min(64, Math.max(1, aCellAmount))) : null }, - new ItemStack[] { aOutput1, aOutput2, aOutput3, aOutput4 }, - null, - null, - null, - null, - Math.max(aDuration, 1), - Math.max(aEUt, 1), - 0); - if (mInputs.length > 0 && mOutputs[0] != null) { - GT_Recipe_Map.sDistillationRecipes.addRecipe(this); - } - } - - public GT_Recipe(ItemStack aInput1, int aInput2, ItemStack aOutput1, ItemStack aOutput2) { - this( - true, - new ItemStack[] { aInput1, - GT_ModHandler.getIC2Item( - "industrialTnt", - aInput2 > 0 ? Math.min(aInput2, 64) : 1, - new ItemStack(Blocks.tnt, aInput2 > 0 ? Math.min(aInput2, 64) : 1)) }, - new ItemStack[] { aOutput1, aOutput2 }, - null, - null, - null, - null, - 20, - 30, - 0); - if (mInputs.length > 0 && mOutputs[0] != null) { - GT_Recipe_Map.sImplosionRecipes.addRecipe(this); - } - } - - public GT_Recipe(int aEUt, int aDuration, ItemStack aInput1, ItemStack aOutput1) { - this( - true, - new ItemStack[] { aInput1, ItemList.Circuit_Integrated.getWithDamage(0, aInput1.stackSize) }, - new ItemStack[] { aOutput1 }, - null, - null, - null, - null, - Math.max(aDuration, 1), - Math.max(aEUt, 1), - 0); - if (mInputs.length > 0 && mOutputs[0] != null) { - GT_Recipe_Map.sBenderRecipes.addRecipe(this); - } - } - - public GT_Recipe(ItemStack aInput1, ItemStack aInput2, int aEUt, int aDuration, ItemStack aOutput1) { - this( - true, - aInput2 == null ? new ItemStack[] { aInput1 } : new ItemStack[] { aInput1, aInput2 }, - new ItemStack[] { aOutput1 }, - null, - null, - null, - null, - Math.max(aDuration, 1), - Math.max(aEUt, 1), - 0); - if (mInputs.length > 0 && mOutputs[0] != null) { - GT_Recipe_Map.sAlloySmelterRecipes.addRecipe(this); - } - } - - public GT_Recipe(ItemStack aInput1, int aEUt, ItemStack aInput2, int aDuration, ItemStack aOutput1, - ItemStack aOutput2) { - this( - true, - aInput2 == null ? new ItemStack[] { aInput1 } : new ItemStack[] { aInput1, aInput2 }, - new ItemStack[] { aOutput1, aOutput2 }, - null, - null, - null, - null, - Math.max(aDuration, 1), - Math.max(aEUt, 1), - 0); - if (mInputs.length > 0 && mOutputs[0] != null) { - GT_Recipe_Map.sCannerRecipes.addRecipe(this); - } - } - - public GT_Recipe(ItemStack aInput1, ItemStack aOutput1, int aDuration) { - this( - true, - new ItemStack[] { aInput1 }, - new ItemStack[] { aOutput1 }, - null, - null, - null, - null, - Math.max(aDuration, 1), - 120, - 0); - if (mInputs.length > 0 && mOutputs[0] != null) { - GT_Recipe_Map.sVacuumRecipes.addRecipe(this); - } - } - - public GT_Recipe(ItemStack aInput1, ItemStack aOutput1, int aDuration, int aEUt, int VACUUM) { - this( - true, - new ItemStack[] { aInput1 }, - new ItemStack[] { aOutput1 }, - null, - null, - null, - null, - Math.max(aDuration, 1), - aEUt, - 0); - if (mInputs.length > 0 && mOutputs[0] != null) { - GT_Recipe_Map.sVacuumRecipes.addRecipe(this); - } - } - - public GT_Recipe(FluidStack aInput1, FluidStack aOutput1, int aDuration, int aEUt) { - this( - false, - null, - null, - null, - null, - new FluidStack[] { aInput1 }, - new FluidStack[] { aOutput1 }, - Math.max(aDuration, 1), - aEUt, - 0); - if (mFluidInputs.length > 0 && mFluidOutputs[0] != null) { - GT_Recipe_Map.sVacuumRecipes.addRecipe(this); - } - } - // Dummy GT_Recipe maker... public GT_Recipe(ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecialItems, int[] aChances, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue) { @@ -561,15 +286,17 @@ public class GT_Recipe implements Comparable<GT_Recipe> { aSpecialValue); } + /** + * Re-unificates all the items present in recipes. + */ public static void reInit() { GT_Log.out.println("GT_Mod: Re-Unificating Recipes."); - for (GT_Recipe_Map tMapEntry : GT_Recipe_Map.sMappings) tMapEntry.reInit(); + for (RecipeMap<?> map : RecipeMap.ALL_RECIPE_MAPS.values()) { + map.getBackend() + .reInit(); + } } - // ----- - // Old Constructors, do not use! - // ----- - public ItemStack getRepresentativeInput(int aIndex) { if (aIndex < 0 || aIndex >= mInputs.length) return null; return GT_Utility.copyOrNull(mInputs[aIndex]); @@ -580,16 +307,14 @@ public class GT_Recipe implements Comparable<GT_Recipe> { return GT_Utility.copyOrNull(mOutputs[aIndex]); } - /*** + /** * Dictates the ItemStacks displayed in the output slots of any NEI page handled by the default GT NEI handler. * Override to make shown items differ from a GT_Recipe's item output array * * @see gregtech.nei.GT_NEI_DefaultHandler * @param i Slot index * @return ItemStack to be displayed in the slot - * */ - // public ItemStack getRepresentativeOutput(int i) { return getOutput(i); } @@ -851,59 +576,100 @@ public class GT_Recipe implements Comparable<GT_Recipe> { /** * Sets description shown on NEI. <br> * If you have a large number of recipes for the recipemap, this is not efficient memory wise, so use - * {@link GT_Recipe_Map#setNEISpecialInfoFormatter} instead. + * {@link gregtech.api.recipe.RecipeMapBuilder#neiSpecialInfoFormatter} instead. */ - protected void setNeiDesc(String... neiDesc) { + public void setNeiDesc(String... neiDesc) { this.neiDesc = neiDesc; } + // region metadata + + // Don't try implementing setMetadata, as metadataStorage can be EmptyRecipeMetadataStorage + + /** + * Gets metadata associated with this recipe. Can return null. Use + * {@link #getMetadataOrDefault(RecipeMetadataKey, Object)} + * if you want to specify default value. + */ + @Nullable + public <T> T getMetadata(RecipeMetadataKey<T> key) { + return key.cast(metadataStorage.getMetadata(key)); + } + /** - * Use {@link GT_Recipe_Map#getItemInputPositions} or {@link GT_Recipe_Map#getSpecialItemPosition} or - * {@link GT_Recipe_Map#getFluidInputPositions} instead + * Gets metadata associated with this recipe with default value. Does not return null unless default value is null. */ - @SuppressWarnings("DeprecatedIsStillUsed") - @Deprecated - public ArrayList<PositionedStack> getInputPositionedStacks() { - return null; + @Contract("_, !null -> !null") + @Nullable + public <T> T getMetadataOrDefault(RecipeMetadataKey<T> key, @Nullable T defaultValue) { + return key.cast(metadataStorage.getMetadataOrDefault(key, defaultValue)); + } + + @Nonnull + public IRecipeMetadataStorage getMetadataStorage() { + return metadataStorage; + } + + // endregion + + public RecipeCategory getRecipeCategory() { + return recipeCategory; } /** - * Use {@link GT_Recipe_Map#getItemOutputPositions} or {@link GT_Recipe_Map#getFluidOutputPositions} instead + * Exists only for recipe copying from external. For ordinal use case, use {@link GT_RecipeBuilder#recipeCategory}. */ - @SuppressWarnings("DeprecatedIsStillUsed") - @Deprecated - public ArrayList<PositionedStack> getOutputPositionedStacks() { - return null; + public void setRecipeCategory(RecipeCategory recipeCategory) { + this.recipeCategory = recipeCategory; } + private static final List<String> excludedStacktraces = Arrays.asList( + "java.lang.Thread", + "gregtech.api.interfaces.IRecipeMap", + "gregtech.api.interfaces.IRecipeMap$1", + "gregtech.api.recipe.RecipeMap", + "gregtech.api.recipe.RecipeMapBackend", + "gregtech.api.recipe.RecipeMapBackendPropertiesBuilder", + "gregtech.api.util.GT_Recipe", + "gregtech.api.util.GT_RecipeBuilder", + "gregtech.api.util.GT_RecipeConstants", + "gregtech.api.util.GT_RecipeMapUtil", + "gregtech.common.GT_RecipeAdder"); + public void reloadOwner() { setOwner( Loader.instance() .activeModContainer()); - final List<String> excludedClasses = Arrays.asList( - "java.lang.Thread", - "gregtech.api.util.GT_Recipe", - "gregtech.api.util.GT_RecipeBuilder", - "gregtech.api.util.GT_Recipe$GT_Recipe_Map", - "gregtech.common.GT_RecipeAdder"); if (GT_Mod.gregtechproxy.mNEIRecipeOwnerStackTrace) { - List<StackTraceElement> toAdd = new ArrayList<>(); + List<String> toAdd = new ArrayList<>(); for (StackTraceElement stackTrace : Thread.currentThread() .getStackTrace()) { - if (excludedClasses.stream() + if (excludedStacktraces.stream() .noneMatch( c -> stackTrace.getClassName() .equals(c))) { - toAdd.add(stackTrace); + toAdd.add(formatStackTrace(stackTrace)); } } stackTraces.add(toAdd); } } + private static String formatStackTrace(StackTraceElement stackTraceElement) { + String raw = stackTraceElement.toString(); + int startParen = raw.lastIndexOf('('); + int colon = raw.lastIndexOf(':'); + if (colon == -1) { + // native or unknown source + return raw; + } + // strip class name and leave line number, as class name is already shown + return raw.substring(0, startParen + 1) + raw.substring(colon); + } + public void setOwner(ModContainer newOwner) { - ModContainer oldOwner = owners.size() > 0 ? this.owners.get(owners.size() - 1) : null; + ModContainer oldOwner = !owners.isEmpty() ? this.owners.get(owners.size() - 1) : null; if (newOwner != null && newOwner != oldOwner) { owners.add(newOwner); } @@ -1144,5146 +910,19 @@ public class GT_Recipe implements Comparable<GT_Recipe> { } } - @SuppressWarnings("StaticInitializerReferencesSubClass") - public static class GT_Recipe_Map implements IGT_RecipeMap { - - /** - * Contains all Recipe Maps - */ - public static final Collection<GT_Recipe_Map> sMappings = new ArrayList<>(); - /** - * All recipe maps indexed by their {@link #mUniqueIdentifier}. - */ - public static final Map<String, GT_Recipe_Map> sIndexedMappings = new HashMap<>(); - - static final String TEXTURES_GUI_BASICMACHINES = "textures/gui/basicmachines"; - public static final GT_Recipe_Map sOreWasherRecipes = new GT_Recipe_Map( - new HashSet<>(500), - "gt.recipe.orewasher", - null, - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "OreWasher"), - 1, - 3, - 1, - 1, - 1, - E, - 1, - E, - true, - true).setSlotOverlay(false, false, GT_UITextures.OVERLAY_SLOT_CRUSHED_ORE) - .setSlotOverlay(false, true, GT_UITextures.OVERLAY_SLOT_DUST) - .setRecipeConfigFile("orewasher", FIRST_ITEM_INPUT) - .setProgressBar(GT_UITextures.PROGRESSBAR_BATH, ProgressBar.Direction.CIRCULAR_CW); - public static final GT_Recipe_Map sThermalCentrifugeRecipes = new GT_Recipe_Map( - new HashSet<>(1000), - "gt.recipe.thermalcentrifuge", - null, - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "ThermalCentrifuge"), - 1, - 3, - 1, - 0, - 2, - E, - 1, - E, - true, - true).setSlotOverlay(false, false, GT_UITextures.OVERLAY_SLOT_CRUSHED_ORE) - .setSlotOverlay(false, true, GT_UITextures.OVERLAY_SLOT_DUST) - .setRecipeConfigFile("thermalcentrifuge", FIRST_ITEM_INPUT) - .setProgressBar(GT_UITextures.PROGRESSBAR_ARROW, ProgressBar.Direction.RIGHT); - public static final GT_Recipe_Map sCompressorRecipes = new GT_Recipe_Map( - new HashSet<>(750), - "gt.recipe.compressor", - null, - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Compressor"), - 1, - 1, - 1, - 0, - 1, - E, - 1, - E, - true, - true).setSlotOverlay(false, false, GT_UITextures.OVERLAY_SLOT_COMPRESSOR) - .setRecipeConfigFile("compressor", FIRST_ITEM_INPUT) - .setProgressBar(GT_UITextures.PROGRESSBAR_COMPRESS, ProgressBar.Direction.RIGHT) - .setSlotOverlaySteam(false, GT_UITextures.OVERLAY_SLOT_COMPRESSOR_STEAM) - .setProgressBarSteam(GT_UITextures.PROGRESSBAR_COMPRESS_STEAM); - public static final GT_Recipe_Map sExtractorRecipes = new GT_Recipe_Map( - new HashSet<>(250), - "gt.recipe.extractor", - null, - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Extractor"), - 1, - 1, - 1, - 0, - 1, - E, - 1, - E, - true, - true).setSlotOverlay(false, false, GT_UITextures.OVERLAY_SLOT_CENTRIFUGE) - .setRecipeConfigFile("extractor", FIRST_ITEM_INPUT) - .setProgressBar(GT_UITextures.PROGRESSBAR_EXTRACT, ProgressBar.Direction.RIGHT) - .setSlotOverlaySteam(false, GT_UITextures.OVERLAY_SLOT_CENTRIFUGE_STEAM) - .setProgressBarSteam(GT_UITextures.PROGRESSBAR_EXTRACT_STEAM); - public static final GT_Recipe_Map sRecyclerRecipes = new GT_Recipe_Map_Recycler( - new HashSet<>(0), - "ic.recipe.recycler", - null, - "ic2.recycler", - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Recycler"), - 1, - 1, - 1, - 0, - 1, - E, - 1, - E, - true, - false).setSlotOverlay(false, false, GT_UITextures.OVERLAY_SLOT_RECYCLE) - .setProgressBar(GT_UITextures.PROGRESSBAR_RECYCLE, ProgressBar.Direction.CIRCULAR_CW); - public static final GT_Recipe_Map sFurnaceRecipes = new GT_Recipe_Map_Furnace( - new HashSet<>(0), - "mc.recipe.furnace", - "Furnace", - "smelting", - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "E_Furnace"), - 1, - 1, - 1, - 0, - 1, - E, - 1, - E, - true, - false).setSlotOverlay(false, false, GT_UITextures.OVERLAY_SLOT_FURNACE) - .setProgressBar(GT_UITextures.PROGRESSBAR_ARROW, ProgressBar.Direction.RIGHT) - .setSlotOverlaySteam(false, GT_UITextures.OVERLAY_SLOT_FURNACE_STEAM) - .setProgressBarSteam(GT_UITextures.PROGRESSBAR_ARROW_STEAM); - public static final GT_Recipe_Map sMicrowaveRecipes = new GT_Recipe_Map_Microwave( - new HashSet<>(0), - "gt.recipe.microwave", - null, - "smelting", - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "E_Furnace"), - 1, - 1, - 1, - 0, - 1, - E, - 1, - E, - true, - false).setSlotOverlay(false, false, GT_UITextures.OVERLAY_SLOT_FURNACE) - .setProgressBar(GT_UITextures.PROGRESSBAR_ARROW, ProgressBar.Direction.RIGHT); - - public static final GT_Recipe_Map sScannerFakeRecipes = new GT_Recipe_Map( - new HashSet<>(300), - "gt.recipe.scanner", - null, - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Scanner"), - 1, - 1, - 1, - 0, - 1, - E, - 1, - E, - true, - true).setSlotOverlay(false, false, GT_UITextures.OVERLAY_SLOT_MICROSCOPE) - .setSlotOverlay(false, false, true, true, GT_UITextures.OVERLAY_SLOT_DATA_ORB) - .setProgressBar(GT_UITextures.PROGRESSBAR_ARROW, ProgressBar.Direction.RIGHT); - public static final GT_Recipe_Map sRockBreakerFakeRecipes = new GT_Recipe_Map( - new HashSet<>(200), - "gt.recipe.rockbreaker", - null, - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "RockBreaker"), - 2, - 1, - 0, - 0, - 1, - E, - 1, - E, - true, - true).setSlotOverlay(false, false, GT_UITextures.OVERLAY_SLOT_DUST) - .setSlotOverlay(false, true, GT_UITextures.OVERLAY_SLOT_CRUSHED_ORE) - .setProgressBar(GT_UITextures.PROGRESSBAR_MACERATE, ProgressBar.Direction.RIGHT); - @Deprecated - public static final GT_Recipe_Map sByProductList = new GT_Recipe_Map( - new HashSet<>(1000), - "gt.recipe.byproductlist", - "Ore Byproduct List", - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Default"), - 1, - 6, - 1, - 0, - 1, - E, - 1, - E, - true, - false).setProgressBar(GT_UITextures.PROGRESSBAR_ARROW, ProgressBar.Direction.RIGHT); - public static final GT_Recipe_Map sReplicatorFakeRecipes = new ReplicatorFakeMap( - new HashSet<>(100), - "gt.recipe.replicator", - null, - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Replicator"), - 0, - 1, - 0, - 1, - 1, - E, - 1, - E, - true, - true).setSlotOverlay(false, false, GT_UITextures.OVERLAY_SLOT_CANISTER) - .setSlotOverlay(true, false, GT_UITextures.OVERLAY_SLOT_UUM) - .setSlotOverlay(false, false, true, true, GT_UITextures.OVERLAY_SLOT_DATA_ORB) - .setProgressBar(GT_UITextures.PROGRESSBAR_ARROW, ProgressBar.Direction.RIGHT); - public static final GT_Recipe_Map sAssemblylineVisualRecipes = new GT_Recipe_Map_AssemblyLineFake( - new HashSet<>(110), - "gt.recipe.fakeAssemblylineProcess", - "Assemblyline Process", - null, - GregTech.getResourcePath("textures", "gui", "FakeAssemblyline"), - 16, - 1, - 1, - 0, - 1, - E, - 1, - E, - true, - true).setSlotOverlay(false, false, true, true, GT_UITextures.OVERLAY_SLOT_DATA_ORB) - .setUsualFluidInputCount(4) - .setDisableOptimize(true); - /** - * Usually, but not always, you should use {@link GT_RecipeConstants#UniversalArcFurnace} instead. - */ - public static final GT_Recipe_Map sPlasmaArcFurnaceRecipes = new GT_Recipe_Map( - new HashSet<>(20000), - "gt.recipe.plasmaarcfurnace", - null, - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "PlasmaArcFurnace"), - 1, - 9, - 1, - 1, - 1, - E, - 1, - E, - true, - true).setProgressBar(GT_UITextures.PROGRESSBAR_ARROW, ProgressBar.Direction.RIGHT) - .setRecipeConfigFile("arcfurnace", FIRST_ITEM_INPUT); - /** - * Usually, but not always, you should use {@link GT_RecipeConstants#UniversalArcFurnace} instead. - */ - public static final GT_Recipe_Map sArcFurnaceRecipes = new GT_Recipe_Map( - new HashSet<>(20000), - "gt.recipe.arcfurnace", - null, - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "ArcFurnace"), - 1, - 9, - 1, - 1, - 3, - E, - 1, - E, - true, - true).setProgressBar(GT_UITextures.PROGRESSBAR_ARROW, ProgressBar.Direction.RIGHT) - .setRecipeConfigFile("arcfurnace", FIRST_ITEM_INPUT); - public static final GT_Recipe_Map sPrinterRecipes = new GT_Recipe_Map_Printer( - new HashSet<>(5), - "gt.recipe.printer", - null, - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Printer"), - 1, - 1, - 1, - 1, - 1, - E, - 1, - E, - true, - true).setSlotOverlay(false, false, GT_UITextures.OVERLAY_SLOT_PAGE_BLANK) - .setSlotOverlay(false, true, GT_UITextures.OVERLAY_SLOT_PAGE_PRINTED) - .setSlotOverlay(false, false, true, true, GT_UITextures.OVERLAY_SLOT_DATA_STICK) - .setRecipeConfigFile("printer", FIRST_ITEM_INPUT) - .setProgressBar(GT_UITextures.PROGRESSBAR_ARROW, ProgressBar.Direction.RIGHT); - public static final GT_Recipe_Map sSifterRecipes = new GT_Recipe_Map( - new HashSet<>(105), - "gt.recipe.sifter", - null, - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Sifter"), - 1, - 9, - 0, - 0, - 1, - E, - 1, - E, - true, - true).setProgressBar(GT_UITextures.PROGRESSBAR_SIFT, ProgressBar.Direction.DOWN) - .setRecipeConfigFile("sifter", FIRST_ITEM_INPUT); - public static final GT_Recipe_Map sPressRecipes = new GT_Recipe_Map_FormingPress( - new HashSet<>(300), - "gt.recipe.press", - null, - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Press3"), - 6, - 1, - 2, - 0, - 1, - E, - 1, - E, - true, - true).setSlotOverlay(false, false, true, GT_UITextures.OVERLAY_SLOT_PRESS_1) - .setSlotOverlay(false, false, false, GT_UITextures.OVERLAY_SLOT_PRESS_2) - .setSlotOverlay(false, true, GT_UITextures.OVERLAY_SLOT_PRESS_3) - .setRecipeConfigFile("press", FIRST_ITEM_OUTPUT) - .setProgressBar(GT_UITextures.PROGRESSBAR_COMPRESS, ProgressBar.Direction.RIGHT); - public static final GT_Recipe_Map sLaserEngraverRecipes = new GT_Recipe_Map( - new HashSet<>(810), - "gt.recipe.laserengraver", - null, - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "LaserEngraver2"), - 4, - 4, - 0, - 0, - 1, - E, - 1, - E, - true, - true).setSlotOverlay(false, false, false, GT_UITextures.OVERLAY_SLOT_LENS) - .setProgressBar(GT_UITextures.PROGRESSBAR_ARROW, ProgressBar.Direction.RIGHT) - .setRecipeConfigFile("laserengraving", FIRST_ITEM_OUTPUT) - .setUsualFluidInputCount(2) - .setUsualFluidOutputCount(2); - public static final GT_Recipe_Map sMixerRecipes = new GT_Recipe_Map( - new HashSet<>(900), - "gt.recipe.mixer", - null, - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Mixer6"), - 9, - 4, - 1, - 0, - 1, - E, - 1, - E, - true, - true).setSlotOverlay(false, false, GT_UITextures.OVERLAY_SLOT_DUST) - .setSlotOverlay(false, true, GT_UITextures.OVERLAY_SLOT_DUST) - .setRecipeConfigFile("mixer", FIRST_ITEM_OR_FLUID_OUTPUT) - .setProgressBar(GT_UITextures.PROGRESSBAR_MIXER, ProgressBar.Direction.CIRCULAR_CW); - public static final GT_Recipe_Map sAutoclaveRecipes = new GT_Recipe_Map( - new HashSet<>(300), - "gt.recipe.autoclave", - null, - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Autoclave4"), - 2, - 4, - 1, - 1, - 1, - E, - 1, - E, - true, - true).setSlotOverlay(false, false, GT_UITextures.OVERLAY_SLOT_DUST) - .setSlotOverlay(false, true, true, GT_UITextures.OVERLAY_SLOT_GEM) - .setSlotOverlay(false, true, false, GT_UITextures.OVERLAY_SLOT_DUST) - .setRecipeConfigFile("autoclave", FIRST_ITEM_INPUT) - .setProgressBar(GT_UITextures.PROGRESSBAR_ARROW, ProgressBar.Direction.RIGHT); - public static final GT_Recipe_Map sElectroMagneticSeparatorRecipes = new GT_Recipe_Map( - new HashSet<>(50), - "gt.recipe.electromagneticseparator", - null, - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "ElectromagneticSeparator"), - 1, - 3, - 1, - 0, - 1, - E, - 1, - E, - true, - true).setSlotOverlay(false, false, GT_UITextures.OVERLAY_SLOT_CRUSHED_ORE) - .setSlotOverlay(false, true, GT_UITextures.OVERLAY_SLOT_DUST) - .setRecipeConfigFile("electromagneticseparator", FIRST_ITEM_INPUT) - .setProgressBar(GT_UITextures.PROGRESSBAR_MAGNET, ProgressBar.Direction.RIGHT); - public static final GT_Recipe_Map sPolarizerRecipes = new GT_Recipe_Map( - new HashSet<>(300), - "gt.recipe.polarizer", - null, - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Polarizer"), - 1, - 1, - 1, - 0, - 1, - E, - 1, - E, - true, - true).setProgressBar(GT_UITextures.PROGRESSBAR_MAGNET, ProgressBar.Direction.RIGHT) - .setRecipeConfigFile("polarizer", FIRST_ITEM_INPUT); - public static final GT_Recipe_Map sMaceratorRecipes = new GT_Recipe_Map_Macerator( - new HashSet<>(16600), - "gt.recipe.macerator", - null, - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Macerator4"), - 1, - 4, - 1, - 0, - 1, - E, - 1, - E, - true, - true).setSlotOverlay(false, false, GT_UITextures.OVERLAY_SLOT_CRUSHED_ORE) - .setSlotOverlay(false, true, GT_UITextures.OVERLAY_SLOT_DUST) - .setProgressBar(GT_UITextures.PROGRESSBAR_MACERATE, ProgressBar.Direction.RIGHT) - .setRecipeConfigFile("pulveriser", FIRST_ITEM_INPUT) - .setSlotOverlaySteam(false, GT_UITextures.OVERLAY_SLOT_CRUSHED_ORE_STEAM) - .setSlotOverlaySteam(true, GT_UITextures.OVERLAY_SLOT_DUST_STEAM) - .setProgressBarSteam(GT_UITextures.PROGRESSBAR_MACERATE_STEAM); - public static final GT_Recipe_Map sChemicalBathRecipes = new GT_Recipe_Map( - new HashSet<>(2550), - "gt.recipe.chemicalbath", - null, - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "ChemicalBath"), - 1, - 3, - 1, - 1, - 1, - E, - 1, - E, - true, - true).setProgressBar(GT_UITextures.PROGRESSBAR_BATH, ProgressBar.Direction.CIRCULAR_CW) - .setRecipeConfigFile("chemicalbath", FIRST_ITEM_INPUT); - public static final GT_Recipe_Map sFluidCannerRecipes = new GT_Recipe_Map_FluidCanner( - new HashSet<>(2100), - "gt.recipe.fluidcanner", - null, - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "FluidCanner"), - 1, - 1, - 1, - 0, - 1, - E, - 1, - E, - true, - true).setSlotOverlay(false, false, GT_UITextures.OVERLAY_SLOT_CANISTER) - .setSlotOverlay(false, true, GT_UITextures.OVERLAY_SLOT_CANISTER) - .setRecipeConfigFile("canning", FIRST_ITEM_INPUT) - .setProgressBar(GT_UITextures.PROGRESSBAR_CANNER, ProgressBar.Direction.RIGHT); - public static final GT_Recipe_Map sBrewingRecipes = new GT_Recipe_Map( - new HashSet<>(450), - "gt.recipe.brewer", - "Brewing Machine", - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "PotionBrewer"), - 1, - 0, - 1, - 1, - 1, - E, - 1, - E, - true, - true).setSlotOverlay(false, false, GT_UITextures.OVERLAY_SLOT_CAULDRON) - .setRecipeConfigFile("brewing", FIRST_FLUIDSTACK_OUTPUT) - .setProgressBar(GT_UITextures.PROGRESSBAR_ARROW_MULTIPLE, ProgressBar.Direction.RIGHT); - public static final GT_Recipe_Map sFluidHeaterRecipes = new GT_Recipe_Map( - new HashSet<>(10), - "gt.recipe.fluidheater", - null, - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "FluidHeater"), - 1, - 0, - 0, - 0, - 1, - E, - 1, - E, - true, - true).setSlotOverlay(true, false, GT_UITextures.OVERLAY_SLOT_HEATER_1) - .setSlotOverlay(true, true, GT_UITextures.OVERLAY_SLOT_HEATER_2) - .setRecipeConfigFile("fluidheater", FIRST_FLUIDSTACK_OUTPUT) - .setProgressBar(GT_UITextures.PROGRESSBAR_ARROW_MULTIPLE, ProgressBar.Direction.RIGHT); - public static final GT_Recipe_Map sDistilleryRecipes = new GT_Recipe_Map( - new HashSet<>(400), - "gt.recipe.distillery", - null, - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Distillery"), - 1, - 1, - 1, - 1, - 1, - E, - 1, - E, - true, - true).setSlotOverlay(true, false, GT_UITextures.OVERLAY_SLOT_BEAKER_1) - .setSlotOverlay(true, true, GT_UITextures.OVERLAY_SLOT_BEAKER_2) - .setRecipeConfigFile("distillery", FIRST_FLUIDSTACK_OUTPUT) - .setRecipeSpecialHandler(r -> { - int aInput = r.mFluidInputs[0].amount, aOutput = r.mFluidOutputs[0].amount, aDuration = r.mDuration; - - // reduce the batch size if fluid amount is exceeding - int tScale = (Math.max(aInput, aOutput) + 999) / 1000; - if (tScale <= 0) tScale = 1; - if (tScale > 1) { - // trying to find whether there is a better factor - for (int i = tScale; i <= 5; i++) { - if (aInput % i == 0 && aDuration % i == 0) { - tScale = i; - break; - } - } - for (int i = tScale; i <= 5; i++) { - if (aInput % i == 0 && aDuration % i == 0 && aOutput % i == 0) { - tScale = i; - break; - } - } - aInput = (aInput + tScale - 1) / tScale; - aOutput = aOutput / tScale; - if (!isArrayEmptyOrNull(r.mOutputs)) { - ItemData tData = GT_OreDictUnificator.getItemData(r.mOutputs[0]); - if (tData != null && (tData.mPrefix == OrePrefixes.dust - || OrePrefixes.dust.mFamiliarPrefixes.contains(tData.mPrefix))) { - r.mOutputs[0] = GT_OreDictUnificator.getDust( - tData.mMaterial.mMaterial, - tData.mMaterial.mAmount * r.mOutputs[0].stackSize / tScale); - } else { - if (r.mOutputs[0].stackSize / tScale == 0) r.mOutputs[0] = GT_Values.NI; - else r.mOutputs[0] = GT_Utility - .copyAmount(r.mOutputs[0].stackSize / tScale, r.mOutputs[0]); - } - } - aDuration = (aDuration + tScale - 1) / tScale; - r.mFluidInputs[0] = GT_Utility.copyAmount(aInput, r.mFluidInputs[0]); - r.mFluidOutputs[0] = GT_Utility.copyAmount(aOutput, r.mFluidOutputs[0]); - r.mDuration = aDuration; - } - }) - .setProgressBar(GT_UITextures.PROGRESSBAR_ARROW_MULTIPLE, ProgressBar.Direction.RIGHT); - public static final GT_Recipe_Map sFermentingRecipes = new GT_Recipe_Map( - new HashSet<>(50), - "gt.recipe.fermenter", - null, - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Fermenter"), - 0, - 0, - 0, - 1, - 1, - E, - 1, - E, - true, - true).setProgressBar(GT_UITextures.PROGRESSBAR_ARROW_MULTIPLE, ProgressBar.Direction.RIGHT) - .setRecipeConfigFile("fermenting", FIRST_FLUIDSTACK_OUTPUT); - public static final GT_Recipe_Map sFluidSolidficationRecipes = new GT_Recipe_Map( - new HashSet<>(35000), - "gt.recipe.fluidsolidifier", - null, - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "FluidSolidifier"), - 1, - 1, - 1, - 1, - 1, - E, - 1, - E, - true, - true).setSlotOverlay(false, false, GT_UITextures.OVERLAY_SLOT_MOLD) - .setRecipeConfigFile("fluidsolidifier", FIRST_ITEM_OUTPUT) - .setRecipeSpecialHandler(r -> { - if (ArrayUtils.isNotEmpty(r.mFluidInputs)) { - if (Materials.PhasedGold.getMolten(1) - .isFluidEqual(r.mFluidInputs[0])) - r.mFluidInputs = new FluidStack[] { - Materials.VibrantAlloy.getMolten(r.mFluidInputs[0].amount) }; - else if (Materials.PhasedIron.getMolten(1) - .isFluidEqual(r.mFluidInputs[0])) - r.mFluidInputs = new FluidStack[] { - Materials.PulsatingIron.getMolten(r.mFluidInputs[0].amount) }; - } - }) - .setProgressBar(GT_UITextures.PROGRESSBAR_ARROW, ProgressBar.Direction.RIGHT); - public static final GT_Recipe_Map sFluidExtractionRecipes = new GT_Recipe_Map( - new HashSet<>(15000), - "gt.recipe.fluidextractor", - null, - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "FluidExtractor"), - 1, - 1, - 1, - 0, - 1, - E, - 1, - E, - true, - true).setSlotOverlay(false, false, GT_UITextures.OVERLAY_SLOT_CENTRIFUGE) - .setRecipeConfigFile("fluidextractor", FIRST_ITEM_INPUT) - .setRecipeSpecialHandler(r -> { - if (ArrayUtils.isNotEmpty(r.mFluidInputs)) { - if (Materials.PhasedGold.getMolten(1) - .isFluidEqual(r.mFluidInputs[0])) - r.mFluidInputs = new FluidStack[] { - Materials.VibrantAlloy.getMolten(r.mFluidInputs[0].amount) }; - else if (Materials.PhasedIron.getMolten(1) - .isFluidEqual(r.mFluidInputs[0])) - r.mFluidInputs = new FluidStack[] { - Materials.PulsatingIron.getMolten(r.mFluidInputs[0].amount) }; - } - }) - .setProgressBar(GT_UITextures.PROGRESSBAR_EXTRACT, ProgressBar.Direction.RIGHT); - public static final GT_Recipe_Map sBoxinatorRecipes = new GT_Recipe_Map( - new HashSet<>(2500), - "gt.recipe.packager", - null, - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Packager"), - 2, - 1, - 2, - 0, - 1, - E, - 1, - E, - true, - true).setSlotOverlay(false, false, false, GT_UITextures.OVERLAY_SLOT_BOX) - .setRecipeConfigFile("boxing", FIRST_ITEM_OUTPUT) - .setSlotOverlay(false, true, GT_UITextures.OVERLAY_SLOT_BOXED) - .setProgressBar(GT_UITextures.PROGRESSBAR_ARROW, ProgressBar.Direction.RIGHT); - public static final GT_Recipe_Map sUnboxinatorRecipes = new GT_Recipe_Map_Unboxinator( - new HashSet<>(2500), - "gt.recipe.unpackager", - null, - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Unpackager"), - 1, - 2, - 1, - 0, - 1, - E, - 1, - E, - true, - true).setSlotOverlay(false, false, GT_UITextures.OVERLAY_SLOT_BOXED) - .setRecipeConfigFile("unboxing", FIRST_ITEM_OUTPUT) - .setProgressBar(GT_UITextures.PROGRESSBAR_ARROW, ProgressBar.Direction.RIGHT); - /** - * Usually, but not always, you should use {@link GT_RecipeConstants#Fusion} instead. - */ - public static final GT_Recipe_Map sFusionRecipes = new GT_Recipe_Map_FluidOnly( - new HashSet<>(50), - "gt.recipe.fusionreactor", - "Fusion Reactor", - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "FusionReactor"), - 0, - 0, - 0, - 2, - 1, - "Start: ", - 1, - " EU", - true, - true).setProgressBar(GT_UITextures.PROGRESSBAR_ARROW, ProgressBar.Direction.RIGHT) - .useComparatorForNEI(true) - .setUsualFluidInputCount(2) - .setRecipeConfigFile("fusion", FIRST_FLUID_OUTPUT) - .setDisableOptimize(true) - .setNEISpecialInfoFormatter(FusionSpecialValueFormatter.INSTANCE); - /** - * Usually, but not always, you should use {@link GT_RecipeConstants#Fusion} instead. - */ - public static final GT_Recipe_Map sComplexFusionRecipes = new GT_Recipe_Map_ComplexFusion( - new HashSet<>(50), - "gt.recipe.complexfusionreactor", - "Complex Fusion Reactor", - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "ComplexFusionReactor"), - 3, - 0, - 0, - 2, - 1, - "Start: ", - 1, - " EU", - true, - true).setProgressBar(GT_UITextures.PROGRESSBAR_ARROW, ProgressBar.Direction.RIGHT) - .setUsualFluidInputCount(16) - .setUsualFluidOutputCount(16) - .setNEITransferRect(new Rectangle(79, 34, 18, 18)) - .setLogoPos(80, 61) - .setNEISpecialInfoFormatter(FusionSpecialValueFormatter.INSTANCE) - .setDisableOptimize(true); - public static final GT_Recipe_Map sCentrifugeRecipes = new GT_Recipe_Map( - new HashSet<>(1200), - "gt.recipe.centrifuge", - null, - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Centrifuge"), - 2, - 6, - 0, - 0, - 1, - E, - 1, - E, - true, - true).setSlotOverlay(false, false, true, GT_UITextures.OVERLAY_SLOT_CENTRIFUGE) - .setRecipeConfigFile("centrifuge", FIRST_ITEM_OR_FLUID_INPUT) - .setSlotOverlay(false, false, false, GT_UITextures.OVERLAY_SLOT_CANISTER) - .setSlotOverlay(true, false, GT_UITextures.OVERLAY_SLOT_CENTRIFUGE_FLUID) - .setProgressBar(GT_UITextures.PROGRESSBAR_EXTRACT, ProgressBar.Direction.RIGHT); - public static final GT_Recipe_Map sElectrolyzerRecipes = new GT_Recipe_Map( - new HashSet<>(300), - "gt.recipe.electrolyzer", - null, - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Electrolyzer"), - 2, - 6, - 0, - 0, - 1, - E, - 1, - E, - true, - true).setSlotOverlay(false, false, true, GT_UITextures.OVERLAY_SLOT_CHARGER) - .setRecipeConfigFile("electrolyzer", FIRST_ITEM_OR_FLUID_INPUT) - .setSlotOverlay(false, false, false, GT_UITextures.OVERLAY_SLOT_CANISTER) - .setSlotOverlay(true, false, GT_UITextures.OVERLAY_SLOT_CHARGER_FLUID) - .setProgressBar(GT_UITextures.PROGRESSBAR_EXTRACT, ProgressBar.Direction.RIGHT); - /** - * Use {@link GT_RecipeConstants#COIL_HEAT} as heat level. - */ - public static final GT_Recipe_Map sBlastRecipes = new GT_Recipe_Map( - new HashSet<>(800), - "gt.recipe.blastfurnace", - "Blast Furnace", - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Default"), - 6, - 6, - 1, - 0, - 1, - "Heat Capacity: ", - 1, - " K", - false, - true).setProgressBar(GT_UITextures.PROGRESSBAR_ARROW, ProgressBar.Direction.RIGHT) - .setRecipeConfigFile("blastfurnace", FIRST_ITEM_INPUT) - .setNEISpecialInfoFormatter(HeatingCoilSpecialValueFormatter.INSTANCE); - /** - * Use {@link GT_RecipeConstants#COIL_HEAT} as heat level. - */ - public static final GT_Recipe_Map sPlasmaForgeRecipes = new GT_Recipe_Map_LargeNEI( - new HashSet<>(20), - "gt.recipe.plasmaforge", - "DTPF", - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "PlasmaForge"), - 9, - 9, - 0, - 0, - 1, - "Heat Capacity: ", - 1, - " K", - false, - true).setProgressBar(GT_UITextures.PROGRESSBAR_ARROW, ProgressBar.Direction.RIGHT) - .setUsualFluidInputCount(9) - .setUsualFluidOutputCount(9) - .setDisableOptimize(true) - .setNEISpecialInfoFormatter(HeatingCoilSpecialValueFormatter.INSTANCE); - - public static final GT_Recipe_Map sTranscendentPlasmaMixerRecipes = new TranscendentPlasmaMixerRecipeMap( - new HashSet<>(20), - "gt.recipe.transcendentplasmamixerrecipes", - "Transcendent Plasma Mixer", - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "PlasmaForge"), - 1, - 0, - 0, - 0, - 1, - "", - 0, - "", - false, - true).setDisableOptimize(true); - - public static class GT_FakeSpaceProjectRecipe extends GT_Recipe { - - public final String projectName; - - public GT_FakeSpaceProjectRecipe(boolean aOptimize, ItemStack[] aInputs, FluidStack[] aFluidInputs, - int aDuration, int aEUt, int aSpecialValue, String projectName) { - super(aOptimize, aInputs, null, null, null, aFluidInputs, null, aDuration, aEUt, aSpecialValue); - this.projectName = projectName; - } - } - - public static final GT_Recipe_Map sFakeSpaceProjectRecipes = new GT_Recipe_Map( - new HashSet<>(20), - "gt.recipe.fakespaceprojects", - "Space Projects", - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Default"), - 12, - 0, - 0, - 0, - 1, - translateToLocal("gt.specialvalue.stages") + " ", - 1, - "", - false, - true) { - - IDrawable projectTexture; - - @Override - public ModularWindow.Builder createNEITemplate(IItemHandlerModifiable itemInputsInventory, - IItemHandlerModifiable itemOutputsInventory, IItemHandlerModifiable specialSlotInventory, - IItemHandlerModifiable fluidInputsInventory, IItemHandlerModifiable fluidOutputsInventory, - Supplier<Float> progressSupplier, Pos2d windowOffset) { - ModularWindow.Builder builder = super.createNEITemplate( - itemInputsInventory, - itemOutputsInventory, - specialSlotInventory, - fluidInputsInventory, - fluidOutputsInventory, - progressSupplier, - windowOffset); - addRecipeSpecificDrawable( - builder, - windowOffset, - () -> projectTexture, - new Pos2d(124, 28), - new Size(18, 18)); - return builder; - } - - @Override - public List<Pos2d> getItemInputPositions(int itemInputCount) { - return UIHelper.getGridPositions(itemInputCount, 16, 28, 3); - } - - @Override - public List<Pos2d> getFluidInputPositions(int fluidInputCount) { - return UIHelper.getGridPositions(fluidInputCount, 88, 28, 1); - } - - @Override - protected List<String> handleNEIItemInputTooltip(List<String> currentTip, - GT_NEI_DefaultHandler.FixedPositionedStack pStack) { - super.handleNEIItemOutputTooltip(currentTip, pStack); - if (pStack.item != null && pStack.item.getItem() instanceof GT_FluidDisplayItem) return currentTip; - currentTip.add(GRAY + translateToLocal("Item Count: ") + formatNumbers(pStack.realStackSize)); - return currentTip; - } - - @Override - public void drawNEIOverlays(GT_NEI_DefaultHandler.CachedDefaultRecipe neiCachedRecipe) { - for (PositionedStack stack : neiCachedRecipe.mInputs) { - if (stack instanceof GT_NEI_DefaultHandler.FixedPositionedStack && stack.item != null - && !(stack.item.getItem() instanceof GT_FluidDisplayItem)) { - int stackSize = ((GT_NEI_DefaultHandler.FixedPositionedStack) stack).realStackSize; - String displayString; - if (stack.item.stackSize > 9999) { - displayString = ReadableNumberConverter.INSTANCE.toWideReadableForm(stackSize); - } else { - displayString = String.valueOf(stackSize); - } - drawNEIOverlayText(displayString, stack, 0xffffff, 0.5f, true, Alignment.BottomRight); - } - } - if (neiCachedRecipe.mRecipe instanceof GT_FakeSpaceProjectRecipe) { - ISpaceProject project = SpaceProjectManager - .getProject(((GT_FakeSpaceProjectRecipe) neiCachedRecipe.mRecipe).projectName); - if (project != null) { - projectTexture = project.getTexture(); - GuiDraw - .drawStringC(EnumChatFormatting.BOLD + project.getLocalizedName(), 85, 0, 0x404040, false); - } - } - } - - @Override - public void addProgressBarUI(ModularWindow.Builder builder, Supplier<Float> progressSupplier, - Pos2d windowOffset) { - int bar1Width = 17; - int bar2Width = 18; - builder.widget( - new ProgressBar().setTexture(GT_UITextures.PROGRESSBAR_ASSEMBLY_LINE_1, 17) - .setDirection(ProgressBar.Direction.RIGHT) - .setProgress(() -> progressSupplier.get() * ((float) (bar1Width + bar2Width) / bar1Width)) - .setSynced(false, false) - .setPos(new Pos2d(70, 28).add(windowOffset)) - .setSize(bar1Width, 72)); - builder.widget( - new ProgressBar().setTexture(GT_UITextures.PROGRESSBAR_ASSEMBLY_LINE_2, 18) - .setDirection(ProgressBar.Direction.RIGHT) - .setProgress( - () -> (progressSupplier.get() - ((float) bar1Width / (bar1Width + bar2Width))) - * ((float) (bar1Width + bar2Width) / bar2Width)) - .setSynced(false, false) - .setPos(new Pos2d(106, 28).add(windowOffset)) - .setSize(bar2Width, 72)); - } - }.useModularUI(true) - .setRenderRealStackSizes(false) - .setUsualFluidInputCount(4) - .setNEIBackgroundOffset(2, 23) - .setLogoPos(152, 83) - .setDisableOptimize(true); - - public static class TranscendentPlasmaMixerRecipeMap extends GT_Recipe_Map { - - public TranscendentPlasmaMixerRecipeMap(Collection<GT_Recipe> aRecipeList, String aUnlocalizedName, - String aLocalName, String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, - int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, - int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, - boolean aNEIAllowed) { - super( - aRecipeList, - aUnlocalizedName, - aLocalName, - aNEIName, - aNEIGUIPath, - aUsualInputCount, - aUsualOutputCount, - aMinimalInputItems, - aMinimalInputFluids, - aAmperage, - aNEISpecialValuePre, - aNEISpecialValueMultiplier, - aNEISpecialValuePost, - aShowVoltageAmperageInNEI, - aNEIAllowed); - useModularUI(true); - setUsualFluidInputCount(20); - setUsualFluidOutputCount(1); - setProgressBarPos(86, 44); - setNEITransferRect( - new Rectangle( - progressBarPos.x - (16 / 2), - progressBarPos.y, - progressBarSize.width + 16, - progressBarSize.height)); - setLogoPos(87, 99); - setNEIBackgroundSize(172, 118); - } - - @Override - public List<Pos2d> getItemInputPositions(int itemInputCount) { - return UIHelper.getGridPositions(itemInputCount, 60, 8, 1); - } - - @Override - public List<Pos2d> getFluidInputPositions(int fluidInputCount) { - return UIHelper.getGridPositions(fluidInputCount, 6, 26, 4, 5); - } - - @Override - public List<Pos2d> getFluidOutputPositions(int fluidOutputCount) { - return UIHelper.getGridPositions(fluidOutputCount, 114, 44, 1); - } - - @Override - protected void drawNEIEnergyInfo(NEIRecipeInfo recipeInfo) { - // These look odd because recipeInfo.recipe.mEUt is actually the EU per litre of fluid processed, not - // the EU/t. - drawNEIText( - recipeInfo, - GT_Utility.trans("152", "Total: ") - + formatNumbers(1000L * recipeInfo.recipe.mDuration / 100L * recipeInfo.recipe.mEUt) - + " EU"); - // 1000 / (20 ticks * 5 seconds) = 10L/t. 10L/t * x EU/L = 10 * x EU/t. - long averageUsage = 10L * recipeInfo.recipe.mEUt; - drawNEIText( - recipeInfo, - "Average: " + formatNumbers(averageUsage) - + " EU/t" - + GT_Utility.getTierNameWithParentheses(averageUsage)); - } - } - - /** - * Uses {@link GT_RecipeConstants#ADDITIVE_AMOUNT} for coal/charcoal amount. - */ - public static final GT_Recipe_Map sPrimitiveBlastRecipes = new GT_Recipe_Map( - new HashSet<>(200), - "gt.recipe.primitiveblastfurnace", - "Primitive Blast Furnace", - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Default"), - 3, - 3, - 1, - 0, - 1, - E, - 1, - E, - false, - true).setProgressBar(GT_UITextures.PROGRESSBAR_ARROW, ProgressBar.Direction.RIGHT) - .setRecipeEmitter(builder -> { - Optional<GT_Recipe> rr = builder.validateInputCount(1, 2) - .validateOutputCount(1, 2) - .validateNoInputFluid() - .validateNoOutputFluid() - .noOptimize() - .build(); - if (!rr.isPresent()) return Collections.emptyList(); - ItemStack aInput1 = builder.getItemInputBasic(0); - ItemStack aInput2 = builder.getItemInputBasic(1); - ItemStack aOutput1 = builder.getItemOutput(0); - ItemStack aOutput2 = builder.getItemOutput(1); - if ((aInput1 == null && aInput2 == null) || (aOutput1 == null && aOutput2 == null)) - return Collections.emptyList(); - int aCoalAmount = builder.getMetadata(ADDITIVE_AMOUNT); - if (aCoalAmount <= 0) return Collections.emptyList(); - GT_RecipeTemplate coll = asTemplate(rr.get()); - for (Materials coal : new Materials[] { Materials.Coal, Materials.Charcoal }) { - coll.derive() - .setInputs(aInput1, aInput2, coal.getGems(aCoalAmount)) - .setOutputs(aOutput1, aOutput2, Materials.DarkAsh.getDustTiny(aCoalAmount)); - coll.derive() - .setInputs(aInput1, aInput2, coal.getDust(aCoalAmount)) - .setOutputs(aOutput1, aOutput2, Materials.DarkAsh.getDustTiny(aCoalAmount)); - } - int aDuration = builder.duration; - if (Railcraft.isModLoaded()) { - coll.derive() - .setInputs(aInput1, aInput2, RailcraftToolItems.getCoalCoke(aCoalAmount / 2)) - .setOutputs(aOutput1, aOutput2, Materials.Ash.getDustTiny(aCoalAmount / 2)) - .setDuration(aDuration * 2 / 3); - } - if (GTPlusPlus.isModLoaded()) { - ItemStack cactusCoke = GT_ModHandler - .getModItem(GTPlusPlus.ID, "itemCactusCoke", aCoalAmount * 2L); - ItemStack sugarCoke = GT_ModHandler - .getModItem(GTPlusPlus.ID, "itemSugarCoke", aCoalAmount * 2L); - coll.derive() - .setInputs(aInput1, aInput2, cactusCoke) - .setOutputs(aOutput1, aOutput2, Materials.Ash.getDustTiny(aCoalAmount * 2)) - .setDuration(aDuration * 2 / 3); - coll.derive() - .setInputs(aInput1, aInput2, sugarCoke) - .setOutputs(aOutput1, aOutput2, Materials.Ash.getDustTiny(aCoalAmount * 2)) - .setDuration(aDuration * 2 / 3); - } - if ((aInput1 == null || aInput1.stackSize <= 6) && (aInput2 == null || aInput2.stackSize <= 6) - && (aOutput1 == null || aOutput1.stackSize <= 6) - && (aOutput2 == null || aOutput2.stackSize <= 6)) { - // we don't use GT_Utility.mul() here. It does not have the truncating we need here. - aInput1 = GT_Utility.multiplyStack(10, aInput1); - aInput2 = GT_Utility.multiplyStack(10, aInput2); - aOutput1 = GT_Utility.multiplyStack(10, aOutput1); - aOutput2 = GT_Utility.multiplyStack(10, aOutput2); - for (Materials coal : new Materials[] { Materials.Coal, Materials.Charcoal }) { - coll.derive() - .setInputs(aInput1, aInput2, coal.getBlocks(aCoalAmount)) - .setOutputs(aOutput1, aOutput2, Materials.DarkAsh.getDust(aCoalAmount)) - .setDuration(aDuration * 10); - coll.derive() - .setInputs(aInput1, aInput2, coal.getBlocks(aCoalAmount)) - .setOutputs(aOutput1, aOutput2, Materials.DarkAsh.getDust(aCoalAmount)) - .setDuration(aDuration * 10); - } - if (Railcraft.isModLoaded()) { - coll.derive() - .setInputs(aInput1, aInput2, EnumCube.COKE_BLOCK.getItem(aCoalAmount / 2)) - .setOutputs(aOutput1, aOutput2, Materials.Ash.getDust(aCoalAmount / 2)) - .setDuration(aDuration * 20 / 3); - } - } - return coll.getAll(); - }) - .setRecipeConfigFile("primitiveblastfurnace", FIRST_ITEM_INPUT); - /** - * Uses {@link GT_RecipeConstants#ADDITIVE_AMOUNT} for TNT/ITNT/... amount. Value is truncated to [0, 64] - */ - public static final GT_Recipe_Map sImplosionRecipes = new GT_Recipe_Map( - new HashSet<>(900), - "gt.recipe.implosioncompressor", - "Implosion Compressor", - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Default"), - 2, - 2, - 2, - 0, - 1, - E, - 1, - E, - true, - true).setSlotOverlay(false, false, true, GT_UITextures.OVERLAY_SLOT_IMPLOSION) - .setSlotOverlay(false, false, false, GT_UITextures.OVERLAY_SLOT_EXPLOSIVE) - .setRecipeConfigFile("implosion", FIRST_ITEM_INPUT) - .setRecipeEmitter(b -> { - switch (b.getItemInputsBasic().length) { - case 0: - return Collections.emptyList(); - case 1: - break; - default: - return b.build() - .map(Collections::singletonList) - .orElse(Collections.emptyList()); - } - Optional<GT_Recipe> t = b.noOptimize() - .duration(20) - .eut(30) - .validateInputCount(1, 1) - .validateOutputCount(1, 2) - .build(); - if (!t.isPresent()) return Collections.emptyList(); - ItemStack input = b.getItemInputBasic(0); - GT_RecipeTemplate coll = asTemplate(t.get()); - int tExplosives = Math.min(b.getMetadata(ADDITIVE_AMOUNT), 64); - int tGunpowder = tExplosives << 1; // Worst - int tDynamite = Math.max(1, tExplosives >> 1); // good - @SuppressWarnings("UnnecessaryLocalVariable") - int tTNT = tExplosives; // Slightly better - int tITNT = Math.max(1, tExplosives >> 2); // the best - if (tGunpowder < 65) coll.derive() - .setInputs(input, ItemList.Block_Powderbarrel.get(tGunpowder)); - if (tDynamite < 17) coll.derive() - .setInputs(input, GT_ModHandler.getIC2Item("dynamite", tDynamite, null)); - coll.derive() - .setInputs(input, new ItemStack(Blocks.tnt, tTNT)); - coll.derive() - .setInputs(input, GT_ModHandler.getIC2Item("industrialTnt", tITNT, null)); - return coll.getAll(); - }) - .setDisableOptimize(true) - .setProgressBar(GT_UITextures.PROGRESSBAR_COMPRESS, ProgressBar.Direction.RIGHT); - public static final GT_Recipe_Map sVacuumRecipes = new GT_Recipe_Map( - new HashSet<>(305), - "gt.recipe.vacuumfreezer", - "Vacuum Freezer", - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Default"), - 1, - 1, - 0, - 0, - 1, - E, - 1, - E, - false, - true).setProgressBar(GT_UITextures.PROGRESSBAR_ARROW, ProgressBar.Direction.RIGHT) - .setRecipeConfigFile("vacuumfreezer", FIRST_ITEM_INPUT) - .setRecipeEmitter(b -> { - b.noOptimize(); - FluidStack in, out; - if (isArrayOfLength(b.getItemInputsBasic(), 1) && isArrayOfLength(b.getItemOutputs(), 1) - && isArrayEmptyOrNull(b.getFluidInputs()) - && isArrayEmptyOrNull(b.getFluidOutputs()) - && (in = GT_Utility.getFluidForFilledItem(b.getItemInputBasic(0), true)) != null - && (out = GT_Utility.getFluidForFilledItem(b.getItemOutput(0), true)) != null) { - return Arrays.asList( - b.build() - .get(), - b.itemInputs() - .itemOutputs() - .fluidInputs(in) - .fluidOutputs(out) - .build() - .get()); - } - return buildOrEmpty(b); - }) - .setUsualFluidInputCount(2); - /** - * using {@code .addTo(sChemicalRecipes)} will cause the recipe to be added to single block recipe map ONLY! - * use {@link GT_RecipeConstants#UniversalChemical} to add to both. - */ - public static final GT_Recipe_Map sChemicalRecipes = new GT_Recipe_Map( - new HashSet<>(1170), - "gt.recipe.chemicalreactor", - null, - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "ChemicalReactor"), - 2, - 2, - 1, - 0, - 1, - E, - 1, - E, - true, - true).setSlotOverlay(false, false, true, GT_UITextures.OVERLAY_SLOT_MOLECULAR_1) - .setSlotOverlay(false, false, false, GT_UITextures.OVERLAY_SLOT_MOLECULAR_2) - .setSlotOverlay(true, false, GT_UITextures.OVERLAY_SLOT_MOLECULAR_3) - .setSlotOverlay(false, true, GT_UITextures.OVERLAY_SLOT_VIAL_1) - .setSlotOverlay(true, true, GT_UITextures.OVERLAY_SLOT_VIAL_2) - .setRecipeConfigFile("chemicalreactor", FIRST_ITEM_OR_FLUID_OUTPUT) - .setProgressBar(GT_UITextures.PROGRESSBAR_ARROW_MULTIPLE, ProgressBar.Direction.RIGHT) - .setDisableOptimize(true); - /** - * using {@code .addTo(sMultiblockChemicalRecipes)} will cause the recipe to be added to multiblock recipe map - * ONLY! - * use {@link GT_RecipeConstants#UniversalChemical} to add to both. - */ - public static final GT_Recipe_Map sMultiblockChemicalRecipes = // - new GT_Recipe_Map_LargeChemicalReactor() - .setProgressBar(GT_UITextures.PROGRESSBAR_ARROW_MULTIPLE, ProgressBar.Direction.RIGHT) - .setUsualFluidInputCount(6) - .setUsualFluidOutputCount(6) - .setDisableOptimize(true); - public static final GT_Recipe_Map sDistillationRecipes = // - new GT_Recipe_Map_DistillationTower().setRecipeConfigFile("distillation", FIRST_FLUIDSTACK_INPUT) - .setProgressBar(GT_UITextures.PROGRESSBAR_ARROW_MULTIPLE, ProgressBar.Direction.RIGHT) - .setUsualFluidOutputCount(11) - .setDisableOptimize(true); - public static final GT_Recipe_Map_OilCracker sCrackingRecipes = (GT_Recipe_Map_OilCracker) // - new GT_Recipe_Map_OilCracker().setRecipeConfigFile("cracking", FIRST_FLUIDSTACK_INPUT) - .setProgressBar(GT_UITextures.PROGRESSBAR_ARROW_MULTIPLE, ProgressBar.Direction.RIGHT) - .setUsualFluidInputCount(2); - /** - * @deprecated Use sCrackingRecipes instead - */ - @Deprecated - public static final GT_Recipe_Map sCrakingRecipes = sCrackingRecipes; - - public static final GT_Recipe_Map sPyrolyseRecipes = new GT_Recipe_Map( - new HashSet<>(150), - "gt.recipe.pyro", - "Pyrolyse Oven", - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Default"), - 2, - 1, - 1, - 0, - 1, - E, - 1, - E, - true, - true).setProgressBar(GT_UITextures.PROGRESSBAR_ARROW, ProgressBar.Direction.RIGHT) - .setDisableOptimize(true) - .setRecipeConfigFile("pyrolyse", FIRST_ITEM_INPUT); - public static final GT_Recipe_Map sWiremillRecipes = new GT_Recipe_Map( - new HashSet<>(450), - "gt.recipe.wiremill", - null, - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Wiremill"), - 2, - 1, - 1, - 0, - 1, - E, - 1, - E, - true, - true).setSlotOverlay(false, false, GT_UITextures.OVERLAY_SLOT_WIREMILL) - .setRecipeConfigFile("wiremill", FIRST_ITEM_INPUT) - .setProgressBar(GT_UITextures.PROGRESSBAR_WIREMILL, ProgressBar.Direction.RIGHT); - public static final GT_Recipe_Map sBenderRecipes = new GT_Recipe_Map( - new HashSet<>(5000), - "gt.recipe.metalbender", - null, - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Bender"), - 2, - 1, - 2, - 0, - 1, - E, - 1, - E, - true, - true).setSlotOverlay(false, false, GT_UITextures.OVERLAY_SLOT_BENDER) - .setRecipeConfigFile("bender", FIRST_ITEM_INPUT) - .setProgressBar(GT_UITextures.PROGRESSBAR_BENDING, ProgressBar.Direction.RIGHT); - public static final GT_Recipe_Map sAlloySmelterRecipes = new GT_Recipe_Map( - new HashSet<>(12000), - "gt.recipe.alloysmelter", - null, - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "AlloySmelter"), - 2, - 1, - 2, - 0, - 1, - E, - 1, - E, - true, - true).setSlotOverlay(false, false, GT_UITextures.OVERLAY_SLOT_FURNACE) - .setRecipeEmitter(b -> { - if (Materials.Graphite.contains(b.getItemInputBasic(0))) return Collections.emptyList(); - if (GT_Utility.isArrayOfLength(b.getItemInputsBasic(), 1)) { - ItemStack aInput1 = b.getItemInputBasic(0); - if (((OrePrefixes.ingot.contains(aInput1)) || (OrePrefixes.dust.contains(aInput1)) - || (OrePrefixes.gem.contains(aInput1)))) return Collections.emptyList(); - } - return buildOrEmpty( - b.validateNoInputFluid() - .validateNoOutputFluid() - .validateInputCount(1, 2) - .validateOutputCount(1, 1)); - }) - .setRecipeConfigFile( - "alloysmelting", - r -> GT_Config - .getStackConfigName(GT_Utility.isArrayOfLength(r.mInputs, 1) ? r.mInputs[0] : r.mOutputs[0])) - .setProgressBar(GT_UITextures.PROGRESSBAR_ARROW, ProgressBar.Direction.RIGHT) - .setSlotOverlaySteam(false, GT_UITextures.OVERLAY_SLOT_FURNACE_STEAM) - .setProgressBarSteam(GT_UITextures.PROGRESSBAR_ARROW_STEAM); - public static final GT_Recipe_Map sAssemblerRecipes = new GT_Recipe_Map_Assembler( - new HashSet<>(8200), - "gt.recipe.assembler", - null, - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Assembler2"), - 9, - 1, - 1, - 0, - 1, - E, - 1, - E, - true, - true).setSlotOverlay(false, false, GT_UITextures.OVERLAY_SLOT_CIRCUIT) - .setRecipeConfigFile("assembling", FIRST_ITEM_OUTPUT) - .setProgressBar(GT_UITextures.PROGRESSBAR_ASSEMBLE, ProgressBar.Direction.RIGHT) - .setDisableOptimize(true); - public static final GT_Recipe_Map sCircuitAssemblerRecipes = new GT_Recipe_Map_Assembler( - new HashSet<>(605), - "gt.recipe.circuitassembler", - null, - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "CircuitAssembler"), - 6, - 1, - 1, - 0, - 1, - E, - 1, - E, - true, - true).setNEIUnificateOutput(!NEICustomDiagrams.isModLoaded()) - .setRecipeConfigFile("circuitassembler", FIRST_ITEM_OUTPUT) - .setSlotOverlay(false, false, GT_UITextures.OVERLAY_SLOT_CIRCUIT) - .setProgressBar(GT_UITextures.PROGRESSBAR_CIRCUIT_ASSEMBLER, ProgressBar.Direction.RIGHT); - public static final GT_Recipe_Map sCannerRecipes = new GT_Recipe_Map( - new HashSet<>(900), - "gt.recipe.canner", - null, - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Canner"), - 2, - 2, - 1, - 0, - 1, - E, - 1, - E, - true, - true).setSlotOverlay(false, false, true, GT_UITextures.OVERLAY_SLOT_CANNER) - .setRecipeConfigFile("canning", FIRST_ITEM_INPUT) - .setSlotOverlay(false, false, false, GT_UITextures.OVERLAY_SLOT_CANISTER) - .setProgressBar(GT_UITextures.PROGRESSBAR_CANNER, ProgressBar.Direction.RIGHT); - @Deprecated - public static final GT_Recipe_Map sCNCRecipes = new GT_Recipe_Map( - new HashSet<>(100), - "gt.recipe.cncmachine", - "CNC Machine", - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Default"), - 2, - 1, - 2, - 1, - 1, - E, - 1, - E, - true, - true).setProgressBar(GT_UITextures.PROGRESSBAR_ARROW, ProgressBar.Direction.RIGHT); - public static final GT_Recipe_Map sLatheRecipes = new GT_Recipe_Map( - new HashSet<>(1150), - "gt.recipe.lathe", - null, - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Lathe"), - 1, - 2, - 1, - 0, - 1, - E, - 1, - E, - true, - true).setSlotOverlay(false, false, GT_UITextures.OVERLAY_SLOT_ROD_1) - .setSlotOverlay(false, true, true, GT_UITextures.OVERLAY_SLOT_ROD_2) - .setSlotOverlay(false, true, false, GT_UITextures.OVERLAY_SLOT_DUST) - .setRecipeConfigFile("lathe", FIRST_ITEM_INPUT) - .setProgressBar(GT_UITextures.PROGRESSBAR_LATHE, ProgressBar.Direction.RIGHT) - .addSpecialTexture(5, 18, 98, 24, GT_UITextures.PROGRESSBAR_LATHE_BASE); - public static final GT_Recipe_Map sCutterRecipes = new GT_Recipe_Map( - new HashSet<>(5125), - "gt.recipe.cuttingsaw", - null, - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Cutter4"), - 2, - 4, - 1, - 1, - 1, - E, - 1, - E, - true, - true).setSlotOverlay(false, false, GT_UITextures.OVERLAY_SLOT_BOX) - .setSlotOverlay(false, true, true, GT_UITextures.OVERLAY_SLOT_CUTTER_SLICED) - .setSlotOverlay(false, true, false, GT_UITextures.OVERLAY_SLOT_DUST) - .setRecipeEmitter(b -> { - b.validateInputCount(1, 2) - .validateOutputCount(1, 4) - .validateNoOutputFluid(); - if ((b.getFluidInputs() != null && b.getFluidInputs().length > 0) || !b.isValid()) - return buildOrEmpty(b.validateInputFluidCount(1, 1)); - int aDuration = b.getDuration(), aEUt = b.getEUt(); - Collection<GT_Recipe> ret = new ArrayList<>(); - b.copy() - .fluidInputs(Materials.Water.getFluid(GT_Utility.clamp(aDuration * aEUt / 320, 4, 1000))) - .duration(aDuration * 2) - .build() - .ifPresent(ret::add); - b.copy() - .fluidInputs(GT_ModHandler.getDistilledWater(GT_Utility.clamp(aDuration * aEUt / 426, 3, 750))) - .duration(aDuration * 2) - .build() - .ifPresent(ret::add); - b.fluidInputs(Materials.Lubricant.getFluid(GT_Utility.clamp(aDuration * aEUt / 1280, 1, 250))) - .duration(aDuration) - .build() - .ifPresent(ret::add); - return ret; - }) - .setRecipeConfigFile("cutting", FIRST_ITEM_INPUT) - .setProgressBar(GT_UITextures.PROGRESSBAR_CUT, ProgressBar.Direction.RIGHT); - public static final GT_Recipe_Map sSlicerRecipes = new GT_Recipe_Map( - new HashSet<>(20), - "gt.recipe.slicer", - null, - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Slicer"), - 2, - 1, - 2, - 0, - 1, - E, - 1, - E, - true, - true).setSlotOverlay(false, false, true, GT_UITextures.OVERLAY_SLOT_SQUARE) - .setSlotOverlay(false, false, false, GT_UITextures.OVERLAY_SLOT_SLICE_SHAPE) - .setSlotOverlay(false, true, GT_UITextures.OVERLAY_SLOT_SLICER_SLICED) - .setRecipeConfigFile("slicer", FIRST_ITEM_OUTPUT) - .setProgressBar(GT_UITextures.PROGRESSBAR_SLICE, ProgressBar.Direction.RIGHT); - public static final GT_Recipe_Map sExtruderRecipes = new GT_Recipe_Map( - new HashSet<>(13000), - "gt.recipe.extruder", - null, - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Extruder"), - 2, - 1, - 2, - 0, - 1, - E, - 1, - E, - true, - true).setSlotOverlay(false, false, false, GT_UITextures.OVERLAY_SLOT_EXTRUDER_SHAPE) - .setRecipeConfigFile("extruder", FIRST_ITEM_OUTPUT) - .setProgressBar(GT_UITextures.PROGRESSBAR_EXTRUDE, ProgressBar.Direction.RIGHT); - - public static final GT_Recipe_Map sHammerRecipes = new GT_Recipe_Map( - new HashSet<>(3800), - "gt.recipe.hammer", - null, - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Hammer"), - 2, - 2, - 1, - 0, - 1, - E, - 1, - E, - true, - true).setUsualFluidInputCount(2) - .setUsualFluidOutputCount(2) - .setSlotOverlay(false, false, GT_UITextures.OVERLAY_SLOT_HAMMER) - .setRecipeConfigFile("forgehammer", FIRST_ITEM_OUTPUT) - .setProgressBar(GT_UITextures.PROGRESSBAR_HAMMER, ProgressBar.Direction.DOWN) - .addSpecialTexture(20, 6, 78, 42, GT_UITextures.PROGRESSBAR_HAMMER_BASE) - .setSlotOverlaySteam(false, GT_UITextures.OVERLAY_SLOT_HAMMER_STEAM) - .setProgressBarSteam(GT_UITextures.PROGRESSBAR_HAMMER_STEAM) - .addSpecialTextureSteam(20, 6, 78, 42, GT_UITextures.PROGRESSBAR_HAMMER_BASE_STEAM); - public static final GT_Recipe_Map sAmplifiers = new GT_Recipe_Map( - new HashSet<>(2), - "gt.recipe.uuamplifier", - null, - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Amplifabricator"), - 1, - 0, - 1, - 0, - 1, - E, - 1, - E, - true, - true).setSlotOverlay(false, false, GT_UITextures.OVERLAY_SLOT_CENTRIFUGE) - .setSlotOverlay(true, true, GT_UITextures.OVERLAY_SLOT_UUA) - .setRecipeConfigFile("amplifier", FIRST_ITEM_INPUT) - .setProgressBar(GT_UITextures.PROGRESSBAR_EXTRACT, ProgressBar.Direction.RIGHT); - public static final GT_Recipe_Map sMassFabFakeRecipes = new GT_Recipe_Map( - new HashSet<>(2), - "gt.recipe.massfab", - null, - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Massfabricator"), - 1, - 0, - 1, - 0, - 8, - E, - 1, - E, - true, - true).setSlotOverlay(true, false, GT_UITextures.OVERLAY_SLOT_UUA) - .setSlotOverlay(true, true, GT_UITextures.OVERLAY_SLOT_UUM) - .setProgressBar(GT_UITextures.PROGRESSBAR_ARROW, ProgressBar.Direction.RIGHT); - public static final GT_Recipe_Map_Fuel sDieselFuels = (GT_Recipe_Map_Fuel) new GT_Recipe_Map_Fuel( - new HashSet<>(20), - "gt.recipe.dieselgeneratorfuel", - "Combustion Generator Fuels", - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Default"), - 1, - 1, - 0, - 0, - 1, - "Fuel Value: ", - 1000, - " EU", - true, - true).setProgressBar(GT_UITextures.PROGRESSBAR_ARROW, ProgressBar.Direction.RIGHT); - public static final GT_Recipe_Map_Fuel sExtremeDieselFuels = (GT_Recipe_Map_Fuel) new GT_Recipe_Map_Fuel( - new HashSet<>(20), - "gt.recipe.extremedieselgeneratorfuel", - "Extreme Diesel Engine Fuel", - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Default"), - 1, - 1, - 0, - 0, - 1, - "Fuel Value: ", - 1000, - " EU", - true, - true).setProgressBar(GT_UITextures.PROGRESSBAR_ARROW, ProgressBar.Direction.RIGHT); - public static final GT_Recipe_Map_Fuel sTurbineFuels = (GT_Recipe_Map_Fuel) new GT_Recipe_Map_Fuel( - new HashSet<>(25), - "gt.recipe.gasturbinefuel", - "Gas Turbine Fuel", - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Default"), - 1, - 1, - 0, - 0, - 1, - "Fuel Value: ", - 1000, - " EU", - true, - true).setProgressBar(GT_UITextures.PROGRESSBAR_ARROW, ProgressBar.Direction.RIGHT); - public static final GT_Recipe_Map_Fuel sHotFuels = new GT_Recipe_Map_Fuel( - new HashSet<>(10), - "gt.recipe.thermalgeneratorfuel", - "Thermal Generator Fuels", - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Default"), - 1, - 1, - 0, - 0, - 1, - "Fuel Value: ", - 1000, - " EU", - true, - false); - public static final GT_Recipe_Map_Fuel sDenseLiquidFuels = (GT_Recipe_Map_Fuel) new GT_Recipe_Map_Fuel( - new HashSet<>(15), - "gt.recipe.semifluidboilerfuels", - "Semifluid Boiler Fuels", - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Default"), - 1, - 1, - 0, - 0, - 1, - "Fuel Value: ", - 1000, - " EU", - true, - true).setProgressBar(GT_UITextures.PROGRESSBAR_ARROW, ProgressBar.Direction.RIGHT); - public static final GT_Recipe_Map_Fuel sPlasmaFuels = (GT_Recipe_Map_Fuel) new GT_Recipe_Map_Fuel( - new HashSet<>(100), - "gt.recipe.plasmageneratorfuels", - "Plasma Generator Fuels", - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Default"), - 1, - 1, - 0, - 0, - 1, - "Fuel Value: ", - 1000, - " EU", - true, - true).setProgressBar(GT_UITextures.PROGRESSBAR_ARROW, ProgressBar.Direction.RIGHT); - public static final GT_Recipe_Map_Fuel sMagicFuels = (GT_Recipe_Map_Fuel) new GT_Recipe_Map_Fuel( - new HashSet<>(100), - "gt.recipe.magicfuels", - "Magic Energy Absorber Fuels", - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Default"), - 1, - 1, - 0, - 0, - 1, - "Fuel Value: ", - 1000, - " EU", - true, - true).setProgressBar(GT_UITextures.PROGRESSBAR_ARROW, ProgressBar.Direction.RIGHT); - public static final GT_Recipe_Map_Fuel sSmallNaquadahReactorFuels = (GT_Recipe_Map_Fuel) new GT_Recipe_Map_Fuel( - new HashSet<>(1), - "gt.recipe.smallnaquadahreactor", - "Naquadah Reactor MkI", - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Default"), - 1, - 1, - 0, - 0, - 1, - "Fuel Value: ", - 1000, - " EU", - true, - true).setProgressBar(GT_UITextures.PROGRESSBAR_ARROW, ProgressBar.Direction.RIGHT); - public static final GT_Recipe_Map_Fuel sLargeNaquadahReactorFuels = (GT_Recipe_Map_Fuel) new GT_Recipe_Map_Fuel( - new HashSet<>(1), - "gt.recipe.largenaquadahreactor", - "Naquadah Reactor MkII", - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Default"), - 1, - 1, - 0, - 0, - 1, - "Fuel Value: ", - 1000, - " EU", - true, - true).setProgressBar(GT_UITextures.PROGRESSBAR_ARROW, ProgressBar.Direction.RIGHT); - public static final GT_Recipe_Map_Fuel sHugeNaquadahReactorFuels = (GT_Recipe_Map_Fuel) new GT_Recipe_Map_Fuel( - new HashSet<>(1), - "gt.recipe.fluidnaquadahreactor", - "Naquadah Reactor MkIII", - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Default"), - 1, - 1, - 0, - 0, - 1, - "Fuel Value: ", - 1000, - " EU", - true, - true).setProgressBar(GT_UITextures.PROGRESSBAR_ARROW, ProgressBar.Direction.RIGHT); - public static final GT_Recipe_Map_Fuel sExtremeNaquadahReactorFuels = (GT_Recipe_Map_Fuel) new GT_Recipe_Map_Fuel( - new HashSet<>(1), - "gt.recipe.hugenaquadahreactor", - "Naquadah Reactor MkIV", - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Default"), - 1, - 1, - 0, - 0, - 1, - "Fuel Value: ", - 1000, - " EU", - true, - true).setProgressBar(GT_UITextures.PROGRESSBAR_ARROW, ProgressBar.Direction.RIGHT); - public static final GT_Recipe_Map_Fuel sUltraHugeNaquadahReactorFuels = (GT_Recipe_Map_Fuel) new GT_Recipe_Map_Fuel( - new HashSet<>(1), - "gt.recipe.extrahugenaquadahreactor", - "Naquadah Reactor MkV", - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Default"), - 1, - 1, - 0, - 0, - 1, - "Fuel Value: ", - 1000, - " EU", - true, - true).setProgressBar(GT_UITextures.PROGRESSBAR_ARROW, ProgressBar.Direction.RIGHT); - public static final GT_Recipe_Map_Fuel sFluidNaquadahReactorFuels = (GT_Recipe_Map_Fuel) new GT_Recipe_Map_Fuel( - new HashSet<>(1), - "gt.recipe.fluidfuelnaquadahreactor", - "Fluid Naquadah Reactor", - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Default"), - 1, - 1, - 0, - 0, - 1, - "Fuel Value: ", - 1000, - " EU", - true, - true).setProgressBar(GT_UITextures.PROGRESSBAR_ARROW, ProgressBar.Direction.RIGHT); - public static final GT_Recipe_Map sMultiblockElectrolyzerRecipes = new GT_Recipe_Map( - new HashSet<>(300), - "gt.recipe.largeelectrolyzer", - "Large(PA) Electrolyzer", - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "LCRNEI"), - 1, - 9, - 0, - 0, - 1, - "", - 0, - "", - true, - false).setRecipeEmitter(GT_RecipeMapUtil::buildRecipeForMultiblock); - - public static final GT_Recipe_Map sMultiblockCentrifugeRecipes = new GT_Recipe_Map( - new HashSet<>(1200), - "gt.recipe.largecentrifuge", - "Large(PA) Centrifuge", - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "LCRNEI"), - 1, - 9, - 0, - 0, - 1, - "", - 0, - "", - true, - false).setRecipeEmitter(GT_RecipeMapUtil::buildRecipeForMultiblock) - .setDisableOptimize(true); - public static final GT_Recipe_Map sMultiblockMixerRecipes = new GT_Recipe_Map( - new HashSet<>(900), - "gt.recipe.largemixer", - "Large(PA) Mixer", - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "LCRNEI"), - 9, - 3, - 0, - 0, - 1, - "", - 0, - "", - true, - false).setRecipeEmitter(GT_RecipeMapUtil::buildRecipeForMultiblockNoCircuit) - .setDisableOptimize(true); - public static final GT_Recipe_Map_LargeBoilerFakeFuels sLargeBoilerFakeFuels = (GT_Recipe_Map_LargeBoilerFakeFuels) new GT_Recipe_Map_LargeBoilerFakeFuels() - .setProgressBar(GT_UITextures.PROGRESSBAR_ARROW, ProgressBar.Direction.RIGHT) - .setDisableOptimize(true); - - public static final GT_Recipe_Map sNanoForge = new GT_Recipe_Map( - new HashSet<>(10), - "gt.recipe.nanoforge", - "Nano Forge", - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "LCRNEI"), - 6, - 2, - 2, - 1, - 1, - "Tier: ", - 1, - "", - false, - true).useModularUI(true) - .setUsualFluidInputCount(3) - .setDisableOptimize(true) - .setSlotOverlay(false, false, true, GT_UITextures.OVERLAY_SLOT_LENS) - .setProgressBar(GT_UITextures.PROGRESSBAR_ASSEMBLE, ProgressBar.Direction.RIGHT); - - public static final GT_Recipe_Map sPCBFactory = new GT_Recipe_Map( - new HashSet<>(10), - "gt.recipe.pcbfactory", - "PCB Factory", - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "LCRNEI"), - 6, - 9, - 3, - 1, - 1, - E, - 0, - E, - true, - true).useModularUI(true) - .setUsualFluidInputCount(3) - .setUsualFluidOutputCount(0) - .setDisableOptimize(true) - .setProgressBar(GT_UITextures.PROGRESSBAR_ASSEMBLE, ProgressBar.Direction.RIGHT) - .setNEISpecialInfoFormatter((recipeInfo, applyPrefixAndSuffix) -> { - List<String> result = new ArrayList<>(); - int bitmap = recipeInfo.recipe.mSpecialValue; - if ((bitmap & 0b1) > 0) { - result.add(GT_Utility.trans("336", "PCB Factory Tier: ") + 1); - } else if ((bitmap & 0b10) > 0) { - result.add(GT_Utility.trans("336", "PCB Factory Tier: ") + 2); - } else if ((bitmap & 0b100) > 0) { - result.add(GT_Utility.trans("336", "PCB Factory Tier: ") + 3); - } - if ((bitmap & 0b1000) > 0) { - result.add(GT_Utility.trans("337", "Upgrade Required: ") + GT_Utility.trans("338", "Bio")); - } - return result; - }); - - public static final GT_Recipe_Map_IC2NuclearFake sIC2NuclearFakeRecipe = (GT_Recipe_Map_IC2NuclearFake) new GT_Recipe_Map_IC2NuclearFake() - .setDisableOptimize(true); - - static { - sCentrifugeRecipes.addDownstream(sMultiblockCentrifugeRecipes.deepCopyInput()); - sMixerRecipes.addDownstream(sMultiblockMixerRecipes.deepCopyInput()); - sElectrolyzerRecipes.addDownstream(sMultiblockElectrolyzerRecipes.deepCopyInput()); - sDieselFuels.addDownstream( - IGT_RecipeMap.newRecipeMap( - b -> b.build() - .map(sLargeBoilerFakeFuels::addDieselRecipe) - .map(Collections::singletonList) - .orElse(Collections.emptyList()))); - sDenseLiquidFuels.addDownstream( - IGT_RecipeMap.newRecipeMap( - b -> b.build() - .map(sLargeBoilerFakeFuels::addDenseLiquidRecipe) - .map(Collections::singletonList) - .orElse(Collections.emptyList()))); - } - - @Nullable - public static GT_Recipe_Map findRecipeMap(@Nonnull String unlocalizedName) { - return sMappings.stream() - .filter(m -> unlocalizedName.equals(m.mUnlocalizedName)) - .findFirst() - .orElse(null); - } - - /** - * HashMap of Recipes based on their Items - */ - public final Map<GT_ItemStack, Collection<GT_Recipe>> mRecipeItemMap = new /* Concurrent */ HashMap<>(); - /** - * HashMap of Recipes based on their Fluids - */ - public final Map<String, Collection<GT_Recipe>> mRecipeFluidMap = new HashMap<>(); - - public final HashSet<String> mRecipeFluidNameMap = new HashSet<>(); - /** - * The List of all Recipes - */ - public final Collection<GT_Recipe> mRecipeList; - /** - * String used as an unlocalised Name. - */ - public final String mUnlocalizedName; - /** - * String used in NEI for the Recipe Lists. If null it will use the unlocalised Name instead - */ - public final String mNEIName; - /** - * GUI used for NEI Display. Usually the GUI of the Machine itself - */ - public final String mNEIGUIPath; - - public final String mNEISpecialValuePre, mNEISpecialValuePost; - public final int mUsualInputCount, mUsualOutputCount, mNEISpecialValueMultiplier, mMinimalInputItems, - mMinimalInputFluids, mAmperage; - public final boolean mNEIAllowed, mShowVoltageAmperageInNEI; - - /** - * Whether to show oredict equivalent outputs when NEI is queried to show recipe - */ - public boolean mNEIUnificateOutput = true; - - /** - * Unique identifier for this recipe map. Generated from aUnlocalizedName and a few other parameters. See - * constructor for details. - */ - public final String mUniqueIdentifier; - - /** - * Whether this recipe map contains any fluid outputs. - */ - private boolean mHasFluidOutputs = false; - - /** - * Whether this recipe map contains special slot inputs. - */ - private boolean mUsesSpecialSlot = false; - - /** - * Whether this recipemap checks for equality of special slot when searching recipe. - */ - private boolean isSpecialSlotSensitive = false; - - /** - * How many fluid inputs does this recipemap has at most. Currently used only for NEI slot placements and does - * not actually restrict number of fluids used in the recipe. - */ - private int usualFluidInputCount; - - /** - * How many fluid outputs does this recipemap has at most. Currently used only for NEI slot placements and does - * not actually restrict number of fluids used in the recipe. - */ - private int usualFluidOutputCount; - - /** - * Whether to use ModularUI for slot placements. - */ - public boolean useModularUI = false; - - /** - * Overlays used for GUI. 1 = If it's fluid slot. 2 = If it's output slot. 4 = If it's first slot in the same - * section, e.g. first slot in the item output slots 8 = If it's special item slot. - */ - private final TByteObjectMap<IDrawable> slotOverlays = new TByteObjectHashMap<>(); - - /** - * Overlays used for GUI on steam machine. 1 = If it's fluid slot. 2 = If it's output slot. 4 = If it's first - * slot in the same section, e.g. first slot in the item output slots 8 = If it's special item slot. - */ - private final TByteObjectMap<SteamTexture> slotOverlaysSteam = new TByteObjectHashMap<>(); - - /** - * Progressbar used for BasicMachine GUI and/or NEI. Unless specified, size should be (20, 36), consisting of - * two parts; First is (20, 18) size of "empty" image at the top, Second is (20, 18) size of "filled" image at - * the bottom. - */ - private FallbackableUITexture progressBarTexture; - - /** - * Progressbar used for steam machine GUI and/or NEI. Unless specified, size should be (20, 36), consisting of - * two parts; First is (20, 18) size of "empty" image at the top, Second is (20, 18) size of "filled" image at - * the bottom. - */ - private FallbackableSteamTexture progressBarTextureSteam; - - public ProgressBar.Direction progressBarDirection = ProgressBar.Direction.RIGHT; - - public Size progressBarSize = new Size(20, 18); - - public Pos2d progressBarPos = new Pos2d(78, 24); - - public Rectangle neiTransferRect = new Rectangle( - progressBarPos.x - (16 / 2), - progressBarPos.y, - progressBarSize.width + 16, - progressBarSize.height); - - /** - * Image size in direction of progress. Used for non-smooth rendering. - */ - private int progressBarImageSize; - - /** - * Additional textures shown on GUI. - */ - public final List<Pair<IDrawable, Pair<Size, Pos2d>>> specialTextures = new ArrayList<>(); - - /** - * Additional textures shown on steam machine GUI. - */ - public final List<Pair<SteamTexture, Pair<Size, Pos2d>>> specialTexturesSteam = new ArrayList<>(); - - public IDrawable logo = GT_UITextures.PICTURE_GT_LOGO_17x17_TRANSPARENT; - - public Pos2d logoPos = new Pos2d(152, 63); - - public Size logoSize = new Size(17, 17); - - public Pos2d neiBackgroundOffset = new Pos2d(2, 3); - - public Size neiBackgroundSize = new Size(172, 82); - - protected final GT_GUIColorOverride colorOverride; - private int neiTextColorOverride = -1; - - private INEISpecialInfoFormatter neiSpecialInfoFormatter; - - private final boolean checkForCollision = true; - private boolean allowNoInput; - private boolean allowNoInputFluid; - private boolean allowNoOutput; - private boolean allowNoOutputFluid; - private boolean disableOptimize = false; - private Function<? super GT_RecipeBuilder, ? extends Iterable<? extends GT_Recipe>> recipeEmitter = this::defaultBuildRecipe; - private Function<? super GT_Recipe, ? extends GT_Recipe> specialHandler; - private String recipeConfigCategory; - private Function<? super GT_Recipe, String> recipeConfigKeyConvertor; - private final List<IGT_RecipeMap> downstreams = new ArrayList<>(0); - - /** - * Flag if a comparator should be used to search the recipe in NEI (which is defined in {@link Power}). Else - * only the voltage will be used to find recipes - */ - public boolean useComparatorForNEI; - - /** - * Whether to render the actual size of stacks or a size of 1. - */ - public boolean renderRealStackSizes = true; - - /** - * Initialises a new type of Recipe Handler. - * - * @param aRecipeList a List you specify as Recipe List. Usually just an ArrayList with a - * pre-initialised Size. - * @param aUnlocalizedName the unlocalised Name of this Recipe Handler, used mainly for NEI. - * @param aLocalName @deprecated the displayed Name inside the NEI Recipe GUI for optionally - * registering aUnlocalizedName - * with the language manager - * @param aNEIGUIPath the displayed GUI Texture, usually just a Machine GUI. Auto-Attaches ".png" - * if forgotten. - * @param aUsualInputCount the usual amount of Input Slots this Recipe Class has. - * @param aUsualOutputCount the usual amount of Output Slots this Recipe Class has. - * @param aNEISpecialValuePre the String in front of the Special Value in NEI. - * @param aNEISpecialValueMultiplier the Value the Special Value is getting Multiplied with before displaying - * @param aNEISpecialValuePost the String after the Special Value. Usually for a Unit or something. - * @param aNEIAllowed if NEI is allowed to display this Recipe Handler in general. - */ - public GT_Recipe_Map(Collection<GT_Recipe> aRecipeList, String aUnlocalizedName, String aLocalName, - String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, - int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, - String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) { - sMappings.add(this); - mNEIAllowed = aNEIAllowed; - mShowVoltageAmperageInNEI = aShowVoltageAmperageInNEI; - mRecipeList = aRecipeList; - mNEIName = aNEIName == null ? aUnlocalizedName : aNEIName; - mNEIGUIPath = aNEIGUIPath.endsWith(".png") ? aNEIGUIPath : aNEIGUIPath + ".png"; - mNEISpecialValuePre = aNEISpecialValuePre; - mNEISpecialValueMultiplier = aNEISpecialValueMultiplier; - mNEISpecialValuePost = aNEISpecialValuePost; - mAmperage = aAmperage; - mUsualInputCount = aUsualInputCount; - mUsualOutputCount = aUsualOutputCount; - mMinimalInputItems = aMinimalInputItems; - mMinimalInputFluids = aMinimalInputFluids; - GregTech_API.sItemStackMappings.add(mRecipeItemMap); - mUnlocalizedName = aUnlocalizedName; - if (aLocalName != null) { - GT_LanguageManager.addStringLocalization(mUnlocalizedName, aLocalName); - } - mUniqueIdentifier = String.format( - "%s_%d_%d_%d_%d_%d", - aUnlocalizedName, - aAmperage, - aUsualInputCount, - aUsualOutputCount, - aMinimalInputFluids, - aMinimalInputItems); - progressBarTexture = new FallbackableUITexture( - UITexture.fullImage(GregTech.ID, "gui/progressbar/" + mUnlocalizedName), - GT_UITextures.PROGRESSBAR_ARROW); - colorOverride = GT_GUIColorOverride.get(ModularUITextures.VANILLA_BACKGROUND.location); - if (sIndexedMappings.put(mUniqueIdentifier, this) != null) - throw new IllegalArgumentException("Duplicate recipe map registered: " + mUniqueIdentifier); - } - - @Deprecated - public GT_Recipe_Map(Collection<GT_Recipe> aRecipeList, String aUnlocalizedName, String aLocalName, - String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, - int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, - String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed, - boolean aNEIUnificateOutput) { - this( - aRecipeList, - aUnlocalizedName, - aLocalName, - aNEIName, - aNEIGUIPath, - aUsualInputCount, - aUsualOutputCount, - aMinimalInputItems, - aMinimalInputFluids, - aAmperage, - aNEISpecialValuePre, - aNEISpecialValueMultiplier, - aNEISpecialValuePost, - aShowVoltageAmperageInNEI, - aNEIAllowed); - setNEIUnificateOutput(aNEIUnificateOutput); - } - - public GT_Recipe_Map setDisableOptimize(boolean disableOptimize) { - this.disableOptimize = disableOptimize; - return this; - } - - public GT_Recipe_Map setSpecialSlotSensitive(boolean isSpecialSlotSensitive) { - this.isSpecialSlotSensitive = isSpecialSlotSensitive; - return this; - } - - public GT_Recipe_Map setNEIUnificateOutput(boolean mNEIUnificateOutput) { - this.mNEIUnificateOutput = mNEIUnificateOutput; - return this; - } - - public GT_Recipe_Map useComparatorForNEI(boolean use) { - this.useComparatorForNEI = use; - return this; - } - - public GT_Recipe_Map setRenderRealStackSizes(boolean renderRealStackSizes) { - this.renderRealStackSizes = renderRealStackSizes; - return this; - } - - public GT_Recipe_Map useModularUI(boolean use) { - this.useModularUI = use; - return this; - } - - public GT_Recipe_Map setSlotOverlay(boolean isFluid, boolean isOutput, boolean isFirst, boolean isSpecial, - IDrawable slotOverlay) { - useModularUI(true); - this.slotOverlays.put( - (byte) ((isFluid ? 1 : 0) + (isOutput ? 2 : 0) + (isFirst ? 4 : 0) + (isSpecial ? 8 : 0)), - slotOverlay); - return this; - } - - public GT_Recipe_Map setSlotOverlay(boolean isFluid, boolean isOutput, boolean isFirst, IDrawable slotOverlay) { - return setSlotOverlay(isFluid, isOutput, isFirst, false, slotOverlay); - } - - public GT_Recipe_Map setSlotOverlay(boolean isFluid, boolean isOutput, IDrawable slotOverlay) { - return setSlotOverlay(isFluid, isOutput, true, slotOverlay) - .setSlotOverlay(isFluid, isOutput, false, slotOverlay); - } - - public GT_Recipe_Map setSlotOverlaySteam(boolean isFluid, boolean isOutput, boolean isFirst, boolean isSpecial, - SteamTexture slotOverlay) { - useModularUI(true); - this.slotOverlaysSteam.put( - (byte) ((isFluid ? 1 : 0) + (isOutput ? 2 : 0) + (isFirst ? 4 : 0) + (isSpecial ? 8 : 0)), - slotOverlay); - return this; - } - - public GT_Recipe_Map setSlotOverlaySteam(boolean isOutput, boolean isFirst, SteamTexture slotOverlay) { - return setSlotOverlaySteam(false, isOutput, isFirst, false, slotOverlay); - } - - public GT_Recipe_Map setSlotOverlaySteam(boolean isOutput, SteamTexture slotOverlay) { - return setSlotOverlaySteam(false, isOutput, true, false, slotOverlay) - .setSlotOverlaySteam(false, isOutput, false, false, slotOverlay); - } - - public GT_Recipe_Map setProgressBar(UITexture progressBarTexture, ProgressBar.Direction progressBarDirection) { - return setProgressBarWithFallback( - new FallbackableUITexture( - UITexture.fullImage(GregTech.ID, "gui/progressbar/" + mUnlocalizedName), - progressBarTexture), - progressBarDirection); - } - - public GT_Recipe_Map setProgressBar(UITexture progressBarTexture) { - return setProgressBar(progressBarTexture, ProgressBar.Direction.RIGHT); - } - - /** - * Some resource packs want to use custom progress bar textures even for plain arrow. This method allows them to - * add unique textures, yet other packs don't need to make textures for every recipemap. - */ - public GT_Recipe_Map setProgressBarWithFallback(FallbackableUITexture progressBarTexture, - ProgressBar.Direction progressBarDirection) { - useModularUI(true); - this.progressBarTexture = progressBarTexture; - this.progressBarDirection = progressBarDirection; - return this; - } - - public GT_Recipe_Map setProgressBarSteam(SteamTexture progressBarTexture) { - return setProgressBarSteamWithFallback( - new FallbackableSteamTexture( - SteamTexture.fullImage(GregTech.ID, "gui/progressbar/" + mUnlocalizedName + "_%s"), - progressBarTexture)); - } - - public GT_Recipe_Map setProgressBarSteamWithFallback(FallbackableSteamTexture progressBarTexture) { - this.progressBarTextureSteam = progressBarTexture; - return this; - } - - public GT_Recipe_Map setProgressBarSize(int x, int y) { - useModularUI(true); - this.progressBarSize = new Size(x, y); - return this; - } - - public GT_Recipe_Map setProgressBarPos(int x, int y) { - useModularUI(true); - this.progressBarPos = new Pos2d(x, y); - return this; - } - - public GT_Recipe_Map setProgressBarImageSize(int progressBarImageSize) { - useModularUI(true); - this.progressBarImageSize = progressBarImageSize; - return this; - } - - public GT_Recipe_Map setNEITransferRect(Rectangle neiTransferRect) { - useModularUI(true); - this.neiTransferRect = neiTransferRect; - return this; - } - - public GT_Recipe_Map addSpecialTexture(int width, int height, int x, int y, IDrawable texture) { - useModularUI(true); - specialTextures - .add(new ImmutablePair<>(texture, new ImmutablePair<>(new Size(width, height), new Pos2d(x, y)))); - return this; - } - - public GT_Recipe_Map addSpecialTextureSteam(int width, int height, int x, int y, SteamTexture texture) { - useModularUI(true); - specialTexturesSteam - .add(new ImmutablePair<>(texture, new ImmutablePair<>(new Size(width, height), new Pos2d(x, y)))); - return this; - } - - public GT_Recipe_Map setUsualFluidInputCount(int usualFluidInputCount) { - useModularUI(true); - this.usualFluidInputCount = usualFluidInputCount; - return this; - } - - public GT_Recipe_Map setUsualFluidOutputCount(int usualFluidOutputCount) { - useModularUI(true); - this.usualFluidOutputCount = usualFluidOutputCount; - return this; - } - - public GT_Recipe_Map setLogo(IDrawable logo) { - useModularUI(true); - this.logo = logo; - return this; - } - - public GT_Recipe_Map setLogoPos(int x, int y) { - useModularUI(true); - this.logoPos = new Pos2d(x, y); - return this; - } - - public GT_Recipe_Map setLogoSize(int width, int height) { - useModularUI(true); - this.logoSize = new Size(width, height); - return this; - } - - public GT_Recipe_Map setNEIBackgroundOffset(int x, int y) { - useModularUI(true); - this.neiBackgroundOffset = new Pos2d(x, y); - return this; - } - - public GT_Recipe_Map setNEIBackgroundSize(int width, int height) { - useModularUI(true); - this.neiBackgroundSize = new Size(width, height); - return this; - } - - public GT_Recipe_Map setNEISpecialInfoFormatter(INEISpecialInfoFormatter neiSpecialInfoFormatter) { - this.neiSpecialInfoFormatter = neiSpecialInfoFormatter; - return this; - } - - /** - * Change how recipes are emitted by a particular recipe builder. Can emit multiple recipe per builder. - */ - public GT_Recipe_Map setRecipeEmitter( - Function<? super GT_RecipeBuilder, ? extends Iterable<? extends GT_Recipe>> func) { - this.recipeEmitter = func; - return this; - } - - /** - * Change how recipes are emitted by a particular recipe builder. Can emit multiple recipe per builder. - * <p> - * Unlike {@link #setRecipeEmitter(Function)}, this one does not clear the existing recipe being emitted, if any - */ - public GT_Recipe_Map combineRecipeEmitter( - Function<? super GT_RecipeBuilder, ? extends Iterable<? extends GT_Recipe>> func) { - // move recipeEmitter to local variable, so lambda capture the function itself instead of this - Function<? super GT_RecipeBuilder, ? extends Iterable<? extends GT_Recipe>> cur = recipeEmitter; - this.recipeEmitter = b -> Iterables.concat(cur.apply(b), func.apply(b)); - return this; - } - - /** - * Change how recipes are emitted by a particular recipe builder. Should not return null. - */ - public GT_Recipe_Map setRecipeEmitterSingle(Function<? super GT_RecipeBuilder, ? extends GT_Recipe> func) { - return setRecipeEmitter(func.andThen(Collections::singletonList)); - } - - /** - * Change how recipes are emitted by a particular recipe builder. Effectively add a new recipe per recipe added. - * func must not return null. - * <p> - * Unlike {@link #setRecipeEmitter(Function)}, this one does not clear the existing recipe being emitted, if any - */ - public GT_Recipe_Map combineRecipeEmitterSingle(Function<? super GT_RecipeBuilder, ? extends GT_Recipe> func) { - return combineRecipeEmitter(func.andThen(Collections::singletonList)); - } - - private static <T> Function<? super T, ? extends T> withIdentityReturn(Consumer<T> func) { - return r -> { - func.accept(r); - return r; - }; - } - - /** - * Run a custom hook on all recipes added <b>via builder</b>. For more complicated behavior subclass this, then - * override {@link #doAdd(GT_RecipeBuilder)} - * - * Recipes added via one of the overloads of addRecipe will NOT be affected by this function. - */ - public GT_Recipe_Map setRecipeSpecialHandler(Function<? super GT_Recipe, ? extends GT_Recipe> func) { - this.specialHandler = func; - return this; - } - - /** - * Run a custom hook on all recipes added <b>via builder</b>. For more complicated behavior, create a subclass - * and override {@link #doAdd(GT_RecipeBuilder)} - * - * Recipes added via one of the overloads of addRecipe will NOT be affected by this function. - */ - public GT_Recipe_Map setRecipeSpecialHandler(Consumer<GT_Recipe> func) { - return setRecipeSpecialHandler(withIdentityReturn(func)); - } - - /** - * Run a custom hook on all recipes added <b>via builder</b>. For more complicated behavior subclass this, then - * override {@link #doAdd(GT_RecipeBuilder)}. - * <p> - * Recipes added via one of the overloads of addRecipe will NOT be affected by this function. - * <p> - * Unlike {@link #setRecipeSpecialHandler(Function)}, this one will not replace the existing special handler. - * The supplied function will be given the output of existing handler when a recipe is added. - */ - public GT_Recipe_Map chainRecipeSpecialHandler(Function<? super GT_Recipe, ? extends GT_Recipe> func) { - this.specialHandler = specialHandler == null ? func : specialHandler.andThen(func); - return this; - } - - /** - * Run a custom hook on all recipes added <b>via builder</b>. For more complicated behavior subclass this, then - * override {@link #doAdd(GT_RecipeBuilder)}. - * <p> - * Recipes added via one of the overloads of addRecipe will NOT be affected by this function. - * <p> - * Unlike {@link #setRecipeSpecialHandler(Function)}, this one will not replace the existing special handler. - * The supplied function will be given the output of existing handler when a recipe is added. - */ - public GT_Recipe_Map chainRecipeSpecialHandler(Consumer<GT_Recipe> func) { - return chainRecipeSpecialHandler(withIdentityReturn(func)); - } - - public GT_Recipe_Map setRecipeConfigFile(String category, Function<? super GT_Recipe, String> keyConvertor) { - if (StringUtils.isBlank(category) || keyConvertor == null) throw new IllegalArgumentException(); - this.recipeConfigCategory = category; - this.recipeConfigKeyConvertor = keyConvertor; - return this; - } - - @Override - public void addDownstream(IGT_RecipeMap downstream) { - this.downstreams.add(downstream); - } - - public GT_Recipe addRecipe(boolean aOptimize, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecial, - int[] aOutputChances, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, - int aSpecialValue) { - return addRecipe( - new GT_Recipe( - aOptimize, - aInputs, - aOutputs, - aSpecial, - aOutputChances, - aFluidInputs, - aFluidOutputs, - aDuration, - aEUt, - aSpecialValue)); - } - - public GT_Recipe addRecipe(int[] aOutputChances, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, - int aDuration, int aEUt, int aSpecialValue) { - return addRecipe( - new GT_Recipe( - false, - null, - null, - null, - aOutputChances, - aFluidInputs, - aFluidOutputs, - aDuration, - aEUt, - aSpecialValue), - false, - false, - false); - } - - public GT_Recipe addRecipe(boolean aOptimize, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecial, - FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue) { - return addRecipe( - new GT_Recipe( - aOptimize, - aInputs, - aOutputs, - aSpecial, - null, - aFluidInputs, - aFluidOutputs, - aDuration, - aEUt, - aSpecialValue)); - } - - public GT_Recipe addRecipe(GT_Recipe aRecipe) { - return addRecipe(aRecipe, true, false, false); - } - - protected GT_Recipe addRecipe(GT_Recipe aRecipe, boolean aCheckForCollisions, boolean aFakeRecipe, - boolean aHidden) { - aRecipe.mHidden = aHidden; - aRecipe.mFakeRecipe = aFakeRecipe; - if (aRecipe.mFluidInputs.length < mMinimalInputFluids && aRecipe.mInputs.length < mMinimalInputItems) - return null; - if (aCheckForCollisions - && findRecipe(null, false, true, Long.MAX_VALUE, aRecipe.mFluidInputs, aRecipe.mInputs) != null) - return null; - return add(aRecipe); - } - - /** - * Only used for fake Recipe Handlers to show something in NEI, do not use this for adding actual Recipes! - * findRecipe wont find fake Recipes, containsInput WILL find fake Recipes - */ - public GT_Recipe addFakeRecipe(boolean aCheckForCollisions, ItemStack[] aInputs, ItemStack[] aOutputs, - Object aSpecial, int[] aOutputChances, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, - int aEUt, int aSpecialValue) { - return addFakeRecipe( - aCheckForCollisions, - new GT_Recipe( - false, - aInputs, - aOutputs, - aSpecial, - aOutputChances, - aFluidInputs, - aFluidOutputs, - aDuration, - aEUt, - aSpecialValue)); - } - - /** - * Only used for fake Recipe Handlers to show something in NEI, do not use this for adding actual Recipes! - * findRecipe wont find fake Recipes, containsInput WILL find fake Recipes - */ - public GT_Recipe addFakeRecipe(boolean aCheckForCollisions, ItemStack[] aInputs, ItemStack[] aOutputs, - Object aSpecial, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, - int aSpecialValue) { - return addFakeRecipe( - aCheckForCollisions, - new GT_Recipe( - false, - aInputs, - aOutputs, - aSpecial, - null, - aFluidInputs, - aFluidOutputs, - aDuration, - aEUt, - aSpecialValue)); - } - - public GT_Recipe addFakeRecipe(boolean aCheckForCollisions, ItemStack[] aInputs, ItemStack[] aOutputs, - Object aSpecial, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, - int aSpecialValue, boolean hidden) { - return addFakeRecipe( - aCheckForCollisions, - new GT_Recipe( - false, - aInputs, - aOutputs, - aSpecial, - null, - aFluidInputs, - aFluidOutputs, - aDuration, - aEUt, - aSpecialValue), - hidden); - } - - public GT_Recipe addFakeRecipe(boolean aCheckForCollisions, ItemStack[] aInputs, ItemStack[] aOutputs, - Object aSpecial, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, - int aSpecialValue, ItemStack[][] aAlt, boolean hidden) { - return addFakeRecipe( - aCheckForCollisions, - new GT_Recipe_WithAlt( - false, - aInputs, - aOutputs, - aSpecial, - null, - aFluidInputs, - aFluidOutputs, - aDuration, - aEUt, - aSpecialValue, - aAlt), - hidden); - } - - /** - * Only used for fake Recipe Handlers to show something in NEI, do not use this for adding actual Recipes! - * findRecipe wont find fake Recipes, containsInput WILL find fake Recipes - */ - public GT_Recipe addFakeRecipe(boolean aCheckForCollisions, GT_Recipe aRecipe) { - return addRecipe(aRecipe, aCheckForCollisions, true, false); - } - - public GT_Recipe addFakeRecipe(boolean aCheckForCollisions, GT_Recipe aRecipe, boolean hidden) { - return addRecipe(aRecipe, aCheckForCollisions, true, hidden); - } - - @Nonnull - @Override - public Collection<GT_Recipe> doAdd(GT_RecipeBuilder builder) { - Iterable<? extends GT_Recipe> recipes = recipeEmitter.apply(builder); - Collection<GT_Recipe> ret = new ArrayList<>(); - for (GT_Recipe r : recipes) { - if (recipeConfigCategory != null) { - String configKey = recipeConfigKeyConvertor.apply(r); - if (configKey != null - && (r.mDuration = GregTech_API.sRecipeFile.get(recipeConfigCategory, configKey, r.mDuration)) - <= 0) { - continue; - } - } - if (r.mFluidInputs.length < mMinimalInputFluids && r.mInputs.length < mMinimalInputItems) return null; - if (r.mSpecialValue == 0) { - // new style cleanroom/lowgrav handling - int specialValue = 0; - if (builder.getMetadata(GT_RecipeConstants.LOW_GRAVITY, false)) specialValue -= 100; - if (builder.getMetadata(GT_RecipeConstants.CLEANROOM, false)) specialValue -= 200; - for (GT_RecipeBuilder.MetadataIdentifier<Integer> ident : SPECIAL_VALUE_ALIASES) { - Integer metadata = builder.getMetadata(ident, null); - if (metadata != null) { - specialValue = metadata; - break; - } - } - r.mSpecialValue = specialValue; - } - if (specialHandler != null) r = specialHandler.apply(r); - if (r == null) continue; - if (checkForCollision - && findRecipe(null, false, true, Long.MAX_VALUE, r.mFluidInputs, r.mInputs) != null) { - StringBuilder errorInfo = new StringBuilder(); - boolean hasAnEntry = false; - for (FluidStack fStack : r.mFluidInputs) { - if (fStack == null) { - continue; - } - String s = fStack.getLocalizedName(); - if (s == null) { - continue; - } - if (hasAnEntry) { - errorInfo.append("+") - .append(s); - } else { - errorInfo.append(s); - } - hasAnEntry = true; - } - for (ItemStack iStack : r.mInputs) { - if (iStack == null) { - continue; - } - String s = iStack.getDisplayName(); - if (hasAnEntry) { - errorInfo.append("+") - .append(s); - } else { - errorInfo.append(s); - } - hasAnEntry = true; - } - handleRecipeCollision(errorInfo.toString()); - continue; - } - ret.add(add(r)); - } - if (!ret.isEmpty()) { - builder.clearInvalid(); - for (IGT_RecipeMap downstream : downstreams) { - downstream.doAdd(builder); - } - } - return ret; - } - - public final Iterable<? extends GT_Recipe> defaultBuildRecipe(GT_RecipeBuilder builder) { - // TODO sensible validation - GT_RecipeBuilder b = builder; - if (disableOptimize && builder.optimize) { - b = copy(builder, b).noOptimize(); - } - return buildOrEmpty(b); - } - - private static GT_RecipeBuilder copy(GT_RecipeBuilder original, GT_RecipeBuilder b) { - return b == original ? b.copy() : b; - } - - public GT_Recipe add(GT_Recipe aRecipe) { - mRecipeList.add(aRecipe); - for (FluidStack aFluid : aRecipe.mFluidInputs) { - if (aFluid != null) { - Collection<GT_Recipe> tList = mRecipeFluidMap.computeIfAbsent( - aFluid.getFluid() - .getName(), - k -> new HashSet<>(1)); - tList.add(aRecipe); - mRecipeFluidNameMap.add( - aFluid.getFluid() - .getName()); - } - } - if (aRecipe.mFluidOutputs.length != 0) { - this.mHasFluidOutputs = true; - } - if (aRecipe.mSpecialItems != null) { - this.mUsesSpecialSlot = true; - } - return addToItemMap(aRecipe); - } - - public void reInit() { - mRecipeItemMap.clear(); - for (GT_Recipe tRecipe : mRecipeList) { - GT_OreDictUnificator.setStackArray(true, tRecipe.mInputs); - GT_OreDictUnificator.setStackArray(true, tRecipe.mOutputs); - addToItemMap(tRecipe); - } - } - - /** - * @return if this Item is a valid Input for any for the Recipes - */ - public boolean containsInput(ItemStack aStack) { - return aStack != null && (mRecipeItemMap.containsKey(new GT_ItemStack(aStack)) - || mRecipeItemMap.containsKey(new GT_ItemStack(aStack, true))); - } - - /** - * @return if this Fluid is a valid Input for any for the Recipes - */ - public boolean containsInput(FluidStack aFluid) { - return aFluid != null && containsInput(aFluid.getFluid()); - } - - /** - * @return if this Fluid is a valid Input for any for the Recipes - */ - public boolean containsInput(Fluid aFluid) { - return aFluid != null && mRecipeFluidNameMap.contains(aFluid.getName()); - } - - @Nullable - public final GT_Recipe findRecipe(IHasWorldObjectAndCoords aTileEntity, boolean aNotUnificated, long aVoltage, - FluidStack[] aFluids, ItemStack... aInputs) { - return findRecipe(aTileEntity, null, aNotUnificated, aVoltage, aFluids, null, aInputs); - } - - @Nullable - public final GT_Recipe findRecipe(IHasWorldObjectAndCoords aTileEntity, boolean aNotUnificated, - boolean aDontCheckStackSizes, long aVoltage, FluidStack[] aFluids, ItemStack... aInputs) { - return findRecipe( - aTileEntity, - null, - aNotUnificated, - aDontCheckStackSizes, - aVoltage, - aFluids, - null, - aInputs); - } - - @Nullable - public final GT_Recipe findRecipe(IHasWorldObjectAndCoords aTileEntity, GT_Recipe aRecipe, - boolean aNotUnificated, long aVoltage, FluidStack[] aFluids, ItemStack... aInputs) { - return findRecipe(aTileEntity, aRecipe, aNotUnificated, aVoltage, aFluids, null, aInputs); - } - - @Nullable - public final GT_Recipe findRecipe(IHasWorldObjectAndCoords aTileEntity, GT_Recipe aRecipe, - boolean aNotUnificated, boolean aDontCheckStackSizes, long aVoltage, FluidStack[] aFluids, - ItemStack... aInputs) { - return findRecipe( - aTileEntity, - aRecipe, - aNotUnificated, - aDontCheckStackSizes, - aVoltage, - aFluids, - null, - aInputs); - } - - @Nullable - public final GT_Recipe findRecipe(IHasWorldObjectAndCoords aTileEntity, GT_Recipe aRecipe, - boolean aNotUnificated, long aVoltage, FluidStack[] aFluids, ItemStack aSpecialSlot, ItemStack... aInputs) { - return findRecipe(aTileEntity, aRecipe, aNotUnificated, false, aVoltage, aFluids, aSpecialSlot, aInputs); - } - - // TODO: make this final after migrating BW - @SuppressWarnings("unused") - @Nullable - public GT_Recipe findRecipe(IHasWorldObjectAndCoords aTileEntity, GT_Recipe aRecipe, boolean aNotUnificated, - boolean aDontCheckStackSizes, long aVoltage, FluidStack[] aFluids, ItemStack aSpecialSlot, - ItemStack... aInputs) { - FindRecipeResult result = findRecipeWithResult( - aRecipe, - aNotUnificated, - aDontCheckStackSizes, - aVoltage, - aFluids, - aSpecialSlot, - aInputs); - return result.isSuccessful() ? result.getRecipe() : null; - } - - /** - * finds a Recipe matching the aFluid and ItemStack Inputs. - * - * @param aRecipe in case this is != null it will try to use this Recipe first when looking things - * up. - * @param aNotUnificated if this is T the Recipe searcher will unificate the ItemStack Inputs - * @param aDontCheckStackSizes if set to false will only return recipes that can be executed at least once with - * the provided input - * @param aVoltage Voltage of the Machine or Long.MAX_VALUE if it has no Voltage - * @param aFluids the Fluid Inputs - * @param aSpecialSlot the content of the Special Slot, the regular Manager doesn't do anything with - * this, but some custom ones do. - * @param aInputs the Item Inputs - * @return Result of the recipe search - */ - @Nonnull - public final FindRecipeResult findRecipeWithResult(GT_Recipe aRecipe, boolean aNotUnificated, - boolean aDontCheckStackSizes, long aVoltage, FluidStack[] aFluids, ItemStack aSpecialSlot, - ItemStack... aInputs) { - return findRecipeWithResult( - aRecipe, - recipe -> aVoltage * mAmperage >= recipe.mEUt, - aNotUnificated, - aDontCheckStackSizes, - aVoltage, - aFluids, - aSpecialSlot, - aInputs); - } - - /** - * finds a Recipe matching the aFluid and ItemStack Inputs. - * - * @param aRecipe in case this is != null it will try to use this Recipe first when looking things - * up. - * @param aIsValidRecipe predicate to help identify, if the recipe matches our machine - * @param aNotUnificated if this is T the Recipe searcher will unificate the ItemStack Inputs - * @param aDontCheckStackSizes if set to false will only return recipes that can be executed at least once with - * the provided input - * @param aVoltage Voltage of the Machine or Long.MAX_VALUE if it has no Voltage - * @param aFluids the Fluid Inputs - * @param aSpecialSlot the content of the Special Slot, the regular Manager doesn't do anything with - * this, but some custom ones do. - * @param aInputs the Item Inputs - * @return Result of the recipe search - */ - @Nonnull - public FindRecipeResult findRecipeWithResult(GT_Recipe aRecipe, Predicate<GT_Recipe> aIsValidRecipe, - boolean aNotUnificated, boolean aDontCheckStackSizes, long aVoltage, FluidStack[] aFluids, - ItemStack aSpecialSlot, ItemStack... aInputs) { - // No Recipes? Well, nothing to be found then. - if (mRecipeList.isEmpty()) return NOT_FOUND; - - // Some Recipe Classes require a certain amount of Inputs of certain kinds. Like "at least 1 Fluid + 1 - // Stack" or "at least 2 Stacks" before they start searching for Recipes. - // This improves Performance massively, especially if people leave things like Circuits, Molds or Shapes in - // their Machines to select Sub Recipes. - if (GregTech_API.sPostloadFinished) { - if (mMinimalInputFluids > 0) { - if (aFluids == null) return NOT_FOUND; - int tAmount = 0; - for (FluidStack aFluid : aFluids) if (aFluid != null) tAmount++; - if (tAmount < mMinimalInputFluids) return NOT_FOUND; - } - if (mMinimalInputItems > 0) { - if (aInputs == null) return NOT_FOUND; - int tAmount = 0; - for (ItemStack aInput : aInputs) if (aInput != null) tAmount++; - if (tAmount < mMinimalInputItems) return NOT_FOUND; - } - } - - // Unification happens here in case the Input isn't already unificated. - if (aNotUnificated) aInputs = GT_OreDictUnificator.getStackArray(true, (Object[]) aInputs); - - // Check the Recipe which has been used last time in order to not have to search for it again, if possible. - if (aRecipe != null) if (!aRecipe.mFakeRecipe && aRecipe.mCanBeBuffered - && aRecipe.isRecipeInputEqual(false, aDontCheckStackSizes, aFluids, aInputs)) { - if (!isSpecialSlotSensitive - || GT_Utility.areStacksEqualOrNull((ItemStack) aRecipe.mSpecialItems, aSpecialSlot)) { - if (aRecipe.mEnabled && aIsValidRecipe.test(aRecipe)) { - return ofSuccess(aRecipe); - } - } - } - - // Now look for the Recipes inside the Item HashMaps, but only when the Recipes usually have Items. - if (mUsualInputCount > 0 && aInputs != null) for (ItemStack tStack : aInputs) if (tStack != null) { - Collection<GT_Recipe> tRecipes = mRecipeItemMap.get(new GT_ItemStack(tStack)); - if (tRecipes != null) for (GT_Recipe tRecipe : tRecipes) if (!tRecipe.mFakeRecipe - && tRecipe.isRecipeInputEqual(false, aDontCheckStackSizes, aFluids, aInputs)) { - if (!isSpecialSlotSensitive - || GT_Utility.areStacksEqualOrNull((ItemStack) tRecipe.mSpecialItems, aSpecialSlot)) { - if (tRecipe.mEnabled && aIsValidRecipe.test(tRecipe)) { - return ofSuccess(tRecipe); - } - } - } - tRecipes = mRecipeItemMap.get(new GT_ItemStack(tStack, true)); - if (tRecipes != null) for (GT_Recipe tRecipe : tRecipes) if (!tRecipe.mFakeRecipe - && tRecipe.isRecipeInputEqual(false, aDontCheckStackSizes, aFluids, aInputs)) { - if (!isSpecialSlotSensitive - || GT_Utility.areStacksEqualOrNull((ItemStack) tRecipe.mSpecialItems, aSpecialSlot)) { - if (tRecipe.mEnabled && aIsValidRecipe.test(tRecipe)) { - return ofSuccess(tRecipe); - } - } - } - } - - // If the minimal Amount of Items for the Recipe is 0, then it could be a Fluid-Only Recipe, so check that - // Map too. - if (mMinimalInputItems == 0 && aFluids != null) for (FluidStack aFluid : aFluids) if (aFluid != null) { - Collection<GT_Recipe> tRecipes = mRecipeFluidMap.get( - aFluid.getFluid() - .getName()); - if (tRecipes != null) for (GT_Recipe tRecipe : tRecipes) if (!tRecipe.mFakeRecipe - && tRecipe.isRecipeInputEqual(false, aDontCheckStackSizes, aFluids, aInputs)) { - if (!isSpecialSlotSensitive - || GT_Utility.areStacksEqualOrNull((ItemStack) tRecipe.mSpecialItems, aSpecialSlot)) { - if (tRecipe.mEnabled && aIsValidRecipe.test(tRecipe)) { - return ofSuccess(tRecipe); - } - } - } - } - - // And nothing has been found. - return NOT_FOUND; - } - - protected GT_Recipe addToItemMap(GT_Recipe aRecipe) { - for (ItemStack aStack : aRecipe.mInputs) if (aStack != null) { - GT_ItemStack tStack = new GT_ItemStack(aStack); - Collection<GT_Recipe> tList = mRecipeItemMap.computeIfAbsent(tStack, k -> new HashSet<>(1)); - tList.add(aRecipe); - } - return aRecipe; - } - - /** - * Whether this recipe map contains any fluid outputs. - */ - public boolean hasFluidOutputs() { - return mHasFluidOutputs; - } - - /** - * Whether this recipe map contains any fluid inputs. - */ - public boolean hasFluidInputs() { - return mRecipeFluidNameMap.size() != 0; - } - - /** - * Whether this recipe map contains special slot inputs. - */ - public boolean usesSpecialSlot() { - return mUsesSpecialSlot; - } - - public int getUsualFluidInputCount() { - return Math.max(usualFluidInputCount, hasFluidInputs() ? 1 : 0); - } - - public int getUsualFluidOutputCount() { - return Math.max(usualFluidOutputCount, hasFluidOutputs() ? 1 : 0); - } - - @Nullable - public IDrawable getOverlayForSlot(boolean isFluid, boolean isOutput, int index, boolean isSpecial) { - byte overlayKey = (byte) ((isFluid ? 1 : 0) + (isOutput ? 2 : 0) - + (index == 0 ? 4 : 0) - + (isSpecial ? 8 : 0)); - if (slotOverlays.containsKey(overlayKey)) { - return slotOverlays.get(overlayKey); - } - return null; - } - - @Nullable - public SteamTexture getOverlayForSlotSteam(boolean isFluid, boolean isOutput, int index, boolean isSpecial) { - byte overlayKey = (byte) ((isFluid ? 1 : 0) + (isOutput ? 2 : 0) - + (index == 0 ? 4 : 0) - + (isSpecial ? 8 : 0)); - if (slotOverlaysSteam.containsKey(overlayKey)) { - return slotOverlaysSteam.get(overlayKey); - } - return null; - } - - @Nullable - public SteamTexture getOverlayForSlotSteam(boolean isOutput, boolean isFirst) { - byte overlayKey = (byte) ((isOutput ? 2 : 0) + (isFirst ? 4 : 0)); - if (slotOverlaysSteam.containsKey(overlayKey)) { - return slotOverlaysSteam.get(overlayKey); - } - return null; - } - - public UITexture getProgressBarTexture() { - return progressBarTexture.get(); - } - - public FallbackableUITexture getProgressBarTextureRaw() { - return progressBarTexture; - } - - public UITexture getProgressBarTextureSteam(SteamVariant steamVariant) { - return progressBarTextureSteam.get(steamVariant); - } - - public int getProgressBarImageSize() { - if (progressBarImageSize != 0) { - return progressBarImageSize; - } - return switch (progressBarDirection) { - case UP, DOWN -> progressBarSize.height; - case CIRCULAR_CW -> Math.max(progressBarSize.width, progressBarSize.height); - default -> progressBarSize.width; - }; - } - - /** - * Adds slot backgrounds, progressBar, etc. - */ - public ModularWindow.Builder createNEITemplate(IItemHandlerModifiable itemInputsInventory, - IItemHandlerModifiable itemOutputsInventory, IItemHandlerModifiable specialSlotInventory, - IItemHandlerModifiable fluidInputsInventory, IItemHandlerModifiable fluidOutputsInventory, - Supplier<Float> progressSupplier, Pos2d windowOffset) { - ModularWindow.Builder builder = ModularWindow.builder(neiBackgroundSize) - .setBackground(ModularUITextures.VANILLA_BACKGROUND); - - UIHelper.forEachSlots( - (i, backgrounds, pos) -> builder.widget( - SlotWidget.phantom(itemInputsInventory, i) - .setBackground(backgrounds) - .setPos(pos) - .setSize(18, 18)), - (i, backgrounds, pos) -> builder.widget( - SlotWidget.phantom(itemOutputsInventory, i) - .setBackground(backgrounds) - .setPos(pos) - .setSize(18, 18)), - (i, backgrounds, pos) -> { - if (usesSpecialSlot()) builder.widget( - SlotWidget.phantom(specialSlotInventory, 0) - .setBackground(backgrounds) - .setPos(pos) - .setSize(18, 18)); - }, - (i, backgrounds, pos) -> builder.widget( - SlotWidget.phantom(fluidInputsInventory, i) - .setBackground(backgrounds) - .setPos(pos) - .setSize(18, 18)), - (i, backgrounds, pos) -> builder.widget( - SlotWidget.phantom(fluidOutputsInventory, i) - .setBackground(backgrounds) - .setPos(pos) - .setSize(18, 18)), - ModularUITextures.ITEM_SLOT, - ModularUITextures.FLUID_SLOT, - this, - mUsualInputCount, - mUsualOutputCount, - getUsualFluidInputCount(), - getUsualFluidOutputCount(), - SteamVariant.NONE, - windowOffset); - - addProgressBarUI(builder, progressSupplier, windowOffset); - addGregTechLogoUI(builder, windowOffset); - - for (Pair<IDrawable, Pair<Size, Pos2d>> specialTexture : specialTextures) { - builder.widget( - new DrawableWidget().setDrawable(specialTexture.getLeft()) - .setSize( - specialTexture.getRight() - .getLeft()) - .setPos( - specialTexture.getRight() - .getRight() - .add(windowOffset))); - } - - return builder; - } - - public void addProgressBarUI(ModularWindow.Builder builder, Supplier<Float> progressSupplier, - Pos2d windowOffset) { - builder.widget( - new ProgressBar().setTexture(getProgressBarTexture(), 20) - .setDirection(progressBarDirection) - .setProgress(progressSupplier) - .setSynced(false, false) - .setPos(progressBarPos.add(windowOffset)) - .setSize(progressBarSize)); - } - - public void addGregTechLogoUI(ModularWindow.Builder builder, Pos2d windowOffset) { - builder.widget( - new DrawableWidget().setDrawable(logo) - .setSize(logoSize) - .setPos(logoPos.add(windowOffset))); - } - - public void addRecipeSpecificDrawable(ModularWindow.Builder builder, Pos2d windowOffset, - Supplier<IDrawable> supplier, Pos2d pos, Size size) { - builder.widget( - new DrawableWidget().setDrawable(supplier) - .setSize(size) - .setPos(pos.add(windowOffset))); - } - - /** - * Overriding this method allows custom NEI stack placement - */ - public List<Pos2d> getItemInputPositions(int itemInputCount) { - return UIHelper.getItemInputPositions(itemInputCount); - } - - /** - * Overriding this method allows custom NEI stack placement - */ - public List<Pos2d> getItemOutputPositions(int itemOutputCount) { - return UIHelper.getItemOutputPositions(itemOutputCount); - } - - /** - * Overriding this method allows custom NEI stack placement - */ - public Pos2d getSpecialItemPosition() { - return UIHelper.getSpecialItemPosition(); - } - - /** - * Overriding this method allows custom NEI stack placement - */ - public List<Pos2d> getFluidInputPositions(int fluidInputCount) { - return UIHelper.getFluidInputPositions(fluidInputCount); - } - - /** - * Overriding this method allows custom NEI stack placement - */ - public List<Pos2d> getFluidOutputPositions(int fluidOutputCount) { - return UIHelper.getFluidOutputPositions(fluidOutputCount); - } - - public void drawNEIDescription(NEIRecipeInfo recipeInfo) { - drawNEIEnergyInfo(recipeInfo); - drawNEIDurationInfo(recipeInfo); - drawNEISpecialInfo(recipeInfo); - drawNEIRecipeOwnerInfo(recipeInfo); - } - - protected void drawNEIEnergyInfo(NEIRecipeInfo recipeInfo) { - GT_Recipe recipe = recipeInfo.recipe; - Power power = recipeInfo.power; - if (power.getEuPerTick() > 0) { - drawNEIText(recipeInfo, GT_Utility.trans("152", "Total: ") + power.getTotalPowerString()); - - String amperage = power.getAmperageString(); - String powerUsage = power.getPowerUsageString(); - if (amperage == null || amperage.equals("unspecified") || powerUsage.contains("(OC)")) { - drawNEIText(recipeInfo, GT_Utility.trans("153", "Usage: ") + powerUsage); - if (GT_Mod.gregtechproxy.mNEIOriginalVoltage) { - Power originalPower = getPowerFromRecipeMap(); - if (!(originalPower instanceof UnspecifiedEUPower)) { - originalPower.computePowerUsageAndDuration(recipe.mEUt, recipe.mDuration); - drawNEIText( - recipeInfo, - GT_Utility.trans("275", "Original voltage: ") + originalPower.getVoltageString()); - } - } - if (amperage != null && !amperage.equals("unspecified") && !amperage.equals("1")) { - drawNEIText(recipeInfo, GT_Utility.trans("155", "Amperage: ") + amperage); - } - } else if (amperage.equals("1")) { - drawNEIText(recipeInfo, GT_Utility.trans("154", "Voltage: ") + power.getVoltageString()); - } else { - drawNEIText(recipeInfo, GT_Utility.trans("153", "Usage: ") + powerUsage); - drawNEIText(recipeInfo, GT_Utility.trans("154", "Voltage: ") + power.getVoltageString()); - drawNEIText(recipeInfo, GT_Utility.trans("155", "Amperage: ") + amperage); - } - } - } - - protected void drawNEIDurationInfo(NEIRecipeInfo recipeInfo) { - Power power = recipeInfo.power; - if (power.getDurationTicks() > 0) { - String textToDraw = GT_Utility.trans("158", "Time: "); - if (GT_Mod.gregtechproxy.mNEIRecipeSecondMode) { - textToDraw += power.getDurationStringSeconds(); - if (power.getDurationSeconds() <= 1.0d) { - textToDraw += String.format(" (%s)", power.getDurationStringTicks()); - } - } else { - textToDraw += power.getDurationStringTicks(); - } - drawNEIText(recipeInfo, textToDraw); - } - } - - protected void drawNEISpecialInfo(NEIRecipeInfo recipeInfo) { - String[] recipeDesc = recipeInfo.recipe.getNeiDesc(); - if (recipeDesc != null) { - for (String s : recipeDesc) { - drawOptionalNEIText(recipeInfo, s); - } - } else if (neiSpecialInfoFormatter != null) { - drawNEITextMultipleLines( - recipeInfo, - neiSpecialInfoFormatter.format(recipeInfo, this::formatSpecialValue)); - } else { - drawOptionalNEIText(recipeInfo, getNEISpecialInfo(recipeInfo.recipe.mSpecialValue)); - } - } - - protected String getNEISpecialInfo(int specialValue) { - if (specialValue == -100 && GT_Mod.gregtechproxy.mLowGravProcessing) { - return GT_Utility.trans("159", "Needs Low Gravity"); - } else if (specialValue == -200 && GT_Mod.gregtechproxy.mEnableCleanroom) { - return GT_Utility.trans("160", "Needs Cleanroom"); - } else if (specialValue == -201) { - return GT_Utility.trans("206", "Scan for Assembly Line"); - } else if (specialValue == -300 && GT_Mod.gregtechproxy.mEnableCleanroom) { - return GT_Utility.trans("160.1", "Needs Cleanroom & LowGrav"); - } else if (specialValue == -400) { - return GT_Utility.trans("216", "Deprecated Recipe"); - } else if (hasSpecialValueFormat()) { - return formatSpecialValue(specialValue); - } - return null; - } - - private boolean hasSpecialValueFormat() { - return (GT_Utility.isStringValid(mNEISpecialValuePre)) || (GT_Utility.isStringValid(mNEISpecialValuePost)); - } - - protected String formatSpecialValue(int specialValue) { - return mNEISpecialValuePre + formatNumbers((long) specialValue * mNEISpecialValueMultiplier) - + mNEISpecialValuePost; - } - - protected void drawNEIRecipeOwnerInfo(NEIRecipeInfo recipeInfo) { - GT_Recipe recipe = recipeInfo.recipe; - if (GT_Mod.gregtechproxy.mNEIRecipeOwner) { - if (recipe.owners.size() > 1) { - drawNEIText( - recipeInfo, - EnumChatFormatting.ITALIC + GT_Utility.trans("273", "Original Recipe by: ") - + recipe.owners.get(0) - .getName()); - for (int i = 1; i < recipe.owners.size(); i++) { - drawNEIText( - recipeInfo, - EnumChatFormatting.ITALIC + GT_Utility.trans("274", "Modified by: ") - + recipe.owners.get(i) - .getName()); - } - } else if (recipe.owners.size() > 0) { - drawNEIText( - recipeInfo, - EnumChatFormatting.ITALIC + GT_Utility.trans("272", "Recipe by: ") - + recipe.owners.get(0) - .getName()); - } - } - if (GT_Mod.gregtechproxy.mNEIRecipeOwnerStackTrace && recipe.stackTraces != null - && !recipe.stackTraces.isEmpty()) { - drawNEIText(recipeInfo, "stackTrace:"); - // todo: good way to show all stacktraces - for (StackTraceElement stackTrace : recipe.stackTraces.get(0)) { - drawNEIText(recipeInfo, stackTrace.toString()); - } - } - } - - protected void drawNEIText(NEIRecipeInfo recipeInfo, String text) { - drawNEIText(recipeInfo, text, 10); - } - - /** - * Draws text on NEI recipe. - * - * @param yShift y position to shift after this text - */ - @SuppressWarnings("SameParameterValue") - protected void drawNEIText(NEIRecipeInfo recipeInfo, String text, int yShift) { - drawNEIText(recipeInfo, text, 10, yShift); - } - - /** - * Draws text on NEI recipe. - * - * @param xStart x position to start drawing - * @param yShift y position to shift after this text - */ - @SuppressWarnings("SameParameterValue") - protected void drawNEIText(NEIRecipeInfo recipeInfo, String text, int xStart, int yShift) { - Minecraft.getMinecraft().fontRenderer.drawString( - text, - xStart, - recipeInfo.yPos, - neiTextColorOverride != -1 ? neiTextColorOverride : 0x000000); - recipeInfo.yPos += yShift; - } - - protected void drawOptionalNEIText(NEIRecipeInfo recipeInfo, String text) { - if (GT_Utility.isStringValid(text) && !text.equals("unspecified")) { - drawNEIText(recipeInfo, text, 10); - } - } - - protected void drawNEITextMultipleLines(NEIRecipeInfo recipeInfo, List<String> texts) { - for (String text : texts) { - drawNEIText(recipeInfo, text, 10); - } - } - - public List<String> handleNEIItemTooltip(ItemStack stack, List<String> currentTip, - GT_NEI_DefaultHandler.CachedDefaultRecipe neiCachedRecipe) { - for (PositionedStack pStack : neiCachedRecipe.mInputs) { - if (stack == pStack.item) { - if (pStack instanceof GT_NEI_DefaultHandler.FixedPositionedStack) { - currentTip = handleNEIItemInputTooltip( - currentTip, - (GT_NEI_DefaultHandler.FixedPositionedStack) pStack); - } - break; - } - } - for (PositionedStack pStack : neiCachedRecipe.mOutputs) { - if (stack == pStack.item) { - if (pStack instanceof GT_NEI_DefaultHandler.FixedPositionedStack) { - currentTip = handleNEIItemOutputTooltip( - currentTip, - (GT_NEI_DefaultHandler.FixedPositionedStack) pStack); - } - break; - } - } - return currentTip; - } - - protected List<String> handleNEIItemInputTooltip(List<String> currentTip, - GT_NEI_DefaultHandler.FixedPositionedStack pStack) { - if (pStack.isNotConsumed()) { - currentTip.add(GRAY + GT_Utility.trans("151", "Does not get consumed in the process")); - } - return currentTip; - } - - protected List<String> handleNEIItemOutputTooltip(List<String> currentTip, - GT_NEI_DefaultHandler.FixedPositionedStack pStack) { - if (pStack.isChanceBased()) { - currentTip.add(GRAY + GT_Utility.trans("150", "Chance: ") + pStack.getChanceText()); - } - return currentTip; - } - - public void drawNEIOverlays(GT_NEI_DefaultHandler.CachedDefaultRecipe neiCachedRecipe) { - for (PositionedStack stack : neiCachedRecipe.mInputs) { - if (stack instanceof GT_NEI_DefaultHandler.FixedPositionedStack) { - drawNEIOverlayForInput((GT_NEI_DefaultHandler.FixedPositionedStack) stack); - } - } - for (PositionedStack stack : neiCachedRecipe.mOutputs) { - if (stack instanceof GT_NEI_DefaultHandler.FixedPositionedStack) { - drawNEIOverlayForOutput((GT_NEI_DefaultHandler.FixedPositionedStack) stack); - } - } - } - - protected void drawNEIOverlayForInput(GT_NEI_DefaultHandler.FixedPositionedStack stack) { - if (stack.isNotConsumed()) { - drawNEIOverlayText("NC", stack); - } - } - - protected void drawNEIOverlayForOutput(GT_NEI_DefaultHandler.FixedPositionedStack stack) { - if (stack.isChanceBased()) { - drawNEIOverlayText(stack.getChanceText(), stack); - } - } - - @SuppressWarnings("SameParameterValue") - protected void drawNEIOverlayText(String text, PositionedStack stack, int color, float scale, boolean shadow, - Alignment alignment) { - FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer; - int width = fontRenderer.getStringWidth(text); - int x = (int) ((stack.relx + 8 + 8 * alignment.x) / scale) - (width / 2 * (alignment.x + 1)); - int y = (int) ((stack.rely + 8 + 8 * alignment.y) / scale) - - (fontRenderer.FONT_HEIGHT / 2 * (alignment.y + 1)) - - (alignment.y - 1) / 2; - - GlStateManager.pushMatrix(); - GlStateManager.scale(scale, scale, 1); - fontRenderer.drawString(text, x, y, color, shadow); - GlStateManager.popMatrix(); - } - - protected void drawNEIOverlayText(String text, PositionedStack stack) { - drawNEIOverlayText( - text, - stack, - colorOverride.getTextColorOrDefault("nei_overlay_yellow", 0xFDD835), - 0.5f, - false, - Alignment.TopLeft); - } - - public void updateNEITextColorOverride() { - neiTextColorOverride = colorOverride.getTextColorOrDefault("nei", -1); - } - - public Power getPowerFromRecipeMap() { - // By default, assume generic EU LV power with no overclocks - Power power; - if (mShowVoltageAmperageInNEI) { - power = new EUPower((byte) 1, mAmperage); - } else { - power = new UnspecifiedEUPower((byte) 1, mAmperage); - } - return power; - } - - /** - * Use {@link #getItemInputPositions} or {@link #getSpecialItemPosition} or {@link #getFluidInputPositions} - * instead - */ - @Deprecated - public ArrayList<PositionedStack> getInputPositionedStacks(GT_Recipe recipe) { - return null; - } - - /** - * Use {@link #getItemOutputPositions} or {@link #getFluidOutputPositions} instead - */ - @Deprecated - public ArrayList<PositionedStack> getOutputPositionedStacks(GT_Recipe recipe) { - return null; - } - - public void addRecipe(Object o, FluidStack[] fluidInputArray, FluidStack[] fluidOutputArray) {} - } - - // ----------------------------------------------------------------------------------------------------------------- - // Here are a few Classes I use for Special Cases in some Machines without having to write a separate Machine Class. - // ----------------------------------------------------------------------------------------------------------------- - - /** - * Nicely display NEI with many items and fluids. Remember to call {@link GT_Recipe_Map#setUsualFluidInputCount} and - * {@link GT_Recipe_Map#setUsualFluidOutputCount}. If row count >= 6, it doesn't fit in 2 recipes per page, so - * change it via IMC. - */ - public static class GT_Recipe_Map_LargeNEI extends GT_Recipe_Map { - - private static final int xDirMaxCount = 3; - private static final int yOrigin = 8; - - public GT_Recipe_Map_LargeNEI(Collection<GT_Recipe> aRecipeList, String aUnlocalizedName, String aLocalName, - String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, - int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, - String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) { - super( - aRecipeList, - aUnlocalizedName, - aLocalName, - aNEIName, - aNEIGUIPath, - aUsualInputCount, - aUsualOutputCount, - aMinimalInputItems, - aMinimalInputFluids, - aAmperage, - aNEISpecialValuePre, - aNEISpecialValueMultiplier, - aNEISpecialValuePost, - aShowVoltageAmperageInNEI, - aNEIAllowed); - useModularUI(true); - setLogoPos(80, 62); - } - - @Override - public List<Pos2d> getItemInputPositions(int itemInputCount) { - return UIHelper.getGridPositions(itemInputCount, 16, yOrigin, xDirMaxCount); - } - - @Override - public List<Pos2d> getItemOutputPositions(int itemOutputCount) { - return UIHelper.getGridPositions(itemOutputCount, 106, yOrigin, xDirMaxCount); - } - - @Override - public List<Pos2d> getFluidInputPositions(int fluidInputCount) { - return UIHelper.getGridPositions(fluidInputCount, 16, yOrigin + getItemRowCount() * 18, xDirMaxCount); - } - - @Override - public List<Pos2d> getFluidOutputPositions(int fluidOutputCount) { - return UIHelper.getGridPositions(fluidOutputCount, 106, yOrigin + getItemRowCount() * 18, xDirMaxCount); - } - - @Override - public ModularWindow.Builder createNEITemplate(IItemHandlerModifiable itemInputsInventory, - IItemHandlerModifiable itemOutputsInventory, IItemHandlerModifiable specialSlotInventory, - IItemHandlerModifiable fluidInputsInventory, IItemHandlerModifiable fluidOutputsInventory, - Supplier<Float> progressSupplier, Pos2d windowOffset) { - // Delay setter so that calls to #setUsualFluidInputCount and #setUsualFluidOutputCount are considered - setNEIBackgroundSize(172, 82 + (Math.max(getItemRowCount() + getFluidRowCount() - 4, 0)) * 18); - return super.createNEITemplate( - itemInputsInventory, - itemOutputsInventory, - specialSlotInventory, - fluidInputsInventory, - fluidOutputsInventory, - progressSupplier, - windowOffset); - } - - private int getItemRowCount() { - return (Math.max(mUsualInputCount, mUsualOutputCount) - 1) / xDirMaxCount + 1; - } - - private int getFluidRowCount() { - return (Math.max(getUsualFluidInputCount(), getUsualFluidOutputCount()) - 1) / xDirMaxCount + 1; - } - } - - /** - * Display fluids where normally items are placed on NEI. - */ - public static class GT_Recipe_Map_FluidOnly extends GT_Recipe_Map { - - public GT_Recipe_Map_FluidOnly(Collection<GT_Recipe> aRecipeList, String aUnlocalizedName, String aLocalName, - String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, - int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, - String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) { - super( - aRecipeList, - aUnlocalizedName, - aLocalName, - aNEIName, - aNEIGUIPath, - aUsualInputCount, - aUsualOutputCount, - aMinimalInputItems, - aMinimalInputFluids, - aAmperage, - aNEISpecialValuePre, - aNEISpecialValueMultiplier, - aNEISpecialValuePost, - aShowVoltageAmperageInNEI, - aNEIAllowed); - useModularUI(true); - } - - @Override - public List<Pos2d> getFluidInputPositions(int fluidInputCount) { - return UIHelper.getItemInputPositions(fluidInputCount); - } - - @Override - public List<Pos2d> getFluidOutputPositions(int fluidOutputCount) { - return UIHelper.getItemOutputPositions(fluidOutputCount); - } - } - - /** - * Abstract Class for general Recipe Handling of non GT Recipes - */ - public abstract static class GT_Recipe_Map_NonGTRecipes extends GT_Recipe_Map { - - public GT_Recipe_Map_NonGTRecipes(Collection<GT_Recipe> aRecipeList, String aUnlocalizedName, String aLocalName, - String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, - int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, - String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) { - super( - aRecipeList, - aUnlocalizedName, - aLocalName, - aNEIName, - aNEIGUIPath, - aUsualInputCount, - aUsualOutputCount, - aMinimalInputItems, - aMinimalInputFluids, - aAmperage, - aNEISpecialValuePre, - aNEISpecialValueMultiplier, - aNEISpecialValuePost, - aShowVoltageAmperageInNEI, - aNEIAllowed); - } - - @Override - public boolean containsInput(ItemStack aStack) { - return false; - } - - @Override - public boolean containsInput(FluidStack aFluid) { - return false; - } - - @Override - public boolean containsInput(Fluid aFluid) { - return false; - } - - @Override - public GT_Recipe addRecipe(boolean aOptimize, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecial, - int[] aOutputChances, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, - int aSpecialValue) { - return null; - } - - @Override - public GT_Recipe addRecipe(boolean aOptimize, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecial, - FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue) { - return null; - } - - @Override - public GT_Recipe addRecipe(GT_Recipe aRecipe) { - return null; - } - - @Override - public GT_Recipe addFakeRecipe(boolean aCheckForCollisions, ItemStack[] aInputs, ItemStack[] aOutputs, - Object aSpecial, int[] aOutputChances, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, - int aEUt, int aSpecialValue) { - return null; - } - - @Override - public GT_Recipe addFakeRecipe(boolean aCheckForCollisions, ItemStack[] aInputs, ItemStack[] aOutputs, - Object aSpecial, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, - int aSpecialValue) { - return null; - } - - @Override - public GT_Recipe addFakeRecipe(boolean aCheckForCollisions, ItemStack[] aInputs, ItemStack[] aOutputs, - Object aSpecial, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, - int aSpecialValue, boolean hidden) { - return null; - } - - @Override - public GT_Recipe addFakeRecipe(boolean aCheckForCollisions, GT_Recipe aRecipe) { - return null; - } - - @Override - public GT_Recipe add(GT_Recipe aRecipe) { - return null; - } - - @Override - public void reInit() { - /**/ - } - - @Override - protected GT_Recipe addToItemMap(GT_Recipe aRecipe) { - return null; - } - } - - /** - * Just a Recipe Map with Utility specifically for Fuels. - */ - public static class GT_Recipe_Map_Fuel extends GT_Recipe_Map { - - private final Map<String, GT_Recipe> mRecipesByFluidInput = new HashMap<>(); - - public GT_Recipe_Map_Fuel(Collection<GT_Recipe> aRecipeList, String aUnlocalizedName, String aLocalName, - String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, - int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, - String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) { - super( - aRecipeList, - aUnlocalizedName, - aLocalName, - aNEIName, - aNEIGUIPath, - aUsualInputCount, - aUsualOutputCount, - aMinimalInputItems, - aMinimalInputFluids, - aAmperage, - aNEISpecialValuePre, - aNEISpecialValueMultiplier, - aNEISpecialValuePost, - aShowVoltageAmperageInNEI, - aNEIAllowed); - setDisableOptimize(true); - } - - public GT_Recipe addFuel(ItemStack aInput, ItemStack aOutput, int aFuelValueInEU) { - return addFuel(aInput, aOutput, null, null, 10000, aFuelValueInEU); - } - - public GT_Recipe addFuel(ItemStack aInput, ItemStack aOutput, int aChance, int aFuelValueInEU) { - return addFuel(aInput, aOutput, null, null, aChance, aFuelValueInEU); - } - - public GT_Recipe addFuel(FluidStack aFluidInput, FluidStack aFluidOutput, int aFuelValueInEU) { - return addFuel(null, null, aFluidInput, aFluidOutput, 10000, aFuelValueInEU); - } - - public GT_Recipe addFuel(ItemStack aInput, ItemStack aOutput, FluidStack aFluidInput, FluidStack aFluidOutput, - int aFuelValueInEU) { - return addFuel(aInput, aOutput, aFluidInput, aFluidOutput, 10000, aFuelValueInEU); - } - - public GT_Recipe addFuel(ItemStack aInput, ItemStack aOutput, FluidStack aFluidInput, FluidStack aFluidOutput, - int aChance, int aFuelValueInEU) { - return addRecipe( - true, - new ItemStack[] { aInput }, - new ItemStack[] { aOutput }, - null, - new int[] { aChance }, - new FluidStack[] { aFluidInput }, - new FluidStack[] { aFluidOutput }, - 0, - 0, - aFuelValueInEU); - } - - @Override - public GT_Recipe add(GT_Recipe aRecipe) { - aRecipe = super.add(aRecipe); - if (aRecipe.mInputs != null && GT_Utility.getNonnullElementCount(aRecipe.mInputs) == 1 - && (aRecipe.mFluidInputs == null || GT_Utility.getNonnullElementCount(aRecipe.mFluidInputs) == 0)) { - FluidStack tFluid = GT_Utility.getFluidForFilledItem(aRecipe.mInputs[0], true); - if (tFluid != null) { - tFluid.amount = 0; - mRecipesByFluidInput.put(tFluid.getUnlocalizedName(), aRecipe); - } - } else if ((aRecipe.mInputs == null || GT_Utility.getNonnullElementCount(aRecipe.mInputs) == 0) - && aRecipe.mFluidInputs != null - && GT_Utility.getNonnullElementCount(aRecipe.mFluidInputs) == 1 - && aRecipe.mFluidInputs[0] != null) { - mRecipesByFluidInput.put(aRecipe.mFluidInputs[0].getUnlocalizedName(), aRecipe); - } - return aRecipe; - } - - public GT_Recipe findFuel(FluidStack aFluidInput) { - return mRecipesByFluidInput.get(aFluidInput.getUnlocalizedName()); - } - } - - /** - * Special Class for Furnace Recipe handling. - */ - public static class GT_Recipe_Map_Furnace extends GT_Recipe_Map_NonGTRecipes { - - public GT_Recipe_Map_Furnace(Collection<GT_Recipe> aRecipeList, String aUnlocalizedName, String aLocalName, - String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, - int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, - String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) { - super( - aRecipeList, - aUnlocalizedName, - aLocalName, - aNEIName, - aNEIGUIPath, - aUsualInputCount, - aUsualOutputCount, - aMinimalInputItems, - aMinimalInputFluids, - aAmperage, - aNEISpecialValuePre, - aNEISpecialValueMultiplier, - aNEISpecialValuePost, - aShowVoltageAmperageInNEI, - aNEIAllowed); - } - - @Nonnull - @Override - public FindRecipeResult findRecipeWithResult(GT_Recipe aRecipe, Predicate<GT_Recipe> aIsValidRecipe, - boolean aNotUnificated, boolean aDontCheckStackSizes, long aVoltage, FluidStack[] aFluids, - ItemStack aSpecialSlot, ItemStack... aInputs) { - if (aInputs == null || aInputs.length == 0 || aInputs[0] == null) return NOT_FOUND; - if (aRecipe != null && aRecipe.isRecipeInputEqual(false, true, aFluids, aInputs)) - return FindRecipeResult.ofSuccess(aRecipe); - ItemStack tOutput = GT_ModHandler.getSmeltingOutput(aInputs[0], false, null); - return tOutput == null ? NOT_FOUND - : FindRecipeResult.ofSuccess( - new GT_Recipe( - false, - new ItemStack[] { GT_Utility.copyAmount(1, aInputs[0]) }, - new ItemStack[] { tOutput }, - null, - null, - null, - null, - 128, - 4, - 0)); - } - - @Override - public boolean containsInput(ItemStack aStack) { - return GT_ModHandler.getSmeltingOutput(aStack, false, null) != null; - } - } - - /** - * Special Class for Microwave Recipe handling. - */ - public static class GT_Recipe_Map_Microwave extends GT_Recipe_Map_NonGTRecipes { - - public GT_Recipe_Map_Microwave(Collection<GT_Recipe> aRecipeList, String aUnlocalizedName, String aLocalName, - String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, - int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, - String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) { - super( - aRecipeList, - aUnlocalizedName, - aLocalName, - aNEIName, - aNEIGUIPath, - aUsualInputCount, - aUsualOutputCount, - aMinimalInputItems, - aMinimalInputFluids, - aAmperage, - aNEISpecialValuePre, - aNEISpecialValueMultiplier, - aNEISpecialValuePost, - aShowVoltageAmperageInNEI, - aNEIAllowed); - } - - @Nonnull - @Override - public FindRecipeResult findRecipeWithResult(GT_Recipe aRecipe, Predicate<GT_Recipe> aIsValidRecipe, - boolean aNotUnificated, boolean aDontCheckStackSizes, long aVoltage, FluidStack[] aFluids, - ItemStack aSpecialSlot, ItemStack... aInputs) { - if (aInputs == null || aInputs.length == 0 || aInputs[0] == null) return NOT_FOUND; - if (aRecipe != null && aRecipe.isRecipeInputEqual(false, true, aFluids, aInputs)) - return FindRecipeResult.ofSuccess(aRecipe); - ItemStack tOutput = GT_ModHandler.getSmeltingOutput(aInputs[0], false, null); - - if (GT_Utility.areStacksEqual(aInputs[0], new ItemStack(Items.book, 1, W))) { - return FindRecipeResult.ofSuccess( - new GT_Recipe( - false, - new ItemStack[] { GT_Utility.copyAmount(1, aInputs[0]) }, - new ItemStack[] { - GT_Utility.getWrittenBook("Manual_Microwave", ItemList.Book_Written_03.get(1)) }, - null, - null, - null, - null, - 32, - 4, - 0)); - } - - // Check Container Item of Input since it is around the Input, then the Input itself, then Container Item of - // Output and last check the Output itself - for (ItemStack tStack : new ItemStack[] { GT_Utility.getContainerItem(aInputs[0], true), aInputs[0], - GT_Utility.getContainerItem(tOutput, true), tOutput }) if (tStack != null) { - if (GT_Utility.areStacksEqual(tStack, new ItemStack(Blocks.netherrack, 1, W), true) - || GT_Utility.areStacksEqual(tStack, new ItemStack(Blocks.tnt, 1, W), true) - || GT_Utility.areStacksEqual(tStack, new ItemStack(Items.egg, 1, W), true) - || GT_Utility.areStacksEqual(tStack, new ItemStack(Items.firework_charge, 1, W), true) - || GT_Utility.areStacksEqual(tStack, new ItemStack(Items.fireworks, 1, W), true) - || GT_Utility.areStacksEqual(tStack, new ItemStack(Items.fire_charge, 1, W), true)) { - GT_Log.exp.println( - "Microwave Explosion due to TNT || EGG || FIREWORKCHARGE || FIREWORK || FIRE CHARGE"); - return EXPLODE; - } - ItemData tData = GT_OreDictUnificator.getItemData(tStack); - - if (tData != null) { - if (tData.mMaterial != null && tData.mMaterial.mMaterial != null) { - if (tData.mMaterial.mMaterial.contains(SubTag.METAL) - || tData.mMaterial.mMaterial.contains(SubTag.EXPLOSIVE)) { - GT_Log.exp.println("Microwave Explosion due to METAL insertion"); - return EXPLODE; - } - if (tData.mMaterial.mMaterial.contains(SubTag.FLAMMABLE)) { - GT_Log.exp.println("Microwave INFLAMMATION due to FLAMMABLE insertion"); - return ON_FIRE; - } - } - for (MaterialStack tMaterial : tData.mByProducts) if (tMaterial != null) { - if (tMaterial.mMaterial.contains(SubTag.METAL) - || tMaterial.mMaterial.contains(SubTag.EXPLOSIVE)) { - GT_Log.exp.println("Microwave Explosion due to METAL insertion"); - return EXPLODE; - } - if (tMaterial.mMaterial.contains(SubTag.FLAMMABLE)) { - GT_Log.exp.println("Microwave INFLAMMATION due to FLAMMABLE insertion"); - return ON_FIRE; - } - } - } - if (TileEntityFurnace.getItemBurnTime(tStack) > 0) { - GT_Log.exp.println("Microwave INFLAMMATION due to BURNABLE insertion"); - return ON_FIRE; - } - } - - return tOutput == null ? NOT_FOUND - : FindRecipeResult.ofSuccess( - new GT_Recipe( - false, - new ItemStack[] { GT_Utility.copyAmount(1, aInputs[0]) }, - new ItemStack[] { tOutput }, - null, - null, - null, - null, - 32, - 4, - 0)); - } - - @Override - public boolean containsInput(ItemStack aStack) { - return GT_ModHandler.getSmeltingOutput(aStack, false, null) != null; - } - } - - /** - * Special Class for Unboxinator handling. - */ - public static class GT_Recipe_Map_Unboxinator extends GT_Recipe_Map { - - public GT_Recipe_Map_Unboxinator(Collection<GT_Recipe> aRecipeList, String aUnlocalizedName, String aLocalName, - String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, - int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, - String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) { - super( - aRecipeList, - aUnlocalizedName, - aLocalName, - aNEIName, - aNEIGUIPath, - aUsualInputCount, - aUsualOutputCount, - aMinimalInputItems, - aMinimalInputFluids, - aAmperage, - aNEISpecialValuePre, - aNEISpecialValueMultiplier, - aNEISpecialValuePost, - aShowVoltageAmperageInNEI, - aNEIAllowed); - } - - @Nonnull - @Override - public FindRecipeResult findRecipeWithResult(GT_Recipe aRecipe, Predicate<GT_Recipe> aIsValidRecipe, - boolean aNotUnificated, boolean aDontCheckStackSizes, long aVoltage, FluidStack[] aFluids, - ItemStack aSpecialSlot, ItemStack... aInputs) { - if (aInputs == null || aInputs.length == 0 || !ItemList.IC2_Scrapbox.isStackEqual(aInputs[0], false, true)) - return super.findRecipeWithResult( - aRecipe, - aIsValidRecipe, - aNotUnificated, - aDontCheckStackSizes, - aVoltage, - aFluids, - aSpecialSlot, - aInputs); - ItemStack tOutput = GT_ModHandler.getRandomScrapboxDrop(); - if (tOutput == null) return super.findRecipeWithResult( - aRecipe, - aIsValidRecipe, - aNotUnificated, - aDontCheckStackSizes, - aVoltage, - aFluids, - aSpecialSlot, - aInputs); - GT_Recipe rRecipe = new GT_Recipe( - false, - new ItemStack[] { ItemList.IC2_Scrapbox.get(1) }, - new ItemStack[] { tOutput }, - null, - null, - null, - null, - 16, - 1, - 0); - // It is not allowed to be buffered due to the random Output - rRecipe.mCanBeBuffered = false; - // Due to its randomness it is not good if there are Items in the Output Slot, because those Items could - // manipulate the outcome. - rRecipe.mNeedsEmptyOutput = true; - return FindRecipeResult.ofSuccess(rRecipe); - } - - @Override - public boolean containsInput(ItemStack aStack) { - return ItemList.IC2_Scrapbox.isStackEqual(aStack, false, true) || super.containsInput(aStack); - } - } - - /** - * Special Class for Fluid Canner handling. - */ - public static class GT_Recipe_Map_FluidCanner extends GT_Recipe_Map { - - public GT_Recipe_Map_FluidCanner(Collection<GT_Recipe> aRecipeList, String aUnlocalizedName, String aLocalName, - String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, - int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, - String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) { - super( - aRecipeList, - aUnlocalizedName, - aLocalName, - aNEIName, - aNEIGUIPath, - aUsualInputCount, - aUsualOutputCount, - aMinimalInputItems, - aMinimalInputFluids, - aAmperage, - aNEISpecialValuePre, - aNEISpecialValueMultiplier, - aNEISpecialValuePost, - aShowVoltageAmperageInNEI, - aNEIAllowed); - } - - @Nonnull - @Override - public FindRecipeResult findRecipeWithResult(GT_Recipe aRecipe, Predicate<GT_Recipe> aIsValidRecipe, - boolean aNotUnificated, boolean aDontCheckStackSizes, long aVoltage, FluidStack[] aFluids, - ItemStack aSpecialSlot, ItemStack... aInputs) { - FindRecipeResult result = super.findRecipeWithResult( - aRecipe, - aIsValidRecipe, - aNotUnificated, - aDontCheckStackSizes, - aVoltage, - aFluids, - aSpecialSlot, - aInputs); - if (aInputs == null || aInputs.length == 0 - || aInputs[0] == null - || result.isSuccessful() - || !GregTech_API.sPostloadFinished) return result; - - if (aFluids != null && aFluids.length > 0 && aFluids[0] != null) { - ItemStack tOutput = GT_Utility.fillFluidContainer(aFluids[0], aInputs[0], false, true); - FluidStack tFluid = GT_Utility.getFluidForFilledItem(tOutput, true); - if (tFluid != null) { - GT_Recipe recipe = new GT_Recipe( - false, - new ItemStack[] { GT_Utility.copyAmount(1, aInputs[0]) }, - new ItemStack[] { tOutput }, - null, - null, - new FluidStack[] { tFluid }, - null, - Math.max(tFluid.amount / 64, 16), - 1, - 0); - recipe.mCanBeBuffered = false; - return FindRecipeResult.ofSuccess(recipe); - } - } - FluidStack tFluid = GT_Utility.getFluidForFilledItem(aInputs[0], true); - if (tFluid != null) { - GT_Recipe recipe = new GT_Recipe( - false, - new ItemStack[] { GT_Utility.copyAmount(1, aInputs[0]) }, - new ItemStack[] { GT_Utility.getContainerItem(aInputs[0], true) }, - null, - null, - null, - new FluidStack[] { tFluid }, - Math.max(tFluid.amount / 64, 16), - 1, - 0); - recipe.mCanBeBuffered = false; - return FindRecipeResult.ofSuccess(recipe); - } - return NOT_FOUND; - } - - @Override - public boolean containsInput(ItemStack aStack) { - return aStack != null && (super.containsInput(aStack) || (aStack.getItem() instanceof IFluidContainerItem - && ((IFluidContainerItem) aStack.getItem()).getCapacity(aStack) > 0)); - } - - @Override - public boolean containsInput(FluidStack aFluid) { - return true; - } - - @Override - public boolean containsInput(Fluid aFluid) { - return true; - } - } - - /** - * Special Class for Recycler Recipe handling. - */ - public static class GT_Recipe_Map_Recycler extends GT_Recipe_Map_NonGTRecipes { - - public GT_Recipe_Map_Recycler(Collection<GT_Recipe> aRecipeList, String aUnlocalizedName, String aLocalName, - String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, - int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, - String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) { - super( - aRecipeList, - aUnlocalizedName, - aLocalName, - aNEIName, - aNEIGUIPath, - aUsualInputCount, - aUsualOutputCount, - aMinimalInputItems, - aMinimalInputFluids, - aAmperage, - aNEISpecialValuePre, - aNEISpecialValueMultiplier, - aNEISpecialValuePost, - aShowVoltageAmperageInNEI, - aNEIAllowed); - } - - @Nonnull - @Override - public FindRecipeResult findRecipeWithResult(GT_Recipe aRecipe, Predicate<GT_Recipe> aIsValidRecipe, - boolean aNotUnificated, boolean aDontCheckStackSizes, long aVoltage, FluidStack[] aFluids, - ItemStack aSpecialSlot, ItemStack... aInputs) { - if (aInputs == null || aInputs.length == 0 || aInputs[0] == null) return NOT_FOUND; - if (aRecipe != null && aRecipe.isRecipeInputEqual(false, true, aFluids, aInputs)) - return FindRecipeResult.ofSuccess(aRecipe); - return FindRecipeResult.ofSuccess( - new GT_Recipe( - false, - new ItemStack[] { GT_Utility.copyAmount(1, aInputs[0]) }, - new ItemStack[] { GT_ModHandler.getRecyclerOutput(aInputs[0], 0) }, - null, - new int[] { 1250 }, - null, - null, - 45, - 1, - 0)); - } - - @Override - public boolean containsInput(ItemStack aStack) { - return GT_ModHandler.getRecyclerOutput(aStack, 0) != null; - } - } - - /** - * Special Class for Macerator/RockCrusher Recipe handling. - */ - public static class GT_Recipe_Map_Macerator extends GT_Recipe_Map { - - public GT_Recipe_Map_Macerator(Collection<GT_Recipe> aRecipeList, String aUnlocalizedName, String aLocalName, - String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, - int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, - String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) { - super( - aRecipeList, - aUnlocalizedName, - aLocalName, - aNEIName, - aNEIGUIPath, - aUsualInputCount, - aUsualOutputCount, - aMinimalInputItems, - aMinimalInputFluids, - aAmperage, - aNEISpecialValuePre, - aNEISpecialValueMultiplier, - aNEISpecialValuePost, - aShowVoltageAmperageInNEI, - aNEIAllowed); - } - - @Nonnull - @Override - public FindRecipeResult findRecipeWithResult(GT_Recipe aRecipe, Predicate<GT_Recipe> aIsValidRecipe, - boolean aNotUnificated, boolean aDontCheckStackSizes, long aVoltage, FluidStack[] aFluids, - ItemStack aSpecialSlot, ItemStack... aInputs) { - if (aInputs == null || aInputs.length == 0 || aInputs[0] == null || !GregTech_API.sPostloadFinished) - return super.findRecipeWithResult( - aRecipe, - aIsValidRecipe, - aNotUnificated, - aDontCheckStackSizes, - aVoltage, - aFluids, - aSpecialSlot, - aInputs); - FindRecipeResult result = super.findRecipeWithResult( - aRecipe, - aIsValidRecipe, - aNotUnificated, - aDontCheckStackSizes, - aVoltage, - aFluids, - aSpecialSlot, - aInputs); - if (result.isSuccessful()) return result; - - try { - List<ItemStack> tRecipeOutputs = mods.railcraft.api.crafting.RailcraftCraftingManager.rockCrusher - .getRecipe(GT_Utility.copyAmount(1, aInputs[0])) - .getRandomizedOuputs(); - if (tRecipeOutputs != null) { - GT_Recipe recipe = new GT_Recipe( - false, - new ItemStack[] { GT_Utility.copyAmount(1, aInputs[0]) }, - tRecipeOutputs.toArray(new ItemStack[0]), - null, - null, - null, - null, - 800, - 2, - 0); - recipe.mCanBeBuffered = false; - recipe.mNeedsEmptyOutput = true; - return FindRecipeResult.ofSuccess(recipe); - } - } catch (NoClassDefFoundError e) { - if (D1) GT_Log.err.println("Railcraft Not loaded"); - } catch (NullPointerException e) { - /**/ - } - - ItemStack tComparedInput = GT_Utility.copyOrNull(aInputs[0]); - ItemStack[] tOutputItems = GT_ModHandler.getMachineOutput( - tComparedInput, - ic2.api.recipe.Recipes.macerator.getRecipes(), - true, - new NBTTagCompound(), - null, - null, - null); - if (tComparedInput != null && GT_Utility.arrayContainsNonNull(tOutputItems)) { - return FindRecipeResult.ofSuccess( - new GT_Recipe( - false, - new ItemStack[] { - GT_Utility.copyAmount(aInputs[0].stackSize - tComparedInput.stackSize, aInputs[0]) }, - tOutputItems, - null, - null, - null, - null, - 400, - 2, - 0)); - } - return NOT_FOUND; - } - - @Override - public boolean containsInput(ItemStack aStack) { - return super.containsInput(aStack) || GT_Utility.arrayContainsNonNull( - GT_ModHandler.getMachineOutput( - GT_Utility.copyAmount(64, aStack), - ic2.api.recipe.Recipes.macerator.getRecipes(), - false, - new NBTTagCompound(), - null, - null, - null)); - } - } - - /** - * Special Class for Assembler handling. - */ - public static class GT_Recipe_Map_Assembler extends GT_Recipe_Map { - - public GT_Recipe_Map_Assembler(Collection<GT_Recipe> aRecipeList, String aUnlocalizedName, String aLocalName, - String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, - int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, - String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) { - super( - aRecipeList, - aUnlocalizedName, - aLocalName, - aNEIName, - aNEIGUIPath, - aUsualInputCount, - aUsualOutputCount, - aMinimalInputItems, - aMinimalInputFluids, - aAmperage, - aNEISpecialValuePre, - aNEISpecialValueMultiplier, - aNEISpecialValuePost, - aShowVoltageAmperageInNEI, - aNEIAllowed); - } - - @Nonnull - @Override - public FindRecipeResult findRecipeWithResult(GT_Recipe aRecipe, Predicate<GT_Recipe> aIsValidRecipe, - boolean aNotUnificated, boolean aDontCheckStackSizes, long aVoltage, FluidStack[] aFluids, - ItemStack aSpecialSlot, ItemStack... aInputs) { - - FindRecipeResult result = super.findRecipeWithResult( - aRecipe, - aIsValidRecipe, - true, - aDontCheckStackSizes, - aVoltage, - aFluids, - aSpecialSlot, - aInputs); - /* - * Doesnt work, keep it as a reminder tho if (rRecipe == null){ Set<ItemStack> aInputs2 = new - * TreeSet<ItemStack>(); for (ItemStack aInput : aInputs) { aInputs2.add(aInput); } for (ItemStack aInput : - * aInputs) { aInputs2.remove(aInput); int[] oredictIDs = OreDictionary.getOreIDs(aInput); if ( - * oredictIDs.length > 1){ for (final int i : oredictIDs){ final ItemStack[] oredictIS = (ItemStack[]) - * OreDictionary.getOres(OreDictionary.getOreName(i)).toArray(); if (oredictIS != null && oredictIS.length > - * 1){ for (final ItemStack IS : oredictIS){ aInputs2.add(IS); ItemStack[] temp = (ItemStack[]) - * aInputs2.toArray(); rRecipe = super.findRecipe(aTileEntity, aRecipe, aNotUnificated, aVoltage, aFluids, - * aSpecialSlot,temp); if(rRecipe!= null){ break; } else { aInputs2.remove(IS); } } if(rRecipe!= null) - * break; } } if(rRecipe!= null) break; }else aInputs2.add(aInput); if(rRecipe!= null) break; } } - */ - if (aInputs == null || aInputs.length == 0 - || aInputs[0] == null - || !result.isSuccessful() - || !GregTech_API.sPostloadFinished) return result; - - GT_Recipe rRecipe = result.getRecipeNonNull(); - for (ItemStack aInput : aInputs) { - if (ItemList.Paper_Printed_Pages.isStackEqual(aInput, false, true)) { - rRecipe = rRecipe.copy(); - rRecipe.mCanBeBuffered = false; - rRecipe.mOutputs[0].setTagCompound(aInput.getTagCompound()); - } - } - return FindRecipeResult.ofSuccess(rRecipe); - } - } - - /** - * Special Class for Forming Press handling. - */ - public static class GT_Recipe_Map_FormingPress extends GT_Recipe_Map { - - public GT_Recipe_Map_FormingPress(Collection<GT_Recipe> aRecipeList, String aUnlocalizedName, String aLocalName, - String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, - int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, - String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) { - super( - aRecipeList, - aUnlocalizedName, - aLocalName, - aNEIName, - aNEIGUIPath, - aUsualInputCount, - aUsualOutputCount, - aMinimalInputItems, - aMinimalInputFluids, - aAmperage, - aNEISpecialValuePre, - aNEISpecialValueMultiplier, - aNEISpecialValuePost, - aShowVoltageAmperageInNEI, - aNEIAllowed); - } - - @Nonnull - @Override - public FindRecipeResult findRecipeWithResult(GT_Recipe aRecipe, Predicate<GT_Recipe> aIsValidRecipe, - boolean aNotUnificated, boolean aDontCheckStackSizes, long aVoltage, FluidStack[] aFluids, - ItemStack aSpecialSlot, ItemStack... aInputs) { - FindRecipeResult result = super.findRecipeWithResult( - aRecipe, - aIsValidRecipe, - aNotUnificated, - aDontCheckStackSizes, - aVoltage, - aFluids, - aSpecialSlot, - aInputs); - if (aInputs == null || aInputs.length < 2 || !GregTech_API.sPostloadFinished) return result; - if (!result.isSuccessful()) { - return findRenamingRecipe(aInputs); - } - for (ItemStack aMold : aInputs) { - if (ItemList.Shape_Mold_Credit.isStackEqual(aMold, false, true)) { - NBTTagCompound tNBT = aMold.getTagCompound(); - if (tNBT == null) tNBT = new NBTTagCompound(); - if (!tNBT.hasKey("credit_security_id")) tNBT.setLong("credit_security_id", System.nanoTime()); - aMold.setTagCompound(tNBT); - - GT_Recipe rRecipe = result.getRecipeNonNull(); - rRecipe = rRecipe.copy(); - rRecipe.mCanBeBuffered = false; - rRecipe.mOutputs[0].setTagCompound(tNBT); - return FindRecipeResult.ofSuccess(rRecipe); - } - } - return result; - } - - private ItemStack findNameMoldIndex(ItemStack[] inputs) { - for (ItemStack stack : inputs) { - if (ItemList.Shape_Mold_Name.isStackEqual(stack, false, true)) return stack; - } - return null; - } - - private ItemStack findStackToRename(ItemStack[] inputs, ItemStack mold) { - for (ItemStack stack : inputs) { - if (stack == mold || stack == null) continue; - return stack; - } - return null; - } - - @Nonnull - private FindRecipeResult findRenamingRecipe(ItemStack[] inputs) { - ItemStack mold = findNameMoldIndex(inputs); - if (mold == null) return NOT_FOUND; - ItemStack input = findStackToRename(inputs, mold); - if (input == null) return NOT_FOUND; - ItemStack output = GT_Utility.copyAmount(1, input); - if (output == null) return NOT_FOUND; - output.setStackDisplayName(mold.getDisplayName()); - GT_Recipe recipe = new GT_Recipe( - false, - new ItemStack[] { GT_Utility.copyAmount(0, mold), GT_Utility.copyAmount(1, input) }, - new ItemStack[] { output }, - null, - null, - null, - null, - 128, - 8, - 0); - recipe.mCanBeBuffered = false; - recipe.isNBTSensitive = true; - return FindRecipeResult.ofSuccess(recipe); - } - } - - /** - * Special Class for Printer handling. - */ - public static class GT_Recipe_Map_Printer extends GT_Recipe_Map { - - public GT_Recipe_Map_Printer(Collection<GT_Recipe> aRecipeList, String aUnlocalizedName, String aLocalName, - String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, - int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, - String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) { - super( - aRecipeList, - aUnlocalizedName, - aLocalName, - aNEIName, - aNEIGUIPath, - aUsualInputCount, - aUsualOutputCount, - aMinimalInputItems, - aMinimalInputFluids, - aAmperage, - aNEISpecialValuePre, - aNEISpecialValueMultiplier, - aNEISpecialValuePost, - aShowVoltageAmperageInNEI, - aNEIAllowed); - } - - @Nonnull - @Override - public FindRecipeResult findRecipeWithResult(GT_Recipe aRecipe, Predicate<GT_Recipe> aIsValidRecipe, - boolean aNotUnificated, boolean aDontCheckStackSizes, long aVoltage, FluidStack[] aFluids, - ItemStack aSpecialSlot, ItemStack... aInputs) { - FindRecipeResult result = super.findRecipeWithResult( - aRecipe, - aIsValidRecipe, - aNotUnificated, - aDontCheckStackSizes, - aVoltage, - aFluids, - aSpecialSlot, - aInputs); - if (aInputs == null || aInputs.length == 0 - || aInputs[0] == null - || aFluids == null - || aFluids.length == 0 - || aFluids[0] == null - || !GregTech_API.sPostloadFinished) return result; - - Dyes aDye = null; - for (Dyes tDye : Dyes.VALUES) if (tDye.isFluidDye(aFluids[0])) { - aDye = tDye; - break; - } - - if (aDye == null) return result; - - if (!result.isSuccessful()) { - ItemStack tOutput = GT_ModHandler.getAllRecipeOutput( - null, - aInputs[0], - aInputs[0], - aInputs[0], - aInputs[0], - ItemList.DYE_ONLY_ITEMS[aDye.mIndex].get(1), - aInputs[0], - aInputs[0], - aInputs[0], - aInputs[0]); - if (tOutput != null) { - GT_Recipe recipe = addRecipe( - new GT_Recipe( - true, - new ItemStack[] { GT_Utility.copyAmount(8, aInputs[0]) }, - new ItemStack[] { tOutput }, - null, - null, - new FluidStack[] { new FluidStack(aFluids[0].getFluid(), (int) L) }, - null, - 256, - 2, - 0), - false, - false, - true); - return recipe != null ? FindRecipeResult.ofSuccess(recipe) : NOT_FOUND; - } - - tOutput = GT_ModHandler - .getAllRecipeOutput(null, aInputs[0], ItemList.DYE_ONLY_ITEMS[aDye.mIndex].get(1)); - if (tOutput != null) { - GT_Recipe recipe = addRecipe( - new GT_Recipe( - true, - new ItemStack[] { GT_Utility.copyAmount(1, aInputs[0]) }, - new ItemStack[] { tOutput }, - null, - null, - new FluidStack[] { new FluidStack(aFluids[0].getFluid(), (int) L) }, - null, - 32, - 2, - 0), - false, - false, - true); - return recipe != null ? FindRecipeResult.ofSuccess(recipe) : NOT_FOUND; - } - } else { - GT_Recipe rRecipe = result.getRecipeNonNull(); - if (aInputs[0].getItem() == Items.paper) { - if (!ItemList.Tool_DataStick.isStackEqual(aSpecialSlot, false, true)) return NOT_FOUND; - NBTTagCompound tNBT = aSpecialSlot.getTagCompound(); - if (tNBT == null || GT_Utility.isStringInvalid(tNBT.getString("title")) - || GT_Utility.isStringInvalid(tNBT.getString("author"))) return NOT_FOUND; - - rRecipe = rRecipe.copy(); - rRecipe.mCanBeBuffered = false; - rRecipe.mOutputs[0].setTagCompound(tNBT); - return FindRecipeResult.ofSuccess(rRecipe); - } - if (aInputs[0].getItem() == Items.map) { - if (!ItemList.Tool_DataStick.isStackEqual(aSpecialSlot, false, true)) return NOT_FOUND; - NBTTagCompound tNBT = aSpecialSlot.getTagCompound(); - if (tNBT == null || !tNBT.hasKey("map_id")) return NOT_FOUND; - - rRecipe = rRecipe.copy(); - rRecipe.mCanBeBuffered = false; - rRecipe.mOutputs[0].setItemDamage(tNBT.getShort("map_id")); - return FindRecipeResult.ofSuccess(rRecipe); - } - if (ItemList.Paper_Punch_Card_Empty.isStackEqual(aInputs[0], false, true)) { - if (!ItemList.Tool_DataStick.isStackEqual(aSpecialSlot, false, true)) return NOT_FOUND; - NBTTagCompound tNBT = aSpecialSlot.getTagCompound(); - if (tNBT == null || !tNBT.hasKey("GT.PunchCardData")) return NOT_FOUND; - - rRecipe = rRecipe.copy(); - rRecipe.mCanBeBuffered = false; - rRecipe.mOutputs[0].setTagCompound( - GT_Utility.getNBTContainingString( - new NBTTagCompound(), - "GT.PunchCardData", - tNBT.getString("GT.PunchCardData"))); - return FindRecipeResult.ofSuccess(rRecipe); - } - } - return result; - } - - @Override - public boolean containsInput(ItemStack aStack) { - return true; - } - - @Override - public boolean containsInput(FluidStack aFluid) { - return super.containsInput(aFluid) || Dyes.isAnyFluidDye(aFluid); - } - - @Override - public boolean containsInput(Fluid aFluid) { - return super.containsInput(aFluid) || Dyes.isAnyFluidDye(aFluid); - } - } - - public static class GT_Recipe_Map_LargeBoilerFakeFuels extends GT_Recipe_Map { - - private static final List<String> ALLOWED_SOLID_FUELS = Arrays.asList( - GregTech_API.sMachineFile.mConfig.getStringList( - "LargeBoiler.allowedFuels", - ConfigCategories.machineconfig.toString(), - new String[] { "gregtech:gt.blockreinforced:6", "gregtech:gt.blockreinforced:7" }, - "Allowed fuels for the Large Titanium Boiler and Large Tungstensteel Boiler")); - - public GT_Recipe_Map_LargeBoilerFakeFuels() { - super( - new HashSet<>(55), - "gt.recipe.largeboilerfakefuels", - "Large Boiler", - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Default"), - 1, - 1, - 1, - 0, - 1, - E, - 1, - E, - true, - true); - GT_Recipe explanatoryRecipe = new GT_Recipe( - true, - new ItemStack[] {}, - new ItemStack[] {}, - null, - null, - null, - null, - 1, - 1, - 1); - explanatoryRecipe.setNeiDesc( - "Not all solid fuels are listed.", - "Any item that burns in a", - "vanilla furnace will burn in", - "a Large Bronze or Steel Boiler."); - addRecipe(explanatoryRecipe); - } - - public static boolean isAllowedSolidFuel(ItemStack stack) { - return isAllowedSolidFuel(Item.itemRegistry.getNameForObject(stack.getItem()), stack.getItemDamage()); - } - - public static boolean isAllowedSolidFuel(String itemRegistryName, int meta) { - return ALLOWED_SOLID_FUELS.contains(itemRegistryName + ":" + meta); - } - - public static boolean addAllowedSolidFuel(ItemStack stack) { - return addAllowedSolidFuel(Item.itemRegistry.getNameForObject(stack.getItem()), stack.getItemDamage()); - } - - public static boolean addAllowedSolidFuel(String itemregistryName, int meta) { - return ALLOWED_SOLID_FUELS.add(itemregistryName + ":" + meta); - } - - public GT_Recipe addDenseLiquidRecipe(GT_Recipe recipe) { - return addRecipe(recipe, ((double) recipe.mSpecialValue) / 10); - } - - public GT_Recipe addDieselRecipe(GT_Recipe recipe) { - return addRecipe(recipe, ((double) recipe.mSpecialValue) / 40); - } - - public void addSolidRecipes(ItemStack... itemStacks) { - for (ItemStack itemStack : itemStacks) { - addSolidRecipe(itemStack); - } - } - - public GT_Recipe addSolidRecipe(ItemStack fuelItemStack) { - boolean allowedFuel = false; - if (fuelItemStack != null) { - String registryName = Item.itemRegistry.getNameForObject(fuelItemStack.getItem()); - allowedFuel = ALLOWED_SOLID_FUELS.contains(registryName + ":" + fuelItemStack.getItemDamage()); - } - return addRecipe( - new GT_Recipe( - true, - new ItemStack[] { fuelItemStack }, - new ItemStack[] {}, - null, - null, - null, - null, - 1, - 0, - GT_ModHandler.getFuelValue(fuelItemStack) / 1600), - ((double) GT_ModHandler.getFuelValue(fuelItemStack)) / 1600, - allowedFuel); - } - - private GT_Recipe addRecipe(GT_Recipe recipe, double baseBurnTime, boolean isAllowedFuel) { - recipe = new GT_Recipe(recipe, true); - // Some recipes will have a burn time like 15.9999999 and % always rounds down - double floatErrorCorrection = 0.0001; - - double bronzeBurnTime = baseBurnTime * 2 + floatErrorCorrection; - bronzeBurnTime -= bronzeBurnTime % 0.05; - double steelBurnTime = baseBurnTime + floatErrorCorrection; - steelBurnTime -= steelBurnTime % 0.05; - double titaniumBurnTime = baseBurnTime * 0.3 + floatErrorCorrection; - titaniumBurnTime -= titaniumBurnTime % 0.05; - double tungstensteelBurnTime = baseBurnTime * 0.15 + floatErrorCorrection; - tungstensteelBurnTime -= tungstensteelBurnTime % 0.05; - - if (isAllowedFuel) { - recipe.setNeiDesc( - "Burn time in seconds:", - String.format("Bronze Boiler: %.4f", bronzeBurnTime), - String.format("Steel Boiler: %.4f", steelBurnTime), - String.format("Titanium Boiler: %.4f", titaniumBurnTime), - String.format("Tungstensteel Boiler: %.4f", tungstensteelBurnTime)); - } else { - recipe.setNeiDesc( - "Burn time in seconds:", - String.format("Bronze Boiler: %.4f", bronzeBurnTime), - String.format("Steel Boiler: %.4f", steelBurnTime), - "Titanium Boiler: Not allowed", - "Tungstenst. Boiler: Not allowed"); - } - - return super.addRecipe(recipe); - } - - private GT_Recipe addRecipe(GT_Recipe recipe, double baseBurnTime) { - recipe = new GT_Recipe(recipe, true); - // Some recipes will have a burn time like 15.9999999 and % always rounds down - double floatErrorCorrection = 0.0001; - - double bronzeBurnTime = baseBurnTime * 2 + floatErrorCorrection; - bronzeBurnTime -= bronzeBurnTime % 0.05; - double steelBurnTime = baseBurnTime + floatErrorCorrection; - steelBurnTime -= steelBurnTime % 0.05; - - recipe.setNeiDesc( - "Burn time in seconds:", - String.format("Bronze Boiler: %.4f", bronzeBurnTime), - String.format("Steel Boiler: %.4f", steelBurnTime), - "Titanium Boiler: Not allowed", - "Tungstenst. Boiler: Not allowed"); - - return super.addRecipe(recipe); - } - } - - public static class GT_Recipe_Map_IC2NuclearFake extends GT_Recipe_Map { - - public GT_Recipe_Map_IC2NuclearFake() { - super( - new HashSet<>(10), - "gt.recipe.ic2nuke", - "Fission", - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Default"), - 1, - 1, - 1, - 0, - 1, - E, - 1, - E, - true, - true); - setLogo(GT_UITextures.PICTURE_RADIATION_WARNING); - setLogoPos(152, 24); - setNEIBackgroundSize(172, 60); - setProgressBar(GT_UITextures.PROGRESSBAR_ARROW, ProgressBar.Direction.RIGHT); - } - - /** - * Add a breeder cell. - * - * @param input raw stack. should be undamaged. - * @param output breed output - * @param heatMultiplier bonus progress per neutron pulse per heat step - * @param heatStep divisor for hull heat - * @param reflector true if also acts as a neutron reflector, false otherwise. - * @param requiredPulses progress required to complete breeding - * @return added fake recipe - */ - public GT_Recipe addBreederCell(ItemStack input, ItemStack output, boolean reflector, int heatStep, - int heatMultiplier, int requiredPulses) { - return addFakeRecipe( - input, - output, - reflector ? "Neutron reflecting breeder cell" : "Heat neutral Breeder Cell", - String.format("Every %d reactor hull heat", heatStep), - String.format("increase speed by %d00%%", heatMultiplier), - String.format("Required pulses: %d", requiredPulses)); - } - - public GT_Recipe addFakeRecipe(ItemStack input, ItemStack output, String... neiDesc) { - GT_Recipe r = new GT_Recipe( - new ItemStack[] { input }, - new ItemStack[] { output }, - null, - new int[] { 10000 }, - null, - null, - 0, - 0, - 0); - r.setNeiDesc(neiDesc); - return addRecipe(r, true, true, false); - } - } - - public static class GT_Recipe_Map_LargeChemicalReactor extends GT_Recipe_Map_LargeNEI { - - private static final int TOTAL_INPUT_COUNT = 6; - private static final int OUTPUT_COUNT = 6; - - public GT_Recipe_Map_LargeChemicalReactor() { - super( - new HashSet<>(1000), - "gt.recipe.largechemicalreactor", - "Large Chemical Reactor", - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "LCRNEI"), - TOTAL_INPUT_COUNT, - OUTPUT_COUNT, - 0, - 0, - 1, - E, - 1, - E, - true, - true); - } - - @Override - public GT_Recipe addRecipe(boolean aOptimize, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecial, - int[] aOutputChances, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, - int aSpecialValue) { - aOptimize = false; - ArrayList<ItemStack> adjustedInputs = new ArrayList<>(); - ArrayList<ItemStack> adjustedOutputs = new ArrayList<>(); - ArrayList<FluidStack> adjustedFluidInputs = new ArrayList<>(); - ArrayList<FluidStack> adjustedFluidOutputs = new ArrayList<>(); - - if (aInputs == null) { - aInputs = new ItemStack[0]; - } else { - aInputs = ArrayExt.withoutTrailingNulls(aInputs, ItemStack[]::new); - } - - for (ItemStack input : aInputs) { - FluidStack inputFluidContent = FluidContainerRegistry.getFluidForFilledItem(input); - if (inputFluidContent != null) { - inputFluidContent.amount *= input.stackSize; - if (inputFluidContent.getFluid() - .getName() - .equals("ic2steam")) { - inputFluidContent = GT_ModHandler.getSteam(inputFluidContent.amount); - } - adjustedFluidInputs.add(inputFluidContent); - } else { - ItemData itemData = GT_OreDictUnificator.getItemData(input); - if (itemData != null && itemData.hasValidPrefixMaterialData() - && itemData.mMaterial.mMaterial == Materials.Empty) { - continue; - } else { - if (itemData != null && itemData.hasValidPrefixMaterialData() - && itemData.mPrefix == OrePrefixes.cell) { - ItemStack dustStack = itemData.mMaterial.mMaterial.getDust(input.stackSize); - if (dustStack != null) { - adjustedInputs.add(dustStack); - } else { - adjustedInputs.add(input); - } - } else { - adjustedInputs.add(input); - } - } - } - - if (aFluidInputs == null) { - aFluidInputs = new FluidStack[0]; - } - } - Collections.addAll(adjustedFluidInputs, aFluidInputs); - aInputs = adjustedInputs.toArray(new ItemStack[0]); - aFluidInputs = adjustedFluidInputs.toArray(new FluidStack[0]); - - if (aOutputs == null) { - aOutputs = new ItemStack[0]; - } else { - aOutputs = ArrayExt.withoutTrailingNulls(aOutputs, ItemStack[]::new); - } - - for (ItemStack output : aOutputs) { - FluidStack outputFluidContent = FluidContainerRegistry.getFluidForFilledItem(output); - if (outputFluidContent != null) { - outputFluidContent.amount *= output.stackSize; - if (outputFluidContent.getFluid() - .getName() - .equals("ic2steam")) { - outputFluidContent = GT_ModHandler.getSteam(outputFluidContent.amount); - } - adjustedFluidOutputs.add(outputFluidContent); - } else { - ItemData itemData = GT_OreDictUnificator.getItemData(output); - if (!(itemData != null && itemData.hasValidPrefixMaterialData() - && itemData.mMaterial.mMaterial == Materials.Empty)) { - adjustedOutputs.add(output); - } - } - } - if (aFluidOutputs == null) { - aFluidOutputs = new FluidStack[0]; - } - Collections.addAll(adjustedFluidOutputs, aFluidOutputs); - aOutputs = adjustedOutputs.toArray(new ItemStack[0]); - aFluidOutputs = adjustedFluidOutputs.toArray(new FluidStack[0]); - - return super.addRecipe( - aOptimize, - aInputs, - aOutputs, - aSpecial, - aOutputChances, - aFluidInputs, - aFluidOutputs, - aDuration, - aEUt, - aSpecialValue); - } - } - - public static class GT_Recipe_Map_DistillationTower extends GT_Recipe_Map { - - public GT_Recipe_Map_DistillationTower() { - super( - new HashSet<>(110), - "gt.recipe.distillationtower", - "Distillation Tower", - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "DistillationTower"), - 2, - 1, - 0, - 0, - 1, - E, - 1, - E, - true, - true); - setLogoPos(80, 62); - } - - @Override - public IDrawable getOverlayForSlot(boolean isFluid, boolean isOutput, int index, boolean isSpecial) { - if (isOutput) { - if (isFluid) { - return GT_UITextures.OVERLAY_SLOTS_NUMBER[index + 1]; - } else { - return GT_UITextures.OVERLAY_SLOTS_NUMBER[0]; - } - } - return super.getOverlayForSlot(isFluid, false, index, isSpecial); - } - - @Override - public List<Pos2d> getItemOutputPositions(int itemOutputCount) { - return Collections.singletonList(new Pos2d(106, 62)); - } - - @Override - public List<Pos2d> getFluidOutputPositions(int fluidOutputCount) { - List<Pos2d> results = new ArrayList<>(); - for (int i = 1; i < fluidOutputCount + 1; i++) { - results.add(new Pos2d(106 + (i % 3) * 18, 62 - (i / 3) * 18)); - } - return results; - } - } - - public static class GT_Recipe_Map_OilCracker extends GT_Recipe_Map { - - private final Set<String> mValidCatalystFluidNames = new HashSet<>(); - - public GT_Recipe_Map_OilCracker() { - super( - new HashSet<>(70), - "gt.recipe.craker", - "Oil Cracker", - null, - GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "OilCracker"), - 1, - 1, - 1, - 2, - 1, - E, - 1, - E, - true, - true); - } - - @Override - public GT_Recipe add(GT_Recipe aRecipe) { - GT_Recipe ret = super.add(aRecipe); - if (ret != null && ret.mFluidInputs != null && ret.mFluidInputs.length > 1 && ret.mFluidInputs[1] != null) { - mValidCatalystFluidNames.add( - ret.mFluidInputs[1].getFluid() - .getName()); - } - return ret; - } - - public boolean isValidCatalystFluid(FluidStack aFluidStack) { - return mValidCatalystFluidNames.contains( - aFluidStack.getFluid() - .getName()); - } - } - public static class GT_Recipe_WithAlt extends GT_Recipe { ItemStack[][] mOreDictAlt; + /** + * Only for {@link GT_RecipeBuilder}. + */ GT_Recipe_WithAlt(ItemStack[] mInputs, ItemStack[] mOutputs, FluidStack[] mFluidInputs, FluidStack[] mFluidOutputs, int[] mChances, Object mSpecialItems, int mDuration, int mEUt, int mSpecialValue, boolean mEnabled, boolean mHidden, boolean mFakeRecipe, boolean mCanBeBuffered, - boolean mNeedsEmptyOutput, String[] neiDesc, ItemStack[][] mOreDictAlt) { + boolean mNeedsEmptyOutput, boolean nbtSensitive, String[] neiDesc, + @Nullable IRecipeMetadataStorage metadataStorage, RecipeCategory recipeCategory, + ItemStack[][] mOreDictAlt) { super( mInputs, mOutputs, @@ -6299,7 +938,10 @@ public class GT_Recipe implements Comparable<GT_Recipe> { mFakeRecipe, mCanBeBuffered, mNeedsEmptyOutput, - neiDesc); + nbtSensitive, + neiDesc, + metadataStorage, + recipeCategory); this.mOreDictAlt = mOreDictAlt; } @@ -6335,191 +977,4 @@ public class GT_Recipe implements Comparable<GT_Recipe> { return GT_Utility.copyOrNull(mInputs[aIndex]); } } - - private static class ReplicatorFakeMap extends GT_Recipe_Map { - - public ReplicatorFakeMap(Collection<GT_Recipe> aRecipeList, String aUnlocalizedName, String aLocalName, - String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, - int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, - String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) { - super( - aRecipeList, - aUnlocalizedName, - aLocalName, - aNEIName, - aNEIGUIPath, - aUsualInputCount, - aUsualOutputCount, - aMinimalInputItems, - aMinimalInputFluids, - aAmperage, - aNEISpecialValuePre, - aNEISpecialValueMultiplier, - aNEISpecialValuePost, - aShowVoltageAmperageInNEI, - aNEIAllowed); - } - - @Override - public GT_Recipe addFakeRecipe(boolean aCheckForCollisions, ItemStack[] aInputs, ItemStack[] aOutputs, - Object aSpecial, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, - int aSpecialValue) { - AtomicInteger ai = new AtomicInteger(); - Optional.ofNullable(GT_OreDictUnificator.getAssociation(aOutputs[0])) - .map(itemData -> itemData.mMaterial) - .map(materialsStack -> materialsStack.mMaterial) - .map(materials -> materials.mElement) - .map(Element::getMass) - .ifPresent(e -> { - aFluidInputs[0].amount = (int) GT_MetaTileEntity_Replicator.cubicFluidMultiplier(e); - ai.set(GT_Utility.safeInt(aFluidInputs[0].amount * 512L, 1)); - }); - return addFakeRecipe( - aCheckForCollisions, - new GT_Recipe( - false, - aInputs, - aOutputs, - aSpecial, - null, - aFluidInputs, - aFluidOutputs, - ai.get(), - aEUt, - aSpecialValue)); - } - } - - public static class GT_Recipe_Map_ComplexFusion extends GT_Recipe_Map { - - public GT_Recipe_Map_ComplexFusion(Collection<GT_Recipe> aRecipeList, String aUnlocalizedName, - String aLocalName, String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, - int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, - int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, - boolean aNEIAllowed) { - super( - aRecipeList, - aUnlocalizedName, - aLocalName, - aNEIName, - aNEIGUIPath, - aUsualInputCount, - aUsualOutputCount, - aMinimalInputItems, - aMinimalInputFluids, - aAmperage, - aNEISpecialValuePre, - aNEISpecialValueMultiplier, - aNEISpecialValuePost, - aShowVoltageAmperageInNEI, - aNEIAllowed); - } - - @Override - public GT_Recipe addRecipe(int[] aOutputChances, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, - int aDuration, int aEUt, int aSpecialValue) { - return addRecipe( - new GT_Recipe( - false, - null, - null, - null, - aOutputChances, - aFluidInputs, - aFluidOutputs, - aDuration, - aEUt, - aSpecialValue), - false, - false, - false); - } - - @Override - public List<Pos2d> getFluidInputPositions(int fluidInputCount) { - return UIHelper.getGridPositions(fluidInputCount, 7, 9, 4); - } - - @Override - public List<Pos2d> getFluidOutputPositions(int fluidOutputCount) { - return UIHelper.getGridPositions(fluidOutputCount, 97, 9, 4); - } - } - - public static class GT_Recipe_Map_AssemblyLineFake extends GT_Recipe_Map { - - public GT_Recipe_Map_AssemblyLineFake(Collection<GT_Recipe> aRecipeList, String aUnlocalizedName, - String aLocalName, String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, - int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, - int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, - boolean aNEIAllowed) { - super( - aRecipeList, - aUnlocalizedName, - aLocalName, - aNEIName, - aNEIGUIPath, - aUsualInputCount, - aUsualOutputCount, - aMinimalInputItems, - aMinimalInputFluids, - aAmperage, - aNEISpecialValuePre, - aNEISpecialValueMultiplier, - aNEISpecialValuePost, - aShowVoltageAmperageInNEI, - aNEIAllowed); - setNEITransferRect(new Rectangle(146, 26, 10, 18)); - } - - @Override - public List<Pos2d> getItemInputPositions(int itemInputCount) { - return UIHelper.getGridPositions(itemInputCount, 16, 8, 4); - } - - @Override - public List<Pos2d> getItemOutputPositions(int itemOutputCount) { - return Collections.singletonList(new Pos2d(142, 8)); - } - - @Override - public Pos2d getSpecialItemPosition() { - return new Pos2d(142, 44); - } - - @Override - public List<Pos2d> getFluidInputPositions(int fluidInputCount) { - return UIHelper.getGridPositions(fluidInputCount, 106, 8, 1); - } - - @Override - public void addProgressBarUI(ModularWindow.Builder builder, Supplier<Float> progressSupplier, - Pos2d windowOffset) { - int bar1Width = 17; - int bar2Width = 18; - builder.widget( - new ProgressBar().setTexture(GT_UITextures.PROGRESSBAR_ASSEMBLY_LINE_1, 17) - .setDirection(ProgressBar.Direction.RIGHT) - .setProgress(() -> progressSupplier.get() * ((float) (bar1Width + bar2Width) / bar1Width)) - .setSynced(false, false) - .setPos(new Pos2d(88, 8).add(windowOffset)) - .setSize(bar1Width, 72)); - builder.widget( - new ProgressBar().setTexture(GT_UITextures.PROGRESSBAR_ASSEMBLY_LINE_2, 18) - .setDirection(ProgressBar.Direction.RIGHT) - .setProgress( - () -> (progressSupplier.get() - ((float) bar1Width / (bar1Width + bar2Width))) - * ((float) (bar1Width + bar2Width) / bar2Width)) - .setSynced(false, false) - .setPos(new Pos2d(124, 8).add(windowOffset)) - .setSize(bar2Width, 72)); - builder.widget( - new ProgressBar().setTexture(GT_UITextures.PROGRESSBAR_ASSEMBLY_LINE_3, 18) - .setDirection(ProgressBar.Direction.UP) - .setProgress(progressSupplier) - .setSynced(false, false) - .setPos(new Pos2d(146, 26).add(windowOffset)) - .setSize(10, 18)); - } - } } diff --git a/src/main/java/gregtech/api/util/GT_RecipeBuilder.java b/src/main/java/gregtech/api/util/GT_RecipeBuilder.java index 3fa8d91da0..271ea28d87 100644 --- a/src/main/java/gregtech/api/util/GT_RecipeBuilder.java +++ b/src/main/java/gregtech/api/util/GT_RecipeBuilder.java @@ -1,30 +1,34 @@ package gregtech.api.util; +import static gregtech.api.util.GT_RecipeMapUtil.SPECIAL_VALUE_ALIASES; import static gregtech.api.util.GT_Utility.copyFluidArray; import static gregtech.api.util.GT_Utility.copyItemArray; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; import java.util.List; -import java.util.Map; import java.util.Objects; import java.util.Optional; -import java.util.function.Function; import javax.annotation.Nonnull; +import javax.annotation.Nullable; import net.minecraft.item.ItemStack; import net.minecraft.launchwrapper.Launch; import net.minecraftforge.fluids.FluidStack; +import org.jetbrains.annotations.Contract; + import gregtech.GT_Mod; -import gregtech.api.interfaces.IGT_RecipeMap; +import gregtech.api.interfaces.IRecipeMap; +import gregtech.api.recipe.RecipeCategory; +import gregtech.api.recipe.RecipeMetadataKey; +import gregtech.api.recipe.metadata.IRecipeMetadataStorage; +import gregtech.api.recipe.metadata.RecipeMetadataStorage; import gregtech.api.util.extensions.ArrayExt; -@SuppressWarnings("unused") +@SuppressWarnings({ "unused", "UnusedReturnValue" }) public class GT_RecipeBuilder { // debug mode expose problems. panic mode help you check nothing is wrong-ish without you actively monitoring @@ -86,9 +90,13 @@ public class GT_RecipeBuilder { protected boolean fakeRecipe = false; protected boolean mCanBeBuffered = true; protected boolean mNeedsEmptyOutput = false; + protected boolean nbtSensitive = false; protected String[] neiDesc; + protected RecipeCategory recipeCategory; protected boolean optimize = true; - protected Map<MetadataIdentifier<?>, Object> additionalData = new HashMap<>(); + @Nullable + protected IRecipeMetadataStorage metadataStorage; + protected boolean checkForCollision = true; protected boolean valid = true; GT_RecipeBuilder() {} @@ -96,8 +104,8 @@ public class GT_RecipeBuilder { private GT_RecipeBuilder(ItemStack[] inputsBasic, Object[] inputsOreDict, ItemStack[] outputs, ItemStack[][] alts, FluidStack[] fluidInputs, FluidStack[] fluidOutputs, int[] chances, Object special, int duration, int eut, int specialValue, boolean enabled, boolean hidden, boolean fakeRecipe, boolean mCanBeBuffered, - boolean mNeedsEmptyOutput, String[] neiDesc, boolean optimize, - Map<MetadataIdentifier<?>, Object> additionalData, boolean valid) { + boolean mNeedsEmptyOutput, boolean nbtSensitive, String[] neiDesc, RecipeCategory recipeCategory, + boolean optimize, @Nullable IRecipeMetadataStorage metadataStorage, boolean checkForCollision, boolean valid) { this.inputsBasic = inputsBasic; this.inputsOreDict = inputsOreDict; this.outputs = outputs; @@ -114,9 +122,15 @@ public class GT_RecipeBuilder { this.fakeRecipe = fakeRecipe; this.mCanBeBuffered = mCanBeBuffered; this.mNeedsEmptyOutput = mNeedsEmptyOutput; + this.nbtSensitive = nbtSensitive; this.neiDesc = neiDesc; + this.recipeCategory = recipeCategory; this.optimize = optimize; - this.additionalData.putAll(additionalData); + this.metadataStorage = metadataStorage; + if (this.metadataStorage != null) { + this.metadataStorage = this.metadataStorage.copy(); + } + this.checkForCollision = checkForCollision; this.valid = valid; } @@ -137,6 +151,14 @@ public class GT_RecipeBuilder { return new GT_RecipeBuilder(); } + /** + * Creates empty builder where only duration and EU/t are set to 0. + */ + public static GT_RecipeBuilder empty() { + return new GT_RecipeBuilder().duration(0) + .eut(0); + } + private static boolean containsNull(Object[] arr) { return arr == null || Arrays.stream(arr) .anyMatch(Objects::isNull); @@ -156,7 +178,7 @@ public class GT_RecipeBuilder { return DEBUG_MODE_NULL || PANIC_MODE_NULL; } - private static void handleInvalidRecipe() { + public static void handleInvalidRecipe() { if (!DEBUG_MODE_INVALID && !PANIC_MODE_INVALID) { return; } @@ -247,14 +269,6 @@ public class GT_RecipeBuilder { return noOptimize(); } - /** - * @deprecated You don't need to call this method, RecipeBuilder now takes empty item input array by default. - */ - @Deprecated - public GT_RecipeBuilder noItemInputs() { - return this; - } - public GT_RecipeBuilder itemOutputs(ItemStack... outputs) { if (debugNull() && containsNull(outputs)) handleNullRecipeComponents("itemOutputs"); this.outputs = outputs; @@ -278,50 +292,18 @@ public class GT_RecipeBuilder { return this; } - /** - * @deprecated You don't need to call this method, RecipeBuilder now takes empty item output array by default. - */ - @Deprecated - public GT_RecipeBuilder noItemOutputs() { - return this; - } - public GT_RecipeBuilder fluidInputs(FluidStack... fluidInputs) { if (debugNull() && containsNull(fluidInputs)) handleNullRecipeComponents("fluidInputs"); this.fluidInputs = fix(fluidInputs); return this; } - /** - * @deprecated You don't need to call this method, RecipeBuilder now takes empty fluid input array by default. - */ - @Deprecated - public GT_RecipeBuilder noFluidInputs() { - return this; - } - public GT_RecipeBuilder fluidOutputs(FluidStack... fluidOutputs) { if (debugNull() && containsNull(fluidOutputs)) handleNullRecipeComponents("fluidOutputs"); this.fluidOutputs = fix(fluidOutputs); return this; } - /** - * @deprecated You don't need to call this method, RecipeBuilder now takes empty fluid output array by default. - */ - @Deprecated - public GT_RecipeBuilder noFluidOutputs() { - return this; - } - - /** - * @deprecated You don't need to call this method, RecipeBuilder now takes empty arrays by default. - */ - @Deprecated - public GT_RecipeBuilder noOutputs() { - return this; - } - public GT_RecipeBuilder outputChances(int... chances) { if (outputs != null && chances.length != outputs.length) { throw new IllegalArgumentException("Output chances array and items array length differs"); @@ -398,11 +380,21 @@ public class GT_RecipeBuilder { return this; } + public GT_RecipeBuilder nbtSensitive() { + this.nbtSensitive = true; + return this; + } + public GT_RecipeBuilder setNEIDesc(String... neiDesc) { this.neiDesc = neiDesc; return this; } + public GT_RecipeBuilder recipeCategory(RecipeCategory recipeCategory) { + this.recipeCategory = recipeCategory; + return this; + } + /** * Prevent the resulting recipe from optimizing recipe, which is a process that reduce recipe batch size. */ @@ -411,17 +403,51 @@ public class GT_RecipeBuilder { return this; } - public <T> GT_RecipeBuilder metadata(MetadataIdentifier<T> key, T value) { - additionalData.put(key, value); + /** + * Prevents checking collision with existing recipes when adding the built recipe. + */ + public GT_RecipeBuilder ignoreCollision() { + this.checkForCollision = false; return this; } - public <T> T getMetadata(MetadataIdentifier<T> key) { - return key.cast(additionalData.get(key)); + /** + * Sets metadata of the recipe. It can be used for recipe emitter to do special things, or for being stored in the + * built recipe and used for actual recipe processing. + * <p> + * {@link GT_RecipeConstants} has a series of metadata keys. Or you can create one by yourself. + */ + public <T> GT_RecipeBuilder metadata(RecipeMetadataKey<T> key, T value) { + if (metadataStorage == null) { + metadataStorage = new RecipeMetadataStorage(); + } + metadataStorage.store(key, value); + return this; + } + + /** + * Gets metadata already set for this builder. Can return null. Use + * {@link #getMetadataOrDefault(RecipeMetadataKey, Object)} + * if you want to specify default value. + */ + @Nullable + public <T> T getMetadata(RecipeMetadataKey<T> key) { + if (metadataStorage == null) { + return null; + } + return key.cast(metadataStorage.getMetadata(key)); } - public <T> T getMetadata(MetadataIdentifier<T> key, T defaultValue) { - return key.cast(additionalData.getOrDefault(key, defaultValue)); + /** + * Gets metadata already set for this builder with default value. Does not return null unless default value is null. + */ + @Contract("_, !null -> !null") + @Nullable + public <T> T getMetadataOrDefault(RecipeMetadataKey<T> key, T defaultValue) { + if (metadataStorage == null) { + return defaultValue; + } + return key.cast(metadataStorage.getMetadataOrDefault(key, defaultValue)); } public GT_RecipeBuilder requiresCleanRoom() { @@ -466,9 +492,12 @@ public class GT_RecipeBuilder { fakeRecipe, mCanBeBuffered, mNeedsEmptyOutput, + nbtSensitive, copy(neiDesc), + recipeCategory, optimize, - additionalData, + metadataStorage, + checkForCollision, valid); } @@ -493,9 +522,12 @@ public class GT_RecipeBuilder { fakeRecipe, mCanBeBuffered, mNeedsEmptyOutput, + nbtSensitive, copy(neiDesc), + recipeCategory, optimize, - Collections.emptyMap(), + null, + checkForCollision, valid); } @@ -553,6 +585,18 @@ public class GT_RecipeBuilder { return eut; } + public RecipeCategory getRecipeCategory() { + return recipeCategory; + } + + public boolean isOptimize() { + return optimize; + } + + public boolean isCheckForCollision() { + return checkForCollision; + } + // endregion // region validator @@ -581,7 +625,7 @@ public class GT_RecipeBuilder { /** * Validate if input item match requirement. Return as invalidated if fails prereq. Specify -1 as min to allow - * unset. Both bound inclusive. Only supposed to be called by IGT_RecipeMap and not client code. + * unset. Both bound inclusive. Only supposed to be called by IRecipeMap and not client code. */ public GT_RecipeBuilder validateNoInput() { return GT_Utility.isArrayEmptyOrNull(inputsBasic) ? this : invalidate(); @@ -589,7 +633,7 @@ public class GT_RecipeBuilder { /** * Validate if input fluid match requirement. Return as invalidated if fails prereq. Specify -1 as min to allow - * unset. Both bound inclusive. Only supposed to be called by IGT_RecipeMap and not client code. + * unset. Both bound inclusive. Only supposed to be called by IRecipeMap and not client code. */ public GT_RecipeBuilder validateNoInputFluid() { return GT_Utility.isArrayEmptyOrNull(fluidInputs) ? this : invalidate(); @@ -597,7 +641,7 @@ public class GT_RecipeBuilder { /** * Validate if output item match requirement. Return as invalidated if fails prereq. Specify -1 as min to allow - * unset. Both bound inclusive. Only supposed to be called by IGT_RecipeMap and not client code. + * unset. Both bound inclusive. Only supposed to be called by IRecipeMap and not client code. */ public GT_RecipeBuilder validateNoOutput() { return GT_Utility.isArrayEmptyOrNull(outputs) ? this : invalidate(); @@ -605,7 +649,7 @@ public class GT_RecipeBuilder { /** * Validate if output fluid match requirement. Return as invalidated if fails prereq. Specify -1 as min to allow - * unset. Both bound inclusive. Only supposed to be called by IGT_RecipeMap and not client code. + * unset. Both bound inclusive. Only supposed to be called by IRecipeMap and not client code. */ public GT_RecipeBuilder validateNoOutputFluid() { return GT_Utility.isArrayEmptyOrNull(fluidOutputs) ? this : invalidate(); @@ -613,7 +657,7 @@ public class GT_RecipeBuilder { /** * Validate if input item match requirement. Return as invalidated if fails prereq. Specify -1 as min to allow - * unset. Both bound inclusive. Only supposed to be called by IGT_RecipeMap and not client code. + * unset. Both bound inclusive. Only supposed to be called by IRecipeMap and not client code. */ public GT_RecipeBuilder validateInputCount(int min, int max) { if (inputsBasic == null) return min < 0 ? this : invalidate(); @@ -622,7 +666,7 @@ public class GT_RecipeBuilder { /** * Validate if input fluid match requirement. Return as invalidated if fails prereq. Specify -1 as min to allow - * unset. Both bound inclusive. Only supposed to be called by IGT_RecipeMap and not client code. + * unset. Both bound inclusive. Only supposed to be called by IRecipeMap and not client code. */ public GT_RecipeBuilder validateInputFluidCount(int min, int max) { if (fluidInputs == null) return min < 0 ? this : invalidate(); @@ -631,7 +675,7 @@ public class GT_RecipeBuilder { /** * Validate if output item match requirement. Return as invalidated if fails prereq. Specify -1 as min to allow - * unset. Both bound inclusive. Only supposed to be called by IGT_RecipeMap and not client code. + * unset. Both bound inclusive. Only supposed to be called by IRecipeMap and not client code. */ public GT_RecipeBuilder validateOutputCount(int min, int max) { if (outputs == null) return min < 0 ? this : invalidate(); @@ -640,7 +684,7 @@ public class GT_RecipeBuilder { /** * Validate if output fluid match requirement. Return as invalidated if fails prereq. Specify -1 as min to allow - * unset. Both bound inclusive. Only supposed to be called by IGT_RecipeMap and not client code. + * unset. Both bound inclusive. Only supposed to be called by IRecipeMap and not client code. */ public GT_RecipeBuilder validateOutputFluidCount(int min, int max) { if (fluidOutputs == null) return min < 0 ? this : invalidate(); @@ -669,6 +713,12 @@ public class GT_RecipeBuilder { // endregion + /** + * Builds new recipe, without custom behavior of recipemaps. For adding recipe to recipemap, + * use {@link #addTo} instead. + * + * @return Built recipe. Returns empty if failed to build. + */ public Optional<GT_Recipe> build() { if (!valid) { handleInvalidRecipe(); @@ -693,7 +743,10 @@ public class GT_RecipeBuilder { fakeRecipe, mCanBeBuffered, mNeedsEmptyOutput, - neiDesc))); + nbtSensitive, + neiDesc, + metadataStorage, + recipeCategory))); } public GT_RecipeBuilder forceOreDictInput() { @@ -728,7 +781,10 @@ public class GT_RecipeBuilder { fakeRecipe, mCanBeBuffered, mNeedsEmptyOutput, + nbtSensitive, neiDesc, + metadataStorage, + recipeCategory, alts))); } @@ -769,18 +825,36 @@ public class GT_RecipeBuilder { r.mHidden = hidden; r.mCanBeBuffered = mCanBeBuffered; r.mNeedsEmptyOutput = mNeedsEmptyOutput; + r.isNBTSensitive = nbtSensitive; r.mFakeRecipe = fakeRecipe; r.mEnabled = enabled; if (neiDesc != null) r.setNeiDesc(neiDesc); + applyDefaultSpecialValues(r); return r; } - public Collection<GT_Recipe> addTo(IGT_RecipeMap recipeMap) { + private void applyDefaultSpecialValues(GT_Recipe recipe) { + if (recipe.mSpecialValue != 0) return; + + int specialValue = 0; + if (getMetadataOrDefault(GT_RecipeConstants.LOW_GRAVITY, false)) specialValue -= 100; + if (getMetadataOrDefault(GT_RecipeConstants.CLEANROOM, false)) specialValue -= 200; + for (RecipeMetadataKey<Integer> ident : SPECIAL_VALUE_ALIASES) { + Integer metadata = getMetadataOrDefault(ident, null); + if (metadata != null) { + specialValue = metadata; + break; + } + } + recipe.mSpecialValue = specialValue; + } + + public Collection<GT_Recipe> addTo(IRecipeMap recipeMap) { return recipeMap.doAdd(this); } public GT_RecipeBuilder reset() { - additionalData.clear(); + metadataStorage = null; alts = null; chances = null; duration = -1; @@ -794,7 +868,9 @@ public class GT_RecipeBuilder { inputsOreDict = null; mCanBeBuffered = true; mNeedsEmptyOutput = false; + nbtSensitive = false; neiDesc = null; + recipeCategory = null; optimize = true; outputs = null; special = null; @@ -802,45 +878,4 @@ public class GT_RecipeBuilder { valid = true; return this; } - - public final static class MetadataIdentifier<T> { - - private static final Map<MetadataIdentifier<?>, MetadataIdentifier<?>> allIdentifiers = Collections - .synchronizedMap(new HashMap<>()); - private final Class<T> clazz; - private final String identifier; - - private MetadataIdentifier(Class<T> clazz, String identifier) { - this.clazz = clazz; - this.identifier = identifier; - } - - public static <T> MetadataIdentifier<T> create(Class<T> clazz, String identifier) { - MetadataIdentifier<T> key = new MetadataIdentifier<>(clazz, identifier); - // noinspection unchecked // The class uses type T to fill allIdentifiers - return (MetadataIdentifier<T>) allIdentifiers.computeIfAbsent(key, Function.identity()); - } - - public T cast(Object o) { - return clazz.cast(o); - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - - MetadataIdentifier<?> that = (MetadataIdentifier<?>) o; - - if (!clazz.equals(that.clazz)) return false; - return identifier.equals(that.identifier); - } - - @Override - public int hashCode() { - int result = clazz.hashCode(); - result = 31 * result + identifier.hashCode(); - return result; - } - } } diff --git a/src/main/java/gregtech/api/util/GT_RecipeConstants.java b/src/main/java/gregtech/api/util/GT_RecipeConstants.java index 2b92615c5f..8e728030f2 100644 --- a/src/main/java/gregtech/api/util/GT_RecipeConstants.java +++ b/src/main/java/gregtech/api/util/GT_RecipeConstants.java @@ -17,8 +17,11 @@ import cpw.mods.fml.common.registry.GameRegistry; import gregtech.api.GregTech_API; import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; -import gregtech.api.interfaces.IGT_RecipeMap; -import gregtech.api.util.GT_Recipe.GT_Recipe_Map; +import gregtech.api.interfaces.IRecipeMap; +import gregtech.api.recipe.RecipeCategories; +import gregtech.api.recipe.RecipeMaps; +import gregtech.api.recipe.RecipeMetadataKey; +import gregtech.api.recipe.metadata.SimpleRecipeMetadataKey; // this class is intended to be import-static-ed on every recipe script // so take care to not put unrelated stuff here! @@ -28,72 +31,77 @@ public class GT_RecipeConstants { * Set to true to signal the recipe require low gravity. do nothing if recipe set specialValue explicitly. Can * coexist with CLEANROOM just fine */ - public static final GT_RecipeBuilder.MetadataIdentifier<Boolean> LOW_GRAVITY = GT_RecipeBuilder.MetadataIdentifier + public static final RecipeMetadataKey<Boolean> LOW_GRAVITY = SimpleRecipeMetadataKey .create(Boolean.class, "low_gravity"); /** * Set to true to signal the recipe require cleanroom. do nothing if recipe set specialValue explicitly. Can coexist * with LOW_GRAVITY just fine */ - public static final GT_RecipeBuilder.MetadataIdentifier<Boolean> CLEANROOM = GT_RecipeBuilder.MetadataIdentifier + public static final RecipeMetadataKey<Boolean> CLEANROOM = SimpleRecipeMetadataKey .create(Boolean.class, "cleanroom"); /** * Common additive to use in recipe, e.g. for PBF, this is coal amount. */ - public static final GT_RecipeBuilder.MetadataIdentifier<Integer> ADDITIVE_AMOUNT = GT_RecipeBuilder.MetadataIdentifier + public static final RecipeMetadataKey<Integer> ADDITIVE_AMOUNT = SimpleRecipeMetadataKey .create(Integer.class, "additives"); /** * Used for fusion reactor. Denotes ignition threshold. */ - public static final GT_RecipeBuilder.MetadataIdentifier<Integer> FUSION_THRESHOLD = GT_RecipeBuilder.MetadataIdentifier + public static final RecipeMetadataKey<Integer> FUSION_THRESHOLD = SimpleRecipeMetadataKey .create(Integer.class, "fusion_threshold"); /** * Research time in a scanner used in ticks. */ - public static final GT_RecipeBuilder.MetadataIdentifier<Integer> RESEARCH_TIME = GT_RecipeBuilder.MetadataIdentifier + public static final RecipeMetadataKey<Integer> RESEARCH_TIME = SimpleRecipeMetadataKey .create(Integer.class, "research_time"); /** * Fuel type. TODO should we use enum directly? */ - public static final GT_RecipeBuilder.MetadataIdentifier<Integer> FUEL_TYPE = GT_RecipeBuilder.MetadataIdentifier + public static final RecipeMetadataKey<Integer> FUEL_TYPE = SimpleRecipeMetadataKey .create(Integer.class, "fuel_type"); /** * Fuel value. */ - public static final GT_RecipeBuilder.MetadataIdentifier<Integer> FUEL_VALUE = GT_RecipeBuilder.MetadataIdentifier + public static final RecipeMetadataKey<Integer> FUEL_VALUE = SimpleRecipeMetadataKey .create(Integer.class, "fuel_value"); /** - * Fuel value. + * Required heat for heating coil (Kelvin). */ - public static final GT_RecipeBuilder.MetadataIdentifier<Integer> COIL_HEAT = GT_RecipeBuilder.MetadataIdentifier + public static final RecipeMetadataKey<Integer> COIL_HEAT = SimpleRecipeMetadataKey .create(Integer.class, "coil_heat"); /** * Research item used by assline recipes. */ - public static final GT_RecipeBuilder.MetadataIdentifier<ItemStack> RESEARCH_ITEM = GT_RecipeBuilder.MetadataIdentifier + public static final RecipeMetadataKey<ItemStack> RESEARCH_ITEM = SimpleRecipeMetadataKey .create(ItemStack.class, "research_item"); /** * For assembler. It accepts a single item as oredict. It looks like no one uses this anyway... */ - public static final GT_RecipeBuilder.MetadataIdentifier<Object> OREDICT_INPUT = GT_RecipeBuilder.MetadataIdentifier + public static final RecipeMetadataKey<Object> OREDICT_INPUT = SimpleRecipeMetadataKey .create(Object.class, "oredict_input"); - /** - * Add fusion recipes. Dispatcher between complex fusion (which accepts arbitrarily many input/outputs) and classic - * fusion (2 in 1 out). + * Replicator output material. */ - public static final IGT_RecipeMap Fusion = IGT_RecipeMap.newRecipeMap(builder -> { - if (GT_Utility.isArrayEmptyOrNull(builder.getFluidInputs()) - || GT_Utility.isArrayEmptyOrNull(builder.getFluidOutputs())) return Collections.emptyList(); - if (builder.getFluidInputs().length > 2 || builder.getFluidOutputs().length > 2) - return GT_Recipe_Map.sComplexFusionRecipes.doAdd(builder); - return GT_Recipe_Map.sFusionRecipes.doAdd(builder); - }); + public static final RecipeMetadataKey<Materials> MATERIAL = SimpleRecipeMetadataKey + .create(Materials.class, "material"); + /** + * Marker for {@link #UniversalArcFurnace} to tell that the recipe belongs to recycling category. + */ + public static final RecipeMetadataKey<Boolean> RECYCLE = SimpleRecipeMetadataKey.create(Boolean.class, "recycle"); + /** + * For Microwave. + */ + public static final RecipeMetadataKey<Boolean> EXPLODE = SimpleRecipeMetadataKey.create(Boolean.class, "explode"); + /** + * For Microwave. + */ + public static final RecipeMetadataKey<Boolean> ON_FIRE = SimpleRecipeMetadataKey.create(Boolean.class, "on_fire"); /** * Add a arc furnace recipe. Adds to both normal arc furnace and plasma arc furnace. * Will override the fluid input with oxygen/plasma for the respective recipe maps, so there is no point setting it. */ - public static final IGT_RecipeMap UniversalArcFurnace = IGT_RecipeMap.newRecipeMap(builder -> { + public static final IRecipeMap UniversalArcFurnace = IRecipeMap.newRecipeMap(builder -> { if (!GT_Utility.isArrayOfLength(builder.getItemInputsBasic(), 1) || GT_Utility.isArrayEmptyOrNull(builder.getItemOutputs())) return Collections.emptyList(); int aDuration = builder.getDuration(); @@ -101,39 +109,45 @@ public class GT_RecipeConstants { return Collections.emptyList(); } builder.duration(aDuration); + boolean recycle = builder.getMetadataOrDefault(RECYCLE, false); Collection<GT_Recipe> ret = new ArrayList<>(); for (Materials mat : new Materials[] { Materials.Argon, Materials.Nitrogen }) { int tPlasmaAmount = (int) Math.max(1L, aDuration / (mat.getMass() * 16L)); - GT_RecipeBuilder b2 = builder.copy(); - b2.fluidInputs(mat.getPlasma(tPlasmaAmount)) + GT_RecipeBuilder plasmaBuilder = builder.copy() + .fluidInputs(mat.getPlasma(tPlasmaAmount)) .fluidOutputs(mat.getGas(tPlasmaAmount)); - ret.addAll(GT_Recipe_Map.sPlasmaArcFurnaceRecipes.doAdd(b2)); + if (recycle) { + plasmaBuilder.recipeCategory(RecipeCategories.plasmaArcFurnaceRecycling); + } + ret.addAll(RecipeMaps.plasmaArcFurnaceRecipes.doAdd(plasmaBuilder)); } - ret.addAll( - GT_Recipe_Map.sArcFurnaceRecipes.doAdd( - builder.copy() - .fluidInputs(Materials.Oxygen.getGas(aDuration)))); + GT_RecipeBuilder arcBuilder = builder.copy() + .fluidInputs(Materials.Oxygen.getGas(aDuration)); + if (recycle) { + arcBuilder.recipeCategory(RecipeCategories.arcFurnaceRecycling); + } + ret.addAll(RecipeMaps.arcFurnaceRecipes.doAdd(arcBuilder)); return ret; }); /** * Add a chemical reactor recipe to both LCR and singleblocks. */ - public static final IGT_RecipeMap UniversalChemical = IGT_RecipeMap.newRecipeMap(builder -> { + public static final IRecipeMap UniversalChemical = IRecipeMap.newRecipeMap(builder -> { for (ItemStack input : builder.getItemInputsBasic()) { // config >= 10 -> this is a special chemical recipe that output fluid/canned fluid variant. // it doesn't belong to multiblocks if (GT_Utility.isAnyIntegratedCircuit(input) && input.getItemDamage() >= 10) { - return builder.addTo(GT_Recipe_Map.sChemicalRecipes); + return builder.addTo(RecipeMaps.chemicalReactorRecipes); } } return GT_Utility.concat( builder.copy() - .addTo(GT_Recipe_Map.sChemicalRecipes), + .addTo(RecipeMaps.chemicalReactorRecipes), convertCellToFluid(builder, false) // LCR does not need cleanroom. .metadata(CLEANROOM, false) - .addTo(GT_Recipe_Map.sMultiblockChemicalRecipes)); + .addTo(RecipeMaps.multiblockChemicalReactorRecipes)); }); /** @@ -141,18 +155,22 @@ public class GT_RecipeConstants { * Uses {@link #RESEARCH_ITEM} metadata as research item, and {@link #RESEARCH_TIME} metadata as research time, unit * in ticks. */ - public static final IGT_RecipeMap AssemblyLine = IGT_RecipeMap.newRecipeMap(builder -> { + public static final IRecipeMap AssemblyLine = IRecipeMap.newRecipeMap(builder -> { Optional<GT_Recipe.GT_Recipe_WithAlt> rr = builder.forceOreDictInput() .validateInputCount(4, 16) .validateOutputCount(1, 1) .validateOutputFluidCount(-1, 0) .validateInputFluidCount(0, 4) .buildWithAlt(); + // noinspection SimplifyOptionalCallChains if (!rr.isPresent()) return Collections.emptyList(); GT_Recipe.GT_Recipe_WithAlt r = rr.get(); ItemStack[][] mOreDictAlt = r.mOreDictAlt; Object[] inputs = builder.getItemInputsOreDict(); ItemStack aResearchItem = builder.getMetadata(RESEARCH_ITEM); + if (aResearchItem == null) { + return Collections.emptyList(); + } ItemStack aOutput = r.mOutputs[0]; int tPersistentHash = 1; for (int i = 0, mOreDictAltLength = mOreDictAlt.length; i < mOreDictAltLength; i++) { @@ -198,13 +216,13 @@ public class GT_RecipeConstants { if (fluidInput == null) continue; tPersistentHash = tPersistentHash * 31 + GT_Utility.persistentHash(fluidInput, true, false); } - int aResearchTime = builder.getMetadata(RESEARCH_TIME); + int aResearchTime = builder.getMetadataOrDefault(RESEARCH_TIME, 0); tPersistentHash = tPersistentHash * 31 + aResearchTime; tPersistentHash = tPersistentHash * 31 + r.mDuration; tPersistentHash = tPersistentHash * 31 + r.mEUt; Collection<GT_Recipe> ret = new ArrayList<>(3); ret.add( - GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe( + RecipeMaps.scannerFakeRecipes.addFakeRecipe( false, new ItemStack[] { aResearchItem }, new ItemStack[] { aOutput }, @@ -216,7 +234,7 @@ public class GT_RecipeConstants { -201)); // means it's scanned ret.add( - GT_Recipe.GT_Recipe_Map.sAssemblylineVisualRecipes.addFakeRecipe( + RecipeMaps.assemblylineVisualRecipes.addFakeRecipe( false, r.mInputs, new ItemStack[] { aOutput }, @@ -248,13 +266,13 @@ public class GT_RecipeConstants { * Just like any normal assembler recipe, however it accepts one input item to be oredicted. Pass in the item to * oredict via {@link #OREDICT_INPUT}. It will be used along all other item inputs as input of this recipe. */ - public static IGT_RecipeMap AssemblerOD = IGT_RecipeMap.newRecipeMap(builder -> { + public static IRecipeMap AssemblerOD = IRecipeMap.newRecipeMap(builder -> { Collection<GT_Recipe> ret = new ArrayList<>(); for (ItemStack input : GT_OreDictUnificator.getOresImmutable(builder.getMetadata(OREDICT_INPUT))) { ret.addAll( builder.copy() .itemInputs(GT_RecipeMapUtil.appendArray(builder.getItemInputsBasic(), input)) - .addTo(GT_Recipe_Map.sAssemblerRecipes)); + .addTo(RecipeMaps.assemblerRecipes)); } return ret; }); @@ -265,17 +283,18 @@ public class GT_RecipeConstants { * Can use {@link FuelType#ordinal()} as a human-readable form of what FUEL_TYPE should be. * You can bypass this and add to relevant fuel maps directly if you wish. */ - public static IGT_RecipeMap Fuel = IGT_RecipeMap.newRecipeMap(builder -> { + public static IRecipeMap Fuel = IRecipeMap.newRecipeMap(builder -> { builder.validateInputCount(1, 1) .validateNoInputFluid() .validateOutputCount(-1, 1) .validateNoOutputFluid(); if (!builder.isValid()) return Collections.emptyList(); - int fuelType = builder.getMetadata(FUEL_TYPE); + Integer fuelType = builder.getMetadata(FUEL_TYPE); + if (fuelType == null) return Collections.emptyList(); builder.metadata( FUEL_VALUE, GregTech_API.sRecipeFile - .get("fuel_" + fuelType, builder.getItemInputBasic(0), builder.getMetadata(FUEL_VALUE))); + .get("fuel_" + fuelType, builder.getItemInputBasic(0), builder.getMetadataOrDefault(FUEL_VALUE, 0))); return FuelType.get(fuelType) .getTarget() .doAdd(builder); @@ -284,18 +303,18 @@ public class GT_RecipeConstants { public enum FuelType { // ORDER MATTERS. DO NOT INSERT ELEMENT BETWEEN EXISTING ONES - DieselFuel(GT_Recipe_Map.sDieselFuels), - GasTurbine(GT_Recipe_Map.sTurbineFuels), + DieselFuel(RecipeMaps.dieselFuels), + GasTurbine(RecipeMaps.gasTurbineFuels), // appears unused - HotFuel(GT_Recipe_Map.sHotFuels), - SemiFluid(GT_Recipe_Map.sDenseLiquidFuels), - PlasmaTurbine(GT_Recipe_Map.sPlasmaFuels), - Magic(GT_Recipe_Map.sMagicFuels),; + HotFuel(RecipeMaps.hotFuels), + SemiFluid(RecipeMaps.denseLiquidFuels), + PlasmaTurbine(RecipeMaps.plasmaFuels), + Magic(RecipeMaps.magicFuels),; private static final FuelType[] VALUES = values(); - private final IGT_RecipeMap target; + private final IRecipeMap target; - FuelType(IGT_RecipeMap target) { + FuelType(IRecipeMap target) { this.target = target; } @@ -304,7 +323,7 @@ public class GT_RecipeConstants { return VALUES[fuelType]; } - public IGT_RecipeMap getTarget() { + public IRecipeMap getTarget() { return target; } } diff --git a/src/main/java/gregtech/api/util/GT_RecipeMapUtil.java b/src/main/java/gregtech/api/util/GT_RecipeMapUtil.java index 577f91a170..3e97b56f84 100644 --- a/src/main/java/gregtech/api/util/GT_RecipeMapUtil.java +++ b/src/main/java/gregtech/api/util/GT_RecipeMapUtil.java @@ -26,12 +26,12 @@ import com.google.common.collect.Multimap; import cpw.mods.fml.common.Loader; import gnu.trove.list.TIntList; import gnu.trove.list.array.TIntArrayList; -import gregtech.api.interfaces.IGT_RecipeMap; +import gregtech.api.interfaces.IRecipeMap; +import gregtech.api.recipe.RecipeMetadataKey; /** * Define helpers useful in the creation of recipe maps. */ -// Do not place arbitrary stuff here! These are all statically imported in GT_Recipe.java file. public class GT_RecipeMapUtil { public static final Function<GT_Recipe, GT_Recipe> ALL_FAKE_RECIPE = r -> { @@ -65,10 +65,13 @@ public class GT_RecipeMapUtil { : r.mFluidOutputs[0].getFluid() .getName() : getStackConfigName(r.mOutputs[0]); - private static final Map<String, IGT_RecipeMap> addonRecipeMaps = new HashMap<>(); - private static final Multimap<String, Consumer<IGT_RecipeMap>> delayedActions = ArrayListMultimap.create(); + private static final Map<String, IRecipeMap> addonRecipeMaps = new HashMap<>(); + private static final Multimap<String, Consumer<IRecipeMap>> delayedActions = ArrayListMultimap.create(); - public static final Set<GT_RecipeBuilder.MetadataIdentifier<Integer>> SPECIAL_VALUE_ALIASES = new HashSet<>(); + /** + * Set of metadata that work as alias for special values. + */ + public static final Set<RecipeMetadataKey<Integer>> SPECIAL_VALUE_ALIASES = new HashSet<>(); public static <T> T[] appendArray(T[] arr, T val) { T[] newArr = Arrays.copyOf(arr, arr.length + 1); @@ -143,8 +146,7 @@ public class GT_RecipeMapUtil { * Currently unused, but you are advised to fill them, so that when The Day (tm) comes we don't * end up with a bunch of weird concurrency bugs. */ - public static void registerRecipeMap(String identifier, IGT_RecipeMap recipeMap, - RecipeMapDependency... dependencies) { + public static void registerRecipeMap(String identifier, IRecipeMap recipeMap, RecipeMapDependency... dependencies) { String modId = Loader.instance() .activeModContainer() .getModId(); @@ -152,7 +154,7 @@ public class GT_RecipeMapUtil { "do not register recipe map under the name of gregtech! do it in your own preinit!"); String id = modId + "@" + identifier; addonRecipeMaps.put(id, recipeMap); - for (Consumer<IGT_RecipeMap> action : delayedActions.get(id)) { + for (Consumer<IRecipeMap> action : delayedActions.get(id)) { action.accept(recipeMap); } } @@ -167,9 +169,9 @@ public class GT_RecipeMapUtil { * @param registerAction DO NOT ADD RECIPES TO MAPS OTHER THAN THE ONE PASSED TO YOU. DO NOT DO ANYTHING OTHER THAN * ADDING RECIPES TO THIS R */ - public static void registerRecipesFor(String modid, String identifier, Consumer<IGT_RecipeMap> registerAction) { + public static void registerRecipesFor(String modid, String identifier, Consumer<IRecipeMap> registerAction) { String id = modid + "@" + identifier; - IGT_RecipeMap map = addonRecipeMaps.get(id); + IRecipeMap map = addonRecipeMaps.get(id); if (map == null) delayedActions.put(id, registerAction); else registerAction.accept(map); } @@ -205,10 +207,10 @@ public class GT_RecipeMapUtil { public static final class RecipeMapDependency { - private final IGT_RecipeMap obj; + private final IRecipeMap obj; private final String id; - public RecipeMapDependency(IGT_RecipeMap obj, String id) { + public RecipeMapDependency(IRecipeMap obj, String id) { this.obj = obj; this.id = id; } @@ -217,7 +219,7 @@ public class GT_RecipeMapUtil { return new RecipeMapDependency(null, id); } - public static RecipeMapDependency create(IGT_RecipeMap obj) { + public static RecipeMapDependency create(IRecipeMap obj) { return new RecipeMapDependency(obj, null); } } diff --git a/src/main/java/gregtech/api/util/GT_RecipeRegistrator.java b/src/main/java/gregtech/api/util/GT_RecipeRegistrator.java index c057cf0b2f..560d26c41d 100644 --- a/src/main/java/gregtech/api/util/GT_RecipeRegistrator.java +++ b/src/main/java/gregtech/api/util/GT_RecipeRegistrator.java @@ -19,12 +19,13 @@ import static gregtech.api.enums.Materials.Steel; import static gregtech.api.enums.Materials.Steeleaf; import static gregtech.api.enums.Materials.Thaumium; import static gregtech.api.enums.Materials.Void; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sFluidExtractionRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sHammerRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sMaceratorRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sWiremillRecipes; +import static gregtech.api.recipe.RecipeMaps.fluidExtractionRecipes; +import static gregtech.api.recipe.RecipeMaps.hammerRecipes; +import static gregtech.api.recipe.RecipeMaps.maceratorRecipes; +import static gregtech.api.recipe.RecipeMaps.wiremillRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; +import static gregtech.api.util.GT_RecipeConstants.RECYCLE; import static gregtech.api.util.GT_RecipeConstants.UniversalArcFurnace; import static gregtech.api.util.GT_Utility.calculateRecipeEU; @@ -61,6 +62,7 @@ import gregtech.api.enums.SubTag; import gregtech.api.enums.TierEU; import gregtech.api.objects.ItemData; import gregtech.api.objects.MaterialStack; +import gregtech.api.recipe.RecipeCategories; import ic2.api.reactor.IReactorComponent; /** @@ -205,15 +207,6 @@ public class GT_RecipeRegistrator { || aMaterial.mSmeltInto.mStandardMoltenFluid == null || !aMaterial.contains(SubTag.SMELTING_TO_FLUID) || (L * aMaterialAmount) / (M * aStack.stackSize) <= 0) return; - ItemData tData = GT_OreDictUnificator.getItemData(aStack); - boolean tHide = aStack.getUnlocalizedName() - .startsWith("gt.blockmachines") && (GT_Mod.gregtechproxy.mHideRecyclingRecipes); - if (GT_Mod.gregtechproxy.mHideRecyclingRecipes && tData != null - && tData.hasValidPrefixData() - && !(tData.mPrefix == OrePrefixes.dust || tData.mPrefix == OrePrefixes.ingot - || tData.mPrefix == OrePrefixes.block | tData.mPrefix == OrePrefixes.plate)) { - tHide = true; - } ItemStack recipeOutput = aByproduct == null ? null : aByproduct.mMaterial.contains(SubTag.NO_SMELTING) || !aByproduct.mMaterial.contains(SubTag.METAL) @@ -224,22 +217,16 @@ public class GT_RecipeRegistrator { : null : GT_OreDictUnificator.getIngotOrDust(aByproduct.mMaterial.mSmeltInto, aByproduct.mAmount); + GT_RecipeBuilder builder = RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)); if (recipeOutput != null) { - RA.stdBuilder() - .itemInputs(GT_Utility.copyAmount(1, aStack)) - .itemOutputs(recipeOutput) - .fluidOutputs(aMaterial.mSmeltInto.getMolten((L * aMaterialAmount) / (M * aStack.stackSize))) - .duration((int) Math.max(1, (24 * aMaterialAmount) / M)) - .eut(Math.max(8, (int) Math.sqrt(2 * aMaterial.mSmeltInto.mStandardMoltenFluid.getTemperature()))) - .addTo(sFluidExtractionRecipes); - } else { - RA.stdBuilder() - .itemInputs(GT_Utility.copyAmount(1, aStack)) - .fluidOutputs(aMaterial.mSmeltInto.getMolten((L * aMaterialAmount) / (M * aStack.stackSize))) - .duration((int) Math.max(1, (24 * aMaterialAmount) / M)) - .eut(Math.max(8, (int) Math.sqrt(2 * aMaterial.mSmeltInto.mStandardMoltenFluid.getTemperature()))) - .addTo(sFluidExtractionRecipes); + builder.itemOutputs(recipeOutput); } + builder.fluidOutputs(aMaterial.mSmeltInto.getMolten((L * aMaterialAmount) / (M * aStack.stackSize))) + .duration((int) Math.max(1, (24 * aMaterialAmount) / M)) + .eut(Math.max(8, (int) Math.sqrt(2 * aMaterial.mSmeltInto.mStandardMoltenFluid.getTemperature()))) + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); } /** @@ -259,11 +246,10 @@ public class GT_RecipeRegistrator { aMaterialAmount /= aStack.stackSize; - boolean tHide = (aMaterial != Materials.Iron) && (GT_Mod.gregtechproxy.mHideRecyclingRecipes); if (aAllowAlloySmelter) GT_ModHandler.addSmeltingAndAlloySmeltingRecipe( GT_Utility.copyAmount(1, aStack), GT_OreDictUnificator.getIngot(aMaterial.mSmeltInto, aMaterialAmount), - tHide); + false); else GT_ModHandler.addSmeltingRecipe( GT_Utility.copyAmount(1, aStack), GT_OreDictUnificator.getIngot(aMaterial.mSmeltInto, aMaterialAmount)); @@ -285,12 +271,19 @@ public class GT_RecipeRegistrator { aData = new ItemData(aData); if (!aData.hasValidMaterialData()) return; - boolean tIron = false; + boolean isRecycle = true; for (MaterialStack tMaterial : aData.getAllMaterialStacks()) { if (tMaterial.mMaterial == Materials.Iron || tMaterial.mMaterial == Materials.Copper || tMaterial.mMaterial == Materials.WroughtIron - || tMaterial.mMaterial == Materials.AnnealedCopper) tIron = true; + || tMaterial.mMaterial == Materials.AnnealedCopper) { + ItemData stackData = GT_OreDictUnificator.getItemData(aStack); + if (stackData != null + && (stackData.mPrefix == OrePrefixes.ingot || stackData.mPrefix == OrePrefixes.dust)) { + // iron ingot/dust -> wrought iron, copper ingot/dust -> annealed copper + isRecycle = false; + } + } if (tMaterial.mMaterial.contains(SubTag.UNBURNABLE)) { tMaterial.mMaterial = tMaterial.mMaterial.mSmeltInto.mArcSmeltInto; @@ -334,7 +327,6 @@ public class GT_RecipeRegistrator { for (MaterialStack tMaterial : aData.getAllMaterialStacks()) tAmount += tMaterial.mAmount * tMaterial.mMaterial.getMass(); - boolean tHide = !tIron && GT_Mod.gregtechproxy.mHideRecyclingRecipes; ArrayList<ItemStack> outputs = new ArrayList<>(); if (GT_OreDictUnificator.getIngotOrDust(aData.mMaterial) != null) { outputs.add(GT_OreDictUnificator.getIngotOrDust(aData.mMaterial)); @@ -344,18 +336,15 @@ public class GT_RecipeRegistrator { outputs.add(GT_OreDictUnificator.getIngotOrDust(aData.getByProduct(i))); } } - if (outputs.size() != 0) { - ItemStack[] outputsArray = outputs.toArray(new ItemStack[0]); + if (!outputs.isEmpty()) { GT_RecipeBuilder recipeBuilder = GT_Values.RA.stdBuilder(); recipeBuilder.itemInputs(aStack) - .itemOutputs(outputsArray) + .itemOutputs(outputs.toArray(new ItemStack[0])) .fluidInputs(Materials.Oxygen.getGas((int) Math.max(16, tAmount / M))) .duration(((int) Math.max(16, tAmount / M)) * TICKS) - .eut(90); - if (tHide) { - recipeBuilder.hidden(); - } - recipeBuilder.addTo(UniversalArcFurnace); + .eut(90) + .metadata(RECYCLE, isRecycle) + .addTo(UniversalArcFurnace); } } @@ -391,8 +380,6 @@ public class GT_RecipeRegistrator { } { - boolean tHide = (aData.mMaterial.mMaterial != Materials.Iron) - && (GT_Mod.gregtechproxy.mHideRecyclingRecipes); ArrayList<ItemStack> outputs = new ArrayList<>(); if (GT_OreDictUnificator.getDust(aData.mMaterial) != null) { outputs.add(GT_OreDictUnificator.getDust(aData.mMaterial)); @@ -402,18 +389,16 @@ public class GT_RecipeRegistrator { outputs.add(GT_OreDictUnificator.getDust(aData.getByProduct(i))); } } - if (outputs.size() != 0) { + if (!outputs.isEmpty()) { ItemStack[] outputsArray = outputs.toArray(new ItemStack[0]); GT_RecipeBuilder recipeBuilder = GT_Values.RA.stdBuilder(); recipeBuilder.itemInputs(aStack) .itemOutputs(outputsArray) .duration( (aData.mMaterial.mMaterial == Materials.Marble ? 1 : (int) Math.max(16, tAmount / M)) * TICKS) - .eut(4); - if (tHide) { - recipeBuilder.hidden(); - } - recipeBuilder.addTo(sMaceratorRecipes); + .eut(4) + .recipeCategory(RecipeCategories.maceratorRecycling) + .addTo(maceratorRecipes); } } @@ -430,8 +415,8 @@ public class GT_RecipeRegistrator { .itemOutputs(GT_OreDictUnificator.getDust(aData.mMaterial)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sHammerRecipes); - + .recipeCategory(RecipeCategories.forgeHammerRecycling) + .addTo(hammerRecipes); break; } } @@ -687,7 +672,7 @@ public class GT_RecipeRegistrator { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial, multiplier)) .duration(baseDuration * TICKS) .eut(aEUt) - .addTo(sWiremillRecipes); + .addTo(wiremillRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_OreDictUnificator.get(prefix1, aMaterial, 2L / multiplier), @@ -695,7 +680,7 @@ public class GT_RecipeRegistrator { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt02, aMaterial, 1L)) .duration(((int) (baseDuration * 1.5f)) * TICKS) .eut(aEUt) - .addTo(sWiremillRecipes); + .addTo(wiremillRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_OreDictUnificator.get(prefix1, aMaterial, 4L / multiplier), @@ -703,7 +688,7 @@ public class GT_RecipeRegistrator { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt04, aMaterial, 1L)) .duration(baseDuration * 2 * TICKS) .eut(aEUt) - .addTo(sWiremillRecipes); + .addTo(wiremillRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_OreDictUnificator.get(prefix1, aMaterial, 8L / multiplier), @@ -711,7 +696,7 @@ public class GT_RecipeRegistrator { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt08, aMaterial, 1L)) .duration(((int) (baseDuration * 2.5f)) * TICKS) .eut(aEUt) - .addTo(sWiremillRecipes); + .addTo(wiremillRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_OreDictUnificator.get(prefix1, aMaterial, 12L / multiplier), @@ -719,7 +704,7 @@ public class GT_RecipeRegistrator { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt12, aMaterial, 1L)) .duration(baseDuration * 3 * TICKS) .eut(aEUt) - .addTo(sWiremillRecipes); + .addTo(wiremillRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_OreDictUnificator.get(prefix1, aMaterial, 16L / multiplier), @@ -727,7 +712,7 @@ public class GT_RecipeRegistrator { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt16, aMaterial, 1L)) .duration(((int) (baseDuration * 3.5f)) * TICKS) .eut(aEUt) - .addTo(sWiremillRecipes); + .addTo(wiremillRecipes); } if (GT_OreDictUnificator.get(prefix2, aMaterial, 1L) != null @@ -737,7 +722,7 @@ public class GT_RecipeRegistrator { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial, 2L / multiplier)) .duration(((int) (baseDuration * 0.5f)) * TICKS) .eut(aEUt) - .addTo(sWiremillRecipes); + .addTo(wiremillRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_OreDictUnificator.get(prefix2, aMaterial, 4L / multiplier), @@ -745,7 +730,7 @@ public class GT_RecipeRegistrator { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt02, aMaterial, 1L)) .duration(baseDuration * TICKS) .eut(aEUt) - .addTo(sWiremillRecipes); + .addTo(wiremillRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_OreDictUnificator.get(prefix2, aMaterial, 8L / multiplier), @@ -753,7 +738,7 @@ public class GT_RecipeRegistrator { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt04, aMaterial, 1L)) .duration(((int) (baseDuration * 1.5f)) * TICKS) .eut(aEUt) - .addTo(sWiremillRecipes); + .addTo(wiremillRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_OreDictUnificator.get(prefix2, aMaterial, 16L / multiplier), @@ -761,7 +746,7 @@ public class GT_RecipeRegistrator { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt08, aMaterial, 1L)) .duration(baseDuration * 2 * TICKS) .eut(aEUt) - .addTo(sWiremillRecipes); + .addTo(wiremillRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_OreDictUnificator.get(prefix2, aMaterial, 24L / multiplier), @@ -769,7 +754,7 @@ public class GT_RecipeRegistrator { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt12, aMaterial, 1L)) .duration(((int) (baseDuration * 2.5f)) * TICKS) .eut(aEUt) - .addTo(sWiremillRecipes); + .addTo(wiremillRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_OreDictUnificator.get(prefix2, aMaterial, 32L / multiplier), @@ -777,7 +762,7 @@ public class GT_RecipeRegistrator { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt16, aMaterial, 1L)) .duration(baseDuration * 3 * TICKS) .eut(aEUt) - .addTo(sWiremillRecipes); + .addTo(wiremillRecipes); } if (GT_OreDictUnificator.get(prefix1, aMaterial, 1L) != null && GT_OreDictUnificator.get(OrePrefixes.wireFine, aMaterial, 1L) != null) { @@ -786,7 +771,7 @@ public class GT_RecipeRegistrator { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireFine, aMaterial, 4L * multiplier)) .duration(baseDuration * TICKS) .eut(aEUt) - .addTo(sWiremillRecipes); + .addTo(wiremillRecipes); } if (GT_OreDictUnificator.get(prefix2, aMaterial, 1L) != null && GT_OreDictUnificator.get(OrePrefixes.wireFine, aMaterial, 1L) != null) { @@ -795,7 +780,7 @@ public class GT_RecipeRegistrator { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireFine, aMaterial, 2L * multiplier)) .duration(((int) (baseDuration * 0.5f)) * TICKS) .eut(aEUt) - .addTo(sWiremillRecipes); + .addTo(wiremillRecipes); } } diff --git a/src/main/java/gregtech/api/util/GT_StreamUtil.java b/src/main/java/gregtech/api/util/GT_StreamUtil.java new file mode 100644 index 0000000000..c29e611c4e --- /dev/null +++ b/src/main/java/gregtech/api/util/GT_StreamUtil.java @@ -0,0 +1,44 @@ +package gregtech.api.util; + +import java.util.Arrays; +import java.util.function.Supplier; +import java.util.stream.Stream; + +import javax.annotation.Nullable; +import javax.annotation.ParametersAreNonnullByDefault; + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +public final class GT_StreamUtil { + + /** + * Backport of {@link Stream#ofNullable}. + */ + public static <T> Stream<T> ofNullable(@Nullable T value) { + return value == null ? Stream.empty() : Stream.of(value); + } + + /** + * Returns a sequential ordered {@code Stream} whose elements are the specified values, + * if {@code condition} is true, otherwise returns an empty {@code Stream}. + * + * @param <T> the type of stream elements + * @param values the elements of the new stream + * @return the new stream + */ + public static <T> Stream<T> ofConditional(boolean condition, T[] values) { + return condition ? Arrays.stream(values) : Stream.empty(); + } + + /** + * Returns a sequential {@code Stream} containing a single element, which will be lazily evaluated from supplier. + * + * @param <T> the type of stream elements + * @param supplier the supplier for single stream element + * @return the new stream + */ + public static <T> Stream<T> ofSupplier(Supplier<T> supplier) { + return Stream.generate(supplier) + .limit(1); + } +} diff --git a/src/main/java/gregtech/api/util/GT_Utility.java b/src/main/java/gregtech/api/util/GT_Utility.java index 755dc0286e..13ce66ddbf 100644 --- a/src/main/java/gregtech/api/util/GT_Utility.java +++ b/src/main/java/gregtech/api/util/GT_Utility.java @@ -115,6 +115,7 @@ import com.google.common.base.Suppliers; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Maps; +import com.google.common.collect.SetMultimap; import com.gtnewhorizon.structurelib.alignment.IAlignment; import com.gtnewhorizon.structurelib.alignment.IAlignmentProvider; import com.mojang.authlib.GameProfile; @@ -158,6 +159,7 @@ import gregtech.api.objects.CollectorUtils; import gregtech.api.objects.GT_ItemStack; import gregtech.api.objects.GT_ItemStack2; import gregtech.api.objects.ItemData; +import gregtech.api.recipe.RecipeMaps; import gregtech.api.threads.GT_Runnable_Sound; import gregtech.api.util.extensions.ArrayExt; import gregtech.common.GT_Pollution; @@ -500,14 +502,6 @@ public class GT_Utility { } /** - * Do not use. It is rounding up voltage - */ - @Deprecated - public static long roundDownVoltage(long voltage) { - return roundUpVoltage(voltage); - } - - /** * Rounds up partial voltage that exceeds tiered voltage, e.g. 4,096 -> 8,192(IV) */ public static long roundUpVoltage(long voltage) { @@ -3133,6 +3127,20 @@ public class GT_Utility { return aMap; } + /** + * re-maps all Keys of a Map after the Keys were weakened. + */ + public static <X, Y> SetMultimap<X, Y> reMap(SetMultimap<X, Y> aMap) { + @SuppressWarnings("unchecked") + Map.Entry<X, Y>[] entries = aMap.entries() + .toArray(new Map.Entry[0]); + aMap.clear(); + for (Map.Entry<X, Y> entry : entries) { + aMap.put(entry.getKey(), entry.getValue()); + } + return aMap; + } + public static <X, Y extends Comparable<Y>> LinkedHashMap<X, Y> sortMapByValuesAcending(Map<X, Y> map) { return map.entrySet() .stream() @@ -4866,7 +4874,8 @@ public class GT_Utility { public static int getPlasmaFuelValueInEUPerLiterFromFluid(FluidStack aLiquid) { if (aLiquid == null) return 0; - GT_Recipe tFuel = GT_Recipe.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/api/util/MethodsReturnNonnullByDefault.java b/src/main/java/gregtech/api/util/MethodsReturnNonnullByDefault.java new file mode 100644 index 0000000000..2b2c310695 --- /dev/null +++ b/src/main/java/gregtech/api/util/MethodsReturnNonnullByDefault.java @@ -0,0 +1,22 @@ +package gregtech.api.util; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +import javax.annotation.Nonnull; +import javax.annotation.meta.TypeQualifierDefault; + +/** + * This annotation can be applied to a package or class to indicate that + * the methods in that element are nonnull by default unless there is: + * <ul> + * <li>An explicit nullness annotation + * <li>The method overrides a method in a superclass (in which case the + * annotation of the corresponding method in the superclass applies) + * </ul> + */ +@Nonnull +@TypeQualifierDefault({ ElementType.METHOD }) +@Retention(RetentionPolicy.RUNTIME) +public @interface MethodsReturnNonnullByDefault {} diff --git a/src/main/java/gregtech/api/util/VoidProtectionHelper.java b/src/main/java/gregtech/api/util/VoidProtectionHelper.java index 67e412bc83..440d8e63ef 100644 --- a/src/main/java/gregtech/api/util/VoidProtectionHelper.java +++ b/src/main/java/gregtech/api/util/VoidProtectionHelper.java @@ -13,7 +13,6 @@ import com.gtnewhorizon.gtnhlib.util.map.ItemStackMap; import gregtech.api.interfaces.fluid.IFluidStore; import gregtech.api.interfaces.tileentity.IVoidable; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; /** * Helper class to calculate how many parallels of items / fluids can fit in the output buses / hatches. @@ -52,27 +51,6 @@ public class VoidProtectionHelper { public VoidProtectionHelper() {} /** - * Sets MetaTE controller, with current configuration for void protection mode. - * - * @deprecated Use {@link #setMachine(IVoidable)} - */ - @Deprecated - public VoidProtectionHelper setController(GT_MetaTileEntity_MultiBlockBase machineMeta) { - return setMachine(machineMeta, machineMeta.protectsExcessItem(), machineMeta.protectsExcessFluid()); - } - - /** - * Sets MetaTE controller, with void protection mode forcibly. - * - * @deprecated Use {@link #setMachine(IVoidable, boolean, boolean)} - */ - @Deprecated - public VoidProtectionHelper setController(GT_MetaTileEntity_MultiBlockBase machineMeta, boolean protectExcessItem, - boolean protectExcessFluid) { - return setMachine(machineMeta, protectExcessItem, protectExcessFluid); - } - - /** * Sets machine, with current configuration for void protection mode. */ public VoidProtectionHelper setMachine(IVoidable machine) { diff --git a/src/main/java/gregtech/client/GT_GUI_ClientConfig.java b/src/main/java/gregtech/client/GT_GUI_ClientConfig.java index 1e23cd3e9d..1e9841369b 100644 --- a/src/main/java/gregtech/client/GT_GUI_ClientConfig.java +++ b/src/main/java/gregtech/client/GT_GUI_ClientConfig.java @@ -49,8 +49,14 @@ public class GT_GUI_ClientConfig extends GuiConfig { String name = entry.getKey(); int defaultStart = name.lastIndexOf('_'); String realName = defaultStart >= 0 ? name.substring(0, defaultStart) : name; - entry.getValue() - .setLanguageKey(String.format("%s.%s", category.getLanguagekey(), realName)); + if (categoryName.equals("nei.recipe_categories")) { + // reuse existing translation for RecipeCategory + entry.getValue() + .setLanguageKey(name); + } else { + entry.getValue() + .setLanguageKey(String.format("%s.%s", category.getLanguagekey(), realName)); + } } } } diff --git a/src/main/java/gregtech/common/GT_Client.java b/src/main/java/gregtech/common/GT_Client.java index bac93fa9e1..66d193f3ea 100644 --- a/src/main/java/gregtech/common/GT_Client.java +++ b/src/main/java/gregtech/common/GT_Client.java @@ -40,6 +40,8 @@ import net.minecraftforge.oredict.OreDictionary; import org.lwjgl.opengl.GL11; +import com.glodblock.github.nei.recipes.FluidRecipe; +import com.glodblock.github.nei.recipes.extractor.GregTech5RecipeExtractor; import com.gtnewhorizon.structurelib.alignment.IAlignment; import com.gtnewhorizon.structurelib.alignment.IAlignmentProvider; @@ -68,6 +70,8 @@ import gregtech.api.metatileentity.MetaPipeEntity; import gregtech.api.multitileentity.multiblock.base.MultiBlockPart; import gregtech.api.net.GT_Packet_ClientPreference; import gregtech.api.objects.GT_ItemStack; +import gregtech.api.recipe.RecipeCategory; +import gregtech.api.recipe.RecipeMaps; import gregtech.api.util.ColorsMetadataSection; import gregtech.api.util.ColorsMetadataSectionSerializer; import gregtech.api.util.GT_ClientPreference; @@ -75,7 +79,6 @@ import gregtech.api.util.GT_CoverBehaviorBase; import gregtech.api.util.GT_Log; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_PlayedSound; -import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; import gregtech.api.util.WorldSpawnedEventBuilder; import gregtech.common.blocks.GT_Item_Machines; @@ -94,6 +97,7 @@ import gregtech.common.tileentities.debug.GT_MetaTileEntity_AdvDebugStructureWri import gregtech.loaders.ExtraIcons; import gregtech.loaders.misc.GT_Bees; import gregtech.loaders.preload.GT_PreLoad; +import gregtech.nei.NEI_GT_Config; import ic2.api.tile.IWrenchable; // Referenced classes of package gregtech.common: @@ -593,6 +597,7 @@ public class GT_Client extends GT_Proxy implements Runnable { new GT_Renderer_Entity_Arrow(GT_Entity_Arrow_Potion.class, "arrow_potions"); new GT_FlaskRenderer(); new GT_FluidDisplayStackRenderer(); + MinecraftForge.EVENT_BUS.register(new NEI_GT_Config()); } @Override @@ -633,6 +638,21 @@ public class GT_Client extends GT_Proxy implements Runnable { } @Override + public void onLoadComplete() { + super.onLoadComplete(); + for (RecipeCategory category : RecipeCategory.ALL_RECIPE_CATEGORIES.values()) { + if (category.recipeMap.getFrontend() + .getNEIProperties().registerNEI) { + FluidRecipe.addRecipeMap( + category.unlocalizedName, + new GregTech5RecipeExtractor( + category.unlocalizedName.equals("gt.recipe.scanner") + || category.unlocalizedName.equals("gt.recipe.fakeAssemblylineProcess"))); + } + } + } + + @Override public void run() { GT_Log.out.println("GT_Mod: Downloading Cape List."); try (final Scanner tScanner = new Scanner(new URL(GT_CAPE_LIST_URL).openStream())) { @@ -672,7 +692,12 @@ public class GT_Client extends GT_Proxy implements Runnable { } @Override - public int getReloadCount() { + public void reloadNEICache() { + mReloadCount++; + } + + @Override + public int getNEIReloadCount() { return mReloadCount; } @@ -693,31 +718,31 @@ public class GT_Client extends GT_Proxy implements Runnable { // Check for more IC2 recipes to also catch MineTweaker additions GT_ModHandler.addIC2RecipesToGT( GT_ModHandler.getMaceratorRecipeList(), - GT_Recipe.GT_Recipe_Map.sMaceratorRecipes, + RecipeMaps.maceratorRecipes, true, true, true); GT_ModHandler.addIC2RecipesToGT( GT_ModHandler.getCompressorRecipeList(), - GT_Recipe.GT_Recipe_Map.sCompressorRecipes, + RecipeMaps.compressorRecipes, true, true, true); GT_ModHandler.addIC2RecipesToGT( GT_ModHandler.getExtractorRecipeList(), - GT_Recipe.GT_Recipe_Map.sExtractorRecipes, + RecipeMaps.extractorRecipes, true, true, true); GT_ModHandler.addIC2RecipesToGT( GT_ModHandler.getOreWashingRecipeList(), - GT_Recipe.GT_Recipe_Map.sOreWasherRecipes, + RecipeMaps.oreWasherRecipes, false, true, true); GT_ModHandler.addIC2RecipesToGT( GT_ModHandler.getThermalCentrifugeRecipeList(), - GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes, + RecipeMaps.thermalCentrifugeRecipes, true, true, true); @@ -726,9 +751,6 @@ public class GT_Client extends GT_Proxy implements Runnable { afterSomeTime++; if (afterSomeTime >= 100L) { afterSomeTime = 0; - for (GT_Recipe recipe : GT_Recipe.GT_Recipe_Map.sAssemblylineVisualRecipes.mRecipeList) { - recipe.mHidden = false; - } } for (Iterator<Map.Entry<GT_PlayedSound, Integer>> iterator = GT_Utility.sPlayedSoundMap.entrySet() .iterator(); iterator.hasNext();) { diff --git a/src/main/java/gregtech/common/GT_Proxy.java b/src/main/java/gregtech/common/GT_Proxy.java index e5e4fd0524..1159ac95ba 100644 --- a/src/main/java/gregtech/common/GT_Proxy.java +++ b/src/main/java/gregtech/common/GT_Proxy.java @@ -31,9 +31,9 @@ import static gregtech.api.enums.Mods.ThaumicBoots; import static gregtech.api.enums.Mods.ThaumicTinkerer; import static gregtech.api.enums.Mods.TwilightForest; import static gregtech.api.enums.Mods.WitchingGadgets; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCrackingRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCutterRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sWiremillRecipes; +import static gregtech.api.recipe.RecipeMaps.crackingRecipes; +import static gregtech.api.recipe.RecipeMaps.cutterRecipes; +import static gregtech.api.recipe.RecipeMaps.wiremillRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeConstants.UniversalChemical; import static gregtech.api.util.GT_Util.LAST_BROKEN_TILEENTITY; @@ -151,6 +151,8 @@ import gregtech.api.objects.GT_ChunkManager; import gregtech.api.objects.GT_ItemStack; import gregtech.api.objects.GT_UO_DimensionList; import gregtech.api.objects.ItemData; +import gregtech.api.recipe.RecipeCategory; +import gregtech.api.recipe.RecipeCategorySetting; import gregtech.api.util.GT_BlockMap; import gregtech.api.util.GT_CLS_Compat; import gregtech.api.util.GT_ChunkAssociatedData; @@ -562,7 +564,6 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler, IG public boolean mNerfedCrops = true; public boolean mGTBees = true; public boolean mHideUnusedOres = true; - public boolean mHideRecyclingRecipes = true; public boolean mPollution = true; public boolean mExplosionItemDrop = false; public boolean mUseGreatlyShrukenReplacementList = true; @@ -575,6 +576,7 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler, IG public int mGraniteHavestLevel = 3; public int mMaxHarvestLevel = 7; public int mWireHeatingTicks = 4; + public double replicatorExponent = 1.2D; public int mPollutionSmogLimit = 550000; public int mPollutionPoisonLimit = 750000; public int mPollutionVegetationLimit = 1000000; @@ -719,6 +721,8 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler, IG */ public boolean mRenderItemChargeBar = true; + public final Map<RecipeCategory, RecipeCategorySetting> recipeCategorySettings = new HashMap<>(); + /** * This enables showing voltage tier of transformer for Waila, instead of raw voltage number */ @@ -826,6 +830,7 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler, IG GregTech_API.sPreloadStarted = true; this.mIgnoreTcon = GregTech_API.sOPStuff.get(ConfigCategories.general, "ignoreTConstruct", true); this.mWireHeatingTicks = GregTech_API.sOPStuff.get(ConfigCategories.general, "WireHeatingTicks", 4); + this.replicatorExponent = GregTech_API.sOPStuff.get("Replicator", "Nerf Exponent", 1.2D); NetworkRegistry.INSTANCE.registerGuiHandler(GT_Values.GT, this); for (FluidContainerRegistry.FluidContainerData tData : FluidContainerRegistry .getRegisteredFluidContainerData()) { @@ -1338,6 +1343,8 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler, IG } } + public void onLoadComplete() {} + public void onServerAboutToStart() { dimensionWisePollution.clear(); // !!! IMPORTANT for map switching... GT_ChunkAssociatedData.clearAll(); @@ -1418,7 +1425,15 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler, IG @SubscribeEvent public void onClientConnectedToServerEvent(FMLNetworkEvent.ClientConnectedToServerEvent aEvent) {} - public int getReloadCount() { + /** + * Tells {@link gregtech.nei.GT_NEI_DefaultHandler} to reload recipes. + */ + public void reloadNEICache() {} + + /** + * Logging in to server or {@link #reloadNEICache} being called increases the count. + */ + public int getNEIReloadCount() { return 0; } @@ -2022,13 +2037,13 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler, IG .itemOutputs(new ItemStack(aEvent.Ore.getItem(), 1, 8)) .duration(20 * SECONDS) .eut(1) - .addTo(sWiremillRecipes); + .addTo(wiremillRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_ModHandler.getIC2Item("ironCableItem", 6L)) .itemOutputs(new ItemStack(aEvent.Ore.getItem(), 1, 9)) .duration(20 * SECONDS) .eut(2) - .addTo(sWiremillRecipes); + .addTo(wiremillRecipes); } GT_Values.RA.stdBuilder() @@ -2036,7 +2051,7 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler, IG .itemOutputs(new ItemStack(aEvent.Ore.getItem(), 16, 4)) .duration(20 * SECONDS) .eut(8) - .addTo(sCutterRecipes); + .addTo(cutterRecipes); } } default -> {} @@ -2622,7 +2637,7 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler, IG .fluidOutputs(new FluidStack(crackedFluids[i], 1000)) .duration((1 + i) * SECONDS) .eut(240) - .addTo(sCrackingRecipes); + .addTo(crackingRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Hydrogen.getCells(hydrogenAmount), GT_Utility.getIntegratedCircuit(i + 1)) @@ -2674,7 +2689,7 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler, IG .fluidOutputs(new FluidStack(crackedFluids[i], 1200)) .duration((1 + i) * SECONDS) .eut(240) - .addTo(sCrackingRecipes); + .addTo(crackingRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_ModHandler.getIC2Item("steamCell", 1L), GT_Utility.getIntegratedCircuit(i + 1)) diff --git a/src/main/java/gregtech/common/GT_RecipeAdder.java b/src/main/java/gregtech/common/GT_RecipeAdder.java index c086ecf2be..cc81a5b53d 100644 --- a/src/main/java/gregtech/common/GT_RecipeAdder.java +++ b/src/main/java/gregtech/common/GT_RecipeAdder.java @@ -26,6 +26,7 @@ import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.interfaces.internal.IGT_RecipeAdder; import gregtech.api.objects.ItemData; +import gregtech.api.recipe.RecipeMaps; import gregtech.api.util.GT_AssemblyLineUtils; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; @@ -62,7 +63,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { aDuration)) <= 0) { return false; } - GT_Recipe.GT_Recipe_Map.sFusionRecipes.addRecipe( + RecipeMaps.fusionRecipes.addRecipe( null, new FluidStack[] { aInput1, aInput2 }, new FluidStack[] { aOutput1 }, @@ -80,20 +81,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if (FluidOutputArray.length == 0) return false; - // If the recipe has more than 2 inputs or 2 outputs it is added to a different recipe map. - // This is so NEI can function properly and understand the recipe. Otherwise, it gets cut off. - if ((FluidInputArray.length > 2) || (FluidOutputArray.length > 2)) { - GT_Recipe.GT_Recipe_Map.sComplexFusionRecipes.addRecipe( - null, - FluidInputArray, - FluidOutputArray, - aFusionDurationInTicks, - aFusionEnergyPerTick, - aEnergyNeededForStartingFusion); - return true; - } - - GT_Recipe.GT_Recipe_Map.sFusionRecipes.addRecipe( + RecipeMaps.fusionRecipes.addRecipe( null, FluidInputArray, FluidOutputArray, @@ -186,7 +174,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if (!GT_Mod.gregtechproxy.mEnableCleanroom) { aCleanroom = false; } - GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes.addRecipe( + RecipeMaps.centrifugeRecipes.addRecipe( true, new ItemStack[] { aInput1, aInput2 }, new ItemStack[] { aOutput1, aOutput2, aOutput3, aOutput4, aOutput5, aOutput6, }, @@ -225,7 +213,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { oNumber++; } - GT_Recipe.GT_Recipe_Map.sMultiblockCentrifugeRecipes.addRecipe( + RecipeMaps.centrifugeNonCellRecipes.addRecipe( false, itemInputs, itemOutputs, @@ -248,7 +236,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if ((aDuration = GregTech_API.sRecipeFile.get("compressor", aInput1, aDuration)) <= 0) { return false; } - GT_Recipe.GT_Recipe_Map.sCompressorRecipes.addRecipe( + RecipeMaps.compressorRecipes.addRecipe( true, new ItemStack[] { aInput1 }, new ItemStack[] { aOutput1 }, @@ -300,7 +288,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { aDuration)) <= 0)) { return false; } - GT_Recipe.GT_Recipe_Map.sElectrolyzerRecipes.addRecipe( + RecipeMaps.electrolyzerRecipes.addRecipe( true, new ItemStack[] { aInput1, aInput2 }, new ItemStack[] { aOutput1, aOutput2, aOutput3, aOutput4, aOutput5, aOutput6 }, @@ -340,7 +328,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { oNumber++; } - GT_Recipe.GT_Recipe_Map.sMultiblockElectrolyzerRecipes + RecipeMaps.electrolyzerNonCellRecipes .addRecipe(false, itemInputs, itemOutputs, null, aChances, fluidInputs, fluidOutputs, aDuration, aEUt, 0); return true; } @@ -428,7 +416,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if (!GT_Mod.gregtechproxy.mEnableCleanroom) { aCleanroom = false; } - GT_Recipe.GT_Recipe_Map.sChemicalRecipes.addRecipe( + RecipeMaps.chemicalReactorRecipes.addRecipe( true, new ItemStack[] { aInput1, aInput2 }, new ItemStack[] { aOutput, aOutput2 }, @@ -443,7 +431,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { && aInput1.getItemDamage() >= 10) && !(aInput2 != null && aInput2.getItem() instanceof GT_IntegratedCircuit_Item && aInput2.getItemDamage() >= 10)) { - GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes.addRecipe( + RecipeMaps.multiblockChemicalReactorRecipes.addRecipe( false, new ItemStack[] { aInput1, aInput2 }, new ItemStack[] { aOutput, aOutput2 }, @@ -468,7 +456,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if (aEUtick <= 0) { return false; } - GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes + RecipeMaps.multiblockChemicalReactorRecipes .addRecipe(false, aInputs, aOutputs, null, null, aFluidInputs, aFluidOutputs, aDuration, aEUtick, 0); return true; } @@ -495,7 +483,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if (aEUtick <= 0) { return false; } - GT_Recipe.GT_Recipe_Map.sChemicalRecipes.addRecipe( + RecipeMaps.chemicalReactorRecipes.addRecipe( true, new ItemStack[] { aInput1, aInput2 }, new ItemStack[] { aOutput, aOutput2 }, @@ -576,7 +564,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if ((aDuration = GregTech_API.sRecipeFile.get("blastfurnace", aInput1, aDuration)) <= 0) { return false; } - GT_Recipe.GT_Recipe_Map.sBlastRecipes.addRecipe( + RecipeMaps.blastFurnaceRecipes.addRecipe( true, new ItemStack[] { aInput1, aInput2 }, new ItemStack[] { aOutput1, aOutput2 }, @@ -600,7 +588,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if ((aDuration = GregTech_API.sRecipeFile.get("blastfurnace", aInput1, aDuration)) <= 0) { return false; } - GT_Recipe.GT_Recipe_Map.sBlastRecipes.addRecipe( + RecipeMaps.blastFurnaceRecipes.addRecipe( true, new ItemStack[] { aInput1, aInput2, aInput3, aInput4 }, new ItemStack[] { aOutput1, aOutput2, aOutput3, aOutput4 }, @@ -618,7 +606,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { @Override public boolean addPlasmaForgeRecipe(ItemStack[] ItemInputArray, FluidStack[] FluidInputArray, ItemStack[] OutputItemArray, FluidStack[] FluidOutputArray, int aDuration, int aEUt, int coil_heat_level) { - GT_Recipe.GT_Recipe_Map.sPlasmaForgeRecipes.addRecipe( + RecipeMaps.plasmaForgeRecipes.addRecipe( false, ItemInputArray, OutputItemArray, @@ -647,7 +635,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { } Materials[] coals = new Materials[] { Materials.Coal, Materials.Charcoal }; for (Materials coal : coals) { - GT_Recipe.GT_Recipe_Map.sPrimitiveBlastRecipes.addRecipe( + RecipeMaps.primitiveBlastRecipes.addRecipe( true, new ItemStack[] { aInput1, aInput2, coal.getGems(aCoalAmount) }, new ItemStack[] { aOutput1, aOutput2, Materials.DarkAsh.getDustTiny(aCoalAmount) }, @@ -658,7 +646,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { aDuration, 0, 0); - GT_Recipe.GT_Recipe_Map.sPrimitiveBlastRecipes.addRecipe( + RecipeMaps.primitiveBlastRecipes.addRecipe( true, new ItemStack[] { aInput1, aInput2, coal.getDust(aCoalAmount) }, new ItemStack[] { aOutput1, aOutput2, Materials.DarkAsh.getDustTiny(aCoalAmount) }, @@ -671,7 +659,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { 0); } if (Railcraft.isModLoaded()) { - GT_Recipe.GT_Recipe_Map.sPrimitiveBlastRecipes.addRecipe( + RecipeMaps.primitiveBlastRecipes.addRecipe( true, new ItemStack[] { aInput1, aInput2, RailcraftToolItems.getCoalCoke(aCoalAmount / 2) }, new ItemStack[] { aOutput1, aOutput2, Materials.Ash.getDustTiny(aCoalAmount / 2) }, @@ -684,7 +672,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { 0); } if (GTPlusPlus.isModLoaded()) { - GT_Recipe.GT_Recipe_Map.sPrimitiveBlastRecipes.addRecipe( + RecipeMaps.primitiveBlastRecipes.addRecipe( true, new ItemStack[] { aInput1, aInput2, GT_ModHandler.getModItem(GTPlusPlus.ID, "itemCactusCoke", (aCoalAmount * 2L)) }, @@ -696,7 +684,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { aDuration * 2 / 3, 0, 0); - GT_Recipe.GT_Recipe_Map.sPrimitiveBlastRecipes.addRecipe( + RecipeMaps.primitiveBlastRecipes.addRecipe( true, new ItemStack[] { aInput1, aInput2, GT_ModHandler.getModItem(GTPlusPlus.ID, "itemSugarCoke", (aCoalAmount * 2L)) }, @@ -717,7 +705,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { aOutput1 = aOutput1 == null ? null : GT_Utility.copyAmount(aOutput1.stackSize * 10, aOutput1); aOutput2 = aOutput2 == null ? null : GT_Utility.copyAmount(aOutput2.stackSize * 10, aOutput2); for (Materials coal : coals) { - GT_Recipe.GT_Recipe_Map.sPrimitiveBlastRecipes.addRecipe( + RecipeMaps.primitiveBlastRecipes.addRecipe( true, new ItemStack[] { aInput1, aInput2, coal.getBlocks(aCoalAmount) }, new ItemStack[] { aOutput1, aOutput2, Materials.DarkAsh.getDust(aCoalAmount) }, @@ -728,7 +716,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { aDuration * 10, 0, 0); - GT_Recipe.GT_Recipe_Map.sPrimitiveBlastRecipes.addRecipe( + RecipeMaps.primitiveBlastRecipes.addRecipe( true, new ItemStack[] { aInput1, aInput2, coal.getBlocks(aCoalAmount) }, new ItemStack[] { aOutput1, aOutput2, Materials.DarkAsh.getDust(aCoalAmount) }, @@ -741,7 +729,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { 0); } if (Railcraft.isModLoaded()) { - GT_Recipe.GT_Recipe_Map.sPrimitiveBlastRecipes.addRecipe( + RecipeMaps.primitiveBlastRecipes.addRecipe( true, new ItemStack[] { aInput1, aInput2, EnumCube.COKE_BLOCK.getItem(aCoalAmount / 2) }, new ItemStack[] { aOutput1, aOutput2, Materials.Ash.getDust(aCoalAmount / 2) }, @@ -767,7 +755,17 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if ((aDuration = GregTech_API.sRecipeFile.get("canning", aInput1, aDuration)) <= 0) { return false; } - new GT_Recipe(aInput1, aEUt, aInput2, aDuration, aOutput1, aOutput2); + RecipeMaps.cannerRecipes.addRecipe( + true, + aInput2 == null ? new ItemStack[] { aInput1 } : new ItemStack[] { aInput1, aInput2 }, + new ItemStack[] { aOutput1, aOutput2 }, + null, + null, + null, + null, + aDuration, + Math.max(aEUt, 1), + 0); return true; } @@ -793,24 +791,26 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { <= 0) { return false; } - GT_Recipe tRecipe = new GT_Recipe(aInput1, aInput2, aEUt, aDuration, aOutput1); + GT_Recipe tRecipe = new GT_Recipe( + true, + aInput2 == null ? new ItemStack[] { aInput1 } : new ItemStack[] { aInput1, aInput2 }, + new ItemStack[] { aOutput1 }, + null, + null, + null, + null, + aDuration, + Math.max(aEUt, 1), + 0); if (hidden) { tRecipe.mHidden = true; } + RecipeMaps.alloySmelterRecipes.addRecipe(tRecipe); return true; } @Override @Deprecated - public boolean addCNCRecipe(ItemStack aInput1, ItemStack aOutput1, int aDuration, int aEUt) { - if ((aInput1 == null) || (aOutput1 == null)) { - return false; - } - return GregTech_API.sRecipeFile.get("cnc", aOutput1, aDuration) > 0; - } - - @Override - @Deprecated public boolean addLatheRecipe(ItemStack aInput1, ItemStack aOutput1, ItemStack aOutput2, int aDuration, int aEUt) { if ((aInput1 == null) || (aOutput1 == null)) { return false; @@ -818,7 +818,17 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if ((aDuration = GregTech_API.sRecipeFile.get("lathe", aInput1, aDuration)) <= 0) { return false; } - new GT_Recipe(aInput1, aOutput1, aOutput2, aDuration, aEUt); + RecipeMaps.latheRecipes.addRecipe( + true, + new ItemStack[] { aInput1 }, + new ItemStack[] { aOutput1, aOutput2 }, + null, + null, + null, + null, + aDuration, + aEUt, + 0); return true; } @@ -832,7 +842,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if ((aDuration = GregTech_API.sRecipeFile.get("cutting", aInput, aDuration)) <= 0) { return false; } - GT_Recipe.GT_Recipe_Map.sCutterRecipes.addRecipe( + RecipeMaps.cutterRecipes.addRecipe( true, new ItemStack[] { aInput }, new ItemStack[] { aOutput1, aOutput2 }, @@ -918,7 +928,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if (!GT_Mod.gregtechproxy.mEnableCleanroom && aSpecial == -200) { aSpecial = 0; } - GT_Recipe.GT_Recipe_Map.sCutterRecipes.addRecipe( + RecipeMaps.cutterRecipes.addRecipe( true, aInputs, aOutputs, @@ -928,7 +938,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { aDuration * 2, aEUt, aSpecial); - GT_Recipe.GT_Recipe_Map.sCutterRecipes.addRecipe( + RecipeMaps.cutterRecipes.addRecipe( true, aInputs, aOutputs, @@ -938,7 +948,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { aDuration * 2, aEUt, aSpecial); - GT_Recipe.GT_Recipe_Map.sCutterRecipes.addRecipe( + RecipeMaps.cutterRecipes.addRecipe( true, aInputs, aOutputs, @@ -1058,7 +1068,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { } } - GT_Recipe.GT_Recipe_Map.sAssemblerRecipes.addRecipe( + RecipeMaps.assemblerRecipes.addRecipe( true, aInputs, new ItemStack[] { aOutput1 }, @@ -1091,7 +1101,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { return false; } - GT_Recipe.GT_Recipe_Map.sAssemblerRecipes.addRecipe( + RecipeMaps.assemblerRecipes.addRecipe( true, aInputs, new ItemStack[] { aOutput1 }, @@ -1113,7 +1123,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if ((aDuration = GregTech_API.sRecipeFile.get("wiremill", aInput, aDuration)) <= 0) { return false; } - GT_Recipe.GT_Recipe_Map.sWiremillRecipes.addRecipe( + RecipeMaps.wiremillRecipes.addRecipe( true, new ItemStack[] { aInput }, new ItemStack[] { aOutput }, @@ -1135,7 +1145,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if ((aDuration = GregTech_API.sRecipeFile.get("wiremill", aInput, aDuration)) <= 0) { return false; } - GT_Recipe.GT_Recipe_Map.sWiremillRecipes.addRecipe( + RecipeMaps.wiremillRecipes.addRecipe( true, new ItemStack[] { aInput, aCircuit }, new ItemStack[] { aOutput }, @@ -1157,7 +1167,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if ((aDuration = GregTech_API.sRecipeFile.get("polarizer", aInput, aDuration)) <= 0) { return false; } - GT_Recipe.GT_Recipe_Map.sPolarizerRecipes.addRecipe( + RecipeMaps.polarizerRecipes.addRecipe( true, new ItemStack[] { aInput }, new ItemStack[] { aOutput }, @@ -1179,7 +1189,17 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if ((aDuration = GregTech_API.sRecipeFile.get("bender", aInput1, aDuration)) <= 0) { return false; } - new GT_Recipe(aEUt, aDuration, aInput1, aOutput1); + RecipeMaps.benderRecipes.addRecipe( + true, + new ItemStack[] { aInput1, ItemList.Circuit_Integrated.getWithDamage(0, aInput1.stackSize) }, + new ItemStack[] { aOutput1 }, + null, + null, + null, + null, + aDuration, + Math.max(aEUt, 1), + 0); return true; } @@ -1202,7 +1222,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { aDuration, Math.max(aEUt, 1), 0); - GT_Recipe.GT_Recipe_Map.sBenderRecipes.addRecipe(tRecipe); + RecipeMaps.benderRecipes.addRecipe(tRecipe); return true; } @@ -1215,7 +1235,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if ((aDuration = GregTech_API.sRecipeFile.get("extruder", aOutput, aDuration)) <= 0) { return false; } - GT_Recipe.GT_Recipe_Map.sExtruderRecipes.addRecipe( + RecipeMaps.extruderRecipes.addRecipe( true, new ItemStack[] { aInput, aShape }, new ItemStack[] { aOutput }, @@ -1237,7 +1257,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if ((aDuration = GregTech_API.sRecipeFile.get("slicer", aOutput, aDuration)) <= 0) { return false; } - GT_Recipe.GT_Recipe_Map.sSlicerRecipes.addRecipe( + RecipeMaps.slicerRecipes.addRecipe( true, new ItemStack[] { aInput, aShape }, new ItemStack[] { aOutput }, @@ -1261,7 +1281,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if ((aDuration = GregTech_API.sRecipeFile.get("orewasher", aInput, aDuration)) <= 0) { return false; } - GT_Recipe.GT_Recipe_Map.sOreWasherRecipes.addRecipe( + RecipeMaps.oreWasherRecipes.addRecipe( true, new ItemStack[] { aInput }, new ItemStack[] { aOutput1, aOutput2, aOutput3 }, @@ -1285,7 +1305,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if ((aDuration = GregTech_API.sRecipeFile.get("orewasher", aInput, aDuration)) <= 0) { return false; } - GT_Recipe.GT_Recipe_Map.sOreWasherRecipes.addRecipe( + RecipeMaps.oreWasherRecipes.addRecipe( true, new ItemStack[] { aInput }, new ItemStack[] { aOutput1, aOutput2, aOutput3 }, @@ -1316,7 +1336,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { int tITNT = Math.max(1, tExplosives >> 2); // the best // new GT_Recipe(aInput1, aInput2, aOutput1, aOutput2); if (tGunpowder < 65) { - GT_Recipe.GT_Recipe_Map.sImplosionRecipes.addRecipe( + RecipeMaps.implosionRecipes.addRecipe( true, new ItemStack[] { aInput1, ItemList.Block_Powderbarrel.get(tGunpowder) }, new ItemStack[] { aOutput1, aOutput2 }, @@ -1329,7 +1349,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { 0); } if (tDynamite < 17) { - GT_Recipe.GT_Recipe_Map.sImplosionRecipes.addRecipe( + RecipeMaps.implosionRecipes.addRecipe( true, new ItemStack[] { aInput1, GT_ModHandler.getIC2Item("dynamite", tDynamite, null) }, new ItemStack[] { aOutput1, aOutput2 }, @@ -1341,7 +1361,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { 30, 0); } - GT_Recipe.GT_Recipe_Map.sImplosionRecipes.addRecipe( + RecipeMaps.implosionRecipes.addRecipe( true, new ItemStack[] { aInput1, new ItemStack(Blocks.tnt, tTNT) }, new ItemStack[] { aOutput1, aOutput2 }, @@ -1352,7 +1372,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { 20, 30, 0); - GT_Recipe.GT_Recipe_Map.sImplosionRecipes.addRecipe( + RecipeMaps.implosionRecipes.addRecipe( true, new ItemStack[] { aInput1, GT_ModHandler.getIC2Item("industrialTnt", tITNT, null) }, new ItemStack[] { aOutput1, aOutput2 }, @@ -1395,7 +1415,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if ((aDuration = GregTech_API.sRecipeFile.get("distillation", aInput.getUnlocalizedName(), aDuration)) <= 0) { return false; } - GT_Recipe.GT_Recipe_Map.sDistillationRecipes.addRecipe( + RecipeMaps.distillationTowerRecipes.addRecipe( false, null, new ItemStack[] { aOutput2 }, @@ -1418,7 +1438,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if ((aDuration = GregTech_API.sRecipeFile.get("distillation", aInput.getUnlocalizedName(), aDuration)) <= 0) { return false; } - GT_Recipe.GT_Recipe_Map.sDistillationRecipes.addRecipe( + RecipeMaps.distillationTowerRecipes.addRecipe( false, aCircuit, new ItemStack[] { aOutput2 }, @@ -1450,7 +1470,16 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if ((aDuration = GregTech_API.sRecipeFile.get("vacuumfreezer", aInput1, aDuration)) <= 0) { return false; } - new GT_Recipe(aInput1, aOutput1, aDuration, aEUt, 0); // Since all other methods are taken + RecipeMaps.vacuumFreezerRecipes.addRecipe( + false, + new ItemStack[] { aInput1 }, + new ItemStack[] { aOutput1 }, + null, + null, + null, + aDuration, + aEUt, + 0); FluidStack tInputFluid = GT_Utility.getFluidForFilledItem(aInput1, true); FluidStack tOutputFluid = GT_Utility.getFluidForFilledItem(aOutput1, true); if (tInputFluid != null && tOutputFluid != null) { @@ -1468,7 +1497,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if ((aDuration = GregTech_API.sRecipeFile.get("vacuumfreezer", aInput1, aDuration)) <= 0) { return false; } - new GT_Recipe(aInput1, aOutput1, aDuration); + addVacuumFreezerRecipe(aInput1, aOutput1, aDuration, 120); FluidStack tInputFluid = GT_Utility.getFluidForFilledItem(aInput1, true); FluidStack tOutputFluid = GT_Utility.getFluidForFilledItem(aOutput1, true); if (tInputFluid != null && tOutputFluid != null) { @@ -1483,8 +1512,16 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if ((aInput1 == null) || (aOutput1 == null)) { return false; } - - new GT_Recipe(aInput1, aOutput1, aDuration, aEUt); + RecipeMaps.vacuumFreezerRecipes.addRecipe( + false, + null, + null, + null, + new FluidStack[] { aInput1 }, + new FluidStack[] { aOutput1 }, + Math.max(1, aDuration), + aEUt, + 0); return true; } @@ -1492,7 +1529,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { @Deprecated public boolean addVacuumFreezerRecipe(ItemStack[] aItemInput, FluidStack[] aFluidInput, ItemStack[] aItemOutput, FluidStack[] aFluidOutput, int aDuration, int aEUt) { - GT_Recipe.GT_Recipe_Map.sVacuumRecipes.addRecipe( + RecipeMaps.vacuumFreezerRecipes.addRecipe( false, aItemInput, aItemOutput, @@ -1518,7 +1555,14 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if (aInput1 == null) { return false; } - new GT_Recipe(aInput1, aOutput1, GregTech_API.sRecipeFile.get("fuel_" + aType, aInput1, aEU), aType); + new GT_Recipe( + aInput1, + aOutput1, + null, + null, + null, + GregTech_API.sRecipeFile.get("fuel_" + aType, aInput1, aEU), + aType); return true; } @@ -1554,7 +1598,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if (!GregTech_API.sRecipeFile.get("forgehammer", aOutput1, true)) { return false; } - GT_Recipe.GT_Recipe_Map.sHammerRecipes.addRecipe( + RecipeMaps.hammerRecipes.addRecipe( true, new ItemStack[] { aInput1 }, new ItemStack[] { aOutput1 }, @@ -1572,7 +1616,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { public boolean addForgeHammerRecipe(ItemStack[] ItemInputArray, FluidStack[] FluidInputArray, ItemStack[] ItemOutputArray, FluidStack[] FluidOutputArray, int aDuration, int aEUt) { - GT_Recipe.GT_Recipe_Map.sHammerRecipes.addRecipe( + RecipeMaps.hammerRecipes.addRecipe( true, ItemInputArray, ItemOutputArray, @@ -1595,7 +1639,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if (!GregTech_API.sRecipeFile.get("boxing", aFullBox, true)) { return false; } - GT_Recipe.GT_Recipe_Map.sBoxinatorRecipes.addRecipe( + RecipeMaps.packagerRecipes.addRecipe( true, new ItemStack[] { aContainedItem, aEmptyBox }, new ItemStack[] { aFullBox }, @@ -1618,7 +1662,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if (!GregTech_API.sRecipeFile.get("unboxing", aFullBox, true)) { return false; } - GT_Recipe.GT_Recipe_Map.sUnboxinatorRecipes.addRecipe( + RecipeMaps.unpackagerRecipes.addRecipe( true, new ItemStack[] { aFullBox }, new ItemStack[] { aContainedItem, aEmptyBox }, @@ -1641,7 +1685,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if (!GregTech_API.sRecipeFile.get("thermalcentrifuge", aInput, true)) { return false; } - GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes.addRecipe( + RecipeMaps.thermalCentrifugeRecipes.addRecipe( true, new ItemStack[] { aInput }, new ItemStack[] { aOutput1, aOutput2, aOutput3 }, @@ -1664,7 +1708,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if (!GregTech_API.sRecipeFile.get("thermalcentrifuge", aInput, true)) { return false; } - GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes.addRecipe( + RecipeMaps.thermalCentrifugeRecipes.addRecipe( true, new ItemStack[] { aInput }, new ItemStack[] { aOutput1, aOutput2, aOutput3 }, @@ -1687,7 +1731,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if ((aDuration = GregTech_API.sRecipeFile.get("amplifier", aAmplifierItem, aDuration)) <= 0) { return false; } - GT_Recipe.GT_Recipe_Map.sAmplifiers.addRecipe( + RecipeMaps.amplifierRecipes.addRecipe( true, new ItemStack[] { aAmplifierItem }, null, @@ -1710,7 +1754,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if (!GregTech_API.sRecipeFile.get("brewing", aOutput.getUnlocalizedName(), true)) { return false; } - GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sBrewingRecipes.addRecipe( + GT_Recipe tRecipe = RecipeMaps.brewingRecipes.addRecipe( false, new ItemStack[] { aIngredient }, null, @@ -1742,7 +1786,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if (!GregTech_API.sRecipeFile.get("brewing", aOutput.getUnlocalizedName(), true)) { return false; } - GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sBrewingRecipes.addRecipe( + GT_Recipe tRecipe = RecipeMaps.brewingRecipes.addRecipe( false, new ItemStack[] { aIngredient }, null, @@ -1772,7 +1816,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { aDuration)) <= 0) { return false; } - GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sFermentingRecipes.addRecipe( + GT_Recipe tRecipe = RecipeMaps.fermentingRecipes.addRecipe( false, null, null, @@ -1841,7 +1885,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { aDuration = (aDuration + tScale - 1) / tScale; } - GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sDistilleryRecipes.addRecipe( + GT_Recipe tRecipe = RecipeMaps.distilleryRecipes.addRecipe( true, new ItemStack[] { aCircuit }, new ItemStack[] { aSolidOutput }, @@ -1896,7 +1940,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { public boolean addFluidSolidifierRecipe(final ItemStack[] itemInputs, final FluidStack[] fluidInputs, final ItemStack[] itemOutputs, final FluidStack[] fluidOutputs, final int EUPerTick, final int aDurationInTicks) { - GT_Recipe.GT_Recipe_Map.sFluidSolidficationRecipes + RecipeMaps.fluidSolidifierRecipes .addRecipe(true, itemInputs, itemOutputs, null, fluidInputs, fluidOutputs, aDurationInTicks, EUPerTick, 0); return true; } @@ -1917,7 +1961,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if ((aDuration = GregTech_API.sRecipeFile.get("fluidsolidifier", aOutput, aDuration)) <= 0) { return false; } - GT_Recipe.GT_Recipe_Map.sFluidSolidficationRecipes.addRecipe( + RecipeMaps.fluidSolidifierRecipes.addRecipe( true, new ItemStack[] { aMold }, new ItemStack[] { aOutput }, @@ -1953,7 +1997,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if ((aDuration = GregTech_API.sRecipeFile.get("fluidsmelter", aInput, aDuration)) <= 0) { return false; } - GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sFluidExtractionRecipes.addRecipe( + GT_Recipe tRecipe = RecipeMaps.fluidExtractionRecipes.addRecipe( true, new ItemStack[] { aInput }, new ItemStack[] { aRemains }, @@ -1986,7 +2030,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if ((aDuration = GregTech_API.sRecipeFile.get("fluidextractor", aInput, aDuration)) <= 0) { return false; } - GT_Recipe.GT_Recipe_Map.sFluidExtractionRecipes.addRecipe( + RecipeMaps.fluidExtractionRecipes.addRecipe( true, new ItemStack[] { aInput }, new ItemStack[] { aRemains }, @@ -2015,7 +2059,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if ((aDuration = GregTech_API.sRecipeFile.get("fluidcanner", aInput, aDuration)) <= 0) { return false; } - GT_Recipe.GT_Recipe_Map.sFluidCannerRecipes.addRecipe( + RecipeMaps.fluidCannerRecipes.addRecipe( true, new ItemStack[] { aInput }, new ItemStack[] { aOutput }, @@ -2041,7 +2085,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if ((aDuration = GregTech_API.sRecipeFile.get("fluidcanner", aInput, aDuration)) <= 0) { return false; } - GT_Recipe.GT_Recipe_Map.sFluidCannerRecipes.addRecipe( + RecipeMaps.fluidCannerRecipes.addRecipe( true, new ItemStack[] { aInput }, new ItemStack[] { aOutput }, @@ -2064,7 +2108,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if ((aDuration = GregTech_API.sRecipeFile.get("chemicalbath", aInput, aDuration)) <= 0) { return false; } - GT_Recipe.GT_Recipe_Map.sChemicalBathRecipes.addRecipe( + RecipeMaps.chemicalBathRecipes.addRecipe( true, new ItemStack[] { aInput }, new ItemStack[] { aOutput1, aOutput2, aOutput3 }, @@ -2088,7 +2132,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if ((aDuration = GregTech_API.sRecipeFile.get("chemicalbath", aInput, aDuration)) <= 0) { return false; } - GT_Recipe.GT_Recipe_Map.sChemicalBathRecipes.addRecipe( + RecipeMaps.chemicalBathRecipes.addRecipe( true, new ItemStack[] { aInput }, new ItemStack[] { aOutput1, aOutput2, aOutput3 }, @@ -2112,7 +2156,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if ((aDuration = GregTech_API.sRecipeFile.get("electromagneticseparator", aInput, aDuration)) <= 0) { return false; } - GT_Recipe.GT_Recipe_Map.sElectroMagneticSeparatorRecipes.addRecipe( + RecipeMaps.electroMagneticSeparatorRecipes.addRecipe( true, new ItemStack[] { aInput }, new ItemStack[] { aOutput1, aOutput2, aOutput3 }, @@ -2135,7 +2179,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if ((aDuration = GregTech_API.sRecipeFile.get("extractor", aInput, aDuration)) <= 0) { return false; } - GT_Recipe.GT_Recipe_Map.sExtractorRecipes.addRecipe( + RecipeMaps.extractorRecipes.addRecipe( true, new ItemStack[] { aInput }, new ItemStack[] { aOutput }, @@ -2158,7 +2202,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if ((aDuration = GregTech_API.sRecipeFile.get("printer", aInput, aDuration)) <= 0) { return false; } - GT_Recipe.GT_Recipe_Map.sPrinterRecipes.addRecipe( + RecipeMaps.printerRecipes.addRecipe( true, new ItemStack[] { aInput }, new ItemStack[] { aOutput }, @@ -2212,7 +2256,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if (!GT_Mod.gregtechproxy.mEnableCleanroom) { aCleanroom = false; } - GT_Recipe.GT_Recipe_Map.sAutoclaveRecipes.addRecipe( + RecipeMaps.autoclaveRecipes.addRecipe( true, new ItemStack[] { aInput, aCircuit }, new ItemStack[] { aOutput }, @@ -2246,7 +2290,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if (!GT_Mod.gregtechproxy.mEnableCleanroom) { aCleanroom = false; } - GT_Recipe.GT_Recipe_Map.sAutoclaveRecipes.addRecipe( + RecipeMaps.autoclaveRecipes.addRecipe( true, new ItemStack[] { aInput, aCircuit }, new ItemStack[] { aOutput }, @@ -2273,7 +2317,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if (!GT_Mod.gregtechproxy.mEnableCleanroom) { aCleanroom = false; } - GT_Recipe.GT_Recipe_Map.sAutoclaveRecipes.addRecipe( + RecipeMaps.autoclaveRecipes.addRecipe( true, new ItemStack[] { aInput, aCircuit }, aOutputs, @@ -2348,7 +2392,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { aDuration)) <= 0)) { return false; } - GT_Recipe.GT_Recipe_Map.sMixerRecipes.addRecipe( + RecipeMaps.mixerRecipes.addRecipe( true, new ItemStack[] { aInput1, aInput2, aInput3, aInput4, aInput5, aInput6, aInput7, aInput8, aInput9 }, new ItemStack[] { aOutput }, @@ -2387,7 +2431,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { oNumber++; } - GT_Recipe.GT_Recipe_Map.sMultiblockMixerRecipes + RecipeMaps.mixerNonCellRecipes .addRecipe(false, itemInputs, itemOutputs, null, null, fluidInputs, fluidOutputs, aDuration, aEUt, 0); return true; } @@ -2396,7 +2440,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { @Override public boolean addMixerRecipe(ItemStack[] ItemInputArray, FluidStack[] FluidInputArray, ItemStack[] ItemOutputArray, FluidStack[] FluidOutputArray, int aDuration, int aEUt) { - GT_Recipe.GT_Recipe_Map.sMixerRecipes.addRecipe( + RecipeMaps.mixerRecipes.addRecipe( false, ItemInputArray, ItemOutputArray, @@ -2462,7 +2506,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { FluidStack[] tFluidOutputArray = new FluidStack[tFluidOutputList.size()]; for (int i = 0; i < tFluidOutputArray.length; i++) tFluidOutputArray[i] = tFluidOutputList.get(i); - GT_Recipe.GT_Recipe_Map.sMultiblockMixerRecipes.addRecipe( + RecipeMaps.mixerNonCellRecipes.addRecipe( false, tItemInputArray, tItemOutputArray, @@ -2495,7 +2539,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { aDuration)) <= 0)) { return false; } - GT_Recipe.GT_Recipe_Map.sMixerRecipes.addRecipe( + RecipeMaps.mixerRecipes.addRecipe( true, new ItemStack[] { aInput1, aInput2, aInput3, aInput4, aInput5, aInput6, aInput7, aInput8, aInput9 }, new ItemStack[] { aOutput1, aOutput2, aOutput3, aOutput4 }, @@ -2534,7 +2578,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { oNumber++; } - GT_Recipe.GT_Recipe_Map.sMultiblockMixerRecipes + RecipeMaps.mixerNonCellRecipes .addRecipe(false, itemInputs, itemOutputs, null, null, fluidInputs, fluidOutputs, aDuration, aEUt, 0); return true; } @@ -2559,7 +2603,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if (!GT_Mod.gregtechproxy.mEnableCleanroom) { aCleanroom = false; } - GT_Recipe.GT_Recipe_Map.sLaserEngraverRecipes.addRecipe( + RecipeMaps.laserEngraverRecipes.addRecipe( true, new ItemStack[] { aItemToEngrave, aLens }, new ItemStack[] { aEngravedItem }, @@ -2576,7 +2620,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { @Override public boolean addLaserEngraverRecipe(ItemStack[] ItemInputArray, FluidStack[] FluidInputArray, ItemStack[] OutputItemArray, FluidStack[] FluidOutputArray, int aDuration, int aEUt, boolean aCleanroom) { - GT_Recipe.GT_Recipe_Map.sLaserEngraverRecipes.addRecipe( + RecipeMaps.laserEngraverRecipes.addRecipe( false, ItemInputArray, OutputItemArray, @@ -2600,7 +2644,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if ((aDuration = GregTech_API.sRecipeFile.get("press", aImprintedItem, aDuration)) <= 0) { return false; } - GT_Recipe.GT_Recipe_Map.sPressRecipes.addRecipe( + RecipeMaps.formingPressRecipes.addRecipe( true, new ItemStack[] { aItemToImprint, aForm }, new ItemStack[] { aImprintedItem }, @@ -2620,7 +2664,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if ((ItemInputArray == null) || (OutputItemArray == null)) { return false; } - GT_Recipe.GT_Recipe_Map.sPressRecipes + RecipeMaps.formingPressRecipes .addRecipe(true, ItemInputArray, OutputItemArray, null, null, null, aDuration, aEUt, 0); return true; } @@ -2638,7 +2682,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { aDuration)) <= 0) { return false; } - GT_Recipe.GT_Recipe_Map.sFluidHeaterRecipes.addRecipe( + RecipeMaps.fluidHeaterRecipes.addRecipe( true, new ItemStack[] { aItem }, null, @@ -2665,7 +2709,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { aDuration)) <= 0) { return false; } - GT_Recipe.GT_Recipe_Map.sFluidHeaterRecipes.addRecipe( + RecipeMaps.fluidHeaterRecipes.addRecipe( true, new ItemStack[] { aCircuit }, null, @@ -2690,7 +2734,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if ((aDuration = GregTech_API.sRecipeFile.get("sifter", aItemToSift, aDuration)) <= 0) { return false; } - GT_Recipe.GT_Recipe_Map.sSifterRecipes.addRecipe( + RecipeMaps.sifterRecipes.addRecipe( true, new ItemStack[] { aItemToSift }, aSiftedItems, @@ -2712,7 +2756,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { public boolean addSifterRecipe(ItemStack[] ItemInputArray, FluidStack[] FluidInputArray, ItemStack[] OutputItemArray, FluidStack[] FluidOutputArray, int[] aChances, int aDuration, int aEUt, boolean aCleanroom) { - GT_Recipe.GT_Recipe_Map.sSifterRecipes.addRecipe( + RecipeMaps.sifterRecipes.addRecipe( false, ItemInputArray, OutputItemArray, @@ -2745,7 +2789,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if ((aDuration = GregTech_API.sRecipeFile.get("arcfurnace", aInput, aDuration)) <= 0) { return false; } - GT_Recipe sRecipe = GT_Recipe.GT_Recipe_Map.sArcFurnaceRecipes.addRecipe( + GT_Recipe sRecipe = RecipeMaps.arcFurnaceRecipes.addRecipe( true, new ItemStack[] { aInput }, aOutputs, @@ -2762,7 +2806,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { for (Materials tMaterial : new Materials[] { Materials.Argon, Materials.Nitrogen }) { if (tMaterial.mPlasma != null) { int tPlasmaAmount = (int) Math.max(1L, aDuration / (tMaterial.getMass() * 16L)); - GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sPlasmaArcFurnaceRecipes.addRecipe( + GT_Recipe tRecipe = RecipeMaps.plasmaArcFurnaceRecipes.addRecipe( true, new ItemStack[] { aInput }, aOutputs, @@ -2796,7 +2840,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if ((aDuration = GregTech_API.sRecipeFile.get("arcfurnace", aInput, aDuration)) <= 0) { return false; } - GT_Recipe.GT_Recipe_Map.sArcFurnaceRecipes.addRecipe( + RecipeMaps.arcFurnaceRecipes.addRecipe( true, new ItemStack[] { aInput }, aOutputs, @@ -2825,7 +2869,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if ((aDuration = GregTech_API.sRecipeFile.get("arcfurnace", aInput, aDuration)) <= 0) { return false; } - GT_Recipe.GT_Recipe_Map.sPlasmaArcFurnaceRecipes.addRecipe( + RecipeMaps.plasmaArcFurnaceRecipes.addRecipe( true, new ItemStack[] { aInput }, aOutputs, @@ -2854,7 +2898,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if ((aDuration = GregTech_API.sRecipeFile.get("arcfurnace", aInput, aDuration)) <= 0) { return false; } - GT_Recipe.GT_Recipe_Map.sPlasmaArcFurnaceRecipes.addRecipe( + RecipeMaps.plasmaArcFurnaceRecipes.addRecipe( true, new ItemStack[] { aInput }, aOutputs, @@ -2890,7 +2934,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if ((aDuration = GregTech_API.sRecipeFile.get("pulveriser", aInput, aDuration)) <= 0) { return false; } - GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sMaceratorRecipes.addRecipe( + GT_Recipe tRecipe = RecipeMaps.maceratorRecipes.addRecipe( true, new ItemStack[] { aInput }, aOutputs, @@ -2920,7 +2964,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if ((aDuration = GregTech_API.sRecipeFile.get("pyrolyse", aInput, aDuration)) <= 0) { return false; } - GT_Recipe.GT_Recipe_Map.sPyrolyseRecipes.addRecipe( + RecipeMaps.pyrolyseRecipes.addRecipe( false, new ItemStack[] { aInput, ItemList.Circuit_Integrated.getWithDamage(0L, intCircuit) }, new ItemStack[] { aOutput }, @@ -2950,7 +2994,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if ((aDuration = GregTech_API.sRecipeFile.get("cracking", aInput.getUnlocalizedName(), aDuration)) <= 0) { return false; } - GT_Recipe.GT_Recipe_Map.sCrackingRecipes.addRecipe( + RecipeMaps.crackingRecipes.addRecipe( false, new ItemStack[] { GT_Utility.getIntegratedCircuit(circuitConfig) }, null, @@ -2987,7 +3031,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { + " there is some null item in that recipe"); } } - GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe( + RecipeMaps.scannerFakeRecipes.addFakeRecipe( false, new ItemStack[] { aResearchItem }, new ItemStack[] { aOutput }, @@ -2997,7 +3041,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { aResearchTime, 30, -201); - GT_Recipe.GT_Recipe_Map.sAssemblylineVisualRecipes.addFakeRecipe( + RecipeMaps.assemblylineVisualRecipes.addFakeRecipe( false, aInputs, new ItemStack[] { aOutput }, @@ -3098,7 +3142,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { tPersistentHash = tPersistentHash * 31 + aResearchTime; tPersistentHash = tPersistentHash * 31 + aDuration; tPersistentHash = tPersistentHash * 31 + aEUt; - GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe( + RecipeMaps.scannerFakeRecipes.addFakeRecipe( false, new ItemStack[] { aResearchItem }, new ItemStack[] { aOutput }, @@ -3108,7 +3152,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { aResearchTime, 30, -201); - GT_Recipe.GT_Recipe_Map.sAssemblylineVisualRecipes.addFakeRecipe( + RecipeMaps.assemblylineVisualRecipes.addFakeRecipe( false, tInputs, new ItemStack[] { aOutput }, @@ -3171,7 +3215,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { } } - GT_Recipe.GT_Recipe_Map.sCircuitAssemblerRecipes.addRecipe( + RecipeMaps.circuitAssemblerRecipes.addRecipe( true, aInputs, new ItemStack[] { aOutput }, @@ -3196,7 +3240,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { if (!GT_Mod.gregtechproxy.mEnableCleanroom) { aCleanroom = false; } - GT_Recipe.GT_Recipe_Map.sCircuitAssemblerRecipes.addRecipe( + RecipeMaps.circuitAssemblerRecipes.addRecipe( true, aInputs, new ItemStack[] { aOutput }, @@ -3216,7 +3260,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { FluidStack[] aFluidOutputs, int[] aChances, int aDuration, int aEUt, int aSpecialValue) { if (aInputs == null || aOutputs == null || aSpecialValue == 0) return false; - GT_Recipe.GT_Recipe_Map.sNanoForge.addRecipe( + RecipeMaps.nanoForgeRecipes.addRecipe( new GT_Recipe( false, aInputs, @@ -3232,34 +3276,22 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { } @Override - @Deprecated - public boolean addPCBFactoryRecipe(ItemStack[] aInputs, FluidStack[] aFluidInputs, ItemStack[] aOutputs, - int aDuration, int aEUt, int aSpecialValue) { - - if (aInputs == null || aFluidInputs == null || aOutputs == null) { - return false; - } - - if (aSpecialValue <= 0 || aEUt < 0 || aDuration < 0) { - return false; - } - - GT_Recipe.GT_Recipe_Map.sPCBFactory.addRecipe( - new GT_Recipe(false, aInputs, aOutputs, null, null, aFluidInputs, null, aDuration, aEUt, aSpecialValue)); - - return true; - } - - @Override public GT_Recipe addIC2ReactorBreederCell(ItemStack input, ItemStack output, boolean reflector, int heatStep, int heatMultiplier, int requiredPulses) { - return GT_Recipe.GT_Recipe_Map.sIC2NuclearFakeRecipe.addFakeRecipe( - input, - output, - reflector ? "Neutron reflecting Breeder" : "Heat neutral Breeder", - String.format("Every %d reactor hull heat", heatStep), - String.format("increase speed by %d00%%", heatMultiplier), - String.format("Required pulses: %d", requiredPulses)); + return GT_Values.RA.stdBuilder() + .itemInputs(input) + .itemOutputs(output) + .setNEIDesc( + reflector ? "Neutron reflecting Breeder" : "Heat neutral Breeder", + String.format("Every %d reactor hull heat", heatStep), + String.format("increase speed by %d00%%", heatMultiplier), + String.format("Required pulses: %d", requiredPulses)) + .duration(0) + .eut(0) + .addTo(RecipeMaps.ic2NuclearFakeRecipes) + .stream() + .findFirst() + .orElse(null); } @Override @@ -3270,17 +3302,24 @@ public class GT_RecipeAdder implements IGT_RecipeAdder { // don't ask, just accept int pulses = aCells / 2 + 1; float nukePowerMult = 5.0f * ConfigUtil.getFloat(MainConfig.get(), "balance/energy/generator/nuclear"); - return GT_Recipe.GT_Recipe_Map.sIC2NuclearFakeRecipe.addFakeRecipe( - input, - output, - aMox ? "MOX Model" : "Uranium Model", - "Neutron Pulse: " + aCells, - aCells == 1 ? String.format("Heat: %.1f * n1 * (n1 + 1)", aHeat / 2f) - : String.format("Heat: %.1f * (%d + n1) * (%d + n1)", aHeat * aCells / 2f, aCells, aCells + 1), - String.format( - "Energy: %.1f + n2 * %.1f EU/t", - aEnergy * aCells * pulses * nukePowerMult, - aEnergy * nukePowerMult)); + return GT_Values.RA.stdBuilder() + .itemInputs(input) + .itemOutputs(output) + .setNEIDesc( + aMox ? "MOX Model" : "Uranium Model", + "Neutron Pulse: " + aCells, + aCells == 1 ? String.format("Heat: %.1f * n1 * (n1 + 1)", aHeat / 2f) + : String.format("Heat: %.1f * (%d + n1) * (%d + n1)", aHeat * aCells / 2f, aCells, aCells + 1), + String.format( + "Energy: %.1f + n2 * %.1f EU/t", + aEnergy * aCells * pulses * nukePowerMult, + aEnergy * nukePowerMult)) + .duration(0) + .eut(0) + .addTo(RecipeMaps.ic2NuclearFakeRecipes) + .stream() + .findFirst() + .orElse(null); } private boolean areItemsAndFluidsBothNull(ItemStack[] items, FluidStack[] fluids) { diff --git a/src/main/java/gregtech/common/blocks/GT_Block_Stones_Abstract.java b/src/main/java/gregtech/common/blocks/GT_Block_Stones_Abstract.java index 335a03d0e3..4a5bb9456e 100644 --- a/src/main/java/gregtech/common/blocks/GT_Block_Stones_Abstract.java +++ b/src/main/java/gregtech/common/blocks/GT_Block_Stones_Abstract.java @@ -1,8 +1,8 @@ package gregtech.common.blocks; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sAssemblerRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sHammerRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sLaserEngraverRecipes; +import static gregtech.api.recipe.RecipeMaps.assemblerRecipes; +import static gregtech.api.recipe.RecipeMaps.hammerRecipes; +import static gregtech.api.recipe.RecipeMaps.laserEngraverRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; @@ -74,13 +74,13 @@ public class GT_Block_Stones_Abstract extends GT_Generic_Block implements IOreRe .itemOutputs(new ItemStack(this, 1, 3)) .duration(2 * SECONDS + 10 * TICKS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(this, 1, 8), GT_Utility.getIntegratedCircuit(4)) .itemOutputs(new ItemStack(this, 1, 11)) .duration(2 * SECONDS + 10 * TICKS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } private void registerCraftingRecipes() { @@ -132,28 +132,28 @@ public class GT_Block_Stones_Abstract extends GT_Generic_Block implements IOreRe .itemOutputs(new ItemStack(this, 1, 4)) .duration(16 * TICKS) .eut(10) - .addTo(sHammerRecipes); + .addTo(hammerRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(this, 1, 11)) .itemOutputs(new ItemStack(this, 1, 12)) .duration(16 * TICKS) .eut(10) - .addTo(sHammerRecipes); + .addTo(hammerRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(this, 1, 0)) .itemOutputs(new ItemStack(this, 1, 1)) .duration(16 * TICKS) .eut(10) - .addTo(sHammerRecipes); + .addTo(hammerRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(this, 1, 8)) .itemOutputs(new ItemStack(this, 1, 9)) .duration(16 * TICKS) .eut(10) - .addTo(sHammerRecipes); + .addTo(hammerRecipes); } @Override @@ -166,14 +166,14 @@ public class GT_Block_Stones_Abstract extends GT_Generic_Block implements IOreRe .itemOutputs(new ItemStack(this, 1, 6)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(this, 1, 15), GT_Utility.copyAmount(0, aStack)) .itemOutputs(new ItemStack(this, 1, 14)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); } } diff --git a/src/main/java/gregtech/common/fluid/GT_Fluid.java b/src/main/java/gregtech/common/fluid/GT_Fluid.java index 3625acb1e8..6ba8d7d23a 100644 --- a/src/main/java/gregtech/common/fluid/GT_Fluid.java +++ b/src/main/java/gregtech/common/fluid/GT_Fluid.java @@ -1,6 +1,6 @@ package gregtech.common.fluid; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sFluidCannerRecipes; +import static gregtech.api.recipe.RecipeMaps.fluidCannerRecipes; import javax.annotation.Nonnull; @@ -129,7 +129,7 @@ public class GT_Fluid extends Fluid implements IGT_Fluid, IGT_RegisteredFluid, R .fluidOutputs(fluidStack) .duration(fluidStack.amount / 62) .eut(1) - .addTo(sFluidCannerRecipes); + .addTo(fluidCannerRecipes); } } return this; @@ -201,4 +201,9 @@ public class GT_Fluid extends Fluid implements IGT_Fluid, IGT_RegisteredFluid, R } } } + + @Override + public String toString() { + return "GT_Fluid{" + "fluidName='" + fluidName + '\'' + '}'; + } } diff --git a/src/main/java/gregtech/common/gui/modularui/UIHelper.java b/src/main/java/gregtech/common/gui/modularui/UIHelper.java index 0893310342..dffeeff48f 100644 --- a/src/main/java/gregtech/common/gui/modularui/UIHelper.java +++ b/src/main/java/gregtech/common/gui/modularui/UIHelper.java @@ -6,74 +6,75 @@ import java.util.List; import java.util.stream.Collectors; import javax.annotation.Nullable; +import javax.annotation.ParametersAreNonnullByDefault; import com.gtnewhorizons.modularui.api.drawable.IDrawable; import com.gtnewhorizons.modularui.api.math.Pos2d; import gregtech.api.enums.SteamVariant; import gregtech.api.gui.modularui.SteamTexture; -import gregtech.api.util.GT_Recipe; +import gregtech.api.recipe.BasicUIProperties; +import gregtech.api.util.MethodsReturnNonnullByDefault; +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault public class UIHelper { /** * Iterates over candidates for slot placement. */ + @SuppressWarnings("SimplifyStreamApiCallChains") public static void forEachSlots(ForEachSlot forEachItemInputSlot, ForEachSlot forEachItemOutputSlot, ForEachSlot forEachSpecialSlot, ForEachSlot forEachFluidInputSlot, ForEachSlot forEachFluidOutputSlot, - IDrawable itemSlotBackground, IDrawable fluidSlotBackground, @Nullable GT_Recipe.GT_Recipe_Map recipeMap, - int itemInputCount, int itemOutputCount, int fluidInputCount, int fluidOutputCount, SteamVariant steamVariant, - Pos2d offset) { - List<Pos2d> itemInputPositions = recipeMap != null ? recipeMap.getItemInputPositions(itemInputCount) - : UIHelper.getItemInputPositions(itemInputCount); - itemInputPositions = itemInputPositions.stream() + IDrawable itemSlotBackground, IDrawable fluidSlotBackground, BasicUIProperties uiProperties, int itemInputCount, + int itemOutputCount, int fluidInputCount, int fluidOutputCount, SteamVariant steamVariant, Pos2d offset) { + List<Pos2d> itemInputPositions = uiProperties.itemInputPositionsGetter.apply(itemInputCount) + .stream() .map(p -> p.add(offset)) .collect(Collectors.toList()); for (int i = 0; i < itemInputPositions.size(); i++) { forEachItemInputSlot.accept( i, - getBackgroundsForSlot(itemSlotBackground, recipeMap, false, false, i, false, steamVariant), + getBackgroundsForSlot(itemSlotBackground, uiProperties, false, false, i, false, steamVariant), itemInputPositions.get(i)); } - List<Pos2d> itemOutputPositions = recipeMap != null ? recipeMap.getItemOutputPositions(itemOutputCount) - : UIHelper.getItemOutputPositions(itemOutputCount); - itemOutputPositions = itemOutputPositions.stream() + List<Pos2d> itemOutputPositions = uiProperties.itemOutputPositionsGetter.apply(itemOutputCount) + .stream() .map(p -> p.add(offset)) .collect(Collectors.toList()); for (int i = 0; i < itemOutputPositions.size(); i++) { forEachItemOutputSlot.accept( i, - getBackgroundsForSlot(itemSlotBackground, recipeMap, false, true, i, false, steamVariant), + getBackgroundsForSlot(itemSlotBackground, uiProperties, false, true, i, false, steamVariant), itemOutputPositions.get(i)); } forEachSpecialSlot.accept( 0, - getBackgroundsForSlot(itemSlotBackground, recipeMap, false, false, 0, true, steamVariant), - (recipeMap != null ? recipeMap.getSpecialItemPosition() : UIHelper.getSpecialItemPosition()).add(offset)); + getBackgroundsForSlot(itemSlotBackground, uiProperties, false, false, 0, true, steamVariant), + uiProperties.specialItemPositionGetter.get() + .add(offset)); - List<Pos2d> fluidInputPositions = recipeMap != null ? recipeMap.getFluidInputPositions(fluidInputCount) - : UIHelper.getFluidInputPositions(fluidInputCount); - fluidInputPositions = fluidInputPositions.stream() + List<Pos2d> fluidInputPositions = uiProperties.fluidInputPositionsGetter.apply(fluidInputCount) + .stream() .map(p -> p.add(offset)) .collect(Collectors.toList()); for (int i = 0; i < fluidInputPositions.size(); i++) { forEachFluidInputSlot.accept( i, - getBackgroundsForSlot(fluidSlotBackground, recipeMap, true, false, i, false, steamVariant), + getBackgroundsForSlot(fluidSlotBackground, uiProperties, true, false, i, false, steamVariant), fluidInputPositions.get(i)); } - List<Pos2d> fluidOutputPositions = recipeMap != null ? recipeMap.getFluidOutputPositions(fluidOutputCount) - : UIHelper.getFluidOutputPositions(fluidOutputCount); - fluidOutputPositions = fluidOutputPositions.stream() + List<Pos2d> fluidOutputPositions = uiProperties.fluidOutputPositionsGetter.apply(fluidOutputCount) + .stream() .map(p -> p.add(offset)) .collect(Collectors.toList()); for (int i = 0; i < fluidOutputPositions.size(); i++) { forEachFluidOutputSlot.accept( i, - getBackgroundsForSlot(fluidSlotBackground, recipeMap, true, true, i, false, steamVariant), + getBackgroundsForSlot(fluidSlotBackground, uiProperties, true, true, i, false, steamVariant), fluidOutputPositions.get(i)); } } @@ -172,25 +173,32 @@ public class UIHelper { return getGridPositions(itemCount, xOrigin, yOrigin, xDirMaxCount, yDirMaxCount); } - private static IDrawable[] getBackgroundsForSlot(IDrawable base, GT_Recipe.GT_Recipe_Map recipeMap, boolean isFluid, + private static IDrawable[] getBackgroundsForSlot(IDrawable base, BasicUIProperties uiProperties, boolean isFluid, boolean isOutput, int index, boolean isSpecial, SteamVariant steamVariant) { - if (recipeMap != null) { - IDrawable overlay; - if (steamVariant != SteamVariant.NONE) { - SteamTexture steamTexture = recipeMap.getOverlayForSlotSteam(isFluid, isOutput, index, isSpecial); - if (steamTexture != null) { - overlay = steamTexture.get(steamVariant); - } else { - overlay = null; - } + IDrawable overlay = getOverlay(uiProperties, isFluid, isOutput, index, isSpecial, steamVariant); + if (overlay != null) { + return new IDrawable[] { base, overlay }; + } else { + return new IDrawable[] { base }; + } + } + + @Nullable + private static IDrawable getOverlay(BasicUIProperties uiProperties, boolean isFluid, boolean isOutput, int index, + boolean isSpecial, SteamVariant steamVariant) { + if (isSpecial && !uiProperties.useSpecialSlot) { + return null; + } + if (steamVariant != SteamVariant.NONE) { + SteamTexture steamTexture = uiProperties.getOverlayForSlotSteam(index, isFluid, isOutput, isSpecial); + if (steamTexture != null) { + return steamTexture.get(steamVariant); } else { - overlay = recipeMap.getOverlayForSlot(isFluid, isOutput, index, isSpecial); - } - if (overlay != null) { - return new IDrawable[] { base, overlay }; + return null; } + } else { + return uiProperties.getOverlayForSlot(index, isFluid, isOutput, isSpecial); } - return new IDrawable[] { base }; } @FunctionalInterface diff --git a/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java b/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java index e1163f84eb..653461f164 100644 --- a/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java +++ b/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java @@ -32,10 +32,10 @@ import static gregtech.api.enums.Textures.BlockIcons.SOLARPANEL_LuV; import static gregtech.api.enums.Textures.BlockIcons.SOLARPANEL_MV; import static gregtech.api.enums.Textures.BlockIcons.SOLARPANEL_UV; import static gregtech.api.enums.Textures.BlockIcons.SOLARPANEL_ZPM; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sAssemblerRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sBoxinatorRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCannerRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCompressorRecipes; +import static gregtech.api.recipe.RecipeMaps.assemblerRecipes; +import static gregtech.api.recipe.RecipeMaps.cannerRecipes; +import static gregtech.api.recipe.RecipeMaps.compressorRecipes; +import static gregtech.api.recipe.RecipeMaps.packagerRecipes; import static gregtech.api.util.GT_RecipeBuilder.MINUTES; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; @@ -87,6 +87,7 @@ import gregtech.api.items.GT_MetaBase_Item; import gregtech.api.items.GT_MetaGenerated_Item_X32; import gregtech.api.objects.ItemData; import gregtech.api.objects.MaterialStack; +import gregtech.api.recipe.RecipeMaps; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_FoodStat; import gregtech.api.util.GT_LanguageManager; @@ -199,7 +200,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(new ItemStack(this, 1, 17000 + Materials.Wood.mMetaItemSubID)) .duration(15 * SECONDS) .eut(2) - .addTo(sCompressorRecipes); + .addTo(compressorRecipes); } GregTech_API.registerCover( @@ -922,7 +923,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Spray_Empty.get(1L)) .duration(40 * SECONDS) .eut(1) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); ItemList.Crate_Empty.set( addItem( @@ -964,7 +965,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.ThermosCan_Empty.get(1L)) .duration(40 * SECONDS) .eut(1) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); ItemList.Large_Fluid_Cell_Steel.set( addItem( @@ -987,7 +988,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Large_Fluid_Cell_Steel.get(1L)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); ItemList.Large_Fluid_Cell_TungstenSteel.set( addItem( @@ -1010,7 +1011,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Large_Fluid_Cell_TungstenSteel.get(1L)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); ItemList.Large_Fluid_Cell_Aluminium.set( addItem( @@ -1033,7 +1034,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Large_Fluid_Cell_Aluminium.get(1L)) .duration(10 * SECONDS) .eut(64) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); ItemList.Large_Fluid_Cell_StainlessSteel.set( addItem( @@ -1056,7 +1057,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Large_Fluid_Cell_StainlessSteel.get(1L)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); ItemList.Large_Fluid_Cell_Titanium.set( addItem( @@ -1079,7 +1080,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Large_Fluid_Cell_Titanium.get(1L)) .duration(10 * SECONDS) .eut(256) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); ItemList.Large_Fluid_Cell_Chrome.set( addItem( @@ -1102,7 +1103,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Large_Fluid_Cell_Chrome.get(1L)) .duration(10 * SECONDS) .eut(1024) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); ItemList.Large_Fluid_Cell_Iridium.set( addItem( @@ -1125,7 +1126,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Large_Fluid_Cell_Iridium.get(1L)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); ItemList.Large_Fluid_Cell_Osmium.set( addItem( @@ -1148,7 +1149,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Large_Fluid_Cell_Osmium.get(1L)) .duration(10 * SECONDS) .eut(4096) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); ItemList.Large_Fluid_Cell_Neutronium.set( addItem( @@ -1171,7 +1172,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Large_Fluid_Cell_Neutronium.get(1L)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_IV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); for (byte i = 0; i < 16; i = (byte) (i + 1)) { ItemList.SPRAY_CAN_DYES[i].set( addItem( @@ -1240,7 +1241,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Spray_Color_Remover_Empty.get(1L)) .duration(40 * SECONDS) .eut(1) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); ItemList.Tool_Matches.set( addItem( @@ -1283,7 +1284,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Tool_Matches.get(1L)) .duration(16 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_OreDictUnificator.get(OrePrefixes.bolt, Materials.Wood, 1L), @@ -1292,7 +1293,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Tool_Matches.get(1L)) .duration(16 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_OreDictUnificator.get(OrePrefixes.bolt, Materials.Wood, 4L), @@ -1301,7 +1302,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Tool_Matches.get(4L)) .duration(3 * SECONDS + 4 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_OreDictUnificator.get(OrePrefixes.bolt, Materials.Wood, 4L), @@ -1310,7 +1311,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Tool_Matches.get(4L)) .duration(3 * SECONDS + 4 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( ItemList.Tool_Matches.get(16L), @@ -1318,13 +1319,13 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Tool_MatchBox_Full.get(1L)) .duration(3 * SECONDS + 4 * TICKS) .eut(16) - .addTo(sBoxinatorRecipes); + .addTo(packagerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Tool_MatchBox_Full.get(1L)) .itemOutputs(ItemList.Tool_Matches.get(16L)) .duration(1 * SECONDS + 12 * TICKS) .eut(16) - .addTo(sBoxinatorRecipes); + .addTo(packagerRecipes); ItemList.Tool_Lighter_Invar_Empty.set( addItem( @@ -1368,7 +1369,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Tool_Lighter_Invar_Empty.get(1L)) .duration(12 * SECONDS + 16 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); ItemList.Tool_Lighter_Platinum_Empty.set( addItem( @@ -1415,7 +1416,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Tool_Lighter_Platinum_Empty.get(1L)) .duration(12 * SECONDS + 16 * TICKS) .eut(256) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); if (GalacticraftMars.isModLoaded()) { ItemList.Ingot_Heavy1 @@ -1866,7 +1867,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Battery_RE_LV_Cadmium.get(1L)) .duration(5 * SECONDS) .eut(2) - .addTo(sCannerRecipes); + .addTo(cannerRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lithium, 2L), @@ -1874,7 +1875,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Battery_RE_LV_Lithium.get(1L)) .duration(5 * SECONDS) .eut(2) - .addTo(sCannerRecipes); + .addTo(cannerRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 2L), @@ -1882,7 +1883,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Battery_RE_LV_Sodium.get(1L)) .duration(5 * SECONDS) .eut(2) - .addTo(sCannerRecipes); + .addTo(cannerRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Cadmium, 8L), @@ -1890,7 +1891,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Battery_RE_MV_Cadmium.get(1L)) .duration(20 * SECONDS) .eut(2) - .addTo(sCannerRecipes); + .addTo(cannerRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lithium, 8L), @@ -1898,7 +1899,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Battery_RE_MV_Lithium.get(1L)) .duration(20 * SECONDS) .eut(2) - .addTo(sCannerRecipes); + .addTo(cannerRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 8L), @@ -1906,7 +1907,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Battery_RE_MV_Sodium.get(1L)) .duration(20 * SECONDS) .eut(2) - .addTo(sCannerRecipes); + .addTo(cannerRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Cadmium, 32L), @@ -1914,7 +1915,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Battery_RE_HV_Cadmium.get(1L)) .duration(1 * MINUTES + 20 * SECONDS) .eut(2) - .addTo(sCannerRecipes); + .addTo(cannerRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lithium, 32L), @@ -1922,7 +1923,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Battery_RE_HV_Lithium.get(1L)) .duration(1 * MINUTES + 20 * SECONDS) .eut(2) - .addTo(sCannerRecipes); + .addTo(cannerRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 32L), @@ -1930,7 +1931,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Battery_RE_HV_Sodium.get(1L)) .duration(1 * MINUTES + 20 * SECONDS) .eut(2) - .addTo(sCannerRecipes); + .addTo(cannerRecipes); // IV Battery ItemList.Energy_LapotronicOrb.set( @@ -3765,7 +3766,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Upgrade_Muffler.get(1L)) .duration(1 * MINUTES + 20 * SECONDS) .eut(2) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 1L), @@ -3774,7 +3775,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Upgrade_Muffler.get(1L)) .duration(1 * MINUTES + 20 * SECONDS) .eut(2) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 1L), @@ -3783,7 +3784,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Upgrade_Muffler.get(1L)) .duration(1 * MINUTES + 20 * SECONDS) .eut(2) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 1L), @@ -3792,7 +3793,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Upgrade_Muffler.get(1L)) .duration(1 * MINUTES + 20 * SECONDS) .eut(2) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 1L), @@ -3801,7 +3802,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Upgrade_Muffler.get(1L)) .duration(1 * MINUTES + 20 * SECONDS) .eut(2) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 1L), @@ -3810,7 +3811,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Upgrade_Muffler.get(1L)) .duration(1 * MINUTES + 20 * SECONDS) .eut(2) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 1L), @@ -3819,7 +3820,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Upgrade_Lock.get(1L)) .duration(5 * MINUTES + 20 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 1L), @@ -3828,7 +3829,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Upgrade_Lock.get(1L)) .duration(5 * MINUTES + 20 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 1L), @@ -3837,7 +3838,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Upgrade_Lock.get(1L)) .duration(5 * MINUTES + 20 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); ItemList.Component_Filter.set( addItem( @@ -3907,7 +3908,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Cover_PlayerDetector.get(1L)) .duration(2 * MINUTES + 40 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GregTech_API.registerCover( ItemList.Cover_Controller.get(1L), @@ -3998,7 +3999,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Cover_Shutter.get(1L)) .duration(10 * SECONDS) .eut(64) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 1L), @@ -4007,7 +4008,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Cover_Shutter.get(1L)) .duration(10 * SECONDS) .eut(64) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 1L), @@ -4016,7 +4017,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Cover_Shutter.get(1L)) .duration(10 * SECONDS) .eut(64) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 2L), @@ -4025,7 +4026,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Cover_Drain.get(1L)) .duration(10 * SECONDS) .eut(64) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 2L), @@ -4034,7 +4035,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Cover_Drain.get(1L)) .duration(10 * SECONDS) .eut(64) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 2L), @@ -4043,7 +4044,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Cover_Drain.get(1L)) .duration(10 * SECONDS) .eut(64) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 1L), @@ -4052,7 +4053,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Cover_Crafting.get(1L)) .duration(10 * SECONDS) .eut(64) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 1L), @@ -4061,7 +4062,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Cover_Crafting.get(1L)) .duration(10 * SECONDS) .eut(64) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 1L), @@ -4070,7 +4071,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Cover_Crafting.get(1L)) .duration(10 * SECONDS) .eut(64) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( ItemList.Cover_Shutter.get(1L), @@ -4079,7 +4080,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.FluidFilter.get(1L)) .duration(40 * SECONDS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( ItemList.Cover_Screen.get(1L), @@ -4088,7 +4089,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Cover_FluidStorageMonitor.get(1L)) .duration(40 * SECONDS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); final ITexture screenCoverTexture = TextureFactory.of( TextureFactory.of(OVERLAY_SCREEN), @@ -4296,7 +4297,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.NC_SensorKit.get(1L)) .duration(1 * MINUTES + 20 * SECONDS) .eut(2) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); ItemList.Cover_RedstoneTransmitterExternal.set( addItem( @@ -4352,7 +4353,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Cover_RedstoneTransmitterExternal.get(1L)) .duration(2 * MINUTES + 40 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( ItemList.Sensor_EV.get(1L), @@ -4361,7 +4362,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Cover_RedstoneReceiverExternal.get(1L)) .duration(2 * MINUTES + 40 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_ModHandler.addShapelessCraftingRecipe( ItemList.Cover_RedstoneTransmitterInternal.get(1L), @@ -4396,7 +4397,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Cover_NeedsMaintainance.get(1L)) .duration(30 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_ModHandler.addCraftingRecipe( ItemList.ItemFilter_Export.get(1L), @@ -4424,7 +4425,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.ItemFilter_Export.get(1L)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Tin, 2L), @@ -4434,7 +4435,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.ItemFilter_Import.get(1L)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_ModHandler.addCraftingRecipe( ItemList.Tool_Cover_Copy_Paste.get(1L), @@ -4582,7 +4583,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { } public boolean isPlasmaCellUsed(OrePrefixes aPrefix, Materials aMaterial) { - Collection<GT_Recipe> fusionRecipes = GT_Recipe.GT_Recipe_Map.sFusionRecipes.mRecipeList; + Collection<GT_Recipe> fusionRecipes = RecipeMaps.fusionRecipes.getAllRecipes(); if (aPrefix == OrePrefixes.cellPlasma && aMaterial.getPlasma(1L) != null) { // Materials has a plasma fluid for (GT_Recipe recipe : fusionRecipes) { // Loop through fusion recipes if (recipe.getFluidOutput(0) != null) { // Make sure fluid output can't be null (not sure if possible) diff --git a/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_02.java b/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_02.java index 3ef70ae40e..1c4556b5a3 100644 --- a/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_02.java +++ b/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_02.java @@ -7,9 +7,9 @@ import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_ADVANCED_REDSTONE_T import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_WIRELESS_FLUID_DETECTOR; import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_WIRELESS_ITEM_DETECTOR; import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_WIRELESS_MAINTENANCE_DETECTOR; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sAssemblerRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCompressorRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sMaceratorRecipes; +import static gregtech.api.recipe.RecipeMaps.assemblerRecipes; +import static gregtech.api.recipe.RecipeMaps.compressorRecipes; +import static gregtech.api.recipe.RecipeMaps.maceratorRecipes; import static gregtech.api.util.GT_RecipeBuilder.MINUTES; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.WILDCARD; @@ -2467,7 +2467,7 @@ public class GT_MetaGenerated_Item_02 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Cover_AdvancedRedstoneTransmitterExternal.get(1L)) .duration(2 * MINUTES + 40 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( ItemList.Cover_RedstoneReceiverExternal.get(1L), @@ -2476,7 +2476,7 @@ public class GT_MetaGenerated_Item_02 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Cover_AdvancedRedstoneReceiverExternal.get(1L)) .duration(2 * MINUTES + 40 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( ItemList.Cover_FluidDetector.get(1L), @@ -2485,7 +2485,7 @@ public class GT_MetaGenerated_Item_02 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Cover_WirelessFluidDetector.get(1L)) .duration(2 * MINUTES + 40 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( ItemList.Cover_ItemDetector.get(1L), @@ -2494,7 +2494,7 @@ public class GT_MetaGenerated_Item_02 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Cover_WirelessItemDetector.get(1L)) .duration(2 * MINUTES + 40 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( ItemList.Cover_NeedsMaintainance.get(1L), @@ -2503,7 +2503,7 @@ public class GT_MetaGenerated_Item_02 extends GT_MetaGenerated_Item_X32 { .itemOutputs(ItemList.Cover_WirelessNeedsMaintainance.get(1L)) .duration(2 * MINUTES + 40 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_ModHandler.addShapelessCraftingRecipe( ItemList.Cover_AdvancedRedstoneReceiverExternal.get(1L), @@ -2556,84 +2556,84 @@ public class GT_MetaGenerated_Item_02 extends GT_MetaGenerated_Item_X32 { .itemOutputs(new ItemStack(Blocks.wool, 1, 1)) .duration(15 * SECONDS) .eut(2) - .addTo(sCompressorRecipes); + .addTo(compressorRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Crop_Drop_Plumbilia.get(4L)) .itemOutputs(ItemList.IC2_PlantballCompressed.get(1L)) .duration(15 * SECONDS) .eut(2) - .addTo(sCompressorRecipes); + .addTo(compressorRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Crop_Drop_Argentia.get(4L)) .itemOutputs(ItemList.IC2_PlantballCompressed.get(1L)) .duration(15 * SECONDS) .eut(2) - .addTo(sCompressorRecipes); + .addTo(compressorRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Crop_Drop_Indigo.get(4L)) .itemOutputs(ItemList.IC2_PlantballCompressed.get(1L)) .duration(15 * SECONDS) .eut(2) - .addTo(sCompressorRecipes); + .addTo(compressorRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Crop_Drop_Ferru.get(4L)) .itemOutputs(ItemList.IC2_PlantballCompressed.get(1L)) .duration(15 * SECONDS) .eut(2) - .addTo(sCompressorRecipes); + .addTo(compressorRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Crop_Drop_Aurelia.get(4L)) .itemOutputs(ItemList.IC2_PlantballCompressed.get(1L)) .duration(15 * SECONDS) .eut(2) - .addTo(sCompressorRecipes); + .addTo(compressorRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Crop_Drop_OilBerry.get(4L)) .itemOutputs(ItemList.IC2_PlantballCompressed.get(1L)) .duration(15 * SECONDS) .eut(2) - .addTo(sCompressorRecipes); + .addTo(compressorRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Crop_Drop_BobsYerUncleRanks.get(4L)) .itemOutputs(ItemList.IC2_PlantballCompressed.get(1L)) .duration(15 * SECONDS) .eut(2) - .addTo(sCompressorRecipes); + .addTo(compressorRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Crop_Drop_Tine.get(4L)) .itemOutputs(ItemList.IC2_PlantballCompressed.get(1L)) .duration(15 * SECONDS) .eut(2) - .addTo(sCompressorRecipes); + .addTo(compressorRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Crop_Drop_Rape.get(4L)) .itemOutputs(ItemList.IC2_PlantballCompressed.get(1L)) .duration(15 * SECONDS) .eut(2) - .addTo(sCompressorRecipes); + .addTo(compressorRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.red_flower, 8, 32767)) .itemOutputs(ItemList.IC2_PlantballCompressed.get(1L)) .duration(15 * SECONDS) .eut(2) - .addTo(sCompressorRecipes); + .addTo(compressorRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.yellow_flower, 8, 32767)) .itemOutputs(ItemList.IC2_PlantballCompressed.get(1L)) .duration(15 * SECONDS) .eut(2) - .addTo(sCompressorRecipes); + .addTo(compressorRecipes); } GT_Values.RA.stdBuilder() @@ -2641,21 +2641,21 @@ public class GT_MetaGenerated_Item_02 extends GT_MetaGenerated_Item_X32 { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Cheese, 1L)) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Dye_Cocoa.get(1L)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Cocoa, 1L)) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Crop_Drop_Tine.get(1L)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Wood, 2L)) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.melon_block, 1, 0)) @@ -2663,42 +2663,42 @@ public class GT_MetaGenerated_Item_02 extends GT_MetaGenerated_Item_X32 { .outputChances(10000, 8000) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.pumpkin, 1, 0)) .itemOutputs(new ItemStack(Items.pumpkin_seeds, 4, 0)) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.melon, 1, 0)) .itemOutputs(new ItemStack(Items.melon_seeds, 1, 0)) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.wheat, 1, 0)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wheat, 1L)) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_ModHandler.getIC2Item("crop", 1L)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L)) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.stick, 1)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Wood, 2L)) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.wool, 1, WILDCARD)) @@ -2706,14 +2706,14 @@ public class GT_MetaGenerated_Item_02 extends GT_MetaGenerated_Item_X32 { .outputChances(10000, 5000) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Tesseract.get(1)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, MaterialsUEVplus.TranscendentMetal, 8L)) .duration(5 * SECONDS) .eut(32_000_000) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); try { CropCard tCrop; GT_Utility.getField(tCrop = Crops.instance.getCropList()[13], "mDrop") diff --git a/src/main/java/gregtech/common/items/ItemComb.java b/src/main/java/gregtech/common/items/ItemComb.java index 18e163592a..8fd37fd0d9 100644 --- a/src/main/java/gregtech/common/items/ItemComb.java +++ b/src/main/java/gregtech/common/items/ItemComb.java @@ -12,9 +12,9 @@ import static gregtech.api.enums.Mods.MagicBees; import static gregtech.api.enums.Mods.NewHorizonsCoreMod; import static gregtech.api.enums.Mods.Thaumcraft; import static gregtech.api.enums.Mods.ThaumicBases; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sAutoclaveRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sFluidExtractionRecipes; +import static gregtech.api.recipe.RecipeMaps.autoclaveRecipes; +import static gregtech.api.recipe.RecipeMaps.centrifugeRecipes; +import static gregtech.api.recipe.RecipeMaps.fluidExtractionRecipes; import static gregtech.api.util.GT_RecipeBuilder.TICKS; import static gregtech.api.util.GT_RecipeConstants.CLEANROOM; import static gregtech.api.util.GT_RecipeConstants.UniversalChemical; @@ -1599,7 +1599,7 @@ public class ItemComb extends Item implements IGT_ItemWithMaterialRenderer { if (volt.compareTo(Voltage.HV) > 0) { recipeBuilder.requiresCleanRoom(); } - recipeBuilder.addTo(sAutoclaveRecipes); + recipeBuilder.addTo(autoclaveRecipes); } public void addFluidExtractorProcess(CombType comb, FluidStack fluid, Voltage volt) { @@ -1619,7 +1619,7 @@ public class ItemComb extends Item implements IGT_ItemWithMaterialRenderer { .fluidOutputs(fluid) .duration(duration) .eut(eut) - .addTo(sFluidExtractionRecipes); + .addTo(fluidExtractionRecipes); } /** @@ -1782,7 +1782,7 @@ public class ItemComb extends Item implements IGT_ItemWithMaterialRenderer { .outputChances(chance) .duration(duration) .eut(volt.getSimpleEnergy()) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); } public void registerOreDict() { diff --git a/src/main/java/gregtech/common/items/ItemDrop.java b/src/main/java/gregtech/common/items/ItemDrop.java index a3d786714a..5aab9dff48 100644 --- a/src/main/java/gregtech/common/items/ItemDrop.java +++ b/src/main/java/gregtech/common/items/ItemDrop.java @@ -6,7 +6,7 @@ import static gregtech.api.enums.Mods.GregTech; import static gregtech.api.enums.Mods.HardcoreEnderExpansion; import static gregtech.api.enums.Mods.MagicBees; import static gregtech.api.enums.Mods.NewHorizonsCoreMod; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sFluidExtractionRecipes; +import static gregtech.api.recipe.RecipeMaps.fluidExtractionRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; @@ -200,7 +200,7 @@ public class ItemDrop extends Item { .fluidOutputs(aOutput) .duration(1 * SECONDS + 12 * TICKS) .eut(aEUt) - .addTo(sFluidExtractionRecipes); + .addTo(fluidExtractionRecipes); } public void addProcessLV(ItemStack tDrop, FluidStack aOutput, ItemStack aOutput2, int aChance, int aDuration, @@ -212,7 +212,7 @@ public class ItemDrop extends Item { .fluidOutputs(aOutput) .duration(aDuration) .eut(aEUt) - .addTo(sFluidExtractionRecipes); + .addTo(fluidExtractionRecipes); } public void addProcessMV(ItemStack tDrop, FluidStack aOutput, ItemStack aOutput2, int aChance, int aEUt) { @@ -223,7 +223,7 @@ public class ItemDrop extends Item { .fluidOutputs(aOutput) .duration(6 * SECONDS + 8 * TICKS) .eut(aEUt) - .addTo(sFluidExtractionRecipes); + .addTo(fluidExtractionRecipes); } public void addProcessHV(ItemStack tDrop, FluidStack aOutput, ItemStack aOutput2, int aChance) { @@ -236,6 +236,6 @@ public class ItemDrop extends Item { recipeBuilder.fluidOutputs(aOutput) .duration(24 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sFluidExtractionRecipes); + .addTo(fluidExtractionRecipes); } } diff --git a/src/main/java/gregtech/common/items/ItemPropolis.java b/src/main/java/gregtech/common/items/ItemPropolis.java index 222635845a..1c0d727bda 100644 --- a/src/main/java/gregtech/common/items/ItemPropolis.java +++ b/src/main/java/gregtech/common/items/ItemPropolis.java @@ -3,7 +3,7 @@ package gregtech.common.items; import static gregtech.api.enums.Mods.GregTech; import static gregtech.api.enums.Mods.HardcoreEnderExpansion; import static gregtech.api.enums.Mods.NewHorizonsCoreMod; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sFluidExtractionRecipes; +import static gregtech.api.recipe.RecipeMaps.fluidExtractionRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; @@ -114,7 +114,7 @@ public class ItemPropolis extends Item { .fluidOutputs(FluidRegistry.getFluidStack("endergoo", 100)) .duration(2 * SECONDS + 10 * TICKS) .eut(TierEU.RECIPE_HV) - .addTo(sFluidExtractionRecipes); + .addTo(fluidExtractionRecipes); } public void addProcessEV(ItemStack tPropolis, ItemStack aOutput2) { @@ -125,7 +125,7 @@ public class ItemPropolis extends Item { .fluidOutputs(FluidRegistry.getFluidStack("endergoo", 200)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sFluidExtractionRecipes); + .addTo(fluidExtractionRecipes); } public void addProcessIV(ItemStack tPropolis, ItemStack aOutput2) { @@ -136,6 +136,6 @@ public class ItemPropolis extends Item { .fluidOutputs(FluidRegistry.getFluidStack("endergoo", 300)) .duration(7 * SECONDS + 10 * TICKS) .eut(TierEU.RECIPE_IV) - .addTo(sFluidExtractionRecipes); + .addTo(fluidExtractionRecipes); } } diff --git a/src/main/java/gregtech/common/misc/spaceprojects/SpaceProjectManager.java b/src/main/java/gregtech/common/misc/spaceprojects/SpaceProjectManager.java index c34c486223..1859249ccd 100644 --- a/src/main/java/gregtech/common/misc/spaceprojects/SpaceProjectManager.java +++ b/src/main/java/gregtech/common/misc/spaceprojects/SpaceProjectManager.java @@ -5,10 +5,13 @@ import java.util.HashMap; import java.util.Map; import java.util.UUID; +import net.minecraft.item.ItemStack; import net.minecraft.server.MinecraftServer; +import net.minecraftforge.fluids.FluidStack; import org.apache.commons.lang3.tuple.Pair; +import gregtech.api.recipe.RecipeMaps; import gregtech.api.util.GT_Recipe; import gregtech.common.misc.spaceprojects.interfaces.ISpaceBody; import gregtech.common.misc.spaceprojects.interfaces.ISpaceProject; @@ -174,6 +177,17 @@ public class SpaceProjectManager { // #region Project Helper methods + public static class FakeSpaceProjectRecipe extends GT_Recipe { + + public final String projectName; + + public FakeSpaceProjectRecipe(boolean aOptimize, ItemStack[] aInputs, FluidStack[] aFluidInputs, int aDuration, + int aEUt, int aSpecialValue, String projectName) { + super(aOptimize, aInputs, null, null, null, aFluidInputs, null, aDuration, aEUt, aSpecialValue); + this.projectName = projectName; + } + } + /** * Used to add projects to the internal map. * @@ -181,8 +195,8 @@ public class SpaceProjectManager { */ public static void addProject(ISpaceProject project) { spaceProjects.put(project.getProjectName(), project); - GT_Recipe.GT_Recipe_Map.sFakeSpaceProjectRecipes.add( - new GT_Recipe.GT_Recipe_Map.GT_FakeSpaceProjectRecipe( + RecipeMaps.spaceProjectFakeRecipes.add( + new FakeSpaceProjectRecipe( false, project.getTotalItemsCost(), project.getTotalFluidsCost(), diff --git a/src/main/java/gregtech/common/power/BasicMachineEUPower.java b/src/main/java/gregtech/common/power/BasicMachineEUPower.java deleted file mode 100644 index 6fec7e7954..0000000000 --- a/src/main/java/gregtech/common/power/BasicMachineEUPower.java +++ /dev/null @@ -1,74 +0,0 @@ -package gregtech.common.power; - -import static gregtech.api.enums.GT_Values.V; - -public class BasicMachineEUPower extends EUPower { - - protected static final String OC = " (OC)"; - protected boolean wasOverclocked; - - public BasicMachineEUPower(byte tier, int amperage) { - super(tier, amperage); - } - - public BasicMachineEUPower(byte tier, int amperage, int specialValue) { - super(tier, amperage, specialValue); - } - - @Override - public void computePowerUsageAndDuration(int euPerTick, int duration) { - super.computePowerUsageAndDuration(euPerTick, duration); - if (tier == 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 = euPerTick >> 2; - recipeDuration = (int) xMaxProgresstime; - } - } else { - // Long EUt calculation - long xEUt = euPerTick; - // Isnt too low EUt check? - long tempEUt = Math.max(xEUt, V[1]); - - recipeDuration = duration; - - while (tempEUt <= V[tier - 1] * (long) amperage) { - tempEUt <<= 2; // this actually controls overclocking - // xEUt *= 4;//this is effect of everclocking - recipeDuration >>= 1; // this is effect of overclocking - xEUt = recipeDuration == 0 ? xEUt >> 1 : xEUt << 2; // U know, if the time is less than 1 tick make the - // machine use 2x 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 - public String getPowerUsageString() { - return decorateWithOverclockLabel(super.getPowerUsageString()); - } - - protected String decorateWithOverclockLabel(String s) { - if (wasOverclocked) { - s += OC; - } - return s; - } - - protected boolean checkIfOverclocked() { - return originalVoltage != computeVoltageForEuRate(recipeEuPerTick); - } -} diff --git a/src/main/java/gregtech/common/power/EUPower.java b/src/main/java/gregtech/common/power/EUPower.java deleted file mode 100644 index a01e827f38..0000000000 --- a/src/main/java/gregtech/common/power/EUPower.java +++ /dev/null @@ -1,58 +0,0 @@ -package gregtech.common.power; - -import gregtech.api.util.GT_Utility; - -public class EUPower extends Power { - - protected final int amperage; - protected int originalVoltage; - - public EUPower(byte tier, int amperage) { - super(tier); - this.amperage = amperage; - } - - public EUPower(byte tier, int amperage, int specialValue) { - super(tier, specialValue); - this.amperage = amperage; - } - - @Override - // This generic EU Power class has no overclock defined and does no special calculations. - public void computePowerUsageAndDuration(int euPerTick, int duration) { - originalVoltage = computeVoltageForEuRate(euPerTick); - recipeEuPerTick = euPerTick; - recipeDuration = duration; - } - - @Override - public String getTierString() { - return GT_Utility.getColoredTierNameFromTier(tier); - } - - @Override - public String getTotalPowerString() { - return GT_Utility.formatNumbers((long) recipeDuration * recipeEuPerTick) + " EU"; - } - - @Override - public String getPowerUsageString() { - return GT_Utility.formatNumbers(recipeEuPerTick) + " EU/t"; - } - - @Override - public String getVoltageString() { - String voltageDescription = GT_Utility.formatNumbers(originalVoltage) + " EU/t"; - voltageDescription += GT_Utility.getTierNameWithParentheses(originalVoltage); - return voltageDescription; - } - - @Override - public String getAmperageString() { - return GT_Utility.formatNumbers(amperage); - } - - protected int computeVoltageForEuRate(int euPerTick) { - return amperage != 0 ? euPerTick / amperage : euPerTick; - } -} diff --git a/src/main/java/gregtech/common/power/FusionPower.java b/src/main/java/gregtech/common/power/FusionPower.java deleted file mode 100644 index d3bcdd41b4..0000000000 --- a/src/main/java/gregtech/common/power/FusionPower.java +++ /dev/null @@ -1,52 +0,0 @@ -package gregtech.common.power; - -import static gregtech.api.enums.GT_Values.V; - -import net.minecraft.util.EnumChatFormatting; - -import gregtech.api.enums.GT_Values; -import gregtech.nei.FusionSpecialValueFormatter; - -public class FusionPower extends BasicMachineEUPower { - - public FusionPower(byte tier, int startupPower) { - super(tier, 1, startupPower); - } - - @Override - public void computePowerUsageAndDuration(int euPerTick, int duration, int specialValue) { - originalVoltage = computeVoltageForEuRate(euPerTick); - recipeEuPerTick = euPerTick; - recipeDuration = duration; - // It's safe to assume fusion is above ULV. We put this as safety check here anyway - if (tier > 0) { - int maxPossibleOverclocks = FusionSpecialValueFormatter.getFusionTier(this.specialValue, V[tier - 1]) - - FusionSpecialValueFormatter.getFusionTier(specialValue, euPerTick); - // Isn't too low EUt check? - long tempEUt = Math.max(euPerTick, V[1]); - - recipeDuration = duration; - - while (tempEUt <= V[tier - 1] * (long) amperage && maxPossibleOverclocks-- > 0) { - tempEUt <<= 1; // this actually controls overclocking - recipeDuration >>= 1; // this is effect of overclocking - } - if (tempEUt > Integer.MAX_VALUE - 1) { - recipeEuPerTick = Integer.MAX_VALUE - 1; - recipeDuration = Integer.MAX_VALUE - 1; - } else { - recipeEuPerTick = (int) tempEUt; - if (recipeEuPerTick == 0) recipeEuPerTick = 1; - if (recipeDuration == 0) recipeDuration = 1; // set time to 1 tick - } - } - wasOverclocked = checkIfOverclocked(); - } - - @Override - public String getTierString() { - return GT_Values.TIER_COLORS[tier] + "MK " - + (tier - 5) // Mk1 <-> LuV - + EnumChatFormatting.RESET; - } -} diff --git a/src/main/java/gregtech/common/power/Power.java b/src/main/java/gregtech/common/power/Power.java deleted file mode 100644 index 28cdfa3559..0000000000 --- a/src/main/java/gregtech/common/power/Power.java +++ /dev/null @@ -1,73 +0,0 @@ -package gregtech.common.power; - -import gregtech.api.util.GT_Utility; - -public abstract class Power { - - protected final byte tier; - protected int recipeEuPerTick; - protected int recipeDuration; - protected final int specialValue; - - public Power(byte tier) { - this(tier, 0); - } - - public Power(byte tier, int specialValue) { - this.tier = tier; - this.specialValue = specialValue; - } - - public byte getTier() { - return tier; - } - - public abstract String getTierString(); - - /** - * This method should be called prior to usage of any value except the power tier. - */ - public abstract void computePowerUsageAndDuration(int euPerTick, int duration); - - public void computePowerUsageAndDuration(int euPerTick, int duration, int specialValue) { - computePowerUsageAndDuration(euPerTick, duration); - } - - public int getEuPerTick() { - return recipeEuPerTick; - } - - public int getDurationTicks() { - return recipeDuration; - } - - public double getDurationSeconds() { - return 0.05d * getDurationTicks(); - } - - public String getDurationStringSeconds() { - return GT_Utility.formatNumbers(getDurationSeconds()) + GT_Utility.trans("161", " secs"); - } - - public String getDurationStringTicks() { - if (getDurationTicks() == 1) { - return GT_Utility.formatNumbers(getDurationTicks()) + GT_Utility.trans("209.1", " tick"); - } - return GT_Utility.formatNumbers(getDurationTicks()) + GT_Utility.trans("209", " ticks"); - } - - public abstract String getTotalPowerString(); - - public abstract String getPowerUsageString(); - - public abstract String getVoltageString(); - - public abstract String getAmperageString(); - - public int compareTo(byte tier, int specialValue) { - if (this.tier < tier) { - return this.tier - tier; - } - return this.specialValue - specialValue; - } -} diff --git a/src/main/java/gregtech/common/power/SteamPower.java b/src/main/java/gregtech/common/power/SteamPower.java deleted file mode 100644 index 6394b6a5ef..0000000000 --- a/src/main/java/gregtech/common/power/SteamPower.java +++ /dev/null @@ -1,54 +0,0 @@ -package gregtech.common.power; - -import gregtech.api.util.GT_Utility; - -public class SteamPower extends Power { - - private final double euPerTickOverride; - private final double durationOverride; - private final String[] STEAM_TIER_NAMES = { "Bronze", "Steel" }; - - public SteamPower(byte tier, double euPerTickMultiplier, double durationMultiplier) { - super(tier); - this.euPerTickOverride = euPerTickMultiplier; - this.durationOverride = durationMultiplier; - } - - @Override - public byte getTier() { - return 1; - } - - @Override - public String getTierString() { - return STEAM_TIER_NAMES[tier - 1]; - } - - @Override - public void computePowerUsageAndDuration(int euPerTick, int duration) { - recipeEuPerTick = (int) (euPerTick * euPerTickOverride); - recipeDuration = (int) (duration * durationOverride); - } - - @Override - public String getTotalPowerString() { - // 2L normal steam == 1EU - return GT_Utility.formatNumbers(2L * recipeDuration * recipeEuPerTick) + " Steam"; - } - - @Override - public String getPowerUsageString() { - // 2L normal steam == 1EU - return GT_Utility.formatNumbers(20L * 2L * recipeEuPerTick) + " L/s Steam"; - } - - @Override - public String getVoltageString() { - return null; - } - - @Override - public String getAmperageString() { - return null; - } -} diff --git a/src/main/java/gregtech/common/power/UnspecifiedEUPower.java b/src/main/java/gregtech/common/power/UnspecifiedEUPower.java deleted file mode 100644 index e411f03613..0000000000 --- a/src/main/java/gregtech/common/power/UnspecifiedEUPower.java +++ /dev/null @@ -1,28 +0,0 @@ -package gregtech.common.power; - -import gregtech.api.util.GT_Utility; - -public class UnspecifiedEUPower extends EUPower { - - private final String VOLTAGE = GT_Utility.trans("271", "unspecified"); - private final String AMPERAGE = GT_Utility.trans("271", "unspecified"); - - public UnspecifiedEUPower(byte tier, int amperage) { - super(tier, amperage); - } - - @Override - public String getPowerUsageString() { - return super.getVoltageString(); - } - - @Override - public String getVoltageString() { - return VOLTAGE; - } - - @Override - public String getAmperageString() { - return AMPERAGE; - } -} 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 diff --git a/src/main/java/gregtech/common/tools/GT_Tool_HardHammer.java b/src/main/java/gregtech/common/tools/GT_Tool_HardHammer.java index ab9cfde6af..066abd48b8 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool_HardHammer.java +++ b/src/main/java/gregtech/common/tools/GT_Tool_HardHammer.java @@ -21,6 +21,7 @@ import gregtech.GT_Mod; import gregtech.api.enums.SoundResource; import gregtech.api.interfaces.IIconContainer; import gregtech.api.items.GT_MetaGenerated_Tool; +import gregtech.api.recipe.RecipeMaps; import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_ToolHarvestHelper; import gregtech.api.util.GT_Utility; @@ -125,18 +126,18 @@ public class GT_Tool_HardHammer extends GT_Tool { return GT_ToolHarvestHelper.isAppropriateTool(aBlock, aMetaData, "hammer", "pickaxe") || GT_ToolHarvestHelper .isAppropriateMaterial(aBlock, Material.rock, Material.glass, Material.ice, Material.packedIce) - || GT_Recipe.GT_Recipe_Map.sHammerRecipes.containsInput(new ItemStack(aBlock, 1, aMetaData)); + || RecipeMaps.hammerRecipes.containsInput(new ItemStack(aBlock, 1, aMetaData)); } @Override public int convertBlockDrops(List<ItemStack> aDrops, ItemStack aStack, EntityPlayer aPlayer, Block aBlock, int aX, int aY, int aZ, byte aMetaData, int aFortune, boolean aSilkTouch, BlockEvent.HarvestDropsEvent aEvent) { int rConversions = 0; - GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sHammerRecipes + GT_Recipe tRecipe = RecipeMaps.hammerRecipes .findRecipe(null, true, MAX_IC2, null, new ItemStack(aBlock, 1, aMetaData)); if ((tRecipe == null) || (aBlock.hasTileEntity(aMetaData))) { for (ItemStack tDrop : aDrops) { - tRecipe = GT_Recipe.GT_Recipe_Map.sHammerRecipes + tRecipe = RecipeMaps.hammerRecipes .findRecipe(null, true, MAX_IC2, null, GT_Utility.copyAmount(1, tDrop)); if (tRecipe != null) { ItemStack tHammeringOutput = tRecipe.getOutput(0); diff --git a/src/main/java/gregtech/common/tools/GT_Tool_JackHammer.java b/src/main/java/gregtech/common/tools/GT_Tool_JackHammer.java index 7fc4956cbb..2621ff8ef7 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool_JackHammer.java +++ b/src/main/java/gregtech/common/tools/GT_Tool_JackHammer.java @@ -15,6 +15,7 @@ import net.minecraftforge.event.world.BlockEvent; import gregtech.GT_Mod; import gregtech.api.enums.Textures; import gregtech.api.interfaces.IIconContainer; +import gregtech.api.recipe.RecipeMaps; import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_ToolHarvestHelper; import gregtech.api.util.GT_Utility; @@ -77,11 +78,11 @@ public class GT_Tool_JackHammer extends GT_Tool_Drill_LV { public int convertBlockDrops(List<ItemStack> aDrops, ItemStack aStack, EntityPlayer aPlayer, Block aBlock, int aX, int aY, int aZ, byte aMetaData, int aFortune, boolean aSilkTouch, BlockEvent.HarvestDropsEvent aEvent) { int rConversions = 0; - GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sHammerRecipes + GT_Recipe tRecipe = RecipeMaps.hammerRecipes .findRecipe(null, true, 2147483647L, null, new ItemStack(aBlock, 1, aMetaData)); if ((tRecipe == null) || (aBlock.hasTileEntity(aMetaData))) { for (ItemStack tDrop : aDrops) { - tRecipe = GT_Recipe.GT_Recipe_Map.sHammerRecipes + tRecipe = RecipeMaps.hammerRecipes .findRecipe(null, true, 2147483647L, null, GT_Utility.copyAmount(1, tDrop)); if (tRecipe != null) { ItemStack tHammeringOutput = tRecipe.getOutput(0); diff --git a/src/main/java/gregtech/loaders/load/GT_FuelLoader.java b/src/main/java/gregtech/loaders/load/GT_FuelLoader.java index ad9b890cc1..0343362c77 100644 --- a/src/main/java/gregtech/loaders/load/GT_FuelLoader.java +++ b/src/main/java/gregtech/loaders/load/GT_FuelLoader.java @@ -16,6 +16,7 @@ import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.fluid.GT_FluidFactory; +import gregtech.api.recipe.RecipeMaps; import gregtech.api.util.GT_Log; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; @@ -47,7 +48,7 @@ public class GT_FuelLoader implements Runnable { 30, 2); - GT_Recipe.GT_Recipe_Map.sSmallNaquadahReactorFuels.addRecipe( + RecipeMaps.smallNaquadahReactorFuels.addRecipe( true, new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.bolt, Materials.NaquadahEnriched, 1L) }, new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.bolt, Materials.Naquadah, 1L) }, @@ -57,7 +58,7 @@ public class GT_FuelLoader implements Runnable { 0, 0, 50000); - GT_Recipe.GT_Recipe_Map.sLargeNaquadahReactorFuels.addRecipe( + RecipeMaps.largeNaquadahReactorFuels.addRecipe( true, new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.stick, Materials.NaquadahEnriched, 1L) }, new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Naquadah, 1L) }, @@ -67,7 +68,7 @@ public class GT_FuelLoader implements Runnable { 0, 0, 250000); - GT_Recipe.GT_Recipe_Map.sHugeNaquadahReactorFuels.addRecipe( + RecipeMaps.hugeNaquadahReactorFuels.addRecipe( true, new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.NaquadahEnriched, 1L) }, new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Naquadah, 1L) }, @@ -77,7 +78,7 @@ public class GT_FuelLoader implements Runnable { 0, 0, 500000); - GT_Recipe.GT_Recipe_Map.sExtremeNaquadahReactorFuels.addRecipe( + RecipeMaps.extremeNaquadahReactorFuels.addRecipe( true, new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.bolt, Materials.Naquadria, 1L) }, new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.bolt, Materials.Naquadah, 1L) }, @@ -87,7 +88,7 @@ public class GT_FuelLoader implements Runnable { 0, 0, 250000); - GT_Recipe.GT_Recipe_Map.sUltraHugeNaquadahReactorFuels.addRecipe( + RecipeMaps.ultraHugeNaquadahReactorFuels.addRecipe( true, new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Naquadria, 1L) }, new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Naquadah, 1L) }, @@ -97,7 +98,7 @@ public class GT_FuelLoader implements Runnable { 0, 0, 1000000); - GT_Recipe.GT_Recipe_Map.sFluidNaquadahReactorFuels.addRecipe( + RecipeMaps.fluidNaquadahReactorFuels.addRecipe( true, new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.cell, Materials.NaquadahEnriched, 1L) }, new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Naquadah, 1L) }, @@ -109,7 +110,7 @@ public class GT_FuelLoader implements Runnable { 1400000); // BloodMagic - GT_Recipe.GT_Recipe_Map.sMagicFuels.addRecipe( + RecipeMaps.magicFuels.addRecipe( true, new ItemStack[] { GT_ModHandler.getModItem(BloodMagic.ID, "reinforcedSlate", 1L) }, new ItemStack[] { GT_ModHandler.getModItem(BloodMagic.ID, "blankSlate", 1L) }, @@ -119,7 +120,7 @@ public class GT_FuelLoader implements Runnable { 0, 0, 400); - GT_Recipe.GT_Recipe_Map.sMagicFuels.addRecipe( + RecipeMaps.magicFuels.addRecipe( true, new ItemStack[] { GT_ModHandler.getModItem(BloodMagic.ID, "imbuedSlate", 1L) }, new ItemStack[] { GT_ModHandler.getModItem(BloodMagic.ID, "reinforcedSlate", 1L) }, @@ -129,7 +130,7 @@ public class GT_FuelLoader implements Runnable { 0, 0, 1000); - GT_Recipe.GT_Recipe_Map.sMagicFuels.addRecipe( + RecipeMaps.magicFuels.addRecipe( true, new ItemStack[] { GT_ModHandler.getModItem(BloodMagic.ID, "demonicSlate", 1L) }, new ItemStack[] { GT_ModHandler.getModItem(BloodMagic.ID, "imbuedSlate", 1L) }, @@ -139,7 +140,7 @@ public class GT_FuelLoader implements Runnable { 0, 0, 8000); - GT_Recipe.GT_Recipe_Map.sMagicFuels.addRecipe( + RecipeMaps.magicFuels.addRecipe( true, new ItemStack[] { GT_ModHandler.getModItem(BloodMagic.ID, "bloodMagicBaseItems", 1L, 27) }, new ItemStack[] { GT_ModHandler.getModItem(BloodMagic.ID, "demonicSlate", 1L) }, @@ -154,36 +155,26 @@ public class GT_FuelLoader implements Runnable { .itemInputs(GT_ModHandler.getModItem(Thaumcraft.ID, "ItemResource", 1L, 4)) .metadata(FUEL_VALUE, 4) .metadata(FUEL_TYPE, 5) - .duration(0) - .eut(0) .addTo(GT_RecipeConstants.Fuel); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.experience_bottle, 1)) .metadata(FUEL_VALUE, 10) .metadata(FUEL_TYPE, 5) - .duration(0) - .eut(0) .addTo(GT_RecipeConstants.Fuel); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.ghast_tear, 1)) .metadata(FUEL_VALUE, 50) .metadata(FUEL_TYPE, 5) - .duration(0) - .eut(0) .addTo(GT_RecipeConstants.Fuel); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.beacon, 1)) .metadata(FUEL_VALUE, Materials.NetherStar.mFuelPower * 2) .metadata(FUEL_TYPE, Materials.NetherStar.mFuelType) - .duration(0) - .eut(0) .addTo(GT_RecipeConstants.Fuel); GT_Values.RA.stdBuilder() .itemInputs(GT_ModHandler.getModItem(EnderIO.ID, "bucketRocket_fuel", 1)) .metadata(FUEL_VALUE, 250) .metadata(FUEL_TYPE, 1) - .duration(0) - .eut(0) .addTo(GT_RecipeConstants.Fuel); } } diff --git a/src/main/java/gregtech/loaders/load/GT_ItemIterator.java b/src/main/java/gregtech/loaders/load/GT_ItemIterator.java index b50fe65dc5..9098144114 100644 --- a/src/main/java/gregtech/loaders/load/GT_ItemIterator.java +++ b/src/main/java/gregtech/loaders/load/GT_ItemIterator.java @@ -1,7 +1,7 @@ package gregtech.loaders.load; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCannerRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sMaceratorRecipes; +import static gregtech.api.recipe.RecipeMaps.cannerRecipes; +import static gregtech.api.recipe.RecipeMaps.maceratorRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.WILDCARD; import static gregtech.api.util.GT_RecipeConstants.FUEL_TYPE; @@ -47,7 +47,7 @@ public class GT_ItemIterator implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Bronze, 8L)) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_ModHandler.addSmeltingRecipe(tStack, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Bronze, 8L)); } @@ -63,7 +63,7 @@ public class GT_ItemIterator implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Bronze, 8L)) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_ModHandler.addSmeltingRecipe(tStack, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Bronze, 8L)); } @@ -89,7 +89,7 @@ public class GT_ItemIterator implements Runnable { .outputChances(10000, 1000) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); } tStack2 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1L); @@ -113,7 +113,7 @@ public class GT_ItemIterator implements Runnable { .outputChances(10000, 1000) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); } GT_Log.out.println("GT_Mod: Registering various Tools to be usable on GregTech Machines"); GregTech_API.registerScrewdriver( @@ -130,31 +130,31 @@ public class GT_ItemIterator implements Runnable { .itemOutputs(ItemList.IC2_Food_Can_Spoiled.get(1L)) .duration(10 * SECONDS) .eut(1) - .addTo(sCannerRecipes); + .addTo(cannerRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.spider_eye, 2, WILDCARD), ItemList.IC2_Food_Can_Empty.get(1L)) .itemOutputs(ItemList.IC2_Food_Can_Spoiled.get(1L)) .duration(5 * SECONDS) .eut(1) - .addTo(sCannerRecipes); + .addTo(cannerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Food_Poisonous_Potato.get(2L), ItemList.IC2_Food_Can_Empty.get(1L)) .itemOutputs(ItemList.IC2_Food_Can_Spoiled.get(1L)) .duration(5 * SECONDS) .eut(1) - .addTo(sCannerRecipes); + .addTo(cannerRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.cake, 1, WILDCARD), ItemList.IC2_Food_Can_Empty.get(12L)) .itemOutputs(ItemList.IC2_Food_Can_Filled.get(12L)) .duration(30 * SECONDS) .eut(1) - .addTo(sCannerRecipes); + .addTo(cannerRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.mushroom_stew, 1, WILDCARD), ItemList.IC2_Food_Can_Empty.get(6L)) .itemOutputs(ItemList.IC2_Food_Can_Filled.get(6L), new ItemStack(Items.bowl, 1)) .duration(15 * SECONDS) .eut(1) - .addTo(sCannerRecipes); + .addTo(cannerRecipes); GT_Log.out.println("GT_Mod: Scanning ItemList."); @@ -225,7 +225,7 @@ public class GT_ItemIterator implements Runnable { } recipeBuilder.duration(tFoodValue * 5 * SECONDS) .eut(1) - .addTo(sCannerRecipes); + .addTo(cannerRecipes); } } if ((tItem instanceof IFluidContainerItem)) { @@ -238,8 +238,6 @@ public class GT_ItemIterator implements Runnable { .itemInputs(new ItemStack(tItem, 1, 0)) .metadata(FUEL_VALUE, 2048) .metadata(FUEL_TYPE, 5) - .duration(0) - .eut(0) .addTo(GT_RecipeConstants.Fuel); // twilight forest @@ -250,7 +248,7 @@ public class GT_ItemIterator implements Runnable { .outputChances(10000, 3000) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_ModHandler.addSawmillRecipe( new ItemStack(tItem, 1, 0), new ItemStack(Items.stick, 4), @@ -260,8 +258,6 @@ public class GT_ItemIterator implements Runnable { .itemOutputs(new ItemStack(Items.stick, 4)) .metadata(FUEL_VALUE, 32) .metadata(FUEL_TYPE, 5) - .duration(0) - .eut(0) .addTo(GT_RecipeConstants.Fuel); } diff --git a/src/main/java/gregtech/loaders/load/GT_Loader_MetaTileEntities_Recipes.java b/src/main/java/gregtech/loaders/load/GT_Loader_MetaTileEntities_Recipes.java index d29d323dc2..8ee6b07714 100644 --- a/src/main/java/gregtech/loaders/load/GT_Loader_MetaTileEntities_Recipes.java +++ b/src/main/java/gregtech/loaders/load/GT_Loader_MetaTileEntities_Recipes.java @@ -225,7 +225,7 @@ import static gregtech.api.enums.Mods.Gendustry; import static gregtech.api.enums.Mods.IndustrialCraft2; import static gregtech.api.enums.Mods.NotEnoughItems; import static gregtech.api.enums.Mods.Thaumcraft; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sAssemblerRecipes; +import static gregtech.api.recipe.RecipeMaps.assemblerRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import net.minecraft.init.Blocks; @@ -247,11 +247,11 @@ import gregtech.api.enums.SoundResource; import gregtech.api.enums.TierEU; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine_GT_Recipe; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine_GT_Recipe.SpecialEffects; +import gregtech.api.recipe.RecipeMaps; import gregtech.api.util.ExternalMaterials; import gregtech.api.util.GT_Log; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; -import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; import gregtech.loaders.postload.GT_PCBFactoryMaterialLoader; import gregtech.loaders.postload.GT_ProcessingArrayRecipeLoader; @@ -326,13 +326,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Basic Alloy Smelter", 1, MachineType.ALLOY_SMELTER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sAlloySmelterRecipes, + RecipeMaps.alloySmelterRecipes, 2, 1, false, SoundResource.IC2_MACHINES_INDUCTION_LOOP, - false, - false, SpecialEffects.NONE, "ALLOY_SMELTER", new Object[] { "ECE", aTextCableHull, aTextWireCoil, 'M', @@ -347,13 +345,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Alloy Smelter", 2, MachineType.ALLOY_SMELTER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sAlloySmelterRecipes, + RecipeMaps.alloySmelterRecipes, 2, 1, false, SoundResource.IC2_MACHINES_INDUCTION_LOOP, - false, - false, SpecialEffects.NONE, "ALLOY_SMELTER", new Object[] { "ECE", aTextCableHull, aTextWireCoil, 'M', @@ -368,13 +364,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Alloy Smelter II", 3, MachineType.ALLOY_SMELTER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sAlloySmelterRecipes, + RecipeMaps.alloySmelterRecipes, 2, 1, false, SoundResource.IC2_MACHINES_INDUCTION_LOOP, - false, - false, SpecialEffects.NONE, "ALLOY_SMELTER", new Object[] { "ECE", aTextCableHull, aTextWireCoil, 'M', @@ -389,13 +383,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Alloy Smelter III", 4, MachineType.ALLOY_SMELTER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sAlloySmelterRecipes, + RecipeMaps.alloySmelterRecipes, 2, 1, false, SoundResource.IC2_MACHINES_INDUCTION_LOOP, - false, - false, SpecialEffects.NONE, "ALLOY_SMELTER", new Object[] { "ECE", aTextCableHull, aTextWireCoil, 'M', @@ -410,13 +402,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Alloy Smelter IV", 5, MachineType.ALLOY_SMELTER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sAlloySmelterRecipes, + RecipeMaps.alloySmelterRecipes, 2, 1, false, SoundResource.IC2_MACHINES_INDUCTION_LOOP, - false, - false, SpecialEffects.NONE, "ALLOY_SMELTER", new Object[] { "ECE", aTextCableHull, aTextWireCoil, 'M', @@ -434,13 +424,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Basic Arc Furnace", 1, MachineType.ARC_FURNACE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sArcFurnaceRecipes, + RecipeMaps.arcFurnaceRecipes, 1, 4, true, SoundResource.IC2_MACHINES_INDUCTION_LOOP, - false, - false, SpecialEffects.NONE, "ARC_FURNACE", new Object[] { "WGW", aTextCableHull, aTextPlate, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, @@ -456,13 +444,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Arc Furnace", 2, MachineType.ARC_FURNACE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sArcFurnaceRecipes, + RecipeMaps.arcFurnaceRecipes, 1, 4, true, SoundResource.IC2_MACHINES_INDUCTION_LOOP, - false, - false, SpecialEffects.NONE, "ARC_FURNACE", new Object[] { "WGW", aTextCableHull, aTextPlate, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, @@ -477,13 +463,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Arc Furnace II", 3, MachineType.ARC_FURNACE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sArcFurnaceRecipes, + RecipeMaps.arcFurnaceRecipes, 1, 4, true, SoundResource.IC2_MACHINES_INDUCTION_LOOP, - false, - false, SpecialEffects.NONE, "ARC_FURNACE", new Object[] { "WGW", aTextCableHull, aTextPlate, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, @@ -499,13 +483,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Arc Furnace III", 4, MachineType.ARC_FURNACE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sArcFurnaceRecipes, + RecipeMaps.arcFurnaceRecipes, 1, 9, true, SoundResource.IC2_MACHINES_INDUCTION_LOOP, - false, - false, SpecialEffects.NONE, "ARC_FURNACE", new Object[] { "WGW", aTextCableHull, aTextPlate, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, @@ -521,13 +503,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Arc Furnace IV", 5, MachineType.ARC_FURNACE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sArcFurnaceRecipes, + RecipeMaps.arcFurnaceRecipes, 1, 9, true, SoundResource.IC2_MACHINES_INDUCTION_LOOP, - false, - false, SpecialEffects.NONE, "ARC_FURNACE", new Object[] { "WGW", aTextCableHull, aTextPlate, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, @@ -545,13 +525,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Basic Assembling Machine", 1, MachineType.ASSEMBLER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sAssemblerRecipes, + RecipeMaps.assemblerRecipes, 6, 1, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "ASSEMBLER", new Object[] { "ACA", "VMV", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'V', @@ -566,13 +544,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Assembling Machine", 2, MachineType.ASSEMBLER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sAssemblerRecipes, + RecipeMaps.assemblerRecipes, 9, 1, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "ASSEMBLER", new Object[] { "ACA", "VMV", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'V', @@ -587,13 +563,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Assembling Machine II", 3, MachineType.ASSEMBLER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sAssemblerRecipes, + RecipeMaps.assemblerRecipes, 9, 1, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "ASSEMBLER", new Object[] { "ACA", "VMV", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'V', @@ -608,13 +582,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Assembling Machine III", 4, MachineType.ASSEMBLER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sAssemblerRecipes, + RecipeMaps.assemblerRecipes, 9, 1, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "ASSEMBLER", new Object[] { "ACA", "VMV", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'V', @@ -629,13 +601,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Assembling Machine IV", 5, MachineType.ASSEMBLER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sAssemblerRecipes, + RecipeMaps.assemblerRecipes, 9, 1, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "ASSEMBLER", new Object[] { "ACA", "VMV", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'V', @@ -653,13 +623,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Basic Autoclave", 1, MachineType.AUTOCLAVE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sAutoclaveRecipes, + RecipeMaps.autoclaveRecipes, 2, 2, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "AUTOCLAVE", new Object[] { "IGI", "IMI", "CPC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', @@ -675,13 +643,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Autoclave", 2, MachineType.AUTOCLAVE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sAutoclaveRecipes, + RecipeMaps.autoclaveRecipes, 2, 2, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "AUTOCLAVE", new Object[] { "IGI", "IMI", "CPC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', @@ -697,13 +663,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Autoclave II", 3, MachineType.AUTOCLAVE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sAutoclaveRecipes, + RecipeMaps.autoclaveRecipes, 2, 3, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "AUTOCLAVE", new Object[] { "IGI", "IMI", "CPC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', @@ -719,13 +683,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Autoclave III", 4, MachineType.AUTOCLAVE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sAutoclaveRecipes, + RecipeMaps.autoclaveRecipes, 2, 4, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "AUTOCLAVE", new Object[] { "IGI", "IMI", "CPC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', @@ -741,13 +703,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Autoclave IV", 5, MachineType.AUTOCLAVE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sAutoclaveRecipes, + RecipeMaps.autoclaveRecipes, 2, 4, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "AUTOCLAVE", new Object[] { "IGI", "IMI", "CPC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', @@ -766,13 +726,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Basic Bending Machine", 1, MachineType.BENDING_MACHINE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sBenderRecipes, + RecipeMaps.benderRecipes, 2, 1, false, SoundResource.IC2_MACHINES_COMPRESSOR_OP, - false, - false, SpecialEffects.NONE, "BENDER", new Object[] { aTextPlateWrench, aTextCableHull, aTextMotorWire, 'M', @@ -788,13 +746,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Bending Machine", 2, MachineType.BENDING_MACHINE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sBenderRecipes, + RecipeMaps.benderRecipes, 2, 1, false, SoundResource.IC2_MACHINES_COMPRESSOR_OP, - false, - false, SpecialEffects.NONE, "BENDER", new Object[] { aTextPlateWrench, aTextCableHull, aTextMotorWire, 'M', @@ -810,13 +766,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Bending Machine II", 3, MachineType.BENDING_MACHINE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sBenderRecipes, + RecipeMaps.benderRecipes, 2, 1, false, SoundResource.IC2_MACHINES_COMPRESSOR_OP, - false, - false, SpecialEffects.NONE, "BENDER", new Object[] { aTextPlateWrench, aTextCableHull, aTextMotorWire, 'M', @@ -832,13 +786,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Bending Machine III", 4, MachineType.BENDING_MACHINE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sBenderRecipes, + RecipeMaps.benderRecipes, 2, 1, false, SoundResource.IC2_MACHINES_COMPRESSOR_OP, - false, - false, SpecialEffects.NONE, "BENDER", new Object[] { aTextPlateWrench, aTextCableHull, aTextMotorWire, 'M', @@ -854,13 +806,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Bending Machine IV", 5, MachineType.BENDING_MACHINE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sBenderRecipes, + RecipeMaps.benderRecipes, 2, 1, false, SoundResource.IC2_MACHINES_COMPRESSOR_OP, - false, - false, SpecialEffects.NONE, "BENDER", new Object[] { aTextPlateWrench, aTextCableHull, aTextMotorWire, 'M', @@ -879,13 +829,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Basic Canning Machine", 1, MachineType.CANNER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sCannerRecipes, + RecipeMaps.cannerRecipes, 2, 2, false, SoundResource.IC2_MACHINES_EXTRACTOR_OP, - false, - false, SpecialEffects.NONE, "CANNER", new Object[] { aTextWirePump, aTextCableHull, "GGG", 'M', @@ -901,13 +849,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Canning Machine", 2, MachineType.CANNER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sCannerRecipes, + RecipeMaps.cannerRecipes, 2, 2, false, SoundResource.IC2_MACHINES_EXTRACTOR_OP, - false, - false, SpecialEffects.NONE, "CANNER", new Object[] { aTextWirePump, aTextCableHull, "GGG", 'M', @@ -923,13 +869,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Canning Machine II", 3, MachineType.CANNER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sCannerRecipes, + RecipeMaps.cannerRecipes, 2, 2, false, SoundResource.IC2_MACHINES_EXTRACTOR_OP, - false, - false, SpecialEffects.NONE, "CANNER", new Object[] { aTextWirePump, aTextCableHull, "GGG", 'M', @@ -945,13 +889,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Canning Machine III", 4, MachineType.CANNER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sCannerRecipes, + RecipeMaps.cannerRecipes, 2, 2, false, SoundResource.IC2_MACHINES_EXTRACTOR_OP, - false, - false, SpecialEffects.NONE, "CANNER", new Object[] { aTextWirePump, aTextCableHull, "GGG", 'M', @@ -967,13 +909,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Canning Machine IV", 5, MachineType.CANNER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sCannerRecipes, + RecipeMaps.cannerRecipes, 2, 2, false, SoundResource.IC2_MACHINES_EXTRACTOR_OP, - false, - false, SpecialEffects.NONE, "CANNER", new Object[] { aTextWirePump, aTextCableHull, "GGG", 'M', @@ -992,13 +932,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Basic Centrifuge", 1, MachineType.CENTRIFUGE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes, + RecipeMaps.centrifugeRecipes, 2, 6, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "CENTRIFUGE", new Object[] { "CEC", aTextWireHull, "CEC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -1012,13 +950,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Centrifuge", 2, MachineType.CENTRIFUGE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes, + RecipeMaps.centrifugeRecipes, 2, 6, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "CENTRIFUGE", new Object[] { "CEC", aTextWireHull, "CEC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -1032,13 +968,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Turbo Centrifuge", 3, MachineType.CENTRIFUGE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes, + RecipeMaps.centrifugeRecipes, 2, 6, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "CENTRIFUGE", new Object[] { "CEC", aTextWireHull, "CEC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -1052,13 +986,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Molecular Separator", 4, MachineType.CENTRIFUGE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes, + RecipeMaps.centrifugeRecipes, 2, 6, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "CENTRIFUGE", new Object[] { "CEC", aTextWireHull, "CEC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -1072,13 +1004,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Molecular Cyclone", 5, MachineType.CENTRIFUGE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes, + RecipeMaps.centrifugeRecipes, 2, 6, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "CENTRIFUGE", new Object[] { "CEC", aTextWireHull, "CEC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -1095,13 +1025,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Basic Chemical Bath", 1, MachineType.CHEMICAL_BATH.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sChemicalBathRecipes, + RecipeMaps.chemicalBathRecipes, 1, 3, true, SoundResource.NONE, - false, - true, SpecialEffects.NONE, "CHEMICAL_BATH", new Object[] { "VGW", "PGV", aTextCableHull, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', @@ -1117,13 +1045,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Chemical Bath", 2, MachineType.CHEMICAL_BATH.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sChemicalBathRecipes, + RecipeMaps.chemicalBathRecipes, 1, 3, true, SoundResource.NONE, - false, - true, SpecialEffects.NONE, "CHEMICAL_BATH", new Object[] { "VGW", "PGV", aTextCableHull, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', @@ -1139,13 +1065,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Chemical Bath II", 3, MachineType.CHEMICAL_BATH.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sChemicalBathRecipes, + RecipeMaps.chemicalBathRecipes, 1, 3, true, SoundResource.NONE, - false, - true, SpecialEffects.NONE, "CHEMICAL_BATH", new Object[] { "VGW", "PGV", aTextCableHull, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', @@ -1161,13 +1085,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Chemical Bath III", 4, MachineType.CHEMICAL_BATH.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sChemicalBathRecipes, + RecipeMaps.chemicalBathRecipes, 1, 3, true, SoundResource.NONE, - false, - true, SpecialEffects.NONE, "CHEMICAL_BATH", new Object[] { "VGW", "PGV", aTextCableHull, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', @@ -1183,13 +1105,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Chemical Bath IV", 5, MachineType.CHEMICAL_BATH.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sChemicalBathRecipes, + RecipeMaps.chemicalBathRecipes, 1, 3, true, SoundResource.NONE, - false, - true, SpecialEffects.NONE, "CHEMICAL_BATH", new Object[] { "VGW", "PGV", aTextCableHull, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', @@ -1208,13 +1128,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Basic Chemical Reactor", 1, MachineType.CHEMICAL_REACTOR.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sChemicalRecipes, + RecipeMaps.chemicalReactorRecipes, 2, 2, true, SoundResource.IC2_MACHINES_EXTRACTOR_OP, - false, - false, SpecialEffects.NONE, "CHEMICAL_REACTOR", new Object[] { "GRG", "WEW", aTextCableHull, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'R', @@ -1230,13 +1148,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Chemical Reactor", 2, MachineType.CHEMICAL_REACTOR.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sChemicalRecipes, + RecipeMaps.chemicalReactorRecipes, 2, 2, true, SoundResource.IC2_MACHINES_EXTRACTOR_OP, - false, - false, SpecialEffects.NONE, "CHEMICAL_REACTOR", new Object[] { "GRG", "WEW", aTextCableHull, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'R', @@ -1252,13 +1168,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Chemical Reactor II", 3, MachineType.CHEMICAL_REACTOR.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sChemicalRecipes, + RecipeMaps.chemicalReactorRecipes, 2, 2, true, SoundResource.IC2_MACHINES_EXTRACTOR_OP, - false, - false, SpecialEffects.NONE, "CHEMICAL_REACTOR", new Object[] { "GRG", "WEW", aTextCableHull, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'R', @@ -1274,13 +1188,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Chemical Reactor III", 4, MachineType.CHEMICAL_REACTOR.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sChemicalRecipes, + RecipeMaps.chemicalReactorRecipes, 2, 2, true, SoundResource.IC2_MACHINES_EXTRACTOR_OP, - false, - false, SpecialEffects.NONE, "CHEMICAL_REACTOR", new Object[] { "GRG", "WEW", aTextCableHull, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'R', @@ -1296,13 +1208,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Chemical Reactor IV", 5, MachineType.CHEMICAL_REACTOR.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sChemicalRecipes, + RecipeMaps.chemicalReactorRecipes, 2, 2, true, SoundResource.IC2_MACHINES_EXTRACTOR_OP, - false, - false, SpecialEffects.NONE, "CHEMICAL_REACTOR", new Object[] { "GRG", "WEW", aTextCableHull, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'R', @@ -1321,13 +1231,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Basic Circuit Assembler", 1, MachineType.CIRCUIT_ASSEMBLER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sCircuitAssemblerRecipes, + RecipeMaps.circuitAssemblerRecipes, 6, 1, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "CIRCUITASSEMBLER", new Object[] { "ACE", "VMV", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'V', @@ -1343,13 +1251,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Circuit Assembler", 2, MachineType.CIRCUIT_ASSEMBLER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sCircuitAssemblerRecipes, + RecipeMaps.circuitAssemblerRecipes, 6, 1, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "CIRCUITASSEMBLER", new Object[] { "ACE", "VMV", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'V', @@ -1365,13 +1271,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Circuit Assembler II", 3, MachineType.CIRCUIT_ASSEMBLER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sCircuitAssemblerRecipes, + RecipeMaps.circuitAssemblerRecipes, 6, 1, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "CIRCUITASSEMBLER", new Object[] { "ACE", "VMV", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'V', @@ -1387,13 +1291,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Circuit Assembler III", 4, MachineType.CIRCUIT_ASSEMBLER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sCircuitAssemblerRecipes, + RecipeMaps.circuitAssemblerRecipes, 6, 1, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "CIRCUITASSEMBLER", new Object[] { "ACE", "VMV", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'V', @@ -1409,13 +1311,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Circuit Assembler IV", 5, MachineType.CIRCUIT_ASSEMBLER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sCircuitAssemblerRecipes, + RecipeMaps.circuitAssemblerRecipes, 6, 1, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "CIRCUITASSEMBLER", new Object[] { "ACE", "VMV", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'V', @@ -1431,13 +1331,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Circuit Assembler V", 6, MachineType.CIRCUIT_ASSEMBLER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sCircuitAssemblerRecipes, + RecipeMaps.circuitAssemblerRecipes, 6, 1, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "CIRCUITASSEMBLER", new Object[] { "ACE", "VMV", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'V', @@ -1453,13 +1351,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Circuit Assembler VI", 7, MachineType.CIRCUIT_ASSEMBLER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sCircuitAssemblerRecipes, + RecipeMaps.circuitAssemblerRecipes, 6, 1, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "CIRCUITASSEMBLER", new Object[] { "ACE", "VMV", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'V', @@ -1475,13 +1371,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Circuit Assembler VII", 8, MachineType.CIRCUIT_ASSEMBLER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sCircuitAssemblerRecipes, + RecipeMaps.circuitAssemblerRecipes, 6, 1, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "CIRCUITASSEMBLER", new Object[] { "ACE", "VMV", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'V', @@ -1500,13 +1394,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Basic Compressor", 1, MachineType.COMPRESSOR.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sCompressorRecipes, + RecipeMaps.compressorRecipes, 1, 1, false, SoundResource.IC2_MACHINES_COMPRESSOR_OP, - false, - false, SpecialEffects.NONE, "COMPRESSOR", new Object[] { aTextWireCoil, aTextPlateMotor, aTextWireCoil, 'M', @@ -1521,13 +1413,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Compressor", 2, MachineType.COMPRESSOR.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sCompressorRecipes, + RecipeMaps.compressorRecipes, 1, 1, false, SoundResource.IC2_MACHINES_COMPRESSOR_OP, - false, - false, SpecialEffects.NONE, "COMPRESSOR", new Object[] { aTextWireCoil, aTextPlateMotor, aTextWireCoil, 'M', @@ -1542,13 +1432,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Compressor II", 3, MachineType.COMPRESSOR.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sCompressorRecipes, + RecipeMaps.compressorRecipes, 1, 1, false, SoundResource.IC2_MACHINES_COMPRESSOR_OP, - false, - false, SpecialEffects.NONE, "COMPRESSOR", new Object[] { aTextWireCoil, aTextPlateMotor, aTextWireCoil, 'M', @@ -1563,13 +1451,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Compressor III", 4, MachineType.COMPRESSOR.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sCompressorRecipes, + RecipeMaps.compressorRecipes, 1, 1, false, SoundResource.IC2_MACHINES_COMPRESSOR_OP, - false, - false, SpecialEffects.NONE, "COMPRESSOR", new Object[] { aTextWireCoil, aTextPlateMotor, aTextWireCoil, 'M', @@ -1584,13 +1470,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Singularity Compressor", 5, MachineType.COMPRESSOR.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sCompressorRecipes, + RecipeMaps.compressorRecipes, 1, 1, false, SoundResource.IC2_MACHINES_COMPRESSOR_OP, - false, - false, SpecialEffects.NONE, "COMPRESSOR", new Object[] { aTextWireCoil, aTextPlateMotor, aTextWireCoil, 'M', @@ -1608,13 +1492,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Basic Cutting Machine", 1, MachineType.CUTTING_MACHINE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sCutterRecipes, + RecipeMaps.cutterRecipes, 1, 2, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "CUTTER", new Object[] { "WCG", "VMB", "CWE", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -1631,13 +1513,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Cutting Machine", 2, MachineType.CUTTING_MACHINE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sCutterRecipes, + RecipeMaps.cutterRecipes, 2, 2, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "CUTTER", new Object[] { "WCG", "VMB", "CWE", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -1654,13 +1534,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Cutting Machine II", 3, MachineType.CUTTING_MACHINE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sCutterRecipes, + RecipeMaps.cutterRecipes, 2, 4, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "CUTTER", new Object[] { "WCG", "VMB", "CWE", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -1677,13 +1555,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Cutting Machine III", 4, MachineType.CUTTING_MACHINE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sCutterRecipes, + RecipeMaps.cutterRecipes, 2, 4, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "CUTTER", new Object[] { "WCG", "VMB", "CWE", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -1700,13 +1576,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Cutting Machine IV", 5, MachineType.CUTTING_MACHINE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sCutterRecipes, + RecipeMaps.cutterRecipes, 2, 4, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "CUTTER", new Object[] { "WCG", "VMB", "CWE", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -1726,13 +1600,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Basic Distillery", 1, MachineType.DISTILLERY.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sDistilleryRecipes, + RecipeMaps.distilleryRecipes, 1, 1, true, SoundResource.GT_MACHINES_DISTILLERY_LOOP, - false, - false, SpecialEffects.NONE, "DISTILLERY", new Object[] { "GBG", aTextCableHull, aTextWirePump, 'M', @@ -1749,13 +1621,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Distillery", 2, MachineType.DISTILLERY.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sDistilleryRecipes, + RecipeMaps.distilleryRecipes, 1, 1, true, SoundResource.GT_MACHINES_DISTILLERY_LOOP, - false, - false, SpecialEffects.NONE, "DISTILLERY", new Object[] { "GBG", aTextCableHull, aTextWirePump, 'M', @@ -1772,13 +1642,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Distillery II", 3, MachineType.DISTILLERY.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sDistilleryRecipes, + RecipeMaps.distilleryRecipes, 1, 1, true, SoundResource.GT_MACHINES_DISTILLERY_LOOP, - false, - false, SpecialEffects.NONE, "DISTILLERY", new Object[] { "GBG", aTextCableHull, aTextWirePump, 'M', @@ -1795,13 +1663,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Distillery III", 4, MachineType.DISTILLERY.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sDistilleryRecipes, + RecipeMaps.distilleryRecipes, 1, 1, true, SoundResource.GT_MACHINES_DISTILLERY_LOOP, - false, - false, SpecialEffects.NONE, "DISTILLERY", new Object[] { "GBG", aTextCableHull, aTextWirePump, 'M', @@ -1818,13 +1684,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Distillery IV", 5, MachineType.DISTILLERY.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sDistilleryRecipes, + RecipeMaps.distilleryRecipes, 1, 1, true, SoundResource.GT_MACHINES_DISTILLERY_LOOP, - false, - false, SpecialEffects.NONE, "DISTILLERY", new Object[] { "GBG", aTextCableHull, aTextWirePump, 'M', @@ -1844,13 +1708,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Basic Electric Furnace", 1, MachineType.ELECTRIC_FURNACE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sFurnaceRecipes, + RecipeMaps.furnaceRecipes, 1, 1, false, SoundResource.IC2_MACHINES_ELECTROFURNACE_LOOP, - false, - false, SpecialEffects.NONE, "ELECTRIC_FURNACE", new Object[] { "ECE", aTextCableHull, aTextWireCoil, 'M', @@ -1866,13 +1728,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Electric Furnace", 2, MachineType.ELECTRIC_FURNACE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sFurnaceRecipes, + RecipeMaps.furnaceRecipes, 1, 1, false, SoundResource.IC2_MACHINES_ELECTROFURNACE_LOOP, - false, - false, SpecialEffects.NONE, "ELECTRIC_FURNACE", new Object[] { "ECE", aTextCableHull, aTextWireCoil, 'M', @@ -1888,13 +1748,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Electric Furnace II", 3, MachineType.ELECTRIC_FURNACE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sFurnaceRecipes, + RecipeMaps.furnaceRecipes, 1, 1, false, SoundResource.IC2_MACHINES_ELECTROFURNACE_LOOP, - false, - false, SpecialEffects.NONE, "ELECTRIC_FURNACE", new Object[] { "ECE", aTextCableHull, aTextWireCoil, 'M', @@ -1910,13 +1768,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Electric Furnace III", 4, MachineType.ELECTRIC_FURNACE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sFurnaceRecipes, + RecipeMaps.furnaceRecipes, 1, 1, false, SoundResource.IC2_MACHINES_ELECTROFURNACE_LOOP, - false, - false, SpecialEffects.NONE, "ELECTRIC_FURNACE", new Object[] { "ECE", aTextCableHull, aTextWireCoil, 'M', @@ -1932,13 +1788,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Electron Exitement Processor", 5, MachineType.ELECTRIC_FURNACE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sFurnaceRecipes, + RecipeMaps.furnaceRecipes, 1, 1, false, SoundResource.IC2_MACHINES_ELECTROFURNACE_LOOP, - false, - false, SpecialEffects.NONE, "ELECTRIC_FURNACE", new Object[] { "ECE", aTextCableHull, aTextWireCoil, 'M', @@ -1958,13 +1812,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Basic Electrolyzer", 1, MachineType.ELECTROLYZER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sElectrolyzerRecipes, + RecipeMaps.electrolyzerRecipes, 2, 6, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "ELECTROLYZER", new Object[] { "IGI", "IMI", "CWC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -1979,13 +1831,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Electrolyzer", 2, MachineType.ELECTROLYZER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sElectrolyzerRecipes, + RecipeMaps.electrolyzerRecipes, 2, 6, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "ELECTROLYZER", new Object[] { "IGI", "IMI", "CWC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -2000,13 +1850,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Electrolyzer II", 3, MachineType.ELECTROLYZER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sElectrolyzerRecipes, + RecipeMaps.electrolyzerRecipes, 2, 6, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "ELECTROLYZER", new Object[] { "IGI", "IMI", "CWC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -2021,13 +1869,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Electrolyzer III", 4, MachineType.ELECTROLYZER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sElectrolyzerRecipes, + RecipeMaps.electrolyzerRecipes, 2, 6, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "ELECTROLYZER", new Object[] { "IGI", "IMI", "CWC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -2042,13 +1888,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Molecular Disintegrator E-4908", 5, MachineType.ELECTROLYZER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sElectrolyzerRecipes, + RecipeMaps.electrolyzerRecipes, 2, 6, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "ELECTROLYZER", new Object[] { "IGI", "IMI", "CWC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -2066,13 +1910,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Basic Electromagnetic Separator", 1, MachineType.ELECTROMAGNETIC_SEPARATOR.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sElectroMagneticSeparatorRecipes, + RecipeMaps.electroMagneticSeparatorRecipes, 1, 3, false, SoundResource.IC2_MACHINES_MAGNETIZER_LOOP, - false, - false, SpecialEffects.NONE, "ELECTROMAGNETIC_SEPARATOR", new Object[] { "VWZ", "WMS", "CWZ", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'S', @@ -2088,13 +1930,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Electromagnetic Separator", 2, MachineType.ELECTROMAGNETIC_SEPARATOR.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sElectroMagneticSeparatorRecipes, + RecipeMaps.electroMagneticSeparatorRecipes, 1, 3, false, SoundResource.IC2_MACHINES_MAGNETIZER_LOOP, - false, - false, SpecialEffects.NONE, "ELECTROMAGNETIC_SEPARATOR", new Object[] { "VWZ", "WMS", "CWZ", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'S', @@ -2110,13 +1950,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Electromagnetic Separator II", 3, MachineType.ELECTROMAGNETIC_SEPARATOR.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sElectroMagneticSeparatorRecipes, + RecipeMaps.electroMagneticSeparatorRecipes, 1, 3, false, SoundResource.IC2_MACHINES_MAGNETIZER_LOOP, - false, - false, SpecialEffects.NONE, "ELECTROMAGNETIC_SEPARATOR", new Object[] { "VWZ", "WMS", "CWZ", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'S', @@ -2132,13 +1970,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Electromagnetic Separator III", 4, MachineType.ELECTROMAGNETIC_SEPARATOR.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sElectroMagneticSeparatorRecipes, + RecipeMaps.electroMagneticSeparatorRecipes, 1, 3, false, SoundResource.IC2_MACHINES_MAGNETIZER_LOOP, - false, - false, SpecialEffects.NONE, "ELECTROMAGNETIC_SEPARATOR", new Object[] { "VWZ", "WMS", "CWZ", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'S', @@ -2154,13 +1990,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Electromagnetic Separator IV", 5, MachineType.ELECTROMAGNETIC_SEPARATOR.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sElectroMagneticSeparatorRecipes, + RecipeMaps.electroMagneticSeparatorRecipes, 1, 3, false, SoundResource.IC2_MACHINES_MAGNETIZER_LOOP, - false, - false, SpecialEffects.NONE, "ELECTROMAGNETIC_SEPARATOR", new Object[] { "VWZ", "WMS", "CWZ", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'S', @@ -2179,13 +2013,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Basic Extractor", 1, MachineType.EXTRACTOR.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sExtractorRecipes, + RecipeMaps.extractorRecipes, 1, 1, false, SoundResource.IC2_MACHINES_EXTRACTOR_OP, - false, - false, SpecialEffects.NONE, "EXTRACTOR", new Object[] { "GCG", "EMP", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -2201,13 +2033,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Extractor", 2, MachineType.EXTRACTOR.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sExtractorRecipes, + RecipeMaps.extractorRecipes, 1, 1, false, SoundResource.IC2_MACHINES_EXTRACTOR_OP, - false, - false, SpecialEffects.NONE, "EXTRACTOR", new Object[] { "GCG", "EMP", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -2223,13 +2053,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Extractor II", 3, MachineType.EXTRACTOR.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sExtractorRecipes, + RecipeMaps.extractorRecipes, 1, 1, false, SoundResource.IC2_MACHINES_EXTRACTOR_OP, - false, - false, SpecialEffects.NONE, "EXTRACTOR", new Object[] { "GCG", "EMP", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -2245,13 +2073,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Extractor III", 4, MachineType.EXTRACTOR.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sExtractorRecipes, + RecipeMaps.extractorRecipes, 1, 1, false, SoundResource.IC2_MACHINES_EXTRACTOR_OP, - false, - false, SpecialEffects.NONE, "EXTRACTOR", new Object[] { "GCG", "EMP", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -2267,13 +2093,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Vacuum Extractor", 5, MachineType.EXTRACTOR.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sExtractorRecipes, + RecipeMaps.extractorRecipes, 1, 1, false, SoundResource.IC2_MACHINES_EXTRACTOR_OP, - false, - false, SpecialEffects.NONE, "EXTRACTOR", new Object[] { "GCG", "EMP", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -2292,13 +2116,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Basic Extruder", 1, MachineType.EXTRUDER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sExtruderRecipes, + RecipeMaps.extruderRecipes, 2, 1, false, SoundResource.IC2_MACHINES_INDUCTION_LOOP, - false, - false, SpecialEffects.NONE, "EXTRUDER", new Object[] { "CCE", "XMP", "CCE", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'X', @@ -2313,13 +2135,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Extruder", 2, MachineType.EXTRUDER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sExtruderRecipes, + RecipeMaps.extruderRecipes, 2, 1, false, SoundResource.IC2_MACHINES_INDUCTION_LOOP, - false, - false, SpecialEffects.NONE, "EXTRUDER", new Object[] { "CCE", "XMP", "CCE", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'X', @@ -2334,13 +2154,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Extruder II", 3, MachineType.EXTRUDER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sExtruderRecipes, + RecipeMaps.extruderRecipes, 2, 1, false, SoundResource.IC2_MACHINES_INDUCTION_LOOP, - false, - false, SpecialEffects.NONE, "EXTRUDER", new Object[] { "CCE", "XMP", "CCE", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'X', @@ -2355,13 +2173,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Extruder III", 4, MachineType.EXTRUDER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sExtruderRecipes, + RecipeMaps.extruderRecipes, 2, 1, false, SoundResource.IC2_MACHINES_INDUCTION_LOOP, - false, - false, SpecialEffects.NONE, "EXTRUDER", new Object[] { "CCE", "XMP", "CCE", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'X', @@ -2376,13 +2192,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Extruder IV", 5, MachineType.EXTRUDER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sExtruderRecipes, + RecipeMaps.extruderRecipes, 2, 1, false, SoundResource.IC2_MACHINES_INDUCTION_LOOP, - false, - false, SpecialEffects.NONE, "EXTRUDER", new Object[] { "CCE", "XMP", "CCE", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'X', @@ -2400,13 +2214,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Basic Fermenter", 1, MachineType.FERMENTER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sFermentingRecipes, + RecipeMaps.fermentingRecipes, 1, 1, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "FERMENTER", new Object[] { aTextWirePump, "GMG", aTextWireCoil, 'M', @@ -2422,13 +2234,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Fermenter", 2, MachineType.FERMENTER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sFermentingRecipes, + RecipeMaps.fermentingRecipes, 1, 1, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "FERMENTER", new Object[] { aTextWirePump, "GMG", aTextWireCoil, 'M', @@ -2444,13 +2254,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Fermenter II", 3, MachineType.FERMENTER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sFermentingRecipes, + RecipeMaps.fermentingRecipes, 1, 1, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "FERMENTER", new Object[] { aTextWirePump, "GMG", aTextWireCoil, 'M', @@ -2466,13 +2274,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Fermenter III", 4, MachineType.FERMENTER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sFermentingRecipes, + RecipeMaps.fermentingRecipes, 1, 1, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "FERMENTER", new Object[] { aTextWirePump, "GMG", aTextWireCoil, 'M', @@ -2488,13 +2294,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Fermenter IV", 5, MachineType.FERMENTER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sFermentingRecipes, + RecipeMaps.fermentingRecipes, 1, 1, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "FERMENTER", new Object[] { aTextWirePump, "GMG", aTextWireCoil, 'M', @@ -2513,13 +2317,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Basic Fluid Canner", 1, MachineType.FLUID_CANNER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sFluidCannerRecipes, + RecipeMaps.fluidCannerRecipes, 1, 1, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "FLUID_CANNER", new Object[] { "GCG", "GMG", "WPW", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', @@ -2534,13 +2336,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Fluid Canner", 2, MachineType.FLUID_CANNER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sFluidCannerRecipes, + RecipeMaps.fluidCannerRecipes, 1, 1, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "FLUID_CANNER", new Object[] { "GCG", "GMG", "WPW", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', @@ -2555,13 +2355,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Quick Fluid Canner", 3, MachineType.FLUID_CANNER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sFluidCannerRecipes, + RecipeMaps.fluidCannerRecipes, 1, 1, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "FLUID_CANNER", new Object[] { "GCG", "GMG", "WPW", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', @@ -2576,13 +2374,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Turbo Fluid Canner", 4, MachineType.FLUID_CANNER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sFluidCannerRecipes, + RecipeMaps.fluidCannerRecipes, 1, 1, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "FLUID_CANNER", new Object[] { "GCG", "GMG", "WPW", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', @@ -2597,13 +2393,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Instant Fluid Canner", 5, MachineType.FLUID_CANNER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sFluidCannerRecipes, + RecipeMaps.fluidCannerRecipes, 1, 1, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "FLUID_CANNER", new Object[] { "GCG", "GMG", "WPW", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', @@ -2621,13 +2415,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Basic Fluid Extractor", 1, MachineType.FLUID_EXTRACTOR.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sFluidExtractionRecipes, + RecipeMaps.fluidExtractionRecipes, 1, 1, true, SoundResource.IC2_MACHINES_EXTRACTOR_OP, - false, - false, SpecialEffects.NONE, "FLUID_EXTRACTOR", new Object[] { "GEG", "TPT", "CMC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -2643,13 +2435,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Fluid Extractor", 2, MachineType.FLUID_EXTRACTOR.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sFluidExtractionRecipes, + RecipeMaps.fluidExtractionRecipes, 1, 1, true, SoundResource.IC2_MACHINES_EXTRACTOR_OP, - false, - false, SpecialEffects.NONE, "FLUID_EXTRACTOR", new Object[] { "GEG", "TPT", "CMC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -2665,13 +2455,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Fluid Extractor II", 3, MachineType.FLUID_EXTRACTOR.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sFluidExtractionRecipes, + RecipeMaps.fluidExtractionRecipes, 1, 1, true, SoundResource.IC2_MACHINES_EXTRACTOR_OP, - false, - false, SpecialEffects.NONE, "FLUID_EXTRACTOR", new Object[] { "GEG", "TPT", "CMC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -2687,13 +2475,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Fluid Extractor III", 4, MachineType.FLUID_EXTRACTOR.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sFluidExtractionRecipes, + RecipeMaps.fluidExtractionRecipes, 1, 1, true, SoundResource.IC2_MACHINES_EXTRACTOR_OP, - false, - false, SpecialEffects.NONE, "FLUID_EXTRACTOR", new Object[] { "GEG", "TPT", "CMC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -2709,13 +2495,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Fluid Extractor IV", 5, MachineType.FLUID_EXTRACTOR.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sFluidExtractionRecipes, + RecipeMaps.fluidExtractionRecipes, 1, 1, true, SoundResource.IC2_MACHINES_EXTRACTOR_OP, - false, - false, SpecialEffects.NONE, "FLUID_EXTRACTOR", new Object[] { "GEG", "TPT", "CMC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -2735,13 +2519,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Basic Fluid Heater", 1, MachineType.FLUID_HEATER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sFluidHeaterRecipes, + RecipeMaps.fluidHeaterRecipes, 1, 0, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "FLUID_HEATER", new Object[] { "OGO", aTextPlateMotor, aTextWireCoil, 'M', @@ -2758,13 +2540,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Fluid Heater", 2, MachineType.FLUID_HEATER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sFluidHeaterRecipes, + RecipeMaps.fluidHeaterRecipes, 1, 0, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "FLUID_HEATER", new Object[] { "OGO", aTextPlateMotor, aTextWireCoil, 'M', @@ -2781,13 +2561,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Fluid Heater II", 3, MachineType.FLUID_HEATER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sFluidHeaterRecipes, + RecipeMaps.fluidHeaterRecipes, 1, 0, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "FLUID_HEATER", new Object[] { "OGO", aTextPlateMotor, aTextWireCoil, 'M', @@ -2804,13 +2582,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Fluid Heater III", 4, MachineType.FLUID_HEATER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sFluidHeaterRecipes, + RecipeMaps.fluidHeaterRecipes, 1, 0, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "FLUID_HEATER", new Object[] { "OGO", aTextPlateMotor, aTextWireCoil, 'M', @@ -2827,13 +2603,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Fluid Heater IV", 5, MachineType.FLUID_HEATER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sFluidHeaterRecipes, + RecipeMaps.fluidHeaterRecipes, 1, 0, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "FLUID_HEATER", new Object[] { "OGO", aTextPlateMotor, aTextWireCoil, 'M', @@ -2853,13 +2627,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Basic Fluid Solidifier", 1, MachineType.FLUID_SOLIDIFIER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sFluidSolidficationRecipes, + RecipeMaps.fluidSolidifierRecipes, 1, 1, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "FLUID_SOLIDIFIER", new Object[] { "PGP", aTextWireHull, "CBC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', @@ -2875,13 +2647,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Fluid Solidifier", 2, MachineType.FLUID_SOLIDIFIER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sFluidSolidficationRecipes, + RecipeMaps.fluidSolidifierRecipes, 1, 1, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "FLUID_SOLIDIFIER", new Object[] { "PGP", aTextWireHull, "CBC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', @@ -2897,13 +2667,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Fluid Solidifier II", 3, MachineType.FLUID_SOLIDIFIER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sFluidSolidficationRecipes, + RecipeMaps.fluidSolidifierRecipes, 1, 1, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "FLUID_SOLIDIFIER", new Object[] { "PGP", aTextWireHull, "CBC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', @@ -2919,13 +2687,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Fluid Solidifier III", 4, MachineType.FLUID_SOLIDIFIER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sFluidSolidficationRecipes, + RecipeMaps.fluidSolidifierRecipes, 1, 1, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "FLUID_SOLIDIFIER", new Object[] { "PGP", aTextWireHull, "CBC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', @@ -2941,13 +2707,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Fluid Solidifier IV", 5, MachineType.FLUID_SOLIDIFIER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sFluidSolidficationRecipes, + RecipeMaps.fluidSolidifierRecipes, 1, 1, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "FLUID_SOLIDIFIER", new Object[] { "PGP", aTextWireHull, "CBC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', @@ -2966,13 +2730,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Basic Forge Hammer", 1, MachineType.FORGE_HAMMER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sHammerRecipes, + RecipeMaps.hammerRecipes, 1, 1, true, SoundResource.RANDOM_ANVIL_USE, - false, - false, SpecialEffects.MAIN_RANDOM_SPARKS, "HAMMER", new Object[] { aTextWirePump, aTextCableHull, "WAW", 'M', @@ -2989,13 +2751,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Forge Hammer", 2, MachineType.FORGE_HAMMER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sHammerRecipes, + RecipeMaps.hammerRecipes, 1, 1, true, SoundResource.RANDOM_ANVIL_USE, - false, - false, SpecialEffects.MAIN_RANDOM_SPARKS, "HAMMER", new Object[] { aTextWirePump, aTextCableHull, "WAW", 'M', @@ -3012,13 +2772,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Forge Hammer II", 3, MachineType.FORGE_HAMMER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sHammerRecipes, + RecipeMaps.hammerRecipes, 1, 1, true, SoundResource.RANDOM_ANVIL_USE, - false, - false, SpecialEffects.MAIN_RANDOM_SPARKS, "HAMMER", new Object[] { aTextWirePump, aTextCableHull, "WAW", 'M', @@ -3035,13 +2793,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Forge Hammer III", 4, MachineType.FORGE_HAMMER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sHammerRecipes, + RecipeMaps.hammerRecipes, 1, 1, true, SoundResource.RANDOM_ANVIL_USE, - false, - false, SpecialEffects.MAIN_RANDOM_SPARKS, "HAMMER", new Object[] { aTextWirePump, aTextCableHull, "WAW", 'M', @@ -3058,13 +2814,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Forge Hammer IV", 5, MachineType.FORGE_HAMMER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sHammerRecipes, + RecipeMaps.hammerRecipes, 1, 1, true, SoundResource.RANDOM_ANVIL_USE, - false, - false, SpecialEffects.MAIN_RANDOM_SPARKS, "HAMMER", new Object[] { aTextWirePump, aTextCableHull, "WAW", 'M', @@ -3084,13 +2838,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Basic Forming Press", 1, MachineType.FORMING_PRESS.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sPressRecipes, + RecipeMaps.formingPressRecipes, 2, 1, false, SoundResource.IC2_MACHINES_COMPRESSOR_OP, - false, - false, SpecialEffects.NONE, "PRESS", new Object[] { aTextWirePump, aTextCableHull, aTextWirePump, 'M', @@ -3105,13 +2857,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Forming Press", 2, MachineType.FORMING_PRESS.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sPressRecipes, + RecipeMaps.formingPressRecipes, 2, 1, false, SoundResource.IC2_MACHINES_COMPRESSOR_OP, - false, - false, SpecialEffects.NONE, "PRESS", new Object[] { aTextWirePump, aTextCableHull, aTextWirePump, 'M', @@ -3126,13 +2876,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Forming Press II", 3, MachineType.FORMING_PRESS.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sPressRecipes, + RecipeMaps.formingPressRecipes, 4, 1, false, SoundResource.IC2_MACHINES_COMPRESSOR_OP, - false, - false, SpecialEffects.NONE, "PRESS", new Object[] { aTextWirePump, aTextCableHull, aTextWirePump, 'M', @@ -3147,13 +2895,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Forming Press III", 4, MachineType.FORMING_PRESS.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sPressRecipes, + RecipeMaps.formingPressRecipes, 4, 1, false, SoundResource.IC2_MACHINES_COMPRESSOR_OP, - false, - false, SpecialEffects.NONE, "PRESS", new Object[] { aTextWirePump, aTextCableHull, aTextWirePump, 'M', @@ -3168,13 +2914,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Forming Press IV", 5, MachineType.FORMING_PRESS.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sPressRecipes, + RecipeMaps.formingPressRecipes, 6, 1, false, SoundResource.IC2_MACHINES_COMPRESSOR_OP, - false, - false, SpecialEffects.NONE, "PRESS", new Object[] { aTextWirePump, aTextCableHull, aTextWirePump, 'M', @@ -3192,13 +2936,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Basic Precision Laser Engraver", 1, MachineType.LASER_ENGRAVER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sLaserEngraverRecipes, + RecipeMaps.laserEngraverRecipes, 2, 1, true, SoundResource.IC2_MACHINES_MAGNETIZER_LOOP, - false, - false, SpecialEffects.NONE, "LASER_ENGRAVER", new Object[] { "PEP", aTextCableHull, aTextWireCoil, 'M', @@ -3214,13 +2956,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Precision Laser Engraver", 2, MachineType.LASER_ENGRAVER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sLaserEngraverRecipes, + RecipeMaps.laserEngraverRecipes, 2, 1, true, SoundResource.IC2_MACHINES_MAGNETIZER_LOOP, - false, - false, SpecialEffects.NONE, "LASER_ENGRAVER", new Object[] { "PEP", aTextCableHull, aTextWireCoil, 'M', @@ -3236,13 +2976,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Precision Laser Engraver II", 3, MachineType.LASER_ENGRAVER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sLaserEngraverRecipes, + RecipeMaps.laserEngraverRecipes, 2, 1, true, SoundResource.IC2_MACHINES_MAGNETIZER_LOOP, - false, - false, SpecialEffects.NONE, "LASER_ENGRAVER", new Object[] { "PEP", aTextCableHull, aTextWireCoil, 'M', @@ -3258,13 +2996,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Precision Laser Engraver III", 4, MachineType.LASER_ENGRAVER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sLaserEngraverRecipes, + RecipeMaps.laserEngraverRecipes, 4, 1, true, SoundResource.IC2_MACHINES_MAGNETIZER_LOOP, - false, - false, SpecialEffects.NONE, "LASER_ENGRAVER", new Object[] { "PEP", aTextCableHull, aTextWireCoil, 'M', @@ -3280,13 +3016,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Precision Laser Engraver IV", 5, MachineType.LASER_ENGRAVER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sLaserEngraverRecipes, + RecipeMaps.laserEngraverRecipes, 4, 1, true, SoundResource.IC2_MACHINES_MAGNETIZER_LOOP, - false, - false, SpecialEffects.NONE, "LASER_ENGRAVER", new Object[] { "PEP", aTextCableHull, aTextWireCoil, 'M', @@ -3305,13 +3039,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Basic Lathe", 1, MachineType.LATHE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sLatheRecipes, + RecipeMaps.latheRecipes, 1, 2, false, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "LATHE", new Object[] { aTextWireCoil, "EMD", "CWP", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -3327,13 +3059,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Lathe", 2, MachineType.LATHE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sLatheRecipes, + RecipeMaps.latheRecipes, 1, 2, false, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "LATHE", new Object[] { aTextWireCoil, "EMD", "CWP", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -3349,13 +3079,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Lathe II", 3, MachineType.LATHE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sLatheRecipes, + RecipeMaps.latheRecipes, 1, 2, false, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "LATHE", new Object[] { aTextWireCoil, "EMD", "CWP", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -3371,13 +3099,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Lathe III", 4, MachineType.LATHE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sLatheRecipes, + RecipeMaps.latheRecipes, 1, 2, false, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "LATHE", new Object[] { aTextWireCoil, "EMD", "CWP", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -3393,13 +3119,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Lathe IV", 5, MachineType.LATHE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sLatheRecipes, + RecipeMaps.latheRecipes, 1, 2, false, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "LATHE", new Object[] { aTextWireCoil, "EMD", "CWP", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -3418,13 +3142,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Basic Macerator", 1, MachineType.MACERATOR.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sMaceratorRecipes, + RecipeMaps.maceratorRecipes, 1, 1, false, SoundResource.IC2_MACHINES_MACERATOR_OP, - false, - false, SpecialEffects.TOP_SMOKE, "MACERATOR", new Object[] { "PEG", "WWM", "CCW", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -3440,13 +3162,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Macerator", 2, MachineType.MACERATOR.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sMaceratorRecipes, + RecipeMaps.maceratorRecipes, 1, 1, false, SoundResource.IC2_MACHINES_MACERATOR_OP, - false, - false, SpecialEffects.TOP_SMOKE, "MACERATOR", new Object[] { "PEG", "WWM", "CCW", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -3462,13 +3182,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Universal Macerator", 3, MachineType.MACERATOR_PULVERIZER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sMaceratorRecipes, + RecipeMaps.maceratorRecipes, 1, 2, false, SoundResource.IC2_MACHINES_MACERATOR_OP, - false, - false, SpecialEffects.TOP_SMOKE, "PULVERIZER", new Object[] { "PEG", "WWM", "CCW", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -3484,13 +3202,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Universal Pulverizer", 4, MachineType.MACERATOR_PULVERIZER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sMaceratorRecipes, + RecipeMaps.maceratorRecipes, 1, 3, false, SoundResource.IC2_MACHINES_MACERATOR_OP, - false, - false, SpecialEffects.TOP_SMOKE, "PULVERIZER", new Object[] { "PEG", "WWM", "CCW", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -3506,13 +3222,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Blend-O-Matic 9001", 5, MachineType.MACERATOR_PULVERIZER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sMaceratorRecipes, + RecipeMaps.maceratorRecipes, 1, 4, false, SoundResource.IC2_MACHINES_MACERATOR_OP, - false, - false, SpecialEffects.TOP_SMOKE, "PULVERIZER", new Object[] { "PEG", "WWM", "CCW", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -3531,13 +3245,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Basic Amplifabricator", 1, MachineType.MATTER_AMPLIFIER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sAmplifiers, + RecipeMaps.amplifierRecipes, 1, 1, 1000, SoundResource.IC2_MACHINES_EXTRACTOR_OP, - false, - false, SpecialEffects.NONE, "AMPLIFAB", new Object[] { aTextWirePump, aTextPlateMotor, "CPC", 'M', @@ -3552,13 +3264,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Amplifabricator", 2, MachineType.MATTER_AMPLIFIER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sAmplifiers, + RecipeMaps.amplifierRecipes, 1, 1, 1000, SoundResource.IC2_MACHINES_EXTRACTOR_OP, - false, - false, SpecialEffects.NONE, "AMPLIFAB", new Object[] { aTextWirePump, aTextPlateMotor, "CPC", 'M', @@ -3573,13 +3283,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Amplifabricator II", 3, MachineType.MATTER_AMPLIFIER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sAmplifiers, + RecipeMaps.amplifierRecipes, 1, 1, 1000, SoundResource.IC2_MACHINES_EXTRACTOR_OP, - false, - false, SpecialEffects.NONE, "AMPLIFAB", new Object[] { aTextWirePump, aTextPlateMotor, "CPC", 'M', @@ -3594,13 +3302,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Amplifabricator III", 4, MachineType.MATTER_AMPLIFIER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sAmplifiers, + RecipeMaps.amplifierRecipes, 1, 1, 1000, SoundResource.IC2_MACHINES_EXTRACTOR_OP, - false, - false, SpecialEffects.NONE, "AMPLIFAB", new Object[] { aTextWirePump, aTextPlateMotor, "CPC", 'M', @@ -3615,13 +3321,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Amplifabricator IV", 5, MachineType.MATTER_AMPLIFIER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sAmplifiers, + RecipeMaps.amplifierRecipes, 1, 1, 1000, SoundResource.IC2_MACHINES_EXTRACTOR_OP, - false, - false, SpecialEffects.NONE, "AMPLIFAB", new Object[] { aTextWirePump, aTextPlateMotor, "CPC", 'M', @@ -3639,13 +3343,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Basic Microwave", 1, MachineType.MICROWAVE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sMicrowaveRecipes, + RecipeMaps.microwaveRecipes, 1, 1, false, SoundResource.IC2_MACHINES_ELECTROFURNACE_LOOP, - false, - false, SpecialEffects.NONE, "MICROWAVE", new Object[] { "LWC", "LMR", "LEC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -3661,13 +3363,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Microwave", 2, MachineType.MICROWAVE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sMicrowaveRecipes, + RecipeMaps.microwaveRecipes, 1, 1, false, SoundResource.IC2_MACHINES_ELECTROFURNACE_LOOP, - false, - false, SpecialEffects.NONE, "MICROWAVE", new Object[] { "LWC", "LMR", "LEC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -3683,13 +3383,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Microwave II", 3, MachineType.MICROWAVE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sMicrowaveRecipes, + RecipeMaps.microwaveRecipes, 1, 1, false, SoundResource.IC2_MACHINES_ELECTROFURNACE_LOOP, - false, - false, SpecialEffects.NONE, "MICROWAVE", new Object[] { "LWC", "LMR", "LEC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -3705,13 +3403,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Microwave III", 4, MachineType.MICROWAVE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sMicrowaveRecipes, + RecipeMaps.microwaveRecipes, 1, 1, false, SoundResource.IC2_MACHINES_ELECTROFURNACE_LOOP, - false, - false, SpecialEffects.NONE, "MICROWAVE", new Object[] { "LWC", "LMR", "LEC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -3727,13 +3423,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Microwave IV", 5, MachineType.MICROWAVE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sMicrowaveRecipes, + RecipeMaps.microwaveRecipes, 1, 1, false, SoundResource.IC2_MACHINES_ELECTROFURNACE_LOOP, - false, - false, SpecialEffects.NONE, "MICROWAVE", new Object[] { "LWC", "LMR", "LEC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -3752,13 +3446,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Basic Mixer", 1, MachineType.MIXER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sMixerRecipes, + RecipeMaps.mixerRecipes, 6, 1, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "MIXER", new Object[] { "GRG", "GEG", aTextCableHull, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -3773,13 +3465,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Mixer", 2, MachineType.MIXER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sMixerRecipes, + RecipeMaps.mixerRecipes, 6, 1, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "MIXER", new Object[] { "GRG", "GEG", aTextCableHull, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -3794,13 +3484,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Mixer II", 3, MachineType.MIXER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sMixerRecipes, + RecipeMaps.mixerRecipes, 6, 4, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "MIXER", new Object[] { "GRG", "GEG", aTextCableHull, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -3815,13 +3503,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Mixer III", 4, MachineType.MIXER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sMixerRecipes, + RecipeMaps.mixerRecipes, 9, 4, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "MIXER", new Object[] { "GRG", "GEG", aTextCableHull, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -3836,13 +3522,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Mixer IV", 5, MachineType.MIXER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sMixerRecipes, + RecipeMaps.mixerRecipes, 9, 4, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "MIXER", new Object[] { "GRG", "GEG", aTextCableHull, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -3860,13 +3544,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Basic Ore Washing Plant", 1, MachineType.ORE_WASHER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sOreWasherRecipes, + RecipeMaps.oreWasherRecipes, 1, 3, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "ORE_WASHER", new Object[] { "RGR", "CEC", aTextWireHull, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'R', @@ -3882,13 +3564,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Ore Washing Plant", 2, MachineType.ORE_WASHER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sOreWasherRecipes, + RecipeMaps.oreWasherRecipes, 1, 3, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "ORE_WASHER", new Object[] { "RGR", "CEC", aTextWireHull, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'R', @@ -3904,13 +3584,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Ore Washing Plant II", 3, MachineType.ORE_WASHER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sOreWasherRecipes, + RecipeMaps.oreWasherRecipes, 1, 3, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "ORE_WASHER", new Object[] { "RGR", "CEC", aTextWireHull, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'R', @@ -3926,13 +3604,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Ore Washing Plant III", 4, MachineType.ORE_WASHER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sOreWasherRecipes, + RecipeMaps.oreWasherRecipes, 1, 3, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "ORE_WASHER", new Object[] { "RGR", "CEC", aTextWireHull, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'R', @@ -3948,13 +3624,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Repurposed Laundry-Washer I-360", 5, MachineType.ORE_WASHER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sOreWasherRecipes, + RecipeMaps.oreWasherRecipes, 1, 3, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "ORE_WASHER", new Object[] { "RGR", "CEC", aTextWireHull, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'R', @@ -3973,13 +3647,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Basic Electric Oven", 1, MachineType.OVEN.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sFurnaceRecipes, + RecipeMaps.furnaceRecipes, 1, 1, false, SoundResource.IC2_MACHINES_ELECTROFURNACE_LOOP, - false, - false, SpecialEffects.NONE, "ELECTRIC_OVEN", new Object[] { "CEC", aTextCableHull, "WEW", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -3994,13 +3666,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Electric Oven", 2, MachineType.OVEN.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sFurnaceRecipes, + RecipeMaps.furnaceRecipes, 1, 1, false, SoundResource.IC2_MACHINES_ELECTROFURNACE_LOOP, - false, - false, SpecialEffects.NONE, "ELECTRIC_OVEN", new Object[] { "CEC", aTextCableHull, "WEW", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -4015,13 +3685,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Electric Oven II", 3, MachineType.OVEN.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sFurnaceRecipes, + RecipeMaps.furnaceRecipes, 1, 1, false, SoundResource.IC2_MACHINES_ELECTROFURNACE_LOOP, - false, - false, SpecialEffects.NONE, "ELECTRIC_OVEN", new Object[] { "CEC", aTextCableHull, "WEW", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -4036,13 +3704,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Electric Oven III", 4, MachineType.OVEN.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sFurnaceRecipes, + RecipeMaps.furnaceRecipes, 1, 1, false, SoundResource.IC2_MACHINES_ELECTROFURNACE_LOOP, - false, - false, SpecialEffects.NONE, "ELECTRIC_OVEN", new Object[] { "CEC", aTextCableHull, "WEW", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -4057,13 +3723,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Electric Oven IV", 5, MachineType.OVEN.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sFurnaceRecipes, + RecipeMaps.furnaceRecipes, 1, 1, false, SoundResource.IC2_MACHINES_ELECTROFURNACE_LOOP, - false, - false, SpecialEffects.NONE, "ELECTRIC_OVEN", new Object[] { "CEC", aTextCableHull, "WEW", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -4081,13 +3745,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Basic Plasma Arc Furnace", 1, MachineType.PLASMA_ARC_FURNACE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sPlasmaArcFurnaceRecipes, + RecipeMaps.plasmaArcFurnaceRecipes, 1, 4, true, SoundResource.IC2_MACHINES_INDUCTION_LOOP, - false, - false, SpecialEffects.NONE, "PLASMA_ARC_FURNACE", new Object[] { "WGW", aTextCableHull, "TPT", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', @@ -4103,13 +3765,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Plasma Arc Furnace", 2, MachineType.PLASMA_ARC_FURNACE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sPlasmaArcFurnaceRecipes, + RecipeMaps.plasmaArcFurnaceRecipes, 1, 4, true, SoundResource.IC2_MACHINES_INDUCTION_LOOP, - false, - false, SpecialEffects.NONE, "PLASMA_ARC_FURNACE", new Object[] { "WGW", aTextCableHull, "TPT", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', @@ -4125,13 +3785,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Plasma Arc Furnace II", 3, MachineType.PLASMA_ARC_FURNACE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sPlasmaArcFurnaceRecipes, + RecipeMaps.plasmaArcFurnaceRecipes, 1, 4, true, SoundResource.IC2_MACHINES_INDUCTION_LOOP, - false, - false, SpecialEffects.NONE, "PLASMA_ARC_FURNACE", new Object[] { "WGW", aTextCableHull, "TPT", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', @@ -4147,13 +3805,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Plasma Arc Furnace III", 4, MachineType.PLASMA_ARC_FURNACE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sPlasmaArcFurnaceRecipes, + RecipeMaps.plasmaArcFurnaceRecipes, 1, 9, true, SoundResource.IC2_MACHINES_INDUCTION_LOOP, - false, - false, SpecialEffects.NONE, "PLASMA_ARC_FURNACE", new Object[] { "WGW", aTextCableHull, "TPT", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', @@ -4169,13 +3825,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Plasma Arc Furnace IV", 5, MachineType.PLASMA_ARC_FURNACE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sPlasmaArcFurnaceRecipes, + RecipeMaps.plasmaArcFurnaceRecipes, 1, 9, true, SoundResource.IC2_MACHINES_INDUCTION_LOOP, - false, - false, SpecialEffects.NONE, "PLASMA_ARC_FURNACE", new Object[] { "WGW", aTextCableHull, "TPT", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', @@ -4194,13 +3848,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Basic Polarizer", 1, MachineType.POLARIZER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sPolarizerRecipes, + RecipeMaps.polarizerRecipes, 1, 1, false, SoundResource.IC2_MACHINES_MAGNETIZER_LOOP, - false, - false, SpecialEffects.NONE, "POLARIZER", new Object[] { "ZSZ", aTextWireHull, "ZSZ", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'S', @@ -4214,13 +3866,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Polarizer", 2, MachineType.POLARIZER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sPolarizerRecipes, + RecipeMaps.polarizerRecipes, 1, 1, false, SoundResource.IC2_MACHINES_MAGNETIZER_LOOP, - false, - false, SpecialEffects.NONE, "POLARIZER", new Object[] { "ZSZ", aTextWireHull, "ZSZ", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'S', @@ -4234,13 +3884,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Polarizer II", 3, MachineType.POLARIZER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sPolarizerRecipes, + RecipeMaps.polarizerRecipes, 1, 1, false, SoundResource.IC2_MACHINES_MAGNETIZER_LOOP, - false, - false, SpecialEffects.NONE, "POLARIZER", new Object[] { "ZSZ", aTextWireHull, "ZSZ", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'S', @@ -4254,13 +3902,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Polarizer III", 4, MachineType.POLARIZER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sPolarizerRecipes, + RecipeMaps.polarizerRecipes, 1, 1, false, SoundResource.IC2_MACHINES_MAGNETIZER_LOOP, - false, - false, SpecialEffects.NONE, "POLARIZER", new Object[] { "ZSZ", aTextWireHull, "ZSZ", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'S', @@ -4274,13 +3920,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Polarizer IV", 5, MachineType.POLARIZER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sPolarizerRecipes, + RecipeMaps.polarizerRecipes, 1, 1, false, SoundResource.IC2_MACHINES_MAGNETIZER_LOOP, - false, - false, SpecialEffects.NONE, "POLARIZER", new Object[] { "ZSZ", aTextWireHull, "ZSZ", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'S', @@ -4298,13 +3942,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Basic Printer", 1, MachineType.PRINTER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sPrinterRecipes, + RecipeMaps.printerRecipes, 1, 1, true, SoundResource.IC2_MACHINES_COMPRESSOR_OP, - false, - false, SpecialEffects.TOP_SMOKE, "PRINTER", new Object[] { aTextMotorWire, aTextCableHull, "WEW", 'M', @@ -4319,13 +3961,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Printer", 2, MachineType.PRINTER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sPrinterRecipes, + RecipeMaps.printerRecipes, 1, 1, true, SoundResource.IC2_MACHINES_COMPRESSOR_OP, - false, - false, SpecialEffects.TOP_SMOKE, "PRINTER", new Object[] { aTextMotorWire, aTextCableHull, "WEW", 'M', @@ -4340,13 +3980,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Printer II", 3, MachineType.PRINTER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sPrinterRecipes, + RecipeMaps.printerRecipes, 1, 1, true, SoundResource.IC2_MACHINES_COMPRESSOR_OP, - false, - false, SpecialEffects.TOP_SMOKE, "PRINTER", new Object[] { aTextMotorWire, aTextCableHull, "WEW", 'M', @@ -4361,13 +3999,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Printer III", 4, MachineType.PRINTER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sPrinterRecipes, + RecipeMaps.printerRecipes, 1, 1, true, SoundResource.IC2_MACHINES_COMPRESSOR_OP, - false, - false, SpecialEffects.TOP_SMOKE, "PRINTER", new Object[] { aTextMotorWire, aTextCableHull, "WEW", 'M', @@ -4382,13 +4018,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Printer IV", 5, MachineType.PRINTER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sPrinterRecipes, + RecipeMaps.printerRecipes, 1, 1, true, SoundResource.IC2_MACHINES_COMPRESSOR_OP, - false, - false, SpecialEffects.TOP_SMOKE, "PRINTER", new Object[] { aTextMotorWire, aTextCableHull, "WEW", 'M', @@ -4403,13 +4037,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Printer V", 6, MachineType.PRINTER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sPrinterRecipes, + RecipeMaps.printerRecipes, 1, 1, true, SoundResource.IC2_MACHINES_COMPRESSOR_OP, - false, - false, SpecialEffects.TOP_SMOKE, "PRINTER", new Object[] { aTextMotorWire, aTextCableHull, "WEW", 'M', @@ -4424,13 +4056,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Printer VI", 7, MachineType.PRINTER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sPrinterRecipes, + RecipeMaps.printerRecipes, 1, 1, true, SoundResource.IC2_MACHINES_COMPRESSOR_OP, - false, - false, SpecialEffects.TOP_SMOKE, "PRINTER", new Object[] { aTextMotorWire, aTextCableHull, "WEW", 'M', @@ -4445,13 +4075,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Printer VII", 8, MachineType.PRINTER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sPrinterRecipes, + RecipeMaps.printerRecipes, 1, 1, true, SoundResource.IC2_MACHINES_COMPRESSOR_OP, - false, - false, SpecialEffects.TOP_SMOKE, "PRINTER", new Object[] { aTextMotorWire, aTextCableHull, "WEW", 'M', @@ -4469,13 +4097,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Basic Recycler", 1, MachineType.RECYCLER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sRecyclerRecipes, + RecipeMaps.recyclerRecipes, 1, 1, false, SoundResource.IC2_MACHINES_RECYCLER_OP, - false, - false, SpecialEffects.NONE, "RECYCLER", new Object[] { "GCG", aTextPlateMotor, aTextWireCoil, 'M', @@ -4491,13 +4117,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Recycler", 2, MachineType.RECYCLER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sRecyclerRecipes, + RecipeMaps.recyclerRecipes, 1, 1, false, SoundResource.IC2_MACHINES_RECYCLER_OP, - false, - false, SpecialEffects.NONE, "RECYCLER", new Object[] { "GCG", aTextPlateMotor, aTextWireCoil, 'M', @@ -4513,13 +4137,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Recycler II", 3, MachineType.RECYCLER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sRecyclerRecipes, + RecipeMaps.recyclerRecipes, 1, 1, false, SoundResource.IC2_MACHINES_RECYCLER_OP, - false, - false, SpecialEffects.NONE, "RECYCLER", new Object[] { "GCG", aTextPlateMotor, aTextWireCoil, 'M', @@ -4535,13 +4157,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Recycler III", 4, MachineType.RECYCLER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sRecyclerRecipes, + RecipeMaps.recyclerRecipes, 1, 1, false, SoundResource.IC2_MACHINES_RECYCLER_OP, - false, - false, SpecialEffects.NONE, "RECYCLER", new Object[] { "GCG", aTextPlateMotor, aTextWireCoil, 'M', @@ -4557,13 +4177,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "The Oblitterator", 5, MachineType.RECYCLER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sRecyclerRecipes, + RecipeMaps.recyclerRecipes, 1, 1, false, SoundResource.IC2_MACHINES_RECYCLER_OP, - false, - false, SpecialEffects.NONE, "RECYCLER", new Object[] { "GCG", aTextPlateMotor, aTextWireCoil, 'M', @@ -4582,13 +4200,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Basic Sifting Machine", 1, MachineType.SIFTER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sSifterRecipes, + RecipeMaps.sifterRecipes, 1, 9, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "SIFTER", new Object[] { "WFW", aTextPlateMotor, "CFC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', @@ -4602,13 +4218,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Sifting Machine", 2, MachineType.SIFTER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sSifterRecipes, + RecipeMaps.sifterRecipes, 1, 9, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "SIFTER", new Object[] { "WFW", aTextPlateMotor, "CFC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', @@ -4622,13 +4236,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Sifting Machine II", 3, MachineType.SIFTER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sSifterRecipes, + RecipeMaps.sifterRecipes, 1, 9, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "SIFTER", new Object[] { "WFW", aTextPlateMotor, "CFC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', @@ -4642,13 +4254,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Sifting Machine III", 4, MachineType.SIFTER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sSifterRecipes, + RecipeMaps.sifterRecipes, 1, 9, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "SIFTER", new Object[] { "WFW", aTextPlateMotor, "CFC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', @@ -4662,13 +4272,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Sifting Machine IV", 5, MachineType.SIFTER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sSifterRecipes, + RecipeMaps.sifterRecipes, 1, 9, true, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "SIFTER", new Object[] { "WFW", aTextPlateMotor, "CFC", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'P', @@ -4685,13 +4293,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Basic Slicing Machine", 1, MachineType.SLICER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sSlicerRecipes, + RecipeMaps.slicerRecipes, 2, 1, false, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "SLICER", new Object[] { aTextWireCoil, "PMV", aTextWireCoil, 'M', @@ -4707,13 +4313,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Slicing Machine", 2, MachineType.SLICER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sSlicerRecipes, + RecipeMaps.slicerRecipes, 2, 1, false, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "SLICER", new Object[] { aTextWireCoil, "PMV", aTextWireCoil, 'M', @@ -4729,13 +4333,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Slicing Machine II", 3, MachineType.SLICER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sSlicerRecipes, + RecipeMaps.slicerRecipes, 2, 1, false, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "SLICER", new Object[] { aTextWireCoil, "PMV", aTextWireCoil, 'M', @@ -4751,13 +4353,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Slicing Machine III", 4, MachineType.SLICER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sSlicerRecipes, + RecipeMaps.slicerRecipes, 2, 1, false, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "SLICER", new Object[] { aTextWireCoil, "PMV", aTextWireCoil, 'M', @@ -4773,13 +4373,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Slicing Machine IV", 5, MachineType.SLICER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sSlicerRecipes, + RecipeMaps.slicerRecipes, 2, 1, false, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "SLICER", new Object[] { aTextWireCoil, "PMV", aTextWireCoil, 'M', @@ -4798,13 +4396,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Basic Thermal Centrifuge", 1, MachineType.THERMAL_CENTRIFUGE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes, + RecipeMaps.thermalCentrifugeRecipes, 1, 3, false, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "THERMAL_CENTRIFUGE", new Object[] { "CEC", "OMO", "WEW", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -4819,13 +4415,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Thermal Centrifuge", 2, MachineType.THERMAL_CENTRIFUGE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes, + RecipeMaps.thermalCentrifugeRecipes, 1, 3, false, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "THERMAL_CENTRIFUGE", new Object[] { "CEC", "OMO", "WEW", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -4840,13 +4434,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Thermal Centrifuge II", 3, MachineType.THERMAL_CENTRIFUGE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes, + RecipeMaps.thermalCentrifugeRecipes, 1, 3, false, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "THERMAL_CENTRIFUGE", new Object[] { "CEC", "OMO", "WEW", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -4861,13 +4453,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Thermal Centrifuge III", 4, MachineType.THERMAL_CENTRIFUGE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes, + RecipeMaps.thermalCentrifugeRecipes, 1, 3, false, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "THERMAL_CENTRIFUGE", new Object[] { "CEC", "OMO", "WEW", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -4882,13 +4472,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Blaze Sweatshop T-6350", 5, MachineType.THERMAL_CENTRIFUGE.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes, + RecipeMaps.thermalCentrifugeRecipes, 1, 3, false, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "THERMAL_CENTRIFUGE", new Object[] { "CEC", "OMO", "WEW", 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'E', @@ -4906,13 +4494,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Basic Unpackager", 1, MachineType.UNPACKAGER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sUnboxinatorRecipes, + RecipeMaps.unpackagerRecipes, 1, 2, false, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "UNBOXINATOR", new Object[] { "BCB", "VMR", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'R', @@ -4928,13 +4514,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Unpackager", 2, MachineType.UNPACKAGER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sUnboxinatorRecipes, + RecipeMaps.unpackagerRecipes, 1, 2, false, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "UNBOXINATOR", new Object[] { "BCB", "VMR", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'R', @@ -4950,13 +4534,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Unpackager II", 3, MachineType.UNPACKAGER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sUnboxinatorRecipes, + RecipeMaps.unpackagerRecipes, 1, 2, false, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "UNBOXINATOR", new Object[] { "BCB", "VMR", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'R', @@ -4972,13 +4554,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Unpackager III", 4, MachineType.UNPACKAGER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sUnboxinatorRecipes, + RecipeMaps.unpackagerRecipes, 1, 2, false, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "UNBOXINATOR", new Object[] { "BCB", "VMR", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'R', @@ -4994,13 +4574,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Unboxinator", 5, MachineType.UNPACKAGER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sUnboxinatorRecipes, + RecipeMaps.unpackagerRecipes, 1, 2, false, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "UNBOXINATOR", new Object[] { "BCB", "VMR", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'R', @@ -5016,13 +4594,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Unboxinator", 6, MachineType.UNPACKAGER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sUnboxinatorRecipes, + RecipeMaps.unpackagerRecipes, 1, 2, false, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "UNBOXINATOR", new Object[] { "BCB", "VMR", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'R', @@ -5038,13 +4614,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Unboxinator", 7, MachineType.UNPACKAGER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sUnboxinatorRecipes, + RecipeMaps.unpackagerRecipes, 1, 2, false, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "UNBOXINATOR", new Object[] { "BCB", "VMR", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'R', @@ -5060,13 +4634,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Unboxinator", 8, MachineType.UNPACKAGER.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sUnboxinatorRecipes, + RecipeMaps.unpackagerRecipes, 1, 2, false, SoundResource.NONE, - false, - false, SpecialEffects.NONE, "UNBOXINATOR", new Object[] { "BCB", "VMR", aTextWireCoil, 'M', GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, 'R', @@ -5085,13 +4657,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Basic Wiremill", 1, MachineType.WIREMILL.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sWiremillRecipes, + RecipeMaps.wiremillRecipes, 2, 1, false, SoundResource.IC2_MACHINES_RECYCLER_OP, - false, - false, SpecialEffects.NONE, "WIREMILL", new Object[] { aTextMotorWire, aTextCableHull, aTextMotorWire, 'M', @@ -5106,13 +4676,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Wiremill", 2, MachineType.WIREMILL.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sWiremillRecipes, + RecipeMaps.wiremillRecipes, 2, 1, false, SoundResource.IC2_MACHINES_RECYCLER_OP, - false, - false, SpecialEffects.NONE, "WIREMILL", new Object[] { aTextMotorWire, aTextCableHull, aTextMotorWire, 'M', @@ -5127,13 +4695,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Wiremill II", 3, MachineType.WIREMILL.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sWiremillRecipes, + RecipeMaps.wiremillRecipes, 2, 1, false, SoundResource.IC2_MACHINES_RECYCLER_OP, - false, - false, SpecialEffects.NONE, "WIREMILL", new Object[] { aTextMotorWire, aTextCableHull, aTextMotorWire, 'M', @@ -5148,13 +4714,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Wiremill III", 4, MachineType.WIREMILL.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sWiremillRecipes, + RecipeMaps.wiremillRecipes, 2, 1, false, SoundResource.IC2_MACHINES_RECYCLER_OP, - false, - false, SpecialEffects.NONE, "WIREMILL", new Object[] { aTextMotorWire, aTextCableHull, aTextMotorWire, 'M', @@ -5169,13 +4733,11 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { "Advanced Wiremill IV", 5, MachineType.WIREMILL.tooltipDescription(), - GT_Recipe.GT_Recipe_Map.sWiremillRecipes, + RecipeMaps.wiremillRecipes, 2, 1, false, SoundResource.IC2_MACHINES_RECYCLER_OP, - false, - false, SpecialEffects.NONE, "WIREMILL", new Object[] { aTextMotorWire, aTextCableHull, aTextMotorWire, 'M', @@ -6893,7 +6455,7 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { .fluidInputs(Materials.StainlessSteel.getMolten(864L)) .duration(60 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } else { if (NotEnoughItems.isModLoaded()) { API.hideItem(ItemList.Machine_Multi_Cleanroom.get(1L)); @@ -7079,7 +6641,7 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.pipeSmall, Materials.Ultimate, 1L)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.TungstenSteel, 1L), @@ -7088,7 +6650,7 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.Ultimate, 1L)) .duration(20 * SECONDS) .eut(4096) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_OreDictUnificator.get(OrePrefixes.pipeLarge, Materials.TungstenSteel, 1L), @@ -7097,7 +6659,7 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.pipeLarge, Materials.Ultimate, 1L)) .duration(30 * SECONDS) .eut(TierEU.RECIPE_IV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_ModHandler.addCraftingRecipe( ItemList.Automation_ChestBuffer_ULV.get(1L), diff --git a/src/main/java/gregtech/loaders/misc/GT_Achievements.java b/src/main/java/gregtech/loaders/misc/GT_Achievements.java index bd11de28ef..fd48dc5801 100644 --- a/src/main/java/gregtech/loaders/misc/GT_Achievements.java +++ b/src/main/java/gregtech/loaders/misc/GT_Achievements.java @@ -27,6 +27,7 @@ import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.objects.ItemData; +import gregtech.api.recipe.RecipeMaps; import gregtech.api.util.GT_Log; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; @@ -48,8 +49,9 @@ public class GT_Achievements { this.achievementList = new ConcurrentHashMap<>(); this.issuedAchievements = new ConcurrentHashMap<>(); - for (GT_Recipe recipe : GT_Recipe.GT_Recipe_Map.sAssemblylineVisualRecipes.mRecipeList) + for (GT_Recipe recipe : RecipeMaps.assemblylineVisualRecipes.getAllRecipes()) { registerAssAchievement(recipe); + } registerAchievement( "flintpick", @@ -954,14 +956,8 @@ public class GT_Achievements { issueAchievement(player, "conducting"); } if (player.capabilities.isCreativeMode && stack.getUnlocalizedName() - .equals("gt.metaitem.01.32761")) { // Debug - // Scanner - // pickup - // shows - // all - // assline - // recipes. - for (GT_Recipe recipe : GT_Recipe.GT_Recipe_Map.sAssemblylineVisualRecipes.mRecipeList) { + .equals("gt.metaitem.01.32761")) { // Debug Scanner pickup shows all assline recipes. + for (GT_Recipe recipe : RecipeMaps.assemblylineVisualRecipes.getAllRecipes()) { issueAchievement( player, recipe.getOutput(0) @@ -969,7 +965,7 @@ public class GT_Achievements { recipe.mHidden = false; } } - for (GT_Recipe recipe : GT_Recipe.GT_Recipe_Map.sAssemblylineVisualRecipes.mRecipeList) { + for (GT_Recipe recipe : RecipeMaps.assemblylineVisualRecipes.getAllRecipes()) { if (recipe.getOutput(0) .getUnlocalizedName() .equals(stack.getUnlocalizedName())) { diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingArrows.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingArrows.java index bb32333429..11d1b1e1b8 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingArrows.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingArrows.java @@ -1,6 +1,6 @@ package gregtech.loaders.oreprocessing; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sChemicalBathRecipes; +import static gregtech.api.recipe.RecipeMaps.chemicalBathRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import net.minecraft.enchantment.Enchantment; @@ -40,7 +40,7 @@ public class ProcessingArrows implements gregtech.api.interfaces.IOreRecipeRegis .fluidInputs(Materials.HolyWater.getFluid(25L)) .duration(5 * SECONDS) .eut(2) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); tOutput = GT_Utility.copyAmount(1, aStack); GT_Utility.updateItemStack(tOutput); @@ -55,7 +55,7 @@ public class ProcessingArrows implements gregtech.api.interfaces.IOreRecipeRegis .fluidInputs(Materials.FierySteel.getFluid(25L)) .duration(5 * SECONDS) .eut(2) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); tOutput = GT_Utility.copyAmount(1, aStack); GT_Utility.updateItemStack(tOutput); @@ -70,7 +70,7 @@ public class ProcessingArrows implements gregtech.api.interfaces.IOreRecipeRegis .fluidInputs(Materials.Blaze.getMolten(18L)) .duration(5 * SECONDS) .eut(2) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); tOutput = GT_Utility.copyAmount(1, aStack); GT_Utility.updateItemStack(tOutput); @@ -85,7 +85,7 @@ public class ProcessingArrows implements gregtech.api.interfaces.IOreRecipeRegis .fluidInputs(Materials.Rubber.getMolten(18L)) .duration(5 * SECONDS) .eut(2) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); tOutput = GT_Utility.copyAmount(1, aStack); GT_Utility.updateItemStack(tOutput); @@ -101,7 +101,7 @@ public class ProcessingArrows implements gregtech.api.interfaces.IOreRecipeRegis .fluidInputs(Materials.Mercury.getFluid(25L)) .duration(5 * SECONDS) .eut(2) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); if (!aMaterial.mUnificatable) { return; diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingBeans.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingBeans.java index 9aed3d19af..2fb200216e 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingBeans.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingBeans.java @@ -1,6 +1,6 @@ package gregtech.loaders.oreprocessing; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sMaceratorRecipes; +import static gregtech.api.recipe.RecipeMaps.maceratorRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import net.minecraft.item.ItemStack; @@ -30,6 +30,6 @@ public class ProcessingBeans implements gregtech.api.interfaces.IOreRecipeRegist .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Cocoa, 1L)) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingBlock.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingBlock.java index e424f1c606..b948f251f0 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingBlock.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingBlock.java @@ -1,10 +1,10 @@ package gregtech.loaders.oreprocessing; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sAssemblerRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCompressorRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCutterRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sFluidSolidficationRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sHammerRecipes; +import static gregtech.api.recipe.RecipeMaps.assemblerRecipes; +import static gregtech.api.recipe.RecipeMaps.compressorRecipes; +import static gregtech.api.recipe.RecipeMaps.cutterRecipes; +import static gregtech.api.recipe.RecipeMaps.fluidSolidifierRecipes; +import static gregtech.api.recipe.RecipeMaps.hammerRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; import static gregtech.api.util.GT_Utility.calculateRecipeEU; @@ -49,7 +49,7 @@ public class ProcessingBlock implements gregtech.api.interfaces.IOreRecipeRegist Math.min(1000, ((int) Math.max(aMaterial.getMass() * 10L, 1L)) * TICKS * 30 / 320)))) .duration(2 * ((int) Math.max(aMaterial.getMass() * 10L, 1L)) * TICKS) .eut(TierEU.RECIPE_LV) - .addTo(sCutterRecipes); + .addTo(cutterRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack), GT_Utility.getIntegratedCircuit(3)) @@ -61,7 +61,7 @@ public class ProcessingBlock implements gregtech.api.interfaces.IOreRecipeRegist Math.min(750, ((int) Math.max(aMaterial.getMass() * 10L, 1L)) * TICKS * 30 / 426)))) .duration(2 * ((int) Math.max(aMaterial.getMass() * 10L, 1L)) * TICKS) .eut(TierEU.RECIPE_LV) - .addTo(sCutterRecipes); + .addTo(cutterRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack), GT_Utility.getIntegratedCircuit(3)) @@ -73,7 +73,7 @@ public class ProcessingBlock implements gregtech.api.interfaces.IOreRecipeRegist Math.min(250, ((int) Math.max(aMaterial.getMass() * 10L, 1L)) * TICKS * 30 / 1280)))) .duration(((int) Math.max(aMaterial.getMass() * 10L, 1L)) * TICKS) .eut(TierEU.RECIPE_LV) - .addTo(sCutterRecipes); + .addTo(cutterRecipes); } @@ -89,7 +89,7 @@ public class ProcessingBlock implements gregtech.api.interfaces.IOreRecipeRegist Math.min(1000, ((int) Math.max(aMaterial.getMass() * 10L, 1L)) * TICKS * 30 / 320)))) .duration(2 * ((int) Math.max(aMaterial.getMass() * 10L, 1L)) * TICKS) .eut(TierEU.RECIPE_LV) - .addTo(sCutterRecipes); + .addTo(cutterRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack)) @@ -101,7 +101,7 @@ public class ProcessingBlock implements gregtech.api.interfaces.IOreRecipeRegist Math.min(750, ((int) Math.max(aMaterial.getMass() * 10L, 1L)) * TICKS * 30 / 426)))) .duration(2 * ((int) Math.max(aMaterial.getMass() * 10L, 1L)) * TICKS) .eut(TierEU.RECIPE_LV) - .addTo(sCutterRecipes); + .addTo(cutterRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack)) @@ -113,7 +113,7 @@ public class ProcessingBlock implements gregtech.api.interfaces.IOreRecipeRegist Math.min(250, ((int) Math.max(aMaterial.getMass() * 10L, 1L)) * TICKS * 30 / 1280)))) .duration(((int) Math.max(aMaterial.getMass() * 10L, 1L)) * TICKS) .eut(TierEU.RECIPE_LV) - .addTo(sCutterRecipes); + .addTo(cutterRecipes); } } @@ -142,7 +142,7 @@ public class ProcessingBlock implements gregtech.api.interfaces.IOreRecipeRegist .fluidInputs(aMaterial.getMolten(1296L)) .duration(14 * SECONDS + 8 * TICKS) .eut(8) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); } } } @@ -173,7 +173,7 @@ public class ProcessingBlock implements gregtech.api.interfaces.IOreRecipeRegist .itemOutputs(tStack2) .duration(5 * SECONDS) .eut(24) - .addTo(sHammerRecipes); + .addTo(hammerRecipes); } if (GregTech_API.sRecipeFile.get( @@ -196,7 +196,7 @@ public class ProcessingBlock implements gregtech.api.interfaces.IOreRecipeRegist .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.block, aMaterial, 1L)) .duration(15 * SECONDS) .eut(calculateRecipeEU(aMaterial, 2)) - .addTo(sCompressorRecipes); + .addTo(compressorRecipes); } switch (aMaterial.mName) { @@ -207,7 +207,7 @@ public class ProcessingBlock implements gregtech.api.interfaces.IOreRecipeRegist .itemOutputs(ItemList.IC2_Compressed_Coal_Chunk.get(1L)) .duration(20 * SECONDS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCell.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCell.java index c99894caab..d681df1b5a 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCell.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCell.java @@ -1,8 +1,8 @@ package gregtech.loaders.oreprocessing; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sElectrolyzerRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sVacuumRecipes; +import static gregtech.api.recipe.RecipeMaps.centrifugeRecipes; +import static gregtech.api.recipe.RecipeMaps.electrolyzerRecipes; +import static gregtech.api.recipe.RecipeMaps.vacuumFreezerRecipes; import static gregtech.api.util.GT_RecipeBuilder.TICKS; import static gregtech.api.util.GT_RecipeConstants.FUEL_TYPE; import static gregtech.api.util.GT_RecipeConstants.FUEL_VALUE; @@ -51,8 +51,6 @@ public class ProcessingCell implements IOreRecipeRegistrator { } recipeBuilder.metadata(FUEL_VALUE, aMaterial.mFuelPower) .metadata(FUEL_TYPE, aMaterial.mFuelType) - .duration(0) - .eut(0) .addTo(GT_RecipeConstants.Fuel); } if (!((aMaterial.mMaterialList.size() > 0) && ((aMaterial.mExtraData & 0x3) != 0))) { @@ -139,7 +137,7 @@ public class ProcessingCell implements IOreRecipeRegistrator { recipeBuilder.itemOutputs(outputsArray) .duration(Math.max(1L, Math.abs(aMaterial.getProtons() * 2L * tItemAmount))) .eut(Math.min(4, tList.size()) * 30) - .addTo(sElectrolyzerRecipes); + .addTo(electrolyzerRecipes); } else { long tCellBalance = tCapsuleCount + tItemAmount - 1; GT_RecipeBuilder recipeBuilder = GT_Values.RA.stdBuilder(); @@ -155,7 +153,7 @@ public class ProcessingCell implements IOreRecipeRegistrator { recipeBuilder.itemOutputs(outputsArray) .duration(Math.max(1L, Math.abs(aMaterial.getProtons() * 8L * tItemAmount))) .eut(Math.min(4, tList.size()) * 30) - .addTo(sElectrolyzerRecipes); + .addTo(electrolyzerRecipes); } } if ((aMaterial.mExtraData & 0x2) != 0) { @@ -174,7 +172,7 @@ public class ProcessingCell implements IOreRecipeRegistrator { recipeBuilder.itemOutputs(outputsArray) .duration(Math.max(1L, Math.abs(aMaterial.getMass() * 2L * tItemAmount))) .eut(5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); } } } @@ -194,14 +192,10 @@ public class ProcessingCell implements IOreRecipeRegistrator { case "Tin": recipeBuilder.metadata(FUEL_VALUE, 150_000) .metadata(FUEL_TYPE, 4) - .duration(0) - .eut(0) .addTo(GT_RecipeConstants.Fuel); default: recipeBuilder.metadata(FUEL_VALUE, (int) Math.max(1024L, 1024L * aMaterial.getMass())) .metadata(FUEL_TYPE, 4) - .duration(0) - .eut(0) .addTo(GT_RecipeConstants.Fuel); } if (GT_OreDictUnificator.get(OrePrefixes.cell, aMaterial, 1L) != null) { @@ -210,7 +204,7 @@ public class ProcessingCell implements IOreRecipeRegistrator { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cell, aMaterial, 1L)) .duration(((int) Math.max(aMaterial.getMass() * 2L, 1L)) * TICKS) .eut(TierEU.RECIPE_MV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); } } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrafting.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrafting.java index 5c2f74a9cd..438da254a2 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrafting.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrafting.java @@ -3,8 +3,8 @@ package gregtech.loaders.oreprocessing; import static gregtech.api.enums.Mods.AppliedEnergistics2; import static gregtech.api.enums.Mods.BuildCraftSilicon; import static gregtech.api.enums.Mods.NewHorizonsCoreMod; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sAssemblerRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sLaserEngraverRecipes; +import static gregtech.api.recipe.RecipeMaps.assemblerRecipes; +import static gregtech.api.recipe.RecipeMaps.laserEngraverRecipes; import static gregtech.api.util.GT_RecipeBuilder.MINUTES; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; @@ -39,7 +39,7 @@ public class ProcessingCrafting implements gregtech.api.interfaces.IOreRecipeReg .fluidInputs(Materials.Concrete.getMolten(144L)) .duration(2 * SECONDS) .eut(20) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } case "craftingLensBlue" -> { @@ -50,7 +50,7 @@ public class ProcessingCrafting implements gregtech.api.interfaces.IOreRecipeReg .itemOutputs(GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 13)) .duration(1 * MINUTES + 40 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -59,7 +59,7 @@ public class ProcessingCrafting implements gregtech.api.interfaces.IOreRecipeReg .itemOutputs(GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 13)) .duration(1 * MINUTES + 40 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.IC2_LapotronCrystal.getWildcard(1L), GT_Utility.copyAmount(0, aStack)) @@ -67,7 +67,7 @@ public class ProcessingCrafting implements gregtech.api.interfaces.IOreRecipeReg .requiresCleanRoom() .duration(45 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Circuit_Chip_CrystalCPU.get(1L), GT_Utility.copyAmount(0, aStack)) @@ -75,7 +75,7 @@ public class ProcessingCrafting implements gregtech.api.interfaces.IOreRecipeReg .requiresCleanRoom() .duration(30 * SECONDS) .eut(40000) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Circuit_Silicon_Wafer2.get(1), GT_Utility.copyAmount(0, aStack)) @@ -83,7 +83,7 @@ public class ProcessingCrafting implements gregtech.api.interfaces.IOreRecipeReg .requiresCleanRoom() .duration(60 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Circuit_Silicon_Wafer3.get(1), GT_Utility.copyAmount(0, aStack)) @@ -91,7 +91,7 @@ public class ProcessingCrafting implements gregtech.api.interfaces.IOreRecipeReg .requiresCleanRoom() .duration(40 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Circuit_Silicon_Wafer5.get(1), GT_Utility.copyAmount(0, aStack)) @@ -99,7 +99,7 @@ public class ProcessingCrafting implements gregtech.api.interfaces.IOreRecipeReg .requiresCleanRoom() .duration(2 * MINUTES) .eut(TierEU.RECIPE_UV) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); } case "craftingLensYellow" -> { @@ -111,7 +111,7 @@ public class ProcessingCrafting implements gregtech.api.interfaces.IOreRecipeReg .itemOutputs(GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 14)) .duration(1 * MINUTES + 40 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -120,14 +120,14 @@ public class ProcessingCrafting implements gregtech.api.interfaces.IOreRecipeReg .itemOutputs(GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 14)) .duration(1 * MINUTES + 40 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Circuit_Silicon_Wafer.get(1), GT_Utility.copyAmount(0, aStack)) .itemOutputs(ItemList.Circuit_Wafer_LPIC.get(1)) .duration(40 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Circuit_Silicon_Wafer2.get(1), GT_Utility.copyAmount(0, aStack)) @@ -135,7 +135,7 @@ public class ProcessingCrafting implements gregtech.api.interfaces.IOreRecipeReg .requiresCleanRoom() .duration(30 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Circuit_Silicon_Wafer3.get(1), GT_Utility.copyAmount(0, aStack)) @@ -143,7 +143,7 @@ public class ProcessingCrafting implements gregtech.api.interfaces.IOreRecipeReg .requiresCleanRoom() .duration(45 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Circuit_Silicon_Wafer4.get(1), GT_Utility.copyAmount(0, aStack)) @@ -151,7 +151,7 @@ public class ProcessingCrafting implements gregtech.api.interfaces.IOreRecipeReg .requiresCleanRoom() .duration(30 * SECONDS) .eut(TierEU.RECIPE_IV) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Circuit_Silicon_Wafer5.get(1), GT_Utility.copyAmount(0, aStack)) @@ -159,7 +159,7 @@ public class ProcessingCrafting implements gregtech.api.interfaces.IOreRecipeReg .requiresCleanRoom() .duration(15 * SECONDS) .eut(TierEU.RECIPE_LuV) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); } case "craftingLensOrange" -> { @@ -168,28 +168,28 @@ public class ProcessingCrafting implements gregtech.api.interfaces.IOreRecipeReg .itemOutputs(ItemList.Circuit_Wafer_Simple_SoC.get(1)) .duration(15 * SECONDS) .eut(64) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Circuit_Silicon_Wafer2.get(1), GT_Utility.copyAmount(0, aStack)) .itemOutputs(ItemList.Circuit_Wafer_Simple_SoC.get(4)) .duration(15 * SECONDS) .eut(256) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Circuit_Silicon_Wafer3.get(1), GT_Utility.copyAmount(0, aStack)) .itemOutputs(ItemList.Circuit_Wafer_Simple_SoC.get(16)) .duration(15 * SECONDS) .eut(1024) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Circuit_Silicon_Wafer4.get(1), GT_Utility.copyAmount(0, aStack)) .itemOutputs(ItemList.Circuit_Wafer_Simple_SoC.get(64)) .duration(15 * SECONDS) .eut(4096) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); } case "craftingLensCyan" -> { @@ -201,7 +201,7 @@ public class ProcessingCrafting implements gregtech.api.interfaces.IOreRecipeReg .itemOutputs(GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 15)) .duration(1 * MINUTES + 40 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -210,14 +210,14 @@ public class ProcessingCrafting implements gregtech.api.interfaces.IOreRecipeReg .itemOutputs(GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 15)) .duration(1 * MINUTES + 40 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Circuit_Silicon_Wafer.get(1), GT_Utility.copyAmount(0, aStack)) .itemOutputs(ItemList.Circuit_Wafer_Ram.get(1)) .duration(60 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Circuit_Silicon_Wafer2.get(1), GT_Utility.copyAmount(0, aStack)) @@ -225,7 +225,7 @@ public class ProcessingCrafting implements gregtech.api.interfaces.IOreRecipeReg .requiresCleanRoom() .duration(45 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Circuit_Silicon_Wafer3.get(1), GT_Utility.copyAmount(0, aStack)) @@ -233,7 +233,7 @@ public class ProcessingCrafting implements gregtech.api.interfaces.IOreRecipeReg .requiresCleanRoom() .duration(30 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Circuit_Silicon_Wafer4.get(1), GT_Utility.copyAmount(0, aStack)) @@ -241,7 +241,7 @@ public class ProcessingCrafting implements gregtech.api.interfaces.IOreRecipeReg .requiresCleanRoom() .duration(15 * SECONDS) .eut(TierEU.RECIPE_IV) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Circuit_Silicon_Wafer5.get(1), GT_Utility.copyAmount(0, aStack)) @@ -249,7 +249,7 @@ public class ProcessingCrafting implements gregtech.api.interfaces.IOreRecipeReg .requiresCleanRoom() .duration(7 * SECONDS + 10 * TICKS) .eut(TierEU.RECIPE_LuV) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); } case "craftingLensRed" -> { @@ -261,7 +261,7 @@ public class ProcessingCrafting implements gregtech.api.interfaces.IOreRecipeReg .itemOutputs(GT_ModHandler.getModItem(BuildCraftSilicon.ID, "redstoneChipset", 1L, 0)) .duration(2 * SECONDS + 10 * TICKS) .eut(TierEU.RECIPE_MV) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -270,14 +270,14 @@ public class ProcessingCrafting implements gregtech.api.interfaces.IOreRecipeReg .itemOutputs(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.EtchedLowVoltageWiring", 1L, 0)) .duration(10 * SECONDS) .eut(16) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Circuit_Silicon_Wafer.get(1), GT_Utility.copyAmount(0, aStack)) .itemOutputs(ItemList.Circuit_Wafer_ILC.get(1)) .duration(60 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Circuit_Silicon_Wafer2.get(1), GT_Utility.copyAmount(0, aStack)) @@ -285,7 +285,7 @@ public class ProcessingCrafting implements gregtech.api.interfaces.IOreRecipeReg .requiresCleanRoom() .duration(45 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Circuit_Silicon_Wafer3.get(1), GT_Utility.copyAmount(0, aStack)) @@ -293,7 +293,7 @@ public class ProcessingCrafting implements gregtech.api.interfaces.IOreRecipeReg .requiresCleanRoom() .duration(30 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Circuit_Silicon_Wafer4.get(1), GT_Utility.copyAmount(0, aStack)) @@ -301,7 +301,7 @@ public class ProcessingCrafting implements gregtech.api.interfaces.IOreRecipeReg .requiresCleanRoom() .duration(1 * MINUTES + 30 * SECONDS) .eut(TierEU.RECIPE_LuV) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Circuit_Silicon_Wafer5.get(1), GT_Utility.copyAmount(0, aStack)) @@ -309,7 +309,7 @@ public class ProcessingCrafting implements gregtech.api.interfaces.IOreRecipeReg .requiresCleanRoom() .duration(1 * MINUTES + 15 * SECONDS) .eut(TierEU.RECIPE_ZPM) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); } case "craftingLensGreen" -> { @@ -320,7 +320,7 @@ public class ProcessingCrafting implements gregtech.api.interfaces.IOreRecipeReg .requiresCleanRoom() .duration(30 * SECONDS) .eut(10000) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Circuit_Chip_CrystalSoC.get(1L), GT_Utility.copyAmount(0, aStack)) @@ -328,21 +328,21 @@ public class ProcessingCrafting implements gregtech.api.interfaces.IOreRecipeReg .requiresCleanRoom() .duration(60 * SECONDS) .eut(80000) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Circuit_Silicon_Wafer.get(1), GT_Utility.copyAmount(0, aStack)) .itemOutputs(ItemList.Circuit_Wafer_ULPIC.get(2)) .duration(30 * SECONDS) .eut(30) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Circuit_Silicon_Wafer2.get(1), GT_Utility.copyAmount(0, aStack)) .itemOutputs(ItemList.Circuit_Wafer_ULPIC.get(8)) .duration(30 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Circuit_Silicon_Wafer3.get(1), GT_Utility.copyAmount(0, aStack)) @@ -350,7 +350,7 @@ public class ProcessingCrafting implements gregtech.api.interfaces.IOreRecipeReg .requiresCleanRoom() .duration(1 * MINUTES + 30 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Circuit_Silicon_Wafer4.get(1), GT_Utility.copyAmount(0, aStack)) @@ -358,7 +358,7 @@ public class ProcessingCrafting implements gregtech.api.interfaces.IOreRecipeReg .requiresCleanRoom() .duration(1 * MINUTES + 15 * SECONDS) .eut(TierEU.RECIPE_IV) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Circuit_Silicon_Wafer5.get(1), GT_Utility.copyAmount(0, aStack)) @@ -366,7 +366,7 @@ public class ProcessingCrafting implements gregtech.api.interfaces.IOreRecipeReg .requiresCleanRoom() .duration(60 * SECONDS) .eut(TierEU.RECIPE_LuV) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); } case "craftingLensWhite" -> { @@ -377,7 +377,7 @@ public class ProcessingCrafting implements gregtech.api.interfaces.IOreRecipeReg .itemOutputs(GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 19)) .duration(1 * MINUTES + 40 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -386,28 +386,28 @@ public class ProcessingCrafting implements gregtech.api.interfaces.IOreRecipeReg .itemOutputs(GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 19)) .duration(1 * MINUTES + 40 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.sandstone, 1, 2), GT_Utility.copyAmount(0, aStack)) .itemOutputs(new ItemStack(Blocks.sandstone, 1, 1)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.stone, 1, 0), GT_Utility.copyAmount(0, aStack)) .itemOutputs(new ItemStack(Blocks.stonebrick, 1, 3)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.quartz_block, 1, 0), GT_Utility.copyAmount(0, aStack)) .itemOutputs(new ItemStack(Blocks.quartz_block, 1, 1)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -416,7 +416,7 @@ public class ProcessingCrafting implements gregtech.api.interfaces.IOreRecipeReg .itemOutputs(GT_ModHandler.getModItem(AppliedEnergistics2.ID, "tile.BlockQuartzChiseled", 1L)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Circuit_Silicon_Wafer.get(1), GT_Utility.copyAmount(0, aStack)) @@ -424,7 +424,7 @@ public class ProcessingCrafting implements gregtech.api.interfaces.IOreRecipeReg .requiresCleanRoom() .duration(60 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Circuit_Silicon_Wafer2.get(1), GT_Utility.copyAmount(0, aStack)) @@ -432,7 +432,7 @@ public class ProcessingCrafting implements gregtech.api.interfaces.IOreRecipeReg .requiresCleanRoom() .duration(45 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Circuit_Silicon_Wafer3.get(1), GT_Utility.copyAmount(0, aStack)) @@ -440,7 +440,7 @@ public class ProcessingCrafting implements gregtech.api.interfaces.IOreRecipeReg .requiresCleanRoom() .duration(30 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Circuit_Silicon_Wafer4.get(1), GT_Utility.copyAmount(0, aStack)) @@ -448,7 +448,7 @@ public class ProcessingCrafting implements gregtech.api.interfaces.IOreRecipeReg .requiresCleanRoom() .duration(15 * SECONDS) .eut(TierEU.RECIPE_IV) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Circuit_Silicon_Wafer5.get(1), GT_Utility.copyAmount(0, aStack)) @@ -456,7 +456,7 @@ public class ProcessingCrafting implements gregtech.api.interfaces.IOreRecipeReg .requiresCleanRoom() .duration(7 * SECONDS + 10 * TICKS) .eut(TierEU.RECIPE_LuV) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrate.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrate.java index 6c20061f19..105b5c8f13 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrate.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrate.java @@ -1,7 +1,7 @@ package gregtech.loaders.oreprocessing; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sBoxinatorRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sUnboxinatorRecipes; +import static gregtech.api.recipe.RecipeMaps.packagerRecipes; +import static gregtech.api.recipe.RecipeMaps.unpackagerRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import net.minecraft.item.ItemStack; @@ -39,7 +39,7 @@ public class ProcessingCrate implements gregtech.api.interfaces.IOreRecipeRegist .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.crateGtDust, aMaterial, 1L)) .duration(5 * SECONDS) .eut(8) - .addTo(sBoxinatorRecipes); + .addTo(packagerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crateGtDust, aMaterial, 1L)) .itemOutputs( @@ -47,7 +47,7 @@ public class ProcessingCrate implements gregtech.api.interfaces.IOreRecipeRegist ItemList.Crate_Empty.get(1L)) .duration(40 * SECONDS) .eut(1) - .addTo(sUnboxinatorRecipes); + .addTo(unpackagerRecipes); } if (aSpecialRecipeReq2) GT_ModHandler.addCraftingRecipe( GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 16L), @@ -63,7 +63,7 @@ public class ProcessingCrate implements gregtech.api.interfaces.IOreRecipeRegist .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.crateGtIngot, aMaterial, 1L)) .duration(5 * SECONDS) .eut(8) - .addTo(sBoxinatorRecipes); + .addTo(packagerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crateGtIngot, aMaterial, 1L)) .itemOutputs( @@ -71,7 +71,7 @@ public class ProcessingCrate implements gregtech.api.interfaces.IOreRecipeRegist ItemList.Crate_Empty.get(1L)) .duration(40 * SECONDS) .eut(1) - .addTo(sUnboxinatorRecipes); + .addTo(unpackagerRecipes); } if (aSpecialRecipeReq2) GT_ModHandler.addCraftingRecipe( GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 16L), @@ -87,7 +87,7 @@ public class ProcessingCrate implements gregtech.api.interfaces.IOreRecipeRegist .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.crateGtGem, aMaterial, 1L)) .duration(5 * SECONDS) .eut(8) - .addTo(sBoxinatorRecipes); + .addTo(packagerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crateGtGem, aMaterial, 1L)) .itemOutputs( @@ -95,7 +95,7 @@ public class ProcessingCrate implements gregtech.api.interfaces.IOreRecipeRegist ItemList.Crate_Empty.get(1L)) .duration(40 * SECONDS) .eut(1) - .addTo(sUnboxinatorRecipes); + .addTo(unpackagerRecipes); } if (aSpecialRecipeReq2) GT_ModHandler.addCraftingRecipe( GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 16L), @@ -111,7 +111,7 @@ public class ProcessingCrate implements gregtech.api.interfaces.IOreRecipeRegist .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.crateGtPlate, aMaterial, 1L)) .duration(5 * SECONDS) .eut(8) - .addTo(sBoxinatorRecipes); + .addTo(packagerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crateGtPlate, aMaterial, 1L)) .itemOutputs( @@ -119,7 +119,7 @@ public class ProcessingCrate implements gregtech.api.interfaces.IOreRecipeRegist ItemList.Crate_Empty.get(1L)) .duration(40 * SECONDS) .eut(1) - .addTo(sUnboxinatorRecipes); + .addTo(unpackagerRecipes); } if (aSpecialRecipeReq2) GT_ModHandler.addCraftingRecipe( GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 16L), diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrop.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrop.java index a7e6b1529c..92b5ae9cda 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrop.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrop.java @@ -1,10 +1,10 @@ package gregtech.loaders.oreprocessing; import static gregtech.api.enums.Mods.IndustrialCraft2; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sBrewingRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCompressorRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sMaceratorRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sSlicerRecipes; +import static gregtech.api.recipe.RecipeMaps.brewingRecipes; +import static gregtech.api.recipe.RecipeMaps.compressorRecipes; +import static gregtech.api.recipe.RecipeMaps.maceratorRecipes; +import static gregtech.api.recipe.RecipeMaps.slicerRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; @@ -34,7 +34,7 @@ public class ProcessingCrop implements gregtech.api.interfaces.IOreRecipeRegistr .itemOutputs(ItemList.IC2_PlantballCompressed.get(1L)) .duration(15 * SECONDS) .eut(2) - .addTo(sCompressorRecipes); + .addTo(compressorRecipes); Fluid[] waterArray; @@ -54,7 +54,7 @@ public class ProcessingCrop implements gregtech.api.interfaces.IOreRecipeRegistr .fluidOutputs(new FluidStack(FluidRegistry.getFluid("potion.tea"), 750)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); } } case "cropGrape" -> { @@ -65,7 +65,7 @@ public class ProcessingCrop implements gregtech.api.interfaces.IOreRecipeRegistr .fluidOutputs(new FluidStack(FluidRegistry.getFluid("potion.grapejuice"), 750)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); } } case "cropChilipepper" -> GT_Values.RA.stdBuilder() @@ -73,27 +73,27 @@ public class ProcessingCrop implements gregtech.api.interfaces.IOreRecipeRegistr .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Chili, 1L)) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); case "cropCoffee" -> GT_Values.RA.stdBuilder() .itemInputs(aStack) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coffee, 1L)) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); case "cropPotato" -> { GT_Values.RA.stdBuilder() .itemInputs(aStack, ItemList.Shape_Slicer_Flat.get(0)) .itemOutputs(ItemList.Food_Raw_PotatoChips.get(1L)) .duration(3 * SECONDS + 4 * TICKS) .eut(4) - .addTo(sSlicerRecipes); + .addTo(slicerRecipes); GT_Values.RA.stdBuilder() .itemInputs(aStack, ItemList.Shape_Slicer_Stripes.get(0L)) .itemOutputs(ItemList.Food_Raw_Fries.get(1L)) .duration(3 * SECONDS + 4 * TICKS) .eut(4) - .addTo(sSlicerRecipes); + .addTo(slicerRecipes); for (Fluid tFluid : waterArray) { GT_Values.RA.stdBuilder() @@ -102,7 +102,7 @@ public class ProcessingCrop implements gregtech.api.interfaces.IOreRecipeRegistr .fluidOutputs(new FluidStack(FluidRegistry.getFluid("potion.potatojuice"), 750)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); } } case "cropLemon" -> { @@ -111,7 +111,7 @@ public class ProcessingCrop implements gregtech.api.interfaces.IOreRecipeRegistr .itemOutputs(ItemList.Food_Sliced_Lemon.get(4L)) .duration(3 * SECONDS + 4 * TICKS) .eut(4) - .addTo(sSlicerRecipes); + .addTo(slicerRecipes); for (Fluid tFluid : waterArray) { GT_Values.RA.stdBuilder() @@ -120,7 +120,7 @@ public class ProcessingCrop implements gregtech.api.interfaces.IOreRecipeRegistr .fluidOutputs(new FluidStack(FluidRegistry.getFluid("potion.lemonjuice"), 750)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); } GT_Values.RA.stdBuilder() @@ -129,26 +129,26 @@ public class ProcessingCrop implements gregtech.api.interfaces.IOreRecipeRegistr .fluidOutputs(new FluidStack(FluidRegistry.getFluid("potion.leninade"), 750)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); } case "cropTomato" -> GT_Values.RA.stdBuilder() .itemInputs(aStack, ItemList.Shape_Slicer_Flat.get(0)) .itemOutputs(ItemList.Food_Sliced_Tomato.get(4L)) .duration(3 * SECONDS + 4 * TICKS) .eut(4) - .addTo(sSlicerRecipes); + .addTo(slicerRecipes); case "cropCucumber" -> GT_Values.RA.stdBuilder() .itemInputs(aStack, ItemList.Shape_Slicer_Flat.get(0)) .itemOutputs(ItemList.Food_Sliced_Cucumber.get(4L)) .duration(3 * SECONDS + 4 * TICKS) .eut(4) - .addTo(sSlicerRecipes); + .addTo(slicerRecipes); case "cropOnion" -> GT_Values.RA.stdBuilder() .itemInputs(aStack, ItemList.Shape_Slicer_Flat.get(0)) .itemOutputs(ItemList.Food_Sliced_Onion.get(4L)) .duration(3 * SECONDS + 4 * TICKS) .eut(4) - .addTo(sSlicerRecipes); + .addTo(slicerRecipes); } } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrushedOre.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrushedOre.java index 2fd74622c4..a730a1849b 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrushedOre.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrushedOre.java @@ -1,9 +1,9 @@ package gregtech.loaders.oreprocessing; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sHammerRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sMaceratorRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sSifterRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes; +import static gregtech.api.recipe.RecipeMaps.hammerRecipes; +import static gregtech.api.recipe.RecipeMaps.maceratorRecipes; +import static gregtech.api.recipe.RecipeMaps.sifterRecipes; +import static gregtech.api.recipe.RecipeMaps.thermalCentrifugeRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; @@ -32,7 +32,7 @@ public class ProcessingCrushedOre implements gregtech.api.interfaces.IOreRecipeR .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L)) .duration(10 * TICKS) .eut(16) - .addTo(sHammerRecipes); + .addTo(hammerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack)) @@ -45,7 +45,7 @@ public class ProcessingCrushedOre implements gregtech.api.interfaces.IOreRecipeR .outputChances(10000, 1000) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); } case crushedPurified -> { GT_Values.RA.stdBuilder() @@ -63,7 +63,7 @@ public class ProcessingCrushedOre implements gregtech.api.interfaces.IOreRecipeR .outputChances(10000, 1111) .duration(25 * SECONDS) .eut(48) - .addTo(sThermalCentrifugeRecipes); + .addTo(thermalCentrifugeRecipes); ItemStack tGem = GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L); if (tGem == null) { @@ -84,7 +84,7 @@ public class ProcessingCrushedOre implements gregtech.api.interfaces.IOreRecipeR .outputChances(300, 1200, 4500, 1400, 2800, 3500) .duration(40 * SECONDS) .eut(16) - .addTo(sSifterRecipes); + .addTo(sifterRecipes); default -> GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack)) .itemOutputs( @@ -97,7 +97,7 @@ public class ProcessingCrushedOre implements gregtech.api.interfaces.IOreRecipeR .outputChances(100, 400, 1500, 2000, 4000, 5000) .duration(40 * SECONDS) .eut(16) - .addTo(sSifterRecipes); + .addTo(sifterRecipes); } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrystallized.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrystallized.java index cd9e3eb597..ec8fd12a74 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrystallized.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrystallized.java @@ -1,7 +1,7 @@ package gregtech.loaders.oreprocessing; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sHammerRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sMaceratorRecipes; +import static gregtech.api.recipe.RecipeMaps.hammerRecipes; +import static gregtech.api.recipe.RecipeMaps.maceratorRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; @@ -36,14 +36,14 @@ public class ProcessingCrystallized implements gregtech.api.interfaces.IOreRecip .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L)) .duration(10 * TICKS) .eut(16) - .addTo(sHammerRecipes); + .addTo(hammerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L)) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingDirty.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingDirty.java index b407cb9c9b..b3aad4e25c 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingDirty.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingDirty.java @@ -1,9 +1,9 @@ package gregtech.loaders.oreprocessing; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sChemicalBathRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sHammerRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sMaceratorRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes; +import static gregtech.api.recipe.RecipeMaps.chemicalBathRecipes; +import static gregtech.api.recipe.RecipeMaps.hammerRecipes; +import static gregtech.api.recipe.RecipeMaps.maceratorRecipes; +import static gregtech.api.recipe.RecipeMaps.thermalCentrifugeRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import net.minecraft.item.ItemStack; @@ -33,7 +33,7 @@ public class ProcessingDirty implements gregtech.api.interfaces.IOreRecipeRegist .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dustImpure, aMaterial.mMacerateInto, 1L)) .duration(10) .eut(16) - .addTo(sHammerRecipes); + .addTo(hammerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack)) @@ -50,7 +50,7 @@ public class ProcessingDirty implements gregtech.api.interfaces.IOreRecipeRegist .outputChances(10000, 1000) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_ModHandler.addOreWasherRecipe( GT_Utility.copyAmount(1, aStack), @@ -80,7 +80,7 @@ public class ProcessingDirty implements gregtech.api.interfaces.IOreRecipeRegist .outputChances(10000, 1111, 10000) .duration(25 * SECONDS) .eut(48) - .addTo(sThermalCentrifugeRecipes); + .addTo(thermalCentrifugeRecipes); addChemicalBathRecipes(aMaterial, aMaterial, aStack, aPrefix); @@ -104,7 +104,7 @@ public class ProcessingDirty implements gregtech.api.interfaces.IOreRecipeRegist .fluidInputs(Materials.Mercury.getFluid(1000L)) .duration(40 * SECONDS) .eut(8) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); } if (byproduct.contains(SubTag.WASHING_MERCURY_99_PERCENT)) { GT_Values.RA.stdBuilder() @@ -117,7 +117,7 @@ public class ProcessingDirty implements gregtech.api.interfaces.IOreRecipeRegist .fluidInputs(Materials.Mercury.getFluid(1000L)) .duration(40 * SECONDS) .eut(8) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); } if (byproduct.contains(SubTag.WASHING_SODIUMPERSULFATE)) { GT_Values.RA.stdBuilder() @@ -130,7 +130,7 @@ public class ProcessingDirty implements gregtech.api.interfaces.IOreRecipeRegist .fluidInputs(Materials.SodiumPersulfate.getFluid(100L)) .duration(40 * SECONDS) .eut(8) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); } } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingDust.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingDust.java index 2aa2d42ac1..f0f8aef8ba 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingDust.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingDust.java @@ -1,14 +1,14 @@ package gregtech.loaders.oreprocessing; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sAutoclaveRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sBlastRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sBoxinatorRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCannerRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCompressorRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sElectroMagneticSeparatorRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sElectrolyzerRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sImplosionRecipes; +import static gregtech.api.recipe.RecipeMaps.autoclaveRecipes; +import static gregtech.api.recipe.RecipeMaps.blastFurnaceRecipes; +import static gregtech.api.recipe.RecipeMaps.cannerRecipes; +import static gregtech.api.recipe.RecipeMaps.centrifugeRecipes; +import static gregtech.api.recipe.RecipeMaps.compressorRecipes; +import static gregtech.api.recipe.RecipeMaps.electroMagneticSeparatorRecipes; +import static gregtech.api.recipe.RecipeMaps.electrolyzerRecipes; +import static gregtech.api.recipe.RecipeMaps.implosionRecipes; +import static gregtech.api.recipe.RecipeMaps.packagerRecipes; import static gregtech.api.util.GT_RecipeBuilder.MINUTES; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; @@ -58,8 +58,6 @@ public class ProcessingDust implements gregtech.api.interfaces.IOreRecipeRegistr .itemInputs(GT_Utility.copyAmount(1, aStack)) .metadata(FUEL_VALUE, aMaterial.mFuelPower) .metadata(FUEL_TYPE, aMaterial.mFuelType) - .duration(0) - .eut(0) .addTo(GT_RecipeConstants.Fuel); } if ((GT_Utility.getFluidForFilledItem(GT_OreDictUnificator.get(OrePrefixes.cell, aMaterial, 1L), true) @@ -69,7 +67,7 @@ public class ProcessingDust implements gregtech.api.interfaces.IOreRecipeRegistr .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cell, aMaterial, 1L)) .duration(5 * SECONDS) .eut(1) - .addTo(sCannerRecipes); + .addTo(cannerRecipes); } if (!aMaterial.mBlastFurnaceRequired) { GT_RecipeRegistrator.registerReverseFluidSmelting(aStack, aMaterial, aPrefix.mMaterialAmount, null); @@ -104,7 +102,7 @@ public class ProcessingDust implements gregtech.api.interfaces.IOreRecipeRegistr (Math.max(aMaterial.getMass() / 40L, 1L) * aMaterial.mBlastFurnaceTemp) * TICKS) .eut(TierEU.RECIPE_MV) .metadata(COIL_HEAT, (int) aMaterial.mBlastFurnaceTemp) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); } } else { GT_ModHandler.addSmeltingRecipe(aStack, tDustStack); @@ -119,7 +117,7 @@ public class ProcessingDust implements gregtech.api.interfaces.IOreRecipeRegistr .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.block, aMaterial, 1L)) .duration(15 * SECONDS) .eut(2) - .addTo(sCompressorRecipes); + .addTo(compressorRecipes); } // This is so disgustingly bad. if (((OrePrefixes.block.isIgnored(aMaterial)) @@ -142,7 +140,7 @@ public class ProcessingDust implements gregtech.api.interfaces.IOreRecipeRegistr .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L)) .duration(15 * SECONDS) .eut(2) - .addTo(sCompressorRecipes); + .addTo(compressorRecipes); } } } @@ -219,7 +217,7 @@ public class ProcessingDust implements gregtech.api.interfaces.IOreRecipeRegistr recipeBuilder .duration(Math.max(1L, Math.abs(aMaterial.getProtons() * 2L * tItemAmount))) .eut(Math.min(4, tList.size()) * 30) - .addTo(sElectrolyzerRecipes); + .addTo(electrolyzerRecipes); } } if ((aMaterial.mExtraData & 0x2) != 0) { @@ -241,7 +239,7 @@ public class ProcessingDust implements gregtech.api.interfaces.IOreRecipeRegistr } recipeBuilder.duration(Math.max(1L, Math.abs(aMaterial.getMass() * 4L * tItemAmount))) .eut(Math.min(4, tList.size()) * 5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); } } } @@ -255,7 +253,7 @@ public class ProcessingDust implements gregtech.api.interfaces.IOreRecipeRegistr .fluidInputs(Materials.Water.getFluid(200L)) .duration(1 * MINUTES + 40 * SECONDS) .eut(24) - .addTo(sAutoclaveRecipes); + .addTo(autoclaveRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack), GT_Utility.getIntegratedCircuit(2)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L)) @@ -263,7 +261,7 @@ public class ProcessingDust implements gregtech.api.interfaces.IOreRecipeRegistr .fluidInputs(GT_ModHandler.getDistilledWater(100L)) .duration(1 * MINUTES + 15 * SECONDS) .eut(24) - .addTo(sAutoclaveRecipes); + .addTo(autoclaveRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack), GT_Utility.getIntegratedCircuit(3)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L)) @@ -271,7 +269,7 @@ public class ProcessingDust implements gregtech.api.interfaces.IOreRecipeRegistr .fluidInputs(Materials.Void.getMolten(36L)) .duration(1 * MINUTES) .eut(24) - .addTo(sAutoclaveRecipes); + .addTo(autoclaveRecipes); } switch (aMaterial.mName) { case "NULL", "Mercury", "Coal": @@ -295,7 +293,7 @@ public class ProcessingDust implements gregtech.api.interfaces.IOreRecipeRegistr GT_OreDictUnificator.get(OrePrefixes.dust, Materials.MeatCooked, 1L)); break; case "Oilsands": - sCentrifugeRecipes.addRecipe( + centrifugeRecipes.addRecipe( true, new ItemStack[] { GT_Utility.copyAmount(1, aStack) }, null, @@ -319,7 +317,7 @@ public class ProcessingDust implements gregtech.api.interfaces.IOreRecipeRegistr GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 16L)) .duration(1 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sImplosionRecipes); + .addTo(implosionRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_Utility.copyAmount(4, aStack), @@ -329,7 +327,7 @@ public class ProcessingDust implements gregtech.api.interfaces.IOreRecipeRegistr GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 16L)) .duration(1 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sImplosionRecipes); + .addTo(implosionRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(4, aStack), new ItemStack(Blocks.tnt, 32)) .itemOutputs( @@ -337,7 +335,7 @@ public class ProcessingDust implements gregtech.api.interfaces.IOreRecipeRegistr GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 16L)) .duration(1 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sImplosionRecipes); + .addTo(implosionRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(4, aStack), GT_ModHandler.getIC2Item("industrialTnt", 8)) .itemOutputs( @@ -345,7 +343,7 @@ public class ProcessingDust implements gregtech.api.interfaces.IOreRecipeRegistr GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 16L)) .duration(1 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sImplosionRecipes); + .addTo(implosionRecipes); } break; case "Opal": @@ -365,7 +363,7 @@ public class ProcessingDust implements gregtech.api.interfaces.IOreRecipeRegistr GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 12L)) .duration(1 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sImplosionRecipes); + .addTo(implosionRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_Utility.copyAmount(4, aStack), @@ -375,7 +373,7 @@ public class ProcessingDust implements gregtech.api.interfaces.IOreRecipeRegistr GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 12L)) .duration(1 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sImplosionRecipes); + .addTo(implosionRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(4, aStack), new ItemStack(Blocks.tnt, 24)) .itemOutputs( @@ -383,7 +381,7 @@ public class ProcessingDust implements gregtech.api.interfaces.IOreRecipeRegistr GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 12L)) .duration(1 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sImplosionRecipes); + .addTo(implosionRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(4, aStack), GT_ModHandler.getIC2Item("industrialTnt", 6)) .itemOutputs( @@ -391,7 +389,7 @@ public class ProcessingDust implements gregtech.api.interfaces.IOreRecipeRegistr GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 12L)) .duration(1 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sImplosionRecipes); + .addTo(implosionRecipes); } break; case "FoolsRuby": @@ -410,7 +408,7 @@ public class ProcessingDust implements gregtech.api.interfaces.IOreRecipeRegistr GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 8L)) .duration(1 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sImplosionRecipes); + .addTo(implosionRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(4, aStack), GT_ModHandler.getIC2Item("dynamite", 8, null)) .itemOutputs( @@ -418,7 +416,7 @@ public class ProcessingDust implements gregtech.api.interfaces.IOreRecipeRegistr GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 8L)) .duration(1 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sImplosionRecipes); + .addTo(implosionRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(4, aStack), new ItemStack(Blocks.tnt, 16)) .itemOutputs( @@ -426,7 +424,7 @@ public class ProcessingDust implements gregtech.api.interfaces.IOreRecipeRegistr GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 8L)) .duration(1 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sImplosionRecipes); + .addTo(implosionRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(4, aStack), GT_ModHandler.getIC2Item("industrialTnt", 4)) .itemOutputs( @@ -434,7 +432,7 @@ public class ProcessingDust implements gregtech.api.interfaces.IOreRecipeRegistr GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 8L)) .duration(1 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sImplosionRecipes); + .addTo(implosionRecipes); } } } @@ -454,7 +452,7 @@ public class ProcessingDust implements gregtech.api.interfaces.IOreRecipeRegistr .outputChances(10000, 4000, 2000) .duration(20 * SECONDS) .eut(24) - .addTo(sElectroMagneticSeparatorRecipes); + .addTo(electroMagneticSeparatorRecipes); } if (aMaterial.contains(SubTag.ELECTROMAGNETIC_SEPERATION_IRON)) { GT_Values.RA.stdBuilder() @@ -466,7 +464,7 @@ public class ProcessingDust implements gregtech.api.interfaces.IOreRecipeRegistr .outputChances(10000, 4000, 2000) .duration(20 * SECONDS) .eut(24) - .addTo(sElectroMagneticSeparatorRecipes); + .addTo(electroMagneticSeparatorRecipes); } if (aMaterial.contains(SubTag.ELECTROMAGNETIC_SEPERATION_NEODYMIUM)) { GT_Values.RA.stdBuilder() @@ -478,7 +476,7 @@ public class ProcessingDust implements gregtech.api.interfaces.IOreRecipeRegistr .outputChances(10000, 4000, 2000) .duration(20 * SECONDS) .eut(24) - .addTo(sElectroMagneticSeparatorRecipes); + .addTo(electroMagneticSeparatorRecipes); } } if (aMaterial.contains(SubTag.CRYSTALLISABLE) @@ -490,7 +488,7 @@ public class ProcessingDust implements gregtech.api.interfaces.IOreRecipeRegistr .fluidInputs(Materials.Water.getFluid(200L)) .duration(1 * MINUTES + 40 * SECONDS) .eut(24) - .addTo(sAutoclaveRecipes); + .addTo(autoclaveRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack), GT_Utility.getIntegratedCircuit(2)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L)) @@ -498,7 +496,7 @@ public class ProcessingDust implements gregtech.api.interfaces.IOreRecipeRegistr .fluidInputs(GT_ModHandler.getDistilledWater(100L)) .duration(1 * MINUTES + 15 * SECONDS) .eut(24) - .addTo(sAutoclaveRecipes); + .addTo(autoclaveRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack), GT_Utility.getIntegratedCircuit(3)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L)) @@ -506,7 +504,7 @@ public class ProcessingDust implements gregtech.api.interfaces.IOreRecipeRegistr .fluidInputs(Materials.Void.getMolten(36L)) .duration(1 * MINUTES) .eut(24) - .addTo(sAutoclaveRecipes); + .addTo(autoclaveRecipes); } ItemStack tImpureStack = GT_OreDictUnificator.get( OrePrefixes.dustTiny, @@ -529,7 +527,7 @@ public class ProcessingDust implements gregtech.api.interfaces.IOreRecipeRegistr .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L)) .duration(Math.max(1L, aMaterial.getMass())) .eut(5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); } else { FluidStack tFluid = GT_Utility.getFluidForFilledItem(tImpureStack, true); if (tFluid == null) { @@ -540,7 +538,7 @@ public class ProcessingDust implements gregtech.api.interfaces.IOreRecipeRegistr tImpureStack) .duration(Math.max(1L, aMaterial.getMass() * 72L)) .eut(5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); } else { tFluid.amount /= 10; GT_Values.RA.stdBuilder() @@ -549,7 +547,7 @@ public class ProcessingDust implements gregtech.api.interfaces.IOreRecipeRegistr .fluidOutputs(tFluid) .duration(Math.max(1L, aMaterial.getMass() * 8L)) .eut(5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); } } } else { @@ -558,7 +556,7 @@ public class ProcessingDust implements gregtech.api.interfaces.IOreRecipeRegistr .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 9L), tImpureStack) .duration(Math.max(1L, aMaterial.getMass() * 72L)) .eut(5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); } } else { GT_Values.RA.stdBuilder() @@ -566,7 +564,7 @@ public class ProcessingDust implements gregtech.api.interfaces.IOreRecipeRegistr .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 2L), tImpureStack) .duration(Math.max(1L, aMaterial.getMass() * 16L)) .eut(5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); } } else { GT_Values.RA.stdBuilder() @@ -581,7 +579,7 @@ public class ProcessingDust implements gregtech.api.interfaces.IOreRecipeRegistr .outputChances(10000, 1111) .duration(Math.max(1L, aMaterial.getMass() * 8L)) .eut(5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); } } case dustSmall -> { @@ -590,7 +588,7 @@ public class ProcessingDust implements gregtech.api.interfaces.IOreRecipeRegistr .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L)) .duration(1 * SECONDS) .eut(4) - .addTo(sBoxinatorRecipes); + .addTo(packagerRecipes); if (!aMaterial.mBlastFurnaceRequired) { GT_RecipeRegistrator.registerReverseFluidSmelting(aStack, aMaterial, aPrefix.mMaterialAmount, null); if (aMaterial.mSmeltInto.mArcSmeltInto != aMaterial) { @@ -610,7 +608,7 @@ public class ProcessingDust implements gregtech.api.interfaces.IOreRecipeRegistr .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L)) .duration(1 * SECONDS) .eut(4) - .addTo(sBoxinatorRecipes); + .addTo(packagerRecipes); if (!aMaterial.mBlastFurnaceRequired) { GT_RecipeRegistrator.registerReverseFluidSmelting(aStack, aMaterial, aPrefix.mMaterialAmount, null); if (aMaterial.mSmeltInto.mArcSmeltInto != aMaterial) { diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingDye.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingDye.java index 36c0a891a6..f3e82c0b0e 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingDye.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingDye.java @@ -1,6 +1,6 @@ package gregtech.loaders.oreprocessing; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sMixerRecipes; +import static gregtech.api.recipe.RecipeMaps.mixerRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; import static gregtech.api.util.GT_RecipeConstants.UniversalChemical; @@ -47,7 +47,7 @@ public class ProcessingDye implements IOreRecipeRegistrator { .fluidOutputs(FluidRegistry.getFluidStack(fluidName, 192)) .duration(16 * TICKS) .eut(4) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, stack), GT_Utility.getIntegratedCircuit(1)) @@ -55,7 +55,7 @@ public class ProcessingDye implements IOreRecipeRegistrator { .fluidOutputs(FluidRegistry.getFluidStack(fluidName, 216)) .duration(16 * TICKS) .eut(4) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); } public void registerAlloySmelter(ItemStack stack, Dyes dye) { diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingFoil.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingFoil.java index 58bef8b0ed..9b46710b71 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingFoil.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingFoil.java @@ -1,6 +1,6 @@ package gregtech.loaders.oreprocessing; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sBenderRecipes; +import static gregtech.api.recipe.RecipeMaps.benderRecipes; import static gregtech.api.util.GT_Utility.calculateRecipeEU; import net.minecraft.item.ItemStack; @@ -35,7 +35,7 @@ public class ProcessingFoil implements IOreRecipeRegistrator { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.foil, material, 4L)) .duration((int) Math.max(material.getMass(), 1L)) .eut(calculateRecipeEU(material, 24)) - .addTo(sBenderRecipes); + .addTo(benderRecipes); } private void registerCover(ItemStack stack, Materials material) { diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingFood.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingFood.java index a16286fdf9..e7fc25038f 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingFood.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingFood.java @@ -1,9 +1,9 @@ package gregtech.loaders.oreprocessing; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sBenderRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sMixerRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sPressRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sSlicerRecipes; +import static gregtech.api.recipe.RecipeMaps.benderRecipes; +import static gregtech.api.recipe.RecipeMaps.formingPressRecipes; +import static gregtech.api.recipe.RecipeMaps.mixerRecipes; +import static gregtech.api.recipe.RecipeMaps.slicerRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; @@ -46,7 +46,7 @@ public class ProcessingFood implements gregtech.api.interfaces.IOreRecipeRegistr .itemOutputs(ItemList.Food_Sliced_Cheese.get(4L)) .duration(3 * SECONDS + 4 * TICKS) .eut(4) - .addTo(sSlicerRecipes); + .addTo(slicerRecipes); } private void registerBenderRecipes(ItemStack stack) { @@ -55,7 +55,7 @@ public class ProcessingFood implements gregtech.api.interfaces.IOreRecipeRegistr .itemOutputs(ItemList.Food_Flat_Dough.get(1L)) .duration(16 * TICKS) .eut(4) - .addTo(sBenderRecipes); + .addTo(benderRecipes); } private void registerMixerRecipes(ItemStack stack) { @@ -64,21 +64,21 @@ public class ProcessingFood implements gregtech.api.interfaces.IOreRecipeRegistr .itemOutputs(ItemList.Food_Dough_Sugar.get(2L)) .duration(1 * SECONDS + 12 * TICKS) .eut(8) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs(stack, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Cocoa, 1L)) .itemOutputs(ItemList.Food_Dough_Chocolate.get(2L)) .duration(1 * SECONDS + 12 * TICKS) .eut(8) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs(stack, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Chocolate, 1L)) .itemOutputs(ItemList.Food_Dough_Chocolate.get(2L)) .duration(1 * SECONDS + 12 * TICKS) .eut(8) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); } private void registerFormingPressRecipes(ItemStack stack) { @@ -88,20 +88,20 @@ public class ProcessingFood implements gregtech.api.interfaces.IOreRecipeRegistr .itemOutputs(ItemList.Food_Raw_Bun.get(1L)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sPressRecipes); + .addTo(formingPressRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(2, stack), ItemList.Shape_Mold_Bread.get(0L)) .itemOutputs(ItemList.Food_Raw_Bread.get(1L)) .duration(12 * SECONDS + 16 * TICKS) .eut(4) - .addTo(sPressRecipes); + .addTo(formingPressRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(3, stack), ItemList.Shape_Mold_Baguette.get(0L)) .itemOutputs(ItemList.Food_Raw_Baguette.get(1L)) .duration(19 * SECONDS + 4 * TICKS) .eut(4) - .addTo(sPressRecipes); + .addTo(formingPressRecipes); } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingGear.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingGear.java index 1dbcd05b13..aa973cddfe 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingGear.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingGear.java @@ -1,6 +1,6 @@ package gregtech.loaders.oreprocessing; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sFluidSolidficationRecipes; +import static gregtech.api.recipe.RecipeMaps.fluidSolidifierRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; import static gregtech.api.util.GT_Utility.calculateRecipeEU; @@ -40,7 +40,7 @@ public class ProcessingGear implements gregtech.api.interfaces.IOreRecipeRegistr .fluidInputs(aMaterial.getMolten(576L)) .duration(6 * SECONDS + 8 * TICKS) .eut(calculateRecipeEU(aMaterial, 8)) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); } } if (aMaterial.mUnificatable && (aMaterial.mMaterialInto == aMaterial) @@ -77,7 +77,7 @@ public class ProcessingGear implements gregtech.api.interfaces.IOreRecipeRegistr .fluidInputs(aMaterial.getMolten(144L)) .duration(16 * TICKS) .eut(calculateRecipeEU(aMaterial, 8)) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); } } if (aMaterial.mUnificatable && (aMaterial.mMaterialInto == aMaterial) diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingGem.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingGem.java index 531196f661..0efa58a3c7 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingGem.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingGem.java @@ -1,13 +1,13 @@ package gregtech.loaders.oreprocessing; import static gregtech.api.enums.Mods.AppliedEnergistics2; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sBenderRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCompressorRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sElectrolyzerRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sHammerRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sImplosionRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sLaserEngraverRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sLatheRecipes; +import static gregtech.api.recipe.RecipeMaps.benderRecipes; +import static gregtech.api.recipe.RecipeMaps.compressorRecipes; +import static gregtech.api.recipe.RecipeMaps.electrolyzerRecipes; +import static gregtech.api.recipe.RecipeMaps.hammerRecipes; +import static gregtech.api.recipe.RecipeMaps.implosionRecipes; +import static gregtech.api.recipe.RecipeMaps.laserEngraverRecipes; +import static gregtech.api.recipe.RecipeMaps.latheRecipes; import static gregtech.api.util.GT_RecipeBuilder.MINUTES; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; @@ -63,8 +63,6 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra .itemInputs(GT_Utility.copyAmount(1, aStack)) .metadata(FUEL_VALUE, aMaterial.mFuelPower * 2) .metadata(FUEL_TYPE, aMaterial.mFuelType) - .duration(0) - .eut(0) .addTo(GT_RecipeConstants.Fuel); } @@ -78,7 +76,7 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.block, aMaterial, 1L)) .duration(15 * SECONDS) .eut(2) - .addTo(sCompressorRecipes); + .addTo(compressorRecipes); } } @@ -98,7 +96,7 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gemFlawed, aMaterial, 2L)) .duration(3 * SECONDS + 4 * TICKS) .eut(16) - .addTo(sHammerRecipes); + .addTo(hammerRecipes); } } } else { @@ -112,7 +110,7 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L)) .duration(Math.max(aMaterialMass, 1L)) .eut(calculateRecipeEU(aMaterial, 16)) - .addTo(sHammerRecipes); + .addTo(hammerRecipes); } } @@ -125,7 +123,7 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L)) .duration((int) Math.max(aMaterialMass * 2L, 1L)) .eut(calculateRecipeEU(aMaterial, 24)) - .addTo(sBenderRecipes); + .addTo(benderRecipes); } if (GT_OreDictUnificator.get(OrePrefixes.plateDouble, aMaterial, 1L) != null) { @@ -135,7 +133,7 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateDouble, aMaterial, 1L)) .duration(Math.max(aMaterialMass * 2L, 1L)) .eut(calculateRecipeEU(aMaterial, 96)) - .addTo(sBenderRecipes); + .addTo(benderRecipes); } if (GT_OreDictUnificator.get(OrePrefixes.plateTriple, aMaterial, 1L) != null) { @@ -145,7 +143,7 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateTriple, aMaterial, 1L)) .duration(Math.max(aMaterialMass * 3L, 1L)) .eut(calculateRecipeEU(aMaterial, 96)) - .addTo(sBenderRecipes); + .addTo(benderRecipes); } if (GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, aMaterial, 1L) != null) { @@ -155,7 +153,7 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, aMaterial, 1L)) .duration(Math.max(aMaterialMass * 4L, 1L)) .eut(calculateRecipeEU(aMaterial, 96)) - .addTo(sBenderRecipes); + .addTo(benderRecipes); } if (GT_OreDictUnificator.get(OrePrefixes.plateQuintuple, aMaterial, 1L) != null) { @@ -165,7 +163,7 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateQuintuple, aMaterial, 1L)) .duration(Math.max(aMaterialMass * 5L, 1L)) .eut(calculateRecipeEU(aMaterial, 96)) - .addTo(sBenderRecipes); + .addTo(benderRecipes); } if (GT_OreDictUnificator.get(OrePrefixes.plateDense, aMaterial, 1L) != null) { @@ -175,7 +173,7 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateDense, aMaterial, 1L)) .duration(Math.max(aMaterialMass * 9L, 1L)) .eut(calculateRecipeEU(aMaterial, 96)) - .addTo(sBenderRecipes); + .addTo(benderRecipes); } } } @@ -191,7 +189,7 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra GT_OreDictUnificator.get(OrePrefixes.dustSmall, aMaterial, 2L)) .duration(((int) Math.max(aMaterialMass, 1L)) * TICKS) .eut(calculateRecipeEU(aMaterial, 16)) - .addTo(sLatheRecipes); + .addTo(latheRecipes); } } } else { @@ -206,7 +204,7 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)) .duration(1 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sImplosionRecipes); + .addTo(implosionRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_Utility.copyAmount(3, aStack), @@ -216,7 +214,7 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)) .duration(1 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sImplosionRecipes); + .addTo(implosionRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(3, aStack), new ItemStack(Blocks.tnt, 8)) .itemOutputs( @@ -224,7 +222,7 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)) .duration(1 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sImplosionRecipes); + .addTo(implosionRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_Utility.copyAmount(3, aStack), @@ -234,7 +232,7 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)) .duration(1 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sImplosionRecipes); + .addTo(implosionRecipes); } } @@ -284,7 +282,7 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 1)) .duration(100 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sElectrolyzerRecipes); + .addTo(electrolyzerRecipes); } } @@ -300,7 +298,7 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gemFlawless, aMaterial, 1L)) .duration(60 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); } } @@ -313,8 +311,6 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra .itemInputs(GT_Utility.copyAmount(1, aStack)) .metadata(FUEL_VALUE, aMaterial.mFuelPower / 2) .metadata(FUEL_TYPE, aMaterial.mFuelType) - .duration(0) - .eut(0) .addTo(GT_RecipeConstants.Fuel); } @@ -329,7 +325,7 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra GT_OreDictUnificator.get(OrePrefixes.dustTiny, aMaterial, 1L)) .duration(((int) Math.max(aMaterialMass, 1L)) * TICKS) .eut(8) - .addTo(sLatheRecipes); + .addTo(latheRecipes); } if (aMaterial.mUnificatable && (aMaterial.mMaterialInto == aMaterial)) { @@ -343,7 +339,7 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)) .duration(1 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sImplosionRecipes); + .addTo(implosionRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_Utility.copyAmount(3, aStack), @@ -353,7 +349,7 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)) .duration(1 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sImplosionRecipes); + .addTo(implosionRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(3, aStack), new ItemStack(Blocks.tnt, 8)) .itemOutputs( @@ -361,7 +357,7 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)) .duration(1 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sImplosionRecipes); + .addTo(implosionRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_Utility.copyAmount(3, aStack), @@ -371,7 +367,7 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)) .duration(1 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sImplosionRecipes); + .addTo(implosionRecipes); } } @@ -398,7 +394,7 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gemFlawed, aMaterial, 1L)) .duration(30 * SECONDS) .eut(30) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); } } @@ -409,8 +405,6 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra .itemInputs(GT_Utility.copyAmount(1, aStack)) .metadata(FUEL_VALUE, aMaterial.mFuelPower * 8) .metadata(FUEL_TYPE, aMaterial.mFuelType) - .duration(0) - .eut(0) .addTo(GT_RecipeConstants.Fuel); } @@ -435,7 +429,7 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gemFlawless, aMaterial, 2L)) .duration(3 * SECONDS + 4 * TICKS) .eut(16) - .addTo(sHammerRecipes); + .addTo(hammerRecipes); } } case gemFlawed -> { @@ -445,8 +439,6 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra .itemInputs(GT_Utility.copyAmount(1, aStack)) .metadata(FUEL_VALUE, aMaterial.mFuelPower) .metadata(FUEL_TYPE, aMaterial.mFuelType) - .duration(0) - .eut(0) .addTo(GT_RecipeConstants.Fuel); } @@ -461,7 +453,7 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra GT_OreDictUnificator.get(OrePrefixes.dustSmall, aMaterial, 1L)) .duration(((int) Math.max(aMaterialMass, 1L)) * TICKS) .eut(12) - .addTo(sLatheRecipes); + .addTo(latheRecipes); } if (aMaterial.mUnificatable && (aMaterial.mMaterialInto == aMaterial)) { @@ -475,7 +467,7 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)) .duration(1 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sImplosionRecipes); + .addTo(implosionRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_Utility.copyAmount(3, aStack), @@ -485,7 +477,7 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)) .duration(1 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sImplosionRecipes); + .addTo(implosionRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(3, aStack), new ItemStack(Blocks.tnt, 8)) .itemOutputs( @@ -493,7 +485,7 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)) .duration(1 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sImplosionRecipes); + .addTo(implosionRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_Utility.copyAmount(3, aStack), @@ -503,7 +495,7 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)) .duration(1 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sImplosionRecipes); + .addTo(implosionRecipes); } } @@ -527,7 +519,7 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gemChipped, aMaterial, 2L)) .duration(3 * SECONDS + 4 * TICKS) .eut(16) - .addTo(sHammerRecipes); + .addTo(hammerRecipes); for (ItemStack is : OreDictionary.getOres("craftingLens" + aMaterial.mColor.mName.replace(" ", ""))) { // Engraver @@ -538,7 +530,7 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L)) .duration(30 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); } } @@ -550,8 +542,6 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra .itemInputs(GT_Utility.copyAmount(1, aStack)) .metadata(FUEL_VALUE, aMaterial.mFuelPower * 4) .metadata(FUEL_TYPE, aMaterial.mFuelType) - .duration(0) - .eut(0) .addTo(GT_RecipeConstants.Fuel); } @@ -568,7 +558,7 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra aPrefix.mMaterialAmount - OrePrefixes.stickLong.mMaterialAmount)) .duration(((int) Math.max(aMaterialMass * 5L, 1L)) * TICKS) .eut(16) - .addTo(sLatheRecipes); + .addTo(latheRecipes); } if (aMaterial.mUnificatable && (aMaterial.mMaterialInto == aMaterial)) { @@ -582,7 +572,7 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)) .duration(1 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sImplosionRecipes); + .addTo(implosionRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_Utility.copyAmount(3, aStack), @@ -592,7 +582,7 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)) .duration(1 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sImplosionRecipes); + .addTo(implosionRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(3, aStack), new ItemStack(Blocks.tnt, 8)) .itemOutputs( @@ -600,7 +590,7 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)) .duration(1 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sImplosionRecipes); + .addTo(implosionRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_Utility.copyAmount(3, aStack), @@ -610,7 +600,7 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)) .duration(1 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sImplosionRecipes); + .addTo(implosionRecipes); } } @@ -634,7 +624,7 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 2L)) .duration(3 * SECONDS + 4 * TICKS) .eut(16) - .addTo(sHammerRecipes); + .addTo(hammerRecipes); for (ItemStack is : OreDictionary.getOres("craftingLens" + aMaterial.mColor.mName.replace(" ", ""))) { // Engraver @@ -644,7 +634,7 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gemExquisite, aMaterial, 1L)) .duration(2 * MINUTES) .eut(2000) - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); } } default -> {} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingIngot.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingIngot.java index 3c54792eb5..3f7c442001 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingIngot.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingIngot.java @@ -1,9 +1,9 @@ package gregtech.loaders.oreprocessing; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sBenderRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sFluidSolidficationRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sHammerRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sVacuumRecipes; +import static gregtech.api.recipe.RecipeMaps.benderRecipes; +import static gregtech.api.recipe.RecipeMaps.fluidSolidifierRecipes; +import static gregtech.api.recipe.RecipeMaps.hammerRecipes; +import static gregtech.api.recipe.RecipeMaps.vacuumFreezerRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; import static gregtech.api.util.GT_RecipeConstants.FUEL_TYPE; @@ -57,8 +57,6 @@ public class ProcessingIngot implements gregtech.api.interfaces.IOreRecipeRegist .itemInputs(GT_Utility.copyAmount(1, aStack)) .metadata(FUEL_VALUE, aMaterial.mFuelPower) .metadata(FUEL_TYPE, aMaterial.mFuelType) - .duration(0) - .eut(0) .addTo(GT_RecipeConstants.Fuel); } if (aMaterial.mStandardMoltenFluid != null @@ -71,7 +69,7 @@ public class ProcessingIngot implements gregtech.api.interfaces.IOreRecipeRegist .fluidInputs(aMaterial.getMolten(144L)) .duration(1 * SECONDS + 12 * TICKS) .eut(calculateRecipeEU(aMaterial, 8)) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); } // Reverse recipes { @@ -111,7 +109,7 @@ public class ProcessingIngot implements gregtech.api.interfaces.IOreRecipeRegist .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 2L)) .duration(Math.max(aMaterialMass, 1L)) .eut(calculateRecipeEU(aMaterial, 16)) - .addTo(sHammerRecipes); + .addTo(hammerRecipes); } // Bender recipes @@ -122,7 +120,7 @@ public class ProcessingIngot implements gregtech.api.interfaces.IOreRecipeRegist .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L)) .duration(Math.max(aMaterialMass, 1L)) .eut(calculateRecipeEU(aMaterial, 24)) - .addTo(sBenderRecipes); + .addTo(benderRecipes); } if (GT_OreDictUnificator.get(OrePrefixes.plateDouble, aMaterial, 1L) != null) { @@ -131,7 +129,7 @@ public class ProcessingIngot implements gregtech.api.interfaces.IOreRecipeRegist .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateDouble, aMaterial, 1L)) .duration(Math.max(aMaterialMass * 2L, 1L)) .eut(calculateRecipeEU(aMaterial, 96)) - .addTo(sBenderRecipes); + .addTo(benderRecipes); } if (GT_OreDictUnificator.get(OrePrefixes.plateTriple, aMaterial, 1L) != null) { @@ -140,7 +138,7 @@ public class ProcessingIngot implements gregtech.api.interfaces.IOreRecipeRegist .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateTriple, aMaterial, 1L)) .duration(Math.max(aMaterialMass * 3L, 1L)) .eut(calculateRecipeEU(aMaterial, 96)) - .addTo(sBenderRecipes); + .addTo(benderRecipes); } if (GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, aMaterial, 1L) != null) { @@ -149,7 +147,7 @@ public class ProcessingIngot implements gregtech.api.interfaces.IOreRecipeRegist .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, aMaterial, 1L)) .duration(Math.max(aMaterialMass * 4L, 1L)) .eut(calculateRecipeEU(aMaterial, 96)) - .addTo(sBenderRecipes); + .addTo(benderRecipes); } if (GT_OreDictUnificator.get(OrePrefixes.plateQuintuple, aMaterial, 1L) != null) { @@ -158,7 +156,7 @@ public class ProcessingIngot implements gregtech.api.interfaces.IOreRecipeRegist .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateQuintuple, aMaterial, 1L)) .duration(Math.max(aMaterialMass * 5L, 1L)) .eut(calculateRecipeEU(aMaterial, 96)) - .addTo(sBenderRecipes); + .addTo(benderRecipes); } if (GT_OreDictUnificator.get(OrePrefixes.plateDense, aMaterial, 1L) != null) { @@ -167,7 +165,7 @@ public class ProcessingIngot implements gregtech.api.interfaces.IOreRecipeRegist .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateDense, aMaterial, 1L)) .duration(Math.max(aMaterialMass * 9L, 1L)) .eut(calculateRecipeEU(aMaterial, 96)) - .addTo(sBenderRecipes); + .addTo(benderRecipes); } if (GT_OreDictUnificator.get(OrePrefixes.foil, aMaterial, 1L) != null) { @@ -176,7 +174,7 @@ public class ProcessingIngot implements gregtech.api.interfaces.IOreRecipeRegist .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.foil, aMaterial, 4L)) .duration(Math.max(aMaterialMass * 2L, 1L)) .eut(calculateRecipeEU(aMaterial, 24)) - .addTo(sBenderRecipes); + .addTo(benderRecipes); } } } @@ -190,14 +188,14 @@ public class ProcessingIngot implements gregtech.api.interfaces.IOreRecipeRegist .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateDouble, aMaterial, 1L)) .duration(Math.max(aMaterialMass, 1L)) .eut(calculateRecipeEU(aMaterial, 96)) - .addTo(sBenderRecipes); + .addTo(benderRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(2, aStack), GT_Utility.getIntegratedCircuit(2)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, aMaterial, 1L)) .duration(Math.max(aMaterialMass * 2L, 1L)) .eut(calculateRecipeEU(aMaterial, 96)) - .addTo(sBenderRecipes); + .addTo(benderRecipes); } // Enable crafting with hammer if tier is < IV. @@ -220,14 +218,14 @@ public class ProcessingIngot implements gregtech.api.interfaces.IOreRecipeRegist .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateTriple, aMaterial, 1L)) .duration(Math.max(aMaterialMass, 1L)) .eut(calculateRecipeEU(aMaterial, 96)) - .addTo(sBenderRecipes); + .addTo(benderRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(3, aStack), GT_Utility.getIntegratedCircuit(3)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateDense, aMaterial, 1L)) .duration(Math.max(aMaterialMass * 3L, 1L)) .eut(calculateRecipeEU(aMaterial, 96)) - .addTo(sBenderRecipes); + .addTo(benderRecipes); } if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV && aSpecialRecipeReq @@ -250,7 +248,7 @@ public class ProcessingIngot implements gregtech.api.interfaces.IOreRecipeRegist .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, aMaterial, 1L)) .duration(Math.max(aMaterialMass, 1L)) .eut(calculateRecipeEU(aMaterial, 96)) - .addTo(sBenderRecipes); + .addTo(benderRecipes); } // If tier < IV add manual crafting. @@ -274,7 +272,7 @@ public class ProcessingIngot implements gregtech.api.interfaces.IOreRecipeRegist .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateQuintuple, aMaterial, 1L)) .duration(Math.max(aMaterialMass, 1L)) .eut(calculateRecipeEU(aMaterial, 96)) - .addTo(sBenderRecipes); + .addTo(benderRecipes); } // Crafting recipes @@ -298,7 +296,7 @@ public class ProcessingIngot implements gregtech.api.interfaces.IOreRecipeRegist .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L)) .duration(((int) Math.max(aMaterialMass * 3L, 1L)) * TICKS) .eut(TierEU.RECIPE_MV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); } } default -> {} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingLens.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingLens.java index 6b8d1cd67d..c3f73f7966 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingLens.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingLens.java @@ -1,7 +1,7 @@ package gregtech.loaders.oreprocessing; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCompressorRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sLatheRecipes; +import static gregtech.api.recipe.RecipeMaps.compressorRecipes; +import static gregtech.api.recipe.RecipeMaps.latheRecipes; import static gregtech.api.util.GT_RecipeBuilder.MINUTES; import net.minecraft.item.ItemStack; @@ -36,7 +36,7 @@ public class ProcessingLens implements gregtech.api.interfaces.IOreRecipeRegistr GT_OreDictUnificator.get(OrePrefixes.dustSmall, aMaterial, 1L)) .duration(1 * MINUTES) .eut(TierEU.RECIPE_LV) - .addTo(sLatheRecipes); + .addTo(latheRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.gemExquisite, aMaterial, 1L)) @@ -45,7 +45,7 @@ public class ProcessingLens implements gregtech.api.interfaces.IOreRecipeRegistr GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L)) .duration(2 * MINUTES) .eut(16) - .addTo(sLatheRecipes); + .addTo(latheRecipes); } case "ChromaticGlass" -> { GT_Values.RA.stdBuilder() @@ -53,7 +53,7 @@ public class ProcessingLens implements gregtech.api.interfaces.IOreRecipeRegistr .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.lens, aMaterial, 1L)) .duration(10 * MINUTES) .eut(TierEU.RECIPE_UHV) - .addTo(sCompressorRecipes); + .addTo(compressorRecipes); } default -> { if (GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L) != null) { @@ -68,7 +68,7 @@ public class ProcessingLens implements gregtech.api.interfaces.IOreRecipeRegistr } recipeBuilder.duration(1 * MINUTES) .eut(TierEU.RECIPE_MV) - .addTo(sLatheRecipes); + .addTo(latheRecipes); } if (GT_OreDictUnificator.get(OrePrefixes.gemExquisite, aMaterial, 1L) != null) { GT_RecipeBuilder recipeBuilder = GT_Values.RA.stdBuilder(); @@ -82,7 +82,7 @@ public class ProcessingLens implements gregtech.api.interfaces.IOreRecipeRegistr } recipeBuilder.duration(2 * MINUTES) .eut(TierEU.RECIPE_LV) - .addTo(sLatheRecipes); + .addTo(latheRecipes); } final ITexture lensCoverTexture = TextureFactory .of(Textures.BlockIcons.OVERLAY_LENS, aMaterial.mRGBa, false); diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingLog.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingLog.java index 2010a39f7c..7d36af7de3 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingLog.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingLog.java @@ -1,14 +1,14 @@ package gregtech.loaders.oreprocessing; import static gregtech.api.enums.Mods.Railcraft; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sAssemblerRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sChemicalBathRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCutterRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sExtractorRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sLatheRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sMaceratorRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sPyrolyseRecipes; +import static gregtech.api.recipe.RecipeMaps.assemblerRecipes; +import static gregtech.api.recipe.RecipeMaps.centrifugeRecipes; +import static gregtech.api.recipe.RecipeMaps.chemicalBathRecipes; +import static gregtech.api.recipe.RecipeMaps.cutterRecipes; +import static gregtech.api.recipe.RecipeMaps.extractorRecipes; +import static gregtech.api.recipe.RecipeMaps.latheRecipes; +import static gregtech.api.recipe.RecipeMaps.maceratorRecipes; +import static gregtech.api.recipe.RecipeMaps.pyrolyseRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; @@ -48,14 +48,14 @@ public class ProcessingLog implements gregtech.api.interfaces.IOreRecipeRegistra .fluidOutputs(Materials.Methane.getGas(60L)) .duration(10 * SECONDS) .eut(20) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.RawRubber, 1L)) .duration(15 * SECONDS) .eut(2) - .addTo(sExtractorRecipes); + .addTo(extractorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack)) @@ -63,14 +63,14 @@ public class ProcessingLog implements gregtech.api.interfaces.IOreRecipeRegistra .outputChances(10000, 3300) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); } else { GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack), GT_Utility.getIntegratedCircuit(1)) .fluidOutputs(Materials.Methane.getGas(60L)) .duration(10 * SECONDS) .eut(20) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack)) @@ -80,7 +80,7 @@ public class ProcessingLog implements gregtech.api.interfaces.IOreRecipeRegistra .outputChances(10000, 8000) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); } GT_ModHandler.addCraftingRecipe( @@ -96,7 +96,7 @@ public class ProcessingLog implements gregtech.api.interfaces.IOreRecipeRegistra GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 2L)) .duration(8 * SECONDS) .eut(7) - .addTo(sLatheRecipes); + .addTo(latheRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack), GT_Utility.getIntegratedCircuit(2)) @@ -104,7 +104,7 @@ public class ProcessingLog implements gregtech.api.interfaces.IOreRecipeRegistra .fluidInputs(Materials.SeedOil.getFluid(50L)) .duration(16 * TICKS) .eut(7) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(8, aStack), GT_Utility.getIntegratedCircuit(8)) @@ -112,7 +112,7 @@ public class ProcessingLog implements gregtech.api.interfaces.IOreRecipeRegistra .fluidInputs(Materials.SeedOil.getFluid(250L)) .duration(3 * SECONDS + 4 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack)) @@ -120,7 +120,7 @@ public class ProcessingLog implements gregtech.api.interfaces.IOreRecipeRegistra .fluidInputs(Materials.Creosote.getFluid(750L)) .duration(16 * TICKS) .eut(TierEU.ULV) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); short aMeta = (short) aStack.getItemDamage(); @@ -161,7 +161,7 @@ public class ProcessingLog implements gregtech.api.interfaces.IOreRecipeRegistra .fluidInputs(Materials.Lubricant.getFluid(1L)) .duration(10 * SECONDS) .eut(8) - .addTo(sCutterRecipes); + .addTo(cutterRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(aStack.getItem(), 1, i)) .itemOutputs( @@ -172,7 +172,7 @@ public class ProcessingLog implements gregtech.api.interfaces.IOreRecipeRegistra .fluidInputs(Materials.Water.getFluid(Math.min(1000, 200 * 8 / 320))) .duration(20 * SECONDS) .eut(8) - .addTo(sCutterRecipes); + .addTo(cutterRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(aStack.getItem(), 1, i)) .itemOutputs( @@ -183,7 +183,7 @@ public class ProcessingLog implements gregtech.api.interfaces.IOreRecipeRegistra .fluidInputs(GT_ModHandler.getDistilledWater(3)) .duration(20 * SECONDS) .eut(8) - .addTo(sCutterRecipes); + .addTo(cutterRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(aStack.getItem(), 1, i)) .itemOutputs( @@ -194,7 +194,7 @@ public class ProcessingLog implements gregtech.api.interfaces.IOreRecipeRegistra .fluidInputs(Materials.Lubricant.getFluid(1)) .duration(10 * SECONDS) .eut(8) - .addTo(sCutterRecipes); + .addTo(cutterRecipes); GT_ModHandler.addSawmillRecipe( new ItemStack(aStack.getItem(), 1, i), tPlanks, @@ -237,7 +237,7 @@ public class ProcessingLog implements gregtech.api.interfaces.IOreRecipeRegistra .fluidInputs(Materials.Lubricant.getFluid(1L)) .duration(10 * SECONDS) .eut(8) - .addTo(sCutterRecipes); + .addTo(cutterRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack)) .itemOutputs( @@ -248,7 +248,7 @@ public class ProcessingLog implements gregtech.api.interfaces.IOreRecipeRegistra .fluidInputs(Materials.Water.getFluid(Math.min(1000, 200 * 8 / 320))) .duration(20 * SECONDS) .eut(8) - .addTo(sCutterRecipes); + .addTo(cutterRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack)) .itemOutputs( @@ -259,7 +259,7 @@ public class ProcessingLog implements gregtech.api.interfaces.IOreRecipeRegistra .fluidInputs(GT_ModHandler.getDistilledWater(3)) .duration(20 * SECONDS) .eut(8) - .addTo(sCutterRecipes); + .addTo(cutterRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack)) .itemOutputs( @@ -270,7 +270,7 @@ public class ProcessingLog implements gregtech.api.interfaces.IOreRecipeRegistra .fluidInputs(Materials.Lubricant.getFluid(1)) .duration(10 * SECONDS) .eut(8) - .addTo(sCutterRecipes); + .addTo(cutterRecipes); GT_ModHandler.addSawmillRecipe( GT_Utility.copyAmount(1, aStack), tPlanks, @@ -306,7 +306,7 @@ public class ProcessingLog implements gregtech.api.interfaces.IOreRecipeRegistra .duration(32 * SECONDS) .eut(64) .noOptimize() - .addTo(sPyrolyseRecipes); + .addTo(pyrolyseRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(16, logStack), GT_Utility.getIntegratedCircuit(2)) .itemOutputs(Materials.Charcoal.getGems(20)) @@ -315,7 +315,7 @@ public class ProcessingLog implements gregtech.api.interfaces.IOreRecipeRegistra .duration(16 * SECONDS) .eut(96) .noOptimize() - .addTo(sPyrolyseRecipes); + .addTo(pyrolyseRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(16, logStack), GT_Utility.getIntegratedCircuit(3)) .itemOutputs(Materials.Charcoal.getGems(20)) @@ -323,7 +323,7 @@ public class ProcessingLog implements gregtech.api.interfaces.IOreRecipeRegistra .duration(32 * SECONDS) .eut(64) .noOptimize() - .addTo(sPyrolyseRecipes); + .addTo(pyrolyseRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(16, logStack), GT_Utility.getIntegratedCircuit(4)) .itemOutputs(Materials.Charcoal.getGems(20)) @@ -332,7 +332,7 @@ public class ProcessingLog implements gregtech.api.interfaces.IOreRecipeRegistra .duration(16 * SECONDS) .eut(96) .noOptimize() - .addTo(sPyrolyseRecipes); + .addTo(pyrolyseRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(16, logStack), GT_Utility.getIntegratedCircuit(5)) .itemOutputs(Materials.Charcoal.getGems(20)) @@ -340,7 +340,7 @@ public class ProcessingLog implements gregtech.api.interfaces.IOreRecipeRegistra .duration(32 * SECONDS) .eut(64) .noOptimize() - .addTo(sPyrolyseRecipes); + .addTo(pyrolyseRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(16, logStack), GT_Utility.getIntegratedCircuit(6)) .itemOutputs(Materials.Charcoal.getGems(20)) @@ -349,7 +349,7 @@ public class ProcessingLog implements gregtech.api.interfaces.IOreRecipeRegistra .duration(16 * SECONDS) .eut(96) .noOptimize() - .addTo(sPyrolyseRecipes); + .addTo(pyrolyseRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(16, logStack), GT_Utility.getIntegratedCircuit(7)) .itemOutputs(Materials.Charcoal.getGems(20)) @@ -357,7 +357,7 @@ public class ProcessingLog implements gregtech.api.interfaces.IOreRecipeRegistra .duration(32 * SECONDS) .eut(64) .noOptimize() - .addTo(sPyrolyseRecipes); + .addTo(pyrolyseRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(16, logStack), GT_Utility.getIntegratedCircuit(8)) .itemOutputs(Materials.Charcoal.getGems(20)) @@ -366,7 +366,7 @@ public class ProcessingLog implements gregtech.api.interfaces.IOreRecipeRegistra .duration(16 * SECONDS) .eut(96) .noOptimize() - .addTo(sPyrolyseRecipes); + .addTo(pyrolyseRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(16, logStack), GT_Utility.getIntegratedCircuit(9)) .itemOutputs(Materials.Charcoal.getGems(20)) @@ -374,7 +374,7 @@ public class ProcessingLog implements gregtech.api.interfaces.IOreRecipeRegistra .duration(32 * SECONDS) .eut(64) .noOptimize() - .addTo(sPyrolyseRecipes); + .addTo(pyrolyseRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(16, logStack), GT_Utility.getIntegratedCircuit(10)) .itemOutputs(Materials.Charcoal.getGems(20)) @@ -383,7 +383,7 @@ public class ProcessingLog implements gregtech.api.interfaces.IOreRecipeRegistra .duration(16 * SECONDS) .eut(96) .noOptimize() - .addTo(sPyrolyseRecipes); + .addTo(pyrolyseRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(16, logStack), GT_Utility.getIntegratedCircuit(11)) .itemOutputs(Materials.Ash.getDust(4)) @@ -391,6 +391,6 @@ public class ProcessingLog implements gregtech.api.interfaces.IOreRecipeRegistra .duration(16 * SECONDS) .eut(192) .noOptimize() - .addTo(sPyrolyseRecipes); + .addTo(pyrolyseRecipes); } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingNugget.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingNugget.java index 59559d3554..380d42f360 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingNugget.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingNugget.java @@ -1,7 +1,7 @@ package gregtech.loaders.oreprocessing; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sAlloySmelterRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sFluidSolidficationRecipes; +import static gregtech.api.recipe.RecipeMaps.alloySmelterRecipes; +import static gregtech.api.recipe.RecipeMaps.fluidSolidifierRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; import static gregtech.api.util.GT_Utility.calculateRecipeEU; @@ -14,6 +14,7 @@ import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.SubTag; import gregtech.api.enums.TierEU; +import gregtech.api.recipe.RecipeCategories; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_RecipeRegistrator; @@ -36,7 +37,7 @@ public class ProcessingNugget implements gregtech.api.interfaces.IOreRecipeRegis .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial.mSmeltInto, 1L)) .duration(10 * SECONDS) .eut(calculateRecipeEU(aMaterial, 2)) - .addTo(sAlloySmelterRecipes); + .addTo(alloySmelterRecipes); } if ((!aMaterial.contains(SubTag.SMELTING_TO_GEM)) @@ -46,7 +47,8 @@ public class ProcessingNugget implements gregtech.api.interfaces.IOreRecipeRegis .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial.mSmeltInto, 1L)) .duration(10 * SECONDS) .eut(calculateRecipeEU(aMaterial, 2)) - .addTo(sAlloySmelterRecipes); + .recipeCategory(RecipeCategories.alloySmelterMolding) + .addTo(alloySmelterRecipes); } if (aMaterial.mStandardMoltenFluid != null) { @@ -57,7 +59,7 @@ public class ProcessingNugget implements gregtech.api.interfaces.IOreRecipeRegis .fluidInputs(aMaterial.getMolten(16L)) .duration(16 * TICKS) .eut(calculateRecipeEU(aMaterial, 4)) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); } } @@ -73,7 +75,8 @@ public class ProcessingNugget implements gregtech.api.interfaces.IOreRecipeRegis .itemOutputs(GT_Utility.copyAmount(9, aStack)) .duration(5 * SECONDS) .eut(calculateRecipeEU(aMaterial, 1)) - .addTo(sAlloySmelterRecipes); + .recipeCategory(RecipeCategories.alloySmelterMolding) + .addTo(alloySmelterRecipes); if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { GT_ModHandler.addCraftingRecipe( GT_OreDictUnificator.get(OrePrefixes.nugget, aMaterial, 8L), diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingOre.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingOre.java index ee715d7f91..40bfc41223 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingOre.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingOre.java @@ -1,9 +1,9 @@ package gregtech.loaders.oreprocessing; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sBlastRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sHammerRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sMaceratorRecipes; +import static gregtech.api.recipe.RecipeMaps.blastFurnaceRecipes; +import static gregtech.api.recipe.RecipeMaps.centrifugeRecipes; +import static gregtech.api.recipe.RecipeMaps.hammerRecipes; +import static gregtech.api.recipe.RecipeMaps.maceratorRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeConstants.COIL_HEAT; @@ -49,7 +49,7 @@ public class ProcessingOre implements gregtech.api.interfaces.IOreRecipeRegistra .fluidOutputs(Materials.OilHeavy.getFluid(tIsRich ? 4000L : 2000L)) .duration(tIsRich ? 30 * SECONDS : 15 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); } else { registerStandardOreRecipes( aPrefix, @@ -149,7 +149,7 @@ public class ProcessingOre implements gregtech.api.interfaces.IOreRecipeRegistra .duration(tSmeltInto.stackSize * 25 * SECONDS) .eut(TierEU.RECIPE_MV) .metadata(COIL_HEAT, 1500) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); GT_Values.RA.stdBuilder() .itemInputs( aOreStack, @@ -160,7 +160,7 @@ public class ProcessingOre implements gregtech.api.interfaces.IOreRecipeRegistra .duration(tSmeltInto.stackSize * 25 * SECONDS) .eut(TierEU.RECIPE_MV) .metadata(COIL_HEAT, 1500) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); } } else if (aMaterial.contains(SubTag.BLASTFURNACE_CALCITE_DOUBLE)) { if (aMaterial.mAutoGenerateBlastFurnaceRecipes) { @@ -174,7 +174,7 @@ public class ProcessingOre implements gregtech.api.interfaces.IOreRecipeRegistra .duration(tSmeltInto.stackSize * 25 * SECONDS) .eut(TierEU.RECIPE_MV) .metadata(COIL_HEAT, 1500) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); GT_Values.RA.stdBuilder() .itemInputs( aOreStack, @@ -185,7 +185,7 @@ public class ProcessingOre implements gregtech.api.interfaces.IOreRecipeRegistra .duration(tSmeltInto.stackSize * 25 * SECONDS) .eut(TierEU.RECIPE_MV) .metadata(COIL_HEAT, 1500) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); } } } @@ -205,7 +205,7 @@ public class ProcessingOre implements gregtech.api.interfaces.IOreRecipeRegistra .itemOutputs(GT_Utility.copy(GT_Utility.copyAmount(tCrushed.stackSize, tGem), tCrushed)) .duration(10) .eut(16) - .addTo(sHammerRecipes); + .addTo(hammerRecipes); int chanceOre2 = tPrimaryByProduct == null ? 0 : tPrimaryByProduct.stackSize * 10 * aMultiplier * aMaterial.mByProductMultiplier; @@ -226,7 +226,7 @@ public class ProcessingOre implements gregtech.api.interfaces.IOreRecipeRegistra .outputChances(10000, chanceOre2, 5000) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); } return true; } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingOrePoor.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingOrePoor.java index 20ceb97e5e..ac9106d31b 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingOrePoor.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingOrePoor.java @@ -1,7 +1,7 @@ package gregtech.loaders.oreprocessing; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sHammerRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sMaceratorRecipes; +import static gregtech.api.recipe.RecipeMaps.hammerRecipes; +import static gregtech.api.recipe.RecipeMaps.maceratorRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import net.minecraft.item.ItemStack; @@ -48,7 +48,7 @@ public class ProcessingOrePoor implements gregtech.api.interfaces.IOreRecipeRegi .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dustTiny, aMaterial, aMultiplier)) .duration(10) .eut(16) - .addTo(sHammerRecipes); + .addTo(hammerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack)) @@ -62,7 +62,7 @@ public class ProcessingOrePoor implements gregtech.api.interfaces.IOreRecipeRegi .outputChances(10000, 100 * 5 * aMultiplier, 10000) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); if (aMaterial.contains(SubTag.NO_SMELTING)) GT_ModHandler.addSmeltingRecipe( GT_Utility.copyAmount(1, aStack), diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingOreSmelting.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingOreSmelting.java index 1697bdd462..93458ee467 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingOreSmelting.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingOreSmelting.java @@ -1,7 +1,7 @@ package gregtech.loaders.oreprocessing; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sBlastRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sPrimitiveBlastRecipes; +import static gregtech.api.recipe.RecipeMaps.blastFurnaceRecipes; +import static gregtech.api.recipe.RecipeMaps.primitiveBlastRecipes; import static gregtech.api.util.GT_RecipeBuilder.MINUTES; import static gregtech.api.util.GT_RecipeBuilder.TICKS; import static gregtech.api.util.GT_RecipeConstants.ADDITIVE_AMOUNT; @@ -57,7 +57,7 @@ public class ProcessingOreSmelting implements gregtech.api.interfaces.IOreRecipe .duration(Math.max(aMaterial.getMass() / 4L, 1L) * aMaterial.mBlastFurnaceTemp * TICKS) .eut(TierEU.RECIPE_MV) .metadata(COIL_HEAT, (int) aMaterial.mBlastFurnaceTemp) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); } } else { OrePrefixes outputPrefix; @@ -88,9 +88,8 @@ public class ProcessingOreSmelting implements gregtech.api.interfaces.IOreRecipe .itemInputs(GT_Utility.copyAmount(2, aStack)) .itemOutputs(aMaterial.mDirectSmelting.getIngots(outputAmount)) .duration(2 * MINUTES) - .eut(0) .metadata(ADDITIVE_AMOUNT, 2) - .addTo(sPrimitiveBlastRecipes); + .addTo(primitiveBlastRecipes); } else if (aMaterial == Materials.Chalcopyrite) { GT_Values.RA.stdBuilder() .itemInputs(aMaterial.getDust(2), new ItemStack(Blocks.sand, 2)) @@ -98,54 +97,48 @@ public class ProcessingOreSmelting implements gregtech.api.interfaces.IOreRecipe aMaterial.mDirectSmelting.getIngots(outputAmount), Materials.Ferrosilite.getDustSmall(2 * outputAmount)) .duration(2 * MINUTES) - .eut(0) .metadata(ADDITIVE_AMOUNT, 2) - .addTo(sPrimitiveBlastRecipes); + .addTo(primitiveBlastRecipes); GT_Values.RA.stdBuilder() .itemInputs(aMaterial.getDust(2), Materials.Glass.getDust(2)) .itemOutputs( aMaterial.mDirectSmelting.getIngots(outputAmount), Materials.Ferrosilite.getDustSmall(7 * outputAmount)) .duration(2 * MINUTES) - .eut(0) .metadata(ADDITIVE_AMOUNT, 2) - .addTo(sPrimitiveBlastRecipes); + .addTo(primitiveBlastRecipes); GT_Values.RA.stdBuilder() .itemInputs(aMaterial.getDust(2), Materials.SiliconDioxide.getDust(2)) .itemOutputs( aMaterial.mDirectSmelting.getIngots(outputAmount), Materials.Ferrosilite.getDustSmall(outputAmount)) .duration(2 * MINUTES) - .eut(0) .metadata(ADDITIVE_AMOUNT, 2) - .addTo(sPrimitiveBlastRecipes); + .addTo(primitiveBlastRecipes); GT_Values.RA.stdBuilder() .itemInputs(aMaterial.getDust(2), Materials.Quartzite.getDust(4)) .itemOutputs( aMaterial.mDirectSmelting.getIngots(outputAmount), Materials.Ferrosilite.getDustSmall(outputAmount)) .duration(2 * MINUTES) - .eut(0) .metadata(ADDITIVE_AMOUNT, 2) - .addTo(sPrimitiveBlastRecipes); + .addTo(primitiveBlastRecipes); GT_Values.RA.stdBuilder() .itemInputs(aMaterial.getDust(2), Materials.NetherQuartz.getDust(2)) .itemOutputs( aMaterial.mDirectSmelting.getIngots(outputAmount), Materials.Ferrosilite.getDustSmall(outputAmount)) .duration(2 * MINUTES) - .eut(0) .metadata(ADDITIVE_AMOUNT, 2) - .addTo(sPrimitiveBlastRecipes); + .addTo(primitiveBlastRecipes); GT_Values.RA.stdBuilder() .itemInputs(aMaterial.getDust(2), Materials.CertusQuartz.getDust(2)) .itemOutputs( aMaterial.mDirectSmelting.getIngots(outputAmount), Materials.Ferrosilite.getDustSmall(outputAmount)) .duration(2 * MINUTES) - .eut(0) .metadata(ADDITIVE_AMOUNT, 2) - .addTo(sPrimitiveBlastRecipes); + .addTo(primitiveBlastRecipes); } else if (aMaterial == Materials.Tetrahedrite) { GT_Values.RA.stdBuilder() .itemInputs(aMaterial.getDust(2)) @@ -153,9 +146,8 @@ public class ProcessingOreSmelting implements gregtech.api.interfaces.IOreRecipe aMaterial.mDirectSmelting.getIngots(outputAmount), Materials.Antimony.getNuggets(3 * outputAmount)) .duration(2 * MINUTES) - .eut(0) .metadata(ADDITIVE_AMOUNT, 2) - .addTo(sPrimitiveBlastRecipes); + .addTo(primitiveBlastRecipes); } else if (aMaterial == Materials.Galena) { GT_Values.RA.stdBuilder() .itemInputs(aMaterial.getDust(2)) @@ -163,9 +155,8 @@ public class ProcessingOreSmelting implements gregtech.api.interfaces.IOreRecipe aMaterial.mDirectSmelting.getIngots(outputAmount), Materials.Silver.getNuggets(3 * outputAmount)) .duration(2 * MINUTES) - .eut(0) .metadata(ADDITIVE_AMOUNT, 2) - .addTo(sPrimitiveBlastRecipes); + .addTo(primitiveBlastRecipes); } } case dustImpure: diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPipe.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPipe.java index b49f701698..1f97e1e32a 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPipe.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPipe.java @@ -1,6 +1,6 @@ package gregtech.loaders.oreprocessing; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sAssemblerRecipes; +import static gregtech.api.recipe.RecipeMaps.assemblerRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; import static gregtech.api.util.GT_Utility.calculateRecipeEU; @@ -97,7 +97,7 @@ public class ProcessingPipe implements gregtech.api.interfaces.IOreRecipeRegistr .duration( ((int) (aPrefix.mSecondaryMaterial.mAmount * 400L / OrePrefixes.ring.mMaterialAmount)) * TICKS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } case pipeQuadruple -> { if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { @@ -115,7 +115,7 @@ public class ProcessingPipe implements gregtech.api.interfaces.IOreRecipeRegistr .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.pipeQuadruple, aMaterial, 1)) .duration(3 * SECONDS) .eut(calculateRecipeEU(aMaterial, 4)) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } case pipeNonuple -> { if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { @@ -133,7 +133,7 @@ public class ProcessingPipe implements gregtech.api.interfaces.IOreRecipeRegistr .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.pipeNonuple, aMaterial, 1)) .duration(3 * SECONDS) .eut(calculateRecipeEU(aMaterial, 8)) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } default -> {} } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlank.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlank.java index 7e28e64674..b28b997a93 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlank.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlank.java @@ -1,8 +1,8 @@ package gregtech.loaders.oreprocessing; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sAssemblerRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCutterRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sLatheRecipes; +import static gregtech.api.recipe.RecipeMaps.assemblerRecipes; +import static gregtech.api.recipe.RecipeMaps.cutterRecipes; +import static gregtech.api.recipe.RecipeMaps.latheRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; @@ -33,7 +33,7 @@ public class ProcessingPlank implements gregtech.api.interfaces.IOreRecipeRegist .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L)) .duration(10 * TICKS) .eut(8) - .addTo(sLatheRecipes); + .addTo(latheRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_Utility.copyAmount(1, aStack), @@ -41,7 +41,7 @@ public class ProcessingPlank implements gregtech.api.interfaces.IOreRecipeRegist .itemOutputs(ItemList.Crate_Empty.get(1L)) .duration(10 * SECONDS) .eut(1) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_Utility.copyAmount(1, aStack), @@ -49,7 +49,7 @@ public class ProcessingPlank implements gregtech.api.interfaces.IOreRecipeRegist .itemOutputs(ItemList.Crate_Empty.get(1L)) .duration(10 * SECONDS) .eut(1) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_Utility.copyAmount(1, aStack), @@ -57,19 +57,19 @@ public class ProcessingPlank implements gregtech.api.interfaces.IOreRecipeRegist .itemOutputs(ItemList.Crate_Empty.get(1L)) .duration(10 * SECONDS) .eut(1) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(8, aStack), GT_Utility.getIntegratedCircuit(8)) .itemOutputs(new ItemStack(Blocks.chest, 1)) .duration(40 * SECONDS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(6, aStack), new ItemStack(Items.book, 3)) .itemOutputs(new ItemStack(Blocks.bookshelf, 1)) .duration(20 * SECONDS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); if (aStack.getItemDamage() == 32767) { for (byte i = 0; i < 64; i = (byte) (i + 1)) { @@ -83,21 +83,21 @@ public class ProcessingPlank implements gregtech.api.interfaces.IOreRecipeRegist .fluidInputs(Materials.Water.getFluid(4)) .duration(2 * 25 * TICKS) .eut(4) - .addTo(sCutterRecipes); + .addTo(cutterRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, tStack)) .itemOutputs(GT_Utility.copyAmount(tOutput.stackSize / 3, tOutput)) .fluidInputs(GT_ModHandler.getDistilledWater(3)) .duration(2 * 25 * TICKS) .eut(4) - .addTo(sCutterRecipes); + .addTo(cutterRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, tStack)) .itemOutputs(GT_Utility.copyAmount(tOutput.stackSize / 3, tOutput)) .fluidInputs(Materials.Lubricant.getFluid(1)) .duration(25 * TICKS) .eut(4) - .addTo(sCutterRecipes); + .addTo(cutterRecipes); GT_ModHandler.removeRecipeDelayed(tStack, tStack, tStack); GT_ModHandler.addCraftingRecipe( GT_Utility.copyAmount(tOutput.stackSize / 3, tOutput), @@ -117,21 +117,21 @@ public class ProcessingPlank implements gregtech.api.interfaces.IOreRecipeRegist .fluidInputs(Materials.Water.getFluid(4)) .duration(2 * 25) .eut(4) - .addTo(sCutterRecipes); + .addTo(cutterRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack)) .itemOutputs(GT_Utility.copyAmount(tOutput.stackSize / 3, tOutput)) .fluidInputs(GT_ModHandler.getDistilledWater(3)) .duration(2 * 25) .eut(4) - .addTo(sCutterRecipes); + .addTo(cutterRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack)) .itemOutputs(GT_Utility.copyAmount(tOutput.stackSize / 3, tOutput)) .fluidInputs(Materials.Lubricant.getFluid(1)) .duration(25) .eut(4) - .addTo(sCutterRecipes); + .addTo(cutterRecipes); GT_ModHandler.removeRecipeDelayed(aStack, aStack, aStack); GT_ModHandler.addCraftingRecipe( GT_Utility.copyAmount(tOutput.stackSize / 3, tOutput), diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate.java index d80e3b1c1e..88f39309cf 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate.java @@ -4,15 +4,15 @@ import static gregtech.api.enums.ConfigCategories.Recipes.harderrecipes; import static gregtech.api.enums.GT_Values.L; import static gregtech.api.enums.GT_Values.NI; import static gregtech.api.enums.GT_Values.W; +import static gregtech.api.recipe.RecipeMaps.alloySmelterRecipes; +import static gregtech.api.recipe.RecipeMaps.assemblerRecipes; +import static gregtech.api.recipe.RecipeMaps.benderRecipes; +import static gregtech.api.recipe.RecipeMaps.cutterRecipes; +import static gregtech.api.recipe.RecipeMaps.extruderRecipes; +import static gregtech.api.recipe.RecipeMaps.fluidSolidifierRecipes; +import static gregtech.api.recipe.RecipeMaps.implosionRecipes; import static gregtech.api.util.GT_ModHandler.RecipeBits.BUFFERED; import static gregtech.api.util.GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sAlloySmelterRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sAssemblerRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sBenderRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCutterRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sExtruderRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sFluidSolidficationRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sImplosionRecipes; import static gregtech.api.util.GT_RecipeBuilder.MINUTES; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; @@ -36,6 +36,7 @@ import gregtech.api.enums.SubTag; import gregtech.api.enums.TextureSet; import gregtech.api.enums.TierEU; import gregtech.api.enums.ToolDictNames; +import gregtech.api.recipe.RecipeCategories; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; @@ -104,8 +105,6 @@ public class ProcessingPlate implements gregtech.api.interfaces.IOreRecipeRegist .itemInputs(GT_Utility.copyAmount(1, aStack)) .metadata(FUEL_VALUE, aMaterial.mFuelPower) .metadata(FUEL_TYPE, aMaterial.mFuelType) - .duration(0) - .eut(0) .addTo(GT_RecipeConstants.Fuel); } @@ -117,7 +116,7 @@ public class ProcessingPlate implements gregtech.api.interfaces.IOreRecipeRegist .fluidInputs(aMaterial.getMolten(L)) .duration(1 * SECONDS + 12 * TICKS) .eut(calculateRecipeEU(aMaterial, 8)) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); } GT_ModHandler.addCraftingRecipe( @@ -195,7 +194,7 @@ public class ProcessingPlate implements gregtech.api.interfaces.IOreRecipeRegist .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, aMaterial, 1L)) .duration(Math.max(aMaterialMass * 2L, 1L)) .eut(calculateRecipeEU(aMaterial, 96)) - .addTo(sBenderRecipes); + .addTo(benderRecipes); } // 2 plates -> 1 double plate GT_Values.RA.stdBuilder() @@ -205,7 +204,7 @@ public class ProcessingPlate implements gregtech.api.interfaces.IOreRecipeRegist .itemOutputs(GT_Utility.copyAmount(1, aStack)) .duration(Math.max(aMaterialMass * 2L, 1L)) .eut(calculateRecipeEU(aMaterial, 96)) - .addTo(sBenderRecipes); + .addTo(benderRecipes); } else { GT_Values.RA.stdBuilder() .itemInputs( @@ -215,7 +214,7 @@ public class ProcessingPlate implements gregtech.api.interfaces.IOreRecipeRegist .fluidInputs(Materials.Glue.getFluid(10L)) .duration(3 * SECONDS + 4 * TICKS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } if (!aNoSmashing) { @@ -253,7 +252,7 @@ public class ProcessingPlate implements gregtech.api.interfaces.IOreRecipeRegist .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateDense, aMaterial, 1L)) .duration(Math.max(aMaterialMass * 3L, 1L)) .eut(calculateRecipeEU(aMaterial, 96)) - .addTo(sBenderRecipes); + .addTo(benderRecipes); } GT_Values.RA.stdBuilder() @@ -263,7 +262,7 @@ public class ProcessingPlate implements gregtech.api.interfaces.IOreRecipeRegist .itemOutputs(GT_Utility.copyAmount(1, aStack)) .duration(Math.max(aMaterialMass * 3L, 1L)) .eut(calculateRecipeEU(aMaterial, 96)) - .addTo(sBenderRecipes); + .addTo(benderRecipes); } else { GT_Values.RA.stdBuilder() .itemInputs( @@ -273,7 +272,7 @@ public class ProcessingPlate implements gregtech.api.interfaces.IOreRecipeRegist .fluidInputs(Materials.Glue.getFluid(20L)) .duration(4 * SECONDS + 16 * TICKS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } if (!aNoSmashing) { @@ -310,7 +309,7 @@ public class ProcessingPlate implements gregtech.api.interfaces.IOreRecipeRegist GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 1L)) .duration(1 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sImplosionRecipes); + .addTo(implosionRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack), GT_ModHandler.getIC2Item("dynamite", 1, null)) .itemOutputs( @@ -318,7 +317,7 @@ public class ProcessingPlate implements gregtech.api.interfaces.IOreRecipeRegist GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 1L)) .duration(1 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sImplosionRecipes); + .addTo(implosionRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack), new ItemStack(Blocks.tnt, 2)) .itemOutputs( @@ -326,7 +325,7 @@ public class ProcessingPlate implements gregtech.api.interfaces.IOreRecipeRegist GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 1L)) .duration(1 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sImplosionRecipes); + .addTo(implosionRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack), GT_ModHandler.getIC2Item("industrialTnt", 1)) .itemOutputs( @@ -334,7 +333,7 @@ public class ProcessingPlate implements gregtech.api.interfaces.IOreRecipeRegist GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 1L)) .duration(1 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sImplosionRecipes); + .addTo(implosionRecipes); } } @@ -354,7 +353,7 @@ public class ProcessingPlate implements gregtech.api.interfaces.IOreRecipeRegist .itemOutputs(GT_Utility.copyAmount(1, aStack)) .duration(Math.max(aMaterialMass * 4L, 1L)) .eut(calculateRecipeEU(aMaterial, 96)) - .addTo(sBenderRecipes); + .addTo(benderRecipes); } else { GT_Values.RA.stdBuilder() .itemInputs( @@ -364,7 +363,7 @@ public class ProcessingPlate implements gregtech.api.interfaces.IOreRecipeRegist .fluidInputs(Materials.Glue.getFluid(30L)) .duration(6 * SECONDS + 8 * TICKS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } if (!aNoSmashing) { if (GregTech_API.sRecipeFile.get( @@ -408,7 +407,7 @@ public class ProcessingPlate implements gregtech.api.interfaces.IOreRecipeRegist .itemOutputs(GT_Utility.copyAmount(1, aStack)) .duration(Math.max(aMaterialMass * 5L, 1L)) .eut(calculateRecipeEU(aMaterial, 96)) - .addTo(sBenderRecipes); + .addTo(benderRecipes); } else { GT_Values.RA.stdBuilder() .itemInputs( @@ -418,7 +417,7 @@ public class ProcessingPlate implements gregtech.api.interfaces.IOreRecipeRegist .fluidInputs(Materials.Glue.getFluid(40L)) .duration(8 * SECONDS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } if (!aNoSmashing) { if (GregTech_API.sRecipeFile.get( @@ -462,7 +461,7 @@ public class ProcessingPlate implements gregtech.api.interfaces.IOreRecipeRegist .itemOutputs(GT_Utility.copyAmount(1, aStack)) .duration(Math.max(aMaterialMass * 9L, 1L)) .eut(calculateRecipeEU(aMaterial, 96)) - .addTo(sBenderRecipes); + .addTo(benderRecipes); } } @@ -478,7 +477,7 @@ public class ProcessingPlate implements gregtech.api.interfaces.IOreRecipeRegist .fluidInputs(aMaterial.getMolten(L / 2)) .duration(16 * TICKS) .eut(calculateRecipeEU(aMaterial, 8)) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); } if (aMaterial.mUnificatable && aMaterial.mMaterialInto == aMaterial @@ -508,7 +507,8 @@ public class ProcessingPlate implements gregtech.api.interfaces.IOreRecipeRegist .itemOutputs(GT_Utility.copyAmount(3, aStack)) .duration(6 * SECONDS + 8 * TICKS) .eut(calculateRecipeEU(aMaterial, 15)) - .addTo(sAlloySmelterRecipes); + .recipeCategory(RecipeCategories.alloySmelterMolding) + .addTo(alloySmelterRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -517,7 +517,7 @@ public class ProcessingPlate implements gregtech.api.interfaces.IOreRecipeRegist .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.itemCasing, aMaterial, 2L)) .duration(((int) Math.max(aMaterial.getMass(), 1L)) * TICKS) .eut(calculateRecipeEU(aMaterial, 45)) - .addTo(sExtruderRecipes); + .addTo(extruderRecipes); } if (GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L) != null) { @@ -533,7 +533,7 @@ public class ProcessingPlate implements gregtech.api.interfaces.IOreRecipeRegist ((int) Math.max(aMaterial.getMass(), 1L)) * (calculateRecipeEU(aMaterial, 16)) / 320)))) .duration(2 * ((int) Math.max(aMaterial.getMass(), 1L)) * TICKS) .eut(calculateRecipeEU(aMaterial, 16)) - .addTo(sCutterRecipes); + .addTo(cutterRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L)) @@ -547,7 +547,7 @@ public class ProcessingPlate implements gregtech.api.interfaces.IOreRecipeRegist ((int) Math.max(aMaterial.getMass(), 1L)) * (calculateRecipeEU(aMaterial, 16)) / 426)))) .duration(2 * ((int) Math.max(aMaterial.getMass(), 1L)) * TICKS) .eut(calculateRecipeEU(aMaterial, 16)) - .addTo(sCutterRecipes); + .addTo(cutterRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L)) @@ -562,7 +562,7 @@ public class ProcessingPlate implements gregtech.api.interfaces.IOreRecipeRegist / 1280)))) .duration(((int) Math.max(aMaterial.getMass(), 1L)) * TICKS) .eut(calculateRecipeEU(aMaterial, 16)) - .addTo(sCutterRecipes); + .addTo(cutterRecipes); } GT_RecipeRegistrator.registerReverseFluidSmelting(aStack, aMaterial, aPrefix.mMaterialAmount, null); } @@ -576,20 +576,20 @@ public class ProcessingPlate implements gregtech.api.interfaces.IOreRecipeRegist .itemOutputs(GT_ModHandler.getIC2Item("windMill", 1L)) .duration(5 * MINUTES + 20 * SECONDS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack), new ItemStack(Blocks.glass, 3, W)) .itemOutputs(GT_ModHandler.getIC2Item("reinforcedGlass", 4L)) .duration(20 * SECONDS) .eut(4) - .addTo(sAlloySmelterRecipes); + .addTo(alloySmelterRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack), Materials.Glass.getDust(3)) .itemOutputs(GT_ModHandler.getIC2Item("reinforcedGlass", 4L)) .duration(20 * SECONDS) .eut(4) - .addTo(sAlloySmelterRecipes); + .addTo(alloySmelterRecipes); } case "plateAlloyAdvanced" -> { GT_ModHandler.addAlloySmelterRecipe( diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPure.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPure.java index bafc7402b5..01262d32f4 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPure.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPure.java @@ -1,7 +1,7 @@ package gregtech.loaders.oreprocessing; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sHammerRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sMaceratorRecipes; +import static gregtech.api.recipe.RecipeMaps.hammerRecipes; +import static gregtech.api.recipe.RecipeMaps.maceratorRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import net.minecraft.item.ItemStack; @@ -28,7 +28,7 @@ public class ProcessingPure implements gregtech.api.interfaces.IOreRecipeRegistr .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dustPure, aMaterial.mMacerateInto, 1L)) .duration(10) .eut(16) - .addTo(sHammerRecipes); + .addTo(hammerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack)) @@ -45,6 +45,6 @@ public class ProcessingPure implements gregtech.api.interfaces.IOreRecipeRegistr .outputChances(10000, 1000) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingRecycling.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingRecycling.java index 153011c639..bfa580b4c4 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingRecycling.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingRecycling.java @@ -1,6 +1,6 @@ package gregtech.loaders.oreprocessing; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCannerRecipes; +import static gregtech.api.recipe.RecipeMaps.cannerRecipes; import static gregtech.api.util.GT_RecipeBuilder.TICKS; import net.minecraft.item.ItemStack; @@ -39,7 +39,7 @@ public class ProcessingRecycling implements gregtech.api.interfaces.IOreRecipeRe } recipeBuilder.duration(((int) Math.max(aMaterial.getMass() / 2L, 1L)) * TICKS) .eut(2) - .addTo(sCannerRecipes); + .addTo(cannerRecipes); } } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingRotor.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingRotor.java index b004a68515..3548bd437b 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingRotor.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingRotor.java @@ -1,8 +1,8 @@ package gregtech.loaders.oreprocessing; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sAssemblerRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sExtruderRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sFluidSolidficationRecipes; +import static gregtech.api.recipe.RecipeMaps.assemblerRecipes; +import static gregtech.api.recipe.RecipeMaps.extruderRecipes; +import static gregtech.api.recipe.RecipeMaps.fluidSolidifierRecipes; import static gregtech.api.util.GT_RecipeBuilder.TICKS; import static gregtech.api.util.GT_Utility.calculateRecipeEU; @@ -51,7 +51,7 @@ public class ProcessingRotor implements gregtech.api.interfaces.IOreRecipeRegist .fluidInputs(Materials.Tin.getMolten(32)) .duration(((int) Math.max(aMaterial.getMass(), 1L)) * TICKS) .eut(calculateRecipeEU(aMaterial, 24)) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(tPlate.copy(), tRing.copy(), GT_Utility.getIntegratedCircuit(4)) @@ -59,7 +59,7 @@ public class ProcessingRotor implements gregtech.api.interfaces.IOreRecipeRegist .fluidInputs(Materials.Lead.getMolten(48)) .duration(((int) Math.max(aMaterial.getMass(), 1L)) * TICKS) .eut(calculateRecipeEU(aMaterial, 24)) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(tPlate.copy(), tRing.copy(), GT_Utility.getIntegratedCircuit(4)) @@ -67,7 +67,7 @@ public class ProcessingRotor implements gregtech.api.interfaces.IOreRecipeRegist .fluidInputs(Materials.SolderingAlloy.getMolten(16)) .duration(((int) Math.max(aMaterial.getMass(), 1L)) * TICKS) .eut(calculateRecipeEU(aMaterial, 24)) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } if (GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L) != null) { @@ -78,7 +78,7 @@ public class ProcessingRotor implements gregtech.api.interfaces.IOreRecipeRegist .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.rotor, aMaterial, 1L)) .duration(((int) Math.max(aMaterial.getMass(), 1L)) * TICKS) .eut(calculateRecipeEU(aMaterial, 24)) - .addTo(sExtruderRecipes); + .addTo(extruderRecipes); } if (aMaterial.mStandardMoltenFluid != null) { if (!(aMaterial == Materials.AnnealedCopper || aMaterial == Materials.WroughtIron)) { @@ -89,7 +89,7 @@ public class ProcessingRotor implements gregtech.api.interfaces.IOreRecipeRegist .fluidInputs(aMaterial.getMolten(612L)) .duration(((int) Math.max(aMaterial.getMass(), 1L)) * TICKS) .eut(calculateRecipeEU(aMaterial, 24)) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); } } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingRound.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingRound.java index 390894b3af..0eb2cb3dd0 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingRound.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingRound.java @@ -1,6 +1,6 @@ package gregtech.loaders.oreprocessing; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sLatheRecipes; +import static gregtech.api.recipe.RecipeMaps.latheRecipes; import static gregtech.api.util.GT_RecipeBuilder.TICKS; import net.minecraft.item.ItemStack; @@ -31,7 +31,7 @@ public class ProcessingRound implements gregtech.api.interfaces.IOreRecipeRegist .itemOutputs(GT_Utility.copyAmount(1, aStack)) .duration(((int) Math.max(aMaterial.getMass() / 4L, 1L)) * TICKS) .eut(8) - .addTo(sLatheRecipes); + .addTo(latheRecipes); } if ((aMaterial.mUnificatable) && (aMaterial.mMaterialInto == aMaterial)) { diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingSand.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingSand.java index 6ceec81e96..b1996d067f 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingSand.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingSand.java @@ -1,6 +1,6 @@ package gregtech.loaders.oreprocessing; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes; +import static gregtech.api.recipe.RecipeMaps.centrifugeRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import net.minecraft.init.Blocks; @@ -30,7 +30,7 @@ public class ProcessingSand implements gregtech.api.interfaces.IOreRecipeRegistr new ItemStack(Blocks.sand, 1, 0)) .duration(50 * SECONDS) .eut(5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); } } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingSaplings.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingSaplings.java index 4205b25fa0..f13c2aa9b5 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingSaplings.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingSaplings.java @@ -1,8 +1,8 @@ package gregtech.loaders.oreprocessing; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCompressorRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sLatheRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sMaceratorRecipes; +import static gregtech.api.recipe.RecipeMaps.compressorRecipes; +import static gregtech.api.recipe.RecipeMaps.latheRecipes; +import static gregtech.api.recipe.RecipeMaps.maceratorRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; @@ -29,14 +29,14 @@ public class ProcessingSaplings implements gregtech.api.interfaces.IOreRecipeReg .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Wood, 2L)) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(8, aStack)) .itemOutputs(ItemList.IC2_Plantball.get(1L)) .duration(15 * SECONDS) .eut(2) - .addTo(sCompressorRecipes); + .addTo(compressorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack)) @@ -45,6 +45,6 @@ public class ProcessingSaplings implements gregtech.api.interfaces.IOreRecipeReg GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Wood, 1L)) .duration(16 * TICKS) .eut(8) - .addTo(sLatheRecipes); + .addTo(latheRecipes); } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingScrew.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingScrew.java index 5b8ace9ce1..afafe8525d 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingScrew.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingScrew.java @@ -1,6 +1,6 @@ package gregtech.loaders.oreprocessing; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sLatheRecipes; +import static gregtech.api.recipe.RecipeMaps.latheRecipes; import static gregtech.api.util.GT_RecipeBuilder.TICKS; import static gregtech.api.util.GT_Utility.calculateRecipeEU; @@ -32,7 +32,7 @@ public class ProcessingScrew implements gregtech.api.interfaces.IOreRecipeRegist .itemOutputs(GT_Utility.copyAmount(1, aStack)) .duration(((int) Math.max(aMaterial.getMass() / 8L, 1L)) * TICKS) .eut(calculateRecipeEU(aMaterial, 4)) - .addTo(sLatheRecipes); + .addTo(latheRecipes); } if ((aMaterial.mUnificatable) && (aMaterial.mMaterialInto == aMaterial)) if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingShaping.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingShaping.java index 06860e0a61..3c25574798 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingShaping.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingShaping.java @@ -1,8 +1,8 @@ package gregtech.loaders.oreprocessing; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sAlloySmelterRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sExtruderRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sFluidSolidficationRecipes; +import static gregtech.api.recipe.RecipeMaps.alloySmelterRecipes; +import static gregtech.api.recipe.RecipeMaps.extruderRecipes; +import static gregtech.api.recipe.RecipeMaps.fluidSolidifierRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; import static gregtech.api.util.GT_Utility.calculateRecipeEU; @@ -17,6 +17,7 @@ import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.SubTag; import gregtech.api.enums.TierEU; +import gregtech.api.recipe.RecipeCategories; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; @@ -55,7 +56,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.block, aMaterial.mSmeltInto, tAmount)) .duration((10 * tAmount) * TICKS) .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) - .addTo(sExtruderRecipes); + .addTo(extruderRecipes); // Allow creation of alloy smelter recipes for material recycling if < IV tier. if (tTrueVoltage < TierEU.IV) { @@ -64,7 +65,8 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.block, aMaterial.mSmeltInto, tAmount)) .duration((5 * tAmount) * TICKS) .eut(calculateRecipeEU(aMaterial, 4 * tVoltageMultiplier)) - .addTo(sAlloySmelterRecipes); + .recipeCategory(RecipeCategories.alloySmelterMolding) + .addTo(alloySmelterRecipes); } } if ((aPrefix != OrePrefixes.ingot || aMaterial != aMaterial.mSmeltInto) @@ -74,7 +76,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial.mSmeltInto, tAmount)) .duration(10 * TICKS) .eut(calculateRecipeEU(aMaterial, 4 * tVoltageMultiplier)) - .addTo(sExtruderRecipes); + .addTo(extruderRecipes); } if (GT_OreDictUnificator.get(OrePrefixes.pipeTiny, aMaterial.mSmeltInto, 1L) != null) { GT_Values.RA.stdBuilder() @@ -82,7 +84,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.pipeTiny, aMaterial.mSmeltInto, tAmount * 2)) .duration((4 * tAmount) * TICKS) .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) - .addTo(sExtruderRecipes); + .addTo(extruderRecipes); } if (GT_OreDictUnificator.get(OrePrefixes.pipeSmall, aMaterial.mSmeltInto, 1L) != null) { GT_Values.RA.stdBuilder() @@ -90,7 +92,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.pipeSmall, aMaterial.mSmeltInto, tAmount)) .duration((8 * tAmount) * TICKS) .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) - .addTo(sExtruderRecipes); + .addTo(extruderRecipes); } if (GT_OreDictUnificator.get(OrePrefixes.pipeMedium, aMaterial.mSmeltInto, 1L) != null) { GT_Values.RA.stdBuilder() @@ -98,7 +100,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.pipeMedium, aMaterial.mSmeltInto, tAmount)) .duration((24 * tAmount) * TICKS) .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) - .addTo(sExtruderRecipes); + .addTo(extruderRecipes); } if (GT_OreDictUnificator.get(OrePrefixes.pipeLarge, aMaterial.mSmeltInto, 1L) != null) { GT_Values.RA.stdBuilder() @@ -106,7 +108,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.pipeLarge, aMaterial.mSmeltInto, tAmount)) .duration((48 * tAmount) * TICKS) .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) - .addTo(sExtruderRecipes); + .addTo(extruderRecipes); } if (GT_OreDictUnificator.get(OrePrefixes.pipeHuge, aMaterial.mSmeltInto, 1L) != null) { GT_Values.RA.stdBuilder() @@ -114,7 +116,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.pipeHuge, aMaterial.mSmeltInto, tAmount)) .duration((96 * tAmount) * TICKS) .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) - .addTo(sExtruderRecipes); + .addTo(extruderRecipes); } if (GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial.mSmeltInto, 1L) != null) { GT_Values.RA.stdBuilder() @@ -122,7 +124,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial.mSmeltInto, tAmount)) .duration(((int) Math.max(aMaterialMass * tAmount, tAmount)) * TICKS) .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) - .addTo(sExtruderRecipes); + .addTo(extruderRecipes); } if (GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, aMaterial.mSmeltInto, 1L) != null) { GT_Values.RA.stdBuilder() @@ -130,7 +132,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, aMaterial.mSmeltInto, tAmount)) .duration(((int) Math.max(aMaterialMass * tAmount, tAmount)) * TICKS) .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) - .addTo(sExtruderRecipes); + .addTo(extruderRecipes); } if (GT_OreDictUnificator.get(OrePrefixes.turbineBlade, aMaterial.mSmeltInto, 1L) != null) { GT_Values.RA.stdBuilder() @@ -138,7 +140,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.turbineBlade, aMaterial.mSmeltInto, tAmount)) .duration(((int) Math.max(aMaterialMass * tAmount, tAmount)) * TICKS) .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) - .addTo(sExtruderRecipes); + .addTo(extruderRecipes); } if (!(aMaterial == Materials.AnnealedCopper || aMaterial == Materials.WroughtIron)) { @@ -150,7 +152,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .fluidInputs(aMaterial.getMolten(36L)) .duration(5 * SECONDS) .eut(calculateRecipeEU(aMaterial, 4 * tVoltageMultiplier)) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); } if (GT_OreDictUnificator.get(OrePrefixes.screw, aMaterial, 1L) != null) { GT_Values.RA.stdBuilder() @@ -159,7 +161,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .fluidInputs(aMaterial.getMolten(18L)) .duration(2 * SECONDS + 10 * TICKS) .eut(calculateRecipeEU(aMaterial, 2 * tVoltageMultiplier)) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); } if (GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial, 1L) != null) { GT_Values.RA.stdBuilder() @@ -168,7 +170,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .fluidInputs(aMaterial.getMolten(72L)) .duration(7 * SECONDS + 10 * TICKS) .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); } if (GT_OreDictUnificator.get(OrePrefixes.bolt, aMaterial, 1L) != null) { GT_Values.RA.stdBuilder() @@ -177,7 +179,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .fluidInputs(aMaterial.getMolten(18L)) .duration(2 * SECONDS + 10 * TICKS) .eut(calculateRecipeEU(aMaterial, 2 * tVoltageMultiplier)) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); } if (GT_OreDictUnificator.get(OrePrefixes.round, aMaterial, 1L) != null) { GT_Values.RA.stdBuilder() @@ -186,7 +188,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .fluidInputs(aMaterial.getMolten(18L)) .duration(2 * SECONDS + 10 * TICKS) .eut(calculateRecipeEU(aMaterial, 2 * tVoltageMultiplier)) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); } if (GT_OreDictUnificator.get(OrePrefixes.stickLong, aMaterial, 1L) != null) { GT_Values.RA.stdBuilder() @@ -195,7 +197,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .fluidInputs(aMaterial.getMolten(144L)) .duration(15 * SECONDS) .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); } if (GT_OreDictUnificator.get(OrePrefixes.turbineBlade, aMaterial, 1L) != null) { GT_Values.RA.stdBuilder() @@ -204,7 +206,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .fluidInputs(aMaterial.getMolten(864L)) .duration(20 * SECONDS) .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); } if (GT_OreDictUnificator.get(OrePrefixes.pipeTiny, aMaterial, 1L) != null) { GT_Values.RA.stdBuilder() @@ -213,7 +215,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .fluidInputs(aMaterial.getMolten(72L)) .duration(1 * SECONDS) .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); } if (GT_OreDictUnificator.get(OrePrefixes.pipeSmall, aMaterial, 1L) != null) { GT_Values.RA.stdBuilder() @@ -222,7 +224,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .fluidInputs(aMaterial.getMolten(144L)) .duration(2 * SECONDS) .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); } if (GT_OreDictUnificator.get(OrePrefixes.pipeMedium, aMaterial, 1L) != null) { GT_Values.RA.stdBuilder() @@ -231,7 +233,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .fluidInputs(aMaterial.getMolten(432L)) .duration(4 * SECONDS) .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); } if (GT_OreDictUnificator.get(OrePrefixes.pipeLarge, aMaterial, 1L) != null) { GT_Values.RA.stdBuilder() @@ -240,7 +242,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .fluidInputs(aMaterial.getMolten(864L)) .duration(8 * SECONDS) .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); } if (GT_OreDictUnificator.get(OrePrefixes.pipeHuge, aMaterial, 1L) != null) { GT_Values.RA.stdBuilder() @@ -249,7 +251,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .fluidInputs(aMaterial.getMolten(1728L)) .duration(16 * SECONDS) .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); } } } @@ -262,7 +264,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mSmeltInto, tAmount * 2)) .duration(((int) Math.max(aMaterialMass * 2L * tAmount, tAmount)) * TICKS) .eut(calculateRecipeEU(aMaterial, 6 * tVoltageMultiplier)) - .addTo(sExtruderRecipes); + .addTo(extruderRecipes); } } else { if (GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mSmeltInto, 1L) != null) { @@ -272,7 +274,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mSmeltInto, tAmount * 2)) .duration(10 * SECONDS) .eut(calculateRecipeEU(aMaterial, 2 * tVoltageMultiplier)) - .addTo(sExtruderRecipes); + .addTo(extruderRecipes); } } } @@ -284,7 +286,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial.mSmeltInto, tAmount * 2)) .duration(((int) Math.max(aMaterialMass * 2L * tAmount, tAmount)) * TICKS) .eut(calculateRecipeEU(aMaterial, 6 * tVoltageMultiplier)) - .addTo(sExtruderRecipes); + .addTo(extruderRecipes); } } if (tAmount * 8 <= 64) { @@ -294,7 +296,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.bolt, aMaterial.mSmeltInto, tAmount * 8)) .duration(((int) Math.max(aMaterialMass * 2L * tAmount, tAmount)) * TICKS) .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) - .addTo(sExtruderRecipes); + .addTo(extruderRecipes); } } if (tAmount * 4 <= 64) { @@ -304,7 +306,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ring, aMaterial.mSmeltInto, tAmount * 4)) .duration(((int) Math.max(aMaterialMass * 2L * tAmount, tAmount)) * TICKS) .eut(calculateRecipeEU(aMaterial, 6 * tVoltageMultiplier)) - .addTo(sExtruderRecipes); + .addTo(extruderRecipes); } if ((aMaterial.mUnificatable) && (aMaterial.mMaterialInto == aMaterial) && !aMaterial.contains(SubTag.NO_SMASHING)) { @@ -325,7 +327,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.toolHeadSword, aMaterial.mSmeltInto, tAmount)) .duration(((int) Math.max(aMaterialMass * 2L * tAmount, tAmount)) * TICKS) .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) - .addTo(sExtruderRecipes); + .addTo(extruderRecipes); } if (GT_OreDictUnificator.get(OrePrefixes.toolHeadPickaxe, aMaterial.mSmeltInto, 1L) != null) { GT_Values.RA.stdBuilder() @@ -334,7 +336,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi GT_OreDictUnificator.get(OrePrefixes.toolHeadPickaxe, aMaterial.mSmeltInto, tAmount)) .duration(((int) Math.max(aMaterialMass * 3L * tAmount, tAmount)) * TICKS) .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) - .addTo(sExtruderRecipes); + .addTo(extruderRecipes); } if (GT_OreDictUnificator.get(OrePrefixes.toolHeadShovel, aMaterial.mSmeltInto, 1L) != null) { GT_Values.RA.stdBuilder() @@ -343,7 +345,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi GT_OreDictUnificator.get(OrePrefixes.toolHeadShovel, aMaterial.mSmeltInto, tAmount)) .duration(((int) Math.max(aMaterialMass * 1L * tAmount, tAmount)) * TICKS) .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) - .addTo(sExtruderRecipes); + .addTo(extruderRecipes); } if (GT_OreDictUnificator.get(OrePrefixes.toolHeadAxe, aMaterial.mSmeltInto, 1L) != null) { GT_Values.RA.stdBuilder() @@ -351,7 +353,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.toolHeadAxe, aMaterial.mSmeltInto, tAmount)) .duration(((int) Math.max(aMaterialMass * 3L * tAmount, tAmount)) * TICKS) .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) - .addTo(sExtruderRecipes); + .addTo(extruderRecipes); } if (GT_OreDictUnificator.get(OrePrefixes.toolHeadHoe, aMaterial.mSmeltInto, 1L) != null) { GT_Values.RA.stdBuilder() @@ -359,7 +361,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.toolHeadHoe, aMaterial.mSmeltInto, tAmount)) .duration(((int) Math.max(aMaterialMass * 2L * tAmount, tAmount)) * TICKS) .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) - .addTo(sExtruderRecipes); + .addTo(extruderRecipes); } if (GT_OreDictUnificator.get(OrePrefixes.toolHeadHammer, aMaterial.mSmeltInto, 1L) != null) { GT_Values.RA.stdBuilder() @@ -368,7 +370,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi GT_OreDictUnificator.get(OrePrefixes.toolHeadHammer, aMaterial.mSmeltInto, tAmount)) .duration(((int) Math.max(aMaterialMass * 6L * tAmount, tAmount)) * TICKS) .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) - .addTo(sExtruderRecipes); + .addTo(extruderRecipes); } if (GT_OreDictUnificator.get(OrePrefixes.toolHeadFile, aMaterial.mSmeltInto, 1L) != null) { GT_Values.RA.stdBuilder() @@ -376,7 +378,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.toolHeadFile, aMaterial.mSmeltInto, tAmount)) .duration(((int) Math.max(aMaterialMass * 2L * tAmount, tAmount)) * TICKS) .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) - .addTo(sExtruderRecipes); + .addTo(extruderRecipes); } if (GT_OreDictUnificator.get(OrePrefixes.toolHeadSaw, aMaterial.mSmeltInto, 1L) != null) { GT_Values.RA.stdBuilder() @@ -384,7 +386,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.toolHeadSaw, aMaterial.mSmeltInto, tAmount)) .duration(((int) Math.max(aMaterialMass * 2L * tAmount, tAmount)) * TICKS) .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) - .addTo(sExtruderRecipes); + .addTo(extruderRecipes); } if (GT_OreDictUnificator.get(OrePrefixes.gearGt, aMaterial.mSmeltInto, 1L) != null) { GT_Values.RA.stdBuilder() @@ -392,7 +394,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gearGt, aMaterial.mSmeltInto, tAmount)) .duration(((int) Math.max(aMaterialMass * 5L * tAmount, tAmount)) * TICKS) .eut(calculateRecipeEU(aMaterial, 8 * tVoltageMultiplier)) - .addTo(sExtruderRecipes); + .addTo(extruderRecipes); } if (!(aMaterial == Materials.StyreneButadieneRubber || aMaterial == Materials.Silicone)) { @@ -403,7 +405,8 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial.mSmeltInto, tAmount)) .duration(((int) Math.max(aMaterialMass * 2L * tAmount, tAmount)) * TICKS) .eut(calculateRecipeEU(aMaterial, 2 * tVoltageMultiplier)) - .addTo(sAlloySmelterRecipes); + .recipeCategory(RecipeCategories.alloySmelterMolding) + .addTo(alloySmelterRecipes); } } } else { @@ -415,7 +418,8 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial.mSmeltInto, tAmount)) .duration(((int) Math.max(aMaterialMass * 2L * tAmount, tAmount)) * TICKS) .eut(calculateRecipeEU(aMaterial, 2 * tVoltageMultiplier)) - .addTo(sAlloySmelterRecipes); + .recipeCategory(RecipeCategories.alloySmelterMolding) + .addTo(alloySmelterRecipes); } } } @@ -428,7 +432,8 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gearGt, aMaterial.mSmeltInto, tAmount)) .duration(((int) Math.max(aMaterialMass * 10L * tAmount, tAmount)) * TICKS) .eut(calculateRecipeEU(aMaterial, 2 * tVoltageMultiplier)) - .addTo(sAlloySmelterRecipes); + .recipeCategory(RecipeCategories.alloySmelterMolding) + .addTo(alloySmelterRecipes); } } @@ -439,13 +444,13 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .itemOutputs(new ItemStack(Items.glass_bottle, 1)) .duration((tAmount * 32) * TICKS) .eut(16) - .addTo(sExtruderRecipes); + .addTo(extruderRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack), ItemList.Shape_Mold_Bottle.get(0L)) .itemOutputs(new ItemStack(Items.glass_bottle, 1)) .duration((tAmount * 64) * TICKS) .eut(4) - .addTo(sAlloySmelterRecipes); + .addTo(alloySmelterRecipes); } case "Steel" -> { GT_Values.RA.stdBuilder() @@ -453,14 +458,14 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .itemOutputs(ItemList.Cell_Empty.get(tAmount)) .duration((tAmount * 128) * TICKS) .eut(TierEU.RECIPE_LV) - .addTo(sExtruderRecipes); + .addTo(extruderRecipes); if (tAmount * 2 <= 64) { GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack), ItemList.Shape_Extruder_Casing.get(0L)) .itemOutputs(GT_ModHandler.getIC2Item("casingadviron", tAmount * 2)) .duration((tAmount * 32) * TICKS) .eut(3 * tVoltageMultiplier) - .addTo(sExtruderRecipes); + .addTo(extruderRecipes); } if (tAmount * 2 <= 64) { GT_Values.RA.stdBuilder() @@ -468,7 +473,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .itemOutputs(GT_ModHandler.getIC2Item("casingadviron", tAmount * 3)) .duration((tAmount * 128) * TICKS) .eut(1 * tVoltageMultiplier) - .addTo(sAlloySmelterRecipes); + .addTo(alloySmelterRecipes); } } case "Iron", "WroughtIron" -> { @@ -477,14 +482,14 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .itemOutputs(GT_ModHandler.getIC2Item("fuelRod", tAmount)) .duration((tAmount * 128) * TICKS) .eut(TierEU.RECIPE_LV) - .addTo(sExtruderRecipes); + .addTo(extruderRecipes); if (tAmount * 2 <= 64) { GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack), ItemList.Shape_Extruder_Casing.get(0L)) .itemOutputs(GT_ModHandler.getIC2Item("casingiron", tAmount * 2)) .duration((tAmount * 32) * TICKS) .eut(3 * tVoltageMultiplier) - .addTo(sExtruderRecipes); + .addTo(extruderRecipes); } if (tAmount * 2 <= 64) { GT_Values.RA.stdBuilder() @@ -492,7 +497,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .itemOutputs(GT_ModHandler.getIC2Item("casingiron", tAmount * 3)) .duration((tAmount * 128) * TICKS) .eut(1 * tVoltageMultiplier) - .addTo(sAlloySmelterRecipes); + .addTo(alloySmelterRecipes); } if (tAmount * 31 <= 64) { GT_Values.RA.stdBuilder() @@ -500,7 +505,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .itemOutputs(new ItemStack(Blocks.anvil, 1, 0)) .duration((tAmount * 512) * TICKS) .eut(4 * tVoltageMultiplier) - .addTo(sAlloySmelterRecipes); + .addTo(alloySmelterRecipes); } } case "Tin" -> { @@ -509,14 +514,14 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .itemOutputs(ItemList.Cell_Empty.get(tAmount)) .duration((tAmount * 128) * TICKS) .eut(TierEU.RECIPE_LV) - .addTo(sExtruderRecipes); + .addTo(extruderRecipes); if (tAmount * 2 <= 64) { GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack), ItemList.Shape_Extruder_Casing.get(0L)) .itemOutputs(GT_ModHandler.getIC2Item("casingtin", tAmount * 2)) .duration((tAmount * 32) * TICKS) .eut(3 * tVoltageMultiplier) - .addTo(sExtruderRecipes); + .addTo(extruderRecipes); } if (tAmount * 2 <= 64) { GT_Values.RA.stdBuilder() @@ -524,7 +529,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .itemOutputs(GT_ModHandler.getIC2Item("casingtin", tAmount * 3)) .duration((tAmount * 128) * TICKS) .eut(1 * tVoltageMultiplier) - .addTo(sAlloySmelterRecipes); + .addTo(alloySmelterRecipes); } } case "Lead" -> { @@ -534,7 +539,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .itemOutputs(GT_ModHandler.getIC2Item("casinglead", tAmount * 2)) .duration((tAmount * 32) * TICKS) .eut(3 * tVoltageMultiplier) - .addTo(sExtruderRecipes); + .addTo(extruderRecipes); } if (tAmount * 2 <= 64) { GT_Values.RA.stdBuilder() @@ -542,7 +547,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .itemOutputs(GT_ModHandler.getIC2Item("casinglead", tAmount * 3)) .duration((tAmount * 128) * TICKS) .eut(1 * tVoltageMultiplier) - .addTo(sAlloySmelterRecipes); + .addTo(alloySmelterRecipes); } } case "Copper", "AnnealedCopper" -> { @@ -552,7 +557,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .itemOutputs(GT_ModHandler.getIC2Item("casingcopper", tAmount * 2)) .duration((tAmount * 32) * TICKS) .eut(3 * tVoltageMultiplier) - .addTo(sExtruderRecipes); + .addTo(extruderRecipes); } if (tAmount * 2 <= 64) { GT_Values.RA.stdBuilder() @@ -560,7 +565,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .itemOutputs(GT_ModHandler.getIC2Item("casingcopper", tAmount * 3)) .duration((tAmount * 128) * TICKS) .eut(1 * tVoltageMultiplier) - .addTo(sAlloySmelterRecipes); + .addTo(alloySmelterRecipes); } } case "Bronze" -> { @@ -570,7 +575,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .itemOutputs(GT_ModHandler.getIC2Item("casingbronze", tAmount * 2)) .duration((tAmount * 32) * TICKS) .eut(3 * tVoltageMultiplier) - .addTo(sExtruderRecipes); + .addTo(extruderRecipes); } if (tAmount * 2 <= 64) { GT_Values.RA.stdBuilder() @@ -578,7 +583,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .itemOutputs(GT_ModHandler.getIC2Item("casingbronze", tAmount * 3)) .duration((tAmount * 128) * TICKS) .eut(1 * tVoltageMultiplier) - .addTo(sAlloySmelterRecipes); + .addTo(alloySmelterRecipes); } } case "Gold" -> { @@ -588,7 +593,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .itemOutputs(GT_ModHandler.getIC2Item("casinggold", tAmount * 2)) .duration((tAmount * 32) * TICKS) .eut(3 * tVoltageMultiplier) - .addTo(sExtruderRecipes); + .addTo(extruderRecipes); } if (tAmount * 2 <= 64) { GT_Values.RA.stdBuilder() @@ -596,7 +601,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .itemOutputs(GT_ModHandler.getIC2Item("casinggold", tAmount * 3)) .duration((tAmount * 128) * TICKS) .eut(1 * tVoltageMultiplier) - .addTo(sAlloySmelterRecipes); + .addTo(alloySmelterRecipes); } } case "Polytetrafluoroethylene" -> { @@ -605,7 +610,7 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi .itemOutputs(ItemList.Cell_Empty.get(tAmount * 4)) .duration((tAmount * 128) * TICKS) .eut(TierEU.RECIPE_LV) - .addTo(sExtruderRecipes); + .addTo(extruderRecipes); } } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingSlab.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingSlab.java index 72a5ccc960..35947755d3 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingSlab.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingSlab.java @@ -1,7 +1,7 @@ package gregtech.loaders.oreprocessing; import static gregtech.api.enums.Mods.Railcraft; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sChemicalBathRecipes; +import static gregtech.api.recipe.RecipeMaps.chemicalBathRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import net.minecraft.item.ItemStack; @@ -29,7 +29,7 @@ public class ProcessingSlab implements gregtech.api.interfaces.IOreRecipeRegistr .fluidInputs(Materials.Creosote.getFluid(300L)) .duration(10 * SECONDS) .eut(4) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); } } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingStick.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingStick.java index 55a785b9fd..e5aac7bfe7 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingStick.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingStick.java @@ -1,9 +1,9 @@ package gregtech.loaders.oreprocessing; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sBenderRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCutterRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sHammerRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sLatheRecipes; +import static gregtech.api.recipe.RecipeMaps.benderRecipes; +import static gregtech.api.recipe.RecipeMaps.cutterRecipes; +import static gregtech.api.recipe.RecipeMaps.hammerRecipes; +import static gregtech.api.recipe.RecipeMaps.latheRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; import static gregtech.api.util.GT_Utility.calculateRecipeEU; @@ -49,7 +49,7 @@ public class ProcessingStick implements gregtech.api.interfaces.IOreRecipeRegist GT_OreDictUnificator.get(OrePrefixes.dustSmall, aMaterial.mMacerateInto, 2L)) .duration(((int) Math.max(aMaterial.getMass() * 5L, 1L)) * TICKS) .eut(calculateRecipeEU(aMaterial, 16)) - .addTo(sLatheRecipes); + .addTo(latheRecipes); } if (GT_OreDictUnificator.get(OrePrefixes.bolt, aMaterial, 1L) != null) { @@ -68,7 +68,7 @@ public class ProcessingStick implements gregtech.api.interfaces.IOreRecipeRegist / 320)))) .duration(2 * ((int) Math.max(aMaterial.getMass() * 2L, 1L)) * TICKS) .eut(calculateRecipeEU(aMaterial, 4)) - .addTo(sCutterRecipes); + .addTo(cutterRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack)) @@ -84,7 +84,7 @@ public class ProcessingStick implements gregtech.api.interfaces.IOreRecipeRegist / 426)))) .duration(2 * ((int) Math.max(aMaterial.getMass() * 2L, 1L)) * TICKS) .eut(calculateRecipeEU(aMaterial, 4)) - .addTo(sCutterRecipes); + .addTo(cutterRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack)) @@ -99,7 +99,7 @@ public class ProcessingStick implements gregtech.api.interfaces.IOreRecipeRegist / 1280)))) .duration(((int) Math.max(aMaterial.getMass() * 2L, 1L)) * TICKS) .eut(calculateRecipeEU(aMaterial, 4)) - .addTo(sCutterRecipes); + .addTo(cutterRecipes); } if ((aMaterial.mUnificatable) && (aMaterial.mMaterialInto == aMaterial)) { @@ -124,7 +124,7 @@ public class ProcessingStick implements gregtech.api.interfaces.IOreRecipeRegist .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.springSmall, aMaterial, 2L)) .duration(5 * SECONDS) .eut(calculateRecipeEU(aMaterial, 8)) - .addTo(sBenderRecipes); + .addTo(benderRecipes); } } @@ -134,7 +134,7 @@ public class ProcessingStick implements gregtech.api.interfaces.IOreRecipeRegist .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.stickLong, aMaterial, 1L)) .duration(Math.max(aMaterial.getMass(), 1L)) .eut(calculateRecipeEU(aMaterial, 16)) - .addTo(sHammerRecipes); + .addTo(hammerRecipes); } } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingStickLong.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingStickLong.java index c318e12ad0..1f00300264 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingStickLong.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingStickLong.java @@ -1,7 +1,7 @@ package gregtech.loaders.oreprocessing; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sBenderRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCutterRecipes; +import static gregtech.api.recipe.RecipeMaps.benderRecipes; +import static gregtech.api.recipe.RecipeMaps.cutterRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; import static gregtech.api.util.GT_Utility.calculateRecipeEU; @@ -49,7 +49,7 @@ public class ProcessingStickLong implements gregtech.api.interfaces.IOreRecipeRe / 320)))) .duration(2 * ((int) Math.max(aMaterial.getMass(), 1L)) * TICKS) .eut(calculateRecipeEU(aMaterial, 4)) - .addTo(sCutterRecipes); + .addTo(cutterRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack)) @@ -64,7 +64,7 @@ public class ProcessingStickLong implements gregtech.api.interfaces.IOreRecipeRe / 426)))) .duration(2 * ((int) Math.max(aMaterial.getMass(), 1L)) * TICKS) .eut(calculateRecipeEU(aMaterial, 4)) - .addTo(sCutterRecipes); + .addTo(cutterRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack)) @@ -79,7 +79,7 @@ public class ProcessingStickLong implements gregtech.api.interfaces.IOreRecipeRe / 1280)))) .duration(((int) Math.max(aMaterial.getMass(), 1L)) * TICKS) .eut(calculateRecipeEU(aMaterial, 4)) - .addTo(sCutterRecipes); + .addTo(cutterRecipes); } if (aMaterial.mUnificatable && (aMaterial.mMaterialInto == aMaterial)) { @@ -104,7 +104,7 @@ public class ProcessingStickLong implements gregtech.api.interfaces.IOreRecipeRe .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.spring, aMaterial, 1L)) .duration(10 * SECONDS) .eut(calculateRecipeEU(aMaterial, 16)) - .addTo(sBenderRecipes); + .addTo(benderRecipes); } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingStone.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingStone.java index c423e91308..199feeb08e 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingStone.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingStone.java @@ -1,9 +1,9 @@ package gregtech.loaders.oreprocessing; import static gregtech.api.enums.Mods.Railcraft; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sAssemblerRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCutterRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sMaceratorRecipes; +import static gregtech.api.recipe.RecipeMaps.assemblerRecipes; +import static gregtech.api.recipe.RecipeMaps.cutterRecipes; +import static gregtech.api.recipe.RecipeMaps.maceratorRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import net.minecraft.block.Block; @@ -39,7 +39,7 @@ public class ProcessingStone implements IOreRecipeRegistrator { .fluidInputs(Materials.Redstone.getMolten(144L)) .duration(5 * SECONDS) .eut(48) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); break; case "Sand": GT_Values.RA.stdBuilder() @@ -47,7 +47,7 @@ public class ProcessingStone implements IOreRecipeRegistrator { .itemOutputs(new ItemStack(Blocks.sand, 1, 0)) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); break; case "Endstone": GT_Values.RA.stdBuilder() @@ -58,7 +58,7 @@ public class ProcessingStone implements IOreRecipeRegistrator { .outputChances(10000, 500) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); break; case "Netherrack": GT_Values.RA.stdBuilder() @@ -69,7 +69,7 @@ public class ProcessingStone implements IOreRecipeRegistrator { .outputChances(10000, 500) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); break; case "NetherBrick": GT_Values.RA.stdBuilder() @@ -77,7 +77,7 @@ public class ProcessingStone implements IOreRecipeRegistrator { .itemOutputs(new ItemStack(Blocks.nether_brick_fence, 1)) .duration(5 * SECONDS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); break; case "Obsidian": if (aBlock != Blocks.air) aBlock.setResistance(20.0F); @@ -87,7 +87,7 @@ public class ProcessingStone implements IOreRecipeRegistrator { .itemOutputs(ItemList.IC2_Compressed_Coal_Chunk.get(1L)) .duration(20 * SECONDS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack)) @@ -97,7 +97,7 @@ public class ProcessingStone implements IOreRecipeRegistrator { .outputChances(10000, 1000) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); break; case "Concrete": GT_Values.RA.stdBuilder() @@ -106,7 +106,7 @@ public class ProcessingStone implements IOreRecipeRegistrator { .fluidInputs(Materials.Water.getFluid(Math.max(4, Math.min(1000, 200 * 30 / 320)))) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sCutterRecipes); + .addTo(cutterRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack)) @@ -114,7 +114,7 @@ public class ProcessingStone implements IOreRecipeRegistrator { .fluidInputs(GT_ModHandler.getDistilledWater(Math.max(3, Math.min(750, 200 * 30 / 426)))) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sCutterRecipes); + .addTo(cutterRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack)) @@ -122,14 +122,14 @@ public class ProcessingStone implements IOreRecipeRegistrator { .fluidInputs(Materials.Lubricant.getFluid(Math.max(1, Math.min(250, 100 * 30 / 1280)))) .duration(5 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sCutterRecipes); + .addTo(cutterRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L)) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); break; case "Rhyolite": GT_Values.RA.stdBuilder() @@ -140,7 +140,7 @@ public class ProcessingStone implements IOreRecipeRegistrator { .outputChances(10000, 2000) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); break; case "Komatiite": GT_Values.RA.stdBuilder() @@ -151,7 +151,7 @@ public class ProcessingStone implements IOreRecipeRegistrator { .outputChances(10000, 500) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); break; case "Dacite": case "Andesite": @@ -163,7 +163,7 @@ public class ProcessingStone implements IOreRecipeRegistrator { .outputChances(10000, 2000) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); break; case "Gabbro": GT_Values.RA.stdBuilder() @@ -174,7 +174,7 @@ public class ProcessingStone implements IOreRecipeRegistrator { .outputChances(10000, 2000) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); break; case "Eclogite": GT_Values.RA.stdBuilder() @@ -185,7 +185,7 @@ public class ProcessingStone implements IOreRecipeRegistrator { .outputChances(10000, 1000) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); break; case "Soapstone": GT_Values.RA.stdBuilder() @@ -196,7 +196,7 @@ public class ProcessingStone implements IOreRecipeRegistrator { .outputChances(10000, 1000) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); break; case "Greenschist": case "Blueschist": @@ -208,7 +208,7 @@ public class ProcessingStone implements IOreRecipeRegistrator { .outputChances(10000, 1000) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); break; case "Gneiss": case "Migmatite": @@ -220,7 +220,7 @@ public class ProcessingStone implements IOreRecipeRegistrator { .outputChances(10000, 5000) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); break; case "Redrock": case "Marble": @@ -230,7 +230,7 @@ public class ProcessingStone implements IOreRecipeRegistrator { .fluidInputs(Materials.Water.getFluid(Math.max(4, Math.min(1000, 400 * 30 / 320)))) .duration(20 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sCutterRecipes); + .addTo(cutterRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack)) @@ -238,7 +238,7 @@ public class ProcessingStone implements IOreRecipeRegistrator { .fluidInputs(GT_ModHandler.getDistilledWater(Math.max(3, Math.min(750, 400 * 30 / 426)))) .duration(20 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sCutterRecipes); + .addTo(cutterRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack)) @@ -246,7 +246,7 @@ public class ProcessingStone implements IOreRecipeRegistrator { .fluidInputs(Materials.Lubricant.getFluid(Math.max(1, Math.min(250, 200 * 30 / 1280)))) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sCutterRecipes); + .addTo(cutterRecipes); case "Basalt": GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack), GT_Utility.getIntegratedCircuit(3)) @@ -254,7 +254,7 @@ public class ProcessingStone implements IOreRecipeRegistrator { .fluidInputs(Materials.Water.getFluid(Math.max(4, Math.min(1000, 400 * 30 / 320)))) .duration(20 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sCutterRecipes); + .addTo(cutterRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack), GT_Utility.getIntegratedCircuit(3)) @@ -262,7 +262,7 @@ public class ProcessingStone implements IOreRecipeRegistrator { .fluidInputs(GT_ModHandler.getDistilledWater(Math.max(3, Math.min(750, 400 * 30 / 426)))) .duration(20 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sCutterRecipes); + .addTo(cutterRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack), GT_Utility.getIntegratedCircuit(3)) @@ -270,7 +270,7 @@ public class ProcessingStone implements IOreRecipeRegistrator { .fluidInputs(Materials.Lubricant.getFluid(Math.max(1, Math.min(250, 200 * 30 / 1280)))) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sCutterRecipes); + .addTo(cutterRecipes); case "Quartzite": GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack)) @@ -280,7 +280,7 @@ public class ProcessingStone implements IOreRecipeRegistrator { .outputChances(10000, 1000) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); break; case "Flint": GT_Values.RA.stdBuilder() @@ -291,7 +291,7 @@ public class ProcessingStone implements IOreRecipeRegistrator { .outputChances(10000, 5000) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); break; case "GraniteBlack": GT_Values.RA.stdBuilder() @@ -300,7 +300,7 @@ public class ProcessingStone implements IOreRecipeRegistrator { .fluidInputs(Materials.Water.getFluid(Math.max(4, Math.min(1000, 400 * 30 / 320)))) .duration(20 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sCutterRecipes); + .addTo(cutterRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack)) @@ -308,7 +308,7 @@ public class ProcessingStone implements IOreRecipeRegistrator { .fluidInputs(GT_ModHandler.getDistilledWater(Math.max(3, Math.min(750, 400 * 30 / 426)))) .duration(20 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sCutterRecipes); + .addTo(cutterRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack)) @@ -316,7 +316,7 @@ public class ProcessingStone implements IOreRecipeRegistrator { .fluidInputs(Materials.Lubricant.getFluid(Math.max(1, Math.min(250, 200 * 30 / 1280)))) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sCutterRecipes); + .addTo(cutterRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack)) @@ -326,7 +326,7 @@ public class ProcessingStone implements IOreRecipeRegistrator { .outputChances(10000, 100) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); break; case "GraniteRed": GT_Values.RA.stdBuilder() @@ -335,7 +335,7 @@ public class ProcessingStone implements IOreRecipeRegistrator { .fluidInputs(Materials.Water.getFluid(Math.max(4, Math.min(1000, 400 * 30 / 320)))) .duration(20 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sCutterRecipes); + .addTo(cutterRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack)) @@ -343,7 +343,7 @@ public class ProcessingStone implements IOreRecipeRegistrator { .fluidInputs(GT_ModHandler.getDistilledWater(Math.max(3, Math.min(750, 400 * 30 / 426)))) .duration(20 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sCutterRecipes); + .addTo(cutterRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack)) @@ -351,7 +351,7 @@ public class ProcessingStone implements IOreRecipeRegistrator { .fluidInputs(Materials.Lubricant.getFluid(Math.max(1, Math.min(250, 200 * 30 / 1280)))) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sCutterRecipes); + .addTo(cutterRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(1, aStack)) @@ -361,7 +361,7 @@ public class ProcessingStone implements IOreRecipeRegistrator { .outputChances(10000, 100) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); } } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingStoneCobble.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingStoneCobble.java index 7e6dcb9863..fb9431e8e4 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingStoneCobble.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingStoneCobble.java @@ -1,6 +1,6 @@ package gregtech.loaders.oreprocessing; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sAssemblerRecipes; +import static gregtech.api.recipe.RecipeMaps.assemblerRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import net.minecraft.init.Blocks; @@ -25,6 +25,6 @@ public class ProcessingStoneCobble implements gregtech.api.interfaces.IOreRecipe .itemOutputs(new ItemStack(Blocks.furnace, 1)) .duration(20 * SECONDS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHead.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHead.java index 72b409bb86..4b610fea8e 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHead.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHead.java @@ -1,9 +1,9 @@ package gregtech.loaders.oreprocessing; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sAssemblerRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sExtruderRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sFluidSolidficationRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sPressRecipes; +import static gregtech.api.recipe.RecipeMaps.assemblerRecipes; +import static gregtech.api.recipe.RecipeMaps.extruderRecipes; +import static gregtech.api.recipe.RecipeMaps.fluidSolidifierRecipes; +import static gregtech.api.recipe.RecipeMaps.formingPressRecipes; import static gregtech.api.util.GT_RecipeBuilder.MINUTES; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; @@ -67,7 +67,7 @@ public class ProcessingToolHead implements gregtech.api.interfaces.IOreRecipeReg .fluidInputs(aMaterial.getMolten(36L)) .duration(16 * TICKS) .eut(8) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); } if (aSpecialRecipeReq2) { GT_ModHandler.addCraftingRecipe( @@ -101,7 +101,7 @@ public class ProcessingToolHead implements gregtech.api.interfaces.IOreRecipeReg null)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } if (aSpecialRecipeReq1) GT_ModHandler.addCraftingRecipe( GT_OreDictUnificator.get(OrePrefixes.toolHeadAxe, aMaterial, 1L), @@ -532,7 +532,7 @@ public class ProcessingToolHead implements gregtech.api.interfaces.IOreRecipeReg .fluidInputs(aMaterial.getMolten(144 * 4)) .duration(5 * SECONDS) .eut(calculateRecipeEU(aMaterial, (int) TierEU.RECIPE_MV)) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); } if (GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L) != null) { GT_Values.RA.stdBuilder() @@ -542,7 +542,7 @@ public class ProcessingToolHead implements gregtech.api.interfaces.IOreRecipeReg .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.toolHeadDrill, aMaterial, 1L)) .duration(5 * SECONDS) .eut(calculateRecipeEU(aMaterial, (int) TierEU.RECIPE_MV)) - .addTo(sExtruderRecipes); + .addTo(extruderRecipes); } } } @@ -588,7 +588,7 @@ public class ProcessingToolHead implements gregtech.api.interfaces.IOreRecipeReg null)) .duration(10 * SECONDS) .eut(calculateRecipeEU(aMaterial, (int) TierEU.RECIPE_MV)) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } } case toolHeadHoe -> { @@ -617,7 +617,7 @@ public class ProcessingToolHead implements gregtech.api.interfaces.IOreRecipeReg null)) .duration(10 * SECONDS) .eut(calculateRecipeEU(aMaterial, (int) TierEU.RECIPE_MV)) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } if (aSpecialRecipeReq1) GT_ModHandler.addCraftingRecipe( GT_OreDictUnificator.get(OrePrefixes.toolHeadHoe, aMaterial, 1L), @@ -667,7 +667,7 @@ public class ProcessingToolHead implements gregtech.api.interfaces.IOreRecipeReg null)) .duration(10 * SECONDS) .eut(calculateRecipeEU(aMaterial, (int) TierEU.RECIPE_MV)) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } } case toolHeadPlow -> { @@ -707,7 +707,7 @@ public class ProcessingToolHead implements gregtech.api.interfaces.IOreRecipeReg null)) .duration(10 * SECONDS) .eut(calculateRecipeEU(aMaterial, (int) TierEU.RECIPE_MV)) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } } case toolHeadSaw -> { @@ -748,7 +748,7 @@ public class ProcessingToolHead implements gregtech.api.interfaces.IOreRecipeReg null)) .duration(10 * SECONDS) .eut(calculateRecipeEU(aMaterial, (int) TierEU.RECIPE_MV)) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } } case toolHeadSense -> { @@ -789,7 +789,7 @@ public class ProcessingToolHead implements gregtech.api.interfaces.IOreRecipeReg null)) .duration(10 * SECONDS) .eut(calculateRecipeEU(aMaterial, (int) TierEU.RECIPE_MV)) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } } case toolHeadShovel -> { @@ -816,7 +816,7 @@ public class ProcessingToolHead implements gregtech.api.interfaces.IOreRecipeReg null)) .duration(10 * SECONDS) .eut(calculateRecipeEU(aMaterial, (int) TierEU.RECIPE_MV)) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } if (aSpecialRecipeReq1) GT_ModHandler.addCraftingRecipe( GT_OreDictUnificator.get(OrePrefixes.toolHeadShovel, aMaterial, 1L), @@ -866,7 +866,7 @@ public class ProcessingToolHead implements gregtech.api.interfaces.IOreRecipeReg null)) .duration(10 * SECONDS) .eut(calculateRecipeEU(aMaterial, (int) TierEU.RECIPE_MV)) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } } case toolHeadUniversalSpade -> { @@ -892,7 +892,7 @@ public class ProcessingToolHead implements gregtech.api.interfaces.IOreRecipeReg null)) .duration(10 * SECONDS) .eut(calculateRecipeEU(aMaterial, (int) TierEU.RECIPE_MV)) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } if (aSpecialRecipeReq2) GT_ModHandler.addCraftingRecipe( GT_OreDictUnificator.get(OrePrefixes.toolHeadUniversalSpade, aMaterial, 1L), @@ -1163,7 +1163,7 @@ public class ProcessingToolHead implements gregtech.api.interfaces.IOreRecipeReg null)) .duration(10 * SECONDS) .eut(calculateRecipeEU(aMaterial, (int) TierEU.RECIPE_MV)) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } if ((aMaterial != Materials.Stone) && (aMaterial != Materials.Flint)) { GT_ModHandler.addShapelessCraftingRecipe( @@ -1217,7 +1217,7 @@ public class ProcessingToolHead implements gregtech.api.interfaces.IOreRecipeReg .itemOutputs(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(170, 1, aMaterial, aMaterial, null)) .duration(8 * SECONDS) .eut(calculateRecipeEU(aMaterial, 100)) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_OreDictUnificator.get(OrePrefixes.turbineBlade, aMaterial, 8L), @@ -1225,7 +1225,7 @@ public class ProcessingToolHead implements gregtech.api.interfaces.IOreRecipeReg .itemOutputs(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(172, 1, aMaterial, aMaterial, null)) .duration(16 * SECONDS) .eut(calculateRecipeEU(aMaterial, 400)) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_OreDictUnificator.get(OrePrefixes.turbineBlade, aMaterial, 12L), @@ -1233,7 +1233,7 @@ public class ProcessingToolHead implements gregtech.api.interfaces.IOreRecipeReg .itemOutputs(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(174, 1, aMaterial, aMaterial, null)) .duration(32 * SECONDS) .eut(calculateRecipeEU(aMaterial, 1600)) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_OreDictUnificator.get(OrePrefixes.turbineBlade, aMaterial, 16L), @@ -1241,7 +1241,7 @@ public class ProcessingToolHead implements gregtech.api.interfaces.IOreRecipeReg .itemOutputs(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(176, 1, aMaterial, aMaterial, null)) .duration(1 * MINUTES + 4 * SECONDS) .eut(calculateRecipeEU(aMaterial, 6400)) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); if (aSpecialRecipeReq2) { if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { GT_ModHandler.addCraftingRecipe( @@ -1263,7 +1263,7 @@ public class ProcessingToolHead implements gregtech.api.interfaces.IOreRecipeReg .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.turbineBlade, aMaterial, 1L)) .duration(10 * SECONDS) .eut(calculateRecipeEU(aMaterial, 60)) - .addTo(sPressRecipes); + .addTo(formingPressRecipes); } } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingTransforming.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingTransforming.java index 6b8d758a2f..4e3febc469 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingTransforming.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingTransforming.java @@ -1,7 +1,7 @@ package gregtech.loaders.oreprocessing; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sChemicalBathRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sPolarizerRecipes; +import static gregtech.api.recipe.RecipeMaps.chemicalBathRecipes; +import static gregtech.api.recipe.RecipeMaps.polarizerRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; @@ -44,7 +44,7 @@ public class ProcessingTransforming implements IOreRecipeRegistrator { .getFluid(GT_Utility.translateMaterialToAmount(aPrefix.mMaterialAmount, 120L, true))) .duration(5 * SECONDS) .eut(TierEU.ULV) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); } } @@ -60,7 +60,7 @@ public class ProcessingTransforming implements IOreRecipeRegistrator { GT_Utility.translateMaterialToAmount(aPrefix.mMaterialAmount, 250L, true))) .duration(5 * SECONDS) .eut(TierEU.ULV) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); } } @@ -72,7 +72,7 @@ public class ProcessingTransforming implements IOreRecipeRegistrator { .itemOutputs(GT_OreDictUnificator.get(aPrefix, Materials.IronMagnetic, 1L)) .duration(((int) Math.max(16L, aPrefix.mMaterialAmount * 128L / GT_Values.M)) * TICKS) .eut((int) TierEU.LV / 2) - .addTo(sPolarizerRecipes); + .addTo(polarizerRecipes); } } } @@ -88,7 +88,7 @@ public class ProcessingTransforming implements IOreRecipeRegistrator { GT_Utility.translateMaterialToAmount(aPrefix.mMaterialAmount, 225L, true))) .duration(5 * SECONDS) .eut(TierEU.ULV) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); } } @@ -100,7 +100,7 @@ public class ProcessingTransforming implements IOreRecipeRegistrator { .itemOutputs(GT_OreDictUnificator.get(aPrefix, Materials.IronMagnetic, 1L)) .duration(((int) Math.max(16L, aPrefix.mMaterialAmount * 128L / GT_Values.M)) * TICKS) .eut((int) TierEU.LV / 2) - .addTo(sPolarizerRecipes); + .addTo(polarizerRecipes); } } } @@ -116,7 +116,7 @@ public class ProcessingTransforming implements IOreRecipeRegistrator { GT_Utility.translateMaterialToAmount(aPrefix.mMaterialAmount, 200L, true))) .duration(5 * SECONDS) .eut(TierEU.ULV) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); } } @@ -128,7 +128,7 @@ public class ProcessingTransforming implements IOreRecipeRegistrator { .itemOutputs(GT_OreDictUnificator.get(aPrefix, Materials.SteelMagnetic, 1L)) .duration(((int) Math.max(16L, aPrefix.mMaterialAmount * 128L / GT_Values.M)) * TICKS) .eut((int) TierEU.LV / 2) - .addTo(sPolarizerRecipes); + .addTo(polarizerRecipes); } } } @@ -141,7 +141,7 @@ public class ProcessingTransforming implements IOreRecipeRegistrator { .itemOutputs(GT_OreDictUnificator.get(aPrefix, Materials.NeodymiumMagnetic, 1L)) .duration(((int) Math.max(16L, aPrefix.mMaterialAmount * 128L / GT_Values.M)) * TICKS) .eut((int) TierEU.HV / 2) - .addTo(sPolarizerRecipes); + .addTo(polarizerRecipes); } } case "Samarium" -> @@ -153,7 +153,7 @@ public class ProcessingTransforming implements IOreRecipeRegistrator { .itemOutputs(GT_OreDictUnificator.get(aPrefix, Materials.SamariumMagnetic, 1L)) .duration(((int) Math.max(16L, aPrefix.mMaterialAmount * 128L / GT_Values.M)) * TICKS) .eut((int) TierEU.IV / 2) - .addTo(sPolarizerRecipes); + .addTo(polarizerRecipes); } } @@ -166,7 +166,7 @@ public class ProcessingTransforming implements IOreRecipeRegistrator { .itemOutputs(GT_OreDictUnificator.get(aPrefix, Materials.TengamAttuned, 1L)) .duration(((int) Math.max(16L, aPrefix.mMaterialAmount * 128L / GT_Values.M)) * TICKS) .eut((int) TierEU.RECIPE_UHV) - .addTo(sPolarizerRecipes); + .addTo(polarizerRecipes); } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingWax.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingWax.java index 127f7465b9..7635546d23 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingWax.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingWax.java @@ -25,8 +25,6 @@ public class ProcessingWax implements gregtech.api.interfaces.IOreRecipeRegistra .itemInputs(GT_Utility.copyAmount(1, aStack)) .metadata(FUEL_VALUE, 6) .metadata(FUEL_TYPE, 5) - .duration(0) - .eut(0) .addTo(GT_RecipeConstants.Fuel); } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire.java index 95071a3322..1f5bd5f1c2 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire.java @@ -1,11 +1,11 @@ package gregtech.loaders.oreprocessing; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sAlloySmelterRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sAssemblerRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sBenderRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sBoxinatorRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sUnboxinatorRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sWiremillRecipes; +import static gregtech.api.recipe.RecipeMaps.alloySmelterRecipes; +import static gregtech.api.recipe.RecipeMaps.assemblerRecipes; +import static gregtech.api.recipe.RecipeMaps.benderRecipes; +import static gregtech.api.recipe.RecipeMaps.packagerRecipes; +import static gregtech.api.recipe.RecipeMaps.unpackagerRecipes; +import static gregtech.api.recipe.RecipeMaps.wiremillRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; import static gregtech.api.util.GT_Utility.calculateRecipeEU; @@ -70,7 +70,7 @@ public class ProcessingWire implements gregtech.api.interfaces.IOreRecipeRegistr .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.springSmall, aMaterial, 2L)) .duration(5 * SECONDS) .eut(calculateRecipeEU(aMaterial, 8)) - .addTo(sBenderRecipes); + .addTo(benderRecipes); } } @@ -82,7 +82,7 @@ public class ProcessingWire implements gregtech.api.interfaces.IOreRecipeRegistr .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireFine, aMaterial, 4L)) .duration(10 * SECONDS) .eut(calculateRecipeEU(aMaterial, 8)) - .addTo(sWiremillRecipes); + .addTo(wiremillRecipes); } } } @@ -105,31 +105,31 @@ public class ProcessingWire implements gregtech.api.interfaces.IOreRecipeRegistr .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt02, aMaterial, 1L)) .duration(7 * SECONDS + 10 * TICKS) .eut(calculateRecipeEU(aMaterial, 8)) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(4, aStack), GT_Utility.getIntegratedCircuit(4)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt04, aMaterial, 1L)) .duration(10 * SECONDS) .eut(calculateRecipeEU(aMaterial, 8)) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(8, aStack), GT_Utility.getIntegratedCircuit(8)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt08, aMaterial, 1L)) .duration(15 * SECONDS) .eut(calculateRecipeEU(aMaterial, 8)) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(12, aStack), GT_Utility.getIntegratedCircuit(12)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt12, aMaterial, 1L)) .duration(20 * SECONDS) .eut(calculateRecipeEU(aMaterial, 8)) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(16, aStack), GT_Utility.getIntegratedCircuit(16)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.wireGt16, aMaterial, 1L)) .duration(25 * SECONDS) .eut(calculateRecipeEU(aMaterial, 8)) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } } case wireGt02 -> { @@ -256,7 +256,7 @@ public class ProcessingWire implements gregtech.api.interfaces.IOreRecipeRegistr .itemOutputs(GT_OreDictUnificator.get(correspondingCable, aMaterial, 1L)) .duration(5 * SECONDS) .eut(8) - .addTo(sBoxinatorRecipes); + .addTo(packagerRecipes); } // alloy smelter recipes { @@ -267,7 +267,7 @@ public class ProcessingWire implements gregtech.api.interfaces.IOreRecipeRegistr .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cableGt01, aMaterial, 1L)) .duration(5 * SECONDS) .eut(8) - .addTo(sAlloySmelterRecipes); + .addTo(alloySmelterRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Rubber, 2L), @@ -275,7 +275,7 @@ public class ProcessingWire implements gregtech.api.interfaces.IOreRecipeRegistr .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cableGt02, aMaterial, 1L)) .duration(10 * SECONDS) .eut(16) - .addTo(sAlloySmelterRecipes); + .addTo(alloySmelterRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Rubber, 4L), @@ -283,7 +283,7 @@ public class ProcessingWire implements gregtech.api.interfaces.IOreRecipeRegistr .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cableGt04, aMaterial, 1L)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAlloySmelterRecipes); + .addTo(alloySmelterRecipes); } // Assembler recipes { @@ -294,7 +294,7 @@ public class ProcessingWire implements gregtech.api.interfaces.IOreRecipeRegistr .fluidInputs(Materials.Rubber.getMolten(144L * costMultiplier)) .duration(5 * SECONDS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(aStack, GT_Utility.getIntegratedCircuit(24)) @@ -302,7 +302,7 @@ public class ProcessingWire implements gregtech.api.interfaces.IOreRecipeRegistr .fluidInputs(Materials.StyreneButadieneRubber.getMolten(108L * costMultiplier)) .duration(5 * SECONDS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(aStack, GT_Utility.getIntegratedCircuit(24)) @@ -310,7 +310,7 @@ public class ProcessingWire implements gregtech.api.interfaces.IOreRecipeRegistr .fluidInputs(Materials.Silicone.getMolten(72L * costMultiplier)) .duration(5 * SECONDS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); for (Materials dielectric : dielectrics) { for (Materials syntheticRubber : syntheticRubbers) { @@ -321,7 +321,7 @@ public class ProcessingWire implements gregtech.api.interfaces.IOreRecipeRegistr .fluidInputs(syntheticRubber.getMolten(costMultiplier * 144L)) .duration(20 * SECONDS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(aStack, dielectric.getDustSmall(costMultiplier)) @@ -329,7 +329,7 @@ public class ProcessingWire implements gregtech.api.interfaces.IOreRecipeRegistr .fluidInputs(syntheticRubber.getMolten(costMultiplier * 36L)) .duration(5 * SECONDS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } } } @@ -347,7 +347,7 @@ public class ProcessingWire implements gregtech.api.interfaces.IOreRecipeRegistr .fluidInputs(Materials.Rubber.getMolten(144 * costMultiplier)) .duration(5 * SECONDS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(aStack, GT_Utility.getIntegratedCircuit(24)) @@ -355,7 +355,7 @@ public class ProcessingWire implements gregtech.api.interfaces.IOreRecipeRegistr .fluidInputs(Materials.StyreneButadieneRubber.getMolten(108 * costMultiplier)) .duration(5 * SECONDS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(aStack, GT_Utility.getIntegratedCircuit(24)) @@ -363,7 +363,7 @@ public class ProcessingWire implements gregtech.api.interfaces.IOreRecipeRegistr .fluidInputs(Materials.Silicone.getMolten(72 * costMultiplier)) .duration(5 * SECONDS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); for (Materials dielectric : dielectrics) { for (Materials syntheticRubber : syntheticRubbers) { @@ -374,7 +374,7 @@ public class ProcessingWire implements gregtech.api.interfaces.IOreRecipeRegistr .fluidInputs(syntheticRubber.getMolten(costMultiplier * 144L)) .duration(20 * SECONDS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(aStack, dielectric.getDustSmall(costMultiplier)) @@ -382,7 +382,7 @@ public class ProcessingWire implements gregtech.api.interfaces.IOreRecipeRegistr .fluidInputs(syntheticRubber.getMolten(costMultiplier * 36L)) .duration(5 * SECONDS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } } } @@ -402,7 +402,7 @@ public class ProcessingWire implements gregtech.api.interfaces.IOreRecipeRegistr .fluidInputs(Materials.Silicone.getMolten(costMultiplier * 72)) .duration(5 * SECONDS) .eut(calculateRecipeEU(aMaterial, 8)) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -413,7 +413,7 @@ public class ProcessingWire implements gregtech.api.interfaces.IOreRecipeRegistr .fluidInputs(Materials.Silicone.getMolten(costMultiplier * 72)) .duration(5 * SECONDS) .eut(calculateRecipeEU(aMaterial, 8)) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); for (Materials dielectric : dielectrics) { for (Materials syntheticRubber : syntheticRubbers) { @@ -427,7 +427,7 @@ public class ProcessingWire implements gregtech.api.interfaces.IOreRecipeRegistr .fluidInputs(syntheticRubber.getMolten(costMultiplier * 144L)) .duration(20 * SECONDS) .eut(calculateRecipeEU(aMaterial, 8)) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_Utility.copyAmount(4, aStack), @@ -438,7 +438,7 @@ public class ProcessingWire implements gregtech.api.interfaces.IOreRecipeRegistr .fluidInputs(syntheticRubber.getMolten(costMultiplier * 144L)) .duration(20 * SECONDS) .eut(calculateRecipeEU(aMaterial, 8)) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( aStack, @@ -448,7 +448,7 @@ public class ProcessingWire implements gregtech.api.interfaces.IOreRecipeRegistr .fluidInputs(syntheticRubber.getMolten(costMultiplier * 36L)) .duration(5 * SECONDS) .eut(calculateRecipeEU(aMaterial, 8)) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( aStack, @@ -459,7 +459,7 @@ public class ProcessingWire implements gregtech.api.interfaces.IOreRecipeRegistr .fluidInputs(syntheticRubber.getMolten(costMultiplier * 36L)) .duration(5 * SECONDS) .eut(calculateRecipeEU(aMaterial, 8)) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } } } @@ -471,7 +471,7 @@ public class ProcessingWire implements gregtech.api.interfaces.IOreRecipeRegistr .itemOutputs(GT_Utility.copyAmount(1, aStack)) .duration(5 * SECONDS) .eut(calculateRecipeEU(aMaterial, 8)) - .addTo(sUnboxinatorRecipes); + .addTo(unpackagerRecipes); } if (GT_OreDictUnificator.get(correspondingCable, aMaterial, 1L) != null) { diff --git a/src/main/java/gregtech/loaders/postload/GT_ExtremeDieselFuelLoader.java b/src/main/java/gregtech/loaders/postload/GT_ExtremeDieselFuelLoader.java deleted file mode 100644 index 8ff392e817..0000000000 --- a/src/main/java/gregtech/loaders/postload/GT_ExtremeDieselFuelLoader.java +++ /dev/null @@ -1,22 +0,0 @@ -package gregtech.loaders.postload; - -import gregtech.api.util.GT_Log; -import gregtech.api.util.GT_Recipe; - -public class GT_ExtremeDieselFuelLoader implements Runnable { - - @Override - public void run() { - GT_Log.out.println("GT_Mod: Adding extreme diesel fuel."); - int added = 0; - for (GT_Recipe aRecipe : GT_Recipe.GT_Recipe_Map.sDieselFuels.mRecipeList) { - if (aRecipe.mSpecialValue < 1500) { - continue; - } - - added += 1; - GT_Recipe.GT_Recipe_Map.sExtremeDieselFuels.add(aRecipe); - } - GT_Log.out.println("GT_Mod: Added " + added + " kind(s) of extreme diesel fuel."); - } -} diff --git a/src/main/java/gregtech/loaders/postload/GT_PostLoad.java b/src/main/java/gregtech/loaders/postload/GT_PostLoad.java index 5bf025cf20..5ec4391d71 100644 --- a/src/main/java/gregtech/loaders/postload/GT_PostLoad.java +++ b/src/main/java/gregtech/loaders/postload/GT_PostLoad.java @@ -1,12 +1,11 @@ package gregtech.loaders.postload; -import static gregtech.api.enums.GT_Values.VP; import static gregtech.api.enums.Mods.Forestry; import static gregtech.api.enums.Mods.GalacticraftCore; import static gregtech.api.enums.Mods.GalacticraftMars; import static gregtech.api.enums.Mods.GalaxySpace; import static gregtech.api.enums.Mods.Thaumcraft; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sFluidCannerRecipes; +import static gregtech.api.recipe.RecipeMaps.fluidCannerRecipes; import static gregtech.api.util.GT_RecipeBuilder.TICKS; import java.lang.reflect.InvocationTargetException; @@ -38,13 +37,15 @@ import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.SubTag; +import gregtech.api.enums.TierEU; +import gregtech.api.recipe.RecipeMaps; import gregtech.api.util.GT_CLS_Compat; import gregtech.api.util.GT_Forestry_Compat; import gregtech.api.util.GT_Log; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; -import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_RecipeBuilder; +import gregtech.api.util.GT_RecipeConstants; import gregtech.api.util.GT_RecipeRegistrator; import gregtech.api.util.GT_Utility; import gregtech.common.items.GT_MetaGenerated_Tool_01; @@ -95,20 +96,12 @@ public class GT_PostLoad { .findAny() .ifPresent(e -> aCompressorRecipeList.remove(e.getKey())); // Add default IC2 recipe to GT + GT_ModHandler.addIC2RecipesToGT(aMaceratorRecipeList, RecipeMaps.maceratorRecipes, true, true, true); + GT_ModHandler.addIC2RecipesToGT(aCompressorRecipeList, RecipeMaps.compressorRecipes, true, true, true); + GT_ModHandler.addIC2RecipesToGT(aExtractorRecipeList, RecipeMaps.extractorRecipes, true, true, true); + GT_ModHandler.addIC2RecipesToGT(aOreWashingRecipeList, RecipeMaps.oreWasherRecipes, false, true, true); GT_ModHandler - .addIC2RecipesToGT(aMaceratorRecipeList, GT_Recipe.GT_Recipe_Map.sMaceratorRecipes, true, true, true); - GT_ModHandler - .addIC2RecipesToGT(aCompressorRecipeList, GT_Recipe.GT_Recipe_Map.sCompressorRecipes, true, true, true); - GT_ModHandler - .addIC2RecipesToGT(aExtractorRecipeList, GT_Recipe.GT_Recipe_Map.sExtractorRecipes, true, true, true); - GT_ModHandler - .addIC2RecipesToGT(aOreWashingRecipeList, GT_Recipe.GT_Recipe_Map.sOreWasherRecipes, false, true, true); - GT_ModHandler.addIC2RecipesToGT( - aThermalCentrifugeRecipeList, - GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes, - true, - true, - true); + .addIC2RecipesToGT(aThermalCentrifugeRecipeList, RecipeMaps.thermalCentrifugeRecipes, true, true, true); // noinspection UnstableApiUsage// Stable enough for this project GT_Mod.GT_FML_LOGGER.info("IC2 Removal (" + stopwatch.stop() + "). Have a Cake."); } @@ -125,7 +118,7 @@ public class GT_PostLoad { .fluidInputs(tData.fluid) .duration((tData.fluid.amount / 62) * TICKS) .eut(1) - .addTo(sFluidCannerRecipes); + .addTo(fluidCannerRecipes); GT_RecipeBuilder builder = GT_Values.RA.stdBuilder() .itemInputs(tData.filledContainer); if (tData.emptyContainer.stackSize > 0) { @@ -134,7 +127,7 @@ public class GT_PostLoad { builder.fluidOutputs(tData.fluid) .duration((tData.fluid.amount / 62) * TICKS) .eut(1) - .addTo(sFluidCannerRecipes); + .addTo(fluidCannerRecipes); } } @@ -146,7 +139,7 @@ public class GT_PostLoad { } if (ItemList.IC2_Crop_Seeds.get(1L) != null) { - GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe( + RecipeMaps.scannerFakeRecipes.addFakeRecipe( false, new ItemStack[] { ItemList.IC2_Crop_Seeds.getWildcard(1L) }, new ItemStack[] { ItemList.IC2_Crop_Seeds.getWithName(1L, "Scanned Seeds") }, @@ -157,7 +150,7 @@ public class GT_PostLoad { 8, 0); } - GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe( + RecipeMaps.scannerFakeRecipes.addFakeRecipe( false, new ItemStack[] { new ItemStack(Items.written_book, 1, 32767) }, new ItemStack[] { ItemList.Tool_DataStick.getWithName(1L, "Scanned Book Data") }, @@ -167,7 +160,7 @@ public class GT_PostLoad { 128, 30, 0); - GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe( + RecipeMaps.scannerFakeRecipes.addFakeRecipe( false, new ItemStack[] { new ItemStack(Items.filled_map, 1, 32767) }, new ItemStack[] { ItemList.Tool_DataStick.getWithName(1L, "Scanned Map Data") }, @@ -177,7 +170,7 @@ public class GT_PostLoad { 128, 30, 0); - GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe( + RecipeMaps.scannerFakeRecipes.addFakeRecipe( false, new ItemStack[] { ItemList.Tool_DataOrb.getWithName(1L, "Orb to overwrite") }, new ItemStack[] { ItemList.Tool_DataOrb.getWithName(1L, "Copy of the Orb") }, @@ -187,7 +180,7 @@ public class GT_PostLoad { 512, 30, 0); - GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe( + RecipeMaps.scannerFakeRecipes.addFakeRecipe( false, new ItemStack[] { ItemList.Tool_DataStick.getWithName(1L, "Stick to overwrite") }, new ItemStack[] { ItemList.Tool_DataStick.getWithName(1L, "Copy of the Stick") }, @@ -197,7 +190,7 @@ public class GT_PostLoad { 128, 30, 0); - GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe( + RecipeMaps.scannerFakeRecipes.addFakeRecipe( false, new ItemStack[] { ItemList.Tool_DataStick.getWithName(1L, "Raw Prospection Data") }, new ItemStack[] { ItemList.Tool_DataStick.getWithName(1L, "Analyzed Prospection Data") }, @@ -208,7 +201,7 @@ public class GT_PostLoad { 30, 0); if (GalacticraftCore.isModLoaded()) { - GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe( + RecipeMaps.scannerFakeRecipes.addFakeRecipe( false, new ItemStack[] { Objects .requireNonNull(GT_ModHandler.getModItem(GalacticraftCore.ID, "item.schematic", 1, Short.MAX_VALUE)) @@ -220,7 +213,7 @@ public class GT_PostLoad { 36000, 480, 0); - if (GalacticraftMars.isModLoaded()) GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe( + if (GalacticraftMars.isModLoaded()) RecipeMaps.scannerFakeRecipes.addFakeRecipe( false, new ItemStack[] { Objects .requireNonNull(GT_ModHandler.getModItem(GalacticraftMars.ID, "item.schematic", 1, Short.MAX_VALUE)) @@ -234,7 +227,7 @@ public class GT_PostLoad { 0); if (GalaxySpace.isModLoaded()) { for (int i = 4; i < 9; i++) { - GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe( + RecipeMaps.scannerFakeRecipes.addFakeRecipe( false, new ItemStack[] { GT_ModHandler.getModItem(GalaxySpace.ID, "item.SchematicTier" + i, 1) .setStackDisplayName("Any Schematic") }, @@ -254,73 +247,66 @@ public class GT_PostLoad { if ((tMaterial.mElement != null) && (!tMaterial.mElement.mIsIsotope) && (tMaterial != Materials.Magic) && (tMaterial.getMass() > 0L)) { - ItemStack tOutput = ItemList.Tool_DataOrb.get(1L); - Behaviour_DataOrb.setDataTitle(tOutput, "Elemental-Scan"); - Behaviour_DataOrb.setDataName(tOutput, tMaterial.mElement.name()); - ItemStack tInput = GT_OreDictUnificator.get(OrePrefixes.dust, tMaterial, 1L); - ItemStack[] iSMat0 = new ItemStack[] { tInput }; - ItemStack[] iSMat1 = new ItemStack[] { tOutput }; - if (tInput != null) { - GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe( - false, - iSMat0, - iSMat1, - ItemList.Tool_DataOrb.get(1L), - null, - null, - (int) (tMaterial.getMass() * 8192L), - 30, - 0); - GT_Recipe.GT_Recipe_Map.sReplicatorFakeRecipes.addFakeRecipe( - false, - null, - iSMat0, - iSMat1, - new FluidStack[] { Materials.UUMatter.getFluid(tMaterial.getMass()) }, - null, - (int) (tMaterial.getMass() * 512L), - (int) VP[1], - 0); + ItemStack dataOrb = ItemList.Tool_DataOrb.get(1L); + Behaviour_DataOrb.setDataTitle(dataOrb, "Elemental-Scan"); + Behaviour_DataOrb.setDataName(dataOrb, tMaterial.mElement.name()); + ItemStack dustItem = GT_OreDictUnificator.get(OrePrefixes.dust, tMaterial, 1L); + if (dustItem != null) { + GT_Values.RA.stdBuilder() + .itemInputs(dustItem) + .itemOutputs(dataOrb) + .special(ItemList.Tool_DataOrb.get(1L)) + .duration((int) (tMaterial.getMass() * 8192L)) + .eut(TierEU.RECIPE_LV) + .fake() + .ignoreCollision() + .addTo(RecipeMaps.scannerFakeRecipes); + GT_Values.RA.stdBuilder() + .itemOutputs(dustItem) + .special(dataOrb) + .metadata(GT_RecipeConstants.MATERIAL, tMaterial) + .addTo(RecipeMaps.replicatorRecipes); return; } - tInput = GT_OreDictUnificator.get(OrePrefixes.cell, tMaterial, 1L); - iSMat0 = new ItemStack[] { tInput }; - if (tInput != null) { - GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe( - false, - iSMat0, - iSMat1, - ItemList.Tool_DataOrb.get(1L), - null, - null, - (int) (tMaterial.getMass() * 8192L), - 30, - 0); - GT_Recipe.GT_Recipe_Map.sReplicatorFakeRecipes.addFakeRecipe( - false, - null, - iSMat0, - iSMat1, - new FluidStack[] { Materials.UUMatter.getFluid(tMaterial.getMass()) }, - null, - (int) (tMaterial.getMass() * 512L), - (int) VP[1], - 0); + ItemStack cellItem = GT_OreDictUnificator.get(OrePrefixes.cell, tMaterial, 1L); + if (cellItem != null) { + GT_Values.RA.stdBuilder() + .itemInputs(cellItem) + .itemOutputs(dataOrb) + .special(ItemList.Tool_DataOrb.get(1L)) + .duration((int) (tMaterial.getMass() * 8192L)) + .eut(TierEU.RECIPE_LV) + .fake() + .ignoreCollision() + .addTo(RecipeMaps.scannerFakeRecipes); + FluidStack fluidStack = GT_Utility.getFluidForFilledItem(cellItem, false); + GT_RecipeBuilder builder = GT_Values.RA.stdBuilder(); + if (fluidStack != null) { + builder.fluidOutputs(fluidStack); + } else { + builder.itemInputs(Materials.Empty.getCells(1)) + .itemOutputs(cellItem); + } + builder.special(dataOrb) + .metadata(GT_RecipeConstants.MATERIAL, tMaterial) + .addTo(RecipeMaps.replicatorRecipes); } } }); - if (!GT_MetaTileEntity_Massfabricator.sRequiresUUA) GT_Recipe.GT_Recipe_Map.sMassFabFakeRecipes.addFakeRecipe( - false, - null, - null, - null, - null, - new FluidStack[] { Materials.UUMatter.getFluid(1L) }, - GT_MetaTileEntity_Massfabricator.sDurationMultiplier, - 256, - 0); - GT_Recipe.GT_Recipe_Map.sMassFabFakeRecipes.addFakeRecipe( + if (!GT_MetaTileEntity_Massfabricator.sRequiresUUA) { + GT_MetaTileEntity_Massfabricator.nonUUARecipe = RecipeMaps.massFabFakeRecipes.addFakeRecipe( + false, + null, + null, + null, + null, + new FluidStack[] { Materials.UUMatter.getFluid(1L) }, + GT_MetaTileEntity_Massfabricator.sDurationMultiplier, + GT_MetaTileEntity_Massfabricator.BASE_EUT, + 0); + } + GT_MetaTileEntity_Massfabricator.uuaRecipe = RecipeMaps.massFabFakeRecipes.addFakeRecipe( false, new ItemStack[] { GT_Utility.getIntegratedCircuit(1) }, null, @@ -328,9 +314,9 @@ public class GT_PostLoad { new FluidStack[] { Materials.UUAmplifier.getFluid(GT_MetaTileEntity_Massfabricator.sUUAperUUM) }, new FluidStack[] { Materials.UUMatter.getFluid(1L) }, GT_MetaTileEntity_Massfabricator.sDurationMultiplier / GT_MetaTileEntity_Massfabricator.sUUASpeedBonus, - 256, + GT_MetaTileEntity_Massfabricator.BASE_EUT, 0); - GT_Recipe.GT_Recipe_Map.sRockBreakerFakeRecipes.addFakeRecipe( + RecipeMaps.rockBreakerFakeRecipes.addFakeRecipe( false, new ItemStack[] { ItemList.Display_ITS_FREE.getWithName(1L, "IT'S FREE! Place Lava on Side") }, new ItemStack[] { new ItemStack(Blocks.cobblestone, 1) }, @@ -340,7 +326,7 @@ public class GT_PostLoad { 16, 30, 0); - GT_Recipe.GT_Recipe_Map.sRockBreakerFakeRecipes.addFakeRecipe( + RecipeMaps.rockBreakerFakeRecipes.addFakeRecipe( false, new ItemStack[] { ItemList.Display_ITS_FREE.getWithName(1L, "IT'S FREE! Place Lava on Top") }, new ItemStack[] { new ItemStack(Blocks.stone, 1) }, @@ -350,7 +336,7 @@ public class GT_PostLoad { 16, 30, 0); - GT_Recipe.GT_Recipe_Map.sRockBreakerFakeRecipes.addFakeRecipe( + RecipeMaps.rockBreakerFakeRecipes.addFakeRecipe( false, new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), GT_Utility.getIntegratedCircuit(1) }, @@ -491,32 +477,33 @@ public class GT_PostLoad { } public static void addSolidFakeLargeBoilerFuels() { - GT_Recipe.GT_Recipe_Map.sLargeBoilerFakeFuels.addSolidRecipes( - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Charcoal, 1), - GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Charcoal, 1), - GT_OreDictUnificator.get(OrePrefixes.block, Materials.Charcoal, 1), - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 1), - GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Coal, 1), - GT_OreDictUnificator.get(OrePrefixes.block, Materials.Coal, 1), - GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Coal, 1), - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lignite, 1), - GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Lignite, 1), - GT_OreDictUnificator.get(OrePrefixes.block, Materials.Lignite, 1), - GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Lignite, 1), - GT_OreDictUnificator.get(OrePrefixes.log, Materials.Wood, 1), - GT_OreDictUnificator.get(OrePrefixes.plank, Materials.Wood, 1), - GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1), - GT_OreDictUnificator.get(OrePrefixes.slab, Materials.Wood, 1), - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1), - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 1), - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lithium, 1), - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Caesium, 1), - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 1), - GT_OreDictUnificator.get(ItemList.Block_SSFUEL.get(1)), - GT_OreDictUnificator.get(ItemList.Block_MSSFUEL.get(1)), - GT_OreDictUnificator.get(OrePrefixes.rod, Materials.Blaze, 1)); + RecipeMaps.largeBoilerFakeFuels.getBackend() + .addSolidRecipes( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Charcoal, 1), + GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Charcoal, 1), + GT_OreDictUnificator.get(OrePrefixes.block, Materials.Charcoal, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 1), + GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Coal, 1), + GT_OreDictUnificator.get(OrePrefixes.block, Materials.Coal, 1), + GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Coal, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lignite, 1), + GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Lignite, 1), + GT_OreDictUnificator.get(OrePrefixes.block, Materials.Lignite, 1), + GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Lignite, 1), + GT_OreDictUnificator.get(OrePrefixes.log, Materials.Wood, 1), + GT_OreDictUnificator.get(OrePrefixes.plank, Materials.Wood, 1), + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1), + GT_OreDictUnificator.get(OrePrefixes.slab, Materials.Wood, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lithium, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Caesium, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 1), + GT_OreDictUnificator.get(ItemList.Block_SSFUEL.get(1)), + GT_OreDictUnificator.get(ItemList.Block_MSSFUEL.get(1)), + GT_OreDictUnificator.get(OrePrefixes.rod, Materials.Blaze, 1)); if (Thaumcraft.isModLoaded()) { - GT_Recipe.GT_Recipe_Map.sLargeBoilerFakeFuels + RecipeMaps.largeBoilerFakeFuels.getBackend() .addSolidRecipe(GT_ModHandler.getModItem(Thaumcraft.ID, "ItemResource", 1)); } } diff --git a/src/main/java/gregtech/loaders/postload/GT_ProcessingArrayRecipeLoader.java b/src/main/java/gregtech/loaders/postload/GT_ProcessingArrayRecipeLoader.java index 32023df99a..0ff53d0424 100644 --- a/src/main/java/gregtech/loaders/postload/GT_ProcessingArrayRecipeLoader.java +++ b/src/main/java/gregtech/loaders/postload/GT_ProcessingArrayRecipeLoader.java @@ -1,171 +1,167 @@ package gregtech.loaders.postload; import gregtech.api.enums.SoundResource; +import gregtech.api.recipe.RecipeMaps; import gregtech.api.util.GT_ProcessingArray_Manager; -import gregtech.api.util.GT_Recipe.GT_Recipe_Map; public class GT_ProcessingArrayRecipeLoader { public static void registerDefaultGregtechMaps() { // Alloy Smelter - GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.alloysmelter", GT_Recipe_Map.sAlloySmelterRecipes); + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.alloysmelter", RecipeMaps.alloySmelterRecipes); GT_ProcessingArray_Manager .addSoundResourceToPA("basicmachine.alloysmelter", SoundResource.IC2_MACHINES_INDUCTION_LOOP); // Arc Furnace - GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.arcfurnace", GT_Recipe_Map.sArcFurnaceRecipes); + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.arcfurnace", RecipeMaps.arcFurnaceRecipes); GT_ProcessingArray_Manager .addSoundResourceToPA("basicmachine.arcfurnace", SoundResource.IC2_MACHINES_INDUCTION_LOOP); // Assembler - GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.assembler", GT_Recipe_Map.sAssemblerRecipes); + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.assembler", RecipeMaps.assemblerRecipes); GT_ProcessingArray_Manager.addSoundResourceToPA("basicmachine.assembler", SoundResource.NONE); // Autoclave - GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.autoclave", GT_Recipe_Map.sAutoclaveRecipes); + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.autoclave", RecipeMaps.autoclaveRecipes); GT_ProcessingArray_Manager.addSoundResourceToPA("basicmachine.autoclave", SoundResource.NONE); // Bender - GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.bender", GT_Recipe_Map.sBenderRecipes); + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.bender", RecipeMaps.benderRecipes); GT_ProcessingArray_Manager .addSoundResourceToPA("basicmachine.bender", SoundResource.IC2_MACHINES_COMPRESSOR_OP); // Boxinator - GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.boxinator", GT_Recipe_Map.sBoxinatorRecipes); + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.boxinator", RecipeMaps.packagerRecipes); GT_ProcessingArray_Manager.addSoundResourceToPA("basicmachine.boxinator", SoundResource.NONE); // Brewery - GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.brewery", GT_Recipe_Map.sBrewingRecipes); + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.brewery", RecipeMaps.brewingRecipes); GT_ProcessingArray_Manager.addSoundResourceToPA("basicmachine.brewery", SoundResource.NONE); // Canner - GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.canner", GT_Recipe_Map.sCannerRecipes); + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.canner", RecipeMaps.cannerRecipes); GT_ProcessingArray_Manager.addSoundResourceToPA("basicmachine.canner", SoundResource.IC2_MACHINES_EXTRACTOR_OP); // Centrifuge - GT_ProcessingArray_Manager - .addRecipeMapToPA("basicmachine.centrifuge", GT_Recipe_Map.sMultiblockCentrifugeRecipes); + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.centrifuge", RecipeMaps.centrifugeNonCellRecipes); GT_ProcessingArray_Manager.addSoundResourceToPA("basicmachine.centrifuge", SoundResource.NONE); // Chemical Bath - GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.chemicalbath", GT_Recipe_Map.sChemicalBathRecipes); + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.chemicalbath", RecipeMaps.chemicalBathRecipes); GT_ProcessingArray_Manager.addSoundResourceToPA("basicmachine.chemicalbath", SoundResource.NONE); // Chemical Reactor GT_ProcessingArray_Manager - .addRecipeMapToPA("basicmachine.chemicalreactor", GT_Recipe_Map.sMultiblockChemicalRecipes); + .addRecipeMapToPA("basicmachine.chemicalreactor", RecipeMaps.multiblockChemicalReactorRecipes); GT_ProcessingArray_Manager .addSoundResourceToPA("basicmachine.chemicalreactor", SoundResource.IC2_MACHINES_EXTRACTOR_OP); // Circuit Assembler GT_ProcessingArray_Manager - .addRecipeMapToPA("basicmachine.circuitassembler", GT_Recipe_Map.sCircuitAssemblerRecipes); + .addRecipeMapToPA("basicmachine.circuitassembler", RecipeMaps.circuitAssemblerRecipes); GT_ProcessingArray_Manager.addSoundResourceToPA("basicmachine.circuitassembler", SoundResource.NONE); // Compressor - GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.compressor", GT_Recipe_Map.sCompressorRecipes); + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.compressor", RecipeMaps.compressorRecipes); GT_ProcessingArray_Manager .addSoundResourceToPA("basicmachine.compressor", SoundResource.IC2_MACHINES_COMPRESSOR_OP); // Cutting Machine - GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.cutter", GT_Recipe_Map.sCutterRecipes); + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.cutter", RecipeMaps.cutterRecipes); GT_ProcessingArray_Manager.addSoundResourceToPA("basicmachine.cutter", SoundResource.NONE); // Distillery - GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.distillery", GT_Recipe_Map.sDistilleryRecipes); + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.distillery", RecipeMaps.distilleryRecipes); GT_ProcessingArray_Manager .addSoundResourceToPA("basicmachine.distillery", SoundResource.GT_MACHINES_DISTILLERY_LOOP); // Electrolyzer - GT_ProcessingArray_Manager - .addRecipeMapToPA("basicmachine.electrolyzer", GT_Recipe_Map.sMultiblockElectrolyzerRecipes); + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.electrolyzer", RecipeMaps.electrolyzerNonCellRecipes); GT_ProcessingArray_Manager .addSoundResourceToPA("basicmachine.electrolyzer", SoundResource.IC2_MACHINES_MAGNETIZER_LOOP); // Extractor - GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.extractor", GT_Recipe_Map.sExtractorRecipes); + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.extractor", RecipeMaps.extractorRecipes); GT_ProcessingArray_Manager .addSoundResourceToPA("basicmachine.extractor", SoundResource.IC2_MACHINES_EXTRACTOR_OP); // Extruder - GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.extruder", GT_Recipe_Map.sExtruderRecipes); + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.extruder", RecipeMaps.extruderRecipes); GT_ProcessingArray_Manager .addSoundResourceToPA("basicmachine.extruder", SoundResource.IC2_MACHINES_INDUCTION_LOOP); // Fermenter - GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.fermenter", GT_Recipe_Map.sFermentingRecipes); + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.fermenter", RecipeMaps.fermentingRecipes); GT_ProcessingArray_Manager.addSoundResourceToPA("basicmachine.fermenter", SoundResource.NONE); // Fluid Canner - GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.fluidcanner", GT_Recipe_Map.sFluidCannerRecipes); + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.fluidcanner", RecipeMaps.fluidCannerRecipes); GT_ProcessingArray_Manager .addSoundResourceToPA("basicmachine.fluidcanner", SoundResource.IC2_MACHINES_EXTRACTOR_OP); // Fluid Extractor - GT_ProcessingArray_Manager - .addRecipeMapToPA("basicmachine.fluidextractor", GT_Recipe_Map.sFluidExtractionRecipes); + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.fluidextractor", RecipeMaps.fluidExtractionRecipes); GT_ProcessingArray_Manager .addSoundResourceToPA("basicmachine.fluidextractor", SoundResource.IC2_MACHINES_EXTRACTOR_OP); // Fluid Heater - GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.fluidheater", GT_Recipe_Map.sFluidHeaterRecipes); + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.fluidheater", RecipeMaps.fluidHeaterRecipes); GT_ProcessingArray_Manager.addSoundResourceToPA("basicmachine.fluidheater", SoundResource.NONE); // Fluid Solidifier - GT_ProcessingArray_Manager - .addRecipeMapToPA("basicmachine.fluidsolidifier", GT_Recipe_Map.sFluidSolidficationRecipes); + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.fluidsolidifier", RecipeMaps.fluidSolidifierRecipes); GT_ProcessingArray_Manager.addSoundResourceToPA("basicmachine.fluidsolidifier", SoundResource.NONE); // Forge Hammer - GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.hammer", GT_Recipe_Map.sHammerRecipes); + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.hammer", RecipeMaps.hammerRecipes); GT_ProcessingArray_Manager.addSoundResourceToPA("basicmachine.hammer", SoundResource.RANDOM_ANVIL_USE); // Forming Press - GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.press", GT_Recipe_Map.sPressRecipes); + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.press", RecipeMaps.formingPressRecipes); GT_ProcessingArray_Manager.addSoundResourceToPA("basicmachine.press", SoundResource.IC2_MACHINES_COMPRESSOR_OP); // Laser Engraver - GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.laserengraver", GT_Recipe_Map.sLaserEngraverRecipes); + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.laserengraver", RecipeMaps.laserEngraverRecipes); GT_ProcessingArray_Manager .addSoundResourceToPA("basicmachine.laserengraver", SoundResource.IC2_MACHINES_MAGNETIZER_LOOP); // Lathe - GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.lathe", GT_Recipe_Map.sLatheRecipes); + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.lathe", RecipeMaps.latheRecipes); GT_ProcessingArray_Manager.addSoundResourceToPA("basicmachine.lathe", SoundResource.NONE); // Macerator - GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.macerator", GT_Recipe_Map.sMaceratorRecipes); + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.macerator", RecipeMaps.maceratorRecipes); GT_ProcessingArray_Manager .addSoundResourceToPA("basicmachine.macerator", SoundResource.IC2_MACHINES_MACERATOR_OP); // Magnetic Separator GT_ProcessingArray_Manager - .addRecipeMapToPA("basicmachine.electromagneticseparator", GT_Recipe_Map.sElectroMagneticSeparatorRecipes); + .addRecipeMapToPA("basicmachine.electromagneticseparator", RecipeMaps.electroMagneticSeparatorRecipes); GT_ProcessingArray_Manager .addSoundResourceToPA("basicmachine.electromagneticseparator", SoundResource.IC2_MACHINES_MAGNETIZER_LOOP); // Matter Amplifier - GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.amplifab", GT_Recipe_Map.sAmplifiers); + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.amplifab", RecipeMaps.amplifierRecipes); GT_ProcessingArray_Manager .addSoundResourceToPA("basicmachine.amplifab", SoundResource.IC2_MACHINES_EXTRACTOR_OP); // Microwave - GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.microwave", GT_Recipe_Map.sMicrowaveRecipes); + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.microwave", RecipeMaps.microwaveRecipes); GT_ProcessingArray_Manager .addSoundResourceToPA("basicmachine.microwave", SoundResource.IC2_MACHINES_ELECTROFURNACE_LOOP); // Mixer - GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.mixer", GT_Recipe_Map.sMultiblockMixerRecipes); + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.mixer", RecipeMaps.mixerNonCellRecipes); GT_ProcessingArray_Manager.addSoundResourceToPA("basicmachine.mixer", SoundResource.NONE); // Ore Washer - GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.orewasher", GT_Recipe_Map.sOreWasherRecipes); + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.orewasher", RecipeMaps.oreWasherRecipes); GT_ProcessingArray_Manager.addSoundResourceToPA("basicmachine.orewasher", SoundResource.NONE); // Plasma Arc Furnace GT_ProcessingArray_Manager - .addRecipeMapToPA("basicmachine.plasmaarcfurnace", GT_Recipe_Map.sPlasmaArcFurnaceRecipes); + .addRecipeMapToPA("basicmachine.plasmaarcfurnace", RecipeMaps.plasmaArcFurnaceRecipes); GT_ProcessingArray_Manager .addSoundResourceToPA("basicmachine.plasmaarcfurnace", SoundResource.IC2_MACHINES_INDUCTION_LOOP); // Polarizer - GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.polarizer", GT_Recipe_Map.sPolarizerRecipes); + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.polarizer", RecipeMaps.polarizerRecipes); GT_ProcessingArray_Manager .addSoundResourceToPA("basicmachine.polarizer", SoundResource.IC2_MACHINES_MAGNETIZER_LOOP); // Printer - GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.printer", GT_Recipe_Map.sPrinterRecipes); + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.printer", RecipeMaps.printerRecipes); GT_ProcessingArray_Manager .addSoundResourceToPA("basicmachine.printer", SoundResource.IC2_MACHINES_COMPRESSOR_OP); // Recycler - GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.recycler", GT_Recipe_Map.sRecyclerRecipes); + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.recycler", RecipeMaps.recyclerRecipes); GT_ProcessingArray_Manager .addSoundResourceToPA("basicmachine.recycler", SoundResource.IC2_MACHINES_RECYCLER_OP); // Scanner - GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.scanner", GT_Recipe_Map.sScannerFakeRecipes); + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.scanner", RecipeMaps.scannerFakeRecipes); GT_ProcessingArray_Manager .addSoundResourceToPA("basicmachine.scanner", SoundResource.IC2_MACHINES_MAGNETIZER_LOOP); // Sifter - GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.sifter", GT_Recipe_Map.sSifterRecipes); + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.sifter", RecipeMaps.sifterRecipes); GT_ProcessingArray_Manager.addSoundResourceToPA("basicmachine.sifter", SoundResource.NONE); // Slicer - GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.slicer", GT_Recipe_Map.sSlicerRecipes); + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.slicer", RecipeMaps.slicerRecipes); GT_ProcessingArray_Manager.addSoundResourceToPA("basicmachine.slicer", SoundResource.NONE); // Thermal Centrifuge GT_ProcessingArray_Manager - .addRecipeMapToPA("basicmachine.thermalcentrifuge", GT_Recipe_Map.sThermalCentrifugeRecipes); + .addRecipeMapToPA("basicmachine.thermalcentrifuge", RecipeMaps.thermalCentrifugeRecipes); GT_ProcessingArray_Manager.addSoundResourceToPA("basicmachine.thermalcentrifuge", SoundResource.NONE); // Unboxinator - GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.unboxinator", GT_Recipe_Map.sUnboxinatorRecipes); + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.unboxinator", RecipeMaps.unpackagerRecipes); GT_ProcessingArray_Manager.addSoundResourceToPA("basicmachine.unboxinator", SoundResource.NONE); // Wiremill - GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.wiremill", GT_Recipe_Map.sWiremillRecipes); + GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.wiremill", RecipeMaps.wiremillRecipes); GT_ProcessingArray_Manager .addSoundResourceToPA("basicmachine.wiremill", SoundResource.IC2_MACHINES_RECYCLER_OP); } diff --git a/src/main/java/gregtech/loaders/postload/GT_UUMRecipeLoader.java b/src/main/java/gregtech/loaders/postload/GT_UUMRecipeLoader.java deleted file mode 100644 index bf2c2c4ebb..0000000000 --- a/src/main/java/gregtech/loaders/postload/GT_UUMRecipeLoader.java +++ /dev/null @@ -1,7 +0,0 @@ -package gregtech.loaders.postload; - -public class GT_UUMRecipeLoader implements Runnable { - - @Override - public void run() {} -} diff --git a/src/main/java/gregtech/loaders/postload/chains/GT_BauxiteRefineChain.java b/src/main/java/gregtech/loaders/postload/chains/GT_BauxiteRefineChain.java index d5d1537a49..aaf25812e4 100644 --- a/src/main/java/gregtech/loaders/postload/chains/GT_BauxiteRefineChain.java +++ b/src/main/java/gregtech/loaders/postload/chains/GT_BauxiteRefineChain.java @@ -1,10 +1,10 @@ package gregtech.loaders.postload.chains; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sChemicalBathRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCrackingRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sMixerRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes; +import static gregtech.api.recipe.RecipeMaps.centrifugeRecipes; +import static gregtech.api.recipe.RecipeMaps.chemicalBathRecipes; +import static gregtech.api.recipe.RecipeMaps.crackingRecipes; +import static gregtech.api.recipe.RecipeMaps.mixerRecipes; +import static gregtech.api.recipe.RecipeMaps.multiblockChemicalReactorRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; @@ -34,7 +34,7 @@ public class GT_BauxiteRefineChain { .fluidOutputs(MaterialsOreAlum.BauxiteSlurry.getFluid(8000)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -46,7 +46,7 @@ public class GT_BauxiteRefineChain { .fluidOutputs(MaterialsOreAlum.BauxiteSlurry.getFluid(8000)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(1)) @@ -54,7 +54,7 @@ public class GT_BauxiteRefineChain { .fluidOutputs(MaterialsOreAlum.HeatedBauxiteSlurry.getFluid(32000)) .duration(8 * SECONDS) .eut(400) - .addTo(sCrackingRecipes); + .addTo(crackingRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Aluminiumhydroxide.getDust(1)) @@ -68,7 +68,7 @@ public class GT_BauxiteRefineChain { .fluidOutputs(MaterialsOreAlum.SluiceJuice.getFluid(5000)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(MaterialsOreAlum.BauxiteSlag.getDust(1)) @@ -81,7 +81,7 @@ public class GT_BauxiteRefineChain { .outputChances(10000, 3000, 2000, 9000, 8000) .duration(2 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushedPurified, Materials.Ilmenite, 1)) @@ -91,7 +91,7 @@ public class GT_BauxiteRefineChain { .fluidOutputs(new FluidStack(ItemList.sGreenVitriol, 2000)) .duration(21 * SECONDS) .eut(1000) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Ilmenite, 1)) @@ -101,7 +101,7 @@ public class GT_BauxiteRefineChain { .fluidOutputs(new FluidStack(ItemList.sGreenVitriol, 2000)) .duration(21 * SECONDS) .eut(1000) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); GT_Values.RA.stdBuilder() .itemInputs(MaterialsOreAlum.IlmeniteSlag.getDust(1)) @@ -114,7 +114,7 @@ public class GT_BauxiteRefineChain { .outputChances(8000, 500, 2000, 5000, 6000) .duration(2 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); OrePrefixes[] washable = new OrePrefixes[] { OrePrefixes.crushed, OrePrefixes.crushedPurified, OrePrefixes.dustImpure, OrePrefixes.dustPure }; @@ -129,7 +129,7 @@ public class GT_BauxiteRefineChain { .fluidOutputs(MaterialsOreAlum.SapphireJuice.getFluid(1000)) .duration(2 * SECONDS) .eut(100) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -140,7 +140,7 @@ public class GT_BauxiteRefineChain { .fluidOutputs(MaterialsOreAlum.GreenSapphireJuice.getFluid(1000)) .duration(2 * SECONDS) .eut(100) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -151,7 +151,7 @@ public class GT_BauxiteRefineChain { .fluidOutputs(MaterialsOreAlum.RubyJuice.getFluid(1000)) .duration(2 * SECONDS) .eut(100) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); } GT_Values.RA.stdBuilder() @@ -166,7 +166,7 @@ public class GT_BauxiteRefineChain { .fluidOutputs(Materials.HydrochloricAcid.getFluid(1000)) .duration(2 * SECONDS + 5 * TICKS) .eut(100) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(1)) @@ -181,7 +181,7 @@ public class GT_BauxiteRefineChain { .fluidOutputs(Materials.HydrochloricAcid.getFluid(1000)) .duration(2 * SECONDS + 5 * TICKS) .eut(100) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(1)) @@ -196,7 +196,7 @@ public class GT_BauxiteRefineChain { .fluidOutputs(Materials.HydrochloricAcid.getFluid(1000)) .duration(2 * SECONDS + 5 * TICKS) .eut(100) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Pyrope.getDust(1)) @@ -212,7 +212,7 @@ public class GT_BauxiteRefineChain { .fluidOutputs(MaterialsOreAlum.SluiceJuice.getFluid(10)) .duration(2 * SECONDS + 5 * TICKS) .eut(TierEU.RECIPE_MV) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Almandine.getDust(1)) @@ -228,7 +228,7 @@ public class GT_BauxiteRefineChain { .fluidOutputs(MaterialsOreAlum.SluiceJuice.getFluid(10)) .duration(2 * SECONDS + 5 * TICKS) .eut(TierEU.RECIPE_MV) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Spessartine.getDust(1)) @@ -244,7 +244,7 @@ public class GT_BauxiteRefineChain { .fluidOutputs(MaterialsOreAlum.SluiceJuice.getFluid(10)) .duration(2 * SECONDS + 5 * TICKS) .eut(TierEU.RECIPE_MV) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Andradite.getDust(1)) @@ -260,7 +260,7 @@ public class GT_BauxiteRefineChain { .fluidOutputs(MaterialsOreAlum.SluiceJuice.getFluid(10)) .duration(2 * SECONDS + 5 * TICKS) .eut(TierEU.RECIPE_MV) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Uvarovite.getDust(1)) @@ -276,7 +276,7 @@ public class GT_BauxiteRefineChain { .fluidOutputs(MaterialsOreAlum.SluiceJuice.getFluid(10)) .duration(2 * SECONDS + 5 * TICKS) .eut(TierEU.RECIPE_MV) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Grossular.getDust(1)) @@ -292,6 +292,6 @@ public class GT_BauxiteRefineChain { .fluidOutputs(MaterialsOreAlum.SluiceJuice.getFluid(10)) .duration(2 * SECONDS + 5 * TICKS) .eut(TierEU.RECIPE_MV) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); } } diff --git a/src/main/java/gregtech/loaders/postload/chains/GT_NaniteChain.java b/src/main/java/gregtech/loaders/postload/chains/GT_NaniteChain.java index a72fe0acc9..dabcd93a8d 100644 --- a/src/main/java/gregtech/loaders/postload/chains/GT_NaniteChain.java +++ b/src/main/java/gregtech/loaders/postload/chains/GT_NaniteChain.java @@ -23,8 +23,8 @@ import gregtech.api.enums.Materials; import gregtech.api.enums.MaterialsUEVplus; import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.TierEU; +import gregtech.api.recipe.RecipeMaps; import gregtech.api.util.GT_OreDictUnificator; -import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_RecipeBuilder; public class GT_NaniteChain { @@ -234,7 +234,7 @@ public class GT_NaniteChain { .duration(750 * GT_RecipeBuilder.SECONDS) .eut(TierEU.RECIPE_MAX) .specialValue(3) - .addTo(GT_Recipe.GT_Recipe_Map.sNanoForge); + .addTo(RecipeMaps.nanoForgeRecipes); } } diff --git a/src/main/java/gregtech/loaders/postload/chains/GT_PCBFactoryRecipes.java b/src/main/java/gregtech/loaders/postload/chains/GT_PCBFactoryRecipes.java index 7e7e4ec496..392e6fa154 100644 --- a/src/main/java/gregtech/loaders/postload/chains/GT_PCBFactoryRecipes.java +++ b/src/main/java/gregtech/loaders/postload/chains/GT_PCBFactoryRecipes.java @@ -2,7 +2,8 @@ package gregtech.loaders.postload.chains; import static gregtech.api.enums.Mods.BartWorks; import static gregtech.api.enums.Mods.GTPlusPlus; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sAssemblerRecipes; +import static gregtech.api.recipe.RecipeMaps.assemblerRecipes; +import static gregtech.api.recipe.metadata.PCBFactoryUpgrade.BIO; import static gregtech.api.util.GT_RecipeBuilder.MINUTES; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeConstants.AssemblyLine; @@ -23,6 +24,9 @@ import gregtech.api.enums.Materials; import gregtech.api.enums.MaterialsUEVplus; import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.TierEU; +import gregtech.api.recipe.RecipeMaps; +import gregtech.api.recipe.metadata.PCBFactoryTierKey; +import gregtech.api.recipe.metadata.PCBFactoryUpgradeKey; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_PCBFactoryManager; @@ -31,12 +35,10 @@ import gregtech.api.util.GT_Utility; @SuppressWarnings("SpellCheckingInspection") public class GT_PCBFactoryRecipes { - public static void load() { - final int mBioUpgradeBitMap = 0b1000; - final int mTier3BitMap = 0b100; - final int mTier2BitMap = 0b10; - final int mTier1BitMap = 0b1; + private static final PCBFactoryTierKey TIER = PCBFactoryTierKey.INSTANCE; + private static final PCBFactoryUpgradeKey UPGRADE = PCBFactoryUpgradeKey.INSTANCE; + public static void load() { final Fluid solderLuV = FluidRegistry.getFluid("molten.indalloy140") != null ? FluidRegistry.getFluid("molten.indalloy140") : FluidRegistry.getFluid("molten.solderingalloy"); @@ -65,7 +67,7 @@ public class GT_PCBFactoryRecipes { .itemOutputs(ItemList.BasicPhotolithographicFrameworkCasing.get(1)) .duration(30 * SECONDS) .eut(TierEU.RECIPE_ZPM) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Infinity, 1), @@ -73,7 +75,7 @@ public class GT_PCBFactoryRecipes { .itemOutputs(ItemList.ReinforcedPhotolithographicFrameworkCasing.get(1)) .duration(30 * SECONDS) .eut(TierEU.RECIPE_UHV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_ModHandler.getModItem(GTPlusPlus.ID, "blockFrameGtCelestialTungsten", 1), @@ -82,7 +84,7 @@ public class GT_PCBFactoryRecipes { .itemOutputs(ItemList.RadiationProofPhotolithographicFrameworkCasing.get(1)) .duration(30 * SECONDS) .eut(TierEU.RECIPE_UIV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( GT_ModHandler.getModItem(GTPlusPlus.ID, "blockFrameGtHypogen", 1), @@ -92,7 +94,7 @@ public class GT_PCBFactoryRecipes { .fluidInputs(MaterialsUEVplus.SpaceTime.getMolten(8 * 144)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_UMV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } // Load CircuitBoard Recipes @@ -106,19 +108,22 @@ public class GT_PCBFactoryRecipes { amountOfBoards -= 64; } aBoards.add(ItemList.Circuit_Board_Plastic_Advanced.get(amountOfBoards)); - GT_Values.RA.addPCBFactoryRecipe( - new ItemStack[] { GT_Utility.getIntegratedCircuit(1), + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(1), GT_PCBFactoryManager.getPlasticMaterialFromTier(tier) .getPlates(1), GT_OreDictUnificator .get(OrePrefixes.foil, Materials.AnnealedCopper, (long) (16 * (Math.sqrt(tier)))), - GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Copper, (long) (16 * (Math.sqrt(tier)))) }, - new FluidStack[] { Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier)))), - Materials.IronIIIChloride.getFluid((long) (250 * (Math.sqrt(tier)))) }, - aBoards.toArray(new ItemStack[0]), - (int) Math.ceil(600 / Math.sqrt(Math.pow(1.5, tier - 1.5))), - (int) GT_Values.VP[tier] * 3 / 4, - mTier1BitMap | mTier2BitMap | mTier3BitMap); + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Copper, (long) (16 * (Math.sqrt(tier))))) + .fluidInputs( + Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier)))), + Materials.IronIIIChloride.getFluid((long) (250 * (Math.sqrt(tier))))) + .itemOutputs(aBoards.toArray(new ItemStack[0])) + .duration((int) Math.ceil(600 / Math.sqrt(Math.pow(1.5, tier - 1.5)))) + .eut((int) GT_Values.VP[tier] * 3 / 4) + .metadata(TIER, 1) + .addTo(RecipeMaps.pcbFactoryRecipes); } for (int tier = 1; tier <= GT_PCBFactoryManager.mTiersOfPlastics; tier++) { int amountOfBoards = (int) Math.ceil(8 * (Math.sqrt(Math.pow(2, tier - 0.5)))); @@ -128,19 +133,23 @@ public class GT_PCBFactoryRecipes { amountOfBoards -= 64; } aBoards.add(ItemList.Circuit_Board_Plastic_Advanced.get(amountOfBoards)); - GT_Values.RA.addPCBFactoryRecipe( - new ItemStack[] { GT_Utility.getIntegratedCircuit(2), GT_Utility.getNaniteAsCatalyst(Materials.Silver), + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(2), + GT_Utility.getNaniteAsCatalyst(Materials.Silver), GT_PCBFactoryManager.getPlasticMaterialFromTier(tier) .getPlates(1), GT_OreDictUnificator .get(OrePrefixes.foil, Materials.AnnealedCopper, (long) (16 * (Math.sqrt(tier)))), - GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Copper, (long) (16 * (Math.sqrt(tier)))) }, - new FluidStack[] { Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier)))), - Materials.IronIIIChloride.getFluid((long) (250 * (Math.sqrt(tier)))) }, - aBoards.toArray(new ItemStack[0]), - (int) Math.ceil(500 / Math.sqrt(Math.pow(1.5, tier - 1.5))), - (int) GT_Values.VP[tier + 1] * 3 / 4, - mTier2BitMap | mTier3BitMap); + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Copper, (long) (16 * (Math.sqrt(tier))))) + .fluidInputs( + Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier)))), + Materials.IronIIIChloride.getFluid((long) (250 * (Math.sqrt(tier))))) + .itemOutputs(aBoards.toArray(new ItemStack[0])) + .duration((int) Math.ceil(500 / Math.sqrt(Math.pow(1.5, tier - 1.5)))) + .eut((int) GT_Values.VP[tier + 1] * 3 / 4) + .metadata(TIER, 2) + .addTo(RecipeMaps.pcbFactoryRecipes); } for (int tier = 1; tier <= GT_PCBFactoryManager.mTiersOfPlastics; tier++) { int amountOfBoards = (int) Math.ceil(8 * (Math.sqrt(Math.pow(2, tier)))); @@ -150,19 +159,23 @@ public class GT_PCBFactoryRecipes { amountOfBoards -= 64; } aBoards.add(ItemList.Circuit_Board_Plastic_Advanced.get(amountOfBoards)); - GT_Values.RA.addPCBFactoryRecipe( - new ItemStack[] { GT_Utility.getIntegratedCircuit(3), GT_Utility.getNaniteAsCatalyst(Materials.Gold), + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(3), + GT_Utility.getNaniteAsCatalyst(Materials.Gold), GT_PCBFactoryManager.getPlasticMaterialFromTier(tier) .getPlates(1), GT_OreDictUnificator .get(OrePrefixes.foil, Materials.AnnealedCopper, (long) (16 * (Math.sqrt(tier)))), - GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Copper, (long) (16 * (Math.sqrt(tier)))) }, - new FluidStack[] { Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier)))), - Materials.IronIIIChloride.getFluid((long) (250 * (Math.sqrt(tier)))) }, - aBoards.toArray(new ItemStack[0]), - (int) Math.ceil(400 / Math.sqrt(Math.pow(1.5, tier - 1.5))), - (int) GT_Values.VP[tier + 1] * 3 / 4, - mTier3BitMap); + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Copper, (long) (16 * (Math.sqrt(tier))))) + .fluidInputs( + Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier)))), + Materials.IronIIIChloride.getFluid((long) (250 * (Math.sqrt(tier))))) + .itemOutputs(aBoards.toArray(new ItemStack[0])) + .duration((int) Math.ceil(400 / Math.sqrt(Math.pow(1.5, tier - 1.5)))) + .eut((int) GT_Values.VP[tier + 1] * 3 / 4) + .metadata(TIER, 3) + .addTo(RecipeMaps.pcbFactoryRecipes); } // Advanced Circuit Board @@ -174,19 +187,21 @@ public class GT_PCBFactoryRecipes { amountOfBoards -= 64; } aBoards.add(ItemList.Circuit_Board_Epoxy_Advanced.get(amountOfBoards)); - GT_Values.RA.addPCBFactoryRecipe( - new ItemStack[] { GT_Utility.getIntegratedCircuit(1), + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(1), GT_PCBFactoryManager.getPlasticMaterialFromTier(tier) .getPlates(1), GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Gold, (long) (16 * (Math.sqrt(tier - 1)))), - GT_OreDictUnificator - .get(OrePrefixes.foil, Materials.Electrum, (long) (16 * (Math.sqrt(tier - 1)))) }, - new FluidStack[] { Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 1)))), - Materials.IronIIIChloride.getFluid((long) (500 * (Math.sqrt(tier - 1)))) }, - aBoards.toArray(new ItemStack[0]), - (int) Math.ceil(600 / Math.sqrt(Math.pow(1.5, tier - 2.5))), - (int) GT_Values.VP[tier] * 3 / 4, - mTier1BitMap | mTier2BitMap | mTier3BitMap); + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Electrum, (long) (16 * (Math.sqrt(tier - 1))))) + .fluidInputs( + Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 1)))), + Materials.IronIIIChloride.getFluid((long) (500 * (Math.sqrt(tier - 1))))) + .itemOutputs(aBoards.toArray(new ItemStack[0])) + .duration((int) Math.ceil(600 / Math.sqrt(Math.pow(1.5, tier - 2.5)))) + .eut((int) GT_Values.VP[tier] * 3 / 4) + .metadata(TIER, 1) + .addTo(RecipeMaps.pcbFactoryRecipes); } for (int tier = 2; tier <= GT_PCBFactoryManager.mTiersOfPlastics; tier++) { int amountOfBoards = (int) Math.ceil(8 * (Math.sqrt(Math.pow(2, tier - 1.5)))); @@ -196,19 +211,22 @@ public class GT_PCBFactoryRecipes { amountOfBoards -= 64; } aBoards.add(ItemList.Circuit_Board_Epoxy_Advanced.get(amountOfBoards)); - GT_Values.RA.addPCBFactoryRecipe( - new ItemStack[] { GT_Utility.getIntegratedCircuit(2), GT_Utility.getNaniteAsCatalyst(Materials.Silver), + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(2), + GT_Utility.getNaniteAsCatalyst(Materials.Silver), GT_PCBFactoryManager.getPlasticMaterialFromTier(tier) .getPlates(1), GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Gold, (long) (16 * (Math.sqrt(tier - 1)))), - GT_OreDictUnificator - .get(OrePrefixes.foil, Materials.Electrum, (long) (16 * (Math.sqrt(tier - 1)))) }, - new FluidStack[] { Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 1)))), - Materials.IronIIIChloride.getFluid((long) (500 * (Math.sqrt(tier - 1)))) }, - aBoards.toArray(new ItemStack[0]), - (int) Math.ceil(500 / Math.sqrt(Math.pow(1.5, tier - 2.5))), - (int) GT_Values.VP[tier + 1] * 3 / 4, - mTier2BitMap | mTier3BitMap); + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Electrum, (long) (16 * (Math.sqrt(tier - 1))))) + .fluidInputs( + Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 1)))), + Materials.IronIIIChloride.getFluid((long) (500 * (Math.sqrt(tier - 1))))) + .itemOutputs(aBoards.toArray(new ItemStack[0])) + .duration((int) Math.ceil(500 / Math.sqrt(Math.pow(1.5, tier - 2.5)))) + .eut((int) GT_Values.VP[tier + 1] * 3 / 4) + .metadata(TIER, 2) + .addTo(RecipeMaps.pcbFactoryRecipes); } for (int tier = 2; tier <= GT_PCBFactoryManager.mTiersOfPlastics; tier++) { int amountOfBoards = (int) Math.ceil(8 * (Math.sqrt(Math.pow(2, tier - 1)))); @@ -218,19 +236,22 @@ public class GT_PCBFactoryRecipes { amountOfBoards -= 64; } aBoards.add(ItemList.Circuit_Board_Epoxy_Advanced.get(amountOfBoards)); - GT_Values.RA.addPCBFactoryRecipe( - new ItemStack[] { GT_Utility.getIntegratedCircuit(3), GT_Utility.getNaniteAsCatalyst(Materials.Gold), + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(3), + GT_Utility.getNaniteAsCatalyst(Materials.Gold), GT_PCBFactoryManager.getPlasticMaterialFromTier(tier) .getPlates(1), GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Gold, (long) (16 * (Math.sqrt(tier - 1)))), - GT_OreDictUnificator - .get(OrePrefixes.foil, Materials.Electrum, (long) (16 * (Math.sqrt(tier - 1)))) }, - new FluidStack[] { Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 1)))), - Materials.IronIIIChloride.getFluid((long) (500 * (Math.sqrt(tier - 1)))) }, - aBoards.toArray(new ItemStack[0]), - (int) Math.ceil(400 / Math.sqrt(Math.pow(1.5, tier - 2.5))), - (int) GT_Values.VP[tier + 1] * 3 / 4, - mTier3BitMap); + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Electrum, (long) (16 * (Math.sqrt(tier - 1))))) + .fluidInputs( + Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 1)))), + Materials.IronIIIChloride.getFluid((long) (500 * (Math.sqrt(tier - 1))))) + .itemOutputs(aBoards.toArray(new ItemStack[0])) + .duration((int) Math.ceil(400 / Math.sqrt(Math.pow(1.5, tier - 2.5)))) + .eut((int) GT_Values.VP[tier + 1] * 3 / 4) + .metadata(TIER, 3) + .addTo(RecipeMaps.pcbFactoryRecipes); } // More Advanced Circuit Board @@ -242,20 +263,23 @@ public class GT_PCBFactoryRecipes { amountOfBoards -= 64; } aBoards.add(ItemList.Circuit_Board_Fiberglass_Advanced.get(amountOfBoards)); - GT_Values.RA.addPCBFactoryRecipe( - new ItemStack[] { GT_Utility.getIntegratedCircuit(1), + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(1), GT_PCBFactoryManager.getPlasticMaterialFromTier(tier) .getPlates(1), GT_OreDictUnificator .get(OrePrefixes.foil, Materials.Aluminium, (long) (16 * (Math.sqrt(tier - 2)))), GT_OreDictUnificator - .get(OrePrefixes.foil, Materials.EnergeticAlloy, (long) (16 * (Math.sqrt(tier - 2)))) }, - new FluidStack[] { Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 2)))), - Materials.IronIIIChloride.getFluid((long) (1000 * (Math.sqrt(tier - 2)))) }, - aBoards.toArray(new ItemStack[0]), - (int) Math.ceil(600 / Math.sqrt(Math.pow(1.5, tier - 3.5))), - (int) GT_Values.VP[tier] * 3 / 4, - mTier1BitMap | mTier2BitMap | mTier3BitMap); + .get(OrePrefixes.foil, Materials.EnergeticAlloy, (long) (16 * (Math.sqrt(tier - 2))))) + .fluidInputs( + Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 2)))), + Materials.IronIIIChloride.getFluid((long) (1000 * (Math.sqrt(tier - 2))))) + .itemOutputs(aBoards.toArray(new ItemStack[0])) + .duration((int) Math.ceil(600 / Math.sqrt(Math.pow(1.5, tier - 3.5)))) + .eut((int) GT_Values.VP[tier] * 3 / 4) + .metadata(TIER, 1) + .addTo(RecipeMaps.pcbFactoryRecipes); } for (int tier = 3; tier <= GT_PCBFactoryManager.mTiersOfPlastics; tier++) { int amountOfBoards = (int) Math.ceil(8 * (Math.sqrt(Math.pow(2, tier - 2.5)))); @@ -265,20 +289,24 @@ public class GT_PCBFactoryRecipes { amountOfBoards -= 64; } aBoards.add(ItemList.Circuit_Board_Fiberglass_Advanced.get(amountOfBoards)); - GT_Values.RA.addPCBFactoryRecipe( - new ItemStack[] { GT_Utility.getIntegratedCircuit(2), GT_Utility.getNaniteAsCatalyst(Materials.Silver), + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(2), + GT_Utility.getNaniteAsCatalyst(Materials.Silver), GT_PCBFactoryManager.getPlasticMaterialFromTier(tier) .getPlates(1), GT_OreDictUnificator .get(OrePrefixes.foil, Materials.Aluminium, (long) (16 * (Math.sqrt(tier - 2)))), GT_OreDictUnificator - .get(OrePrefixes.foil, Materials.EnergeticAlloy, (long) (16 * (Math.sqrt(tier - 2)))) }, - new FluidStack[] { Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 2)))), - Materials.IronIIIChloride.getFluid((long) (1000 * (Math.sqrt(tier - 2)))) }, - aBoards.toArray(new ItemStack[0]), - (int) Math.ceil(500 / Math.sqrt(Math.pow(1.5, tier - 3.5))), - (int) GT_Values.VP[tier + 1] * 3 / 4, - mTier2BitMap | mTier3BitMap); + .get(OrePrefixes.foil, Materials.EnergeticAlloy, (long) (16 * (Math.sqrt(tier - 2))))) + .fluidInputs( + Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 2)))), + Materials.IronIIIChloride.getFluid((long) (1000 * (Math.sqrt(tier - 2))))) + .itemOutputs(aBoards.toArray(new ItemStack[0])) + .duration((int) Math.ceil(500 / Math.sqrt(Math.pow(1.5, tier - 3.5)))) + .eut((int) GT_Values.VP[tier + 1] * 3 / 4) + .metadata(TIER, 2) + .addTo(RecipeMaps.pcbFactoryRecipes); } for (int tier = 3; tier <= GT_PCBFactoryManager.mTiersOfPlastics; tier++) { int amountOfBoards = (int) Math.ceil(8 * (Math.sqrt(Math.pow(2, tier - 2)))); @@ -288,20 +316,24 @@ public class GT_PCBFactoryRecipes { amountOfBoards -= 64; } aBoards.add(ItemList.Circuit_Board_Fiberglass_Advanced.get(amountOfBoards)); - GT_Values.RA.addPCBFactoryRecipe( - new ItemStack[] { GT_Utility.getIntegratedCircuit(3), GT_Utility.getNaniteAsCatalyst(Materials.Gold), + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(3), + GT_Utility.getNaniteAsCatalyst(Materials.Gold), GT_PCBFactoryManager.getPlasticMaterialFromTier(tier) .getPlates(1), GT_OreDictUnificator .get(OrePrefixes.foil, Materials.Aluminium, (long) (16 * (Math.sqrt(tier - 2)))), GT_OreDictUnificator - .get(OrePrefixes.foil, Materials.EnergeticAlloy, (long) (16 * (Math.sqrt(tier - 2)))) }, - new FluidStack[] { Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 2)))), - Materials.IronIIIChloride.getFluid((long) (1000 * (Math.sqrt(tier - 2)))) }, - aBoards.toArray(new ItemStack[0]), - (int) Math.ceil(400 / Math.sqrt(Math.pow(1.5, tier - 3.5))), - (int) GT_Values.VP[tier + 1] * 3 / 4, - mTier3BitMap); + .get(OrePrefixes.foil, Materials.EnergeticAlloy, (long) (16 * (Math.sqrt(tier - 2))))) + .fluidInputs( + Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 2)))), + Materials.IronIIIChloride.getFluid((long) (1000 * (Math.sqrt(tier - 2))))) + .itemOutputs(aBoards.toArray(new ItemStack[0])) + .duration((int) Math.ceil(400 / Math.sqrt(Math.pow(1.5, tier - 3.5)))) + .eut((int) GT_Values.VP[tier + 1] * 3 / 4) + .metadata(TIER, 3) + .addTo(RecipeMaps.pcbFactoryRecipes); } // Elite Circuit Board @@ -313,20 +345,22 @@ public class GT_PCBFactoryRecipes { amountOfBoards -= 64; } aBoards.add(ItemList.Circuit_Board_Multifiberglass_Elite.get(amountOfBoards)); - GT_Values.RA.addPCBFactoryRecipe( - new ItemStack[] { GT_Utility.getIntegratedCircuit(1), + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(1), GT_PCBFactoryManager.getPlasticMaterialFromTier(tier) .getPlates(1), GT_OreDictUnificator .get(OrePrefixes.foil, Materials.Palladium, (long) (16 * (Math.sqrt(tier - 3)))), - GT_OreDictUnificator - .get(OrePrefixes.foil, Materials.Platinum, (long) (16 * (Math.sqrt(tier - 3)))) }, - new FluidStack[] { Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 3)))), - Materials.IronIIIChloride.getFluid((long) (2000 * (Math.sqrt(tier - 3)))) }, - aBoards.toArray(new ItemStack[0]), - (int) Math.ceil(600 / Math.sqrt(Math.pow(1.5, tier - 4.5))), - (int) GT_Values.VP[tier] * 3 / 4, - mTier1BitMap | mTier2BitMap | mTier3BitMap); + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Platinum, (long) (16 * (Math.sqrt(tier - 3))))) + .fluidInputs( + Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 3)))), + Materials.IronIIIChloride.getFluid((long) (2000 * (Math.sqrt(tier - 3))))) + .itemOutputs(aBoards.toArray(new ItemStack[0])) + .duration((int) Math.ceil(600 / Math.sqrt(Math.pow(1.5, tier - 4.5)))) + .eut((int) GT_Values.VP[tier] * 3 / 4) + .metadata(TIER, 1) + .addTo(RecipeMaps.pcbFactoryRecipes); } for (int tier = 4; tier <= GT_PCBFactoryManager.mTiersOfPlastics; tier++) { int amountOfBoards = (int) Math.ceil(8 * (Math.sqrt(Math.pow(2, tier - 3.5)))); @@ -336,20 +370,23 @@ public class GT_PCBFactoryRecipes { amountOfBoards -= 64; } aBoards.add(ItemList.Circuit_Board_Multifiberglass_Elite.get(amountOfBoards)); - GT_Values.RA.addPCBFactoryRecipe( - new ItemStack[] { GT_Utility.getIntegratedCircuit(2), GT_Utility.getNaniteAsCatalyst(Materials.Silver), + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(2), + GT_Utility.getNaniteAsCatalyst(Materials.Silver), GT_PCBFactoryManager.getPlasticMaterialFromTier(tier) .getPlates(1), GT_OreDictUnificator .get(OrePrefixes.foil, Materials.Palladium, (long) (16 * (Math.sqrt(tier - 3)))), - GT_OreDictUnificator - .get(OrePrefixes.foil, Materials.Platinum, (long) (16 * (Math.sqrt(tier - 3)))) }, - new FluidStack[] { Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 3)))), - Materials.IronIIIChloride.getFluid((long) (2000 * (Math.sqrt(tier - 3)))) }, - aBoards.toArray(new ItemStack[0]), - (int) Math.ceil(500 / Math.sqrt(Math.pow(1.5, tier - 4.5))), - (int) GT_Values.VP[tier + 1] * 3 / 4, - mTier2BitMap | mTier3BitMap); + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Platinum, (long) (16 * (Math.sqrt(tier - 3))))) + .fluidInputs( + Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 3)))), + Materials.IronIIIChloride.getFluid((long) (2000 * (Math.sqrt(tier - 3))))) + .itemOutputs(aBoards.toArray(new ItemStack[0])) + .duration((int) Math.ceil(500 / Math.sqrt(Math.pow(1.5, tier - 4.5)))) + .eut((int) GT_Values.VP[tier + 1] * 3 / 4) + .metadata(TIER, 2) + .addTo(RecipeMaps.pcbFactoryRecipes); } for (int tier = 4; tier <= GT_PCBFactoryManager.mTiersOfPlastics; tier++) { int amountOfBoards = (int) Math.ceil(8 * (Math.sqrt(Math.pow(2, tier - 3)))); @@ -359,20 +396,23 @@ public class GT_PCBFactoryRecipes { amountOfBoards -= 64; } aBoards.add(ItemList.Circuit_Board_Multifiberglass_Elite.get(amountOfBoards)); - GT_Values.RA.addPCBFactoryRecipe( - new ItemStack[] { GT_Utility.getIntegratedCircuit(3), GT_Utility.getNaniteAsCatalyst(Materials.Gold), + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(3), + GT_Utility.getNaniteAsCatalyst(Materials.Gold), GT_PCBFactoryManager.getPlasticMaterialFromTier(tier) .getPlates(1), GT_OreDictUnificator .get(OrePrefixes.foil, Materials.Palladium, (long) (16 * (Math.sqrt(tier - 3)))), - GT_OreDictUnificator - .get(OrePrefixes.foil, Materials.Platinum, (long) (16 * (Math.sqrt(tier - 3)))) }, - new FluidStack[] { Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 3)))), - Materials.IronIIIChloride.getFluid((long) (2000 * (Math.sqrt(tier - 3)))) }, - aBoards.toArray(new ItemStack[0]), - (int) Math.ceil(400 / Math.sqrt(Math.pow(1.5, tier - 4.5))), - (int) GT_Values.VP[tier + 1] * 3 / 4, - mTier3BitMap); + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Platinum, (long) (16 * (Math.sqrt(tier - 3))))) + .fluidInputs( + Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 3)))), + Materials.IronIIIChloride.getFluid((long) (2000 * (Math.sqrt(tier - 3))))) + .itemOutputs(aBoards.toArray(new ItemStack[0])) + .duration((int) Math.ceil(400 / Math.sqrt(Math.pow(1.5, tier - 4.5)))) + .eut((int) GT_Values.VP[tier + 1] * 3 / 4) + .metadata(TIER, 3) + .addTo(RecipeMaps.pcbFactoryRecipes); } // Wetware Circuit Board @@ -384,21 +424,25 @@ public class GT_PCBFactoryRecipes { amountOfBoards -= 64; } aBoards.add(ItemList.Circuit_Board_Wetware_Extreme.get(amountOfBoards)); - GT_Values.RA.addPCBFactoryRecipe( - new ItemStack[] { GT_Utility.getIntegratedCircuit(1), + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(1), GT_PCBFactoryManager.getPlasticMaterialFromTier(tier) .getPlates(1), GT_OreDictUnificator .get(OrePrefixes.foil, Materials.EnrichedHolmium, (long) (16 * (Math.sqrt(tier - 4)))), GT_OreDictUnificator - .get(OrePrefixes.foil, Materials.NiobiumTitanium, (long) (16 * (Math.sqrt(tier - 4)))) }, - new FluidStack[] { Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 4)))), + .get(OrePrefixes.foil, Materials.NiobiumTitanium, (long) (16 * (Math.sqrt(tier - 4))))) + .fluidInputs( + Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 4)))), Materials.IronIIIChloride.getFluid((long) (5000 * (Math.sqrt(tier - 4)))), - Materials.GrowthMediumSterilized.getFluid((long) (2000 * (Math.sqrt(tier - 4)))) }, - aBoards.toArray(new ItemStack[0]), - (int) Math.ceil(600 / Math.sqrt(Math.pow(1.5, tier - 5.5))), - (int) GT_Values.VP[tier] * 3 / 4, - mTier1BitMap | mTier2BitMap | mTier3BitMap | mBioUpgradeBitMap); + Materials.GrowthMediumSterilized.getFluid((long) (2000 * (Math.sqrt(tier - 4))))) + .itemOutputs(aBoards.toArray(new ItemStack[0])) + .duration((int) Math.ceil(600 / Math.sqrt(Math.pow(1.5, tier - 5.5)))) + .eut((int) GT_Values.VP[tier] * 3 / 4) + .metadata(TIER, 1) + .metadata(UPGRADE, BIO) + .addTo(RecipeMaps.pcbFactoryRecipes); } for (int tier = 5; tier <= GT_PCBFactoryManager.mTiersOfPlastics; tier++) { int amountOfBoards = (int) Math.ceil(8 * (Math.sqrt(Math.pow(2, tier - 4.5)))); @@ -408,21 +452,26 @@ public class GT_PCBFactoryRecipes { amountOfBoards -= 64; } aBoards.add(ItemList.Circuit_Board_Wetware_Extreme.get(amountOfBoards)); - GT_Values.RA.addPCBFactoryRecipe( - new ItemStack[] { GT_Utility.getIntegratedCircuit(2), GT_Utility.getNaniteAsCatalyst(Materials.Silver), + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(2), + GT_Utility.getNaniteAsCatalyst(Materials.Silver), GT_PCBFactoryManager.getPlasticMaterialFromTier(tier) .getPlates(1), GT_OreDictUnificator .get(OrePrefixes.foil, Materials.EnrichedHolmium, (long) (16 * (Math.sqrt(tier - 4)))), GT_OreDictUnificator - .get(OrePrefixes.foil, Materials.NiobiumTitanium, (long) (16 * (Math.sqrt(tier - 4)))) }, - new FluidStack[] { Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 4)))), + .get(OrePrefixes.foil, Materials.NiobiumTitanium, (long) (16 * (Math.sqrt(tier - 4))))) + .fluidInputs( + Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 4)))), Materials.IronIIIChloride.getFluid((long) (5000 * (Math.sqrt(tier - 4)))), - Materials.GrowthMediumSterilized.getFluid((long) (2000 * (Math.sqrt(tier - 4)))) }, - aBoards.toArray(new ItemStack[0]), - (int) Math.ceil(500 / Math.sqrt(Math.pow(1.5, tier - 5.5))), - (int) GT_Values.VP[tier + 1] * 3 / 4, - mTier2BitMap | mTier3BitMap | mBioUpgradeBitMap); + Materials.GrowthMediumSterilized.getFluid((long) (2000 * (Math.sqrt(tier - 4))))) + .itemOutputs(aBoards.toArray(new ItemStack[0])) + .duration((int) Math.ceil(500 / Math.sqrt(Math.pow(1.5, tier - 5.5)))) + .eut((int) GT_Values.VP[tier + 1] * 3 / 4) + .metadata(TIER, 2) + .metadata(UPGRADE, BIO) + .addTo(RecipeMaps.pcbFactoryRecipes); } for (int tier = 5; tier <= GT_PCBFactoryManager.mTiersOfPlastics; tier++) { int amountOfBoards = (int) Math.ceil(8 * (Math.sqrt(Math.pow(2, tier - 4)))); @@ -432,21 +481,26 @@ public class GT_PCBFactoryRecipes { amountOfBoards -= 64; } aBoards.add(ItemList.Circuit_Board_Wetware_Extreme.get(amountOfBoards)); - GT_Values.RA.addPCBFactoryRecipe( - new ItemStack[] { GT_Utility.getIntegratedCircuit(3), GT_Utility.getNaniteAsCatalyst(Materials.Gold), + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(3), + GT_Utility.getNaniteAsCatalyst(Materials.Gold), GT_PCBFactoryManager.getPlasticMaterialFromTier(tier) .getPlates(1), GT_OreDictUnificator .get(OrePrefixes.foil, Materials.EnrichedHolmium, (long) (16 * (Math.sqrt(tier - 4)))), GT_OreDictUnificator - .get(OrePrefixes.foil, Materials.NiobiumTitanium, (long) (16 * (Math.sqrt(tier - 4)))) }, - new FluidStack[] { Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 4)))), + .get(OrePrefixes.foil, Materials.NiobiumTitanium, (long) (16 * (Math.sqrt(tier - 4))))) + .fluidInputs( + Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 4)))), Materials.IronIIIChloride.getFluid((long) (5000 * (Math.sqrt(tier - 4)))), - Materials.GrowthMediumSterilized.getFluid((long) (2000 * (Math.sqrt(tier - 4)))) }, - aBoards.toArray(new ItemStack[0]), - (int) Math.ceil(400 / Math.sqrt(Math.pow(1.5, tier - 5.5))), - (int) GT_Values.VP[tier + 1] * 3 / 4, - mTier3BitMap | mBioUpgradeBitMap); + Materials.GrowthMediumSterilized.getFluid((long) (2000 * (Math.sqrt(tier - 4))))) + .itemOutputs(aBoards.toArray(new ItemStack[0])) + .duration((int) Math.ceil(400 / Math.sqrt(Math.pow(1.5, tier - 5.5)))) + .eut((int) GT_Values.VP[tier + 1] * 3 / 4) + .metadata(TIER, 3) + .metadata(UPGRADE, BIO) + .addTo(RecipeMaps.pcbFactoryRecipes); } // Bioware Circuit Board @@ -458,8 +512,9 @@ public class GT_PCBFactoryRecipes { amountOfBoards -= 64; } aBoards.add(ItemList.Circuit_Board_Bio_Ultra.get(amountOfBoards)); - GT_Values.RA.addPCBFactoryRecipe( - new ItemStack[] { GT_Utility.getIntegratedCircuit(1), + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(1), GT_PCBFactoryManager.getPlasticMaterialFromTier(tier) .getPlates(1), GT_OreDictUnificator.get( @@ -467,14 +522,17 @@ public class GT_PCBFactoryRecipes { Materials.Longasssuperconductornameforuvwire, (long) (16 * (Math.sqrt(tier - 5)))), GT_OreDictUnificator - .get(OrePrefixes.foil, Materials.Neutronium, (long) (16 * (Math.sqrt(tier - 5)))) }, - new FluidStack[] { Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 5)))), + .get(OrePrefixes.foil, Materials.Neutronium, (long) (16 * (Math.sqrt(tier - 5))))) + .fluidInputs( + Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 5)))), Materials.IronIIIChloride.getFluid((long) (7500 * (Math.sqrt(tier - 5)))), - Materials.BioMediumSterilized.getFluid((long) (4000 * (Math.sqrt(tier - 5)))) }, - aBoards.toArray(new ItemStack[0]), - (int) Math.ceil(600 / Math.sqrt(Math.pow(1.5, tier - 5.5))), - (int) GT_Values.VP[tier] * 3 / 4, - mTier1BitMap | mTier2BitMap | mTier3BitMap | mBioUpgradeBitMap); + Materials.BioMediumSterilized.getFluid((long) (4000 * (Math.sqrt(tier - 5))))) + .itemOutputs(aBoards.toArray(new ItemStack[0])) + .duration((int) Math.ceil(600 / Math.sqrt(Math.pow(1.5, tier - 5.5)))) + .eut((int) GT_Values.VP[tier] * 3 / 4) + .metadata(TIER, 1) + .metadata(UPGRADE, BIO) + .addTo(RecipeMaps.pcbFactoryRecipes); } for (int tier = 6; tier <= GT_PCBFactoryManager.mTiersOfPlastics; tier++) { int amountOfBoards = (int) Math.ceil(8 * (Math.sqrt(Math.pow(2, tier - 5.5)))); @@ -484,8 +542,10 @@ public class GT_PCBFactoryRecipes { amountOfBoards -= 64; } aBoards.add(ItemList.Circuit_Board_Bio_Ultra.get(amountOfBoards)); - GT_Values.RA.addPCBFactoryRecipe( - new ItemStack[] { GT_Utility.getIntegratedCircuit(2), GT_Utility.getNaniteAsCatalyst(Materials.Silver), + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(2), + GT_Utility.getNaniteAsCatalyst(Materials.Silver), GT_PCBFactoryManager.getPlasticMaterialFromTier(tier) .getPlates(1), GT_OreDictUnificator.get( @@ -493,14 +553,17 @@ public class GT_PCBFactoryRecipes { Materials.Longasssuperconductornameforuvwire, (long) (16 * (Math.sqrt(tier - 5)))), GT_OreDictUnificator - .get(OrePrefixes.foil, Materials.Neutronium, (long) (16 * (Math.sqrt(tier - 5)))) }, - new FluidStack[] { Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 5)))), + .get(OrePrefixes.foil, Materials.Neutronium, (long) (16 * (Math.sqrt(tier - 5))))) + .fluidInputs( + Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 5)))), Materials.IronIIIChloride.getFluid((long) (7500 * (Math.sqrt(tier - 5)))), - Materials.BioMediumSterilized.getFluid((long) (4000 * (Math.sqrt(tier - 5)))) }, - aBoards.toArray(new ItemStack[0]), - (int) Math.ceil(500 / Math.sqrt(Math.pow(1.5, tier - 6.5))), - (int) GT_Values.VP[tier + 1] * 3 / 4, - mTier2BitMap | mTier3BitMap | mBioUpgradeBitMap); + Materials.BioMediumSterilized.getFluid((long) (4000 * (Math.sqrt(tier - 5))))) + .itemOutputs(aBoards.toArray(new ItemStack[0])) + .duration((int) Math.ceil(500 / Math.sqrt(Math.pow(1.5, tier - 6.5)))) + .eut((int) GT_Values.VP[tier + 1] * 3 / 4) + .metadata(TIER, 2) + .metadata(UPGRADE, BIO) + .addTo(RecipeMaps.pcbFactoryRecipes); } for (int tier = 6; tier <= GT_PCBFactoryManager.mTiersOfPlastics; tier++) { int amountOfBoards = (int) Math.ceil(8 * (Math.sqrt(Math.pow(2, tier - 5)))); @@ -510,8 +573,10 @@ public class GT_PCBFactoryRecipes { amountOfBoards -= 64; } aBoards.add(ItemList.Circuit_Board_Bio_Ultra.get(amountOfBoards)); - GT_Values.RA.addPCBFactoryRecipe( - new ItemStack[] { GT_Utility.getIntegratedCircuit(3), GT_Utility.getNaniteAsCatalyst(Materials.Gold), + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(3), + GT_Utility.getNaniteAsCatalyst(Materials.Gold), GT_PCBFactoryManager.getPlasticMaterialFromTier(tier) .getPlates(1), GT_OreDictUnificator.get( @@ -519,14 +584,17 @@ public class GT_PCBFactoryRecipes { Materials.Longasssuperconductornameforuvwire, (long) (16 * (Math.sqrt(tier - 5)))), GT_OreDictUnificator - .get(OrePrefixes.foil, Materials.Neutronium, (long) (16 * (Math.sqrt(tier - 5)))) }, - new FluidStack[] { Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 5)))), + .get(OrePrefixes.foil, Materials.Neutronium, (long) (16 * (Math.sqrt(tier - 5))))) + .fluidInputs( + Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 5)))), Materials.IronIIIChloride.getFluid((long) (7500 * (Math.sqrt(tier - 5)))), - Materials.BioMediumSterilized.getFluid((long) (4000 * (Math.sqrt(tier - 5)))) }, - aBoards.toArray(new ItemStack[0]), - (int) Math.ceil(400 / Math.sqrt(Math.pow(1.5, tier - 6.5))), - (int) GT_Values.VP[tier + 1] * 3 / 4, - mTier3BitMap | mBioUpgradeBitMap); + Materials.BioMediumSterilized.getFluid((long) (4000 * (Math.sqrt(tier - 5))))) + .itemOutputs(aBoards.toArray(new ItemStack[0])) + .duration((int) Math.ceil(400 / Math.sqrt(Math.pow(1.5, tier - 6.5)))) + .eut((int) GT_Values.VP[tier + 1] * 3 / 4) + .metadata(TIER, 3) + .metadata(UPGRADE, BIO) + .addTo(RecipeMaps.pcbFactoryRecipes); } if (GTPlusPlus.isModLoaded()) { @@ -539,8 +607,9 @@ public class GT_PCBFactoryRecipes { amountOfBoards -= 64; } aBoards.add(ItemList.Circuit_Board_Optical.get(amountOfBoards)); - GT_Values.RA.addPCBFactoryRecipe( - new ItemStack[] { GT_Utility.getIntegratedCircuit(1), + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(1), GT_PCBFactoryManager.getPlasticMaterialFromTier(tier) .getPlates(1), GT_ModHandler.getModItem( @@ -551,14 +620,16 @@ public class GT_PCBFactoryRecipes { GT_OreDictUnificator .get(OrePrefixes.foil, Materials.InfinityCatalyst, (long) (16 * (Math.sqrt(tier - 6)))), GT_ModHandler - .getModItem("miscutils", "itemFoilChromaticGlass", (long) (16 * (Math.sqrt(tier - 6)))) }, - new FluidStack[] { Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 6)))), + .getModItem("miscutils", "itemFoilChromaticGlass", (long) (16 * (Math.sqrt(tier - 6))))) + .fluidInputs( + Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 6)))), Materials.IronIIIChloride.getFluid((long) (12500 * (Math.sqrt(tier - 6)))), - Materials.MysteriousCrystal.getMolten((long) (2880 * (Math.sqrt(tier - 6)))) }, - aBoards.toArray(new ItemStack[0]), - (int) Math.ceil(600 / Math.sqrt(Math.pow(1.5, tier - 5.5))), - (int) GT_Values.VP[tier] * 3 / 4, - mTier1BitMap | mTier2BitMap | mTier3BitMap); + Materials.MysteriousCrystal.getMolten((long) (2880 * (Math.sqrt(tier - 6))))) + .itemOutputs(aBoards.toArray(new ItemStack[0])) + .duration((int) Math.ceil(600 / Math.sqrt(Math.pow(1.5, tier - 5.5)))) + .eut((int) GT_Values.VP[tier] * 3 / 4) + .metadata(TIER, 1) + .addTo(RecipeMaps.pcbFactoryRecipes); } for (int tier = 7; tier <= GT_PCBFactoryManager.mTiersOfPlastics; tier++) { int amountOfBoards = (int) Math.ceil(8 * (Math.sqrt(Math.pow(2, tier - 6.5)))); @@ -568,8 +639,9 @@ public class GT_PCBFactoryRecipes { amountOfBoards -= 64; } aBoards.add(ItemList.Circuit_Board_Optical.get(amountOfBoards)); - GT_Values.RA.addPCBFactoryRecipe( - new ItemStack[] { GT_Utility.getIntegratedCircuit(2), + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(2), GT_Utility.getNaniteAsCatalyst(Materials.Silver), GT_PCBFactoryManager.getPlasticMaterialFromTier(tier) .getPlates(1), @@ -581,14 +653,16 @@ public class GT_PCBFactoryRecipes { GT_OreDictUnificator .get(OrePrefixes.foil, Materials.InfinityCatalyst, (long) (16 * (Math.sqrt(tier - 6)))), GT_ModHandler - .getModItem("miscutils", "itemFoilChromaticGlass", (long) (16 * (Math.sqrt(tier - 6)))) }, - new FluidStack[] { Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 6)))), + .getModItem("miscutils", "itemFoilChromaticGlass", (long) (16 * (Math.sqrt(tier - 6))))) + .fluidInputs( + Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 6)))), Materials.IronIIIChloride.getFluid((long) (12500 * (Math.sqrt(tier - 6)))), - Materials.MysteriousCrystal.getMolten((long) (2880 * (Math.sqrt(tier - 6)))) }, - aBoards.toArray(new ItemStack[0]), - (int) Math.ceil(500 / Math.sqrt(Math.pow(1.5, tier - 6.5))), - (int) GT_Values.VP[tier + 1] * 3 / 4, - mTier2BitMap | mTier3BitMap); + Materials.MysteriousCrystal.getMolten((long) (2880 * (Math.sqrt(tier - 6))))) + .itemOutputs(aBoards.toArray(new ItemStack[0])) + .duration((int) Math.ceil(500 / Math.sqrt(Math.pow(1.5, tier - 6.5)))) + .eut((int) GT_Values.VP[tier + 1] * 3 / 4) + .metadata(TIER, 2) + .addTo(RecipeMaps.pcbFactoryRecipes); } for (int tier = 7; tier <= GT_PCBFactoryManager.mTiersOfPlastics; tier++) { int amountOfBoards = (int) Math.ceil(8 * (Math.sqrt(Math.pow(2, tier - 6)))); @@ -598,8 +672,9 @@ public class GT_PCBFactoryRecipes { amountOfBoards -= 64; } aBoards.add(ItemList.Circuit_Board_Optical.get(amountOfBoards)); - GT_Values.RA.addPCBFactoryRecipe( - new ItemStack[] { GT_Utility.getIntegratedCircuit(3), + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.getIntegratedCircuit(3), GT_Utility.getNaniteAsCatalyst(Materials.Gold), GT_PCBFactoryManager.getPlasticMaterialFromTier(tier) .getPlates(1), @@ -611,14 +686,16 @@ public class GT_PCBFactoryRecipes { GT_OreDictUnificator .get(OrePrefixes.foil, Materials.InfinityCatalyst, (long) (16 * (Math.sqrt(tier - 6)))), GT_ModHandler - .getModItem("miscutils", "itemFoilChromaticGlass", (long) (16 * (Math.sqrt(tier - 6)))) }, - new FluidStack[] { Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 6)))), + .getModItem("miscutils", "itemFoilChromaticGlass", (long) (16 * (Math.sqrt(tier - 6))))) + .fluidInputs( + Materials.SulfuricAcid.getFluid((long) (500 * (Math.sqrt(tier - 6)))), Materials.IronIIIChloride.getFluid((long) (12500 * (Math.sqrt(tier - 6)))), - Materials.MysteriousCrystal.getMolten((long) (2880 * (Math.sqrt(tier - 6)))) }, - aBoards.toArray(new ItemStack[0]), - (int) Math.ceil(400 / Math.sqrt(Math.pow(1.5, tier - 6.5))), - (int) GT_Values.VP[tier + 1] * 3 / 4, - mTier3BitMap); + Materials.MysteriousCrystal.getMolten((long) (2880 * (Math.sqrt(tier - 6))))) + .itemOutputs(aBoards.toArray(new ItemStack[0])) + .duration((int) Math.ceil(400 / Math.sqrt(Math.pow(1.5, tier - 6.5)))) + .eut((int) GT_Values.VP[tier + 1] * 3 / 4) + .metadata(TIER, 3) + .addTo(RecipeMaps.pcbFactoryRecipes); } } } diff --git a/src/main/java/gregtech/loaders/postload/recipes/AlloySmelterRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/AlloySmelterRecipes.java index 76524541e3..a9e587a145 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/AlloySmelterRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/AlloySmelterRecipes.java @@ -1,6 +1,6 @@ package gregtech.loaders.postload.recipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sAlloySmelterRecipes; +import static gregtech.api.recipe.RecipeMaps.alloySmelterRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import net.minecraft.item.ItemStack; @@ -73,14 +73,14 @@ public class AlloySmelterRecipes implements Runnable { .itemOutputs(outputIngot) .duration((int) materials[2].mAmount * 50) .eut(16) - .addTo(sAlloySmelterRecipes); + .addTo(alloySmelterRecipes); if (ingot2 != null) { GT_Values.RA.stdBuilder() .itemInputs(ingot1, ingot2) .itemOutputs(outputIngot) .duration((int) materials[2].mAmount * 50) .eut(16) - .addTo(sAlloySmelterRecipes); + .addTo(alloySmelterRecipes); } } @@ -90,7 +90,7 @@ public class AlloySmelterRecipes implements Runnable { .itemOutputs(outputIngot) .duration((int) materials[2].mAmount * 50) .eut(16) - .addTo(sAlloySmelterRecipes); + .addTo(alloySmelterRecipes); } GT_Values.RA.stdBuilder() @@ -98,7 +98,7 @@ public class AlloySmelterRecipes implements Runnable { .itemOutputs(outputIngot) .duration((int) materials[2].mAmount * 50) .eut(16) - .addTo(sAlloySmelterRecipes); + .addTo(alloySmelterRecipes); } } @@ -111,6 +111,6 @@ public class AlloySmelterRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Rubber, 1L)) .duration(10 * SECONDS) .eut(8) - .addTo(sAlloySmelterRecipes); + .addTo(alloySmelterRecipes); } } diff --git a/src/main/java/gregtech/loaders/postload/recipes/ArcFurnaceRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/ArcFurnaceRecipes.java index c2309d3cb5..a6c85b7afd 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/ArcFurnaceRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/ArcFurnaceRecipes.java @@ -4,6 +4,7 @@ import static gregtech.api.enums.Mods.Railcraft; import static gregtech.api.util.GT_ModHandler.getModItem; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; +import static gregtech.api.util.GT_RecipeConstants.RECYCLE; import static gregtech.api.util.GT_RecipeConstants.UniversalArcFurnace; import gregtech.api.enums.GT_Values; @@ -25,6 +26,7 @@ public class ArcFurnaceRecipes implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Concrete, 1)) .duration(8 * SECONDS) .eut(96) + .metadata(RECYCLE, true) .addTo(UniversalArcFurnace); GT_Values.RA.stdBuilder() @@ -32,6 +34,7 @@ public class ArcFurnaceRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 19L)) .duration(9 * SECONDS) .eut((int) TierEU.RECIPE_MV) + .metadata(RECYCLE, true) .addTo(UniversalArcFurnace); GT_Values.RA.stdBuilder() @@ -41,6 +44,7 @@ public class ArcFurnaceRecipes implements Runnable { GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 7L)) .duration(9 * SECONDS) .eut((int) TierEU.RECIPE_MV) + .metadata(RECYCLE, true) .addTo(UniversalArcFurnace); GT_Values.RA.stdBuilder() @@ -48,6 +52,7 @@ public class ArcFurnaceRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Steel, 2L)) .duration(10 * TICKS) .eut((int) TierEU.RECIPE_MV) + .metadata(RECYCLE, true) .addTo(UniversalArcFurnace); GT_Values.RA.stdBuilder() @@ -57,6 +62,7 @@ public class ArcFurnaceRecipes implements Runnable { GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Steel, 1L)) .duration(10 * TICKS) .eut((int) TierEU.RECIPE_MV) + .metadata(RECYCLE, true) .addTo(UniversalArcFurnace); GT_Values.RA.stdBuilder() @@ -67,6 +73,7 @@ public class ArcFurnaceRecipes implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 2)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_HV) + .metadata(RECYCLE, true) .addTo(UniversalArcFurnace); GT_Values.RA.stdBuilder() @@ -77,6 +84,7 @@ public class ArcFurnaceRecipes implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 3)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_HV) + .metadata(RECYCLE, true) .addTo(UniversalArcFurnace); GT_Values.RA.stdBuilder() @@ -87,6 +95,7 @@ public class ArcFurnaceRecipes implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 4)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_HV) + .metadata(RECYCLE, true) .addTo(UniversalArcFurnace); GT_Values.RA.stdBuilder() @@ -97,6 +106,7 @@ public class ArcFurnaceRecipes implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 5)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_HV) + .metadata(RECYCLE, true) .addTo(UniversalArcFurnace); GT_Values.RA.stdBuilder() @@ -107,6 +117,7 @@ public class ArcFurnaceRecipes implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 6)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_HV) + .metadata(RECYCLE, true) .addTo(UniversalArcFurnace); GT_Values.RA.stdBuilder() @@ -117,6 +128,7 @@ public class ArcFurnaceRecipes implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 7)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_HV) + .metadata(RECYCLE, true) .addTo(UniversalArcFurnace); GT_Values.RA.stdBuilder() @@ -127,6 +139,7 @@ public class ArcFurnaceRecipes implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 8)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_HV) + .metadata(RECYCLE, true) .addTo(UniversalArcFurnace); GT_Values.RA.stdBuilder() @@ -137,6 +150,7 @@ public class ArcFurnaceRecipes implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 9)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_HV) + .metadata(RECYCLE, true) .addTo(UniversalArcFurnace); GT_Values.RA.stdBuilder() @@ -147,6 +161,7 @@ public class ArcFurnaceRecipes implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 10)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_HV) + .metadata(RECYCLE, true) .addTo(UniversalArcFurnace); GT_Values.RA.stdBuilder() @@ -157,6 +172,7 @@ public class ArcFurnaceRecipes implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 11)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_HV) + .metadata(RECYCLE, true) .addTo(UniversalArcFurnace); GT_Values.RA.stdBuilder() @@ -167,6 +183,7 @@ public class ArcFurnaceRecipes implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 12)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_HV) + .metadata(RECYCLE, true) .addTo(UniversalArcFurnace); GT_Values.RA.stdBuilder() @@ -174,6 +191,7 @@ public class ArcFurnaceRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Iron, 2L)) .duration(7 * SECONDS + 10 * TICKS) .eut(90) + .metadata(RECYCLE, true) .addTo(UniversalArcFurnace); GT_Values.RA.stdBuilder() @@ -183,6 +201,7 @@ public class ArcFurnaceRecipes implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Glass, 3)) .duration(7 * SECONDS + 10 * TICKS) .eut(90) + .metadata(RECYCLE, true) .addTo(UniversalArcFurnace); GT_Values.RA.stdBuilder() @@ -192,6 +211,7 @@ public class ArcFurnaceRecipes implements Runnable { GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Iron, 6)) .duration(7 * SECONDS + 10 * TICKS) .eut(90) + .metadata(RECYCLE, true) .addTo(UniversalArcFurnace); GT_Values.RA.stdBuilder() @@ -199,6 +219,7 @@ public class ArcFurnaceRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 2L)) .duration(9 * SECONDS) .eut((int) TierEU.RECIPE_MV) + .metadata(RECYCLE, true) .addTo(UniversalArcFurnace); GT_Values.RA.stdBuilder() @@ -208,6 +229,7 @@ public class ArcFurnaceRecipes implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Glass, 3)) .duration(9 * SECONDS) .eut((int) TierEU.RECIPE_MV) + .metadata(RECYCLE, true) .addTo(UniversalArcFurnace); GT_Values.RA.stdBuilder() @@ -217,6 +239,7 @@ public class ArcFurnaceRecipes implements Runnable { GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Steel, 6L)) .duration(9 * SECONDS) .eut((int) TierEU.RECIPE_MV) + .metadata(RECYCLE, true) .addTo(UniversalArcFurnace); GT_Values.RA.stdBuilder() @@ -224,6 +247,7 @@ public class ArcFurnaceRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Aluminium, 2L)) .duration(10 * SECONDS + 10 * TICKS) .eut(150) + .metadata(RECYCLE, true) .addTo(UniversalArcFurnace); GT_Values.RA.stdBuilder() @@ -231,6 +255,7 @@ public class ArcFurnaceRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Aluminium, 3)) .duration(10 * SECONDS + 10 * TICKS) .eut(150) + .metadata(RECYCLE, true) .addTo(UniversalArcFurnace); GT_Values.RA.stdBuilder() @@ -240,6 +265,7 @@ public class ArcFurnaceRecipes implements Runnable { GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Aluminium, 6L)) .duration(10 * SECONDS + 10 * TICKS) .eut(150) + .metadata(RECYCLE, true) .addTo(UniversalArcFurnace); GT_Values.RA.stdBuilder() @@ -247,6 +273,7 @@ public class ArcFurnaceRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.StainlessSteel, 2L)) .duration(12 * SECONDS) .eut(TierEU.RECIPE_MV) + .metadata(RECYCLE, true) .addTo(UniversalArcFurnace); GT_Values.RA.stdBuilder() @@ -256,6 +283,7 @@ public class ArcFurnaceRecipes implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Glass, 3)) .duration(12 * SECONDS) .eut(TierEU.RECIPE_MV) + .metadata(RECYCLE, true) .addTo(UniversalArcFurnace); GT_Values.RA.stdBuilder() @@ -265,6 +293,7 @@ public class ArcFurnaceRecipes implements Runnable { GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.StainlessSteel, 6L)) .duration(12 * SECONDS) .eut(TierEU.RECIPE_MV) + .metadata(RECYCLE, true) .addTo(UniversalArcFurnace); GT_Values.RA.stdBuilder() @@ -272,6 +301,7 @@ public class ArcFurnaceRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Titanium, 2L)) .duration(13 * SECONDS + 10 * TICKS) .eut(210) + .metadata(RECYCLE, true) .addTo(UniversalArcFurnace); GT_Values.RA.stdBuilder() @@ -281,6 +311,7 @@ public class ArcFurnaceRecipes implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Glass, 3)) .duration(13 * SECONDS + 10 * TICKS) .eut(210) + .metadata(RECYCLE, true) .addTo(UniversalArcFurnace); GT_Values.RA.stdBuilder() @@ -290,6 +321,7 @@ public class ArcFurnaceRecipes implements Runnable { GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Titanium, 6L)) .duration(13 * SECONDS + 10 * TICKS) .eut(210) + .metadata(RECYCLE, true) .addTo(UniversalArcFurnace); GT_Values.RA.stdBuilder() @@ -297,6 +329,7 @@ public class ArcFurnaceRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.TungstenSteel, 2L)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_MV) + .metadata(RECYCLE, true) .addTo(UniversalArcFurnace); GT_Values.RA.stdBuilder() @@ -306,6 +339,7 @@ public class ArcFurnaceRecipes implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Glass, 3)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_MV) + .metadata(RECYCLE, true) .addTo(UniversalArcFurnace); GT_Values.RA.stdBuilder() @@ -315,6 +349,7 @@ public class ArcFurnaceRecipes implements Runnable { GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.TungstenSteel, 6L)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_MV) + .metadata(RECYCLE, true) .addTo(UniversalArcFurnace); GT_Values.RA.stdBuilder() @@ -322,6 +357,7 @@ public class ArcFurnaceRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Palladium, 2L)) .duration(16 * SECONDS + 10 * TICKS) .eut(270) + .metadata(RECYCLE, true) .addTo(UniversalArcFurnace); GT_Values.RA.stdBuilder() @@ -331,6 +367,7 @@ public class ArcFurnaceRecipes implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Glass, 3)) .duration(16 * SECONDS + 10 * TICKS) .eut(270) + .metadata(RECYCLE, true) .addTo(UniversalArcFurnace); GT_Values.RA.stdBuilder() @@ -340,6 +377,7 @@ public class ArcFurnaceRecipes implements Runnable { GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Chrome, 6L)) .duration(16 * SECONDS + 10 * TICKS) .eut(270) + .metadata(RECYCLE, true) .addTo(UniversalArcFurnace); GT_Values.RA.stdBuilder() @@ -347,6 +385,7 @@ public class ArcFurnaceRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Iridium, 2L)) .duration(18 * SECONDS) .eut(TierEU.RECIPE_HV) + .metadata(RECYCLE, true) .addTo(UniversalArcFurnace); GT_Values.RA.stdBuilder() @@ -356,6 +395,7 @@ public class ArcFurnaceRecipes implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Glass, 3)) .duration(18 * SECONDS) .eut(TierEU.RECIPE_HV) + .metadata(RECYCLE, true) .addTo(UniversalArcFurnace); GT_Values.RA.stdBuilder() @@ -365,6 +405,7 @@ public class ArcFurnaceRecipes implements Runnable { GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Iridium, 6L)) .duration(18 * SECONDS) .eut(TierEU.RECIPE_HV) + .metadata(RECYCLE, true) .addTo(UniversalArcFurnace); GT_Values.RA.stdBuilder() @@ -372,6 +413,7 @@ public class ArcFurnaceRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Osmium, 2L)) .duration(18 * SECONDS) .eut(330) + .metadata(RECYCLE, true) .addTo(UniversalArcFurnace); GT_Values.RA.stdBuilder() @@ -381,6 +423,7 @@ public class ArcFurnaceRecipes implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Glass, 3)) .duration(18 * SECONDS) .eut(330) + .metadata(RECYCLE, true) .addTo(UniversalArcFurnace); GT_Values.RA.stdBuilder() @@ -390,6 +433,7 @@ public class ArcFurnaceRecipes implements Runnable { GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Osmium, 6L)) .duration(18 * SECONDS) .eut(330) + .metadata(RECYCLE, true) .addTo(UniversalArcFurnace); GT_Values.RA.stdBuilder() @@ -397,6 +441,7 @@ public class ArcFurnaceRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Neutronium, 2L)) .duration(18 * SECONDS) .eut(TierEU.RECIPE_HV) + .metadata(RECYCLE, true) .addTo(UniversalArcFurnace); GT_Values.RA.stdBuilder() @@ -406,6 +451,7 @@ public class ArcFurnaceRecipes implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Glass, 3)) .duration(18 * SECONDS) .eut(TierEU.RECIPE_HV) + .metadata(RECYCLE, true) .addTo(UniversalArcFurnace); GT_Values.RA.stdBuilder() @@ -415,6 +461,7 @@ public class ArcFurnaceRecipes implements Runnable { GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Neutronium, 6L)) .duration(18 * SECONDS) .eut(TierEU.RECIPE_HV) + .metadata(RECYCLE, true) .addTo(UniversalArcFurnace); GT_Values.RA.stdBuilder() diff --git a/src/main/java/gregtech/loaders/postload/recipes/AssemblerRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/AssemblerRecipes.java index 897ea7f57d..0f5023e854 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/AssemblerRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/AssemblerRecipes.java @@ -19,8 +19,8 @@ import static gregtech.api.enums.Mods.OpenComputers; import static gregtech.api.enums.Mods.Railcraft; import static gregtech.api.enums.Mods.TinkerConstruct; import static gregtech.api.enums.Mods.TwilightForest; +import static gregtech.api.recipe.RecipeMaps.assemblerRecipes; import static gregtech.api.util.GT_ModHandler.getModItem; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sAssemblerRecipes; import static gregtech.api.util.GT_RecipeBuilder.EIGHTH_INGOT; import static gregtech.api.util.GT_RecipeBuilder.HALF_INGOT; import static gregtech.api.util.GT_RecipeBuilder.INGOTS; @@ -77,7 +77,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.SeedOil.getFluid(50L)) .duration(16 * TICKS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -87,7 +87,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Concrete.getMolten(144)) .duration(10 * SECONDS) .eut(48) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -97,7 +97,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Concrete.getMolten(144)) .duration(10 * SECONDS) .eut(48) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); for (byte i = 0; i < 16; i = (byte) (i + 1)) { for (int j = 0; j < Dyes.VALUES[i].getSizeOfFluidList(); j++) { @@ -108,7 +108,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Dyes.VALUES[i].getFluidDye(j, 24)) .duration(6 * SECONDS + 8 * TICKS) .eut(5) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } } @@ -120,7 +120,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Glue.getFluid(20)) .duration(1 * SECONDS + 12 * TICKS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -130,7 +130,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Glue.getFluid(20)) .duration(20 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -140,7 +140,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Component_Filter.get(1)) .duration(1 * MINUTES + 20 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -151,7 +151,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Plastic.getMolten(144)) .duration(1 * MINUTES + 20 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -162,7 +162,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.AdvancedGlue.getFluid(500)) .duration(2 * MINUTES + 40 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -173,7 +173,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.AdvancedGlue.getFluid(250)) .duration(40 * SECONDS) .eut(TierEU.RECIPE_IV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -183,7 +183,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.FluidRegulator_LV.get(1)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -193,7 +193,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.FluidRegulator_MV.get(1)) .duration(17 * SECONDS + 10 * TICKS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -203,7 +203,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.FluidRegulator_HV.get(1)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -213,7 +213,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.FluidRegulator_EV.get(1)) .duration(12 * SECONDS + 10 * TICKS) .eut(TierEU.RECIPE_EV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -223,7 +223,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.FluidRegulator_IV.get(1)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_IV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -233,7 +233,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.FluidRegulator_LuV.get(1)) .duration(7 * SECONDS + 10 * TICKS) .eut(TierEU.RECIPE_LuV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -243,7 +243,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.FluidRegulator_ZPM.get(1)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_ZPM) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -253,7 +253,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.FluidRegulator_UV.get(1)) .duration(2 * SECONDS + 10 * TICKS) .eut(500000) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -263,7 +263,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Steam_Regulator_LV.get(1)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -273,7 +273,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Steam_Regulator_MV.get(1)) .duration(17 * SECONDS + 10 * TICKS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -283,7 +283,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Steam_Regulator_HV.get(1)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -293,7 +293,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Steam_Regulator_EV.get(1)) .duration(12 * SECONDS + 10 * TICKS) .eut(TierEU.RECIPE_EV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -303,7 +303,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Steam_Regulator_IV.get(1)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_IV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -314,7 +314,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Steam_Valve_LV.get(1)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -325,7 +325,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Steam_Valve_MV.get(1)) .duration(17 * SECONDS + 10 * TICKS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -336,7 +336,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Steam_Valve_HV.get(1)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -347,7 +347,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Steam_Valve_EV.get(1)) .duration(12 * SECONDS + 10 * TICKS) .eut(TierEU.RECIPE_EV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -358,7 +358,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Steam_Valve_IV.get(1)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_IV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -368,7 +368,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Schematic.get(1L)) .duration(30 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -378,7 +378,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Schematic.get(1L)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -388,7 +388,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Schematic.get(1L)) .duration(7 * SECONDS + 10 * TICKS) .eut(48) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -401,7 +401,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Hatch_Energy_HV.get(1L)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -414,7 +414,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Hatch_Energy_EV.get(1L)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -427,7 +427,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Hatch_Energy_IV.get(1L)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_IV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -440,7 +440,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Hatch_Energy_HV.get(1L)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -453,7 +453,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Hatch_Energy_EV.get(1L)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -466,7 +466,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Hatch_Energy_IV.get(1L)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_IV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -479,7 +479,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Hatch_Dynamo_HV.get(1L)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -492,7 +492,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Hatch_Dynamo_EV.get(1L)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -505,7 +505,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Hatch_Dynamo_IV.get(1L)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_IV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -518,7 +518,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Hatch_Dynamo_HV.get(1L)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -531,7 +531,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Hatch_Dynamo_EV.get(1L)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -544,7 +544,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Hatch_Dynamo_IV.get(1L)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_IV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -556,7 +556,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Tin.getMolten(144L)) .duration(15 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -568,7 +568,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Tin.getMolten(144L)) .duration(15 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -579,7 +579,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Tin.getMolten(144L)) .duration(30 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -590,7 +590,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Tin.getMolten(144L)) .duration(30 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -601,7 +601,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Glass.getMolten(2304L)) .duration(30 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -612,7 +612,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Glass.getMolten(2304L)) .duration(30 * SECONDS) .eut(TierEU.RECIPE_IV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -623,7 +623,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(2304L)) .duration(30 * SECONDS) .eut(TierEU.RECIPE_LuV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -634,7 +634,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(2304L)) .duration(30 * SECONDS) .eut(TierEU.RECIPE_ZPM) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -645,7 +645,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polybenzimidazole.getMolten(2304L)) .duration(30 * SECONDS) .eut(TierEU.RECIPE_UV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -656,7 +656,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polybenzimidazole.getMolten(2304L)) .duration(30 * SECONDS) .eut(TierEU.RECIPE_UHV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -667,7 +667,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Casing_Gearbox_TungstenSteel.get(1L)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); { // limiting lifetime of the variables ItemStack flask = ItemList.VOLUMETRIC_FLASK.get(1); @@ -685,7 +685,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(flask) .duration(10 * TICKS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } } @@ -699,7 +699,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Hatch_Muffler_LV.get(1)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -711,7 +711,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Hatch_Muffler_MV.get(1)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -723,7 +723,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Hatch_Muffler_HV.get(1)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -735,7 +735,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Hatch_Muffler_EV.get(1)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -747,7 +747,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Hatch_Muffler_IV.get(1)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_IV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -759,7 +759,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Hatch_Muffler_LuV.get(1)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LuV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -771,7 +771,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Hatch_Muffler_ZPM.get(1)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_ZPM) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -783,7 +783,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Hatch_Muffler_UV.get(1)) .duration(10 * SECONDS) .eut(500000) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -795,7 +795,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Hatch_Muffler_MAX.get(1)) .duration(10 * SECONDS) .eut(2000000) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -805,7 +805,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Concrete.getMolten(144)) .duration(4 * SECONDS) .eut(20) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.leather, 1, 32767), new ItemStack(Items.lead, 1, 32767)) @@ -813,7 +813,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Glue.getFluid(72)) .duration(5 * SECONDS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -823,7 +823,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Glue.getFluid(72)) .duration(5 * SECONDS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -832,7 +832,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Items.map, 1, 0)) .duration(5 * SECONDS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -842,14 +842,14 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Plastic.getMolten(144)) .duration(5 * SECONDS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(TwilightForest.ID, "item.charmOfLife1", 4L, 0), GT_Utility.getIntegratedCircuit(4)) .itemOutputs(getModItem(TwilightForest.ID, "item.charmOfLife2", 1L, 0)) .duration(5 * SECONDS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -858,7 +858,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(TwilightForest.ID, "item.charmOfKeeping2", 1L, 0)) .duration(5 * SECONDS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -867,14 +867,14 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(TwilightForest.ID, "item.charmOfKeeping3", 1L, 0)) .duration(5 * SECONDS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(TwilightForest.ID, "item.charmOfLife2", 1L, 0), GT_Utility.getIntegratedCircuit(1)) .itemOutputs(getModItem(TwilightForest.ID, "item.charmOfLife1", 4L, 0)) .duration(5 * SECONDS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -883,7 +883,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(TwilightForest.ID, "item.charmOfKeeping1", 4L, 0)) .duration(5 * SECONDS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -892,7 +892,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(TwilightForest.ID, "item.charmOfKeeping2", 4L, 0)) .duration(5 * SECONDS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -902,7 +902,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Redstone.getMolten(144)) .duration(3 * SECONDS + 4 * TICKS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -912,7 +912,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Redstone.getMolten(144)) .duration(3 * SECONDS + 4 * TICKS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -922,7 +922,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Redstone.getMolten(144)) .duration(3 * SECONDS + 4 * TICKS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -931,7 +931,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(AppliedEnergistics2.ID, "item.ItemCrystalSeed", 2L, 0)) .duration(3 * SECONDS + 4 * TICKS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -940,7 +940,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(AppliedEnergistics2.ID, "item.ItemCrystalSeed", 2L, 600)) .duration(3 * SECONDS + 4 * TICKS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -949,7 +949,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(AppliedEnergistics2.ID, "item.ItemCrystalSeed", 2L, 1200)) .duration(3 * SECONDS + 4 * TICKS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.FR_Wax.get(6), new ItemStack(Items.string, 1, 32767)) @@ -957,7 +957,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Water.getFluid(600)) .duration(3 * SECONDS + 4 * TICKS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.FR_Wax.get(2), ItemList.FR_Silk.get(1)) @@ -965,7 +965,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Water.getFluid(200)) .duration(16 * TICKS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.FR_Silk.get(9), GT_Utility.getIntegratedCircuit(9)) @@ -973,14 +973,14 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Water.getFluid(500)) .duration(3 * SECONDS + 4 * TICKS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Forestry.ID, "propolis", 5L, 2), GT_Utility.getIntegratedCircuit(5)) .itemOutputs(getModItem(Forestry.ID, "craftingMaterial", 1L, 1)) .duration(16 * TICKS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -990,7 +990,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Water.getFluid(5000)) .duration(3 * SECONDS + 4 * TICKS) .eut(32) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -999,7 +999,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.FR_Casing_Sturdy.get(1)) .duration(1 * SECONDS + 12 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1009,28 +1009,28 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Creosote.getFluid(1000)) .duration(2 * SECONDS) .eut(20) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Forestry.ID, "craftingMaterial", 5L, 1), GT_Utility.getIntegratedCircuit(5)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.EnderPearl, 1)) .duration(3 * SECONDS + 4 * TICKS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.piston, 1, 32767), new ItemStack(Items.slime_ball, 1, 32767)) .itemOutputs(new ItemStack(Blocks.sticky_piston, 1, 0)) .duration(5 * SECONDS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.piston, 1, 32767), ItemList.IC2_Resin.get(1)) .itemOutputs(new ItemStack(Blocks.sticky_piston, 1, 0)) .duration(5 * SECONDS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.piston, 1, 32767), GT_Utility.getIntegratedCircuit(1)) @@ -1038,7 +1038,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Glue.getFluid(100)) .duration(5 * SECONDS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1049,7 +1049,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Glue.getFluid(300)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1060,7 +1060,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Glue.getFluid(200)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1071,7 +1071,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Glue.getFluid(100)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); // Maintenance Hatch Recipes Using BrainTech + Refined Glue. Info: One BrainTech Recipe Is In GT+ü Originally. // The Maintenance Hatch Recipe using SuperGlue is there. @@ -1082,7 +1082,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Glue.getFluid(1000)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1092,7 +1092,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Glue.getFluid(20)) .duration(1 * SECONDS + 12 * TICKS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1102,7 +1102,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Glue.getFluid(20)) .duration(1 * SECONDS + 12 * TICKS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1112,7 +1112,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Glue.getFluid(20)) .duration(1 * SECONDS + 12 * TICKS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Paper_Printed_Pages.get(1), new ItemStack(Items.leather, 1, 32767)) @@ -1120,7 +1120,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Glue.getFluid(20)) .duration(1 * SECONDS + 12 * TICKS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1130,14 +1130,14 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Glue.getFluid(20)) .duration(1 * SECONDS + 12 * TICKS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.itemCasing, Materials.Tin, 4)) .itemOutputs(ItemList.Cell_Universal_Fluid.get(1)) .duration(6 * SECONDS + 8 * TICKS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Food_Baked_Cake.get(1), new ItemStack(Items.egg, 1, 0)) @@ -1145,49 +1145,49 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Milk.getFluid(3000)) .duration(5 * SECONDS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Food_Sliced_Bun.get(2), GT_Utility.getIntegratedCircuit(2)) .itemOutputs(ItemList.Food_Sliced_Buns.get(1)) .duration(5 * SECONDS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Food_Sliced_Bread.get(2), GT_Utility.getIntegratedCircuit(2)) .itemOutputs(ItemList.Food_Sliced_Breads.get(1)) .duration(5 * SECONDS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Food_Sliced_Baguette.get(2), GT_Utility.getIntegratedCircuit(2)) .itemOutputs(ItemList.Food_Sliced_Baguettes.get(1)) .duration(5 * SECONDS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Food_Sliced_Buns.get(1), GT_Utility.getIntegratedCircuit(1)) .itemOutputs(ItemList.Food_Sliced_Bun.get(2)) .duration(5 * SECONDS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Food_Sliced_Breads.get(1), GT_Utility.getIntegratedCircuit(1)) .itemOutputs(ItemList.Food_Sliced_Bread.get(2)) .duration(5 * SECONDS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Food_Sliced_Baguettes.get(1), GT_Utility.getIntegratedCircuit(1)) .itemOutputs(ItemList.Food_Sliced_Baguette.get(2)) .duration(5 * SECONDS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1196,7 +1196,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Food_Burger_Meat.get(1)) .duration(5 * SECONDS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1205,35 +1205,35 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Food_Burger_Meat.get(1)) .duration(5 * SECONDS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Food_Sliced_Bun.get(2), ItemList.Food_Chum.get(1)) .itemOutputs(ItemList.Food_Burger_Chum.get(1)) .duration(5 * SECONDS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Food_Sliced_Buns.get(1), ItemList.Food_Chum.get(1)) .itemOutputs(ItemList.Food_Burger_Chum.get(1)) .duration(5 * SECONDS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Food_Sliced_Bun.get(2), ItemList.Food_Sliced_Cheese.get(3)) .itemOutputs(ItemList.Food_Burger_Cheese.get(1)) .duration(5 * SECONDS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Food_Sliced_Buns.get(1), ItemList.Food_Sliced_Cheese.get(3)) .itemOutputs(ItemList.Food_Burger_Cheese.get(1)) .duration(5 * SECONDS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1242,14 +1242,14 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Food_Raw_Pizza_Meat.get(1)) .duration(5 * SECONDS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Food_Flat_Dough.get(1), ItemList.Food_Sliced_Cheese.get(3)) .itemOutputs(ItemList.Food_Raw_Pizza_Cheese.get(1)) .duration(5 * SECONDS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); // SC craft @@ -1263,7 +1263,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Helium.getGas(2000)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1275,7 +1275,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Helium.getGas(4000)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1287,7 +1287,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Helium.getGas(6000)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1299,7 +1299,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Helium.getGas(8000)) .duration(40 * SECONDS) .eut(TierEU.RECIPE_IV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1314,7 +1314,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Helium.getGas(12000)) .duration(40 * SECONDS) .eut(TierEU.RECIPE_LuV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1326,7 +1326,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Helium.getGas(16000)) .duration(1 * MINUTES + 20 * SECONDS) .eut(TierEU.RECIPE_ZPM) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1338,7 +1338,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Helium.getGas(20000)) .duration(1 * MINUTES + 20 * SECONDS) .eut(TierEU.RECIPE_UV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1350,7 +1350,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Helium.getGas(24000)) .duration(2 * MINUTES + 40 * SECONDS) .eut(TierEU.RECIPE_UHV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1360,7 +1360,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.ULV_Coil.get(1)) .duration(10 * SECONDS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1370,7 +1370,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.LV_Coil.get(1)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1380,7 +1380,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.MV_Coil.get(1)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1390,7 +1390,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.HV_Coil.get(1)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1400,7 +1400,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.EV_Coil.get(1)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1410,7 +1410,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.IV_Coil.get(1)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_IV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1420,7 +1420,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.LuV_Coil.get(1)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LuV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1430,7 +1430,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.ZPM_Coil.get(1)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_ZPM) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1440,7 +1440,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.UV_Coil.get(1)) .duration(10 * SECONDS) .eut(500000) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1450,7 +1450,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.UHV_Coil.get(1)) .duration(10 * SECONDS) .eut(2000000) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1460,7 +1460,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Glue.getFluid(10)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1470,7 +1470,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Glue.getFluid(20)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1480,7 +1480,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Glue.getFluid(60)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1491,7 +1491,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Ingot_IridiumAlloy.get(1)) .duration(60 * SECONDS) .eut(TierEU.RECIPE_IV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1503,7 +1503,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Casing_Grate.get(1)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1515,7 +1515,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Casing_Vent_T2.get(1)) .duration(30 * SECONDS) .eut(TierEU.RECIPE_LuV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); if (!GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "torchesFromCoal", false)) { GT_Values.RA.stdBuilder() @@ -1525,7 +1525,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Blocks.torch, 4)) .duration(2 * SECONDS) .eut(20) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } GT_Values.RA.stdBuilder() @@ -1535,7 +1535,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Blocks.light_weighted_pressure_plate, 1)) .duration(10 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1544,7 +1544,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Blocks.heavy_weighted_pressure_plate, 1)) .duration(10 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1553,7 +1553,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Items.iron_door, 1)) .duration(30 * SECONDS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1562,7 +1562,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Items.cauldron, 1)) .duration(35 * SECONDS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1571,7 +1571,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_ModHandler.getIC2Item("ironFence", 1)) .duration(5 * SECONDS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1580,7 +1580,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Blocks.iron_bars, 4)) .duration(15 * SECONDS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1589,7 +1589,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Items.iron_door, 1)) .duration(30 * SECONDS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1598,7 +1598,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Items.cauldron, 1)) .duration(35 * SECONDS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1607,7 +1607,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_ModHandler.getIC2Item("ironFence", 1)) .duration(5 * SECONDS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1616,7 +1616,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Blocks.iron_bars, 4)) .duration(15 * SECONDS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1625,7 +1625,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Blocks.fence, 1)) .duration(15 * SECONDS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1634,7 +1634,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Blocks.tripwire_hook, 1)) .duration(20 * SECONDS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1643,7 +1643,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Blocks.tripwire_hook, 1)) .duration(20 * SECONDS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1652,7 +1652,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Items.bow, 1)) .duration(20 * SECONDS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1661,7 +1661,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Items.minecart, 1)) .duration(5 * SECONDS) .eut(20) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1670,7 +1670,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Items.minecart, 1)) .duration(4 * SECONDS) .eut(20) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1679,7 +1679,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Items.minecart, 1)) .duration(5 * SECONDS) .eut(20) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1688,7 +1688,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Component_Minecart_Wheels_Iron.get(1)) .duration(5 * SECONDS) .eut(20) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1697,7 +1697,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Component_Minecart_Wheels_Iron.get(1)) .duration(4 * SECONDS) .eut(20) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1706,77 +1706,77 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Component_Minecart_Wheels_Steel.get(1)) .duration(3 * SECONDS) .eut(20) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.minecart, 1), new ItemStack(Blocks.hopper, 1, 32767)) .itemOutputs(new ItemStack(Items.hopper_minecart, 1)) .duration(20 * SECONDS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.minecart, 1), new ItemStack(Blocks.tnt, 1, 32767)) .itemOutputs(new ItemStack(Items.tnt_minecart, 1)) .duration(20 * SECONDS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.minecart, 1), new ItemStack(Blocks.chest, 1, 32767)) .itemOutputs(new ItemStack(Items.chest_minecart, 1)) .duration(20 * SECONDS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.minecart, 1), new ItemStack(Blocks.trapped_chest, 1, 32767)) .itemOutputs(new ItemStack(Items.chest_minecart, 1)) .duration(20 * SECONDS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.minecart, 1), new ItemStack(Blocks.furnace, 1, 32767)) .itemOutputs(new ItemStack(Items.furnace_minecart, 1)) .duration(20 * SECONDS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.tripwire_hook, 1), new ItemStack(Blocks.chest, 1, 32767)) .itemOutputs(new ItemStack(Blocks.trapped_chest, 1)) .duration(10 * SECONDS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.stone, 1, 0), GT_Utility.getIntegratedCircuit(4)) .itemOutputs(new ItemStack(Blocks.stonebrick, 1, 0)) .duration(2 * SECONDS + 10 * TICKS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.sandstone, 1, 0), GT_Utility.getIntegratedCircuit(23)) .itemOutputs(new ItemStack(Blocks.sandstone, 1, 2)) .duration(2 * SECONDS + 10 * TICKS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.sandstone, 1, 1), GT_Utility.getIntegratedCircuit(1)) .itemOutputs(new ItemStack(Blocks.sandstone, 1, 0)) .duration(2 * SECONDS + 10 * TICKS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.sandstone, 1, 2), GT_Utility.getIntegratedCircuit(1)) .itemOutputs(new ItemStack(Blocks.sandstone, 1, 0)) .duration(2 * SECONDS + 10 * TICKS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1785,7 +1785,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_ModHandler.getIC2Item("machine", 1)) .duration(1 * SECONDS + 5 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1794,7 +1794,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Casing_ULV.get(1)) .duration(1 * SECONDS + 5 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1803,7 +1803,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Casing_LV.get(1)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1812,7 +1812,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Casing_MV.get(1)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1821,7 +1821,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Casing_HV.get(1)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1830,7 +1830,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Casing_EV.get(1)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1839,7 +1839,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Casing_IV.get(1)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1848,7 +1848,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Casing_LuV.get(1)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1857,7 +1857,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Casing_ZPM.get(1)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1866,7 +1866,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Casing_UV.get(1)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1875,7 +1875,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Casing_MAX.get(1)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1884,7 +1884,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Casing_HeatProof.get(1)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1894,7 +1894,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Casing_SolidSteel.get(1)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1903,7 +1903,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Casing_FrostProof.get(1)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1912,7 +1912,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Casing_RobustTungstenSteel.get(1)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1921,7 +1921,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Casing_CleanStainlessSteel.get(1)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1930,7 +1930,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Casing_StableTitanium.get(1)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1939,7 +1939,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Casing_MiningOsmiridium.get(1)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1948,7 +1948,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Casing_MiningNeutronium.get(1)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1957,7 +1957,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Casing_MiningBlackPlutonium.get(1)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.HSSS, 4), ItemList.Casing_LuV.get(1)) @@ -1965,7 +1965,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.HSSG.getMolten(288)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_IV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1975,7 +1975,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.NaquadahAlloy.getMolten(288)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LuV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1984,7 +1984,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Casing_Turbine.get(1)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1993,7 +1993,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Casing_Turbine1.get(1)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2002,7 +2002,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Casing_Turbine2.get(1)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2011,14 +2011,14 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Casing_Turbine3.get(1)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.HSSS, 6), ItemList.Casing_Turbine.get(1)) .itemOutputs(ItemList.Casing_TurbineGasAdvanced.get(1)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Casing_SolidSteel.get(1), GT_Utility.getIntegratedCircuit(6)) @@ -2026,7 +2026,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(216)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2035,7 +2035,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Casing_Advanced_Iridium.get(1)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); if (GT_Mod.gregtechproxy.mHardMachineCasings) { GT_Values.RA.stdBuilder() @@ -2046,7 +2046,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Plastic.getMolten(288)) .duration(1 * SECONDS + 5 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2056,7 +2056,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Plastic.getMolten(288)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2066,7 +2066,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Plastic.getMolten(288)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2076,7 +2076,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Plastic.getMolten(288)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2086,7 +2086,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Plastic.getMolten(288)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2096,7 +2096,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Plastic.getMolten(288)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2106,7 +2106,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(288)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2116,7 +2116,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(288)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2126,7 +2126,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polybenzimidazole.getMolten(288)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2136,7 +2136,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polybenzimidazole.getMolten(288)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2146,7 +2146,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polybenzimidazole.getMolten(288)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } else { GT_Values.RA.stdBuilder() .itemInputs( @@ -2155,7 +2155,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Hull_ULV.get(1)) .duration(1 * SECONDS + 5 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2164,7 +2164,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Hull_LV.get(1)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2173,7 +2173,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Hull_MV.get(1)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2182,7 +2182,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Hull_MV.get(1)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2191,7 +2191,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Hull_HV.get(1)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2200,7 +2200,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Hull_EV.get(1)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2209,7 +2209,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Hull_IV.get(1)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2218,7 +2218,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Hull_LuV.get(1)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2227,7 +2227,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Hull_ZPM.get(1)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2236,7 +2236,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Hull_UV.get(1)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2245,7 +2245,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Hull_MAX.get(1)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } GT_Values.RA.stdBuilder() @@ -2256,7 +2256,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Plastic.getMolten(144)) .duration(4 * SECONDS) .eut(20) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2266,7 +2266,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Plastic.getMolten(432)) .duration(16 * SECONDS) .eut(20) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2276,7 +2276,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Plastic.getMolten(432)) .duration(16 * SECONDS) .eut(20) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2286,42 +2286,42 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Plastic.getMolten(1296)) .duration(1 * MINUTES + 4 * SECONDS) .eut(20) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.string, 4, 32767), new ItemStack(Items.slime_ball, 1, 32767)) .itemOutputs(new ItemStack(Items.lead, 2)) .duration(2 * SECONDS) .eut(20) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.IC2_Compressed_Coal_Ball.get(8), new ItemStack(Blocks.brick_block, 1)) .itemOutputs(ItemList.IC2_Compressed_Coal_Chunk.get(1)) .duration(20 * SECONDS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_ModHandler.getIC2Item("waterMill", 2), GT_Utility.getIntegratedCircuit(2)) .itemOutputs(GT_ModHandler.getIC2Item("generator", 1)) .duration(5 * MINUTES + 20 * SECONDS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_ModHandler.getIC2Item("batPack", 1L, 32767), GT_Utility.getIntegratedCircuit(1)) .itemOutputs(ItemList.IC2_ReBattery.get(6)) .duration(40 * SECONDS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_ModHandler.getIC2Item("carbonFiber", 2), GT_Utility.getIntegratedCircuit(2)) .itemOutputs(GT_ModHandler.getIC2Item("carbonMesh", 1)) .duration(8 * SECONDS) .eut(20) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2330,7 +2330,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_ModHandler.getIC2Item("waterMill", 2)) .duration(5 * MINUTES + 20 * SECONDS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2339,7 +2339,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Blocks.hopper)) .duration(8 * SECONDS) .eut(20) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2348,7 +2348,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Blocks.hopper)) .duration(8 * SECONDS) .eut(20) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2357,7 +2357,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Blocks.hopper)) .duration(8 * SECONDS) .eut(20) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2366,7 +2366,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Blocks.hopper)) .duration(8 * SECONDS) .eut(20) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2375,7 +2375,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_ModHandler.getIC2Item("windMill", 1)) .duration(5 * MINUTES + 20 * SECONDS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2384,7 +2384,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Component_Sawblade_Diamond.get(1)) .duration(16 * SECONDS) .eut(20) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2393,7 +2393,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Blocks.redstone_torch, 1)) .duration(1 * SECONDS) .eut(20) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2402,7 +2402,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Blocks.torch, 2)) .duration(2 * SECONDS) .eut(20) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2411,21 +2411,21 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Blocks.torch, 6)) .duration(2 * SECONDS) .eut(20) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1), ItemList.IC2_Resin.get(1)) .itemOutputs(new ItemStack(Blocks.torch, 6)) .duration(2 * SECONDS) .eut(20) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 8), new ItemStack(Items.flint, 1)) .itemOutputs(ItemList.IC2_Compressed_Coal_Ball.get(1)) .duration(20 * SECONDS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); if (!GT_Mod.gregtechproxy.mDisableIC2Cables) { GT_Values.RA.stdBuilder() @@ -2435,7 +2435,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_ModHandler.getIC2Item("insulatedTinCableItem", 1)) .duration(1 * SECONDS) .eut(20) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2444,7 +2444,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_ModHandler.getIC2Item("insulatedCopperCableItem", 1)) .duration(1 * SECONDS) .eut(20) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2453,7 +2453,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_ModHandler.getIC2Item("insulatedGoldCableItem", 1)) .duration(2 * SECONDS) .eut(20) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2462,7 +2462,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_ModHandler.getIC2Item("insulatedIronCableItem", 1)) .duration(3 * SECONDS) .eut(20) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } GT_Values.RA.stdBuilder() .itemInputs( @@ -2471,7 +2471,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Items.wooden_sword, 1)) .duration(5 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2480,7 +2480,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Items.stone_sword, 1)) .duration(5 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2489,7 +2489,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Items.iron_sword, 1)) .duration(5 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2498,7 +2498,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Items.golden_sword, 1)) .duration(5 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2507,7 +2507,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Items.diamond_sword, 1)) .duration(5 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2516,7 +2516,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Tool_Sword_Bronze.getUndamaged(1)) .duration(5 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2525,7 +2525,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Tool_Sword_Steel.getUndamaged(1)) .duration(5 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2534,7 +2534,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Items.wooden_pickaxe, 1)) .duration(5 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2543,7 +2543,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Items.stone_pickaxe, 1)) .duration(5 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2552,7 +2552,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Items.iron_pickaxe, 1)) .duration(5 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2561,7 +2561,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Items.golden_pickaxe, 1)) .duration(5 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2570,7 +2570,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Items.diamond_pickaxe, 1)) .duration(5 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2579,7 +2579,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Tool_Pickaxe_Bronze.getUndamaged(1)) .duration(5 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2588,7 +2588,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Tool_Pickaxe_Steel.getUndamaged(1)) .duration(5 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2597,7 +2597,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Items.wooden_shovel, 1)) .duration(5 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2606,7 +2606,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Items.stone_shovel, 1)) .duration(5 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2615,7 +2615,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Items.iron_shovel, 1)) .duration(5 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2624,7 +2624,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Items.golden_shovel, 1)) .duration(5 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2633,7 +2633,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Items.diamond_shovel, 1)) .duration(5 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2642,7 +2642,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Tool_Shovel_Bronze.getUndamaged(1)) .duration(5 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2651,7 +2651,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Tool_Shovel_Steel.getUndamaged(1)) .duration(5 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2660,7 +2660,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Items.wooden_axe, 1)) .duration(5 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2669,7 +2669,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Items.stone_axe, 1)) .duration(5 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2678,7 +2678,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Items.iron_axe, 1)) .duration(5 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2687,7 +2687,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Items.golden_axe, 1)) .duration(5 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2696,7 +2696,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Items.diamond_axe, 1)) .duration(5 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2705,7 +2705,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Tool_Axe_Bronze.getUndamaged(1)) .duration(5 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2714,7 +2714,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Tool_Axe_Steel.getUndamaged(1)) .duration(5 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2723,7 +2723,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Items.wooden_hoe, 1)) .duration(5 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2732,7 +2732,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Items.stone_hoe, 1)) .duration(5 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2741,7 +2741,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Items.iron_hoe, 1)) .duration(5 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2750,7 +2750,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Items.golden_hoe, 1)) .duration(5 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2759,7 +2759,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Items.diamond_hoe, 1)) .duration(5 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2768,7 +2768,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Tool_Hoe_Bronze.getUndamaged(1)) .duration(5 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2777,7 +2777,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Tool_Hoe_Steel.getUndamaged(1)) .duration(5 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); // fuel rod assembler recipes @@ -2789,7 +2789,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.ThoriumCell_2.get(1)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2799,7 +2799,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.ThoriumCell_4.get(1)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2809,7 +2809,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.ThoriumCell_4.get(1)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2819,7 +2819,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Uraniumcell_2.get(1)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2829,7 +2829,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Uraniumcell_4.get(1)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2839,7 +2839,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Uraniumcell_4.get(1)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2849,7 +2849,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Moxcell_2.get(1)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2859,7 +2859,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Moxcell_4.get(1)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2869,7 +2869,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Moxcell_4.get(1)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2879,7 +2879,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.NaquadahCell_2.get(1)) .duration(5 * SECONDS) .eut(400) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2889,7 +2889,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.NaquadahCell_4.get(1)) .duration(7 * SECONDS + 10 * TICKS) .eut(400) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2899,7 +2899,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.NaquadahCell_4.get(1)) .duration(5 * SECONDS) .eut(400) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2909,7 +2909,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.MNqCell_2.get(1)) .duration(5 * SECONDS) .eut(400) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2919,7 +2919,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.MNqCell_4.get(1)) .duration(7 * SECONDS + 10 * TICKS) .eut(400) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2929,7 +2929,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.MNqCell_4.get(1)) .duration(5 * SECONDS) .eut(400) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2938,7 +2938,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.neutroniumHeatCapacitor.get(1)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_ZPM) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2947,14 +2947,14 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.RadiantNaquadahAlloyCasing.get(1)) .duration(10 * TICKS) .eut(400000) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.KevlarFiber.get(8), GT_Utility.getIntegratedCircuit(8)) .itemOutputs(ItemList.WovenKevlar.get(1)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2967,7 +2967,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.SolderingAlloy.getMolten(INGOTS)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); ItemStack[] plates = new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 1L), @@ -2984,7 +2984,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(tMat.getMolten(144L * tMultiplier / 2)) .duration(40 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -2995,7 +2995,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(tMat.getMolten(144L * tMultiplier / 2)) .duration(40 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -3006,7 +3006,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(tMat.getMolten(144L * tMultiplier / 2)) .duration(40 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -3017,7 +3017,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(tMat.getMolten(144L * tMultiplier / 2)) .duration(40 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_ModHandler.getIC2Item("ecMeter", 1), tPlate, GT_Utility.getIntegratedCircuit(1)) @@ -3025,7 +3025,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(tMat.getMolten(144L * tMultiplier / 2)) .duration(40 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } } @@ -3046,7 +3046,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Glue.getFluid(1 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_ULV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -3057,7 +3057,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Plastic.getMolten(1 * HALF_INGOT)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_ULV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -3068,7 +3068,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(1 * EIGHTH_INGOT)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_ULV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -3079,7 +3079,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polybenzimidazole.getMolten(4)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_ULV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } // LV input bus @@ -3090,7 +3090,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Glue.getFluid(5 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Hull_LV.get(1), new ItemStack(Blocks.chest), GT_Utility.getIntegratedCircuit(1)) @@ -3098,7 +3098,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Plastic.getMolten(1 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Hull_LV.get(1), new ItemStack(Blocks.chest), GT_Utility.getIntegratedCircuit(1)) @@ -3106,7 +3106,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(1 * HALF_INGOT)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Hull_LV.get(1), new ItemStack(Blocks.chest), GT_Utility.getIntegratedCircuit(1)) @@ -3114,7 +3114,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polybenzimidazole.getMolten(9)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } // MV input bus @@ -3128,7 +3128,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Plastic.getMolten(2 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -3139,7 +3139,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(1 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -3150,7 +3150,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polybenzimidazole.getMolten(1 * EIGHTH_INGOT)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } // HV input bus @@ -3164,7 +3164,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Plastic.getMolten(3 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -3175,7 +3175,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(2 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -3186,7 +3186,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polybenzimidazole.getMolten(1 * QUARTER_INGOT)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } // EV input bus @@ -3200,7 +3200,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(4 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -3211,7 +3211,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polybenzimidazole.getMolten(1 * HALF_INGOT)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } // IV input bus @@ -3225,7 +3225,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(8 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_IV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -3236,7 +3236,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polybenzimidazole.getMolten(1 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_IV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } // LuV input bus @@ -3250,7 +3250,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(16 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_LuV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -3261,7 +3261,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polybenzimidazole.getMolten(2 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_LuV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } // ZPM input bus @@ -3275,7 +3275,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polybenzimidazole.getMolten(4 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_ZPM) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } // UV input bus @@ -3289,7 +3289,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polybenzimidazole.getMolten(8 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_UV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } // UHV input bus @@ -3303,7 +3303,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polybenzimidazole.getMolten(16 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_UHV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } } @@ -3332,7 +3332,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Glue.getFluid(1 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_ULV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -3343,7 +3343,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Plastic.getMolten(1 * HALF_INGOT)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_ULV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -3354,7 +3354,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(1 * EIGHTH_INGOT)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_ULV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -3365,7 +3365,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polybenzimidazole.getMolten(4)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_ULV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } // LV output bus @@ -3376,7 +3376,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Glue.getFluid(5 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Hull_LV.get(1), new ItemStack(Blocks.chest), GT_Utility.getIntegratedCircuit(2)) @@ -3384,7 +3384,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Plastic.getMolten(1 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Hull_LV.get(1), new ItemStack(Blocks.chest), GT_Utility.getIntegratedCircuit(2)) @@ -3392,7 +3392,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(1 * HALF_INGOT)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Hull_LV.get(1), new ItemStack(Blocks.chest), GT_Utility.getIntegratedCircuit(2)) @@ -3400,7 +3400,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polybenzimidazole.getMolten(9)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } if (!IronChests.isModLoaded()) { @@ -3418,7 +3418,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Plastic.getMolten(2 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -3429,7 +3429,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(1 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -3440,7 +3440,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polybenzimidazole.getMolten(1 * EIGHTH_INGOT)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } // HV output bus @@ -3454,7 +3454,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Plastic.getMolten(3 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -3465,7 +3465,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(2 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -3476,7 +3476,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polybenzimidazole.getMolten(1 * QUARTER_INGOT)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } // EV output bus @@ -3490,7 +3490,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(4 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -3501,7 +3501,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polybenzimidazole.getMolten(1 * HALF_INGOT)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } // IV output bus @@ -3515,7 +3515,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(8 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_IV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -3526,7 +3526,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polybenzimidazole.getMolten(1 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_IV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } // LuV output bus @@ -3540,7 +3540,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(16 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_LuV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -3551,7 +3551,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polybenzimidazole.getMolten(2 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_LuV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } // ZPM output bus @@ -3565,7 +3565,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polybenzimidazole.getMolten(4 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_ZPM) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } // UV output bus @@ -3579,7 +3579,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polybenzimidazole.getMolten(8 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_UV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } if (!AvaritiaAddons.isModLoaded()) { @@ -3597,7 +3597,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polybenzimidazole.getMolten(16 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_UHV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } } @@ -3616,7 +3616,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Glue.getFluid(1 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_ULV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -3627,7 +3627,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Plastic.getMolten(1 * HALF_INGOT)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_ULV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -3638,7 +3638,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(1 * EIGHTH_INGOT)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_ULV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -3649,7 +3649,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polybenzimidazole.getMolten(4)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_ULV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } /* @@ -3672,7 +3672,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Glue.getFluid(5 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -3683,7 +3683,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Plastic.getMolten(1 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -3694,7 +3694,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(1 * HALF_INGOT)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -3705,7 +3705,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polybenzimidazole.getMolten(9)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } if (!IronTanks.isModLoaded()) { @@ -3723,7 +3723,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Plastic.getMolten(2 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -3734,7 +3734,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(1 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -3745,7 +3745,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polybenzimidazole.getMolten(1 * EIGHTH_INGOT)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } // HV input hatch @@ -3759,7 +3759,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Plastic.getMolten(3 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -3770,7 +3770,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(2 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -3781,7 +3781,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polybenzimidazole.getMolten(1 * QUARTER_INGOT)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } // EV input hatch @@ -3795,7 +3795,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(4 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -3806,7 +3806,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polybenzimidazole.getMolten(1 * HALF_INGOT)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } // IV input hatch @@ -3820,7 +3820,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(8 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_IV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -3831,7 +3831,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polybenzimidazole.getMolten(1 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_IV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } // LuV input hatch @@ -3845,7 +3845,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(16 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_LuV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -3856,7 +3856,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polybenzimidazole.getMolten(2 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_LuV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } // ZPM input hatch @@ -3870,7 +3870,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polybenzimidazole.getMolten(4 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_ZPM) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } // UV input hatch @@ -3881,7 +3881,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polybenzimidazole.getMolten(8 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_UV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } // UHV input hatch @@ -3892,7 +3892,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polybenzimidazole.getMolten(16 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_UHV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } } @@ -3911,7 +3911,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Glue.getFluid(1 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_ULV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -3922,7 +3922,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Plastic.getMolten(1 * HALF_INGOT)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_ULV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -3933,7 +3933,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(1 * EIGHTH_INGOT)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_ULV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -3944,7 +3944,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polybenzimidazole.getMolten(4)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_ULV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } /* @@ -3967,7 +3967,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Glue.getFluid(5 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -3978,7 +3978,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Plastic.getMolten(1 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -3989,7 +3989,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(1 * HALF_INGOT)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4000,7 +4000,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polybenzimidazole.getMolten(9)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } if (!IronTanks.isModLoaded()) { @@ -4018,7 +4018,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Plastic.getMolten(2 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4029,7 +4029,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(1 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4040,7 +4040,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polybenzimidazole.getMolten(1 * EIGHTH_INGOT)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } // HV output hatch @@ -4054,7 +4054,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Plastic.getMolten(3 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4065,7 +4065,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(2 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4076,7 +4076,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polybenzimidazole.getMolten(1 * QUARTER_INGOT)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } // EV output hatch @@ -4090,7 +4090,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(4 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4101,7 +4101,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polybenzimidazole.getMolten(1 * HALF_INGOT)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } // IV output hatch @@ -4115,7 +4115,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(8 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_IV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4126,7 +4126,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polybenzimidazole.getMolten(1 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_IV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } // LuV output hatch @@ -4140,7 +4140,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(16 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_LuV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4151,7 +4151,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polybenzimidazole.getMolten(2 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_LuV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } // ZPM output hatch @@ -4165,7 +4165,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polybenzimidazole.getMolten(4 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_ZPM) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } // UV output hatch @@ -4176,7 +4176,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polybenzimidazole.getMolten(8 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_UV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } // UHV output hatch @@ -4187,7 +4187,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Polybenzimidazole.getMolten(16 * INGOTS)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_UHV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } } @@ -4205,7 +4205,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.RC_Tie_Stone.get(1)) .duration(6 * SECONDS + 8 * TICKS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4215,7 +4215,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.RC_Tie_Stone.get(1)) .duration(6 * SECONDS + 8 * TICKS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4226,7 +4226,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Blaze.getMolten(216)) .duration(5 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4237,7 +4237,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.ConductiveIron.getMolten(432)) .duration(5 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4248,7 +4248,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.VibrantAlloy.getMolten(216)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4259,7 +4259,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.CrystallineAlloy.getMolten(216)) .duration(5 * SECONDS) .eut(48) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4270,7 +4270,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Redstone.getMolten(216)) .duration(5 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4281,7 +4281,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.RedAlloy.getMolten(216)) .duration(5 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4292,7 +4292,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.ConductiveIron.getMolten(216)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4303,7 +4303,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.VibrantAlloy.getMolten(216)) .duration(5 * SECONDS) .eut(48) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4313,7 +4313,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.RC_Rail_Electric.get(1)) .duration(2 * SECONDS + 10 * TICKS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4323,7 +4323,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.RC_Rail_Electric.get(1)) .duration(2 * SECONDS + 10 * TICKS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4333,7 +4333,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.RC_Rail_Electric.get(2)) .duration(2 * SECONDS + 10 * TICKS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4343,7 +4343,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.RC_Rail_Electric.get(4)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4353,7 +4353,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.RC_Rail_Electric.get(8)) .duration(2 * SECONDS + 10 * TICKS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4363,7 +4363,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.RC_Rail_Electric.get(16)) .duration(2 * SECONDS + 10 * TICKS) .eut(48) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4373,7 +4373,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.RC_Rail_Electric.get(32)) .duration(2 * SECONDS + 10 * TICKS) .eut(64) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4383,7 +4383,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.RC_Rail_Electric.get(64)) .duration(2 * SECONDS + 10 * TICKS) .eut(96) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4393,7 +4393,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.RC_Rail_Wooden.get(8)) .duration(6 * SECONDS + 13 * TICKS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4403,7 +4403,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.RC_Rail_Wooden.get(8)) .duration(6 * SECONDS + 13 * TICKS) .eut(4) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4413,7 +4413,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.RC_Rail_Wooden.get(16)) .duration(6 * SECONDS + 13 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4423,7 +4423,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.RC_Rail_Wooden.get(32)) .duration(6 * SECONDS + 13 * TICKS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4433,35 +4433,35 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.RC_Rail_Wooden.get(64)) .duration(6 * SECONDS + 13 * TICKS) .eut(48) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.RC_Tie_Wood.get(32), GT_Utility.getIntegratedCircuit(20)) .itemOutputs(ItemList.RC_Bed_Wood.get(24)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.RC_Tie_Wood.get(64), GT_Utility.getIntegratedCircuit(24)) .itemOutputs(ItemList.RC_Bed_Wood.get(48)) .duration(10 * SECONDS) .eut(48) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.RC_Tie_Stone.get(32), GT_Utility.getIntegratedCircuit(20)) .itemOutputs(ItemList.RC_Bed_Stone.get(24)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.RC_Tie_Stone.get(64), GT_Utility.getIntegratedCircuit(24)) .itemOutputs(ItemList.RC_Bed_Stone.get(48)) .duration(10 * SECONDS) .eut(48) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); ItemStack tRailWood = getModItem(Railcraft.ID, "track", 64, 736); if (tRailWood != null) { @@ -4482,7 +4482,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(tRailWood) .duration(5 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4492,7 +4492,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(tRailWoodB) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } GT_Values.RA.stdBuilder() .itemInputs( @@ -4503,7 +4503,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Blocks.golden_rail, 16, 0)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4513,7 +4513,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(new ItemStack(Blocks.rail, 64, 0)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); ItemStack tRailRe = getModItem(Railcraft.ID, "track", 64); NBTTagCompound tTagRe = new NBTTagCompound(); @@ -4528,7 +4528,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(tRailRe) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); ItemStack tRailReB = getModItem(Railcraft.ID, "track.reinforced", 16); NBTTagCompound tTagReB = new NBTTagCompound(); @@ -4543,7 +4543,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(tRailReB) .duration(15 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); ItemStack tRailEl = getModItem(Railcraft.ID, "track", 64); NBTTagCompound tTagEl = new NBTTagCompound(); @@ -4558,7 +4558,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(tRailEl) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); ItemStack tRailHs = getModItem(Railcraft.ID, "track", 64, 816); if (tRailHs != null) { @@ -4574,7 +4574,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(tRailHs) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } ItemStack tRailHsB = getModItem(Railcraft.ID, "track.speed", 16); NBTTagCompound tTagHsB = new NBTTagCompound(); @@ -4589,7 +4589,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(tRailHsB) .duration(15 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); // --- Wooden Switch Track --- ItemStack tRailSS = getModItem(Railcraft.ID, "track.slow", 1, 19986); @@ -4606,7 +4606,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(tRailSS) .duration(5 * SECONDS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4616,7 +4616,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(2, tRailSS)) .duration(5 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4626,7 +4626,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(4, tRailSS)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4636,7 +4636,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(8, tRailSS)) .duration(5 * SECONDS) .eut(48) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4646,7 +4646,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(16, tRailSS)) .duration(5 * SECONDS) .eut(64) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4656,7 +4656,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(32, tRailSS)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4666,7 +4666,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(64, tRailSS)) .duration(5 * SECONDS) .eut(256) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } // --- Wooden Wye Track --- ItemStack tRailSW = getModItem(Railcraft.ID, "track.slow", 1); @@ -4683,7 +4683,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(tRailSW) .duration(5 * SECONDS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4693,7 +4693,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(2, tRailSW)) .duration(5 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4703,7 +4703,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(4, tRailSW)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4713,7 +4713,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(8, tRailSW)) .duration(5 * SECONDS) .eut(48) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4723,7 +4723,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(16, tRailSW)) .duration(5 * SECONDS) .eut(64) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4733,7 +4733,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(32, tRailSW)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4743,7 +4743,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(64, tRailSW)) .duration(5 * SECONDS) .eut(256) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } // --- Wooden Junction Tack --- ItemStack tRailSJ = getModItem(Railcraft.ID, "track.slow", 1); @@ -4760,7 +4760,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(tRailSJ) .duration(5 * SECONDS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4770,7 +4770,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(2, tRailSJ)) .duration(5 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4780,7 +4780,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(4, tRailSJ)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4790,7 +4790,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(8, tRailSJ)) .duration(5 * SECONDS) .eut(48) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4800,7 +4800,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(16, tRailSJ)) .duration(5 * SECONDS) .eut(64) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4810,7 +4810,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(32, tRailSJ)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4820,7 +4820,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(64, tRailSJ)) .duration(5 * SECONDS) .eut(256) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } // --- Switch Tack --- ItemStack tRailNS = getModItem(Railcraft.ID, "track", 1, 4767); @@ -4837,7 +4837,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(tRailNS) .duration(10 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4847,7 +4847,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(2, tRailNS)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4857,7 +4857,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(4, tRailNS)) .duration(10 * SECONDS) .eut(48) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4867,7 +4867,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(8, tRailNS)) .duration(10 * SECONDS) .eut(64) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4877,7 +4877,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(16, tRailNS)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4887,7 +4887,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(32, tRailNS)) .duration(10 * SECONDS) .eut(256) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4897,7 +4897,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(64, tRailNS)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } // --- Wye Tack --- @@ -4915,7 +4915,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(tRailNW) .duration(10 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4925,7 +4925,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(2, tRailNW)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4935,7 +4935,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(4, tRailNW)) .duration(10 * SECONDS) .eut(48) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4945,7 +4945,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(8, tRailNW)) .duration(10 * SECONDS) .eut(64) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4955,7 +4955,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(16, tRailNW)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4965,7 +4965,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(32, tRailNW)) .duration(10 * SECONDS) .eut(256) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4975,7 +4975,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(64, tRailNW)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } // --- Junction Tack --- ItemStack tRailNJ = getModItem(Railcraft.ID, "track", 1); @@ -4992,7 +4992,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(tRailNJ) .duration(10 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5002,7 +5002,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(2, tRailNJ)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5012,7 +5012,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(4, tRailNJ)) .duration(10 * SECONDS) .eut(48) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5022,7 +5022,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(8, tRailNJ)) .duration(10 * SECONDS) .eut(64) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5032,7 +5032,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(16, tRailNJ)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5042,7 +5042,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(32, tRailNJ)) .duration(10 * SECONDS) .eut(256) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5052,7 +5052,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(64, tRailNJ)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } // --- Reinforced Switch Track --- ItemStack tRailRS = getModItem(Railcraft.ID, "track.reinforced", 1); @@ -5069,7 +5069,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(tRailRS) .duration(15 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5079,7 +5079,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(2, tRailRS)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5089,7 +5089,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(4, tRailRS)) .duration(15 * SECONDS) .eut(48) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5099,7 +5099,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(8, tRailRS)) .duration(15 * SECONDS) .eut(64) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5109,7 +5109,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(16, tRailRS)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5119,7 +5119,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(32, tRailRS)) .duration(15 * SECONDS) .eut(256) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5129,7 +5129,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(64, tRailRS)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } // --- Reinforced Wye Track --- ItemStack tRailRW = getModItem(Railcraft.ID, "track.reinforced", 1); @@ -5146,7 +5146,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(tRailRW) .duration(15 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5156,7 +5156,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(2, tRailRW)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5166,7 +5166,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(4, tRailRW)) .duration(15 * SECONDS) .eut(48) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5176,7 +5176,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(8, tRailRW)) .duration(15 * SECONDS) .eut(64) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5186,7 +5186,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(16, tRailRW)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5196,7 +5196,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(32, tRailRW)) .duration(15 * SECONDS) .eut(256) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5206,7 +5206,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(64, tRailRW)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } // --- Reinforced Junction Track --- ItemStack tRailRJ = getModItem(Railcraft.ID, "track.reinforced", 1, 764); @@ -5223,7 +5223,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(tRailRJ) .duration(15 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5233,7 +5233,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(2, tRailRJ)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5243,7 +5243,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(4, tRailRJ)) .duration(15 * SECONDS) .eut(48) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5253,7 +5253,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(8, tRailRJ)) .duration(15 * SECONDS) .eut(64) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5263,7 +5263,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(16, tRailRJ)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5273,7 +5273,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(32, tRailRJ)) .duration(15 * SECONDS) .eut(256) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5283,7 +5283,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(64, tRailRJ)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } // --- H.S. Switch Track --- ItemStack tRailSSw = getModItem(Railcraft.ID, "track.speed", 1, 7916); @@ -5300,7 +5300,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(tRailSSw) .duration(20 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5310,7 +5310,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(2, tRailSSw)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5320,7 +5320,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(4, tRailSSw)) .duration(20 * SECONDS) .eut(48) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5330,7 +5330,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(8, tRailSSw)) .duration(20 * SECONDS) .eut(64) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5340,7 +5340,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(16, tRailSSw)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5350,7 +5350,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(32, tRailSSw)) .duration(20 * SECONDS) .eut(256) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5360,7 +5360,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(64, tRailSSw)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } // --- H.S. Wye Track --- ItemStack tRailSWy = getModItem(Railcraft.ID, "track.speed", 1); @@ -5377,7 +5377,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(tRailSWy) .duration(20 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5387,7 +5387,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(2, tRailSWy)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5397,7 +5397,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(4, tRailSWy)) .duration(20 * SECONDS) .eut(48) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5407,7 +5407,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(8, tRailSWy)) .duration(20 * SECONDS) .eut(64) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5417,7 +5417,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(16, tRailSWy)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5427,7 +5427,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(32, tRailSWy)) .duration(20 * SECONDS) .eut(256) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5437,7 +5437,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(64, tRailSWy)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } // --- H.S. Transition Track --- ItemStack tRailSTt = getModItem(Railcraft.ID, "track.speed", 1, 26865); @@ -5455,7 +5455,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(4, tRailSTt)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5466,7 +5466,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(8, tRailSTt)) .duration(20 * SECONDS) .eut(64) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5477,7 +5477,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(16, tRailSTt)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5488,7 +5488,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(32, tRailSTt)) .duration(20 * SECONDS) .eut(256) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5499,7 +5499,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(64, tRailSTt)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } // --- Electric Switch Track --- ItemStack tRailES = getModItem(Railcraft.ID, "track.electric", 1, 10488); @@ -5516,7 +5516,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(tRailES) .duration(20 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5526,7 +5526,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(2, tRailES)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5536,7 +5536,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(4, tRailES)) .duration(20 * SECONDS) .eut(48) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5546,7 +5546,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(8, tRailES)) .duration(20 * SECONDS) .eut(64) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5556,7 +5556,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(16, tRailES)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5566,7 +5566,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(32, tRailES)) .duration(20 * SECONDS) .eut(256) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5576,7 +5576,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(64, tRailES)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } // --- Electric Wye Track --- ItemStack tRailEw = getModItem(Railcraft.ID, "track.electric", 1); @@ -5593,7 +5593,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(tRailEw) .duration(20 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5603,7 +5603,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(2, tRailEw)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5613,7 +5613,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(4, tRailEw)) .duration(20 * SECONDS) .eut(48) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5623,7 +5623,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(8, tRailEw)) .duration(20 * SECONDS) .eut(64) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5633,7 +5633,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(16, tRailEw)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5643,7 +5643,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(32, tRailEw)) .duration(20 * SECONDS) .eut(256) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5653,7 +5653,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(64, tRailEw)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } // --- Electric Junction Track --- ItemStack tRailEJ = getModItem(Railcraft.ID, "track.electric", 1); @@ -5670,7 +5670,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(tRailEJ) .duration(20 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5680,7 +5680,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(2, tRailEJ)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5690,7 +5690,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(4, tRailEJ)) .duration(20 * SECONDS) .eut(48) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5700,7 +5700,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(8, tRailEJ)) .duration(20 * SECONDS) .eut(64) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5710,7 +5710,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(16, tRailEJ)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5720,7 +5720,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(32, tRailEJ)) .duration(20 * SECONDS) .eut(256) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5730,7 +5730,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_Utility.copyAmount(64, tRailEJ)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } // Shunting Wire for (Materials tMat : solderingMats) { @@ -5746,7 +5746,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(tMat.getMolten(16L * tMultiplier / 2)) .duration(10 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5757,7 +5757,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(tMat.getMolten(16L * tMultiplier / 2)) .duration(10 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5768,7 +5768,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(tMat.getMolten(16L * tMultiplier / 2)) .duration(10 * SECONDS) .eut(24) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5779,7 +5779,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(tMat.getMolten(16L * tMultiplier / 2)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5790,7 +5790,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(tMat.getMolten(16L * tMultiplier / 2)) .duration(10 * SECONDS) .eut(48) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5801,7 +5801,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(tMat.getMolten(16L * tMultiplier / 2)) .duration(10 * SECONDS) .eut(64) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5812,7 +5812,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(tMat.getMolten(16L * tMultiplier / 2)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); // chunkloader upgrade OC @@ -5827,7 +5827,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(tMat.getMolten(144L * tMultiplier / 2)) .duration(12 * SECONDS + 10 * TICKS) .eut(256) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } @@ -5841,7 +5841,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.SeedOil.getFluid(250)) .duration(5 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5853,7 +5853,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Lubricant.getFluid(125)) .duration(5 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5863,7 +5863,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(Railcraft.ID, "machine.beta", 1L, 11)) .duration(10 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5873,7 +5873,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(Railcraft.ID, "machine.beta", 1L, 7)) .duration(10 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5883,7 +5883,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(Railcraft.ID, "machine.beta", 1L, 8)) .duration(10 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5893,7 +5893,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(Railcraft.ID, "machine.beta", 1L, 9)) .duration(10 * SECONDS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5905,7 +5905,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(Railcraft.ID, "machine.alpha", 1, 0)) .duration(30 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5914,7 +5914,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(Railcraft.ID, "machine.beta", 1L, 0)) .duration(30 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5924,7 +5924,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(Railcraft.ID, "machine.beta", 2L, 1)) .duration(40 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5934,7 +5934,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(Railcraft.ID, "machine.beta", 2L, 1)) .duration(40 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5944,7 +5944,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(Railcraft.ID, "machine.beta", 1L, 2)) .duration(40 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5953,7 +5953,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(Railcraft.ID, "machine.beta", 1L, 13)) .duration(10 * SECONDS) .eut(64) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5963,7 +5963,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(Railcraft.ID, "machine.beta", 2L, 14)) .duration(20 * SECONDS) .eut(64) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5973,7 +5973,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(Railcraft.ID, "machine.beta", 2L, 14)) .duration(20 * SECONDS) .eut(64) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5983,7 +5983,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(Railcraft.ID, "machine.beta", 1L, 15)) .duration(20 * SECONDS) .eut(64) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5992,7 +5992,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 0)) .duration(30 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6002,7 +6002,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(Railcraft.ID, "machine.zeta", 2L, 1)) .duration(40 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6012,7 +6012,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(Railcraft.ID, "machine.zeta", 2L, 1)) .duration(40 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6022,7 +6022,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 2)) .duration(40 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6031,7 +6031,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 3)) .duration(10 * SECONDS) .eut(256) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6041,7 +6041,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(Railcraft.ID, "machine.zeta", 2L, 4)) .duration(20 * SECONDS) .eut(256) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6051,7 +6051,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(Railcraft.ID, "machine.zeta", 2L, 4)) .duration(20 * SECONDS) .eut(256) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6061,7 +6061,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 5)) .duration(20 * SECONDS) .eut(256) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6070,7 +6070,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 6)) .duration(30 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6080,7 +6080,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(Railcraft.ID, "machine.zeta", 2L, 7)) .duration(40 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6090,7 +6090,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(Railcraft.ID, "machine.zeta", 2L, 7)) .duration(40 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6100,7 +6100,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 8)) .duration(40 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6109,7 +6109,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 9)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6119,7 +6119,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(Railcraft.ID, "machine.zeta", 2L, 10)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6129,7 +6129,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(Railcraft.ID, "machine.zeta", 2L, 10)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6139,7 +6139,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 11)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6148,7 +6148,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 12)) .duration(30 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6158,7 +6158,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(Railcraft.ID, "machine.zeta", 2L, 13)) .duration(40 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6168,7 +6168,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(Railcraft.ID, "machine.zeta", 2L, 13)) .duration(40 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6178,7 +6178,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 14)) .duration(40 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6187,7 +6187,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(Railcraft.ID, "machine.eta", 1L, 0)) .duration(10 * SECONDS) .eut(4096) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6197,7 +6197,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(Railcraft.ID, "machine.eta", 2L, 1)) .duration(20 * SECONDS) .eut(4096) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6207,7 +6207,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(Railcraft.ID, "machine.eta", 2L, 1)) .duration(20 * SECONDS) .eut(4096) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6217,7 +6217,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(Railcraft.ID, "machine.eta", 1L, 2)) .duration(20 * SECONDS) .eut(4096) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6226,7 +6226,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(Railcraft.ID, "machine.eta", 1L, 3)) .duration(30 * SECONDS) .eut(TierEU.RECIPE_IV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6236,7 +6236,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(Railcraft.ID, "machine.eta", 2L, 4)) .duration(40 * SECONDS) .eut(TierEU.RECIPE_IV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6246,7 +6246,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(Railcraft.ID, "machine.eta", 2L, 4)) .duration(40 * SECONDS) .eut(TierEU.RECIPE_IV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6256,7 +6256,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(Railcraft.ID, "machine.eta", 1L, 5)) .duration(40 * SECONDS) .eut(TierEU.RECIPE_IV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6265,7 +6265,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(Railcraft.ID, "machine.eta", 1L, 6)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LuV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6275,7 +6275,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(Railcraft.ID, "machine.eta", 2L, 7)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_LuV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6285,7 +6285,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(Railcraft.ID, "machine.eta", 2L, 7)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_LuV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6295,7 +6295,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(Railcraft.ID, "machine.eta", 1L, 8)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_LuV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); // Water Tank @@ -6307,7 +6307,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Glue.getFluid(36)) .duration(10 * SECONDS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6317,7 +6317,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Glue.getFluid(36)) .duration(10 * SECONDS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6327,7 +6327,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Glue.getFluid(36)) .duration(10 * SECONDS) .eut(8) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6337,7 +6337,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Glue.getFluid(72)) .duration(20 * SECONDS) .eut(30) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6347,7 +6347,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Plastic.getMolten(36)) .duration(20 * SECONDS) .eut(30) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6357,7 +6357,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Plastic.getMolten(72)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); // Steam Boilers @@ -6366,14 +6366,14 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(getModItem(Railcraft.ID, "machine.beta", 1L, 3)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.IC2_Item_Casing_Steel.get(6), GT_Utility.getIntegratedCircuit(6)) .itemOutputs(getModItem(Railcraft.ID, "machine.beta", 1L, 4)) .duration(20 * SECONDS) .eut(64) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } public void withBartWorks() { @@ -6388,7 +6388,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(ItemList.Casing_Advanced_Rhodium_Palladium.get(1)) .duration(2 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } @@ -6407,7 +6407,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.StainlessSteel.getMolten(72)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6418,7 +6418,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.TungstenSteel.getMolten(72)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6429,7 +6429,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.Platinum.getMolten(72)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_IV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } public void withGalaxySpace() { @@ -6447,7 +6447,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(new FluidStack(FluidRegistry.getFluid("liquid helium"), 2000)) .duration(16 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6459,7 +6459,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(new FluidStack(FluidRegistry.getFluid("liquid helium"), 4000)) .duration(16 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6471,7 +6471,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(new FluidStack(FluidRegistry.getFluid("liquid helium"), 6000)) .duration(16 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6483,7 +6483,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(new FluidStack(FluidRegistry.getFluid("liquid helium"), 8000)) .duration(32 * SECONDS) .eut(TierEU.RECIPE_IV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6498,7 +6498,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(new FluidStack(FluidRegistry.getFluid("liquid helium"), 12000)) .duration(32 * SECONDS) .eut(TierEU.RECIPE_LuV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6510,7 +6510,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(new FluidStack(FluidRegistry.getFluid("liquid helium"), 16000)) .duration(1 * MINUTES + 4 * SECONDS) .eut(TierEU.RECIPE_ZPM) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6522,7 +6522,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(new FluidStack(FluidRegistry.getFluid("liquid helium"), 20000)) .duration(1 * MINUTES + 4 * SECONDS) .eut(TierEU.RECIPE_UV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6534,7 +6534,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(new FluidStack(FluidRegistry.getFluid("liquid helium"), 24000)) .duration(2 * MINUTES + 8 * SECONDS) .eut(TierEU.RECIPE_UHV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6546,7 +6546,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(new FluidStack(FluidRegistry.getFluid("liquid helium"), 28000)) .duration(2 * MINUTES + 40 * SECONDS) .eut(TierEU.RECIPE_UEV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6558,7 +6558,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(new FluidStack(FluidRegistry.getFluid("liquid helium"), 36000)) .duration(2 * MINUTES + 40 * SECONDS) .eut(TierEU.RECIPE_UMV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } public void withGTNHLanthAndGTPP() { @@ -6581,7 +6581,7 @@ public class AssemblerRecipes implements Runnable { .fluidInputs(Materials.SolderingAlloy.getMolten(144)) .duration(2 * MINUTES) .eut(TierEU.RECIPE_EV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } public void withIC2NuclearControl() { @@ -6596,7 +6596,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_ModHandler.getIC2Item("electronicCircuit", 2)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6605,7 +6605,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_ModHandler.getIC2Item("electronicCircuit", 2)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6614,14 +6614,14 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_ModHandler.getIC2Item("electronicCircuit", 2)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(IC2NuclearControl.ID, "RFSensorCard", 1L, 0), GT_Utility.getIntegratedCircuit(1)) .itemOutputs(GT_ModHandler.getIC2Item("electronicCircuit", 2)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -6630,7 +6630,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_ModHandler.getIC2Item("electronicCircuit", 1)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); // counter @@ -6641,7 +6641,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_ModHandler.getIC2Item("electronicCircuit", 1)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); // liquid @@ -6652,7 +6652,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_ModHandler.getIC2Item("electronicCircuit", 2)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); // generator @@ -6663,7 +6663,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_ModHandler.getIC2Item("electronicCircuit", 2)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); // 2-6 liquid @@ -6674,7 +6674,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_ModHandler.getIC2Item("electronicCircuit", 2)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); // 2-6 energy @@ -6685,7 +6685,7 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.circuit.get(Materials.Good), 2)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); // non-fluid nuke @@ -6696,21 +6696,21 @@ public class AssemblerRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.circuit.get(Materials.Good), 2)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(IC2NuclearControl.ID, "CardAppeng", 1L, 0), GT_Utility.getIntegratedCircuit(1)) .itemOutputs(GT_ModHandler.getIC2Item("electronicCircuit", 2)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.NC_SensorCard.get(1), GT_Utility.getIntegratedCircuit(1)) .itemOutputs(GT_ModHandler.getIC2Item("electronicCircuit", 3)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAssemblerRecipes); + .addTo(assemblerRecipes); } } diff --git a/src/main/java/gregtech/loaders/postload/recipes/AutoclaveRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/AutoclaveRecipes.java index d4b5606660..519d584136 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/AutoclaveRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/AutoclaveRecipes.java @@ -1,8 +1,8 @@ package gregtech.loaders.postload.recipes; import static gregtech.api.enums.Mods.AppliedEnergistics2; +import static gregtech.api.recipe.RecipeMaps.autoclaveRecipes; import static gregtech.api.util.GT_ModHandler.getModItem; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sAutoclaveRecipes; import static gregtech.api.util.GT_RecipeBuilder.MINUTES; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; @@ -27,7 +27,7 @@ public class AutoclaveRecipes implements Runnable { .fluidInputs(Materials.EnergeticAlloy.getMolten(288)) .duration(30 * SECONDS) .eut(256) - .addTo(sAutoclaveRecipes); + .addTo(autoclaveRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.IC2_Energium_Dust.get(9L)) @@ -36,7 +36,7 @@ public class AutoclaveRecipes implements Runnable { .fluidInputs(Materials.ConductiveIron.getMolten(576)) .duration(60 * SECONDS) .eut(256) - .addTo(sAutoclaveRecipes); + .addTo(autoclaveRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(AppliedEnergistics2.ID, "item.ItemCrystalSeed", 1L, 0)) @@ -45,7 +45,7 @@ public class AutoclaveRecipes implements Runnable { .fluidInputs(Materials.Water.getFluid(200L)) .duration(1 * MINUTES + 40 * SECONDS) .eut(24) - .addTo(sAutoclaveRecipes); + .addTo(autoclaveRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(AppliedEnergistics2.ID, "item.ItemCrystalSeed", 1L, 600)) @@ -54,7 +54,7 @@ public class AutoclaveRecipes implements Runnable { .fluidInputs(Materials.Water.getFluid(200L)) .duration(1 * MINUTES + 40 * SECONDS) .eut(24) - .addTo(sAutoclaveRecipes); + .addTo(autoclaveRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(AppliedEnergistics2.ID, "item.ItemCrystalSeed", 1L, 1200)) @@ -63,7 +63,7 @@ public class AutoclaveRecipes implements Runnable { .fluidInputs(Materials.Water.getFluid(200L)) .duration(1 * MINUTES + 40 * SECONDS) .eut(24) - .addTo(sAutoclaveRecipes); + .addTo(autoclaveRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(AppliedEnergistics2.ID, "item.ItemCrystalSeed", 1L, 0)) @@ -72,7 +72,7 @@ public class AutoclaveRecipes implements Runnable { .fluidInputs(GT_ModHandler.getDistilledWater(100L)) .duration(50 * SECONDS) .eut(24) - .addTo(sAutoclaveRecipes); + .addTo(autoclaveRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(AppliedEnergistics2.ID, "item.ItemCrystalSeed", 1L, 600)) @@ -81,7 +81,7 @@ public class AutoclaveRecipes implements Runnable { .fluidInputs(GT_ModHandler.getDistilledWater(100L)) .duration(50 * SECONDS) .eut(24) - .addTo(sAutoclaveRecipes); + .addTo(autoclaveRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(AppliedEnergistics2.ID, "item.ItemCrystalSeed", 1L, 1200)) @@ -90,7 +90,7 @@ public class AutoclaveRecipes implements Runnable { .fluidInputs(GT_ModHandler.getDistilledWater(100L)) .duration(50 * SECONDS) .eut(24) - .addTo(sAutoclaveRecipes); + .addTo(autoclaveRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(AppliedEnergistics2.ID, "item.ItemCrystalSeed", 1L, 0)) @@ -99,7 +99,7 @@ public class AutoclaveRecipes implements Runnable { .fluidInputs(Materials.Void.getMolten(36L)) .duration(25 * SECONDS) .eut(24) - .addTo(sAutoclaveRecipes); + .addTo(autoclaveRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(AppliedEnergistics2.ID, "item.ItemCrystalSeed", 1L, 600)) @@ -108,7 +108,7 @@ public class AutoclaveRecipes implements Runnable { .fluidInputs(Materials.Void.getMolten(36L)) .duration(25 * SECONDS) .eut(24) - .addTo(sAutoclaveRecipes); + .addTo(autoclaveRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(AppliedEnergistics2.ID, "item.ItemCrystalSeed", 1L, 1200)) @@ -117,7 +117,7 @@ public class AutoclaveRecipes implements Runnable { .fluidInputs(Materials.Void.getMolten(36L)) .duration(25 * SECONDS) .eut(24) - .addTo(sAutoclaveRecipes); + .addTo(autoclaveRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Carbon, 32)) @@ -126,7 +126,7 @@ public class AutoclaveRecipes implements Runnable { .fluidInputs(Materials.Polybenzimidazole.getMolten(36L)) .duration(7 * SECONDS + 10 * TICKS) .eut((int) TierEU.RECIPE_EV) - .addTo(sAutoclaveRecipes); + .addTo(autoclaveRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Carbon, 64)) @@ -135,7 +135,7 @@ public class AutoclaveRecipes implements Runnable { .fluidInputs(Materials.Epoxid.getMolten(144L)) .duration(15 * SECONDS) .eut((int) TierEU.RECIPE_HV) - .addTo(sAutoclaveRecipes); + .addTo(autoclaveRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Carbon, 64)) @@ -144,7 +144,7 @@ public class AutoclaveRecipes implements Runnable { .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(288L)) .duration(20 * SECONDS) .eut((int) TierEU.RECIPE_MV) - .addTo(sAutoclaveRecipes); + .addTo(autoclaveRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Carbon, 64)) @@ -153,7 +153,7 @@ public class AutoclaveRecipes implements Runnable { .fluidInputs(Materials.Plastic.getMolten(576L)) .duration(30 * SECONDS) .eut((int) TierEU.RECIPE_LV) - .addTo(sAutoclaveRecipes); + .addTo(autoclaveRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.NetherStar, 1)) @@ -162,7 +162,7 @@ public class AutoclaveRecipes implements Runnable { .fluidInputs(Materials.UUMatter.getFluid(576L)) .duration(60 * MINUTES) .eut((int) TierEU.RECIPE_HV) - .addTo(sAutoclaveRecipes); + .addTo(autoclaveRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(ItemList.QuantumStar.get(1L))) @@ -171,7 +171,7 @@ public class AutoclaveRecipes implements Runnable { .fluidInputs(Materials.Neutronium.getMolten(288)) .duration(24 * SECONDS) .eut((int) TierEU.RECIPE_IV) - .addTo(sAutoclaveRecipes); + .addTo(autoclaveRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(ItemList.Gravistar.get(16L))) @@ -180,7 +180,7 @@ public class AutoclaveRecipes implements Runnable { .fluidInputs(Materials.Infinity.getMolten(288)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_UEV) - .addTo(sAutoclaveRecipes); + .addTo(autoclaveRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.SiliconDioxide.getDust(1)) @@ -189,7 +189,7 @@ public class AutoclaveRecipes implements Runnable { .fluidInputs(Materials.Water.getFluid(200L)) .duration(1 * MINUTES + 40 * SECONDS) .eut(24) - .addTo(sAutoclaveRecipes); + .addTo(autoclaveRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.SiliconDioxide.getDust(1)) @@ -198,7 +198,7 @@ public class AutoclaveRecipes implements Runnable { .fluidInputs(GT_ModHandler.getDistilledWater(100L)) .duration(1 * MINUTES + 15 * SECONDS) .eut(24) - .addTo(sAutoclaveRecipes); + .addTo(autoclaveRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.SiliconDioxide.getDust(1)) @@ -207,7 +207,7 @@ public class AutoclaveRecipes implements Runnable { .fluidInputs(Materials.Void.getMolten(36L)) .duration(50 * SECONDS) .eut(24) - .addTo(sAutoclaveRecipes); + .addTo(autoclaveRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -218,7 +218,7 @@ public class AutoclaveRecipes implements Runnable { .fluidInputs(Materials.Water.getFluid(1000L)) .duration(60 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAutoclaveRecipes); + .addTo(autoclaveRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -229,6 +229,6 @@ public class AutoclaveRecipes implements Runnable { .fluidInputs(GT_ModHandler.getDistilledWater(1000L)) .duration(60 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAutoclaveRecipes); + .addTo(autoclaveRecipes); } } diff --git a/src/main/java/gregtech/loaders/postload/recipes/BenderRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/BenderRecipes.java index a2601392f2..192422437a 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/BenderRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/BenderRecipes.java @@ -1,6 +1,6 @@ package gregtech.loaders.postload.recipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sBenderRecipes; +import static gregtech.api.recipe.RecipeMaps.benderRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; @@ -27,7 +27,7 @@ public class BenderRecipes implements Runnable { .itemOutputs(ItemList.RC_Rail_Standard.get(64L)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sBenderRecipes); + .addTo(benderRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -36,7 +36,7 @@ public class BenderRecipes implements Runnable { .itemOutputs(ItemList.RC_Rail_Standard.get(64L)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sBenderRecipes); + .addTo(benderRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -45,7 +45,7 @@ public class BenderRecipes implements Runnable { .itemOutputs(ItemList.RC_Rail_Standard.get(64L)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sBenderRecipes); + .addTo(benderRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -54,7 +54,7 @@ public class BenderRecipes implements Runnable { .itemOutputs(ItemList.RC_Rail_Standard.get(64L)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sBenderRecipes); + .addTo(benderRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -63,7 +63,7 @@ public class BenderRecipes implements Runnable { .itemOutputs(ItemList.RC_Rail_Standard.get(64L)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sBenderRecipes); + .addTo(benderRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -72,7 +72,7 @@ public class BenderRecipes implements Runnable { .itemOutputs(ItemList.RC_Rail_Standard.get(64L)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sBenderRecipes); + .addTo(benderRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -81,7 +81,7 @@ public class BenderRecipes implements Runnable { .itemOutputs(ItemList.RC_Rail_Standard.get(64L)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sBenderRecipes); + .addTo(benderRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -90,7 +90,7 @@ public class BenderRecipes implements Runnable { .itemOutputs(ItemList.RC_Rail_Standard.get(64L)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sBenderRecipes); + .addTo(benderRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -99,7 +99,7 @@ public class BenderRecipes implements Runnable { .itemOutputs(ItemList.RC_Rail_Standard.get(64L)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sBenderRecipes); + .addTo(benderRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -108,7 +108,7 @@ public class BenderRecipes implements Runnable { .itemOutputs(ItemList.RC_Rail_Standard.get(64L)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sBenderRecipes); + .addTo(benderRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -117,7 +117,7 @@ public class BenderRecipes implements Runnable { .itemOutputs(ItemList.RC_Rail_Standard.get(64L)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sBenderRecipes); + .addTo(benderRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -126,7 +126,7 @@ public class BenderRecipes implements Runnable { .itemOutputs(ItemList.RC_Rail_Reinforced.get(64L)) .duration(30 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sBenderRecipes); + .addTo(benderRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -135,7 +135,7 @@ public class BenderRecipes implements Runnable { .itemOutputs(ItemList.RC_Rail_Reinforced.get(64L)) .duration(30 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sBenderRecipes); + .addTo(benderRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -144,7 +144,7 @@ public class BenderRecipes implements Runnable { .itemOutputs(ItemList.RC_Rail_Reinforced.get(64L)) .duration(30 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sBenderRecipes); + .addTo(benderRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -153,7 +153,7 @@ public class BenderRecipes implements Runnable { .itemOutputs(ItemList.RC_Rail_Reinforced.get(64L)) .duration(30 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sBenderRecipes); + .addTo(benderRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -162,7 +162,7 @@ public class BenderRecipes implements Runnable { .itemOutputs(ItemList.RC_Rail_Reinforced.get(64L)) .duration(30 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sBenderRecipes); + .addTo(benderRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -171,7 +171,7 @@ public class BenderRecipes implements Runnable { .itemOutputs(ItemList.RC_Rebar.get(64L)) .duration(10 * SECONDS) .eut(200) - .addTo(sBenderRecipes); + .addTo(benderRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -180,7 +180,7 @@ public class BenderRecipes implements Runnable { .itemOutputs(ItemList.RC_Rebar.get(64L)) .duration(10 * SECONDS) .eut(200) - .addTo(sBenderRecipes); + .addTo(benderRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -189,7 +189,7 @@ public class BenderRecipes implements Runnable { .itemOutputs(ItemList.RC_Rebar.get(64L)) .duration(10 * SECONDS) .eut(200) - .addTo(sBenderRecipes); + .addTo(benderRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -198,7 +198,7 @@ public class BenderRecipes implements Runnable { .itemOutputs(ItemList.RC_Rebar.get(64L)) .duration(10 * SECONDS) .eut(200) - .addTo(sBenderRecipes); + .addTo(benderRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -207,7 +207,7 @@ public class BenderRecipes implements Runnable { .itemOutputs(ItemList.RC_Rebar.get(64L)) .duration(10 * SECONDS) .eut(200) - .addTo(sBenderRecipes); + .addTo(benderRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -216,7 +216,7 @@ public class BenderRecipes implements Runnable { .itemOutputs(ItemList.RC_Rebar.get(64L)) .duration(10 * SECONDS) .eut(200) - .addTo(sBenderRecipes); + .addTo(benderRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -225,7 +225,7 @@ public class BenderRecipes implements Runnable { .itemOutputs(ItemList.RC_Rebar.get(64L)) .duration(10 * SECONDS) .eut(200) - .addTo(sBenderRecipes); + .addTo(benderRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -234,7 +234,7 @@ public class BenderRecipes implements Runnable { .itemOutputs(ItemList.RC_Rebar.get(64L)) .duration(10 * SECONDS) .eut(200) - .addTo(sBenderRecipes); + .addTo(benderRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -243,7 +243,7 @@ public class BenderRecipes implements Runnable { .itemOutputs(ItemList.RC_Rebar.get(64L)) .duration(10 * SECONDS) .eut(200) - .addTo(sBenderRecipes); + .addTo(benderRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -252,14 +252,14 @@ public class BenderRecipes implements Runnable { .itemOutputs(ItemList.RC_Rebar.get(64L)) .duration(10 * SECONDS) .eut(200) - .addTo(sBenderRecipes); + .addTo(benderRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.IC2_Mixed_Metal_Ingot.get(1L), GT_Utility.getIntegratedCircuit(1)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateAlloy, Materials.Advanced, 1L)) .duration(5 * SECONDS) .eut(8) - .addTo(sBenderRecipes); + .addTo(benderRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -268,7 +268,7 @@ public class BenderRecipes implements Runnable { .itemOutputs(ItemList.Cell_Empty.get(1L)) .duration(10 * SECONDS) .eut(8) - .addTo(sBenderRecipes); + .addTo(benderRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -277,7 +277,7 @@ public class BenderRecipes implements Runnable { .itemOutputs(ItemList.Cell_Empty.get(1L)) .duration(5 * SECONDS) .eut(8) - .addTo(sBenderRecipes); + .addTo(benderRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -286,7 +286,7 @@ public class BenderRecipes implements Runnable { .itemOutputs(ItemList.Cell_Empty.get(4L)) .duration(5 * SECONDS) .eut(8) - .addTo(sBenderRecipes); + .addTo(benderRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -295,7 +295,7 @@ public class BenderRecipes implements Runnable { .itemOutputs(new ItemStack(Items.bucket, 1, 0)) .duration(10 * SECONDS) .eut(4) - .addTo(sBenderRecipes); + .addTo(benderRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -304,7 +304,7 @@ public class BenderRecipes implements Runnable { .itemOutputs(new ItemStack(Items.bucket, 1, 0)) .duration(10 * SECONDS) .eut(4) - .addTo(sBenderRecipes); + .addTo(benderRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -313,16 +313,18 @@ public class BenderRecipes implements Runnable { .itemOutputs(GT_ModHandler.getIC2Item("fuelRod", 1L)) .duration(5 * SECONDS) .eut(8) - .addTo(sBenderRecipes); - - GT_Values.RA.stdBuilder() - .itemInputs( - GT_OreDictUnificator.get(OrePrefixes.itemCasing, Materials.Tin, 1L), - GT_Utility.getIntegratedCircuit(1)) - .itemOutputs(ItemList.IC2_Food_Can_Empty.get(1L)) - .duration(20 * TICKS) - .eut((int) TierEU.RECIPE_HV) - .addTo(sBenderRecipes); + .addTo(benderRecipes); + + if (GT_OreDictUnificator.get(OrePrefixes.itemCasing, Materials.Tin, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.itemCasing, Materials.Tin, 1L), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.IC2_Food_Can_Empty.get(1L)) + .duration(20 * TICKS) + .eut((int) TierEU.RECIPE_HV) + .addTo(benderRecipes); + } } } diff --git a/src/main/java/gregtech/loaders/postload/recipes/BlastFurnaceRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/BlastFurnaceRecipes.java index b20ccf7040..5da5192dfd 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/BlastFurnaceRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/BlastFurnaceRecipes.java @@ -3,9 +3,9 @@ package gregtech.loaders.postload.recipes; import static gregtech.api.enums.Mods.BartWorks; import static gregtech.api.enums.Mods.GTNHLanthanides; import static gregtech.api.enums.Mods.GTPlusPlus; +import static gregtech.api.recipe.RecipeMaps.blastFurnaceRecipes; +import static gregtech.api.recipe.RecipeMaps.primitiveBlastRecipes; import static gregtech.api.util.GT_ModHandler.getModItem; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sBlastRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sPrimitiveBlastRecipes; import static gregtech.api.util.GT_RecipeBuilder.MINUTES; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; @@ -43,7 +43,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(10 * SECONDS) .eut((int) TierEU.RECIPE_HV) .metadata(COIL_HEAT, 3200) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); // Carbothermic Reduction // Depend on real amount except real ores @@ -56,7 +56,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(12 * SECONDS) .eut((int) TierEU.RECIPE_MV) .metadata(COIL_HEAT, 1200) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.RoastedAntimony.getDust(2), Materials.Carbon.getDust(1)) @@ -65,7 +65,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(12 * SECONDS) .eut((int) TierEU.RECIPE_MV) .metadata(COIL_HEAT, 1200) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.RoastedIron.getDust(2), Materials.Carbon.getDust(1)) @@ -74,7 +74,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(12 * SECONDS) .eut((int) TierEU.RECIPE_MV) .metadata(COIL_HEAT, 1200) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.RoastedNickel.getDust(2), Materials.Carbon.getDust(1)) @@ -83,7 +83,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(12 * SECONDS) .eut((int) TierEU.RECIPE_MV) .metadata(COIL_HEAT, 1200) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.RoastedZinc.getDust(2), Materials.Carbon.getDust(1)) @@ -92,7 +92,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(12 * SECONDS) .eut((int) TierEU.RECIPE_MV) .metadata(COIL_HEAT, 1200) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.RoastedCobalt.getDust(2), Materials.Carbon.getDust(1)) @@ -101,7 +101,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(12 * SECONDS) .eut((int) TierEU.RECIPE_MV) .metadata(COIL_HEAT, 1200) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.RoastedArsenic.getDust(2), Materials.Carbon.getDust(1)) @@ -110,7 +110,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(12 * SECONDS) .eut((int) TierEU.RECIPE_MV) .metadata(COIL_HEAT, 1200) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.RoastedLead.getDust(2), Materials.Carbon.getDust(1)) @@ -119,7 +119,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(12 * SECONDS) .eut((int) TierEU.RECIPE_MV) .metadata(COIL_HEAT, 1200) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Malachite.getDust(2), Materials.Carbon.getDust(1)) @@ -128,7 +128,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(12 * SECONDS) .eut((int) TierEU.RECIPE_MV) .metadata(COIL_HEAT, 1200) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Magnetite.getDust(2), Materials.Carbon.getDust(1)) @@ -137,7 +137,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(12 * SECONDS) .eut((int) TierEU.RECIPE_MV) .metadata(COIL_HEAT, 1200) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.YellowLimonite.getDust(2), Materials.Carbon.getDust(1)) @@ -146,7 +146,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(12 * SECONDS) .eut((int) TierEU.RECIPE_MV) .metadata(COIL_HEAT, 1200) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.BrownLimonite.getDust(2), Materials.Carbon.getDust(1)) @@ -155,7 +155,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(12 * SECONDS) .eut((int) TierEU.RECIPE_MV) .metadata(COIL_HEAT, 1200) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.BasalticMineralSand.getDust(2), Materials.Carbon.getDust(1)) @@ -164,7 +164,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(12 * SECONDS) .eut((int) TierEU.RECIPE_MV) .metadata(COIL_HEAT, 1200) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.GraniticMineralSand.getDust(2), Materials.Carbon.getDust(1)) @@ -173,7 +173,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(12 * SECONDS) .eut((int) TierEU.RECIPE_MV) .metadata(COIL_HEAT, 1200) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Cassiterite.getDust(2), Materials.Carbon.getDust(1)) @@ -182,7 +182,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(12 * SECONDS) .eut((int) TierEU.RECIPE_MV) .metadata(COIL_HEAT, 1200) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.CassiteriteSand.getDust(2), Materials.Carbon.getDust(1)) @@ -191,7 +191,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(12 * SECONDS) .eut((int) TierEU.RECIPE_MV) .metadata(COIL_HEAT, 1200) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.SiliconDioxide.getDust(3), Materials.Carbon.getDust(2)) @@ -200,7 +200,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(4 * SECONDS) .eut((int) TierEU.RECIPE_MV) .metadata(COIL_HEAT, 1200) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); if (GT_Mod.gregtechproxy.mMixedOreOnlyYieldsTwoThirdsOfPureOre) { GT_Values.RA.stdBuilder() @@ -210,7 +210,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(12 * SECONDS) .eut((int) TierEU.RECIPE_MV) .metadata(COIL_HEAT, 1200) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Malachite.getDust(2), Materials.Carbon.getDustSmall(4)) @@ -219,7 +219,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(12 * SECONDS) .eut((int) TierEU.RECIPE_MV) .metadata(COIL_HEAT, 1200) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.AntimonyTrioxide.getDust(5), Materials.Carbon.getDustSmall(4)) @@ -228,7 +228,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(12 * SECONDS) .eut((int) TierEU.RECIPE_MV) .metadata(COIL_HEAT, 1200) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.BandedIron.getDust(5), Materials.Carbon.getDustSmall(4)) @@ -237,7 +237,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(12 * SECONDS) .eut((int) TierEU.RECIPE_MV) .metadata(COIL_HEAT, 1200) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Magnetite.getDust(2), Materials.Carbon.getDustSmall(4)) @@ -246,7 +246,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(12 * SECONDS) .eut((int) TierEU.RECIPE_MV) .metadata(COIL_HEAT, 1200) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.YellowLimonite.getDust(2), Materials.Carbon.getDustSmall(4)) @@ -255,7 +255,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(12 * SECONDS) .eut((int) TierEU.RECIPE_MV) .metadata(COIL_HEAT, 1200) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.BrownLimonite.getDust(2), Materials.Carbon.getDustSmall(4)) @@ -264,7 +264,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(12 * SECONDS) .eut((int) TierEU.RECIPE_MV) .metadata(COIL_HEAT, 1200) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.BasalticMineralSand.getDust(2), Materials.Carbon.getDustSmall(4)) @@ -273,7 +273,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(12 * SECONDS) .eut((int) TierEU.RECIPE_MV) .metadata(COIL_HEAT, 1200) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.GraniticMineralSand.getDust(2), Materials.Carbon.getDustSmall(4)) @@ -282,7 +282,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(12 * SECONDS) .eut((int) TierEU.RECIPE_MV) .metadata(COIL_HEAT, 1200) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Cassiterite.getDust(2), Materials.Carbon.getDustSmall(4)) @@ -291,7 +291,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(12 * SECONDS) .eut((int) TierEU.RECIPE_MV) .metadata(COIL_HEAT, 1200) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.CassiteriteSand.getDust(2), Materials.Carbon.getDustSmall(4)) @@ -300,7 +300,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(12 * SECONDS) .eut((int) TierEU.RECIPE_MV) .metadata(COIL_HEAT, 1200) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Garnierite.getDust(2), Materials.Carbon.getDustSmall(4)) @@ -309,7 +309,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(12 * SECONDS) .eut((int) TierEU.RECIPE_MV) .metadata(COIL_HEAT, 1200) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.CobaltOxide.getDust(2), Materials.Carbon.getDustSmall(4)) @@ -318,7 +318,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(12 * SECONDS) .eut((int) TierEU.RECIPE_MV) .metadata(COIL_HEAT, 1200) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.ArsenicTrioxide.getDust(5), Materials.Carbon.getDustSmall(4)) @@ -327,7 +327,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(12 * SECONDS) .eut((int) TierEU.RECIPE_MV) .metadata(COIL_HEAT, 1200) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Massicot.getDust(2), Materials.Carbon.getDustSmall(4)) @@ -336,7 +336,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(12 * SECONDS) .eut((int) TierEU.RECIPE_MV) .metadata(COIL_HEAT, 1200) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); } GT_Values.RA.stdBuilder() @@ -348,7 +348,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(7 * MINUTES + 30 * SECONDS) .eut((int) TierEU.RECIPE_MV) .metadata(COIL_HEAT, 1784) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -361,7 +361,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(10 * MINUTES) .eut((int) TierEU.RECIPE_HV) .metadata(COIL_HEAT, 2484) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -374,7 +374,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(12 * MINUTES + 30 * SECONDS) .eut((int) TierEU.RECIPE_EV) .metadata(COIL_HEAT, 4484) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -387,7 +387,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(15 * MINUTES) .eut((int) TierEU.RECIPE_IV) .metadata(COIL_HEAT, 6484) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -400,7 +400,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(17 * MINUTES + 30 * SECONDS) .eut((int) TierEU.RECIPE_LuV) .metadata(COIL_HEAT, 9000) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); // CaH2 + 2Si = CaSi2 + 2H @@ -413,7 +413,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(15 * SECONDS) .eut((int) TierEU.RECIPE_MV) .metadata(COIL_HEAT, 1273) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -423,7 +423,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(16 * MINUTES + 23 * SECONDS) .eut((int) TierEU.RECIPE_UV) .metadata(COIL_HEAT, 11800) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -434,7 +434,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(7 * MINUTES + 22 * SECONDS + 7 * TICKS) .eut((int) TierEU.RECIPE_UV) .metadata(COIL_HEAT, 11800) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); // 0.45 * 19660 = 8847 @@ -446,7 +446,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(16 * MINUTES + 23 * SECONDS) .eut((int) TierEU.RECIPE_UHV) .metadata(COIL_HEAT, 12700) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -457,7 +457,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(7 * MINUTES + 22 * SECONDS + 7 * TICKS) .eut((int) TierEU.RECIPE_UHV) .metadata(COIL_HEAT, 12700) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); // 0.45 * 19660 = 8847 @@ -469,7 +469,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(16 * MINUTES + 23 * SECONDS) .eut((int) TierEU.RECIPE_UEV) .metadata(COIL_HEAT, 13600) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -480,7 +480,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(7 * MINUTES + 22 * SECONDS + 7 * TICKS) .eut((int) TierEU.RECIPE_UEV) .metadata(COIL_HEAT, 13600) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); // 0.45 * 19660 = 8847 // CaO + 3C = CaC2 + CO @@ -492,7 +492,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(30 * SECONDS) .eut((int) TierEU.RECIPE_HV) .metadata(COIL_HEAT, 2573) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); // Ni + 3Al = NiAl3 @@ -502,7 +502,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(45 * SECONDS) .eut((int) TierEU.RECIPE_HV) .metadata(COIL_HEAT, 1688) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); ItemStack[] tSiliconDioxide = new ItemStack[] { Materials.SiliconDioxide.getDust(3), Materials.NetherQuartz.getDust(3), Materials.CertusQuartz.getDust(3), Materials.Quartzite.getDust(6) }; @@ -518,7 +518,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(6 * SECONDS) .eut(TierEU.RECIPE_MV) .metadata(COIL_HEAT, 1200) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); } GT_Values.RA.stdBuilder() @@ -529,7 +529,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(6 * SECONDS) .eut(TierEU.RECIPE_MV) .metadata(COIL_HEAT, 1200) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Pyrite.getDust(1)) .itemOutputs(Materials.RoastedIron.getDust(1), Materials.Ash.getDustTiny(1)) @@ -538,7 +538,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(6 * SECONDS) .eut(TierEU.RECIPE_MV) .metadata(COIL_HEAT, 1200) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Pentlandite.getDust(1)) .itemOutputs(Materials.RoastedNickel.getDust(1), Materials.Ash.getDustTiny(1)) @@ -547,7 +547,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(6 * SECONDS) .eut(TierEU.RECIPE_MV) .metadata(COIL_HEAT, 1200) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Sphalerite.getDust(1)) .itemOutputs(Materials.RoastedZinc.getDust(1), Materials.Ash.getDustTiny(1)) @@ -556,7 +556,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(6 * SECONDS) .eut(TierEU.RECIPE_MV) .metadata(COIL_HEAT, 1200) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Cobaltite.getDust(1)) .itemOutputs(Materials.RoastedCobalt.getDust(1), Materials.RoastedArsenic.getDust(1)) @@ -565,7 +565,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(6 * SECONDS) .eut(TierEU.RECIPE_MV) .metadata(COIL_HEAT, 1200) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Stibnite.getDust(1)) .itemOutputs(Materials.RoastedAntimony.getDust(1), Materials.Ash.getDustTiny(1)) @@ -574,7 +574,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(6 * SECONDS) .eut(TierEU.RECIPE_MV) .metadata(COIL_HEAT, 1200) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Galena.getDust(1)) .itemOutputs(Materials.RoastedLead.getDust(1), Materials.Ash.getDustTiny(1)) @@ -583,7 +583,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(6 * SECONDS) .eut(TierEU.RECIPE_MV) .metadata(COIL_HEAT, 1200) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); if (GTNHLanthanides.isModLoaded() && GTPlusPlus.isModLoaded()) { @@ -595,7 +595,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(3 * MINUTES) .eut(32000000) .metadata(COIL_HEAT, 11701) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); // Rh + 3Cl = RhCl3 @@ -608,7 +608,7 @@ public class BlastFurnaceRecipes implements Runnable { .duration(30 * SECONDS) .eut((int) TierEU.RECIPE_HV) .metadata(COIL_HEAT, 573) - .addTo(sBlastRecipes); + .addTo(blastFurnaceRecipes); } } @@ -617,32 +617,28 @@ public class BlastFurnaceRecipes implements Runnable { .itemInputs(Materials.Iron.getIngots(1)) .itemOutputs(Materials.Steel.getIngots(1)) .duration(6 * MINUTES) - .eut(0) .metadata(ADDITIVE_AMOUNT, 4) - .addTo(sPrimitiveBlastRecipes); + .addTo(primitiveBlastRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Iron.getDust(1)) .itemOutputs(Materials.Steel.getIngots(1)) .duration(6 * MINUTES) - .eut(0) .metadata(ADDITIVE_AMOUNT, 4) - .addTo(sPrimitiveBlastRecipes); + .addTo(primitiveBlastRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Iron.getBlocks(1)) .itemOutputs(Materials.Steel.getIngots(9)) .duration(54 * MINUTES) - .eut(0) .metadata(ADDITIVE_AMOUNT, 36) - .addTo(sPrimitiveBlastRecipes); + .addTo(primitiveBlastRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Steel.getDust(1)) .itemOutputs(Materials.Steel.getIngots(1)) .duration(6 * MINUTES) - .eut(0) .metadata(ADDITIVE_AMOUNT, 2) - .addTo(sPrimitiveBlastRecipes); + .addTo(primitiveBlastRecipes); } } diff --git a/src/main/java/gregtech/loaders/postload/recipes/BreweryRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/BreweryRecipes.java index a188a9b420..e5972f4e77 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/BreweryRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/BreweryRecipes.java @@ -2,8 +2,8 @@ package gregtech.loaders.postload.recipes; import static gregtech.api.enums.Mods.Forestry; import static gregtech.api.enums.Mods.IndustrialCraft2; +import static gregtech.api.recipe.RecipeMaps.brewingRecipes; import static gregtech.api.util.GT_ModHandler.getModItem; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sBrewingRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; import static net.minecraftforge.fluids.FluidRegistry.getFluidStack; @@ -39,7 +39,7 @@ public class BreweryRecipes implements Runnable { .fluidOutputs(getFluidStack("lubricant", 750)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); // seed oil to lubricant recipes GT_Values.RA.stdBuilder() @@ -48,7 +48,7 @@ public class BreweryRecipes implements Runnable { .fluidOutputs(getFluidStack("lubricant", 750)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); // lubricant recipes { @@ -58,7 +58,7 @@ public class BreweryRecipes implements Runnable { .fluidOutputs(getFluidStack("lubricant", 750)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); GT_Values.RA.stdBuilder() .itemInputs(item) @@ -66,7 +66,7 @@ public class BreweryRecipes implements Runnable { .fluidOutputs(getFluidStack("lubricant", 500)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); GT_Values.RA.stdBuilder() .itemInputs(item) @@ -74,7 +74,7 @@ public class BreweryRecipes implements Runnable { .fluidOutputs(getFluidStack("lubricant", 500)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); GT_Values.RA.stdBuilder() .itemInputs(item) @@ -82,7 +82,7 @@ public class BreweryRecipes implements Runnable { .fluidOutputs(getFluidStack("lubricant", 750)) .duration(3 * SECONDS + 4 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); } } @@ -107,7 +107,7 @@ public class BreweryRecipes implements Runnable { .fluidOutputs(getFluidStack("milk", 750)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wheat, 1L)) @@ -115,7 +115,7 @@ public class BreweryRecipes implements Runnable { .fluidOutputs(getFluidStack("potion.wheatyjuice", 750)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Potassium, 1L)) @@ -123,7 +123,7 @@ public class BreweryRecipes implements Runnable { .fluidOutputs(getFluidStack("potion.mineralwater", 750)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 1L)) @@ -131,7 +131,7 @@ public class BreweryRecipes implements Runnable { .fluidOutputs(getFluidStack("potion.mineralwater", 750)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcium, 1L)) @@ -139,7 +139,7 @@ public class BreweryRecipes implements Runnable { .fluidOutputs(getFluidStack("potion.mineralwater", 750)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Magnesium, 1L)) @@ -147,7 +147,7 @@ public class BreweryRecipes implements Runnable { .fluidOutputs(getFluidStack("potion.mineralwater", 750)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glowstone, 1L)) @@ -155,7 +155,7 @@ public class BreweryRecipes implements Runnable { .fluidOutputs(getFluidStack("potion.thick", 750)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L)) @@ -163,7 +163,7 @@ public class BreweryRecipes implements Runnable { .fluidOutputs(getFluidStack("potion.mundane", 750)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1L)) @@ -171,7 +171,7 @@ public class BreweryRecipes implements Runnable { .fluidOutputs(getFluidStack("potion.mundane", 750)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Blaze, 1L)) @@ -179,7 +179,7 @@ public class BreweryRecipes implements Runnable { .fluidOutputs(getFluidStack("potion.mundane", 750)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.magma_cream, 1, 0)) @@ -187,7 +187,7 @@ public class BreweryRecipes implements Runnable { .fluidOutputs(getFluidStack("potion.mundane", 750)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.fermented_spider_eye, 1, 0)) @@ -195,7 +195,7 @@ public class BreweryRecipes implements Runnable { .fluidOutputs(getFluidStack("potion.mundane", 750)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.spider_eye, 1, 0)) @@ -203,7 +203,7 @@ public class BreweryRecipes implements Runnable { .fluidOutputs(getFluidStack("potion.mundane", 750)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.speckled_melon, 1, 0)) @@ -211,7 +211,7 @@ public class BreweryRecipes implements Runnable { .fluidOutputs(getFluidStack("potion.mundane", 750)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.ghast_tear, 1, 0)) @@ -219,7 +219,7 @@ public class BreweryRecipes implements Runnable { .fluidOutputs(getFluidStack("potion.mundane", 750)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.nether_wart, 1, 0)) @@ -227,7 +227,7 @@ public class BreweryRecipes implements Runnable { .fluidOutputs(getFluidStack("potion.awkward", 750)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.red_mushroom, 1, 0)) @@ -235,7 +235,7 @@ public class BreweryRecipes implements Runnable { .fluidOutputs(getFluidStack("potion.poison", 750)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.fish, 1, 3)) @@ -244,7 +244,7 @@ public class BreweryRecipes implements Runnable { .duration(6 * SECONDS + 8 * TICKS) .eut(4) .hidden() - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.IC2_Grin_Powder.get(1L)) @@ -252,7 +252,7 @@ public class BreweryRecipes implements Runnable { .fluidOutputs(getFluidStack("potion.poison.strong", 750)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.reeds, 1, 0)) @@ -260,7 +260,7 @@ public class BreweryRecipes implements Runnable { .fluidOutputs(getFluidStack("potion.reedwater", 750)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.apple, 1, 0)) @@ -268,7 +268,7 @@ public class BreweryRecipes implements Runnable { .fluidOutputs(getFluidStack("potion.applejuice", 750)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.golden_apple, 1, 0)) @@ -277,7 +277,7 @@ public class BreweryRecipes implements Runnable { .duration(6 * SECONDS + 8 * TICKS) .eut(4) .hidden() - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.golden_apple, 1, 1)) @@ -286,7 +286,7 @@ public class BreweryRecipes implements Runnable { .duration(6 * SECONDS + 8 * TICKS) .eut(4) .hidden() - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.IC2_Hops.get(1L)) @@ -294,7 +294,7 @@ public class BreweryRecipes implements Runnable { .fluidOutputs(getFluidStack("potion.hopsjuice", 750)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coffee, 1L)) @@ -302,7 +302,7 @@ public class BreweryRecipes implements Runnable { .fluidOutputs(getFluidStack("potion.darkcoffee", 750)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Chili, 1L)) @@ -310,7 +310,7 @@ public class BreweryRecipes implements Runnable { .fluidOutputs(getFluidStack("potion.chillysauce", 750)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); } } @@ -323,7 +323,7 @@ public class BreweryRecipes implements Runnable { .fluidOutputs(getFluidStack("potion.hotsauce", 750)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Chili, 1L)) @@ -332,7 +332,7 @@ public class BreweryRecipes implements Runnable { .duration(6 * SECONDS + 8 * TICKS) .eut(4) .hidden() - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Chili, 1L)) @@ -341,7 +341,7 @@ public class BreweryRecipes implements Runnable { .duration(6 * SECONDS + 8 * TICKS) .eut(4) .hidden() - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coffee, 1L)) @@ -349,7 +349,7 @@ public class BreweryRecipes implements Runnable { .fluidOutputs(getFluidStack("potion.coffee", 750)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Cocoa, 1L)) @@ -357,7 +357,7 @@ public class BreweryRecipes implements Runnable { .fluidOutputs(getFluidStack("potion.darkchocolatemilk", 750)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.IC2_Hops.get(1L)) @@ -365,7 +365,7 @@ public class BreweryRecipes implements Runnable { .fluidOutputs(getFluidStack("potion.wheatyhopsjuice", 750)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wheat, 1L)) @@ -373,7 +373,7 @@ public class BreweryRecipes implements Runnable { .fluidOutputs(getFluidStack("potion.wheatyhopsjuice", 750)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1L)) @@ -382,7 +382,7 @@ public class BreweryRecipes implements Runnable { .duration(6 * SECONDS + 8 * TICKS) .eut(4) .hidden() - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1L)) @@ -390,7 +390,7 @@ public class BreweryRecipes implements Runnable { .fluidOutputs(getFluidStack("potion.cafeaulait", 750)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1L)) @@ -399,7 +399,7 @@ public class BreweryRecipes implements Runnable { .duration(6 * SECONDS + 8 * TICKS) .eut(4) .hidden() - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1L)) @@ -407,7 +407,7 @@ public class BreweryRecipes implements Runnable { .fluidOutputs(getFluidStack("potion.lemonade", 750)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1L)) @@ -416,7 +416,7 @@ public class BreweryRecipes implements Runnable { .duration(6 * SECONDS + 8 * TICKS) .eut(4) .hidden() - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1L)) @@ -424,7 +424,7 @@ public class BreweryRecipes implements Runnable { .fluidOutputs(getFluidStack("potion.chocolatemilk", 750)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ice, 1L)) @@ -432,7 +432,7 @@ public class BreweryRecipes implements Runnable { .fluidOutputs(getFluidStack("potion.icetea", 750)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gunpowder, 1L)) @@ -441,7 +441,7 @@ public class BreweryRecipes implements Runnable { .duration(6 * SECONDS + 8 * TICKS) .eut(4) .hidden() - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1L)) @@ -450,7 +450,7 @@ public class BreweryRecipes implements Runnable { .duration(6 * SECONDS + 8 * TICKS) .eut(4) .hidden() - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.fermented_spider_eye, 1, 0)) @@ -458,7 +458,7 @@ public class BreweryRecipes implements Runnable { .fluidOutputs(getFluidStack("potion.weakness", 750)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.fermented_spider_eye, 1, 0)) @@ -466,7 +466,7 @@ public class BreweryRecipes implements Runnable { .fluidOutputs(getFluidStack("potion.weakness", 750)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); } // biomass recipes @@ -477,7 +477,7 @@ public class BreweryRecipes implements Runnable { .fluidOutputs(getFluidStack("biomass", 750)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Forestry.ID, "mulch", 16L, 0)) @@ -485,7 +485,7 @@ public class BreweryRecipes implements Runnable { .fluidOutputs(getFluidStack("biomass", 750)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Forestry.ID, "mulch", 8L, 0)) @@ -493,7 +493,7 @@ public class BreweryRecipes implements Runnable { .fluidOutputs(getFluidStack("biomass", 750)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); } // ic2 biomass recipes @@ -504,7 +504,7 @@ public class BreweryRecipes implements Runnable { .fluidOutputs(getFluidStack("ic2biomass", 1000)) .duration(8 * SECONDS + 10 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); // Would add 2 different amount of water input if IC2 isn't loaded if (IndustrialCraft2.isModLoaded()) { @@ -514,7 +514,7 @@ public class BreweryRecipes implements Runnable { .fluidOutputs(getFluidStack("ic2biomass", 1000)) .duration(10 * TICKS) .eut((int) TierEU.RECIPE_LV) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); } } @@ -540,7 +540,7 @@ public class BreweryRecipes implements Runnable { .fluidOutputs(getFluidStack("potion." + aName, 750)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); // strong if (aName.equals("regen") || aName.equals("speed") @@ -553,7 +553,7 @@ public class BreweryRecipes implements Runnable { .fluidOutputs(getFluidStack("potion." + aName + ".strong", 750)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); } // long @@ -564,7 +564,7 @@ public class BreweryRecipes implements Runnable { .fluidOutputs(getFluidStack("potion." + aName + ".long", 750)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sBrewingRecipes); + .addTo(brewingRecipes); } MixerRecipes.addMixerPotionRecipes(aName); diff --git a/src/main/java/gregtech/loaders/postload/recipes/CannerRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/CannerRecipes.java index 0ad5ed23a8..aef837a6b3 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/CannerRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/CannerRecipes.java @@ -1,7 +1,7 @@ package gregtech.loaders.postload.recipes; import static gregtech.api.enums.Mods.IndustrialCraft2; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCannerRecipes; +import static gregtech.api.recipe.RecipeMaps.cannerRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; @@ -27,7 +27,7 @@ public class CannerRecipes implements Runnable { .itemOutputs(GT_ModHandler.getIC2Item("reactorLithiumCell", 1, 1)) .duration(16 * TICKS) .eut(64) - .addTo(sCannerRecipes); + .addTo(cannerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -36,21 +36,21 @@ public class CannerRecipes implements Runnable { .itemOutputs(ItemList.ThoriumCell_1.get(1L)) .duration(1 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sCannerRecipes); + .addTo(cannerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_ModHandler.getIC2Item("fuelRod", 1), GT_ModHandler.getIC2Item("UranFuel", 1)) .itemOutputs(ItemList.Uraniumcell_1.get(1)) .duration(1 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sCannerRecipes); + .addTo(cannerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_ModHandler.getIC2Item("fuelRod", 1), GT_ModHandler.getIC2Item("MOXFuel", 1)) .itemOutputs(ItemList.Moxcell_1.get(1)) .duration(1 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sCannerRecipes); + .addTo(cannerRecipes); } GT_Values.RA.stdBuilder() @@ -60,7 +60,7 @@ public class CannerRecipes implements Runnable { .itemOutputs(ItemList.NaquadahCell_1.get(1L)) .duration(1 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sCannerRecipes); + .addTo(cannerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -69,6 +69,6 @@ public class CannerRecipes implements Runnable { .itemOutputs(ItemList.MNqCell_1.get(1L)) .duration(1 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sCannerRecipes); + .addTo(cannerRecipes); } } diff --git a/src/main/java/gregtech/loaders/postload/recipes/CentrifugeRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/CentrifugeRecipes.java index 877d52f3f4..b9375ebb1d 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/CentrifugeRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/CentrifugeRecipes.java @@ -6,8 +6,8 @@ import static gregtech.api.enums.Mods.GregTech; import static gregtech.api.enums.Mods.Thaumcraft; import static gregtech.api.enums.Mods.ThaumicTinkerer; import static gregtech.api.enums.Mods.TwilightForest; +import static gregtech.api.recipe.RecipeMaps.centrifugeRecipes; import static gregtech.api.util.GT_ModHandler.getModItem; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes; import static gregtech.api.util.GT_RecipeBuilder.MINUTES; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; @@ -42,7 +42,7 @@ public class CentrifugeRecipes implements Runnable { .fluidInputs(Materials.Mercury.getFluid(200)) .duration(20 * SECONDS) .eut((int) TierEU.RECIPE_MV) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Cell_Empty.get(1)) @@ -51,7 +51,7 @@ public class CentrifugeRecipes implements Runnable { .fluidOutputs(Materials.Nitrogen.getGas(3900)) .duration(1 * MINUTES + 20 * SECONDS) .eut(8) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.PlatinumGroupSludge, 9)) @@ -65,7 +65,7 @@ public class CentrifugeRecipes implements Runnable { .outputChances(10000, 10000, 10000, 9500, 9000, 8500) .duration(6 * MINUTES + 45 * SECONDS) .eut(30) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemOutputs( @@ -80,7 +80,7 @@ public class CentrifugeRecipes implements Runnable { .fluidOutputs(Materials.Water.getFluid(500)) .duration(2 * SECONDS) .eut((int) TierEU.RECIPE_MV) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); // food ->CH4 @@ -90,7 +90,7 @@ public class CentrifugeRecipes implements Runnable { .fluidOutputs(Materials.Methane.getGas(4608)) .duration(7 * MINUTES + 40 * SECONDS + 16 * TICKS) .eut(5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.golden_apple, 1, 0), GT_Utility.getIntegratedCircuit(1)) @@ -98,7 +98,7 @@ public class CentrifugeRecipes implements Runnable { .fluidOutputs(Materials.Methane.getGas(576)) .duration(7 * MINUTES + 40 * SECONDS + 16 * TICKS) .eut(5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.golden_carrot, 1, 0), GT_Utility.getIntegratedCircuit(1)) @@ -106,7 +106,7 @@ public class CentrifugeRecipes implements Runnable { .fluidOutputs(Materials.Methane.getGas(576)) .duration(7 * MINUTES + 40 * SECONDS + 16 * TICKS) .eut(5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.speckled_melon, 1, 0), GT_Utility.getIntegratedCircuit(1)) @@ -114,7 +114,7 @@ public class CentrifugeRecipes implements Runnable { .fluidOutputs(Materials.Methane.getGas(576)) .duration(7 * MINUTES + 40 * SECONDS + 16 * TICKS) .eut(5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.mushroom_stew, 16, 0), GT_Utility.getIntegratedCircuit(1)) @@ -122,203 +122,203 @@ public class CentrifugeRecipes implements Runnable { .fluidOutputs(Materials.Methane.getGas(576)) .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) .eut(5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.apple, 32, 0), GT_Utility.getIntegratedCircuit(1)) .fluidOutputs(Materials.Methane.getGas(576)) .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) .eut(5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.bread, 64, 0), GT_Utility.getIntegratedCircuit(1)) .fluidOutputs(Materials.Methane.getGas(576)) .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) .eut(5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.porkchop, 12, 0), GT_Utility.getIntegratedCircuit(1)) .fluidOutputs(Materials.Methane.getGas(576)) .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) .eut(5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.cooked_porkchop, 16, 0), GT_Utility.getIntegratedCircuit(1)) .fluidOutputs(Materials.Methane.getGas(576)) .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) .eut(5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.beef, 12, 0), GT_Utility.getIntegratedCircuit(1)) .fluidOutputs(Materials.Methane.getGas(576)) .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) .eut(5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.cooked_beef, 16, 0), GT_Utility.getIntegratedCircuit(1)) .fluidOutputs(Materials.Methane.getGas(576)) .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) .eut(5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.fish, 12, 32767), GT_Utility.getIntegratedCircuit(1)) .fluidOutputs(Materials.Methane.getGas(576)) .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) .eut(5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.cooked_fished, 16, 32767), GT_Utility.getIntegratedCircuit(1)) .fluidOutputs(Materials.Methane.getGas(576)) .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) .eut(5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.chicken, 12, 0), GT_Utility.getIntegratedCircuit(1)) .fluidOutputs(Materials.Methane.getGas(576)) .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) .eut(5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.cooked_chicken, 16, 0), GT_Utility.getIntegratedCircuit(1)) .fluidOutputs(Materials.Methane.getGas(576)) .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) .eut(5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.melon, 64, 0), GT_Utility.getIntegratedCircuit(1)) .fluidOutputs(Materials.Methane.getGas(576)) .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) .eut(5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.pumpkin, 16, 0), GT_Utility.getIntegratedCircuit(1)) .fluidOutputs(Materials.Methane.getGas(576)) .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) .eut(5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.rotten_flesh, 16, 0), GT_Utility.getIntegratedCircuit(1)) .fluidOutputs(Materials.Methane.getGas(576)) .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) .eut(5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.spider_eye, 32, 0), GT_Utility.getIntegratedCircuit(1)) .fluidOutputs(Materials.Methane.getGas(576)) .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) .eut(5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.carrot, 16, 0), GT_Utility.getIntegratedCircuit(1)) .fluidOutputs(Materials.Methane.getGas(576)) .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) .eut(5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Food_Raw_Potato.get(16), GT_Utility.getIntegratedCircuit(1)) .fluidOutputs(Materials.Methane.getGas(576)) .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) .eut(5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Food_Poisonous_Potato.get(12), GT_Utility.getIntegratedCircuit(1)) .fluidOutputs(Materials.Methane.getGas(576)) .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) .eut(5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Food_Baked_Potato.get(24), GT_Utility.getIntegratedCircuit(1)) .fluidOutputs(Materials.Methane.getGas(576)) .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) .eut(5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.cookie, 64, 0), GT_Utility.getIntegratedCircuit(1)) .fluidOutputs(Materials.Methane.getGas(576)) .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) .eut(5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.cake, 8, 0), GT_Utility.getIntegratedCircuit(1)) .fluidOutputs(Materials.Methane.getGas(576)) .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) .eut(5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.brown_mushroom_block, 12, 32767), GT_Utility.getIntegratedCircuit(1)) .fluidOutputs(Materials.Methane.getGas(576)) .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) .eut(5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.red_mushroom_block, 12, 32767), GT_Utility.getIntegratedCircuit(1)) .fluidOutputs(Materials.Methane.getGas(576)) .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) .eut(5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.brown_mushroom, 32, 32767), GT_Utility.getIntegratedCircuit(1)) .fluidOutputs(Materials.Methane.getGas(576)) .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) .eut(5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.red_mushroom, 32, 32767), GT_Utility.getIntegratedCircuit(1)) .fluidOutputs(Materials.Methane.getGas(576)) .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) .eut(5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.nether_wart, 32, 32767), GT_Utility.getIntegratedCircuit(1)) .fluidOutputs(Materials.Methane.getGas(576)) .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) .eut(5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_ModHandler.getIC2Item("terraWart", 16), GT_Utility.getIntegratedCircuit(1)) .fluidOutputs(Materials.Methane.getGas(576)) .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) .eut(5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(TwilightForest.ID, "item.meefRaw", 12L, 32767), GT_Utility.getIntegratedCircuit(1)) .fluidOutputs(Materials.Methane.getGas(576)) .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) .eut(5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(TwilightForest.ID, "item.meefSteak", 16L, 32767), GT_Utility.getIntegratedCircuit(1)) .fluidOutputs(Materials.Methane.getGas(576)) .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) .eut(5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -327,7 +327,7 @@ public class CentrifugeRecipes implements Runnable { .fluidOutputs(Materials.Methane.getGas(576)) .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) .eut(5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -336,7 +336,7 @@ public class CentrifugeRecipes implements Runnable { .fluidOutputs(Materials.Methane.getGas(576)) .duration(3 * MINUTES + 50 * SECONDS + 8 * TICKS) .eut(5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -345,7 +345,7 @@ public class CentrifugeRecipes implements Runnable { .fluidOutputs(Materials.Methane.getGas(60)) .duration(10 * SECONDS) .eut(20) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.sand, 1, 1)) @@ -356,7 +356,7 @@ public class CentrifugeRecipes implements Runnable { .outputChances(5000, 100, 5000) .duration(30 * SECONDS) .eut((int) TierEU.RECIPE_MV) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.dirt, 1, 32767)) @@ -367,7 +367,7 @@ public class CentrifugeRecipes implements Runnable { .outputChances(1250, 5000, 5000) .duration(12 * SECONDS + 10 * TICKS) .eut(30) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.grass, 1, 32767)) @@ -378,7 +378,7 @@ public class CentrifugeRecipes implements Runnable { .outputChances(2500, 5000, 5000) .duration(12 * SECONDS + 10 * TICKS) .eut(30) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.mycelium, 1, 32767)) @@ -390,7 +390,7 @@ public class CentrifugeRecipes implements Runnable { .outputChances(2500, 2500, 5000, 5000) .duration(32 * SECONDS + 10 * TICKS) .eut(30) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.IC2_Resin.get(1)) @@ -401,7 +401,7 @@ public class CentrifugeRecipes implements Runnable { .fluidOutputs(Materials.Glue.getFluid(100)) .duration(15 * SECONDS) .eut(5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -413,7 +413,7 @@ public class CentrifugeRecipes implements Runnable { .outputChances(1000, 500) .duration(1 * MINUTES + 40 * SECONDS) .eut((int) TierEU.RECIPE_HV) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); // Uranium Enrichment in Centrifuge by adding Fluorine (Uranium Hexafluoride) @@ -424,7 +424,7 @@ public class CentrifugeRecipes implements Runnable { .fluidInputs(Materials.Fluorine.getGas(4000)) .duration(3 * MINUTES + 20 * SECONDS) .eut((int) TierEU.RECIPE_EV) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Plutonium, 1)) @@ -434,7 +434,7 @@ public class CentrifugeRecipes implements Runnable { .outputChances(2000, 3000) .duration(1 * MINUTES + 20 * SECONDS) .eut(320) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Naquadah, 9)) @@ -444,7 +444,7 @@ public class CentrifugeRecipes implements Runnable { .outputChances(5000, 1000) .duration(24 * MINUTES) .eut(320) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.NaquadahEnriched, 4)) @@ -454,28 +454,28 @@ public class CentrifugeRecipes implements Runnable { .outputChances(2000, 3000) .duration(21 * MINUTES + 20 * SECONDS) .eut(640) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .fluidInputs(Materials.Hydrogen.getGas(160)) .fluidOutputs(Materials.Deuterium.getGas(40)) .duration(8 * SECONDS) .eut(20) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .fluidInputs(Materials.Deuterium.getGas(160)) .fluidOutputs(Materials.Tritium.getGas(40)) .duration(8 * SECONDS) .eut(80) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .fluidInputs(Materials.Helium.getGas(80)) .fluidOutputs(Materials.Helium_3.getGas(5)) .duration(8 * SECONDS) .eut(80) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glowstone, 2)) @@ -484,7 +484,7 @@ public class CentrifugeRecipes implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gold, 1)) .duration(48 * SECONDS + 16 * TICKS) .eut(80) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Endstone, 36)) @@ -496,7 +496,7 @@ public class CentrifugeRecipes implements Runnable { .fluidOutputs(Materials.Helium.getGas(4320)) .duration(9 * MINUTES + 36 * SECONDS) .eut(20) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Netherrack, 36)) @@ -508,7 +508,7 @@ public class CentrifugeRecipes implements Runnable { .outputChances(5625, 9900, 5625, 2500) .duration(4 * MINUTES + 48 * SECONDS) .eut(20) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(10)) @@ -523,7 +523,7 @@ public class CentrifugeRecipes implements Runnable { .fluidInputs(Materials.Lava.getFluid(400)) .duration(16 * SECONDS) .eut(80) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(20)) @@ -538,7 +538,7 @@ public class CentrifugeRecipes implements Runnable { .fluidInputs(Materials.Lava.getFluid(3600)) .duration(2 * MINUTES + 24 * SECONDS) .eut(80) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.soul_sand, 1)) @@ -550,7 +550,7 @@ public class CentrifugeRecipes implements Runnable { .fluidOutputs(Materials.Oil.getFluid(200)) .duration(10 * SECONDS) .eut(12) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(10)) @@ -565,7 +565,7 @@ public class CentrifugeRecipes implements Runnable { .fluidInputs(getFluidStack("ic2pahoehoelava", 100)) .duration(2 * SECONDS) .eut(1024) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(20)) @@ -580,23 +580,7 @@ public class CentrifugeRecipes implements Runnable { .fluidInputs(getFluidStack("ic2pahoehoelava", 3600)) .duration(16 * SECONDS + 8 * TICKS) .eut(4096) - .addTo(sCentrifugeRecipes); - - // rare earth ( why this still remain - - GT_Values.RA.stdBuilder() - .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.RareEarth, 1)) - .itemOutputs( - GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Neodymium, 1), - GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Yttrium, 1), - GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Lanthanum, 1), - GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Cerium, 1), - GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Cadmium, 1), - GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Caesium, 1)) - .outputChances(2500, 2500, 2500, 2500, 2500, 2500) - .duration(3 * SECONDS + 4 * TICKS) - .eut(20) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -612,7 +596,7 @@ public class CentrifugeRecipes implements Runnable { .outputChances(2000, 2000, 2000, 2000, 2000, 2000) .duration(3 * SECONDS + 4 * TICKS) .eut(20) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -628,7 +612,7 @@ public class CentrifugeRecipes implements Runnable { .outputChances(9000, 9000, 9000, 9000, 9000, 9000) .duration(25 * SECONDS + 18 * TICKS) .eut(80) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); // Ash centrifuge recipes @@ -644,7 +628,7 @@ public class CentrifugeRecipes implements Runnable { .outputChances(6400, 6000, 4500, 10000, 10000, 10000) .duration(5 * MINUTES) .eut(30) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); // Stone Dust and Metal Mixture centrifuge recipes @@ -660,7 +644,7 @@ public class CentrifugeRecipes implements Runnable { .outputChances(10000, 10000, 10000, 10000, 10000, 10000) .duration(7 * MINUTES + 12 * SECONDS) .eut(30) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.MetalMixture.getDust(36)) @@ -674,21 +658,21 @@ public class CentrifugeRecipes implements Runnable { .outputChances(10000, 10000, 10000, 10000, 10000, 10000) .duration(10 * MINUTES + 56 * SECONDS + 5 * TICKS) .eut((int) TierEU.RECIPE_EV) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .fluidInputs(Materials.Propane.getGas(320)) .fluidOutputs(Materials.LPG.getFluid(290)) .duration(20 * TICKS) .eut(5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .fluidInputs(Materials.Butane.getGas(320)) .fluidOutputs(Materials.LPG.getFluid(370)) .duration(20 * TICKS) .eut(5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemOutputs( @@ -699,7 +683,7 @@ public class CentrifugeRecipes implements Runnable { .fluidOutputs(Materials.FluidNaquadahFuel.getFluid(4806)) .duration(30 * SECONDS) .eut(2000000) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 1)) @@ -708,14 +692,14 @@ public class CentrifugeRecipes implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Carbon, 1)) .duration(12 * SECONDS + 10 * TICKS) .eut(5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.magma_cream, 1)) .itemOutputs(new ItemStack(Items.blaze_powder, 1), new ItemStack(Items.slime_ball, 1)) .duration(25 * SECONDS) .eut(5) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); if (Thaumcraft.isModLoaded()) { // air @@ -725,7 +709,7 @@ public class CentrifugeRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.InfusedAir, 1)) .duration(51 * SECONDS + 4 * TICKS) .eut(12) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); // fire @@ -734,7 +718,7 @@ public class CentrifugeRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.InfusedFire, 1)) .duration(51 * SECONDS + 4 * TICKS) .eut(12) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); // aqua @@ -743,7 +727,7 @@ public class CentrifugeRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.InfusedWater, 1)) .duration(51 * SECONDS + 4 * TICKS) .eut(12) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); // terra @@ -752,7 +736,7 @@ public class CentrifugeRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.InfusedEarth, 1)) .duration(51 * SECONDS + 4 * TICKS) .eut(12) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); // ordo @@ -761,7 +745,7 @@ public class CentrifugeRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.InfusedOrder, 1)) .duration(51 * SECONDS + 4 * TICKS) .eut(12) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); // perditio @@ -770,7 +754,7 @@ public class CentrifugeRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.InfusedEntropy, 1)) .duration(51 * SECONDS + 4 * TICKS) .eut(12) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); // Nethershard @@ -779,7 +763,7 @@ public class CentrifugeRecipes implements Runnable { .itemOutputs(getModItem(ThaumicTinkerer.ID, "kamiResource", 1L, 6)) .duration(6 * SECONDS + 8 * TICKS) .eut(512) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); // Endshard @@ -788,7 +772,7 @@ public class CentrifugeRecipes implements Runnable { .itemOutputs(getModItem(ThaumicTinkerer.ID, "kamiResource", 1L, 7)) .duration(6 * SECONDS + 8 * TICKS) .eut(512) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); } if (ExtraUtilities.isModLoaded()) { @@ -805,7 +789,7 @@ public class CentrifugeRecipes implements Runnable { getModItem(ExtraUtilities.ID, "greenscreen", 1L, 6)) .duration(25 * SECONDS + 12 * TICKS) .eut(12) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); // Caelestis green @@ -819,7 +803,7 @@ public class CentrifugeRecipes implements Runnable { getModItem(ExtraUtilities.ID, "greenscreen", 1L, 0)) .duration(25 * SECONDS + 12 * TICKS) .eut(12) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); // Caelestis blue @@ -833,7 +817,7 @@ public class CentrifugeRecipes implements Runnable { getModItem(ExtraUtilities.ID, "greenscreen", 1L, 15)) .duration(25 * SECONDS + 12 * TICKS) .eut(12) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); } } } diff --git a/src/main/java/gregtech/loaders/postload/recipes/ChemicalBathRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/ChemicalBathRecipes.java index d05c709802..8ca67db192 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/ChemicalBathRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/ChemicalBathRecipes.java @@ -1,8 +1,8 @@ package gregtech.loaders.postload.recipes; import static gregtech.api.enums.Mods.BuildCraftTransport; +import static gregtech.api.recipe.RecipeMaps.chemicalBathRecipes; import static gregtech.api.util.GT_ModHandler.getModItem; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sChemicalBathRecipes; import static gregtech.api.util.GT_RecipeBuilder.MINUTES; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; @@ -32,7 +32,7 @@ public class ChemicalBathRecipes implements Runnable { .fluidInputs(Materials.FryingOilHot.getFluid(10)) .duration(16 * TICKS) .eut(4) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_ModHandler.getIC2Item("dynamite", 1)) @@ -40,7 +40,7 @@ public class ChemicalBathRecipes implements Runnable { .fluidInputs(Materials.Glue.getFluid(10)) .duration(16 * TICKS) .eut(4) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Steel, 1)) @@ -48,7 +48,7 @@ public class ChemicalBathRecipes implements Runnable { .fluidInputs(Materials.Concrete.getMolten(144)) .duration(10 * SECONDS) .eut(4) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 1)) @@ -56,7 +56,7 @@ public class ChemicalBathRecipes implements Runnable { .fluidInputs(Materials.Water.getFluid(125)) .duration(12 * TICKS) .eut(4) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); // paper creation recipes ItemStack[] paperSources = new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L), @@ -68,7 +68,7 @@ public class ChemicalBathRecipes implements Runnable { .fluidInputs(Materials.Water.getFluid(100)) .duration(10 * SECONDS) .eut(4) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); GT_Values.RA.stdBuilder() .itemInputs(paperSource) @@ -76,7 +76,7 @@ public class ChemicalBathRecipes implements Runnable { .fluidInputs(GT_ModHandler.getDistilledWater(100)) .duration(10 * SECONDS) .eut(4) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); } GT_Values.RA.stdBuilder() @@ -85,7 +85,7 @@ public class ChemicalBathRecipes implements Runnable { .fluidInputs(GT_ModHandler.getDistilledWater(125)) .duration(12 * TICKS) .eut(4) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); for (int i = 1; i < 16; i++) { // wool cleaning recipes @@ -95,7 +95,7 @@ public class ChemicalBathRecipes implements Runnable { .fluidInputs(Materials.Chlorine.getGas(50)) .duration(20 * SECONDS) .eut(2) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); // carpet cleaning recipes GT_Values.RA.stdBuilder() @@ -104,7 +104,7 @@ public class ChemicalBathRecipes implements Runnable { .fluidInputs(Materials.Chlorine.getGas(25)) .duration(20 * SECONDS) .eut(2) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); } // stained hardened clay cleaning @@ -114,7 +114,7 @@ public class ChemicalBathRecipes implements Runnable { .fluidInputs(Materials.Chlorine.getGas(50)) .duration(20 * SECONDS) .eut(2) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); // stained glass cleaning GT_Values.RA.stdBuilder() @@ -123,7 +123,7 @@ public class ChemicalBathRecipes implements Runnable { .fluidInputs(Materials.Chlorine.getGas(50)) .duration(20 * SECONDS) .eut(2) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); // stained glass pane cleaning GT_Values.RA.stdBuilder() @@ -132,7 +132,7 @@ public class ChemicalBathRecipes implements Runnable { .fluidInputs(Materials.Chlorine.getGas(20)) .duration(20 * SECONDS) .eut(2) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); // light -> dark concrete recipes for (int i = 0; i < 8; i++) { @@ -142,7 +142,7 @@ public class ChemicalBathRecipes implements Runnable { .fluidInputs(Materials.Water.getFluid(250)) .duration(10 * SECONDS) .eut(4) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(GregTech_API.sBlockConcretes, 1, i + 8)) @@ -150,7 +150,7 @@ public class ChemicalBathRecipes implements Runnable { .fluidInputs(GT_ModHandler.getDistilledWater(250)) .duration(10 * SECONDS) .eut(4) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); } // reinforced blocks @@ -161,7 +161,7 @@ public class ChemicalBathRecipes implements Runnable { .fluidInputs(Materials.Concrete.getMolten(144)) .duration(10 * SECONDS) .eut(4) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Steel, 1)) @@ -169,7 +169,7 @@ public class ChemicalBathRecipes implements Runnable { .fluidInputs(Materials.Steel.getMolten(288)) .duration(12 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Titanium, 1)) @@ -177,7 +177,7 @@ public class ChemicalBathRecipes implements Runnable { .fluidInputs(Materials.Titanium.getMolten(144)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.TungstenSteel, 1)) @@ -185,7 +185,7 @@ public class ChemicalBathRecipes implements Runnable { .fluidInputs(Materials.TungstenSteel.getMolten(144)) .duration(17 * SECONDS + 10 * TICKS) .eut(64) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Iridium, 1)) @@ -193,7 +193,7 @@ public class ChemicalBathRecipes implements Runnable { .fluidInputs(Materials.Iridium.getMolten(144)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Naquadah, 1)) @@ -201,7 +201,7 @@ public class ChemicalBathRecipes implements Runnable { .fluidInputs(Materials.Osmium.getMolten(144)) .duration(22 * SECONDS + 10 * TICKS) .eut(256) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Neutronium, 1)) @@ -209,7 +209,7 @@ public class ChemicalBathRecipes implements Runnable { .fluidInputs(Materials.Naquadria.getMolten(144)) .duration(25 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.TungstenSteel, 1)) @@ -217,7 +217,7 @@ public class ChemicalBathRecipes implements Runnable { .fluidInputs(Materials.Concrete.getMolten(144)) .duration(10 * SECONDS) .eut(4) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); } for (int j = 0; j < Dyes.dyeRed.getSizeOfFluidList(); j++) { @@ -227,7 +227,7 @@ public class ChemicalBathRecipes implements Runnable { .fluidInputs(Dyes.dyeRed.getFluidDye(j, 72)) .duration(1 * SECONDS + 12 * TICKS) .eut(16) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); } for (int j = 0; j < Dyes.dyeBlue.getSizeOfFluidList(); j++) { GT_Values.RA.stdBuilder() @@ -236,7 +236,7 @@ public class ChemicalBathRecipes implements Runnable { .fluidInputs(Dyes.dyeBlue.getFluidDye(j, 72)) .duration(1 * SECONDS + 12 * TICKS) .eut(16) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); } for (int j = 0; j < Dyes.dyeGreen.getSizeOfFluidList(); j++) { GT_Values.RA.stdBuilder() @@ -245,7 +245,7 @@ public class ChemicalBathRecipes implements Runnable { .fluidInputs(Dyes.dyeGreen.getFluidDye(j, 72)) .duration(1 * SECONDS + 12 * TICKS) .eut(16) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); } for (int j = 0; j < Dyes.dyeYellow.getSizeOfFluidList(); j++) { GT_Values.RA.stdBuilder() @@ -254,7 +254,7 @@ public class ChemicalBathRecipes implements Runnable { .fluidInputs(Dyes.dyeYellow.getFluidDye(j, 72)) .duration(1 * SECONDS + 12 * TICKS) .eut(16) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); } for (byte i = 0; i < 16; i = (byte) (i + 1)) { for (int j = 0; j < Dyes.VALUES[i].getSizeOfFluidList(); j++) { @@ -265,7 +265,7 @@ public class ChemicalBathRecipes implements Runnable { .fluidInputs(Dyes.VALUES[i].getFluidDye(j, 72)) .duration(3 * SECONDS + 4 * TICKS) .eut(2) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); } GT_Values.RA.stdBuilder() @@ -274,7 +274,7 @@ public class ChemicalBathRecipes implements Runnable { .fluidInputs(Dyes.VALUES[i].getFluidDye(j, 18)) .duration(3 * SECONDS + 4 * TICKS) .eut(2) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.hardened_clay, 1, 0)) @@ -282,7 +282,7 @@ public class ChemicalBathRecipes implements Runnable { .fluidInputs(Dyes.VALUES[i].getFluidDye(j, 18)) .duration(3 * SECONDS + 4 * TICKS) .eut(2) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); } } @@ -293,7 +293,7 @@ public class ChemicalBathRecipes implements Runnable { .fluidInputs(Materials.Radon.getGas(250)) .duration(24 * SECONDS) .eut(384) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.NetherStar, 1)) @@ -301,7 +301,7 @@ public class ChemicalBathRecipes implements Runnable { .fluidInputs(Materials.Radon.getGas(1250)) .duration(1 * MINUTES + 36 * SECONDS) .eut(384) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.WovenKevlar.get(1)) @@ -309,7 +309,7 @@ public class ChemicalBathRecipes implements Runnable { .fluidInputs(MaterialsKevlar.PolyurethaneResin.getFluid(1000)) .duration(60 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); // Na + H2O = NaOH + H GT_Values.RA.stdBuilder() @@ -319,7 +319,7 @@ public class ChemicalBathRecipes implements Runnable { .fluidOutputs(Materials.Hydrogen.getGas(1000)) .duration(5 * SECONDS) .eut(4) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); // Custom Sodium Persulfate Ore Processing Recipes @@ -333,7 +333,7 @@ public class ChemicalBathRecipes implements Runnable { .fluidInputs(Materials.SodiumPersulfate.getFluid(100)) .duration(40 * SECONDS) .eut(8) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Pyrolusite, 1)) .itemOutputs( @@ -344,7 +344,7 @@ public class ChemicalBathRecipes implements Runnable { .fluidInputs(Materials.SodiumPersulfate.getFluid(100)) .duration(40 * SECONDS) .eut(8) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Quartzite, 1)) .itemOutputs( @@ -355,7 +355,7 @@ public class ChemicalBathRecipes implements Runnable { .fluidInputs(Materials.SodiumPersulfate.getFluid(100)) .duration(40 * SECONDS) .eut(8) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.CertusQuartz, 1)) .itemOutputs( @@ -366,7 +366,7 @@ public class ChemicalBathRecipes implements Runnable { .fluidInputs(Materials.SodiumPersulfate.getFluid(100)) .duration(40 * SECONDS) .eut(8) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Bauxite, 1)) .itemOutputs( @@ -377,7 +377,7 @@ public class ChemicalBathRecipes implements Runnable { .fluidInputs(Materials.SodiumPersulfate.getFluid(100)) .duration(40 * SECONDS) .eut(8) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Thorium, 1)) .itemOutputs( @@ -388,7 +388,7 @@ public class ChemicalBathRecipes implements Runnable { .fluidInputs(Materials.SodiumPersulfate.getFluid(100)) .duration(40 * SECONDS) .eut(8) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Stibnite, 1)) .itemOutputs( @@ -399,6 +399,6 @@ public class ChemicalBathRecipes implements Runnable { .fluidInputs(Materials.SodiumPersulfate.getFluid(100)) .duration(40 * SECONDS) .eut(8) - .addTo(sChemicalBathRecipes); + .addTo(chemicalBathRecipes); } } diff --git a/src/main/java/gregtech/loaders/postload/recipes/ChemicalRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/ChemicalRecipes.java index e914ab214c..285781996f 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/ChemicalRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/ChemicalRecipes.java @@ -6,9 +6,9 @@ import static gregtech.api.enums.Mods.GTPlusPlus; import static gregtech.api.enums.Mods.GalaxySpace; import static gregtech.api.enums.Mods.NewHorizonsCoreMod; import static gregtech.api.enums.Mods.Railcraft; +import static gregtech.api.recipe.RecipeMaps.chemicalReactorRecipes; +import static gregtech.api.recipe.RecipeMaps.multiblockChemicalReactorRecipes; import static gregtech.api.util.GT_ModHandler.getModItem; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sChemicalRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes; import static gregtech.api.util.GT_RecipeBuilder.MINUTES; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; @@ -196,7 +196,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.HydricSulfide.getGas(125)) .duration(1 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -220,7 +220,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.HydricSulfide.getGas(125)) .duration(1 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -244,7 +244,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.HydricSulfide.getGas(250)) .duration(2 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -268,7 +268,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.HydricSulfide.getGas(250)) .duration(2 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -292,7 +292,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.HydricSulfide.getGas(125)) .duration(1 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -690,7 +690,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.Titaniumtetrachloride.getFluid(1000)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -700,7 +700,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.Titaniumtetrachloride.getFluid(1000)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -710,7 +710,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.CarbonMonoxide.getGas(2000), Materials.Titaniumtetrachloride.getFluid(1000)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); // 4Na + 2MgCl2 = 2Mg + 4NaCl @@ -3850,7 +3850,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(new FluidStack(aPolymer, 3240)) .duration(40 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(2)) @@ -3861,7 +3861,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(new FluidStack(aPolymer, 4320)) .duration(40 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); } @@ -3899,7 +3899,7 @@ public class ChemicalRecipes implements Runnable { .itemOutputs(Materials.GasolineRegular.getCells(11)) .duration(10 * TICKS) .eut(TierEU.RECIPE_HV) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Benzene.getCells(1), Materials.Empty.getCells(1)) @@ -3908,7 +3908,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.Styrene.getFluid(1000)) .duration(6 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Ethylene.getCells(1), Materials.Empty.getCells(1)) @@ -3917,7 +3917,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.Styrene.getFluid(1000)) .duration(6 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Methane.getCells(1), Materials.Empty.getCells(2)) @@ -3926,7 +3926,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.Chloroform.getFluid(1000)) .duration(4 * SECONDS) .eut(30) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Silicon.getDust(1), Materials.Chloromethane.getCells(2)) @@ -3934,7 +3934,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.Dimethyldichlorosilane.getFluid(1000)) .duration(12 * SECONDS) .eut(96) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Dimethyldichlorosilane.getCells(1), Materials.Water.getCells(1)) @@ -3942,7 +3942,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.DilutedHydrochloricAcid.getFluid(1000)) .duration(12 * SECONDS) .eut(96) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); // Ca5(PO4)3Cl + 5H2SO4 + 10H2O = 5CaSO4(H2O)2 + HCl + 3H3PO4 @@ -3953,7 +3953,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.PhosphoricAcid.getFluid(3000)) .duration(16 * SECONDS) .eut(30) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); // 10O + 4P = P4O10 @@ -3963,7 +3963,7 @@ public class ChemicalRecipes implements Runnable { .fluidInputs(Materials.Oxygen.getGas(10000)) .duration(2 * SECONDS) .eut(30) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); // HCl + C3H8O3 = C3H5ClO + 2H2O @@ -3973,7 +3973,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.Epichlorohydrin.getFluid(1000)) .duration(24 * SECONDS) .eut(30) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); // H2O + Cl =Hg= HClO + H @@ -3984,7 +3984,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.HypochlorousAcid.getFluid(10000)) .duration(30 * SECONDS) .eut(8) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Water.getCells(10), Materials.Mercury.getCells(1)) @@ -3993,7 +3993,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.HypochlorousAcid.getFluid(10000)) .duration(30 * SECONDS) .eut(8) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Chlorine.getCells(1), Materials.Water.getCells(1)) @@ -4002,7 +4002,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.HypochlorousAcid.getFluid(1000)) .duration(3 * SECONDS) .eut(8) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); // P + 3Cl = PCl3 @@ -4012,7 +4012,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(MaterialsKevlar.PhosphorusTrichloride.getFluid(1000)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4023,7 +4023,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(MaterialsKevlar.SiliconOil.getFluid(5000)) .duration(30 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4034,7 +4034,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(MaterialsKevlar.SiliconOil.getFluid(5000)) .duration(30 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4045,14 +4045,14 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(MaterialsKevlar.Ethyleneglycol.getFluid(1000)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(MaterialsKevlar.CobaltIIHydroxide.getDust(5), MaterialsKevlar.NaphthenicAcid.getCells(1)) .itemOutputs(MaterialsKevlar.CobaltIINaphthenate.getDust(41), ItemList.Cell_Empty.get(1)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(MaterialsKevlar.CobaltIIAcetate.getDust(15), MaterialsKevlar.NaphthenicAcid.getCells(1)) @@ -4060,7 +4060,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.AceticAcid.getFluid(1500)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4070,7 +4070,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.SiliconTetrachloride.getFluid(1000)) .duration(20 * SECONDS) .eut(30) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4080,7 +4080,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(new FluidStack(ItemList.sIndiumConcentrate, 8000)) .duration(3 * SECONDS) .eut(150) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Carbon.getDust(1), Materials.Empty.getCells(1)) @@ -4088,7 +4088,7 @@ public class ChemicalRecipes implements Runnable { .fluidInputs(Materials.Hydrogen.getGas(4000)) .duration(10 * SECONDS) .eut(30) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); // O + 2H = H2O @@ -4101,7 +4101,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(GT_ModHandler.getDistilledWater(1000)) .duration(10 * TICKS) .eut(30) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4112,7 +4112,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(GT_ModHandler.getDistilledWater(500)) .duration(5 * TICKS) .eut(30) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); // Si + 4Cl = SiCl4 @@ -4123,7 +4123,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.Trichlorosilane.getFluid(1000)) .duration(15 * SECONDS) .eut(30) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4133,7 +4133,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.Hydrogen.getGas(4000)) .duration(15 * SECONDS) .eut(30) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Silane, 1), ItemList.Cell_Empty.get(3)) @@ -4142,7 +4142,7 @@ public class ChemicalRecipes implements Runnable { GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Hydrogen, 4)) .duration(15 * SECONDS) .eut(30) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); // S + 2Cl = SCl2 @@ -4155,7 +4155,7 @@ public class ChemicalRecipes implements Runnable { ItemList.Cell_Empty.get(8)) .duration(40 * SECONDS) .eut(30) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 8), ItemList.Cell_Empty.get(8)) @@ -4163,7 +4163,7 @@ public class ChemicalRecipes implements Runnable { .fluidInputs(Materials.Chlorine.getGas(16000)) .duration(40 * SECONDS) .eut(30) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); // C6H6 + C3H6 = C9H12 @@ -4174,7 +4174,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.Cumene.getFluid(8000)) .duration(1 * MINUTES + 36 * SECONDS) .eut(30) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.PhosphoricAcid.getCells(1), Materials.Benzene.getCells(8)) @@ -4183,7 +4183,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.Cumene.getFluid(8000)) .duration(1 * MINUTES + 36 * SECONDS) .eut(30) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Benzene.getCells(1), Materials.Propene.getCells(1)) @@ -4192,7 +4192,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.Cumene.getFluid(1000)) .duration(12 * SECONDS) .eut(30) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); // C3H6O + 2C6H6O =HCl= C15H16O2 + H2O @@ -4203,7 +4203,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.BisphenolA.getFluid(1000)) .duration(8 * SECONDS) .eut(30) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.HydrochloricAcid.getCells(1), Materials.Acetone.getCells(1)) @@ -4212,7 +4212,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.BisphenolA.getFluid(1000)) .duration(8 * SECONDS) .eut(30) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Phenol.getCells(2), Materials.HydrochloricAcid.getCells(1)) @@ -4221,7 +4221,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.BisphenolA.getFluid(1000)) .duration(8 * SECONDS) .eut(30) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); // N + 3H = NH3 @@ -4232,7 +4232,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.Ammonia.getGas(1000)) .duration(16 * SECONDS) .eut(TierEU.HV * 3 / 4) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Hydrogen.getCells(3), GT_Utility.getIntegratedCircuit(1)) @@ -4241,7 +4241,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.Ammonia.getGas(1000)) .duration(16 * SECONDS) .eut(TierEU.HV * 3 / 4) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Nitrogen.getCells(1), GT_Utility.getIntegratedCircuit(11)) @@ -4249,7 +4249,7 @@ public class ChemicalRecipes implements Runnable { .fluidInputs(Materials.Hydrogen.getGas(3000)) .duration(16 * SECONDS) .eut(TierEU.HV * 3 / 4) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Hydrogen.getCells(3), GT_Utility.getIntegratedCircuit(11)) @@ -4257,7 +4257,7 @@ public class ChemicalRecipes implements Runnable { .fluidInputs(Materials.Nitrogen.getGas(1000)) .duration(16 * SECONDS) .eut(TierEU.HV * 3 / 4) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Ammonia.getCells(1), Materials.Empty.getCells(1)) @@ -4266,7 +4266,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.Dimethylamine.getGas(1000)) .duration(12 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Ammonia.getCells(4), Materials.Empty.getCells(2)) @@ -4275,7 +4275,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.NitricOxide.getGas(4000)) .duration(16 * SECONDS) .eut(30) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Water.getCells(1), Materials.Empty.getCells(1)) @@ -4284,7 +4284,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.NitricOxide.getGas(1000)) .duration(12 * SECONDS) .eut(30) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); // 2NO2 + O + H2O = 2HNO3 @@ -4295,7 +4295,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.NitricAcid.getFluid(2000)) .duration(12 * SECONDS) .eut(30) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Oxygen.getCells(1), Materials.Water.getCells(1)) @@ -4304,7 +4304,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.NitricAcid.getFluid(2000)) .duration(12 * SECONDS) .eut(30) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Water.getCells(1), Materials.NitrogenDioxide.getCells(2)) @@ -4313,7 +4313,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.NitricAcid.getFluid(2000)) .duration(12 * SECONDS) .eut(30) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Sulfur.getDust(1), Materials.Empty.getCells(1)) @@ -4321,7 +4321,7 @@ public class ChemicalRecipes implements Runnable { .fluidInputs(Materials.Hydrogen.getGas(2000)) .duration(3 * SECONDS) .eut(8) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); // C2H4 + HCl + O = C2H3Cl + H2O @@ -4332,7 +4332,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.VinylChloride.getGas(1000)) .duration(8 * SECONDS) .eut(30) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.HydrochloricAcid.getCells(1), Materials.Oxygen.getCells(1)) @@ -4341,7 +4341,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.VinylChloride.getGas(1000)) .duration(8 * SECONDS) .eut(30) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Oxygen.getCells(1), Materials.Ethylene.getCells(1)) @@ -4350,7 +4350,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.VinylChloride.getGas(1000)) .duration(8 * SECONDS) .eut(30) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Butadiene.getCells(1), ItemList.Cell_Air.get(5)) @@ -4358,7 +4358,7 @@ public class ChemicalRecipes implements Runnable { .fluidInputs(Materials.Styrene.getFluid(350)) .duration(8 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Butadiene.getCells(1), Materials.Oxygen.getCells(5)) @@ -4366,7 +4366,7 @@ public class ChemicalRecipes implements Runnable { .fluidInputs(Materials.Styrene.getFluid(350)) .duration(8 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Styrene.getCells(1), ItemList.Cell_Air.get(15)) @@ -4374,7 +4374,7 @@ public class ChemicalRecipes implements Runnable { .fluidInputs(Materials.Butadiene.getGas(3000)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Styrene.getCells(1), Materials.Oxygen.getCells(15)) @@ -4382,7 +4382,7 @@ public class ChemicalRecipes implements Runnable { .fluidInputs(Materials.Butadiene.getGas(3000)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Styrene.getCells(1), Materials.Butadiene.getCells(3)) @@ -4390,7 +4390,7 @@ public class ChemicalRecipes implements Runnable { .fluidInputs(Materials.Air.getGas(15000)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Styrene.getCells(1), Materials.Butadiene.getCells(3)) @@ -4398,7 +4398,7 @@ public class ChemicalRecipes implements Runnable { .fluidInputs(Materials.Oxygen.getGas(15000)) .duration(24 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Benzene.getCells(1), Materials.Empty.getCells(1)) @@ -4407,7 +4407,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.Dichlorobenzene.getFluid(1000)) .duration(12 * SECONDS) .eut(30) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Glycerol.getCells(1), Materials.Empty.getCells(2)) @@ -4416,7 +4416,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.Glyceryl.getFluid(1000)) .duration(9 * SECONDS) .eut(30) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.SodiumHydroxide.getDust(12), Materials.Empty.getCells(4)) @@ -4424,14 +4424,14 @@ public class ChemicalRecipes implements Runnable { .fluidInputs(Materials.Chlorobenzene.getFluid(4000)) .duration(48 * SECONDS) .eut(30) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.SodiumHydroxide.getDust(12), Materials.Chlorobenzene.getCells(4)) .itemOutputs(Materials.Salt.getDust(8), Materials.Phenol.getCells(4)) .duration(48 * SECONDS) .eut(30) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); // Recipes for gasoline // 2N + O = N2O @@ -4441,7 +4441,7 @@ public class ChemicalRecipes implements Runnable { .itemOutputs(Materials.NitrousOxide.getCells(1), Materials.Empty.getCells(2)) .duration(10 * SECONDS) .eut(30) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Nitrogen.getCells(2), GT_Utility.getIntegratedCircuit(1)) @@ -4450,7 +4450,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.NitrousOxide.getGas(1000)) .duration(10 * SECONDS) .eut(30) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Nitrogen.getCells(2), GT_Utility.getIntegratedCircuit(11)) @@ -4458,7 +4458,7 @@ public class ChemicalRecipes implements Runnable { .fluidInputs(Materials.Oxygen.getGas(1000)) .duration(10 * SECONDS) .eut(30) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Oxygen.getCells(1), GT_Utility.getIntegratedCircuit(1)) @@ -4467,7 +4467,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.NitrousOxide.getGas(1000)) .duration(10 * SECONDS) .eut(30) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Oxygen.getCells(1), GT_Utility.getIntegratedCircuit(11)) @@ -4475,7 +4475,7 @@ public class ChemicalRecipes implements Runnable { .fluidInputs(Materials.Nitrogen.getGas(2000)) .duration(10 * SECONDS) .eut(30) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); // C2H6O + C4H8 = C6H14O @@ -4484,7 +4484,7 @@ public class ChemicalRecipes implements Runnable { .itemOutputs(Materials.AntiKnock.getCells(1), Materials.Empty.getCells(1)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); // Potassium Dichromate // 2KNO3 + 2CrO3 = K2Cr2O7 + 2NO + 3O @@ -4495,7 +4495,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.NitricOxide.getGas(2000)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.PotassiumNitrade.getDust(10), Materials.ChromiumTrioxide.getDust(8)) @@ -4503,7 +4503,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.NitricOxide.getGas(2000)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sChemicalRecipes); + .addTo(chemicalReactorRecipes); } public void multiblockOnly() { @@ -4514,7 +4514,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(GT_ModHandler.getDistilledWater(8000)) .duration(4 * SECONDS) .eut(30) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.PotassiumNitrade.getDust(10), Materials.ChromiumTrioxide.getDust(8)) @@ -4522,7 +4522,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.NitricOxide.getGas(2000), Materials.Oxygen.getGas(3000)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Saltpeter.getDust(10), Materials.ChromiumTrioxide.getDust(8)) @@ -4530,7 +4530,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.NitricOxide.getGas(2000), Materials.Oxygen.getGas(3000)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); // Potassium Dichromate shortcut // 2 Cr + 6O + 10 Saltpeter/Potassium Dichromate = 10 K2Cr2O7 + 2NO + 3O @@ -4550,7 +4550,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.NitricOxide.getGas(2000 * 16), Materials.Oxygen.getGas(3000 * 16)) .duration(2 * MINUTES + 8 * SECONDS) .eut((int) GT_Values.VP[7]) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4567,7 +4567,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.NitricOxide.getGas(2000 * 16), Materials.Oxygen.getGas(3000 * 16)) .duration(2 * MINUTES + 8 * SECONDS) .eut((int) GT_Values.VP[7]) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(1)) @@ -4575,7 +4575,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.Dimethylbenzene.getFluid(1000), Materials.Hydrogen.getGas(4000)) .duration(3 * MINUTES + 20 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4586,7 +4586,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(new FluidStack(ItemList.sIndiumConcentrate, 8000)) .duration(3 * SECONDS) .eut(150) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4597,7 +4597,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(new FluidStack(ItemList.sIndiumConcentrate, 72000)) .duration(8 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4608,7 +4608,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(new FluidStack(ItemList.sNickelSulfate, 18000)) .duration(1 * SECONDS + 5 * TICKS) .eut(TierEU.RECIPE_HV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4619,7 +4619,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(new FluidStack(ItemList.sBlueVitriol, 18000)) .duration(1 * SECONDS + 5 * TICKS) .eut(TierEU.RECIPE_HV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4631,7 +4631,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.Radon.getGas(800)) .duration(1 * MINUTES + 15 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); // 3SiO2 + 4Al = 3Si + 2Al2O3 @@ -4645,7 +4645,7 @@ public class ChemicalRecipes implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Aluminiumoxide, 10)) .duration(10 * TICKS) .eut(TierEU.RECIPE_MV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); // 10Si + 30HCl -> 0.3 SiH2Cl2 + 9 HSiCl3 + 0.3 SiCl4 + 0.2 Si2Cl6 + 20.4H @@ -4662,7 +4662,7 @@ public class ChemicalRecipes implements Runnable { Materials.Hydrogen.getGas(20400)) .duration(7 * SECONDS + 10 * TICKS) .eut(TierEU.RECIPE_HV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); // 2CO + 2C3H6 + 4H =RhHCO(P(C6H5)3)3= C4H8O + C4H8O @@ -4675,7 +4675,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(MaterialsKevlar.Butyraldehyde.getFluid(1000), MaterialsKevlar.Isobutyraldehyde.getFluid(1000)) .duration(15 * SECONDS) .eut(30) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(9), MaterialsKevlar.OrganorhodiumCatalyst.getDust(1)) @@ -4686,7 +4686,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(MaterialsKevlar.Butyraldehyde.getFluid(9000), MaterialsKevlar.Isobutyraldehyde.getFluid(9000)) .duration(1 * MINUTES + 40 * SECONDS) .eut(30) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); // C2H4 + O =Al2O3,Ag= C2H4O @@ -4699,7 +4699,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(MaterialsKevlar.EthyleneOxide.getGas(1000)) .duration(2 * SECONDS + 10 * TICKS) .eut(TierEU.RECIPE_HV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4710,7 +4710,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(MaterialsKevlar.EthyleneOxide.getGas(9000)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(2)) @@ -4721,7 +4721,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(MaterialsKevlar.SiliconOil.getFluid(5000)) .duration(15 * TICKS) .eut(TierEU.RECIPE_EV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(8)) @@ -4732,7 +4732,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(MaterialsKevlar.SiliconOil.getFluid(45000)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); // NH3 + CH4O =SiO2,Al2O3= CH5N + H2O @@ -4745,7 +4745,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(MaterialsKevlar.Methylamine.getGas(1000), Materials.Water.getFluid(1000)) .duration(1 * MINUTES + 15 * SECONDS) .eut(500000) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4757,7 +4757,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(MaterialsKevlar.PolyurethaneResin.getFluid(1000)) .duration(10 * SECONDS) .eut(500000) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4769,7 +4769,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(MaterialsKevlar.PolyurethaneResin.getFluid(9000)) .duration(1 * MINUTES + 15 * SECONDS) .eut(500000) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); // 3NH3 + 6CH4O =Al2O3,SiO2= CH5N + C2H7N + C3H9N + 6H2O @@ -4786,7 +4786,7 @@ public class ChemicalRecipes implements Runnable { Materials.Water.getFluid(6000)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4801,7 +4801,7 @@ public class ChemicalRecipes implements Runnable { Materials.Water.getFluid(54000)) .duration(2 * MINUTES + 30 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); // 18SOCl2 + 5C10H10O4 + 6CO2 = 7C8H4Cl2O2 + 22HCl + 18SO2 @@ -4817,7 +4817,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.DilutedHydrochloricAcid.getFluid(22000), Materials.SulfurDioxide.getGas(18000)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); // 2CH4O + C8H6O4 =H2SO4= C10H10O4 + 2H2O @@ -4832,7 +4832,7 @@ public class ChemicalRecipes implements Runnable { Materials.DilutedSulfuricAcid.getFluid(2000)) .duration(12 * SECONDS + 10 * TICKS) .eut(TierEU.RECIPE_EV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(9)) @@ -4845,7 +4845,7 @@ public class ChemicalRecipes implements Runnable { Materials.DilutedSulfuricAcid.getFluid(18000)) .duration(1 * MINUTES + 27 * SECONDS + 10 * TICKS) .eut(TierEU.RECIPE_EV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(2)) @@ -4853,7 +4853,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(MaterialsKevlar.IIIDimethylbenzene.getFluid(1000), Materials.Hydrogen.getGas(4000)) .duration(3 * MINUTES + 20 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(3)) @@ -4861,7 +4861,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(MaterialsKevlar.IVDimethylbenzene.getFluid(1000), Materials.Hydrogen.getGas(4000)) .duration(3 * MINUTES + 20 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4877,7 +4877,7 @@ public class ChemicalRecipes implements Runnable { .fluidInputs(MaterialsKevlar.NaphthenicAcid.getFluid(10000)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -4896,7 +4896,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.AceticAcid.getFluid(15000)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); // PCl3 + 3C6H5Cl + 6Na = 6NaCl + C18H15P @@ -4908,7 +4908,7 @@ public class ChemicalRecipes implements Runnable { .fluidInputs(MaterialsKevlar.PhosphorusTrichloride.getFluid(1000), Materials.Chlorobenzene.getFluid(3000)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); // 4NaH + C3H9BO3 = NaBH4 + 3CH3ONa @@ -4918,7 +4918,7 @@ public class ChemicalRecipes implements Runnable { .fluidInputs(MaterialsKevlar.TrimethylBorate.getFluid(1000)) .duration(30 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(9), MaterialsKevlar.SodiumHydride.getDust(64)) @@ -4930,7 +4930,7 @@ public class ChemicalRecipes implements Runnable { .fluidInputs(MaterialsKevlar.TrimethylBorate.getFluid(8000)) .duration(30 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); // 2CH3COOH = CH3COCH3 + CO2 + H @@ -4943,7 +4943,7 @@ public class ChemicalRecipes implements Runnable { Materials.Water.getFluid(1000)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(0, Materials.Calcium.getDust(1)), GT_Utility.getIntegratedCircuit(24)) @@ -4954,7 +4954,7 @@ public class ChemicalRecipes implements Runnable { Materials.Water.getFluid(1000)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(0, Materials.Quicklime.getDust(2)), GT_Utility.getIntegratedCircuit(24)) @@ -4965,7 +4965,7 @@ public class ChemicalRecipes implements Runnable { Materials.Water.getFluid(1000)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); // C + 4H + O = CH3OH @@ -4975,7 +4975,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.Methanol.getFluid(1000)) .duration(16 * SECONDS) .eut(96) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); // This recipe collides with one for Vinyl Chloride // 2C + 4H + 2O = CH3COOH @@ -4986,7 +4986,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.AceticAcid.getFluid(1000)) .duration(24 * SECONDS) .eut(30) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); // 2CO + 4H = CH3COOH @@ -4996,7 +4996,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.AceticAcid.getFluid(1000)) .duration(16 * SECONDS) .eut(30) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(8)) @@ -5004,7 +5004,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.HydrochloricAcid.getFluid(9000)) .duration(7 * TICKS) .eut(TierEU.RECIPE_HV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(2)) @@ -5015,7 +5015,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.HypochlorousAcid.getFluid(10000), Materials.Hydrogen.getGas(10000)) .duration(30 * SECONDS) .eut(8) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); // H2O + 4Cl + C3H6 + NaOH = C3H5ClO + NaCl·H2O + 2HCl @@ -5031,7 +5031,7 @@ public class ChemicalRecipes implements Runnable { Materials.HydrochloricAcid.getFluid(2000)) .duration(32 * SECONDS) .eut(30) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); // H2O + 2Cl + C3H6 + NaOH =Hg= C3H5ClO + NaCl·H2O + 2H @@ -5048,7 +5048,7 @@ public class ChemicalRecipes implements Runnable { Materials.Hydrogen.getGas(2000)) .duration(32 * SECONDS) .eut(30) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); // HClO + 2Cl + C3H6 + NaOH = C3H5ClO + NaCl·H2O + HCl @@ -5064,7 +5064,7 @@ public class ChemicalRecipes implements Runnable { Materials.HydrochloricAcid.getFluid(1000)) .duration(32 * SECONDS) .eut(30) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Apatite.getDust(9)) @@ -5073,7 +5073,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.PhosphoricAcid.getFluid(3000), Materials.HydrochloricAcid.getFluid(1000)) .duration(16 * SECONDS) .eut(30) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Phosphorus.getDust(4), GT_Utility.getIntegratedCircuit(1)) @@ -5081,7 +5081,7 @@ public class ChemicalRecipes implements Runnable { .fluidInputs(Materials.Oxygen.getGas(10000)) .duration(2 * SECONDS) .eut(30) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); // 2P + 5O + 3H2O = 2H3PO4 @@ -5091,7 +5091,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.PhosphoricAcid.getFluid(1000)) .duration(16 * SECONDS) .eut(30) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(1)) @@ -5102,7 +5102,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.Cumene.getFluid(8000)) .duration(1 * MINUTES + 36 * SECONDS) .eut(30) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(24)) @@ -5114,7 +5114,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.Phenol.getFluid(1000), Materials.Acetone.getFluid(1000)) .duration(24 * SECONDS) .eut(30) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(1)) @@ -5125,7 +5125,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.BisphenolA.getFluid(1000), Materials.Water.getFluid(1000)) .duration(8 * SECONDS) .eut(30) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.SodiumHydroxide.getDust(6), GT_Utility.getIntegratedCircuit(24)) @@ -5137,7 +5137,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.Epoxid.getMolten(1000), Materials.SaltWater.getFluid(2000)) .duration(24 * SECONDS) .eut(30) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(9)) @@ -5145,7 +5145,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.HydrofluoricAcid.getFluid(9000)) .duration(7 * TICKS) .eut(TierEU.RECIPE_HV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(24)) @@ -5156,7 +5156,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.Tetrafluoroethylene.getGas(1000), Materials.HydrochloricAcid.getFluid(12000)) .duration(27 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Silicon.getDust(1), GT_Utility.getIntegratedCircuit(24)) @@ -5168,7 +5168,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.HydrochloricAcid.getFluid(2000), Materials.DilutedHydrochloricAcid.getFluid(2000)) .duration(24 * SECONDS) .eut(96) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Silicon.getDust(1), GT_Utility.getIntegratedCircuit(24)) @@ -5177,7 +5177,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.DilutedHydrochloricAcid.getFluid(2000)) .duration(24 * SECONDS) .eut(96) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(1)) @@ -5185,7 +5185,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.Ammonia.getGas(1000)) .duration(16 * SECONDS) .eut(TierEU.HV * 3 / 4) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(24)) @@ -5193,7 +5193,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.Ammonia.getGas(10000)) .duration(2 * MINUTES + 40 * SECONDS) .eut(TierEU.HV * 3 / 4) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); // 2NH3 + 7O = N2O4 + 3H2O @@ -5203,7 +5203,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.DinitrogenTetroxide.getGas(1000), Materials.Water.getFluid(3000)) .duration(24 * SECONDS) .eut(30) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); // 7O + 6H + 2N = N2O4 + 3H2O @@ -5216,7 +5216,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.DinitrogenTetroxide.getGas(1000), Materials.Water.getFluid(3000)) .duration(55 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(9)) @@ -5224,7 +5224,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.NitricOxide.getGas(36000), Materials.Water.getFluid(54000)) .duration(8 * SECONDS + 10 * TICKS) .eut(TierEU.RECIPE_HV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(8)) @@ -5232,7 +5232,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.NitricOxide.getGas(36000)) .duration(8 * SECONDS + 10 * TICKS) .eut(TierEU.RECIPE_HV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(9)) @@ -5240,7 +5240,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.NitrogenDioxide.getGas(9000)) .duration(4 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(9)) @@ -5248,7 +5248,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.NitricAcid.getFluid(18000), Materials.NitricOxide.getGas(9000)) .duration(6 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(24)) @@ -5259,7 +5259,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.NitricAcid.getFluid(1000), Materials.Water.getFluid(1000)) .duration(16 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(24)) @@ -5267,7 +5267,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.NitricAcid.getFluid(1000), Materials.Water.getFluid(1000)) .duration(16 * SECONDS) .eut(30) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(24)) @@ -5278,7 +5278,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.NitricAcid.getFluid(2000)) .duration(16 * SECONDS) .eut(30) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(9), Materials.Sulfur.getDust(9)) @@ -5286,7 +5286,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.HydricSulfide.getGas(9000)) .duration(4 * TICKS) .eut(TierEU.RECIPE_MV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(9), Materials.Sulfur.getDust(9)) @@ -5294,7 +5294,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.SulfurDioxide.getGas(9000)) .duration(4 * TICKS) .eut(TierEU.RECIPE_MV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(9)) @@ -5302,7 +5302,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.SulfurDioxide.getGas(9000), Materials.Water.getFluid(9000)) .duration(3 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(8)) @@ -5310,7 +5310,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.SulfurDioxide.getGas(9000)) .duration(3 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(7)) @@ -5318,7 +5318,7 @@ public class ChemicalRecipes implements Runnable { .fluidInputs(Materials.SulfurDioxide.getGas(9000), Materials.HydricSulfide.getGas(18000)) .duration(3 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(9)) @@ -5326,7 +5326,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.SulfuricAcid.getFluid(9000)) .duration(13 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); // S + O3 + H2O = H2SO4 @@ -5336,7 +5336,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.SulfuricAcid.getFluid(1000)) .duration(24 * SECONDS) .eut(30) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(7), Materials.Sulfur.getDust(9)) @@ -5344,7 +5344,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.SulfuricAcid.getFluid(9000)) .duration(13 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); // H2S + O4 = H2SO4 @@ -5354,7 +5354,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.SulfuricAcid.getFluid(1000)) .duration(24 * SECONDS) .eut(30) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); // SO2 + O + H2O = H2SO4 @@ -5367,7 +5367,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.SulfuricAcid.getFluid(1000)) .duration(30 * SECONDS) .eut(30) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(9)) @@ -5378,7 +5378,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.SulfuricAcid.getFluid(9000)) .duration(7 * SECONDS + 10 * TICKS) .eut(TierEU.RECIPE_HV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(2)) @@ -5389,7 +5389,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.VinylChloride.getGas(1000), Materials.Water.getFluid(1000)) .duration(8 * SECONDS) .eut(30) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(24)) @@ -5400,7 +5400,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.VinylChloride.getGas(2000), Materials.Water.getFluid(1000)) .duration(12 * SECONDS) .eut(30) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(2)) @@ -5411,7 +5411,7 @@ public class ChemicalRecipes implements Runnable { Materials.Titaniumtetrachloride.getFluid(80)) .duration(32 * SECONDS) .eut(30) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(2)) @@ -5422,7 +5422,7 @@ public class ChemicalRecipes implements Runnable { Materials.Titaniumtetrachloride.getFluid(80)) .duration(32 * SECONDS) .eut(30) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(3)) @@ -5430,7 +5430,7 @@ public class ChemicalRecipes implements Runnable { .fluidInputs(Materials.Styrene.getFluid(36), Materials.Butadiene.getGas(108), Materials.Air.getGas(2000)) .duration(8 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(3)) @@ -5438,7 +5438,7 @@ public class ChemicalRecipes implements Runnable { .fluidInputs(Materials.Styrene.getFluid(72), Materials.Butadiene.getGas(216), Materials.Oxygen.getGas(2000)) .duration(8 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(4)) @@ -5452,7 +5452,7 @@ public class ChemicalRecipes implements Runnable { Materials.Air.getGas(15000)) .duration(32 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(4)) @@ -5464,7 +5464,7 @@ public class ChemicalRecipes implements Runnable { Materials.Oxygen.getGas(7500)) .duration(32 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(9), Materials.Salt.getDust(18)) @@ -5473,7 +5473,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.HydrochloricAcid.getFluid(9000)) .duration(6 * SECONDS + 15 * TICKS) .eut(TierEU.RECIPE_MV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(9), Materials.SodiumHydroxide.getDust(27)) @@ -5482,7 +5482,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.Water.getFluid(9000)) .duration(6 * SECONDS + 15 * TICKS) .eut(TierEU.RECIPE_MV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(24)) @@ -5496,7 +5496,7 @@ public class ChemicalRecipes implements Runnable { Materials.DilutedHydrochloricAcid.getFluid(1000)) .duration(28 * SECONDS) .eut(30) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); // C6H6 + 2Cl + NaOH = C6H6O + NaCl + HCl @@ -5507,7 +5507,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.Phenol.getFluid(2000), Materials.HydrochloricAcid.getFluid(2000)) .duration(56 * SECONDS) .eut(30) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(24)) @@ -5515,7 +5515,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.Fuel.getFluid(24000)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(24)) @@ -5523,7 +5523,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.NitroFuel.getFluid(10000)) .duration(6 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(24)) @@ -5531,7 +5531,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.NitroFuel.getFluid(9000)) .duration(6 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); // CH4 + 2H2O = CO2 + 8H @@ -5541,7 +5541,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.CarbonDioxide.getGas(5000), Materials.Hydrogen.getGas(40000)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); // CH4 + H2O = CO + 6H @@ -5551,7 +5551,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.CarbonMonoxide.getGas(5000), Materials.Hydrogen.getGas(30000)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(24)) @@ -5559,7 +5559,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.NitrousOxide.getGas(10000)) .duration(2 * SECONDS + 10 * TICKS) .eut(TierEU.RECIPE_HV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(24)) @@ -5571,7 +5571,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.GasolineRaw.getFluid(20000)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(24)) @@ -5579,7 +5579,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.GasolineRegular.getFluid(11000)) .duration(10 * TICKS) .eut(TierEU.RECIPE_HV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(24)) @@ -5592,7 +5592,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.GasolinePremium.getFluid(32000)) .duration(2 * SECONDS + 10 * TICKS) .eut(TierEU.RECIPE_EV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); // C2H6O + C4H8 = C6H14O @@ -5602,7 +5602,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.AntiKnock.getFluid(1000)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); // CH4O + C4H8 = C5H12O @@ -5612,7 +5612,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.MTBEMixture.getGas(1000)) .duration(20 * TICKS) .eut(TierEU.RECIPE_HV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(24)) @@ -5623,7 +5623,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.EnrichedNaquadria.getFluid(9216)) .duration(30 * SECONDS) .eut(500000) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); if (GTNHLanthanides.isModLoaded() && GTPlusPlus.isModLoaded()) { // CH2O + 2C6H7N + HCl = C13H14N2(HCl) + H2O @@ -5637,7 +5637,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(MaterialsKevlar.DiaminodiphenylmethanMixture.getFluid(1000)) .duration(60 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); // C6H5NO2 + 6H =Pd= C6H7N + 2H2O @@ -5651,7 +5651,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.Water.getFluid(18000), new FluidStack(FluidRegistry.getFluid("aniline"), 9000)) .duration(45 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); // C6H6 + HNO3 =H2SO4= C6H5NO2 + H2O @@ -5667,7 +5667,7 @@ public class ChemicalRecipes implements Runnable { Materials.DilutedSulfuricAcid.getFluid(3000)) .duration(6 * SECONDS) .eut(TierEU.RECIPE_IV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); // C13H14N2(HCl) + 2COCl2 = C15H10N2O2(5HCl) @@ -5679,7 +5679,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(MaterialsKevlar.DiphenylmethaneDiisocyanateMixture.getFluid(1000)) .duration(30 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5689,7 +5689,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(new FluidStack(FluidRegistry.getFluid("butanol"), 9000)) .duration(4 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5702,7 +5702,7 @@ public class ChemicalRecipes implements Runnable { Materials.IronIIIChloride.getFluid(100)) .duration(30 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5715,7 +5715,7 @@ public class ChemicalRecipes implements Runnable { Materials.IronIIIChloride.getFluid(900)) .duration(3 * MINUTES + 45 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); // C2H4 + CO + H2O =C4NiO= C3H6O2 @@ -5729,7 +5729,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(new FluidStack(FluidRegistry.getFluid("propionicacid"), 1000)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(9)) @@ -5741,7 +5741,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(new FluidStack(FluidRegistry.getFluid("propionicacid"), 9000)) .duration(1 * MINUTES + 15 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); // C6H7N + HNO3 =H2SO4,C4H6O3= C6H6N2O2 + H2O @@ -5756,7 +5756,7 @@ public class ChemicalRecipes implements Runnable { Materials.DilutedSulfuricAcid.getFluid(1000)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(9)) @@ -5769,7 +5769,7 @@ public class ChemicalRecipes implements Runnable { Materials.DilutedSulfuricAcid.getFluid(9000)) .duration(1 * MINUTES + 40 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); // C6H6N2O2 + 6H =Pd,NO2= C6H8N2 + 2H2O @@ -5785,7 +5785,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.Water.getFluid(2000)) .duration(20 * SECONDS) .eut(500000) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); // C4H10O2 =Cu= C4H6O2 + 4H @@ -5797,7 +5797,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(MaterialsKevlar.GammaButyrolactone.getFluid(1000), Materials.Hydrogen.getGas(4000)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5807,7 +5807,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(MaterialsKevlar.GammaButyrolactone.getFluid(9000), Materials.Hydrogen.getGas(36000)) .duration(35 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); // 2CH2O + C2H2 =SiO2,CuO,Bi2O3= C4H6O2 @@ -5823,7 +5823,7 @@ public class ChemicalRecipes implements Runnable { new FluidStack(FluidRegistry.getFluid("fluid.formaldehyde"), 2000)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5839,7 +5839,7 @@ public class ChemicalRecipes implements Runnable { new FluidStack(FluidRegistry.getFluid("fluid.formaldehyde"), 18000)) .duration(2 * MINUTES + 30 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); // C4H6O2 + 4H =NiAl= C4H10O2 @@ -5852,7 +5852,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(new FluidStack(FluidRegistry.getFluid("1,4-butanediol"), 1000)) .duration(15 * SECONDS) .eut(500000) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5866,7 +5866,7 @@ public class ChemicalRecipes implements Runnable { Materials.DilutedHydrochloricAcid.getFluid(2000)) .duration(30 * SECONDS) .eut(500000) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5880,7 +5880,7 @@ public class ChemicalRecipes implements Runnable { Materials.DilutedHydrochloricAcid.getFluid(14000)) .duration(2 * MINUTES + 55 * SECONDS) .eut(500000) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); // Na2B4O7(H2O)10 + 2HCl = 2NaCl + 4H3BO3 + 5H2O @@ -5893,7 +5893,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(new FluidStack(FluidRegistry.getFluid("boricacid"), 4000), Materials.Water.getFluid(5000)) .duration(40 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); // H3BO3 + 3CH4O =H2SO4= C3H9BO3 + 3H2O @@ -5908,7 +5908,7 @@ public class ChemicalRecipes implements Runnable { MaterialsKevlar.TrimethylBorate.getFluid(1000)) .duration(30 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(9)) @@ -5921,7 +5921,7 @@ public class ChemicalRecipes implements Runnable { MaterialsKevlar.TrimethylBorate.getFluid(9000)) .duration(3 * MINUTES + 45 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); // RhCl3 + 3C18H15P + 3NaBH4 + CO = RhC55H46P3O + 3NaCl + 3B + 11H @@ -5941,7 +5941,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.Hydrogen.getGas(11000)) .duration(40 * SECONDS) .eut(500000) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); // 2NaOH + N2H4 =Mn= 2N + 2H2O + 2NaH @@ -5955,7 +5955,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.Nitrogen.getGas(2000), Materials.Water.getFluid(2000)) .duration(10 * TICKS) .eut(TierEU.RECIPE_EV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -5967,7 +5967,7 @@ public class ChemicalRecipes implements Runnable { .fluidOutputs(Materials.Nitrogen.getGas(18000), Materials.Water.getFluid(18000)) .duration(3 * SECONDS + 10 * TICKS) .eut(TierEU.RECIPE_EV) - .addTo(sMultiblockChemicalRecipes); + .addTo(multiblockChemicalReactorRecipes); } } } diff --git a/src/main/java/gregtech/loaders/postload/recipes/CircuitAssemblerRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/CircuitAssemblerRecipes.java index a552369087..10aaff6b4d 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/CircuitAssemblerRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/CircuitAssemblerRecipes.java @@ -3,8 +3,8 @@ package gregtech.loaders.postload.recipes; import static gregtech.api.enums.Mods.Forestry; import static gregtech.api.enums.Mods.NewHorizonsCoreMod; import static gregtech.api.enums.Mods.Railcraft; +import static gregtech.api.recipe.RecipeMaps.circuitAssemblerRecipes; import static gregtech.api.util.GT_ModHandler.getModItem; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCircuitAssemblerRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.loaders.postload.GT_MachineRecipeLoader.solderingMats; @@ -48,7 +48,7 @@ public class CircuitAssemblerRecipes implements Runnable { .fluidInputs(tMat.getMolten(144L * tMultiplier / 2)) .duration(15 * SECONDS) .eut((int) TierEU.RECIPE_LV) - .addTo(sCircuitAssemblerRecipes); + .addTo(circuitAssemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -59,7 +59,7 @@ public class CircuitAssemblerRecipes implements Runnable { .fluidInputs(tMat.getMolten(144L * tMultiplier / 2)) .duration(15 * SECONDS) .eut((int) TierEU.RECIPE_LV) - .addTo(sCircuitAssemblerRecipes); + .addTo(circuitAssemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -70,7 +70,7 @@ public class CircuitAssemblerRecipes implements Runnable { .fluidInputs(tMat.getMolten(144L * tMultiplier / 2)) .duration(15 * SECONDS) .eut((int) TierEU.RECIPE_LV) - .addTo(sCircuitAssemblerRecipes); + .addTo(circuitAssemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -81,7 +81,7 @@ public class CircuitAssemblerRecipes implements Runnable { .fluidInputs(tMat.getMolten(144L * tMultiplier / 2)) .duration(20 * SECONDS) .eut((int) TierEU.RECIPE_LV) - .addTo(sCircuitAssemblerRecipes); + .addTo(circuitAssemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -92,7 +92,7 @@ public class CircuitAssemblerRecipes implements Runnable { .fluidInputs(tMat.getMolten(144L * tMultiplier / 2)) .duration(20 * SECONDS) .eut((int) TierEU.RECIPE_LV) - .addTo(sCircuitAssemblerRecipes); + .addTo(circuitAssemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -103,7 +103,7 @@ public class CircuitAssemblerRecipes implements Runnable { .fluidInputs(tMat.getMolten(144L * tMultiplier / 2)) .duration(20 * SECONDS) .eut((int) TierEU.RECIPE_LV) - .addTo(sCircuitAssemblerRecipes); + .addTo(circuitAssemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -114,7 +114,7 @@ public class CircuitAssemblerRecipes implements Runnable { .fluidInputs(tMat.getMolten(144L * tMultiplier / 2)) .duration(25 * SECONDS) .eut((int) TierEU.RECIPE_LV) - .addTo(sCircuitAssemblerRecipes); + .addTo(circuitAssemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -125,7 +125,7 @@ public class CircuitAssemblerRecipes implements Runnable { .fluidInputs(tMat.getMolten(144L * tMultiplier / 2)) .duration(25 * SECONDS) .eut((int) TierEU.RECIPE_LV) - .addTo(sCircuitAssemblerRecipes); + .addTo(circuitAssemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -136,7 +136,7 @@ public class CircuitAssemblerRecipes implements Runnable { .fluidInputs(tMat.getMolten(144L * tMultiplier / 2)) .duration(25 * SECONDS) .eut((int) TierEU.RECIPE_LV) - .addTo(sCircuitAssemblerRecipes); + .addTo(circuitAssemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -150,7 +150,7 @@ public class CircuitAssemblerRecipes implements Runnable { .fluidInputs(tMat.getMolten(1152L * tMultiplier / 2)) .duration(10 * SECONDS) .eut((int) TierEU.RECIPE_LV) - .addTo(sCircuitAssemblerRecipes); + .addTo(circuitAssemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -164,7 +164,7 @@ public class CircuitAssemblerRecipes implements Runnable { .fluidInputs(tMat.getMolten(1152L * tMultiplier / 2)) .duration(10 * SECONDS) .eut((int) TierEU.RECIPE_LV) - .addTo(sCircuitAssemblerRecipes); + .addTo(circuitAssemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -178,7 +178,7 @@ public class CircuitAssemblerRecipes implements Runnable { .fluidInputs(tMat.getMolten(1152L * tMultiplier / 2)) .duration(10 * SECONDS) .eut((int) TierEU.RECIPE_LV) - .addTo(sCircuitAssemblerRecipes); + .addTo(circuitAssemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -192,7 +192,7 @@ public class CircuitAssemblerRecipes implements Runnable { .fluidInputs(tMat.getMolten(1152L * tMultiplier / 2)) .duration(10 * SECONDS) .eut((int) TierEU.RECIPE_LV) - .addTo(sCircuitAssemblerRecipes); + .addTo(circuitAssemblerRecipes); } } @@ -214,7 +214,7 @@ public class CircuitAssemblerRecipes implements Runnable { .fluidInputs(Materials.Glass.getMolten(576)) .duration(10 * SECONDS) .eut((int) TierEU.RECIPE_LV) - .addTo(sCircuitAssemblerRecipes); + .addTo(circuitAssemblerRecipes); // alternative version of the iron electron tube @@ -228,7 +228,7 @@ public class CircuitAssemblerRecipes implements Runnable { .fluidInputs(Materials.Glass.getMolten(576)) .duration(10 * SECONDS) .eut((int) TierEU.RECIPE_LV) - .addTo(sCircuitAssemblerRecipes); + .addTo(circuitAssemblerRecipes); ItemStack[] rodMaterials = new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Copper, 2L), @@ -257,7 +257,7 @@ public class CircuitAssemblerRecipes implements Runnable { .fluidInputs(Materials.Glass.getMolten(576)) .duration(10 * SECONDS) .eut((int) TierEU.RECIPE_LV) - .addTo(sCircuitAssemblerRecipes); + .addTo(circuitAssemblerRecipes); } for (Materials tMat : solderingMats) { @@ -277,7 +277,7 @@ public class CircuitAssemblerRecipes implements Runnable { .fluidInputs(tMat.getMolten(1152L * tMultiplier / 2)) .duration(10 * SECONDS) .eut((int) TierEU.RECIPE_LV) - .addTo(sCircuitAssemblerRecipes); + .addTo(circuitAssemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -291,7 +291,7 @@ public class CircuitAssemblerRecipes implements Runnable { .fluidInputs(tMat.getMolten(1152L * tMultiplier / 2)) .duration(10 * SECONDS) .eut((int) TierEU.RECIPE_LV) - .addTo(sCircuitAssemblerRecipes); + .addTo(circuitAssemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -305,7 +305,7 @@ public class CircuitAssemblerRecipes implements Runnable { .fluidInputs(tMat.getMolten(1152L * tMultiplier / 2)) .duration(10 * SECONDS) .eut((int) TierEU.RECIPE_LV) - .addTo(sCircuitAssemblerRecipes); + .addTo(circuitAssemblerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -319,7 +319,7 @@ public class CircuitAssemblerRecipes implements Runnable { .fluidInputs(tMat.getMolten(1152L * tMultiplier / 2)) .duration(10 * SECONDS) .eut((int) TierEU.RECIPE_LV) - .addTo(sCircuitAssemblerRecipes); + .addTo(circuitAssemblerRecipes); } } diff --git a/src/main/java/gregtech/loaders/postload/recipes/CompressorRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/CompressorRecipes.java index 6f7b8f4a04..ef7441c13b 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/CompressorRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/CompressorRecipes.java @@ -3,8 +3,8 @@ package gregtech.loaders.postload.recipes; import static gregtech.api.enums.Mods.AppliedEnergistics2; import static gregtech.api.enums.Mods.GTPlusPlus; import static gregtech.api.enums.Mods.Railcraft; +import static gregtech.api.recipe.RecipeMaps.compressorRecipes; import static gregtech.api.util.GT_ModHandler.getModItem; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCompressorRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import net.minecraft.init.Blocks; @@ -29,98 +29,98 @@ public class CompressorRecipes implements Runnable { .itemOutputs(ItemList.IC2_Plantball.get(1)) .duration(15 * SECONDS) .eut(2) - .addTo(sCompressorRecipes); + .addTo(compressorRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.IC2_Compressed_Coal_Chunk.get(1)) .itemOutputs(ItemList.IC2_Industrial_Diamond.get(1)) .duration(15 * SECONDS) .eut(2) - .addTo(sCompressorRecipes); + .addTo(compressorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Uranium, 1)) .itemOutputs(GT_ModHandler.getIC2Item("Uran238", 1)) .duration(15 * SECONDS) .eut(2) - .addTo(sCompressorRecipes); + .addTo(compressorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Uranium235, 1)) .itemOutputs(GT_ModHandler.getIC2Item("Uran235", 1)) .duration(15 * SECONDS) .eut(2) - .addTo(sCompressorRecipes); + .addTo(compressorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Plutonium, 1)) .itemOutputs(GT_ModHandler.getIC2Item("Plutonium", 1)) .duration(15 * SECONDS) .eut(2) - .addTo(sCompressorRecipes); + .addTo(compressorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Uranium235, 1)) .itemOutputs(GT_ModHandler.getIC2Item("smallUran235", 1)) .duration(15 * SECONDS) .eut(2) - .addTo(sCompressorRecipes); + .addTo(compressorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Plutonium, 1)) .itemOutputs(GT_ModHandler.getIC2Item("smallPlutonium", 1)) .duration(15 * SECONDS) .eut(2) - .addTo(sCompressorRecipes); + .addTo(compressorRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.ice, 2, 32767)) .itemOutputs(new ItemStack(Blocks.packed_ice, 1, 0)) .duration(15 * SECONDS) .eut(2) - .addTo(sCompressorRecipes); + .addTo(compressorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ice, 1)) .itemOutputs(new ItemStack(Blocks.ice, 1, 0)) .duration(15 * SECONDS) .eut(2) - .addTo(sCompressorRecipes); + .addTo(compressorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.CertusQuartz, 4)) .itemOutputs(getModItem(AppliedEnergistics2.ID, "tile.BlockQuartz", 1)) .duration(15 * SECONDS) .eut(2) - .addTo(sCompressorRecipes); + .addTo(compressorRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 8L, 10)) .itemOutputs(getModItem(AppliedEnergistics2.ID, "tile.BlockQuartz", 1)) .duration(15 * SECONDS) .eut(2) - .addTo(sCompressorRecipes); + .addTo(compressorRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 8L, 11)) .itemOutputs(new ItemStack(Blocks.quartz_block, 1, 0)) .duration(15 * SECONDS) .eut(2) - .addTo(sCompressorRecipes); + .addTo(compressorRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 8L, 12)) .itemOutputs(getModItem(AppliedEnergistics2.ID, "tile.BlockFluix", 1)) .duration(15 * SECONDS) .eut(2) - .addTo(sCompressorRecipes); + .addTo(compressorRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.quartz, 4, 0)) .itemOutputs(new ItemStack(Blocks.quartz_block, 1, 0)) .duration(15 * SECONDS) .eut(2) - .addTo(sCompressorRecipes); + .addTo(compressorRecipes); /* * GT_Values.RA.stdBuilder() .itemInputs( new ItemStack(Items.wheat, 9, 0) ) .itemOutputs( new @@ -133,14 +133,14 @@ public class CompressorRecipes implements Runnable { .itemOutputs(new ItemStack(Blocks.glowstone, 1)) .duration(15 * SECONDS) .eut(2) - .addTo(sCompressorRecipes); + .addTo(compressorRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Fireclay.getDust(1)) .itemOutputs(ItemList.CompressedFireclay.get(1)) .duration(4 * SECONDS) .eut(4) - .addTo(sCompressorRecipes); + .addTo(compressorRecipes); if (Railcraft.isModLoaded()) { GT_Values.RA.stdBuilder() @@ -148,7 +148,7 @@ public class CompressorRecipes implements Runnable { .itemOutputs(EnumCube.COKE_BLOCK.getItem()) .duration(15 * SECONDS) .eut(2) - .addTo(sCompressorRecipes); + .addTo(compressorRecipes); } } } diff --git a/src/main/java/gregtech/loaders/postload/recipes/CropProcessingRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/CropProcessingRecipes.java index cdf8a52e93..e69af249ee 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/CropProcessingRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/CropProcessingRecipes.java @@ -1,7 +1,7 @@ package gregtech.loaders.postload.recipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sAutoclaveRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sExtractorRecipes; +import static gregtech.api.recipe.RecipeMaps.autoclaveRecipes; +import static gregtech.api.recipe.RecipeMaps.extractorRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; import static gregtech.api.util.GT_RecipeConstants.UniversalChemical; @@ -152,7 +152,7 @@ public class CropProcessingRecipes implements Runnable { .fluidInputs(Materials.UUMatter.getFluid(Math.max(1, ((aMaterial.getMass() + 9) / 10)))) .duration((int) (aMaterial.getMass() * 128)) .eut(384) - .addTo(sAutoclaveRecipes); + .addTo(autoclaveRecipes); } else { if (aMainOutput) { @@ -161,7 +161,7 @@ public class CropProcessingRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1)) .duration(15 * SECONDS) .eut(2) - .addTo(sExtractorRecipes); + .addTo(extractorRecipes); } } } diff --git a/src/main/java/gregtech/loaders/postload/recipes/CuttingRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/CuttingRecipes.java index e97bcce2af..dd81fd2d66 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/CuttingRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/CuttingRecipes.java @@ -3,8 +3,8 @@ package gregtech.loaders.postload.recipes; import static gregtech.api.enums.Mods.BuildCraftTransport; import static gregtech.api.enums.Mods.Forestry; import static gregtech.api.enums.Mods.TinkerConstruct; +import static gregtech.api.recipe.RecipeMaps.cutterRecipes; import static gregtech.api.util.GT_ModHandler.getModItem; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCutterRecipes; import static gregtech.api.util.GT_RecipeBuilder.MINUTES; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; @@ -235,7 +235,7 @@ public class CuttingRecipes implements Runnable { .duration(2 * duration) .eut(eut) .requiresCleanRoom() - .addTo(sCutterRecipes); + .addTo(cutterRecipes); GT_Values.RA.stdBuilder() .itemInputs(inputs) @@ -244,7 +244,7 @@ public class CuttingRecipes implements Runnable { .duration(2 * duration) .eut(eut) .requiresCleanRoom() - .addTo(sCutterRecipes); + .addTo(cutterRecipes); GT_Values.RA.stdBuilder() .itemInputs(inputs) @@ -253,7 +253,7 @@ public class CuttingRecipes implements Runnable { .duration(duration) .eut(eut) .requiresCleanRoom() - .addTo(sCutterRecipes); + .addTo(cutterRecipes); } else { GT_Values.RA.stdBuilder() .itemInputs(inputs) @@ -261,7 +261,7 @@ public class CuttingRecipes implements Runnable { .fluidInputs(Materials.Water.getFluid(Math.max(4, Math.min(1000, duration * eut / 320)))) .duration(2 * duration) .eut(eut) - .addTo(sCutterRecipes); + .addTo(cutterRecipes); GT_Values.RA.stdBuilder() .itemInputs(inputs) @@ -269,7 +269,7 @@ public class CuttingRecipes implements Runnable { .fluidInputs(GT_ModHandler.getDistilledWater(Math.max(3, Math.min(750, duration * eut / 426)))) .duration(2 * duration) .eut(eut) - .addTo(sCutterRecipes); + .addTo(cutterRecipes); GT_Values.RA.stdBuilder() .itemInputs(inputs) @@ -277,7 +277,7 @@ public class CuttingRecipes implements Runnable { .fluidInputs(Materials.Lubricant.getFluid(Math.max(1, Math.min(250, duration * eut / 1280)))) .duration(duration) .eut(eut) - .addTo(sCutterRecipes); + .addTo(cutterRecipes); } } } diff --git a/src/main/java/gregtech/loaders/postload/recipes/DistilleryRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/DistilleryRecipes.java index 30a938b6b9..6008eea927 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/DistilleryRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/DistilleryRecipes.java @@ -1,8 +1,8 @@ package gregtech.loaders.postload.recipes; import static gregtech.api.enums.Mods.TinkerConstruct; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sDistillationRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sDistilleryRecipes; +import static gregtech.api.recipe.RecipeMaps.distillationTowerRecipes; +import static gregtech.api.recipe.RecipeMaps.distilleryRecipes; import static gregtech.api.util.GT_RecipeBuilder.MINUTES; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; @@ -39,7 +39,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(Materials.Lubricant.getFluid(32L)) .duration(12 * SECONDS) .eut(30) - .addTo(sDistilleryRecipes); + .addTo(distilleryRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(24)) @@ -47,7 +47,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(Materials.Lubricant.getFluid(8L)) .duration(4 * SECONDS) .eut(30) - .addTo(sDistilleryRecipes); + .addTo(distilleryRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(24)) @@ -55,7 +55,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(Materials.Lubricant.getFluid(8L)) .duration(4 * SECONDS) .eut(30) - .addTo(sDistilleryRecipes); + .addTo(distilleryRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(24)) @@ -63,7 +63,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(Materials.Lubricant.getFluid(60L)) .duration(8 * SECONDS) .eut(30) - .addTo(sDistilleryRecipes); + .addTo(distilleryRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(24)) @@ -71,7 +71,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(Materials.Lubricant.getFluid(30L)) .duration(8 * SECONDS) .eut(30) - .addTo(sDistilleryRecipes); + .addTo(distilleryRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(24)) @@ -79,7 +79,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(Materials.Lubricant.getFluid(60L)) .duration(8 * SECONDS) .eut(30) - .addTo(sDistilleryRecipes); + .addTo(distilleryRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(24)) @@ -87,7 +87,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(Materials.Lubricant.getFluid(90L)) .duration(8 * SECONDS) .eut(30) - .addTo(sDistilleryRecipes); + .addTo(distilleryRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(1)) @@ -95,7 +95,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(Materials.Ethanol.getFluid(12L)) .duration(16 * TICKS) .eut(24) - .addTo(sDistilleryRecipes); + .addTo(distilleryRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(5)) @@ -103,7 +103,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(Materials.Water.getFluid(12L)) .duration(16 * TICKS) .eut(24) - .addTo(sDistilleryRecipes); + .addTo(distilleryRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(5)) @@ -111,7 +111,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(GT_ModHandler.getDistilledWater(5L)) .duration(16 * TICKS) .eut(10) - .addTo(sDistilleryRecipes); + .addTo(distilleryRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(1)) @@ -119,7 +119,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(getFluidStack("potion.vodka", 1)) .duration(16 * TICKS) .eut(16) - .addTo(sDistilleryRecipes); + .addTo(distilleryRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(1)) @@ -127,7 +127,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(getFluidStack("potion.alcopops", 1)) .duration(16 * TICKS) .eut(16) - .addTo(sDistilleryRecipes); + .addTo(distilleryRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(4)) @@ -135,7 +135,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(Materials.Oil.getFluid(100L)) .duration(16 * TICKS) .eut(24) - .addTo(sDistilleryRecipes); + .addTo(distilleryRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(4)) @@ -143,7 +143,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(Materials.Oil.getFluid(100L)) .duration(16 * TICKS) .eut(24) - .addTo(sDistilleryRecipes); + .addTo(distilleryRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(4)) @@ -151,7 +151,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(Materials.Oil.getFluid(100L)) .duration(16 * TICKS) .eut(24) - .addTo(sDistilleryRecipes); + .addTo(distilleryRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(1)) @@ -160,7 +160,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(Materials.Water.getFluid(500)) .duration(5 * SECONDS) .eut(16) - .addTo(sDistilleryRecipes); + .addTo(distilleryRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(6)) @@ -168,7 +168,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(MaterialsKevlar.IIIDimethylbenzene.getFluid(30)) .duration(16 * TICKS) .eut(64) - .addTo(sDistilleryRecipes); + .addTo(distilleryRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(6)) @@ -176,7 +176,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(MaterialsKevlar.IIIDimethylbenzene.getFluid(20)) .duration(5 * SECONDS) .eut(64) - .addTo(sDistilleryRecipes); + .addTo(distilleryRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(7)) @@ -184,7 +184,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(MaterialsKevlar.IVDimethylbenzene.getFluid(30)) .duration(16 * TICKS) .eut(64) - .addTo(sDistilleryRecipes); + .addTo(distilleryRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(7)) @@ -192,7 +192,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(MaterialsKevlar.IVDimethylbenzene.getFluid(20)) .duration(5 * SECONDS) .eut(64) - .addTo(sDistilleryRecipes); + .addTo(distilleryRecipes); // (NaCl·H2O) = NaCl + H2O GT_Values.RA.stdBuilder() @@ -202,7 +202,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(GT_ModHandler.getDistilledWater(1000)) .duration(1 * MINUTES + 20 * SECONDS) .eut(30) - .addTo(sDistilleryRecipes); + .addTo(distilleryRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(1)) @@ -211,7 +211,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(Materials.AceticAcid.getFluid(25)) .duration(1 * MINUTES + 15 * SECONDS) .eut(8) - .addTo(sDistilleryRecipes); + .addTo(distilleryRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(2)) @@ -220,7 +220,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(Materials.Water.getFluid(375)) .duration(1 * MINUTES + 15 * SECONDS) .eut(8) - .addTo(sDistilleryRecipes); + .addTo(distilleryRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(3)) @@ -229,7 +229,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(Materials.Ethanol.getFluid(150)) .duration(1 * MINUTES + 15 * SECONDS) .eut(8) - .addTo(sDistilleryRecipes); + .addTo(distilleryRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(4)) @@ -238,7 +238,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(Materials.Methanol.getFluid(150)) .duration(1 * MINUTES + 15 * SECONDS) .eut(8) - .addTo(sDistilleryRecipes); + .addTo(distilleryRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(5)) @@ -247,7 +247,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(Materials.Ammonia.getGas(100)) .duration(1 * MINUTES + 15 * SECONDS) .eut(8) - .addTo(sDistilleryRecipes); + .addTo(distilleryRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(6)) @@ -256,7 +256,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(Materials.CarbonDioxide.getGas(400)) .duration(1 * MINUTES + 15 * SECONDS) .eut(8) - .addTo(sDistilleryRecipes); + .addTo(distilleryRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(7)) @@ -265,7 +265,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(Materials.Methane.getGas(600)) .duration(1 * MINUTES + 15 * SECONDS) .eut(8) - .addTo(sDistilleryRecipes); + .addTo(distilleryRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(17)) @@ -274,7 +274,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(new FluidStack(FluidRegistry.getFluid("ic2biogas"), 1800)) .duration(1 * MINUTES + 20 * SECONDS) .eut(8) - .addTo(sDistilleryRecipes); + .addTo(distilleryRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(1)) @@ -282,7 +282,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(new FluidStack(FluidRegistry.getFluid("ic2biogas"), 3000)) .duration(8 * SECONDS) .eut(8) - .addTo(sDistilleryRecipes); + .addTo(distilleryRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(2)) @@ -290,7 +290,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(Materials.Benzene.getFluid(40)) .duration(8 * SECONDS) .eut(24) - .addTo(sDistilleryRecipes); + .addTo(distilleryRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(3)) @@ -298,7 +298,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(Materials.Phenol.getFluid(25)) .duration(8 * SECONDS) .eut(24) - .addTo(sDistilleryRecipes); + .addTo(distilleryRecipes); // Dimethylbenzene GT_Values.RA.stdBuilder() @@ -307,7 +307,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(Materials.Dimethylbenzene.getFluid(30)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sDistilleryRecipes); + .addTo(distilleryRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(5)) @@ -315,7 +315,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(Materials.Dimethylbenzene.getFluid(20)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sDistilleryRecipes); + .addTo(distilleryRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(1)) @@ -323,7 +323,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(Materials.OilHeavy.getFluid(15)) .duration(16 * TICKS) .eut(24) - .addTo(sDistilleryRecipes); + .addTo(distilleryRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(1)) @@ -331,7 +331,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(new FluidStack(ItemList.sToluene, 4)) .duration(16 * TICKS) .eut(24) - .addTo(sDistilleryRecipes); + .addTo(distilleryRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(1)) @@ -339,7 +339,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(Materials.LightFuel.getFluid(30L)) .duration(16 * TICKS) .eut(24) - .addTo(sDistilleryRecipes); + .addTo(distilleryRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(1)) @@ -347,7 +347,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(new FluidStack(FluidRegistry.getFluid("ic2biogas"), 32)) .duration(2 * SECONDS) .eut(16) - .addTo(sDistilleryRecipes); + .addTo(distilleryRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(2)) @@ -355,7 +355,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(Materials.Water.getFluid(2)) .duration(4 * SECONDS) .eut(30) - .addTo(sDistilleryRecipes); + .addTo(distilleryRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(1)) @@ -363,7 +363,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(getFluidStack("potion.scotch", 1)) .duration(1 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sDistilleryRecipes); + .addTo(distilleryRecipes); if (TinkerConstruct.isModLoaded()) { @@ -373,7 +373,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(getFluidStack("glue", 8)) .duration(1 * TICKS) .eut(24) - .addTo(sDistilleryRecipes); + .addTo(distilleryRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(1)) @@ -381,7 +381,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(Materials.Glue.getFluid(4L)) .duration(1 * TICKS) .eut(24) - .addTo(sDistilleryRecipes); + .addTo(distilleryRecipes); } } @@ -393,7 +393,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(Materials.Lubricant.getFluid(500L)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sDistillationRecipes); + .addTo(distillationTowerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(2)) @@ -401,7 +401,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(Materials.Lubricant.getFluid(500L)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sDistillationRecipes); + .addTo(distillationTowerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(2)) @@ -409,7 +409,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(Materials.Lubricant.getFluid(500L)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sDistillationRecipes); + .addTo(distillationTowerRecipes); GT_Values.RA.stdBuilder() .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Wood, 2L)) @@ -417,14 +417,14 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(Materials.Ethanol.getFluid(600L), Materials.Water.getFluid(300L)) .duration(1 * SECONDS + 12 * TICKS) .eut(400) - .addTo(sDistillationRecipes); + .addTo(distillationTowerRecipes); GT_Values.RA.stdBuilder() .fluidInputs(Materials.Water.getFluid(1000L)) .fluidOutputs(GT_ModHandler.getDistilledWater(1000L)) .duration(1 * SECONDS + 12 * TICKS) .eut(TierEU.RECIPE_MV) - .addTo(sDistillationRecipes); + .addTo(distillationTowerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(2)) @@ -432,7 +432,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(Materials.Lubricant.getFluid(250L)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sDistillationRecipes); + .addTo(distillationTowerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(2)) @@ -440,7 +440,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(Materials.Lubricant.getFluid(500L)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sDistillationRecipes); + .addTo(distillationTowerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(2)) @@ -448,7 +448,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(Materials.Lubricant.getFluid(750L)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sDistillationRecipes); + .addTo(distillationTowerRecipes); // C15H10N2O2(5HCl) = C15H10N2O2 + 5HCl GT_Values.RA.stdBuilder() @@ -457,7 +457,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(Materials.HydrochloricAcid.getFluid(5000L)) .duration(2 * MINUTES + 5 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sDistillationRecipes); + .addTo(distillationTowerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(2)) @@ -470,7 +470,7 @@ public class DistilleryRecipes implements Runnable { MaterialsKevlar.IIIDimethylbenzene.getFluid(100)) .duration(2 * SECONDS) .eut(256) - .addTo(sDistillationRecipes); + .addTo(distillationTowerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(2)) @@ -483,7 +483,7 @@ public class DistilleryRecipes implements Runnable { MaterialsKevlar.IIIDimethylbenzene.getFluid(150)) .duration(2 * SECONDS) .eut(256) - .addTo(sDistillationRecipes); + .addTo(distillationTowerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(3)) @@ -496,7 +496,7 @@ public class DistilleryRecipes implements Runnable { MaterialsKevlar.IVDimethylbenzene.getFluid(100)) .duration(2 * SECONDS) .eut(256) - .addTo(sDistillationRecipes); + .addTo(distillationTowerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(4)) @@ -511,7 +511,7 @@ public class DistilleryRecipes implements Runnable { MaterialsKevlar.IVDimethylbenzene.getFluid(20)) .duration(2 * SECONDS) .eut(256) - .addTo(sDistillationRecipes); + .addTo(distillationTowerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(4)) @@ -526,7 +526,7 @@ public class DistilleryRecipes implements Runnable { MaterialsKevlar.IVDimethylbenzene.getFluid(30)) .duration(2 * SECONDS) .eut(256) - .addTo(sDistillationRecipes); + .addTo(distillationTowerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(9)) @@ -539,7 +539,7 @@ public class DistilleryRecipes implements Runnable { Materials.SulfuricGas.getGas(2400)) .duration(1 * SECONDS + 12 * TICKS) .eut(TierEU.RECIPE_HV) - .addTo(sDistillationRecipes); + .addTo(distillationTowerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(9)) @@ -552,7 +552,7 @@ public class DistilleryRecipes implements Runnable { Materials.SulfuricGas.getGas(600)) .duration(1 * SECONDS + 12 * TICKS) .eut(TierEU.RECIPE_HV) - .addTo(sDistillationRecipes); + .addTo(distillationTowerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(9)) @@ -565,7 +565,7 @@ public class DistilleryRecipes implements Runnable { Materials.SulfuricGas.getGas(600)) .duration(1 * SECONDS + 12 * TICKS) .eut(TierEU.RECIPE_HV) - .addTo(sDistillationRecipes); + .addTo(distillationTowerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(9)) @@ -578,7 +578,7 @@ public class DistilleryRecipes implements Runnable { Materials.SulfuricGas.getGas(600)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sDistillationRecipes); + .addTo(distillationTowerRecipes); // 9C5H12O = 4C6H14O + 5CH4O + 4C4H8 GT_Values.RA.stdBuilder() @@ -589,7 +589,7 @@ public class DistilleryRecipes implements Runnable { Materials.Butene.getGas(400L)) .duration(2 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sDistillationRecipes); + .addTo(distillationTowerRecipes); GT_Values.RA.stdBuilder() .itemOutputs(ItemList.IC2_Fertilizer.get(1)) @@ -604,7 +604,7 @@ public class DistilleryRecipes implements Runnable { Materials.Methane.getGas(600)) .duration(3 * SECONDS + 15 * TICKS) .eut(TierEU.RECIPE_MV) - .addTo(sDistillationRecipes); + .addTo(distillationTowerRecipes); GT_Values.RA.stdBuilder() .itemOutputs(ItemList.IC2_Fertilizer.get(1)) @@ -612,13 +612,13 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(new FluidStack(FluidRegistry.getFluid("ic2biogas"), 8000), Materials.Water.getFluid(125L)) .duration(12 * SECONDS + 10 * TICKS) .eut(TierEU.RECIPE_HV) - .addTo(sDistillationRecipes); + .addTo(distillationTowerRecipes); GT_Values.RA.stdBuilder() .fluidInputs(new FluidStack(ItemList.sOilExtraHeavy, 1000)) .fluidOutputs(Materials.OilHeavy.getFluid(1500)) .duration(16 * TICKS) .eut(2400) - .addTo(sDistillationRecipes); + .addTo(distillationTowerRecipes); } public void universalDistillationTowerRecipes() { @@ -1239,7 +1239,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(aOutputs[i]) .duration(2 * aDuration) .eut(aEUt / 4) - .addTo(sDistilleryRecipes); + .addTo(distilleryRecipes); } GT_RecipeBuilder buildDT = GT_Values.RA.stdBuilder() .itemInputs(aCircuit); @@ -1250,7 +1250,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(aOutputs) .duration(aDuration) .eut(aEUt) - .addTo(sDistillationRecipes); + .addTo(distillationTowerRecipes); } public void addUniversalDistillationRecipe(FluidStack aInput, FluidStack[] aOutputs, ItemStack aOutput2, @@ -1265,7 +1265,7 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(aOutputs[i]) .duration(2 * aDuration) .eut(aEUt / 4) - .addTo(sDistilleryRecipes); + .addTo(distilleryRecipes); } GT_RecipeBuilder buildDT = GT_Values.RA.stdBuilder(); if (aOutput2 != GT_Values.NI) { @@ -1275,6 +1275,6 @@ public class DistilleryRecipes implements Runnable { .fluidOutputs(aOutputs) .duration(aDuration) .eut(aEUt) - .addTo(sDistillationRecipes); + .addTo(distillationTowerRecipes); } } diff --git a/src/main/java/gregtech/loaders/postload/recipes/ElectrolyzerRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/ElectrolyzerRecipes.java index d2ac35c08e..efcfa7e3dc 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/ElectrolyzerRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/ElectrolyzerRecipes.java @@ -1,6 +1,6 @@ package gregtech.loaders.postload.recipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sElectrolyzerRecipes; +import static gregtech.api.recipe.RecipeMaps.electrolyzerRecipes; import static gregtech.api.util.GT_RecipeBuilder.MINUTES; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; @@ -31,7 +31,7 @@ public class ElectrolyzerRecipes implements Runnable { .fluidOutputs(Materials.Hydrogen.getGas(2000L)) .duration(1 * MINUTES + 40 * SECONDS) .eut(30) - .addTo(sElectrolyzerRecipes); + .addTo(electrolyzerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(2), ItemList.Cell_Empty.get(1L)) @@ -40,7 +40,7 @@ public class ElectrolyzerRecipes implements Runnable { .fluidOutputs(Materials.Hydrogen.getGas(2000L)) .duration(1 * MINUTES + 40 * SECONDS) .eut(30) - .addTo(sElectrolyzerRecipes); + .addTo(electrolyzerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(3), ItemList.Cell_Empty.get(2L)) @@ -49,7 +49,7 @@ public class ElectrolyzerRecipes implements Runnable { .fluidOutputs(Materials.Oxygen.getGas(1000L)) .duration(1 * MINUTES + 40 * SECONDS) .eut(30) - .addTo(sElectrolyzerRecipes); + .addTo(electrolyzerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(4), ItemList.Cell_Empty.get(2L)) @@ -58,7 +58,7 @@ public class ElectrolyzerRecipes implements Runnable { .fluidOutputs(Materials.Oxygen.getGas(1000L)) .duration(1 * MINUTES + 40 * SECONDS) .eut(30) - .addTo(sElectrolyzerRecipes); + .addTo(electrolyzerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_ModHandler.getIC2Item("electrolyzedWaterCell", 1L), ItemList.Cell_Empty.get(2L)) @@ -67,7 +67,7 @@ public class ElectrolyzerRecipes implements Runnable { GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Oxygen, 1L)) .duration(1 * SECONDS + 10 * TICKS) .eut(30) - .addTo(sElectrolyzerRecipes); + .addTo(electrolyzerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_ModHandler.getIC2Item("electrolyzedWaterCell", 1L), GT_Utility.getIntegratedCircuit(1)) @@ -75,42 +75,42 @@ public class ElectrolyzerRecipes implements Runnable { .fluidOutputs(Materials.Hydrogen.getGas(2000L)) .duration(1 * SECONDS + 10 * TICKS) .eut(30) - .addTo(sElectrolyzerRecipes); + .addTo(electrolyzerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Water, 1L)) .itemOutputs(GT_ModHandler.getIC2Item("electrolyzedWaterCell", 1L)) .duration(1 * MINUTES + 13 * SECONDS + 10 * TICKS) .eut(30) - .addTo(sElectrolyzerRecipes); + .addTo(electrolyzerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Dye_Bonemeal.get(3L)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcium, 1L)) .duration(4 * SECONDS + 18 * TICKS) .eut(26) - .addTo(sElectrolyzerRecipes); + .addTo(electrolyzerRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.sand, 8, 0)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SiliconDioxide, 3L)) .duration(25 * SECONDS) .eut(25) - .addTo(sElectrolyzerRecipes); + .addTo(electrolyzerRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.sand, 8, 1)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SiliconDioxide, 3L)) .duration(25 * SECONDS) .eut(25) - .addTo(sElectrolyzerRecipes); + .addTo(electrolyzerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Graphite, 1)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Carbon, 4)) .duration(5 * SECONDS) .eut(64) - .addTo(sElectrolyzerRecipes); + .addTo(electrolyzerRecipes); // ZnS = Zn + S + 1 Ga(9.17%) GT_Values.RA.stdBuilder() @@ -122,7 +122,7 @@ public class ElectrolyzerRecipes implements Runnable { .outputChances(10000, 10000, 917) .duration(10 * SECONDS) .eut(30) - .addTo(sElectrolyzerRecipes); + .addTo(electrolyzerRecipes); // IC2 Fertilizer = H2O + CaCO3 + C GT_Values.RA.stdBuilder() @@ -133,7 +133,7 @@ public class ElectrolyzerRecipes implements Runnable { .fluidOutputs(Materials.Water.getFluid(1000L)) .duration(5 * SECONDS) .eut(30) - .addTo(sElectrolyzerRecipes); + .addTo(electrolyzerRecipes); // NaOH = Na + O + H GT_Values.RA.stdBuilder() @@ -143,7 +143,7 @@ public class ElectrolyzerRecipes implements Runnable { .fluidOutputs(Materials.Oxygen.getGas(1000)) .duration(50 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sElectrolyzerRecipes); + .addTo(electrolyzerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(1)) @@ -152,7 +152,7 @@ public class ElectrolyzerRecipes implements Runnable { .fluidOutputs(Materials.Oxygen.getGas(2000)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sElectrolyzerRecipes); + .addTo(electrolyzerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(11), Materials.Empty.getCells(2)) @@ -160,7 +160,7 @@ public class ElectrolyzerRecipes implements Runnable { .fluidInputs(Materials.CarbonDioxide.getGas(1000)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sElectrolyzerRecipes); + .addTo(electrolyzerRecipes); // SO2 = S + 2O GT_Values.RA.stdBuilder() @@ -170,7 +170,7 @@ public class ElectrolyzerRecipes implements Runnable { .fluidOutputs(Materials.Oxygen.getGas(2000)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sElectrolyzerRecipes); + .addTo(electrolyzerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(11), Materials.Empty.getCells(2)) @@ -178,7 +178,7 @@ public class ElectrolyzerRecipes implements Runnable { .fluidInputs(Materials.SulfurDioxide.getGas(1000)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sElectrolyzerRecipes); + .addTo(electrolyzerRecipes); // NaCl = Na +Cl GT_Values.RA.stdBuilder() @@ -187,7 +187,7 @@ public class ElectrolyzerRecipes implements Runnable { .fluidOutputs(Materials.Chlorine.getGas(1000)) .duration(16 * SECONDS) .eut(30) - .addTo(sElectrolyzerRecipes); + .addTo(electrolyzerRecipes); // (NaCl·H2O)= NaOH + H GT_Values.RA.stdBuilder() @@ -197,7 +197,7 @@ public class ElectrolyzerRecipes implements Runnable { .fluidOutputs(Materials.Chlorine.getGas(1000)) .duration(36 * SECONDS) .eut(30) - .addTo(sElectrolyzerRecipes); + .addTo(electrolyzerRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Empty.getCells(1), GT_Utility.getIntegratedCircuit(11)) @@ -206,7 +206,7 @@ public class ElectrolyzerRecipes implements Runnable { .fluidOutputs(Materials.Hydrogen.getGas(1000)) .duration(36 * SECONDS) .eut(30) - .addTo(sElectrolyzerRecipes); + .addTo(electrolyzerRecipes); // HCl = H + Cl GT_Values.RA.stdBuilder() @@ -216,7 +216,7 @@ public class ElectrolyzerRecipes implements Runnable { .fluidOutputs(Materials.Chlorine.getGas(1000)) .duration(36 * SECONDS) .eut(30) - .addTo(sElectrolyzerRecipes); + .addTo(electrolyzerRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Empty.getCells(1), GT_Utility.getIntegratedCircuit(11)) @@ -225,7 +225,7 @@ public class ElectrolyzerRecipes implements Runnable { .fluidOutputs(Materials.Hydrogen.getGas(1000)) .duration(36 * SECONDS) .eut(30) - .addTo(sElectrolyzerRecipes); + .addTo(electrolyzerRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.HydrochloricAcid.getCells(1), GT_Utility.getIntegratedCircuit(1)) @@ -233,7 +233,7 @@ public class ElectrolyzerRecipes implements Runnable { .fluidOutputs(Materials.Chlorine.getGas(1000)) .duration(36 * SECONDS) .eut(30) - .addTo(sElectrolyzerRecipes); + .addTo(electrolyzerRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.HydrochloricAcid.getCells(1), GT_Utility.getIntegratedCircuit(11)) @@ -241,7 +241,7 @@ public class ElectrolyzerRecipes implements Runnable { .fluidOutputs(Materials.Hydrogen.getGas(1000)) .duration(36 * SECONDS) .eut(30) - .addTo(sElectrolyzerRecipes); + .addTo(electrolyzerRecipes); // 2NaHSO4 = 2H + Na2S2O8 GT_Values.RA.stdBuilder() @@ -250,7 +250,7 @@ public class ElectrolyzerRecipes implements Runnable { .fluidOutputs(Materials.SodiumPersulfate.getFluid(1000)) .duration(30 * SECONDS) .eut(30) - .addTo(sElectrolyzerRecipes); + .addTo(electrolyzerRecipes); GT_Values.RA.stdBuilder() .itemOutputs( @@ -262,7 +262,7 @@ public class ElectrolyzerRecipes implements Runnable { .fluidOutputs(Materials.Water.getFluid(2000)) .duration(15 * SECONDS) .eut(192) - .addTo(sElectrolyzerRecipes); + .addTo(electrolyzerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Cell_Empty.get(1)) @@ -273,7 +273,7 @@ public class ElectrolyzerRecipes implements Runnable { .fluidOutputs(Materials.SulfuricAcid.getFluid(1000)) .duration(45 * SECONDS) .eut(30) - .addTo(sElectrolyzerRecipes); + .addTo(electrolyzerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Cell_Empty.get(1)) @@ -284,7 +284,7 @@ public class ElectrolyzerRecipes implements Runnable { .fluidOutputs(Materials.SulfuricAcid.getFluid(1000)) .duration(45 * SECONDS) .eut(30) - .addTo(sElectrolyzerRecipes); + .addTo(electrolyzerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Cell_Empty.get(1)) @@ -295,7 +295,7 @@ public class ElectrolyzerRecipes implements Runnable { .fluidOutputs(Materials.SulfuricAcid.getFluid(1000)) .duration(45 * SECONDS) .eut(30) - .addTo(sElectrolyzerRecipes); + .addTo(electrolyzerRecipes); } } diff --git a/src/main/java/gregtech/loaders/postload/recipes/ElectromagneticSeparatorRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/ElectromagneticSeparatorRecipes.java index 2fd92c6a07..d9031ac64f 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/ElectromagneticSeparatorRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/ElectromagneticSeparatorRecipes.java @@ -1,6 +1,6 @@ package gregtech.loaders.postload.recipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sElectroMagneticSeparatorRecipes; +import static gregtech.api.recipe.RecipeMaps.electroMagneticSeparatorRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import gregtech.api.enums.GT_Values; @@ -18,7 +18,7 @@ public class ElectromagneticSeparatorRecipes implements Runnable { .outputChances(4000, 2000, 2000) .duration(10 * SECONDS) .eut(TierEU.RECIPE_HV / 2) - .addTo(sElectroMagneticSeparatorRecipes); + .addTo(electroMagneticSeparatorRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.TengamRaw.getDust(1)) @@ -29,6 +29,6 @@ public class ElectromagneticSeparatorRecipes implements Runnable { .outputChances(10000, 1000, 1000) .duration(10 * SECONDS) .eut(TierEU.RECIPE_UHV) - .addTo(sElectroMagneticSeparatorRecipes); + .addTo(electroMagneticSeparatorRecipes); } } diff --git a/src/main/java/gregtech/loaders/postload/recipes/ExtractorRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/ExtractorRecipes.java index 3cd8f19315..e26c4fef97 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/ExtractorRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/ExtractorRecipes.java @@ -1,7 +1,7 @@ package gregtech.loaders.postload.recipes; +import static gregtech.api.recipe.RecipeMaps.extractorRecipes; import static gregtech.api.util.GT_ModHandler.getIC2Item; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sExtractorRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.WILDCARD; @@ -43,6 +43,6 @@ public class ExtractorRecipes implements Runnable { .itemOutputs(output) .duration(15 * SECONDS) .eut(2) - .addTo(sExtractorRecipes); + .addTo(extractorRecipes); } } diff --git a/src/main/java/gregtech/loaders/postload/recipes/ExtruderRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/ExtruderRecipes.java index f916981c33..e52ad3d4fb 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/ExtruderRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/ExtruderRecipes.java @@ -1,6 +1,6 @@ package gregtech.loaders.postload.recipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sExtruderRecipes; +import static gregtech.api.recipe.RecipeMaps.extruderRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; @@ -17,13 +17,13 @@ public class ExtruderRecipes implements Runnable { .itemOutputs(ItemList.FR_WaxCapsule.get(1L)) .duration(3 * SECONDS + 4 * TICKS) .eut(16) - .addTo(sExtruderRecipes); + .addTo(extruderRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.FR_RefractoryWax.get(1L), ItemList.Shape_Extruder_Cell.get(0L)) .itemOutputs(ItemList.FR_RefractoryCapsule.get(1L)) .duration(6 * SECONDS + 8 * TICKS) .eut(16) - .addTo(sExtruderRecipes); + .addTo(extruderRecipes); } } diff --git a/src/main/java/gregtech/loaders/postload/recipes/FermenterRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/FermenterRecipes.java index d73dcd891a..c0954fda18 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/FermenterRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/FermenterRecipes.java @@ -1,6 +1,6 @@ package gregtech.loaders.postload.recipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sFermentingRecipes; +import static gregtech.api.recipe.RecipeMaps.fermentingRecipes; import static gregtech.api.util.GT_RecipeBuilder.MINUTES; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; @@ -22,273 +22,273 @@ public class FermenterRecipes implements Runnable { .fluidOutputs(Materials.FermentedBiomass.getFluid(100)) .duration(7 * SECONDS + 10 * TICKS) .eut(2) - .addTo(sFermentingRecipes); + .addTo(fermentingRecipes); GT_Values.RA.stdBuilder() .fluidInputs(new FluidStack(FluidRegistry.getFluid("ic2biomass"), 100)) .fluidOutputs(Materials.FermentedBiomass.getFluid(100)) .duration(7 * SECONDS + 10 * TICKS) .eut(2) - .addTo(sFermentingRecipes); + .addTo(fermentingRecipes); GT_Values.RA.stdBuilder() .fluidInputs(getFluidStack("milk", 50)) .fluidOutputs(getFluidStack("potion.mundane", 25)) .duration(51 * SECONDS + 4 * TICKS) .eut(2) - .addTo(sFermentingRecipes); + .addTo(fermentingRecipes); GT_Values.RA.stdBuilder() .fluidInputs(getFluidStack("potion.lemonjuice", 50)) .fluidOutputs(getFluidStack("potion.limoncello", 25)) .duration(51 * SECONDS + 4 * TICKS) .eut(2) - .addTo(sFermentingRecipes); + .addTo(fermentingRecipes); GT_Values.RA.stdBuilder() .fluidInputs(getFluidStack("potion.applejuice", 50)) .fluidOutputs(getFluidStack("potion.cider", 25)) .duration(51 * SECONDS + 4 * TICKS) .eut(2) - .addTo(sFermentingRecipes); + .addTo(fermentingRecipes); GT_Values.RA.stdBuilder() .fluidInputs(getFluidStack("potion.goldenapplejuice", 50)) .fluidOutputs(getFluidStack("potion.goldencider", 25)) .duration(51 * SECONDS + 4 * TICKS) .eut(2) - .addTo(sFermentingRecipes); + .addTo(fermentingRecipes); GT_Values.RA.stdBuilder() .fluidInputs(getFluidStack("potion.idunsapplejuice", 50)) .fluidOutputs(getFluidStack("potion.notchesbrew", 25)) .duration(51 * SECONDS + 4 * TICKS) .eut(2) - .addTo(sFermentingRecipes); + .addTo(fermentingRecipes); GT_Values.RA.stdBuilder() .fluidInputs(getFluidStack("potion.reedwater", 50)) .fluidOutputs(getFluidStack("potion.rum", 25)) .duration(51 * SECONDS + 4 * TICKS) .eut(2) - .addTo(sFermentingRecipes); + .addTo(fermentingRecipes); GT_Values.RA.stdBuilder() .fluidInputs(getFluidStack("potion.rum", 50)) .fluidOutputs(getFluidStack("potion.piratebrew", 10)) .duration(1 * MINUTES + 42 * SECONDS + 8 * TICKS) .eut(2) - .addTo(sFermentingRecipes); + .addTo(fermentingRecipes); GT_Values.RA.stdBuilder() .fluidInputs(getFluidStack("potion.grapejuice", 50)) .fluidOutputs(getFluidStack("potion.wine", 25)) .duration(51 * SECONDS + 4 * TICKS) .eut(2) - .addTo(sFermentingRecipes); + .addTo(fermentingRecipes); GT_Values.RA.stdBuilder() .fluidInputs(getFluidStack("potion.wine", 50)) .fluidOutputs(getFluidStack("potion.vinegar", 10)) .duration(1 * MINUTES + 42 * SECONDS + 8 * TICKS) .eut(2) - .addTo(sFermentingRecipes); + .addTo(fermentingRecipes); GT_Values.RA.stdBuilder() .fluidInputs(getFluidStack("potion.scotch", 50)) .fluidOutputs(getFluidStack("potion.glenmckenner", 10)) .duration(1 * MINUTES + 42 * SECONDS + 8 * TICKS) .eut(2) - .addTo(sFermentingRecipes); + .addTo(fermentingRecipes); GT_Values.RA.stdBuilder() .fluidInputs(getFluidStack("potion.wheatyhopsjuice", 50)) .fluidOutputs(getFluidStack("potion.beer", 25)) .duration(51 * SECONDS + 4 * TICKS) .eut(2) - .addTo(sFermentingRecipes); + .addTo(fermentingRecipes); GT_Values.RA.stdBuilder() .fluidInputs(getFluidStack("potion.hopsjuice", 50)) .fluidOutputs(getFluidStack("potion.darkbeer", 25)) .duration(51 * SECONDS + 4 * TICKS) .eut(2) - .addTo(sFermentingRecipes); + .addTo(fermentingRecipes); GT_Values.RA.stdBuilder() .fluidInputs(getFluidStack("potion.darkbeer", 50)) .fluidOutputs(getFluidStack("potion.dragonblood", 10)) .duration(1 * MINUTES + 42 * SECONDS + 8 * TICKS) .eut(2) - .addTo(sFermentingRecipes); + .addTo(fermentingRecipes); GT_Values.RA.stdBuilder() .fluidInputs(getFluidStack("potion.beer", 75)) .fluidOutputs(getFluidStack("potion.vinegar", 50)) .duration(1 * MINUTES + 42 * SECONDS + 8 * TICKS) .eut(2) - .addTo(sFermentingRecipes); + .addTo(fermentingRecipes); GT_Values.RA.stdBuilder() .fluidInputs(getFluidStack("potion.cider", 75)) .fluidOutputs(getFluidStack("potion.vinegar", 50)) .duration(1 * MINUTES + 42 * SECONDS + 8 * TICKS) .eut(2) - .addTo(sFermentingRecipes); + .addTo(fermentingRecipes); GT_Values.RA.stdBuilder() .fluidInputs(getFluidStack("potion.goldencider", 75)) .fluidOutputs(getFluidStack("potion.vinegar", 50)) .duration(1 * MINUTES + 42 * SECONDS + 8 * TICKS) .eut(2) - .addTo(sFermentingRecipes); + .addTo(fermentingRecipes); GT_Values.RA.stdBuilder() .fluidInputs(getFluidStack("potion.rum", 75)) .fluidOutputs(getFluidStack("potion.vinegar", 50)) .duration(1 * MINUTES + 42 * SECONDS + 8 * TICKS) .eut(2) - .addTo(sFermentingRecipes); + .addTo(fermentingRecipes); GT_Values.RA.stdBuilder() .fluidInputs(getFluidStack("potion.wine", 75)) .fluidOutputs(getFluidStack("potion.vinegar", 50)) .duration(1 * MINUTES + 42 * SECONDS + 8 * TICKS) .eut(2) - .addTo(sFermentingRecipes); + .addTo(fermentingRecipes); GT_Values.RA.stdBuilder() .fluidInputs(getFluidStack("potion.awkward", 50)) .fluidOutputs(getFluidStack("potion.weakness", 25)) .duration(51 * SECONDS + 4 * TICKS) .eut(2) - .addTo(sFermentingRecipes); + .addTo(fermentingRecipes); GT_Values.RA.stdBuilder() .fluidInputs(getFluidStack("potion.mundane", 50)) .fluidOutputs(getFluidStack("potion.weakness", 25)) .duration(51 * SECONDS + 4 * TICKS) .eut(2) - .addTo(sFermentingRecipes); + .addTo(fermentingRecipes); GT_Values.RA.stdBuilder() .fluidInputs(getFluidStack("potion.thick", 50)) .fluidOutputs(getFluidStack("potion.weakness", 25)) .duration(51 * SECONDS + 4 * TICKS) .eut(2) - .addTo(sFermentingRecipes); + .addTo(fermentingRecipes); GT_Values.RA.stdBuilder() .fluidInputs(getFluidStack("potion.poison", 50)) .fluidOutputs(getFluidStack("potion.damage", 25)) .duration(51 * SECONDS + 4 * TICKS) .eut(2) - .addTo(sFermentingRecipes); + .addTo(fermentingRecipes); GT_Values.RA.stdBuilder() .fluidInputs(getFluidStack("potion.health", 50)) .fluidOutputs(getFluidStack("potion.damage", 25)) .duration(51 * SECONDS + 4 * TICKS) .eut(2) - .addTo(sFermentingRecipes); + .addTo(fermentingRecipes); GT_Values.RA.stdBuilder() .fluidInputs(getFluidStack("potion.waterbreathing", 50)) .fluidOutputs(getFluidStack("potion.damage", 25)) .duration(51 * SECONDS + 4 * TICKS) .eut(2) - .addTo(sFermentingRecipes); + .addTo(fermentingRecipes); GT_Values.RA.stdBuilder() .fluidInputs(getFluidStack("potion.nightvision", 50)) .fluidOutputs(getFluidStack("potion.invisibility", 25)) .duration(51 * SECONDS + 4 * TICKS) .eut(2) - .addTo(sFermentingRecipes); + .addTo(fermentingRecipes); GT_Values.RA.stdBuilder() .fluidInputs(getFluidStack("potion.fireresistance", 50)) .fluidOutputs(getFluidStack("potion.slowness", 25)) .duration(51 * SECONDS + 4 * TICKS) .eut(2) - .addTo(sFermentingRecipes); + .addTo(fermentingRecipes); GT_Values.RA.stdBuilder() .fluidInputs(getFluidStack("potion.speed", 50)) .fluidOutputs(getFluidStack("potion.slowness", 25)) .duration(51 * SECONDS + 4 * TICKS) .eut(2) - .addTo(sFermentingRecipes); + .addTo(fermentingRecipes); GT_Values.RA.stdBuilder() .fluidInputs(getFluidStack("potion.strength", 50)) .fluidOutputs(getFluidStack("potion.weakness", 25)) .duration(51 * SECONDS + 4 * TICKS) .eut(2) - .addTo(sFermentingRecipes); + .addTo(fermentingRecipes); GT_Values.RA.stdBuilder() .fluidInputs(getFluidStack("potion.regen", 50)) .fluidOutputs(getFluidStack("potion.poison", 25)) .duration(51 * SECONDS + 4 * TICKS) .eut(2) - .addTo(sFermentingRecipes); + .addTo(fermentingRecipes); GT_Values.RA.stdBuilder() .fluidInputs(getFluidStack("potion.poison.strong", 50)) .fluidOutputs(getFluidStack("potion.damage.strong", 10)) .duration(1 * MINUTES + 42 * SECONDS + 8 * TICKS) .eut(2) - .addTo(sFermentingRecipes); + .addTo(fermentingRecipes); GT_Values.RA.stdBuilder() .fluidInputs(getFluidStack("potion.health.strong", 50)) .fluidOutputs(getFluidStack("potion.damage.strong", 10)) .duration(1 * MINUTES + 42 * SECONDS + 8 * TICKS) .eut(2) - .addTo(sFermentingRecipes); + .addTo(fermentingRecipes); GT_Values.RA.stdBuilder() .fluidInputs(getFluidStack("potion.nightvision.long", 50)) .fluidOutputs(getFluidStack("potion.invisibility.long", 10)) .duration(1 * MINUTES + 42 * SECONDS + 8 * TICKS) .eut(2) - .addTo(sFermentingRecipes); + .addTo(fermentingRecipes); GT_Values.RA.stdBuilder() .fluidInputs(getFluidStack("potion.regen.strong", 50)) .fluidOutputs(getFluidStack("potion.poison.strong", 10)) .duration(1 * MINUTES + 42 * SECONDS + 8 * TICKS) .eut(2) - .addTo(sFermentingRecipes); + .addTo(fermentingRecipes); GT_Values.RA.stdBuilder() .fluidInputs(getFluidStack("potion.fireresistance.long", 50)) .fluidOutputs(getFluidStack("potion.slowness.long", 10)) .duration(1 * MINUTES + 42 * SECONDS + 8 * TICKS) .eut(2) - .addTo(sFermentingRecipes); + .addTo(fermentingRecipes); GT_Values.RA.stdBuilder() .fluidInputs(getFluidStack("potion.speed.long", 50)) .fluidOutputs(getFluidStack("potion.slowness.long", 10)) .duration(1 * MINUTES + 42 * SECONDS + 8 * TICKS) .eut(2) - .addTo(sFermentingRecipes); + .addTo(fermentingRecipes); GT_Values.RA.stdBuilder() .fluidInputs(getFluidStack("potion.strength.long", 50)) .fluidOutputs(getFluidStack("potion.weakness.long", 10)) .duration(1 * MINUTES + 42 * SECONDS + 8 * TICKS) .eut(2) - .addTo(sFermentingRecipes); + .addTo(fermentingRecipes); GT_Values.RA.stdBuilder() .fluidInputs(getFluidStack("potion.regen.long", 50)) .fluidOutputs(getFluidStack("potion.poison.long", 10)) .duration(1 * MINUTES + 42 * SECONDS + 8 * TICKS) .eut(2) - .addTo(sFermentingRecipes); + .addTo(fermentingRecipes); } } diff --git a/src/main/java/gregtech/loaders/postload/recipes/FluidCannerRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/FluidCannerRecipes.java index 23acb5c772..ea2b87996f 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/FluidCannerRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/FluidCannerRecipes.java @@ -1,6 +1,6 @@ package gregtech.loaders.postload.recipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sFluidCannerRecipes; +import static gregtech.api.recipe.RecipeMaps.fluidCannerRecipes; import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; @@ -16,7 +16,7 @@ public class FluidCannerRecipes implements Runnable { .fluidInputs(Materials.Redstone.getMolten(288)) .duration(4) .eut(1) - .addTo(sFluidCannerRecipes); + .addTo(fluidCannerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Battery_Hull_LV.get(1)) @@ -24,7 +24,7 @@ public class FluidCannerRecipes implements Runnable { .fluidInputs(Materials.Mercury.getFluid(1000)) .duration(16) .eut(1) - .addTo(sFluidCannerRecipes); + .addTo(fluidCannerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Battery_Hull_MV.get(1)) @@ -32,7 +32,7 @@ public class FluidCannerRecipes implements Runnable { .fluidInputs(Materials.Mercury.getFluid(4000)) .duration(64) .eut(1) - .addTo(sFluidCannerRecipes); + .addTo(fluidCannerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Battery_Hull_HV.get(1)) @@ -40,7 +40,7 @@ public class FluidCannerRecipes implements Runnable { .fluidInputs(Materials.Mercury.getFluid(16000)) .duration(258) .eut(1) - .addTo(sFluidCannerRecipes); + .addTo(fluidCannerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Battery_Hull_LV.get(1)) @@ -48,7 +48,7 @@ public class FluidCannerRecipes implements Runnable { .fluidInputs(Materials.SulfuricAcid.getFluid(1000)) .duration(16) .eut(1) - .addTo(sFluidCannerRecipes); + .addTo(fluidCannerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Battery_Hull_MV.get(1)) @@ -56,7 +56,7 @@ public class FluidCannerRecipes implements Runnable { .fluidInputs(Materials.SulfuricAcid.getFluid(4000)) .duration(64) .eut(1) - .addTo(sFluidCannerRecipes); + .addTo(fluidCannerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Battery_Hull_HV.get(1)) @@ -64,7 +64,7 @@ public class FluidCannerRecipes implements Runnable { .fluidInputs(Materials.SulfuricAcid.getFluid(16000)) .duration(258) .eut(1) - .addTo(sFluidCannerRecipes); + .addTo(fluidCannerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.TF_Vial_FieryTears.get(1)) @@ -72,7 +72,7 @@ public class FluidCannerRecipes implements Runnable { .fluidOutputs(Materials.FierySteel.getFluid(250)) .duration(4) .eut(1) - .addTo(sFluidCannerRecipes); + .addTo(fluidCannerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Spray_Color_Remover_Empty.get(1)) @@ -80,7 +80,7 @@ public class FluidCannerRecipes implements Runnable { .itemOutputs(ItemList.Spray_Color_Remover.get(1)) .duration(74) .eut(1) - .addTo(sFluidCannerRecipes); + .addTo(fluidCannerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Spray_Color_Remover.get(1)) @@ -88,6 +88,6 @@ public class FluidCannerRecipes implements Runnable { .fluidOutputs(Materials.Acetone.getFluid(4000)) .duration(74) .eut(1) - .addTo(sFluidCannerRecipes); + .addTo(fluidCannerRecipes); } } diff --git a/src/main/java/gregtech/loaders/postload/recipes/FluidExtractorRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/FluidExtractorRecipes.java index 4bb712e99a..11861a9618 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/FluidExtractorRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/FluidExtractorRecipes.java @@ -7,8 +7,8 @@ import static gregtech.api.enums.Mods.IndustrialCraft2; import static gregtech.api.enums.Mods.NewHorizonsCoreMod; import static gregtech.api.enums.Mods.Railcraft; import static gregtech.api.enums.Mods.Thaumcraft; +import static gregtech.api.recipe.RecipeMaps.fluidExtractionRecipes; import static gregtech.api.util.GT_ModHandler.getModItem; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sFluidExtractionRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; import static net.minecraftforge.fluids.FluidRegistry.getFluidStack; @@ -22,6 +22,7 @@ import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.TierEU; +import gregtech.api.recipe.RecipeCategories; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; @@ -35,21 +36,21 @@ public class FluidExtractorRecipes implements Runnable { .fluidOutputs(getFluidStack("squidink", 144)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sFluidExtractionRecipes); + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Dye_Indigo.get(1L)) .fluidOutputs(getFluidStack("indigo", 144)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sFluidExtractionRecipes); + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Crop_Drop_Indigo.get(1L)) .fluidOutputs(getFluidStack("indigo", 144)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sFluidExtractionRecipes); + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Crop_Drop_MilkWart.get(1L)) @@ -58,56 +59,56 @@ public class FluidExtractorRecipes implements Runnable { .fluidOutputs(GT_ModHandler.getMilk(150L)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sFluidExtractionRecipes); + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Crop_Drop_OilBerry.get(1L)) .fluidOutputs(Materials.Oil.getFluid(100L)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sFluidExtractionRecipes); + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Crop_Drop_UUMBerry.get(1L)) .fluidOutputs(Materials.UUMatter.getFluid(4L)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sFluidExtractionRecipes); + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Crop_Drop_UUABerry.get(1L)) .fluidOutputs(Materials.UUAmplifier.getFluid(4L)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sFluidExtractionRecipes); + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.fish, 1, 0)) .fluidOutputs(Materials.FishOil.getFluid(40L)) .duration(16 * TICKS) .eut(4) - .addTo(sFluidExtractionRecipes); + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.fish, 1, 1)) .fluidOutputs(Materials.FishOil.getFluid(60L)) .duration(16 * TICKS) .eut(4) - .addTo(sFluidExtractionRecipes); + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.fish, 1, 2)) .fluidOutputs(Materials.FishOil.getFluid(70L)) .duration(16 * TICKS) .eut(4) - .addTo(sFluidExtractionRecipes); + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.fish, 1, 3)) .fluidOutputs(Materials.FishOil.getFluid(30L)) .duration(16 * TICKS) .eut(4) - .addTo(sFluidExtractionRecipes); + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.coal, 1, 1)) @@ -116,7 +117,7 @@ public class FluidExtractorRecipes implements Runnable { .fluidOutputs(Materials.WoodTar.getFluid(100L)) .duration(1 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sFluidExtractionRecipes); + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L)) @@ -125,7 +126,7 @@ public class FluidExtractorRecipes implements Runnable { .fluidOutputs(Materials.Creosote.getFluid(5L)) .duration(16 * TICKS) .eut(4) - .addTo(sFluidExtractionRecipes); + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.HydratedCoal, 1L)) @@ -134,56 +135,57 @@ public class FluidExtractorRecipes implements Runnable { .fluidOutputs(Materials.Water.getFluid(100L)) .duration(1 * SECONDS + 12 * TICKS) .eut(4) - .addTo(sFluidExtractionRecipes); + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Thaumcraft.ID, "ItemResource", 1, 3)) .fluidOutputs(Materials.Mercury.getFluid(1000L)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sFluidExtractionRecipes); + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Mercury, 1L)) .fluidOutputs(Materials.Mercury.getFluid(1000L)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sFluidExtractionRecipes); + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Monazite, 1L)) .fluidOutputs(Materials.Helium.getGas(200L)) .duration(3 * SECONDS + 4 * TICKS) .eut(64) - .addTo(sFluidExtractionRecipes); + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(IndustrialCraft2.ID, "blockAlloyGlass", 1L, 0)) .fluidOutputs(Materials.ReinforceGlass.getMolten(144)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sFluidExtractionRecipes); + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(NewHorizonsCoreMod.ID, "item.ReinforcedGlassPlate", 1L, 0)) .fluidOutputs(Materials.ReinforceGlass.getMolten(72)) .duration(2 * SECONDS + 10 * TICKS) .eut(TierEU.RECIPE_EV) - .addTo(sFluidExtractionRecipes); + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(NewHorizonsCoreMod.ID, "item.ReinforcedGlassLense", 1L, 0)) .fluidOutputs(Materials.ReinforceGlass.getMolten(54)) .duration(2 * SECONDS + 10 * TICKS) .eut(TierEU.RECIPE_EV) - .addTo(sFluidExtractionRecipes); + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Long_Distance_Pipeline_Fluid.get(1L)) .fluidOutputs(Materials.Steel.getMolten(19 * 144)) .duration(20 * SECONDS) .eut(90) - .addTo(sFluidExtractionRecipes); + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Long_Distance_Pipeline_Item.get(1L)) @@ -192,14 +194,16 @@ public class FluidExtractorRecipes implements Runnable { .fluidOutputs(Materials.Tin.getMolten(12 * 144)) .duration(20 * SECONDS) .eut(90) - .addTo(sFluidExtractionRecipes); + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Long_Distance_Pipeline_Fluid_Pipe.get(4L)) .fluidOutputs(Materials.Steel.getMolten(189)) .duration(2 * SECONDS) .eut(90) - .addTo(sFluidExtractionRecipes); + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Long_Distance_Pipeline_Item_Pipe.get(16L)) @@ -208,7 +212,8 @@ public class FluidExtractorRecipes implements Runnable { .fluidOutputs(Materials.Steel.getMolten(324)) .duration(20 * SECONDS) .eut(90) - .addTo(sFluidExtractionRecipes); + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_ModHandler.getIC2Item("TritiumCell", 1)) @@ -217,28 +222,30 @@ public class FluidExtractorRecipes implements Runnable { .fluidOutputs(Materials.Tritium.getGas(32)) .duration(16 * TICKS) .eut(64) - .addTo(sFluidExtractionRecipes); + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Quartzite, 1L)) .fluidOutputs(Materials.Glass.getMolten(72)) .duration(30 * SECONDS) .eut(28) - .addTo(sFluidExtractionRecipes); + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.beta", 1L, 0)) .fluidOutputs(Materials.Iron.getMolten(288)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sFluidExtractionRecipes); + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.beta", 1L, 1)) .fluidOutputs(Materials.Iron.getMolten(144)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sFluidExtractionRecipes); + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.beta", 1L, 2)) @@ -247,42 +254,48 @@ public class FluidExtractorRecipes implements Runnable { .fluidOutputs(Materials.Bronze.getMolten(1728)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sFluidExtractionRecipes); + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.beta", 1L, 13)) .fluidOutputs(Materials.Steel.getMolten(288)) .duration(20 * SECONDS) .eut(90) - .addTo(sFluidExtractionRecipes); + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.beta", 1L, 14)) .fluidOutputs(Materials.Steel.getMolten(144)) .duration(20 * SECONDS) .eut(90) - .addTo(sFluidExtractionRecipes); + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.beta", 1L, 15)) .fluidOutputs(Materials.Steel.getMolten(1836)) .duration(20 * SECONDS) .eut(90) - .addTo(sFluidExtractionRecipes); + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 0)) .fluidOutputs(Materials.Aluminium.getMolten(288)) .duration(25 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sFluidExtractionRecipes); + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 1)) .fluidOutputs(Materials.Aluminium.getMolten(144)) .duration(25 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sFluidExtractionRecipes); + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 2)) @@ -291,84 +304,96 @@ public class FluidExtractorRecipes implements Runnable { .fluidOutputs(Materials.Aluminium.getMolten(108L)) .duration(25 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sFluidExtractionRecipes); + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 3)) .fluidOutputs(Materials.StainlessSteel.getMolten(288)) .duration(30 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sFluidExtractionRecipes); + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 4)) .fluidOutputs(Materials.StainlessSteel.getMolten(144)) .duration(30 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sFluidExtractionRecipes); + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 5)) .fluidOutputs(Materials.StainlessSteel.getMolten(1836)) .duration(30 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sFluidExtractionRecipes); + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 6)) .fluidOutputs(Materials.Titanium.getMolten(288)) .duration(35 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sFluidExtractionRecipes); + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 7)) .fluidOutputs(Materials.Titanium.getMolten(144)) .duration(35 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sFluidExtractionRecipes); + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 8)) .fluidOutputs(Materials.Titanium.getMolten(1836)) .duration(35 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sFluidExtractionRecipes); + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 9)) .fluidOutputs(Materials.TungstenSteel.getMolten(288)) .duration(40 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sFluidExtractionRecipes); + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 10)) .fluidOutputs(Materials.TungstenSteel.getMolten(144)) .duration(40 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sFluidExtractionRecipes); + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 11)) .fluidOutputs(Materials.TungstenSteel.getMolten(1836)) .duration(40 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sFluidExtractionRecipes); + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 12)) .fluidOutputs(Materials.Palladium.getMolten(288)) .duration(45 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sFluidExtractionRecipes); + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 13)) .fluidOutputs(Materials.Palladium.getMolten(144)) .duration(45 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sFluidExtractionRecipes); + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 14)) @@ -377,21 +402,24 @@ public class FluidExtractorRecipes implements Runnable { .fluidOutputs(Materials.NiobiumTitanium.getMolten(1728)) .duration(45 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sFluidExtractionRecipes); + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.eta", 1L, 0)) .fluidOutputs(Materials.Iridium.getMolten(288)) .duration(50 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sFluidExtractionRecipes); + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.eta", 1L, 1)) .fluidOutputs(Materials.Iridium.getMolten(144)) .duration(50 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sFluidExtractionRecipes); + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.eta", 1L, 2)) @@ -400,21 +428,24 @@ public class FluidExtractorRecipes implements Runnable { .fluidOutputs(Materials.Enderium.getMolten(1728)) .duration(50 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sFluidExtractionRecipes); + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.eta", 1L, 3)) .fluidOutputs(Materials.Osmium.getMolten(288)) .duration(55 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sFluidExtractionRecipes); + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.eta", 1L, 4)) .fluidOutputs(Materials.Osmium.getMolten(144)) .duration(55 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sFluidExtractionRecipes); + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.eta", 1L, 5)) @@ -423,77 +454,81 @@ public class FluidExtractorRecipes implements Runnable { .fluidOutputs(Materials.Naquadah.getMolten(1728)) .duration(55 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sFluidExtractionRecipes); + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.eta", 1L, 6)) .fluidOutputs(Materials.Neutronium.getMolten(288)) .duration(60 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sFluidExtractionRecipes); + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.eta", 1L, 7)) .fluidOutputs(Materials.Neutronium.getMolten(144)) .duration(60 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sFluidExtractionRecipes); + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.eta", 1L, 8)) .fluidOutputs(Materials.Neutronium.getMolten(1836)) .duration(60 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sFluidExtractionRecipes); + .recipeCategory(RecipeCategories.fluidExtractorRecycling) + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.wheat_seeds, 1, 32767)) .fluidOutputs(Materials.SeedOil.getFluid(10)) .duration(1 * SECONDS + 12 * TICKS) .eut(2) - .addTo(sFluidExtractionRecipes); + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.melon_seeds, 1, 32767)) .fluidOutputs(Materials.SeedOil.getFluid(10)) .duration(1 * SECONDS + 12 * TICKS) .eut(2) - .addTo(sFluidExtractionRecipes); + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.pumpkin_seeds, 1, 32767)) .fluidOutputs(Materials.SeedOil.getFluid(10)) .duration(1 * SECONDS + 12 * TICKS) .eut(2) - .addTo(sFluidExtractionRecipes); + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Crop_Drop_Rape.get(1)) .fluidOutputs(Materials.SeedOil.getFluid(125)) .duration(1 * SECONDS + 12 * TICKS) .eut(2) - .addTo(sFluidExtractionRecipes); + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.snowball, 1, 0)) .fluidOutputs(Materials.Water.getFluid(250L)) .duration(1 * SECONDS + 12 * TICKS) .eut(4) - .addTo(sFluidExtractionRecipes); + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.snow, 1, 0)) .fluidOutputs(Materials.Water.getFluid(1000L)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sFluidExtractionRecipes); + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ice, 1L)) .fluidOutputs(Materials.Ice.getSolid(1000L)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sFluidExtractionRecipes); + .addTo(fluidExtractionRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Forestry.ID, "phosphor", 1L)) @@ -502,7 +537,7 @@ public class FluidExtractorRecipes implements Runnable { .fluidOutputs(Materials.Lava.getFluid(800L)) .duration(12 * SECONDS + 16 * TICKS) .eut(128) - .addTo(sFluidExtractionRecipes); + .addTo(fluidExtractionRecipes); // Beecombs fluid extractor recipes if (BartWorks.isModLoaded()) { @@ -512,7 +547,7 @@ public class FluidExtractorRecipes implements Runnable { .fluidOutputs(getFluidStack("xenon", 250)) .duration(2 * SECONDS + 10 * TICKS) .eut(TierEU.RECIPE_IV) - .addTo(sFluidExtractionRecipes); + .addTo(fluidExtractionRecipes); // neon GT_Values.RA.stdBuilder() @@ -520,7 +555,7 @@ public class FluidExtractorRecipes implements Runnable { .fluidOutputs(getFluidStack("neon", 250)) .duration(15 * TICKS) .eut(TierEU.RECIPE_IV) - .addTo(sFluidExtractionRecipes); + .addTo(fluidExtractionRecipes); // krpton GT_Values.RA.stdBuilder() @@ -528,7 +563,7 @@ public class FluidExtractorRecipes implements Runnable { .fluidOutputs(getFluidStack("krypton", 250)) .duration(1 * SECONDS + 5 * TICKS) .eut(TierEU.RECIPE_IV) - .addTo(sFluidExtractionRecipes); + .addTo(fluidExtractionRecipes); } } } diff --git a/src/main/java/gregtech/loaders/postload/recipes/FluidHeaterRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/FluidHeaterRecipes.java index 38890ebb26..b9cdfc4aa3 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/FluidHeaterRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/FluidHeaterRecipes.java @@ -1,6 +1,6 @@ package gregtech.loaders.postload.recipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sFluidHeaterRecipes; +import static gregtech.api.recipe.RecipeMaps.fluidHeaterRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; @@ -21,7 +21,7 @@ public class FluidHeaterRecipes implements Runnable { .fluidOutputs(Materials.GrowthMediumSterilized.getFluid(1000)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_IV) - .addTo(sFluidHeaterRecipes); + .addTo(fluidHeaterRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(1)) @@ -29,7 +29,7 @@ public class FluidHeaterRecipes implements Runnable { .fluidOutputs(Materials.BioMediumSterilized.getFluid(1000)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_LuV) - .addTo(sFluidHeaterRecipes); + .addTo(fluidHeaterRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(1)) @@ -37,7 +37,7 @@ public class FluidHeaterRecipes implements Runnable { .fluidOutputs(Materials.Water.getGas(960)) .duration(1 * SECONDS + 10 * TICKS) .eut(30) - .addTo(sFluidHeaterRecipes); + .addTo(fluidHeaterRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(1)) @@ -45,7 +45,7 @@ public class FluidHeaterRecipes implements Runnable { .fluidOutputs(Materials.Water.getGas(960)) .duration(1 * SECONDS + 10 * TICKS) .eut(30) - .addTo(sFluidHeaterRecipes); + .addTo(fluidHeaterRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(1)) @@ -53,7 +53,7 @@ public class FluidHeaterRecipes implements Runnable { .fluidOutputs(Materials.FryingOilHot.getFluid(16)) .duration(16 * TICKS) .eut(30) - .addTo(sFluidHeaterRecipes); + .addTo(fluidHeaterRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(1)) @@ -61,7 +61,7 @@ public class FluidHeaterRecipes implements Runnable { .fluidOutputs(Materials.FryingOilHot.getFluid(16)) .duration(16 * TICKS) .eut(30) - .addTo(sFluidHeaterRecipes); + .addTo(fluidHeaterRecipes); // Ca(CH3COO)2 = CH3COCH3 + CaO + CO2 GT_Values.RA.stdBuilder() @@ -70,7 +70,7 @@ public class FluidHeaterRecipes implements Runnable { .fluidOutputs(Materials.Acetone.getFluid(1000)) .duration(4 * SECONDS) .eut(30) - .addTo(sFluidHeaterRecipes); + .addTo(fluidHeaterRecipes); // Fluid Sodium GT_Values.RA.stdBuilder() @@ -81,7 +81,7 @@ public class FluidHeaterRecipes implements Runnable { .fluidOutputs(Materials.Sodium.getFluid(1000)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sFluidHeaterRecipes); + .addTo(fluidHeaterRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(1)) @@ -89,7 +89,7 @@ public class FluidHeaterRecipes implements Runnable { .fluidOutputs(Materials.Ethenone.getGas(1000)) .duration(8 * SECONDS) .eut(160) - .addTo(sFluidHeaterRecipes); + .addTo(fluidHeaterRecipes); } } diff --git a/src/main/java/gregtech/loaders/postload/recipes/FluidSolidifierRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/FluidSolidifierRecipes.java index d194da4469..2d52f9eb69 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/FluidSolidifierRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/FluidSolidifierRecipes.java @@ -4,8 +4,8 @@ import static gregtech.api.enums.Mods.IndustrialCraft2; import static gregtech.api.enums.Mods.NewHorizonsCoreMod; import static gregtech.api.enums.Mods.Railcraft; import static gregtech.api.enums.Mods.Thaumcraft; +import static gregtech.api.recipe.RecipeMaps.fluidSolidifierRecipes; import static gregtech.api.util.GT_ModHandler.getModItem; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sFluidSolidficationRecipes; import static gregtech.api.util.GT_RecipeBuilder.INGOTS; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; @@ -55,7 +55,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(materialArray[i].getMolten(72L)) .duration(16 * TICKS) .eut(8) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); } { @@ -69,7 +69,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(new FluidStack(FluidRegistry.getFluid("molten.borosilicateglass"), 144)) .duration(2 * SECONDS + 4 * TICKS) .eut(TierEU.RECIPE_LV) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); } GT_Values.RA.stdBuilder() @@ -78,7 +78,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(Materials.Mercury.getFluid(1000L)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Mold_Ball.get(0L)) @@ -86,7 +86,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(Materials.Mercury.getFluid(1000L)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Mold_Ball.get(0L)) @@ -94,7 +94,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(Materials.Water.getFluid(250L)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Mold_Ball.get(0L)) @@ -102,7 +102,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(GT_ModHandler.getDistilledWater(250L)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Mold_Block.get(0L)) @@ -110,7 +110,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(Materials.Water.getFluid(1000L)) .duration(25 * SECONDS + 12 * TICKS) .eut(4) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Mold_Block.get(0L)) @@ -118,7 +118,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(GT_ModHandler.getDistilledWater(1000L)) .duration(25 * SECONDS + 12 * TICKS) .eut(4) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Mold_Block.get(0L)) @@ -126,7 +126,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(Materials.Lava.getFluid(1000L)) .duration(51 * SECONDS + 4 * TICKS) .eut(16) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Mold_Block.get(0L)) @@ -134,7 +134,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(Materials.Concrete.getMolten(144L)) .duration(12 * TICKS) .eut(4) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Mold_Block.get(0L)) @@ -142,7 +142,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(Materials.Glowstone.getMolten(576L)) .duration(12 * TICKS) .eut(4) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Mold_Block.get(0L)) @@ -150,7 +150,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(Materials.Glass.getMolten(144L)) .duration(12 * TICKS) .eut(4) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Mold_Plate.get(0L)) @@ -158,7 +158,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(Materials.Glass.getMolten(144L)) .duration(12 * TICKS) .eut(4) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Mold_Bottle.get(0L)) @@ -166,7 +166,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(Materials.Glass.getMolten(144L)) .duration(12 * TICKS) .eut(4) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Mold_Cylinder.get(0L)) @@ -174,7 +174,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(Materials.Milk.getFluid(250L)) .duration(51 * SECONDS + 4 * TICKS) .eut(4) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Mold_Cylinder.get(0L)) @@ -182,7 +182,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(Materials.Cheese.getMolten(144L)) .duration(3 * SECONDS + 4 * TICKS) .eut(8) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Mold_Anvil.get(0L)) @@ -190,7 +190,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(Materials.Iron.getMolten(4464L)) .duration(6 * SECONDS + 8 * TICKS) .eut(16) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Mold_Anvil.get(0L)) @@ -198,7 +198,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(Materials.WroughtIron.getMolten(4464L)) .duration(6 * SECONDS + 8 * TICKS) .eut(16) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(1)) @@ -206,7 +206,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(Materials.Boron.getMolten(144L)) .duration(1 * SECONDS + 10 * TICKS) .eut(30) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Mold_Cylinder.get(0)) @@ -214,7 +214,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(36)) .duration(8 * SECONDS) .eut(16) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Mold_Cylinder.get(0)) @@ -222,7 +222,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(Materials.Polystyrene.getMolten(36)) .duration(8 * SECONDS) .eut(16) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Mold_Cylinder.get(0)) @@ -230,7 +230,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(Materials.BorosilicateGlass.getMolten(72)) .duration(8 * SECONDS) .eut(16) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Mold_Plate.get(0L)) @@ -238,7 +238,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(Materials.ReinforceGlass.getMolten(72)) .duration(8 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Mold_Block.get(0L)) @@ -246,7 +246,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(Materials.ReinforceGlass.getMolten(144)) .duration(8 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Mold_Ball.get(0L)) @@ -254,7 +254,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(Materials.Glass.getMolten(144)) .duration(10 * SECONDS) .eut(24) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Mold_Ball.get(0L)) @@ -262,7 +262,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(Materials.ReinforceGlass.getMolten(288)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Mold_Ball.get(0L)) @@ -270,7 +270,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(getFluidStack("glass.molten", 1000)) .duration(10 * SECONDS) .eut(24) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Mold_Ball.get(0L)) @@ -278,7 +278,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(new FluidStack(ItemList.sToluene, 100)) .duration(5 * SECONDS) .eut(16) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Mold_Nugget.get(0L)) @@ -286,7 +286,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(Materials.AnnealedCopper.getMolten(16)) .duration(16 * TICKS) .eut(4) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Mold_Ingot.get(0L)) @@ -294,7 +294,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(Materials.AnnealedCopper.getMolten(144)) .duration(1 * SECONDS + 12 * TICKS) .eut(8) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Mold_Block.get(0L)) @@ -302,7 +302,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(Materials.AnnealedCopper.getMolten(1296)) .duration(14 * SECONDS + 8 * TICKS) .eut(8) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Mold_Nugget.get(0L)) @@ -310,7 +310,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(Materials.WroughtIron.getMolten(16)) .duration(16 * TICKS) .eut(4) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Mold_Ingot.get(0L)) @@ -318,7 +318,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(Materials.WroughtIron.getMolten(144)) .duration(1 * SECONDS + 12 * TICKS) .eut(8) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Mold_Block.get(0L)) @@ -326,7 +326,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(Materials.WroughtIron.getMolten(1296)) .duration(14 * SECONDS + 8 * TICKS) .eut(8) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Spinneret.get(0L)) @@ -334,7 +334,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(MaterialsKevlar.LiquidCrystalKevlar.getFluid(144L)) .duration(40 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Mold_Anvil.get(0L)) @@ -342,7 +342,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(Materials.Steel.getMolten(4464L)) .duration(6 * SECONDS + 8 * TICKS) .eut(16) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); final int whiteDwarfShapeSolidifierTime = 10 * SECONDS; final int fluidPerShapeSolidifierRecipe = 4 * INGOTS; @@ -354,7 +354,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) .duration(whiteDwarfShapeSolidifierTime) .eut(TierEU.RECIPE_UMV) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Extruder_Plate.get(1)) @@ -362,7 +362,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) .duration(whiteDwarfShapeSolidifierTime) .eut(TierEU.RECIPE_UMV) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Extruder_Cell.get(1)) @@ -370,7 +370,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) .duration(whiteDwarfShapeSolidifierTime) .eut(TierEU.RECIPE_UMV) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Extruder_Ring.get(1)) @@ -378,7 +378,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) .duration(whiteDwarfShapeSolidifierTime) .eut(TierEU.RECIPE_UMV) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Extruder_Rod.get(1)) @@ -386,7 +386,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) .duration(whiteDwarfShapeSolidifierTime) .eut(TierEU.RECIPE_UMV) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Extruder_Bolt.get(1)) @@ -394,7 +394,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) .duration(whiteDwarfShapeSolidifierTime) .eut(TierEU.RECIPE_UMV) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Extruder_Ingot.get(1)) @@ -402,7 +402,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) .duration(whiteDwarfShapeSolidifierTime) .eut(TierEU.RECIPE_UMV) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Extruder_Wire.get(1)) @@ -410,7 +410,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) .duration(whiteDwarfShapeSolidifierTime) .eut(TierEU.RECIPE_UMV) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Extruder_Casing.get(1)) @@ -418,7 +418,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) .duration(whiteDwarfShapeSolidifierTime) .eut(TierEU.RECIPE_UMV) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Extruder_Pipe_Tiny.get(1)) @@ -426,7 +426,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) .duration(whiteDwarfShapeSolidifierTime) .eut(TierEU.RECIPE_UMV) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Extruder_Pipe_Small.get(1)) @@ -434,7 +434,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) .duration(whiteDwarfShapeSolidifierTime) .eut(TierEU.RECIPE_UMV) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Extruder_Pipe_Medium.get(1)) @@ -442,7 +442,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) .duration(whiteDwarfShapeSolidifierTime) .eut(TierEU.RECIPE_UMV) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Extruder_Pipe_Large.get(1)) @@ -450,7 +450,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) .duration(whiteDwarfShapeSolidifierTime) .eut(TierEU.RECIPE_UMV) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Extruder_Pipe_Huge.get(1)) @@ -458,7 +458,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) .duration(whiteDwarfShapeSolidifierTime) .eut(TierEU.RECIPE_UMV) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Extruder_Block.get(1)) @@ -466,7 +466,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) .duration(whiteDwarfShapeSolidifierTime) .eut(TierEU.RECIPE_UMV) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Extruder_Sword.get(1)) @@ -474,7 +474,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) .duration(whiteDwarfShapeSolidifierTime) .eut(TierEU.RECIPE_UMV) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Extruder_Pickaxe.get(1)) @@ -482,7 +482,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) .duration(whiteDwarfShapeSolidifierTime) .eut(TierEU.RECIPE_UMV) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Extruder_Shovel.get(1)) @@ -490,7 +490,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) .duration(whiteDwarfShapeSolidifierTime) .eut(TierEU.RECIPE_UMV) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Extruder_Axe.get(1)) @@ -498,7 +498,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) .duration(whiteDwarfShapeSolidifierTime) .eut(TierEU.RECIPE_UMV) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Extruder_Hoe.get(1)) @@ -506,7 +506,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) .duration(whiteDwarfShapeSolidifierTime) .eut(TierEU.RECIPE_UMV) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Extruder_Hammer.get(1)) @@ -514,7 +514,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) .duration(whiteDwarfShapeSolidifierTime) .eut(TierEU.RECIPE_UMV) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Extruder_File.get(1)) @@ -522,7 +522,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) .duration(whiteDwarfShapeSolidifierTime) .eut(TierEU.RECIPE_UMV) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Extruder_Saw.get(1)) @@ -530,7 +530,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) .duration(whiteDwarfShapeSolidifierTime) .eut(TierEU.RECIPE_UMV) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Extruder_Gear.get(1)) @@ -538,7 +538,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) .duration(whiteDwarfShapeSolidifierTime) .eut(TierEU.RECIPE_UMV) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Extruder_Rotor.get(1)) @@ -546,7 +546,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) .duration(whiteDwarfShapeSolidifierTime) .eut(TierEU.RECIPE_UMV) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Extruder_Turbine_Blade.get(1)) @@ -554,7 +554,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) .duration(whiteDwarfShapeSolidifierTime) .eut(TierEU.RECIPE_UMV) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Extruder_Small_Gear.get(1)) @@ -562,7 +562,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) .duration(whiteDwarfShapeSolidifierTime) .eut(TierEU.RECIPE_UMV) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Shape_Extruder_ToolHeadDrill.get(1)) @@ -570,7 +570,7 @@ public class FluidSolidifierRecipes implements Runnable { .fluidInputs(MaterialsUEVplus.WhiteDwarfMatter.getMolten(fluidPerShapeSolidifierRecipe)) .duration(whiteDwarfShapeSolidifierTime) .eut(TierEU.RECIPE_UMV) - .addTo(sFluidSolidficationRecipes); + .addTo(fluidSolidifierRecipes); } } diff --git a/src/main/java/gregtech/loaders/postload/recipes/ForgeHammerRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/ForgeHammerRecipes.java index b703076968..49ad1154c7 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/ForgeHammerRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/ForgeHammerRecipes.java @@ -2,8 +2,8 @@ package gregtech.loaders.postload.recipes; import static gregtech.api.enums.Mods.GTPlusPlus; import static gregtech.api.enums.Mods.HardcoreEnderExpansion; +import static gregtech.api.recipe.RecipeMaps.hammerRecipes; import static gregtech.api.util.GT_ModHandler.getModItem; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sHammerRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; @@ -29,112 +29,112 @@ public class ForgeHammerRecipes implements Runnable { .itemOutputs(new ItemStack(Blocks.stonebrick, 1, 2)) .duration(10 * TICKS) .eut(16) - .addTo(sHammerRecipes); + .addTo(hammerRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.stone, 1, 0)) .itemOutputs(new ItemStack(Blocks.cobblestone, 1, 0)) .duration(10 * TICKS) .eut(16) - .addTo(sHammerRecipes); + .addTo(hammerRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.cobblestone, 1, 0)) .itemOutputs(new ItemStack(Blocks.gravel, 1, 0)) .duration(10 * TICKS) .eut(16) - .addTo(sHammerRecipes); + .addTo(hammerRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.gravel, 1, 0)) .itemOutputs(new ItemStack(Blocks.sand, 1, 0)) .duration(10 * TICKS) .eut(16) - .addTo(sHammerRecipes); + .addTo(hammerRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.sandstone, 1, 32767)) .itemOutputs(new ItemStack(Blocks.sand, 1, 0)) .duration(10 * TICKS) .eut(16) - .addTo(sHammerRecipes); + .addTo(hammerRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.ice, 1, 0)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ice, 1)) .duration(10 * TICKS) .eut(16) - .addTo(sHammerRecipes); + .addTo(hammerRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.packed_ice, 1, 0)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ice, 2)) .duration(10 * TICKS) .eut(16) - .addTo(sHammerRecipes); + .addTo(hammerRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.brick_block, 1, 0)) .itemOutputs(new ItemStack(Items.brick, 3, 0)) .duration(10 * TICKS) .eut(16) - .addTo(sHammerRecipes); + .addTo(hammerRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.nether_brick, 1, 0)) .itemOutputs(new ItemStack(Items.netherbrick, 3, 0)) .duration(10 * TICKS) .eut(16) - .addTo(sHammerRecipes); + .addTo(hammerRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.stained_glass, 1, 32767)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glass, 1)) .duration(10 * TICKS) .eut(16) - .addTo(sHammerRecipes); + .addTo(hammerRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.glass, 1, 32767)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glass, 1)) .duration(10 * TICKS) .eut(10) - .addTo(sHammerRecipes); + .addTo(hammerRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.stained_glass_pane, 1, 32767)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Glass, 3)) .duration(10 * TICKS) .eut(16) - .addTo(sHammerRecipes); + .addTo(hammerRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.glass_pane, 1, 32767)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Glass, 3)) .duration(10 * TICKS) .eut(16) - .addTo(sHammerRecipes); + .addTo(hammerRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Brick.getIngots(1)) .itemOutputs(Materials.Brick.getDustSmall(1)) .duration(10 * TICKS) .eut(16) - .addTo(sHammerRecipes); + .addTo(hammerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Firebrick.get(1)) .itemOutputs(Materials.Brick.getDust(1)) .duration(10 * TICKS) .eut(16) - .addTo(sHammerRecipes); + .addTo(hammerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Casing_Firebricks.get(1)) .itemOutputs(ItemList.Firebrick.get(3)) .duration(10 * TICKS) .eut(16) - .addTo(sHammerRecipes); + .addTo(hammerRecipes); if (GTPlusPlus.isModLoaded()) { GT_Values.RA.stdBuilder() @@ -143,7 +143,7 @@ public class ForgeHammerRecipes implements Runnable { .fluidOutputs(MaterialsUEVplus.Space.getMolten(1440L), MaterialsUEVplus.Time.getMolten(1440L)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_UXV) - .addTo(sHammerRecipes); + .addTo(hammerRecipes); } if (HardcoreEnderExpansion.isModLoaded()) { @@ -152,7 +152,7 @@ public class ForgeHammerRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.HeeEndium, 1)) .duration(16) .eut(10) - .addTo(sHammerRecipes); + .addTo(hammerRecipes); } } } diff --git a/src/main/java/gregtech/loaders/postload/recipes/FormingPressRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/FormingPressRecipes.java index 230dcad61a..80a34561e6 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/FormingPressRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/FormingPressRecipes.java @@ -2,8 +2,8 @@ package gregtech.loaders.postload.recipes; import static gregtech.api.enums.Mods.AppliedEnergistics2; import static gregtech.api.enums.Mods.BuildCraftSilicon; +import static gregtech.api.recipe.RecipeMaps.formingPressRecipes; import static gregtech.api.util.GT_ModHandler.getModItem; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sPressRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; @@ -30,7 +30,7 @@ public class FormingPressRecipes implements Runnable { .itemOutputs(getModItem(BuildCraftSilicon.ID, "redstoneChipset", 1L, 1)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sPressRecipes); + .addTo(formingPressRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -39,7 +39,7 @@ public class FormingPressRecipes implements Runnable { .itemOutputs(getModItem(BuildCraftSilicon.ID, "redstoneChipset", 1L, 1)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sPressRecipes); + .addTo(formingPressRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -48,7 +48,7 @@ public class FormingPressRecipes implements Runnable { .itemOutputs(getModItem(BuildCraftSilicon.ID, "redstoneChipset", 1L, 2)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sPressRecipes); + .addTo(formingPressRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -57,7 +57,7 @@ public class FormingPressRecipes implements Runnable { .itemOutputs(getModItem(BuildCraftSilicon.ID, "redstoneChipset", 1L, 3)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sPressRecipes); + .addTo(formingPressRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -66,7 +66,7 @@ public class FormingPressRecipes implements Runnable { .itemOutputs(getModItem(BuildCraftSilicon.ID, "redstoneChipset", 2L, 4)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sPressRecipes); + .addTo(formingPressRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -75,7 +75,7 @@ public class FormingPressRecipes implements Runnable { .itemOutputs(getModItem(BuildCraftSilicon.ID, "redstoneChipset", 1L, 5)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sPressRecipes); + .addTo(formingPressRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -84,7 +84,7 @@ public class FormingPressRecipes implements Runnable { .itemOutputs(getModItem(BuildCraftSilicon.ID, "redstoneChipset", 1L, 6)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sPressRecipes); + .addTo(formingPressRecipes); } if (AppliedEnergistics2.isModLoaded()) { @@ -95,7 +95,7 @@ public class FormingPressRecipes implements Runnable { .itemOutputs(getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 16)) .duration(10 * SECONDS) .eut(16) - .addTo(sPressRecipes); + .addTo(formingPressRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -104,7 +104,7 @@ public class FormingPressRecipes implements Runnable { .itemOutputs(getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 16)) .duration(10 * SECONDS) .eut(16) - .addTo(sPressRecipes); + .addTo(formingPressRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -113,7 +113,7 @@ public class FormingPressRecipes implements Runnable { .itemOutputs(getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 17)) .duration(10 * SECONDS) .eut(16) - .addTo(sPressRecipes); + .addTo(formingPressRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -122,7 +122,7 @@ public class FormingPressRecipes implements Runnable { .itemOutputs(getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 18)) .duration(10 * SECONDS) .eut(16) - .addTo(sPressRecipes); + .addTo(formingPressRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -131,7 +131,7 @@ public class FormingPressRecipes implements Runnable { .itemOutputs(getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 20)) .duration(10 * SECONDS) .eut(16) - .addTo(sPressRecipes); + .addTo(formingPressRecipes); } GT_Values.RA.stdBuilder() @@ -139,14 +139,14 @@ public class FormingPressRecipes implements Runnable { .itemOutputs(ItemList.Food_Raw_Cake.get(1L)) .duration(19 * SECONDS + 4 * TICKS) .eut(4) - .addTo(sPressRecipes); + .addTo(formingPressRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.glass, 1, 32767), ItemList.Shape_Mold_Arrow.get(0L)) .itemOutputs(ItemList.Arrow_Head_Glass_Emtpy.get(1L)) .duration(3 * SECONDS + 4 * TICKS) .eut(4) - .addTo(sPressRecipes); + .addTo(formingPressRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -155,7 +155,7 @@ public class FormingPressRecipes implements Runnable { .itemOutputs(ItemList.Credit_Greg_Cupronickel.get(4L)) .duration(5 * SECONDS) .eut(16) - .addTo(sPressRecipes); + .addTo(formingPressRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -164,7 +164,7 @@ public class FormingPressRecipes implements Runnable { .itemOutputs(ItemList.Coin_Doge.get(4L)) .duration(5 * SECONDS) .eut(16) - .addTo(sPressRecipes); + .addTo(formingPressRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -173,7 +173,7 @@ public class FormingPressRecipes implements Runnable { .itemOutputs(ItemList.Credit_Iron.get(4L)) .duration(5 * SECONDS) .eut(16) - .addTo(sPressRecipes); + .addTo(formingPressRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -182,7 +182,7 @@ public class FormingPressRecipes implements Runnable { .itemOutputs(ItemList.Credit_Iron.get(4L)) .duration(5 * SECONDS) .eut(16) - .addTo(sPressRecipes); + .addTo(formingPressRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -191,6 +191,6 @@ public class FormingPressRecipes implements Runnable { .itemOutputs(new ItemStack(Items.brick, 1, 0)) .duration(5 * SECONDS) .eut(16) - .addTo(sPressRecipes); + .addTo(formingPressRecipes); } } diff --git a/src/main/java/gregtech/loaders/postload/recipes/FuelRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/FuelRecipes.java index d3e3b0d339..2c3c979b11 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/FuelRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/FuelRecipes.java @@ -24,8 +24,6 @@ public class FuelRecipes implements Runnable { .itemInputs(GT_ModHandler.getIC2Item("biogasCell", 1L)) .metadata(FUEL_VALUE, 40) .metadata(FUEL_TYPE, 1) - .duration(0) - .eut(0) .addTo(GT_RecipeConstants.Fuel); GT_Values.RA.stdBuilder() @@ -33,128 +31,96 @@ public class FuelRecipes implements Runnable { .itemOutputs(new ItemStack(Items.apple, 1)) .metadata(FUEL_VALUE, 6400) .metadata(FUEL_TYPE, 5) - .duration(0) - .eut(0) .addTo(GT_RecipeConstants.Fuel); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Thaumcraft.ID, "ItemShard", 1L, 6)) .metadata(FUEL_VALUE, 720) .metadata(FUEL_TYPE, 5) - .duration(0) - .eut(0) .addTo(GT_RecipeConstants.Fuel); GT_Values.RA.stdBuilder() .itemInputs(getModItem(ForbiddenMagic.ID, "GluttonyShard", 1L)) .metadata(FUEL_VALUE, 720) .metadata(FUEL_TYPE, 5) - .duration(0) - .eut(0) .addTo(GT_RecipeConstants.Fuel); GT_Values.RA.stdBuilder() .itemInputs(getModItem(ForbiddenMagic.ID, "FMResource", 1L, 3)) .metadata(FUEL_VALUE, 720) .metadata(FUEL_TYPE, 5) - .duration(0) - .eut(0) .addTo(GT_RecipeConstants.Fuel); GT_Values.RA.stdBuilder() .itemInputs(getModItem(ForbiddenMagic.ID, "NetherShard", 1L)) .metadata(FUEL_VALUE, 720) .metadata(FUEL_TYPE, 5) - .duration(0) - .eut(0) .addTo(GT_RecipeConstants.Fuel); GT_Values.RA.stdBuilder() .itemInputs(getModItem(ForbiddenMagic.ID, "NetherShard", 1L, 1)) .metadata(FUEL_VALUE, 720) .metadata(FUEL_TYPE, 5) - .duration(0) - .eut(0) .addTo(GT_RecipeConstants.Fuel); GT_Values.RA.stdBuilder() .itemInputs(getModItem(ForbiddenMagic.ID, "NetherShard", 1L, 2)) .metadata(FUEL_VALUE, 720) .metadata(FUEL_TYPE, 5) - .duration(0) - .eut(0) .addTo(GT_RecipeConstants.Fuel); GT_Values.RA.stdBuilder() .itemInputs(getModItem(ForbiddenMagic.ID, "NetherShard", 1L, 3)) .metadata(FUEL_VALUE, 720) .metadata(FUEL_TYPE, 5) - .duration(0) - .eut(0) .addTo(GT_RecipeConstants.Fuel); GT_Values.RA.stdBuilder() .itemInputs(getModItem(ForbiddenMagic.ID, "NetherShard", 1L, 4)) .metadata(FUEL_VALUE, 720) .metadata(FUEL_TYPE, 5) - .duration(0) - .eut(0) .addTo(GT_RecipeConstants.Fuel); GT_Values.RA.stdBuilder() .itemInputs(getModItem(ForbiddenMagic.ID, "NetherShard", 1L, 5)) .metadata(FUEL_VALUE, 720) .metadata(FUEL_TYPE, 5) - .duration(0) - .eut(0) .addTo(GT_RecipeConstants.Fuel); GT_Values.RA.stdBuilder() .itemInputs(getModItem(ForbiddenMagic.ID, "NetherShard", 1L, 6)) .metadata(FUEL_VALUE, 720) .metadata(FUEL_TYPE, 5) - .duration(0) - .eut(0) .addTo(GT_RecipeConstants.Fuel); GT_Values.RA.stdBuilder() .itemInputs(getModItem(TaintedMagic.ID, "ItemMaterial", 1L, 3)) .metadata(FUEL_VALUE, 720) .metadata(FUEL_TYPE, 5) - .duration(0) - .eut(0) .addTo(GT_RecipeConstants.Fuel); GT_Values.RA.stdBuilder() .itemInputs(getModItem(TaintedMagic.ID, "ItemMaterial", 1L, 4)) .metadata(FUEL_VALUE, 720) .metadata(FUEL_TYPE, 5) - .duration(0) - .eut(0) .addTo(GT_RecipeConstants.Fuel); GT_Values.RA.stdBuilder() .itemInputs(getModItem(TaintedMagic.ID, "ItemMaterial", 1L, 5)) .metadata(FUEL_VALUE, 720) .metadata(FUEL_TYPE, 5) - .duration(0) - .eut(0) .addTo(GT_RecipeConstants.Fuel); GT_Values.RA.stdBuilder() .itemInputs(getModItem(ThaumicTinkerer.ID, "kamiResource", 1L, 6)) .metadata(FUEL_VALUE, 720) .metadata(FUEL_TYPE, 5) - .duration(0) - .eut(0) .addTo(GT_RecipeConstants.Fuel); GT_Values.RA.stdBuilder() .itemInputs(getModItem(ThaumicTinkerer.ID, "kamiResource", 1L, 7)) .metadata(FUEL_VALUE, 720) .metadata(FUEL_TYPE, 5) - .duration(0) - .eut(0) .addTo(GT_RecipeConstants.Fuel); } diff --git a/src/main/java/gregtech/loaders/postload/recipes/FusionReactorRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/FusionReactorRecipes.java index 1a78db2ee3..2d533dde0c 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/FusionReactorRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/FusionReactorRecipes.java @@ -1,6 +1,6 @@ package gregtech.loaders.postload.recipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sFusionRecipes; +import static gregtech.api.recipe.RecipeMaps.fusionRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; import static gregtech.api.util.GT_RecipeConstants.FUSION_THRESHOLD; @@ -26,7 +26,7 @@ public class FusionReactorRecipes implements Runnable { .duration(3 * SECONDS + 4 * TICKS) .eut(TierEU.RECIPE_LuV) .metadata(FUSION_THRESHOLD, 300000000) - .addTo(sFusionRecipes); // FT1+ - utility + .addTo(fusionRecipes); // FT1+ - utility GT_Values.RA.stdBuilder() .fluidInputs(Materials.Deuterium.getGas(125), Materials.Tritium.getGas(125)) @@ -34,7 +34,7 @@ public class FusionReactorRecipes implements Runnable { .duration(16 * TICKS) .eut(4096) .metadata(FUSION_THRESHOLD, 40000000) - .addTo(sFusionRecipes); // FT1 Cheap - farmable + .addTo(fusionRecipes); // FT1 Cheap - farmable GT_Values.RA.stdBuilder() .fluidInputs(Materials.Deuterium.getGas(125), Materials.Helium_3.getGas(125)) @@ -42,7 +42,7 @@ public class FusionReactorRecipes implements Runnable { .duration(16 * TICKS) .eut(2048) .metadata(FUSION_THRESHOLD, 60000000) - .addTo(sFusionRecipes); // FT1 Expensive // + .addTo(fusionRecipes); // FT1 Expensive // GT_Values.RA.stdBuilder() .fluidInputs(Materials.Aluminium.getMolten(16), Materials.Lithium.getMolten(16)) @@ -50,7 +50,7 @@ public class FusionReactorRecipes implements Runnable { .duration(1 * SECONDS + 12 * TICKS) .eut(10240) .metadata(FUSION_THRESHOLD, 240000000) - .addTo(sFusionRecipes); // FT1+ Cheap + .addTo(fusionRecipes); // FT1+ Cheap GT_Values.RA.stdBuilder() .fluidInputs(Materials.Beryllium.getMolten(16), Materials.Deuterium.getGas(375)) @@ -58,7 +58,7 @@ public class FusionReactorRecipes implements Runnable { .duration(16 * TICKS) .eut(16384) .metadata(FUSION_THRESHOLD, 180000000) - .addTo(sFusionRecipes); // FT1+ Expensive // + .addTo(fusionRecipes); // FT1+ Expensive // GT_Values.RA.stdBuilder() .fluidInputs(Materials.Silicon.getMolten(16), Materials.Magnesium.getMolten(16)) @@ -66,7 +66,7 @@ public class FusionReactorRecipes implements Runnable { .duration(1 * SECONDS + 12 * TICKS) .eut(8192) .metadata(FUSION_THRESHOLD, 360000000) - .addTo(sFusionRecipes); // FT1++ Cheap // + .addTo(fusionRecipes); // FT1++ Cheap // GT_Values.RA.stdBuilder() .fluidInputs(Materials.Potassium.getMolten(16), Materials.Fluorine.getGas(144)) @@ -74,7 +74,7 @@ public class FusionReactorRecipes implements Runnable { .duration(16 * TICKS) .eut(TierEU.RECIPE_LuV) .metadata(FUSION_THRESHOLD, 480000000) - .addTo(sFusionRecipes); // FT1++ Expensive // + .addTo(fusionRecipes); // FT1++ Expensive // GT_Values.RA.stdBuilder() .fluidInputs(Materials.Beryllium.getMolten(16), Materials.Tungsten.getMolten(16)) @@ -82,7 +82,7 @@ public class FusionReactorRecipes implements Runnable { .duration(1 * SECONDS + 12 * TICKS) .eut(TierEU.RECIPE_LuV) .metadata(FUSION_THRESHOLD, 150000000) - .addTo(sFusionRecipes); // FT1 - utility + .addTo(fusionRecipes); // FT1 - utility GT_Values.RA.stdBuilder() .fluidInputs(Materials.Neodymium.getMolten(16), Materials.Hydrogen.getGas(48)) @@ -90,7 +90,7 @@ public class FusionReactorRecipes implements Runnable { .duration(1 * SECONDS + 12 * TICKS) .eut(24576) .metadata(FUSION_THRESHOLD, 150000000) - .addTo(sFusionRecipes); // FT1 - utility + .addTo(fusionRecipes); // FT1 - utility GT_Values.RA.stdBuilder() .fluidInputs(Materials.Lutetium.getMolten(16), Materials.Chrome.getMolten(16)) @@ -98,7 +98,7 @@ public class FusionReactorRecipes implements Runnable { .duration(4 * SECONDS + 16 * TICKS) .eut(49152) .metadata(FUSION_THRESHOLD, 200000000) - .addTo(sFusionRecipes); // FT2 - utility + .addTo(fusionRecipes); // FT2 - utility GT_Values.RA.stdBuilder() .fluidInputs(Materials.Plutonium.getMolten(16), Materials.Thorium.getMolten(16)) @@ -106,7 +106,7 @@ public class FusionReactorRecipes implements Runnable { .duration(3 * SECONDS + 4 * TICKS) .eut(TierEU.RECIPE_LuV) .metadata(FUSION_THRESHOLD, 300000000) - .addTo(sFusionRecipes); // FT1+ - utility + .addTo(fusionRecipes); // FT1+ - utility GT_Values.RA.stdBuilder() .fluidInputs(Materials.Americium.getMolten(144), Materials.Naquadria.getMolten(144)) @@ -114,7 +114,7 @@ public class FusionReactorRecipes implements Runnable { .duration(12 * SECONDS) .eut(TierEU.RECIPE_ZPM) .metadata(FUSION_THRESHOLD, 640000000) - .addTo(sFusionRecipes); // FT3 - utility + .addTo(fusionRecipes); // FT3 - utility GT_Values.RA.stdBuilder() .fluidInputs(Materials.Glowstone.getMolten(16), Materials.Helium.getPlasma(4)) @@ -122,8 +122,8 @@ public class FusionReactorRecipes implements Runnable { .duration(1 * SECONDS + 12 * TICKS) .eut(TierEU.RECIPE_IV) .metadata(FUSION_THRESHOLD, 40000000) - .addTo(sFusionRecipes); // Mark 1 Expensive - // // + .addTo(fusionRecipes); // Mark 1 Expensive + // // GT_Values.RA.stdBuilder() .fluidInputs(Materials.Tungsten.getMolten(16), Materials.Helium.getGas(16)) @@ -131,7 +131,7 @@ public class FusionReactorRecipes implements Runnable { .duration(12 * SECONDS + 16 * TICKS) .eut(24578) .metadata(FUSION_THRESHOLD, 150000000) - .addTo(sFusionRecipes); // FT1 - utility + .addTo(fusionRecipes); // FT1 - utility GT_Values.RA.stdBuilder() .fluidInputs(Materials.Manganese.getMolten(16), Materials.Hydrogen.getGas(16)) @@ -139,7 +139,7 @@ public class FusionReactorRecipes implements Runnable { .duration(3 * SECONDS + 4 * TICKS) .eut(8192) .metadata(FUSION_THRESHOLD, 120000000) - .addTo(sFusionRecipes); // FT1 - utility + .addTo(fusionRecipes); // FT1 - utility GT_Values.RA.stdBuilder() .fluidInputs(Materials.Magnesium.getMolten(128), Materials.Oxygen.getGas(128)) @@ -147,7 +147,7 @@ public class FusionReactorRecipes implements Runnable { .duration(6 * SECONDS + 8 * TICKS) .eut(8192) .metadata(FUSION_THRESHOLD, 120000000) - .addTo(sFusionRecipes); // + .addTo(fusionRecipes); // GT_Values.RA.stdBuilder() .fluidInputs(Materials.Mercury.getFluid(16), Materials.Magnesium.getMolten(16)) @@ -155,7 +155,7 @@ public class FusionReactorRecipes implements Runnable { .duration(3 * SECONDS + 4 * TICKS) .eut(49152) .metadata(FUSION_THRESHOLD, 240000000) - .addTo(sFusionRecipes); // FT2 - utility + .addTo(fusionRecipes); // FT2 - utility GT_Values.RA.stdBuilder() .fluidInputs(Materials.Gold.getMolten(16), Materials.Aluminium.getMolten(16)) @@ -163,7 +163,7 @@ public class FusionReactorRecipes implements Runnable { .duration(3 * SECONDS + 4 * TICKS) .eut(49152) .metadata(FUSION_THRESHOLD, 240000000) - .addTo(sFusionRecipes); // FT2 - utility + .addTo(fusionRecipes); // FT2 - utility GT_Values.RA.stdBuilder() .fluidInputs(Materials.Uranium.getMolten(16), Materials.Helium.getGas(16)) @@ -171,7 +171,7 @@ public class FusionReactorRecipes implements Runnable { .duration(6 * SECONDS + 8 * TICKS) .eut(49152) .metadata(FUSION_THRESHOLD, 480000000) - .addTo(sFusionRecipes); // FT2+ - utility + .addTo(fusionRecipes); // FT2+ - utility GT_Values.RA.stdBuilder() .fluidInputs(Materials.Vanadium.getMolten(16), Materials.Hydrogen.getGas(125)) @@ -179,7 +179,7 @@ public class FusionReactorRecipes implements Runnable { .duration(3 * SECONDS + 4 * TICKS) .eut(24576) .metadata(FUSION_THRESHOLD, 140000000) - .addTo(sFusionRecipes); // FT1 - utility + .addTo(fusionRecipes); // FT1 - utility GT_Values.RA.stdBuilder() .fluidInputs(Materials.Gallium.getMolten(16), Materials.Radon.getGas(125)) @@ -187,7 +187,7 @@ public class FusionReactorRecipes implements Runnable { .duration(3 * SECONDS + 4 * TICKS) .eut(16384) .metadata(FUSION_THRESHOLD, 140000000) - .addTo(sFusionRecipes); + .addTo(fusionRecipes); GT_Values.RA.stdBuilder() .fluidInputs(Materials.Titanium.getMolten(48), Materials.Duranium.getMolten(32)) @@ -195,7 +195,7 @@ public class FusionReactorRecipes implements Runnable { .duration(3 * SECONDS + 4 * TICKS) .eut(TierEU.RECIPE_LuV) .metadata(FUSION_THRESHOLD, 200000000) - .addTo(sFusionRecipes); + .addTo(fusionRecipes); GT_Values.RA.stdBuilder() .fluidInputs(Materials.Tantalum.getMolten(16), Materials.Tritium.getGas(16)) @@ -203,7 +203,7 @@ public class FusionReactorRecipes implements Runnable { .duration(16 * TICKS) .eut(24576) .metadata(FUSION_THRESHOLD, 200000000) - .addTo(sFusionRecipes); // + .addTo(fusionRecipes); // GT_Values.RA.stdBuilder() .fluidInputs(Materials.Silver.getMolten(16), Materials.Lithium.getMolten(16)) @@ -211,7 +211,7 @@ public class FusionReactorRecipes implements Runnable { .duration(1 * SECONDS + 12 * TICKS) .eut(24576) .metadata(FUSION_THRESHOLD, 380000000) - .addTo(sFusionRecipes); // + .addTo(fusionRecipes); // GT_Values.RA.stdBuilder() .fluidInputs(Materials.Copper.getMolten(72), Materials.Tritium.getGas(250)) @@ -219,7 +219,7 @@ public class FusionReactorRecipes implements Runnable { .duration(16 * TICKS) .eut(49152) .metadata(FUSION_THRESHOLD, 180000000) - .addTo(sFusionRecipes); // FT2 - farmable + .addTo(fusionRecipes); // FT2 - farmable GT_Values.RA.stdBuilder() .fluidInputs(Materials.Cobalt.getMolten(144), Materials.Silicon.getMolten(144)) @@ -227,7 +227,7 @@ public class FusionReactorRecipes implements Runnable { .duration(16 * TICKS) .eut(49152) .metadata(FUSION_THRESHOLD, 200000000) - .addTo(sFusionRecipes); // FT2 - utility + .addTo(fusionRecipes); // FT2 - utility GT_Values.RA.stdBuilder() .fluidInputs(Materials.Gold.getMolten(144), Materials.Arsenic.getMolten(144)) @@ -235,7 +235,7 @@ public class FusionReactorRecipes implements Runnable { .duration(16 * TICKS) .eut(49152) .metadata(FUSION_THRESHOLD, 350000000) - .addTo(sFusionRecipes); // FT2+ + .addTo(fusionRecipes); // FT2+ GT_Values.RA.stdBuilder() .fluidInputs(Materials.Silver.getMolten(144), Materials.Helium_3.getGas(375)) @@ -243,7 +243,7 @@ public class FusionReactorRecipes implements Runnable { .duration(16 * TICKS) .eut(49152) .metadata(FUSION_THRESHOLD, 280000000) - .addTo(sFusionRecipes); // FT2 + .addTo(fusionRecipes); // FT2 GT_Values.RA.stdBuilder() .fluidInputs(Materials.Tantalum.getMolten(144), Materials.Zinc.getPlasma(72)) @@ -251,7 +251,7 @@ public class FusionReactorRecipes implements Runnable { .duration(16 * TICKS) .eut(98304) .metadata(FUSION_THRESHOLD, 350000000) - .addTo(sFusionRecipes); // FT3 - farmable + .addTo(fusionRecipes); // FT3 - farmable GT_Values.RA.stdBuilder() .fluidInputs(Materials.Iridium.getMolten(144), Materials.Fluorine.getGas(500)) @@ -259,7 +259,7 @@ public class FusionReactorRecipes implements Runnable { .duration(1 * SECONDS + 12 * TICKS) .eut(98304) .metadata(FUSION_THRESHOLD, 450000000) - .addTo(sFusionRecipes); // FT3 - utility + .addTo(fusionRecipes); // FT3 - utility GT_Values.RA.stdBuilder() .fluidInputs(Materials.Plutonium241.getMolten(144), Materials.Hydrogen.getGas(2000)) @@ -267,7 +267,7 @@ public class FusionReactorRecipes implements Runnable { .duration(3 * SECONDS + 4 * TICKS) .eut(98304) .metadata(FUSION_THRESHOLD, 500000000) - .addTo(sFusionRecipes); // FT3 + .addTo(fusionRecipes); // FT3 GT_Values.RA.stdBuilder() .fluidInputs(Materials.Lutetium.getMolten(144), Materials.Vanadium.getMolten(144)) @@ -275,7 +275,7 @@ public class FusionReactorRecipes implements Runnable { .duration(8 * TICKS) .eut(TierEU.RECIPE_UEV / 2) .metadata(FUSION_THRESHOLD, 1_000_000_000) - .addTo(sFusionRecipes); // FT5 because of UEV voltage + .addTo(fusionRecipes); // FT5 because of UEV voltage GT_Values.RA.stdBuilder() .fluidInputs(Materials.Tellurium.getMolten(144), Materials.Zinc.getMolten(144)) @@ -283,7 +283,7 @@ public class FusionReactorRecipes implements Runnable { .duration(8 * TICKS) .eut(TierEU.RECIPE_UEV / 2) .metadata(FUSION_THRESHOLD, 1_000_000_000) - .addTo(sFusionRecipes); // FT5 because of UEV voltage + .addTo(fusionRecipes); // FT5 because of UEV voltage GT_Values.RA.stdBuilder() .fluidInputs(Materials.Osmium.getMolten(144), Materials.Silicon.getMolten(144)) @@ -291,6 +291,6 @@ public class FusionReactorRecipes implements Runnable { .duration(8 * TICKS) .eut(TierEU.RECIPE_UEV / 2) .metadata(FUSION_THRESHOLD, 1_000_000_000) - .addTo(sFusionRecipes); // FT5 because of UEV voltage + .addTo(fusionRecipes); // FT5 because of UEV voltage } } diff --git a/src/main/java/gregtech/loaders/postload/recipes/ImplosionCompressorRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/ImplosionCompressorRecipes.java index e0eaa38a5c..a9764de8c6 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/ImplosionCompressorRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/ImplosionCompressorRecipes.java @@ -2,8 +2,8 @@ package gregtech.loaders.postload.recipes; import static gregtech.api.enums.Mods.GalacticraftCore; import static gregtech.api.enums.Mods.GalacticraftMars; +import static gregtech.api.recipe.RecipeMaps.implosionRecipes; import static gregtech.api.util.GT_ModHandler.getModItem; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sImplosionRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import net.minecraft.item.ItemStack; @@ -28,7 +28,7 @@ public class ImplosionCompressorRecipes implements Runnable { .metadata(GT_RecipeConstants.ADDITIVE_AMOUNT, 8) .duration(1 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sImplosionRecipes); + .addTo(implosionRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Ingot_IridiumAlloy.get(1L)) @@ -38,7 +38,7 @@ public class ImplosionCompressorRecipes implements Runnable { .metadata(GT_RecipeConstants.ADDITIVE_AMOUNT, 8) .duration(1 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sImplosionRecipes); + .addTo(implosionRecipes); if (GalacticraftMars.isModLoaded()) { @@ -50,7 +50,7 @@ public class ImplosionCompressorRecipes implements Runnable { .metadata(GT_RecipeConstants.ADDITIVE_AMOUNT, 8) .duration(1 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sImplosionRecipes); + .addTo(implosionRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Ingot_Heavy2.get(1L)) @@ -60,7 +60,7 @@ public class ImplosionCompressorRecipes implements Runnable { .metadata(GT_RecipeConstants.ADDITIVE_AMOUNT, 16) .duration(1 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sImplosionRecipes); + .addTo(implosionRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Ingot_Heavy3.get(1L)) @@ -70,7 +70,7 @@ public class ImplosionCompressorRecipes implements Runnable { .metadata(GT_RecipeConstants.ADDITIVE_AMOUNT, 24) .duration(1 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sImplosionRecipes); + .addTo(implosionRecipes); } } @@ -82,6 +82,6 @@ public class ImplosionCompressorRecipes implements Runnable { .metadata(GT_RecipeConstants.ADDITIVE_AMOUNT, explosiveAmount) .duration(1 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sImplosionRecipes); + .addTo(implosionRecipes); } } diff --git a/src/main/java/gregtech/loaders/postload/recipes/LaserEngraverRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/LaserEngraverRecipes.java index d6727644fa..be21c84d66 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/LaserEngraverRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/LaserEngraverRecipes.java @@ -1,6 +1,6 @@ package gregtech.loaders.postload.recipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sLaserEngraverRecipes; +import static gregtech.api.recipe.RecipeMaps.laserEngraverRecipes; import static gregtech.api.util.GT_RecipeBuilder.MINUTES; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; @@ -20,7 +20,7 @@ public class LaserEngraverRecipes implements Runnable { .duration(41 * MINUTES + 40 * SECONDS) .eut((int) TierEU.RECIPE_ZPM) .noOptimize() - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); GT_Values.RA.stdBuilder() .fluidInputs(MaterialsUEVplus.DimensionallyTranscendentProsaicCatalyst.getFluid(1000)) @@ -29,7 +29,7 @@ public class LaserEngraverRecipes implements Runnable { .duration(41 * MINUTES + 40 * SECONDS) .eut((int) TierEU.RECIPE_UV) .noOptimize() - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); GT_Values.RA.stdBuilder() .fluidInputs(MaterialsUEVplus.DimensionallyTranscendentResplendentCatalyst.getFluid(1000)) @@ -38,7 +38,7 @@ public class LaserEngraverRecipes implements Runnable { .duration(41 * MINUTES + 40 * SECONDS) .eut((int) TierEU.RECIPE_UHV) .noOptimize() - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); GT_Values.RA.stdBuilder() .fluidInputs(MaterialsUEVplus.DimensionallyTranscendentExoticCatalyst.getFluid(1000)) @@ -47,7 +47,7 @@ public class LaserEngraverRecipes implements Runnable { .duration(41 * MINUTES + 40 * SECONDS) .eut((int) TierEU.RECIPE_UEV) .noOptimize() - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); GT_Values.RA.stdBuilder() .fluidInputs(MaterialsUEVplus.DimensionallyTranscendentStellarCatalyst.getFluid(1000)) @@ -56,7 +56,7 @@ public class LaserEngraverRecipes implements Runnable { .duration(41 * MINUTES + 40 * SECONDS) .eut((int) TierEU.RECIPE_UIV) .noOptimize() - .addTo(sLaserEngraverRecipes); + .addTo(laserEngraverRecipes); } } diff --git a/src/main/java/gregtech/loaders/postload/recipes/LatheRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/LatheRecipes.java index 619c261762..4413f61200 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/LatheRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/LatheRecipes.java @@ -1,8 +1,8 @@ package gregtech.loaders.postload.recipes; import static gregtech.api.enums.Mods.Forestry; +import static gregtech.api.recipe.RecipeMaps.latheRecipes; import static gregtech.api.util.GT_ModHandler.getModItem; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sLatheRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; @@ -26,7 +26,7 @@ public class LatheRecipes implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Wood, 1)) .duration(2 * SECONDS + 10 * TICKS) .eut(8) - .addTo(sLatheRecipes); + .addTo(latheRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Forestry.ID, "slabs", 1L, GT_Values.W)) @@ -35,6 +35,6 @@ public class LatheRecipes implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Wood, 1)) .duration(2 * SECONDS + 10 * TICKS) .eut(8) - .addTo(sLatheRecipes); + .addTo(latheRecipes); } } diff --git a/src/main/java/gregtech/loaders/postload/recipes/MatterAmplifierRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/MatterAmplifierRecipes.java index f286e66ab8..863f0ae440 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/MatterAmplifierRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/MatterAmplifierRecipes.java @@ -1,6 +1,6 @@ package gregtech.loaders.postload.recipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sAmplifiers; +import static gregtech.api.recipe.RecipeMaps.amplifierRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import gregtech.api.enums.GT_Values; @@ -17,13 +17,13 @@ public class MatterAmplifierRecipes implements Runnable { .fluidOutputs(Materials.UUAmplifier.getFluid(1)) .duration(9 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAmplifiers); + .addTo(amplifierRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.IC2_Scrapbox.get(1L)) .fluidOutputs(Materials.UUAmplifier.getFluid(1)) .duration(9 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sAmplifiers); + .addTo(amplifierRecipes); } } diff --git a/src/main/java/gregtech/loaders/postload/recipes/MixerRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/MixerRecipes.java index fbb87a941c..fd315542e5 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/MixerRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/MixerRecipes.java @@ -7,8 +7,8 @@ import static gregtech.api.enums.Mods.Natura; import static gregtech.api.enums.Mods.PamsHarvestCraft; import static gregtech.api.enums.Mods.Railcraft; import static gregtech.api.enums.Mods.Thaumcraft; +import static gregtech.api.recipe.RecipeMaps.mixerRecipes; import static gregtech.api.util.GT_ModHandler.getModItem; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sMixerRecipes; import static gregtech.api.util.GT_RecipeBuilder.MINUTES; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; @@ -48,7 +48,7 @@ public class MixerRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.getDust(Materials.EnderEye, OrePrefixes.dust.mMaterialAmount)) .duration(5 * SECONDS) .eut(48) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -58,7 +58,7 @@ public class MixerRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.getDust(Materials.Electrum, 2L * OrePrefixes.dust.mMaterialAmount)) .duration(10 * SECONDS) .eut(8) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -68,7 +68,7 @@ public class MixerRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.getDust(Materials.Invar, 3L * OrePrefixes.dust.mMaterialAmount)) .duration(15 * SECONDS) .eut(8) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -80,7 +80,7 @@ public class MixerRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.getDust(Materials.StainlessSteel, 9L * OrePrefixes.dust.mMaterialAmount)) .duration(45 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -91,7 +91,7 @@ public class MixerRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.getDust(Materials.Kanthal, 3L * OrePrefixes.dust.mMaterialAmount)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -101,7 +101,7 @@ public class MixerRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.getDust(Materials.Brass, 4L * OrePrefixes.dust.mMaterialAmount)) .duration(2 * SECONDS) .eut(8) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -111,7 +111,7 @@ public class MixerRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.getDust(Materials.Bronze, 4L * OrePrefixes.dust.mMaterialAmount)) .duration(2 * SECONDS) .eut(8) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -121,7 +121,7 @@ public class MixerRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.getDust(Materials.Cupronickel, 2L * OrePrefixes.dust.mMaterialAmount)) .duration(10 * SECONDS) .eut(24) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -131,7 +131,7 @@ public class MixerRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.getDust(Materials.SterlingSilver, 5L * OrePrefixes.dust.mMaterialAmount)) .duration(25 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -141,7 +141,7 @@ public class MixerRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.getDust(Materials.BlackBronze, 5L * OrePrefixes.dust.mMaterialAmount)) .duration(25 * SECONDS) .eut(8) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -151,7 +151,7 @@ public class MixerRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.getDust(Materials.BismuthBronze, 5L * OrePrefixes.dust.mMaterialAmount)) .duration(25 * SECONDS) .eut(8) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -162,7 +162,7 @@ public class MixerRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.getDust(Materials.BlackSteel, 5L * OrePrefixes.dust.mMaterialAmount)) .duration(25 * SECONDS) .eut(8) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -174,7 +174,7 @@ public class MixerRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.getDust(Materials.RedSteel, 8L * OrePrefixes.dust.mMaterialAmount)) .duration(40 * SECONDS) .eut(8) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -186,7 +186,7 @@ public class MixerRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.getDust(Materials.BlueSteel, 8L * OrePrefixes.dust.mMaterialAmount)) .duration(40 * SECONDS) .eut(8) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -199,7 +199,7 @@ public class MixerRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.getDust(Materials.BlackSteel, 25L * OrePrefixes.dust.mMaterialAmount)) .duration(40 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -213,7 +213,7 @@ public class MixerRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.getDust(Materials.RedSteel, 40L * OrePrefixes.dust.mMaterialAmount)) .duration(60 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -230,7 +230,7 @@ public class MixerRecipes implements Runnable { GT_OreDictUnificator.getDust(Materials.BlueSteel, 32L * OrePrefixes.dust.mMaterialAmount)) .duration(3 * MINUTES) .eut(TierEU.RECIPE_HV) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -242,7 +242,7 @@ public class MixerRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.getDust(Materials.Ultimet, 9L * OrePrefixes.dust.mMaterialAmount)) .duration(45 * SECONDS) .eut(500) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -253,7 +253,7 @@ public class MixerRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.getDust(Materials.CobaltBrass, 9L * OrePrefixes.dust.mMaterialAmount)) .duration(45 * SECONDS) .eut(8) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -264,7 +264,7 @@ public class MixerRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.getDust(Materials.Gunpowder, 6L * OrePrefixes.dust.mMaterialAmount)) .duration(30 * SECONDS) .eut(8) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -275,7 +275,7 @@ public class MixerRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.getDust(Materials.Gunpowder, 6L * OrePrefixes.dust.mMaterialAmount)) .duration(30 * SECONDS) .eut(8) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -286,7 +286,7 @@ public class MixerRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.getDust(Materials.Gunpowder, 6L * OrePrefixes.dust.mMaterialAmount)) .duration(30 * SECONDS) .eut(8) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -298,7 +298,7 @@ public class MixerRecipes implements Runnable { GT_OreDictUnificator.getDust(Materials.IndiumGalliumPhosphide, 3L * OrePrefixes.dust.mMaterialAmount)) .duration(10 * SECONDS) .eut(8) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -307,7 +307,7 @@ public class MixerRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.getDust(Materials.Fireclay, 2L * OrePrefixes.dust.mMaterialAmount)) .duration(10 * SECONDS) .eut(8) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -317,7 +317,7 @@ public class MixerRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.getDust(Materials.Nichrome, 5L * OrePrefixes.dust.mMaterialAmount)) .duration(25 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -327,7 +327,7 @@ public class MixerRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.getDust(Materials.Osmiridium, 4L * OrePrefixes.dust.mMaterialAmount)) .duration(2 * SECONDS) .eut(2000) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -337,7 +337,7 @@ public class MixerRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.getDust(Materials.NiobiumTitanium, 2L * OrePrefixes.dust.mMaterialAmount)) .duration(10 * SECONDS) .eut(2000) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -347,7 +347,7 @@ public class MixerRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.getDust(Materials.VanadiumGallium, 4L * OrePrefixes.dust.mMaterialAmount)) .duration(2 * SECONDS) .eut(2000) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -357,7 +357,7 @@ public class MixerRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.getDust(Materials.TungstenCarbide, 2L * OrePrefixes.dust.mMaterialAmount)) .duration(10 * SECONDS) .eut(500) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -367,7 +367,7 @@ public class MixerRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.getDust(Materials.TungstenSteel, 2L * OrePrefixes.dust.mMaterialAmount)) .duration(2 * SECONDS + 10 * TICKS) .eut(TierEU.RECIPE_EV) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -378,7 +378,7 @@ public class MixerRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.getDust(Materials.TPV, 7L * OrePrefixes.dust.mMaterialAmount)) .duration(8 * SECONDS + 15 * TICKS) .eut(TierEU.RECIPE_EV) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -390,7 +390,7 @@ public class MixerRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.getDust(Materials.HSSG, 9L * OrePrefixes.dust.mMaterialAmount)) .duration(30 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -402,7 +402,7 @@ public class MixerRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.getDust(Materials.HSSE, 9L * OrePrefixes.dust.mMaterialAmount)) .duration(35 * SECONDS) .eut(4096) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -413,7 +413,7 @@ public class MixerRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.getDust(Materials.HSSS, 9L * OrePrefixes.dust.mMaterialAmount)) .duration(40 * SECONDS) .eut(TierEU.RECIPE_IV) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -424,7 +424,7 @@ public class MixerRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.getDust(Materials.FerriteMixture, 6L * OrePrefixes.dust.mMaterialAmount)) .duration(10 * SECONDS) .eut(8) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -434,7 +434,7 @@ public class MixerRecipes implements Runnable { GT_OreDictUnificator.getDust(Materials.BorosilicateGlass, 8L * OrePrefixes.dust.mMaterialAmount)) .duration(10 * SECONDS) .eut(8) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -447,7 +447,7 @@ public class MixerRecipes implements Runnable { .fluidOutputs(getFluidStack("sludge", 1000)) .duration(6 * SECONDS + 8 * TICKS) .eut(24) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wheat, 1)) @@ -455,7 +455,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.Water.getFluid(1000)) .duration(1 * SECONDS + 12 * TICKS) .eut(8) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -464,7 +464,7 @@ public class MixerRecipes implements Runnable { .itemOutputs(ItemList.Food_ChiliChips.get(1)) .duration(1 * SECONDS + 12 * TICKS) .eut(8) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -473,7 +473,7 @@ public class MixerRecipes implements Runnable { .itemOutputs(ItemList.IC2_Energium_Dust.get(1)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -482,7 +482,7 @@ public class MixerRecipes implements Runnable { .itemOutputs(ItemList.IC2_Energium_Dust.get(9)) .duration(30 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -492,7 +492,7 @@ public class MixerRecipes implements Runnable { .itemOutputs(new ItemStack(Items.fermented_spider_eye, 1)) .duration(5 * SECONDS) .eut(8) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -502,7 +502,7 @@ public class MixerRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.IronWood, 2)) .duration(5 * SECONDS) .eut(8) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -512,7 +512,7 @@ public class MixerRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.IronWood, 18)) .duration(45 * SECONDS) .eut(8) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -523,7 +523,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.Water.getFluid(500)) .duration(20 * TICKS) .eut(16) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -534,7 +534,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(GT_ModHandler.getDistilledWater(500)) .duration(20 * TICKS) .eut(16) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -545,7 +545,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.Water.getFluid(1000)) .duration(3 * SECONDS + 4 * TICKS) .eut(16) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -556,7 +556,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.Water.getFluid(1000)) .duration(3 * SECONDS + 4 * TICKS) .eut(16) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -567,7 +567,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.Water.getFluid(1000)) .duration(3 * SECONDS + 4 * TICKS) .eut(16) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -578,7 +578,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.Water.getFluid(1000)) .duration(3 * SECONDS + 4 * TICKS) .eut(16) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -589,7 +589,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.Water.getFluid(250)) .duration(16 * TICKS) .eut(16) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -598,7 +598,7 @@ public class MixerRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Fuel, 6)) .duration(16 * TICKS) .eut(TierEU.RECIPE_MV) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -609,7 +609,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.HeavyFuel.getFluid(1000)) .duration(16 * TICKS) .eut(TierEU.RECIPE_MV) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -620,7 +620,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.LightFuel.getFluid(5000)) .duration(16 * TICKS) .eut(TierEU.RECIPE_MV) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -631,7 +631,7 @@ public class MixerRecipes implements Runnable { .fluidOutputs(Materials.Fuel.getFluid(6000)) .duration(16 * TICKS) .eut(TierEU.RECIPE_MV) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -642,7 +642,7 @@ public class MixerRecipes implements Runnable { .fluidOutputs(Materials.Fuel.getFluid(6000)) .duration(16 * TICKS) .eut(TierEU.RECIPE_MV) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -653,7 +653,7 @@ public class MixerRecipes implements Runnable { .fluidOutputs(new FluidStack(ItemList.sDrillingFluid, 5000)) .duration(3 * SECONDS + 4 * TICKS) .eut(16) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -663,7 +663,7 @@ public class MixerRecipes implements Runnable { .fluidOutputs(getFluidStack("ic2coolant", 125)) .duration(12 * SECONDS + 16 * TICKS) .eut(48) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -673,7 +673,7 @@ public class MixerRecipes implements Runnable { .fluidOutputs(getFluidStack("ic2coolant", 1000)) .duration(12 * SECONDS + 16 * TICKS) .eut(48) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -685,7 +685,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.AdvancedGlue.getFluid(200)) .duration(40 * SECONDS) .eut(16) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -697,7 +697,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.AdvancedGlue.getFluid(200)) .duration(40 * SECONDS) .eut(16) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -709,7 +709,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.AdvancedGlue.getFluid(200)) .duration(40 * SECONDS) .eut(16) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -721,7 +721,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.McGuffium239.getFluid(12)) .duration(20 * SECONDS) .eut(16) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -733,7 +733,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.McGuffium239.getFluid(8)) .duration(20 * SECONDS) .eut(16) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -745,7 +745,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.McGuffium239.getFluid(4)) .duration(20 * SECONDS) .eut(16) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.SFMixture.get(2), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.EnderEye, 1)) @@ -753,7 +753,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.Mercury.getFluid(1000)) .duration(15 * SECONDS) .eut(64) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.SFMixture.get(1), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Blaze, 1)) @@ -761,7 +761,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.Mercury.getFluid(500)) .duration(15 * SECONDS) .eut(64) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -773,7 +773,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.NitroFuel.getFluid(4000)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -785,7 +785,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.NitroFuel.getFluid(3000)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -797,7 +797,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.NitroFuel.getFluid(2000)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -809,7 +809,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.GasolinePremium.getFluid(1600)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -821,7 +821,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.GasolinePremium.getFluid(1200)) .duration(15 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -833,7 +833,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.GasolinePremium.getFluid(800)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); if (Thaumcraft.isModLoaded()) { GT_Values.RA.stdBuilder() @@ -845,7 +845,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.FierySteel.getFluid(50)) .duration(10 * SECONDS) .eut(64) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -856,7 +856,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.FierySteel.getFluid(50)) .duration(10 * SECONDS) .eut(64) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -867,7 +867,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.FierySteel.getFluid(50)) .duration(10 * SECONDS) .eut(64) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -878,7 +878,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.FierySteel.getFluid(50)) .duration(10 * SECONDS) .eut(64) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -889,7 +889,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.FierySteel.getFluid(50)) .duration(10 * SECONDS) .eut(64) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -900,7 +900,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.FierySteel.getFluid(50)) .duration(10 * SECONDS) .eut(64) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); FluidStack tFD = getFluidStack("fluiddeath", 30); if (tFD != null && tFD.getFluid() != null && tFD.amount > 0) { @@ -913,7 +913,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(tFD) .duration(10 * SECONDS) .eut(64) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -924,7 +924,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(tFD) .duration(10 * SECONDS) .eut(64) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -935,7 +935,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(tFD) .duration(10 * SECONDS) .eut(64) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -946,7 +946,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(tFD) .duration(10 * SECONDS) .eut(64) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -957,7 +957,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(tFD) .duration(10 * SECONDS) .eut(64) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -968,7 +968,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(tFD) .duration(10 * SECONDS) .eut(64) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -980,7 +980,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.NitroFuel.getFluid(1000)) .duration(7 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -992,7 +992,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.NitroFuel.getFluid(750)) .duration(6 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1004,7 +1004,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.NitroFuel.getFluid(500)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1016,7 +1016,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.GasolinePremium.getFluid(400)) .duration(7 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1028,7 +1028,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.GasolinePremium.getFluid(300)) .duration(6 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1040,7 +1040,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.GasolinePremium.getFluid(200)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); } } @@ -1053,7 +1053,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.NitroFuel.getFluid(1000)) .duration(7 * SECONDS) .eut(250) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1064,7 +1064,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.NitroFuel.getFluid(750)) .duration(6 * SECONDS) .eut(250) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1075,7 +1075,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.NitroFuel.getFluid(500)) .duration(5 * SECONDS) .eut(250) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1086,7 +1086,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.GasolinePremium.getFluid(400)) .duration(7 * SECONDS) .eut(250) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1097,7 +1097,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.GasolinePremium.getFluid(300)) .duration(6 * SECONDS) .eut(250) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1108,7 +1108,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.GasolinePremium.getFluid(200)) .duration(5 * SECONDS) .eut(250) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1119,7 +1119,7 @@ public class MixerRecipes implements Runnable { .fluidOutputs(new FluidStack(ItemList.sNitrationMixture, 2000)) .duration(24 * SECONDS) .eut(2) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1129,7 +1129,7 @@ public class MixerRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.NitrationMixture, 2)) .duration(24 * SECONDS) .eut(2) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1140,7 +1140,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.Water.getFluid(100)) .duration(10 * SECONDS) .eut(16) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1151,7 +1151,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.Water.getFluid(100)) .duration(10 * SECONDS) .eut(16) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1162,7 +1162,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.Water.getFluid(100)) .duration(10 * SECONDS) .eut(16) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1173,7 +1173,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.Water.getFluid(100)) .duration(10 * SECONDS) .eut(16) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1184,7 +1184,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.Water.getFluid(100)) .duration(10 * SECONDS) .eut(16) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1195,7 +1195,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.Water.getFluid(100)) .duration(10 * SECONDS) .eut(16) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1206,7 +1206,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.Water.getFluid(100)) .duration(10 * SECONDS) .eut(16) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1217,7 +1217,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.Water.getFluid(100)) .duration(10 * SECONDS) .eut(16) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1228,7 +1228,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.Water.getFluid(100)) .duration(10 * SECONDS) .eut(16) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1239,7 +1239,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.Water.getFluid(100)) .duration(10 * SECONDS) .eut(16) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1250,7 +1250,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.Water.getFluid(100)) .duration(10 * SECONDS) .eut(16) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1261,7 +1261,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.Water.getFluid(100)) .duration(10 * SECONDS) .eut(16) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1272,7 +1272,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.Water.getFluid(100)) .duration(10 * SECONDS) .eut(16) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1283,7 +1283,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.Water.getFluid(100)) .duration(10 * SECONDS) .eut(16) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); // radiation manufacturing @@ -1293,7 +1293,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.Helium.getGas(250)) .duration(1 * SECONDS + 10 * TICKS) .eut(16) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs(MaterialsOreAlum.SluiceSand.getDust(1)) @@ -1301,7 +1301,7 @@ public class MixerRecipes implements Runnable { .fluidOutputs(MaterialsOreAlum.SluiceJuice.getFluid(1000)) .duration(5 * SECONDS) .eut(16) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); // NaCl + H2O = (NaCl·H2O) @@ -1311,7 +1311,7 @@ public class MixerRecipes implements Runnable { .fluidOutputs(Materials.SaltWater.getFluid(1000)) .duration(5 * SECONDS) .eut(8) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); // CaCO3 + 2 CH3COOH = Ca(CH3COO)2 + H2O + CO2 @@ -1322,7 +1322,7 @@ public class MixerRecipes implements Runnable { .fluidOutputs(Materials.CalciumAcetateSolution.getFluid(1000)) .duration(12 * SECONDS) .eut(16) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Calcite.getDust(5), Materials.Empty.getCells(2), GT_Utility.getIntegratedCircuit(11)) @@ -1331,7 +1331,7 @@ public class MixerRecipes implements Runnable { .fluidOutputs(Materials.Water.getFluid(1000)) .duration(12 * SECONDS) .eut(16) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Calcite.getDust(5), Materials.Empty.getCells(2), GT_Utility.getIntegratedCircuit(21)) @@ -1340,7 +1340,7 @@ public class MixerRecipes implements Runnable { .fluidOutputs(Materials.CarbonDioxide.getGas(1000)) .duration(12 * SECONDS) .eut(16) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Calcite.getDust(5), Materials.Empty.getCells(1), GT_Utility.getIntegratedCircuit(4)) @@ -1349,7 +1349,7 @@ public class MixerRecipes implements Runnable { .fluidOutputs(Materials.CalciumAcetateSolution.getFluid(1000)) .duration(12 * SECONDS) .eut(16) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Calcite.getDust(5), Materials.Empty.getCells(1), GT_Utility.getIntegratedCircuit(14)) @@ -1358,7 +1358,7 @@ public class MixerRecipes implements Runnable { .fluidOutputs(Materials.CarbonDioxide.getGas(1000)) .duration(12 * SECONDS) .eut(16) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); // Ca + 2 CH3COOH = Ca(CH3COO)2 + 2H @@ -1369,7 +1369,7 @@ public class MixerRecipes implements Runnable { .fluidOutputs(Materials.CalciumAcetateSolution.getFluid(1000)) .duration(4 * SECONDS) .eut(16) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Calcium.getDust(1), Materials.Empty.getCells(1), GT_Utility.getIntegratedCircuit(11)) @@ -1378,7 +1378,7 @@ public class MixerRecipes implements Runnable { .fluidOutputs(Materials.Hydrogen.getGas(2000)) .duration(4 * SECONDS) .eut(16) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); // CaO + 2 CH3COOH = Ca(CH3COO)2 + H2O @@ -1389,7 +1389,7 @@ public class MixerRecipes implements Runnable { .fluidOutputs(Materials.CalciumAcetateSolution.getFluid(1000)) .duration(4 * SECONDS) .eut(16) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1401,7 +1401,7 @@ public class MixerRecipes implements Runnable { .fluidOutputs(Materials.Water.getFluid(1000)) .duration(4 * SECONDS) .eut(16) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); // 2CH3COOCH3 + 3CH3COCH3/(C4H6O2)n = 5Glue @@ -1412,7 +1412,7 @@ public class MixerRecipes implements Runnable { .fluidOutputs(Materials.AdvancedGlue.getFluid(5000)) .duration(5 * SECONDS) .eut(8) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.PolyvinylAcetate.getCells(2)) @@ -1421,7 +1421,7 @@ public class MixerRecipes implements Runnable { .fluidOutputs(Materials.AdvancedGlue.getFluid(5000)) .duration(5 * SECONDS) .eut(8) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.MethylAcetate.getCells(3)) @@ -1430,7 +1430,7 @@ public class MixerRecipes implements Runnable { .fluidOutputs(Materials.AdvancedGlue.getFluid(5000)) .duration(5 * SECONDS) .eut(8) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.PolyvinylAcetate.getCells(2)) @@ -1439,7 +1439,7 @@ public class MixerRecipes implements Runnable { .fluidOutputs(Materials.AdvancedGlue.getFluid(5000)) .duration(5 * SECONDS) .eut(8) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Sugar.getDust(4)) @@ -1448,7 +1448,7 @@ public class MixerRecipes implements Runnable { .fluidOutputs(Materials.DilutedSulfuricAcid.getFluid(1000)) .duration(60 * SECONDS) .eut(2) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Wood.getDust(4)) @@ -1457,7 +1457,7 @@ public class MixerRecipes implements Runnable { .fluidOutputs(Materials.DilutedSulfuricAcid.getFluid(1000)) .duration(60 * SECONDS) .eut(2) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Fuel.getCells(1)) @@ -1466,7 +1466,7 @@ public class MixerRecipes implements Runnable { .fluidOutputs(Materials.NitroFuel.getFluid(1000)) .duration(20 * TICKS) .eut(TierEU.RECIPE_HV) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.BioDiesel.getCells(1)) @@ -1475,7 +1475,7 @@ public class MixerRecipes implements Runnable { .fluidOutputs(Materials.NitroFuel.getFluid(900)) .duration(20 * TICKS) .eut(TierEU.RECIPE_HV) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); // CH4O + C4H8 = C5H12O @@ -1484,7 +1484,7 @@ public class MixerRecipes implements Runnable { .itemOutputs(Materials.MTBEMixture.getCells(1), Materials.Empty.getCells(1)) .duration(20 * TICKS) .eut(TierEU.RECIPE_HV) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1495,7 +1495,7 @@ public class MixerRecipes implements Runnable { .itemOutputs(Materials.GasolineRaw.getCells(20)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1508,7 +1508,7 @@ public class MixerRecipes implements Runnable { .fluidOutputs(Materials.GasolinePremium.getFluid(32000)) .duration(2 * SECONDS + 10 * TICKS) .eut(TierEU.RECIPE_EV) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); if (Railcraft.isModLoaded()) { GT_Values.RA.stdBuilder() @@ -1520,7 +1520,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.NitroFuel.getFluid(300)) .duration(5 * SECONDS) .eut(250) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1531,7 +1531,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.GasolinePremium.getFluid(120)) .duration(5 * SECONDS) .eut(250) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); } if (Thaumcraft.isModLoaded() && Railcraft.isModLoaded()) { @@ -1545,7 +1545,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.NitroFuel.getFluid(300)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -1557,7 +1557,7 @@ public class MixerRecipes implements Runnable { .fluidInputs(Materials.GasolinePremium.getFluid(120)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); } } @@ -1576,7 +1576,7 @@ public class MixerRecipes implements Runnable { .fluidOutputs(new FluidStack(FluidRegistry.getFluid("potion." + aName + ".splash"), 750)) .duration(10 * SECONDS) .eut(24) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); if (splashStrong) GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gunpowder, 1)) @@ -1584,7 +1584,7 @@ public class MixerRecipes implements Runnable { .fluidOutputs(new FluidStack(FluidRegistry.getFluid("potion." + aName + ".strong.splash"), 750)) .duration(10 * SECONDS) .eut(24) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); if (splashLong) GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gunpowder, 1)) @@ -1592,7 +1592,7 @@ public class MixerRecipes implements Runnable { .fluidOutputs(new FluidStack(FluidRegistry.getFluid("potion." + aName + ".long.splash"), 750)) .duration(10 * SECONDS) .eut(24) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); } public void registerSingleBlockAndMulti() { @@ -1604,7 +1604,7 @@ public class MixerRecipes implements Runnable { .itemOutputs(Materials.EnrichedHolmium.getDust(10)) .duration(30 * SECONDS) .eut(TierEU.RECIPE_ZPM) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); // Catalysts for Plasma Forge. { @@ -1619,7 +1619,7 @@ public class MixerRecipes implements Runnable { .duration(41 * MINUTES + 40 * SECONDS) .eut(TierEU.RECIPE_ZPM) .noOptimize() - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(10)) @@ -1633,7 +1633,7 @@ public class MixerRecipes implements Runnable { .duration(41 * MINUTES + 40 * SECONDS) .eut(TierEU.RECIPE_UV) .noOptimize() - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(11)) @@ -1647,7 +1647,7 @@ public class MixerRecipes implements Runnable { .duration(41 * MINUTES + 40 * SECONDS) .eut(TierEU.RECIPE_UHV) .noOptimize() - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(12)) @@ -1661,7 +1661,7 @@ public class MixerRecipes implements Runnable { .duration(41 * MINUTES + 40 * SECONDS) .eut(TierEU.RECIPE_UEV) .noOptimize() - .addTo(sMixerRecipes); + .addTo(mixerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(13)) @@ -1675,7 +1675,7 @@ public class MixerRecipes implements Runnable { .duration(41 * MINUTES + 40 * SECONDS) .eut(TierEU.RECIPE_UIV) .noOptimize() - .addTo(sMixerRecipes); + .addTo(mixerRecipes); } GT_Values.RA.stdBuilder() @@ -1684,6 +1684,6 @@ public class MixerRecipes implements Runnable { .fluidOutputs(Materials.WeedEX9000.getFluid(750)) .duration(5 * SECONDS) .eut(100) - .addTo(sMixerRecipes); + .addTo(mixerRecipes); } } diff --git a/src/main/java/gregtech/loaders/postload/recipes/PackagerRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/PackagerRecipes.java index d4e84e91e7..bb434cbf7d 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/PackagerRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/PackagerRecipes.java @@ -1,6 +1,6 @@ package gregtech.loaders.postload.recipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sBoxinatorRecipes; +import static gregtech.api.recipe.RecipeMaps.packagerRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; @@ -19,7 +19,7 @@ public class PackagerRecipes implements Runnable { .itemOutputs(ItemList.IC2_Scrapbox.get(1)) .duration(16 * TICKS) .eut(1) - .addTo(sBoxinatorRecipes); + .addTo(packagerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -28,7 +28,7 @@ public class PackagerRecipes implements Runnable { .itemOutputs(ItemList.Food_Packaged_Fries.get(1)) .duration(3 * SECONDS + 4 * TICKS) .eut(16) - .addTo(sBoxinatorRecipes); + .addTo(packagerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -37,7 +37,7 @@ public class PackagerRecipes implements Runnable { .itemOutputs(ItemList.Food_Packaged_PotatoChips.get(1)) .duration(3 * SECONDS + 4 * TICKS) .eut(16) - .addTo(sBoxinatorRecipes); + .addTo(packagerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -46,6 +46,6 @@ public class PackagerRecipes implements Runnable { .itemOutputs(ItemList.Food_Packaged_ChiliChips.get(1)) .duration(3 * SECONDS + 4 * TICKS) .eut(16) - .addTo(sBoxinatorRecipes); + .addTo(packagerRecipes); } } diff --git a/src/main/java/gregtech/loaders/postload/recipes/PlasmaForgeRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/PlasmaForgeRecipes.java index cb67c043ba..fe0f7c7ed5 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/PlasmaForgeRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/PlasmaForgeRecipes.java @@ -3,8 +3,8 @@ package gregtech.loaders.postload.recipes; import static gregtech.api.enums.Mods.GTPlusPlus; import static gregtech.api.enums.Mods.GoodGenerator; import static gregtech.api.enums.Mods.NewHorizonsCoreMod; +import static gregtech.api.recipe.RecipeMaps.plasmaForgeRecipes; import static gregtech.api.util.GT_ModHandler.getModItem; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sPlasmaForgeRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeConstants.COIL_HEAT; @@ -31,7 +31,7 @@ public class PlasmaForgeRecipes implements Runnable { .duration(86400 * 20 * 2) .eut(2_000_000_000) .metadata(COIL_HEAT, 13500) - .addTo(sPlasmaForgeRecipes); + .addTo(plasmaForgeRecipes); // Quantum anomaly recipe bypass for UEV+. Avoids RNG. GT_Values.RA.stdBuilder() @@ -45,6 +45,6 @@ public class PlasmaForgeRecipes implements Runnable { .duration(60 * SECONDS) .eut((int) TierEU.RECIPE_UEV) .metadata(COIL_HEAT, 10800) - .addTo(sPlasmaForgeRecipes); + .addTo(plasmaForgeRecipes); } } diff --git a/src/main/java/gregtech/loaders/postload/recipes/PrinterRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/PrinterRecipes.java index 7fc192025c..e8a52dd1f8 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/PrinterRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/PrinterRecipes.java @@ -1,6 +1,6 @@ package gregtech.loaders.postload.recipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sPrinterRecipes; +import static gregtech.api.recipe.RecipeMaps.printerRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static net.minecraftforge.fluids.FluidRegistry.getFluidStack; @@ -24,7 +24,7 @@ public class PrinterRecipes implements Runnable { .fluidInputs(getFluidStack("squidink", 36)) .duration(5 * SECONDS) .eut(2) - .addTo(sPrinterRecipes); + .addTo(printerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Paper_Punch_Card_Empty.get(1L)) @@ -33,7 +33,7 @@ public class PrinterRecipes implements Runnable { .fluidInputs(getFluidStack("squidink", 36)) .duration(5 * SECONDS) .eut(2) - .addTo(sPrinterRecipes); + .addTo(printerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Paper, 3L)) @@ -42,7 +42,7 @@ public class PrinterRecipes implements Runnable { .fluidInputs(getFluidStack("squidink", 144)) .duration(20 * SECONDS) .eut(2) - .addTo(sPrinterRecipes); + .addTo(printerRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.map, 1, 32767)) @@ -51,7 +51,7 @@ public class PrinterRecipes implements Runnable { .fluidInputs(getFluidStack("squidink", 144)) .duration(20 * SECONDS) .eut(2) - .addTo(sPrinterRecipes); + .addTo(printerRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.book, 1, 32767)) @@ -59,6 +59,6 @@ public class PrinterRecipes implements Runnable { .fluidInputs(getFluidStack("squidink", 144)) .duration(20 * SECONDS) .eut(2) - .addTo(sPrinterRecipes); + .addTo(printerRecipes); } } diff --git a/src/main/java/gregtech/loaders/postload/recipes/Pulverizer.java b/src/main/java/gregtech/loaders/postload/recipes/Pulverizer.java index 162c7d72f2..180e751d35 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/Pulverizer.java +++ b/src/main/java/gregtech/loaders/postload/recipes/Pulverizer.java @@ -4,8 +4,8 @@ import static gregtech.api.enums.Mods.AppliedEnergistics2; import static gregtech.api.enums.Mods.HardcoreEnderExpansion; import static gregtech.api.enums.Mods.Railcraft; import static gregtech.api.enums.Mods.Thaumcraft; +import static gregtech.api.recipe.RecipeMaps.maceratorRecipes; import static gregtech.api.util.GT_ModHandler.getModItem; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sMaceratorRecipes; import static gregtech.api.util.GT_RecipeBuilder.MINUTES; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; @@ -32,7 +32,7 @@ public class Pulverizer implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Steel, 19)) .duration(15 * SECONDS) .eut(4) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Long_Distance_Pipeline_Item.get(1)) @@ -41,14 +41,14 @@ public class Pulverizer implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Steel, 7)) .duration(15 * SECONDS) .eut(4) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Long_Distance_Pipeline_Fluid_Pipe.get(1)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Steel, 2)) .duration(10 * TICKS) .eut(4) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Long_Distance_Pipeline_Item_Pipe.get(1)) @@ -57,7 +57,7 @@ public class Pulverizer implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Steel, 1)) .duration(10 * TICKS) .eut(4) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); } // marbe dust( stone dust @@ -66,21 +66,21 @@ public class Pulverizer implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Marble, 1)) .duration(8 * SECONDS) .eut(4) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Thaumcraft.ID, "ItemResource", 1, 18)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Gold, 1)) .duration(1 * SECONDS + 1 * TICKS) .eut(4) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.reeds, 1)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1)) .duration(2 * SECONDS + 10 * TICKS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Casing_Coil_Cupronickel.get(1)) @@ -90,7 +90,7 @@ public class Pulverizer implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dust, Materials.QuartzSand, 2)) .duration(1 * MINUTES + 15 * SECONDS) .eut(80) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Casing_Coil_Kanthal.get(1)) @@ -100,7 +100,7 @@ public class Pulverizer implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dust, Materials.QuartzSand, 3)) .duration(1 * MINUTES + 15 * SECONDS) .eut(80) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Casing_Coil_Nichrome.get(1)) @@ -110,7 +110,7 @@ public class Pulverizer implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dust, Materials.QuartzSand, 4)) .duration(1 * MINUTES + 15 * SECONDS) .eut(80) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Casing_Coil_TungstenSteel.get(1)) @@ -120,7 +120,7 @@ public class Pulverizer implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dust, Materials.QuartzSand, 5)) .duration(1 * MINUTES + 15 * SECONDS) .eut(80) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Casing_Coil_HSSG.get(1)) @@ -130,7 +130,7 @@ public class Pulverizer implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dust, Materials.QuartzSand, 6)) .duration(1 * MINUTES + 15 * SECONDS) .eut(80) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Casing_Coil_HSSS.get(1)) @@ -140,7 +140,7 @@ public class Pulverizer implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dust, Materials.QuartzSand, 7)) .duration(1 * MINUTES + 15 * SECONDS) .eut(80) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Casing_Coil_Naquadah.get(1)) @@ -150,7 +150,7 @@ public class Pulverizer implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dust, Materials.QuartzSand, 8)) .duration(1 * MINUTES + 15 * SECONDS) .eut(80) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Casing_Coil_NaquadahAlloy.get(1)) @@ -160,7 +160,7 @@ public class Pulverizer implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dust, Materials.QuartzSand, 9)) .duration(1 * MINUTES + 15 * SECONDS) .eut(80) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Casing_Coil_Trinium.get(1)) @@ -170,7 +170,7 @@ public class Pulverizer implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dust, Materials.QuartzSand, 10)) .duration(1 * MINUTES + 15 * SECONDS) .eut(80) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Casing_Coil_ElectrumFlux.get(1)) @@ -180,7 +180,7 @@ public class Pulverizer implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dust, Materials.QuartzSand, 11)) .duration(1 * MINUTES + 15 * SECONDS) .eut(80) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Casing_Coil_AwakenedDraconium.get(1)) @@ -190,7 +190,7 @@ public class Pulverizer implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dust, Materials.QuartzSand, 12)) .duration(1 * MINUTES + 15 * SECONDS) .eut(80) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); if (Railcraft.isModLoaded()) { // recycling RC Tanks @@ -201,7 +201,7 @@ public class Pulverizer implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 2)) .duration(15 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.beta", 1L, 1)) @@ -210,7 +210,7 @@ public class Pulverizer implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Glass, 3)) .duration(15 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.beta", 1L, 2)) @@ -219,7 +219,7 @@ public class Pulverizer implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Iron, 3)) .duration(15 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); // Steel @@ -228,7 +228,7 @@ public class Pulverizer implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Steel, 2)) .duration(15 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.beta", 1L, 14)) @@ -237,7 +237,7 @@ public class Pulverizer implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Glass, 3)) .duration(15 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.beta", 1L, 15)) @@ -246,7 +246,7 @@ public class Pulverizer implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Steel, 3)) .duration(15 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); // Aluminium @@ -255,7 +255,7 @@ public class Pulverizer implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Aluminium, 2)) .duration(22 * SECONDS + 10 * TICKS) .eut(8) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 1)) @@ -264,7 +264,7 @@ public class Pulverizer implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Glass, 3)) .duration(22 * SECONDS + 10 * TICKS) .eut(8) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 2)) @@ -273,7 +273,7 @@ public class Pulverizer implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Aluminium, 3)) .duration(22 * SECONDS + 10 * TICKS) .eut(8) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); // Stainless Steel @@ -282,7 +282,7 @@ public class Pulverizer implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.StainlessSteel, 2)) .duration(30 * SECONDS) .eut(16) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 4)) @@ -291,7 +291,7 @@ public class Pulverizer implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Glass, 3)) .duration(30 * SECONDS) .eut(16) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 5)) @@ -300,7 +300,7 @@ public class Pulverizer implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.StainlessSteel, 3)) .duration(30 * SECONDS) .eut(16) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); // Titanium @@ -309,7 +309,7 @@ public class Pulverizer implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Titanium, 2)) .duration(30 * SECONDS) .eut(30) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 7)) @@ -318,7 +318,7 @@ public class Pulverizer implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Glass, 3)) .duration(30 * SECONDS) .eut(30) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 8)) @@ -327,7 +327,7 @@ public class Pulverizer implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Titanium, 3)) .duration(30 * SECONDS) .eut(30) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); // Tungesten Steel @@ -336,7 +336,7 @@ public class Pulverizer implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.TungstenSteel, 2)) .duration(30 * SECONDS) .eut(30) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 10)) @@ -345,7 +345,7 @@ public class Pulverizer implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Glass, 3)) .duration(30 * SECONDS) .eut(30) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 11)) @@ -354,7 +354,7 @@ public class Pulverizer implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.TungstenSteel, 3)) .duration(30 * SECONDS) .eut(30) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); // Palladium @@ -363,7 +363,7 @@ public class Pulverizer implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Palladium, 2)) .duration(37 * SECONDS + 10 * TICKS) .eut(64) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 13)) @@ -372,7 +372,7 @@ public class Pulverizer implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Glass, 3)) .duration(37 * SECONDS + 10 * TICKS) .eut(64) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.zeta", 1L, 14)) @@ -381,7 +381,7 @@ public class Pulverizer implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Chrome, 3)) .duration(37 * SECONDS + 10 * TICKS) .eut(64) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); // Iridium @@ -390,7 +390,7 @@ public class Pulverizer implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iridium, 2)) .duration(45 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.eta", 1L, 1)) @@ -399,7 +399,7 @@ public class Pulverizer implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Glass, 3)) .duration(45 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.eta", 1L, 2)) @@ -408,7 +408,7 @@ public class Pulverizer implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Iridium, 3)) .duration(45 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); // Osmium @@ -417,7 +417,7 @@ public class Pulverizer implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Osmium, 2)) .duration(52 * SECONDS + 10 * TICKS) .eut(256) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.eta", 1L, 4)) @@ -426,7 +426,7 @@ public class Pulverizer implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Glass, 3)) .duration(52 * SECONDS + 10 * TICKS) .eut(256) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.eta", 1L, 5)) @@ -435,7 +435,7 @@ public class Pulverizer implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Osmium, 3)) .duration(52 * SECONDS + 10 * TICKS) .eut(256) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); // Neutronium @@ -444,7 +444,7 @@ public class Pulverizer implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Neutronium, 2)) .duration(60 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.eta", 1L, 7)) @@ -453,7 +453,7 @@ public class Pulverizer implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Glass, 3)) .duration(60 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "machine.eta", 1L, 8)) @@ -462,14 +462,14 @@ public class Pulverizer implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Neutronium, 3)) .duration(60 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Railcraft.ID, "cube.crushed.obsidian", 1L)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Obsidian, 1L)) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); } if (AppliedEnergistics2.isModLoaded()) { @@ -478,14 +478,14 @@ public class Pulverizer implements Runnable { .itemOutputs(getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 45)) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(AppliedEnergistics2.ID, "tile.BlockSkyChest", 1L, 32767)) .itemOutputs(getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 8L, 45)) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); } GT_Values.RA.stdBuilder() @@ -494,7 +494,7 @@ public class Pulverizer implements Runnable { .outputChances(10000, 5000) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.web, 1, 0)) @@ -502,14 +502,14 @@ public class Pulverizer implements Runnable { .outputChances(10000, 5000) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.red_mushroom, 1, 32767)) .itemOutputs(ItemList.IC2_Grin_Powder.get(1L)) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.item_frame, 1, 32767)) @@ -519,7 +519,7 @@ public class Pulverizer implements Runnable { .outputChances(10000, 9500) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Items.bow, 1, 0)) @@ -529,49 +529,49 @@ public class Pulverizer implements Runnable { .outputChances(10000, 9500) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Brick.getIngots(1)) .itemOutputs(Materials.Brick.getDustSmall(1)) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.brick_stairs, 1, 0)) .itemOutputs(Materials.Brick.getDustSmall(6)) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.CompressedFireclay.get(1)) .itemOutputs(Materials.Fireclay.getDustSmall(1)) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Firebrick.get(1)) .itemOutputs(Materials.Brick.getDust(1)) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Casing_Firebricks.get(1)) .itemOutputs(Materials.Brick.getDust(4)) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Machine_Bricked_BlastFurnace.get(1)) .itemOutputs(Materials.Brick.getDust(8), Materials.Iron.getDust(1)) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); if (HardcoreEnderExpansion.isModLoaded()) { GT_Values.RA.stdBuilder() @@ -582,7 +582,7 @@ public class Pulverizer implements Runnable { .outputChances(10000, 5000) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); } } } diff --git a/src/main/java/gregtech/loaders/postload/recipes/PyrolyseRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/PyrolyseRecipes.java index d465f0f33c..51017358b4 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/PyrolyseRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/PyrolyseRecipes.java @@ -2,8 +2,8 @@ package gregtech.loaders.postload.recipes; import static gregtech.api.enums.Mods.Forestry; import static gregtech.api.enums.Mods.Railcraft; +import static gregtech.api.recipe.RecipeMaps.pyrolyseRecipes; import static gregtech.api.util.GT_ModHandler.getModItem; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sPyrolyseRecipes; import static gregtech.api.util.GT_RecipeBuilder.MINUTES; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; @@ -32,7 +32,7 @@ public class PyrolyseRecipes implements Runnable { .fluidOutputs(Materials.Creosote.getFluid(8000)) .duration(32 * SECONDS) .eut(64) - .addTo(sPyrolyseRecipes); + .addTo(pyrolyseRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -43,7 +43,7 @@ public class PyrolyseRecipes implements Runnable { .fluidOutputs(Materials.Creosote.getFluid(8000)) .duration(16 * SECONDS) .eut(96) - .addTo(sPyrolyseRecipes); + .addTo(pyrolyseRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -53,7 +53,7 @@ public class PyrolyseRecipes implements Runnable { .fluidOutputs(Materials.Creosote.getFluid(32000)) .duration(2 * MINUTES + 8 * SECONDS) .eut(64) - .addTo(sPyrolyseRecipes); + .addTo(pyrolyseRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -64,7 +64,7 @@ public class PyrolyseRecipes implements Runnable { .fluidOutputs(Materials.Creosote.getFluid(32000)) .duration(1 * MINUTES + 4 * SECONDS) .eut(96) - .addTo(sPyrolyseRecipes); + .addTo(pyrolyseRecipes); } if (Forestry.isModLoaded()) { @@ -74,7 +74,7 @@ public class PyrolyseRecipes implements Runnable { .fluidOutputs(Materials.Biomass.getFluid(5000)) .duration(45 * SECONDS) .eut(10) - .addTo(sPyrolyseRecipes); + .addTo(pyrolyseRecipes); GT_Values.RA.stdBuilder() .itemInputs(getModItem(Forestry.ID, "mulch", 32), GT_Utility.getIntegratedCircuit(1)) @@ -82,7 +82,7 @@ public class PyrolyseRecipes implements Runnable { .fluidOutputs(Materials.Biomass.getFluid(5000)) .duration(45 * SECONDS) .eut(10) - .addTo(sPyrolyseRecipes); + .addTo(pyrolyseRecipes); } GT_Values.RA.stdBuilder() @@ -91,7 +91,7 @@ public class PyrolyseRecipes implements Runnable { .fluidOutputs(new FluidStack(FluidRegistry.getFluid("ic2biomass"), 5000)) .duration(45 * SECONDS) .eut(10) - .addTo(sPyrolyseRecipes); + .addTo(pyrolyseRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_ModHandler.getIC2Item("biochaff", 1), GT_Utility.getIntegratedCircuit(2)) @@ -99,7 +99,7 @@ public class PyrolyseRecipes implements Runnable { .fluidOutputs(Materials.FermentedBiomass.getFluid(1500)) .duration(10 * SECONDS) .eut(10) - .addTo(sPyrolyseRecipes); + .addTo(pyrolyseRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(2)) @@ -107,7 +107,7 @@ public class PyrolyseRecipes implements Runnable { .fluidOutputs(Materials.FermentedBiomass.getFluid(1000)) .duration(5 * SECONDS) .eut(10) - .addTo(sPyrolyseRecipes); + .addTo(pyrolyseRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(2)) @@ -115,7 +115,7 @@ public class PyrolyseRecipes implements Runnable { .fluidOutputs(Materials.FermentedBiomass.getFluid(1000)) .duration(5 * SECONDS) .eut(10) - .addTo(sPyrolyseRecipes); + .addTo(pyrolyseRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Sugar.getDust(23), GT_Utility.getIntegratedCircuit(1)) @@ -123,7 +123,7 @@ public class PyrolyseRecipes implements Runnable { .fluidOutputs(Materials.Water.getFluid(1500)) .duration(16 * SECONDS) .eut(64) - .addTo(sPyrolyseRecipes); + .addTo(pyrolyseRecipes); GT_Values.RA.stdBuilder() .itemInputs(Materials.Sugar.getDust(23), GT_Utility.getIntegratedCircuit(2)) @@ -132,6 +132,6 @@ public class PyrolyseRecipes implements Runnable { .fluidOutputs(Materials.Water.getFluid(1500)) .duration(8 * SECONDS) .eut(96) - .addTo(sPyrolyseRecipes); + .addTo(pyrolyseRecipes); } } diff --git a/src/main/java/gregtech/loaders/postload/recipes/SifterRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/SifterRecipes.java index 183583763f..8d3614d76a 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/SifterRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/SifterRecipes.java @@ -1,6 +1,6 @@ package gregtech.loaders.postload.recipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sSifterRecipes; +import static gregtech.api.recipe.RecipeMaps.sifterRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import net.minecraft.init.Blocks; @@ -28,7 +28,7 @@ public class SifterRecipes implements Runnable { .outputChances(10000, 9000, 8000, 6000, 3300, 2500) .duration(30 * SECONDS) .eut(16) - .addTo(sSifterRecipes); + .addTo(sifterRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushedPurified, Materials.Coal, 1L)) @@ -42,6 +42,6 @@ public class SifterRecipes implements Runnable { .outputChances(10000, 9000, 8000, 7000, 6000, 5000) .duration(30 * SECONDS) .eut(16) - .addTo(sSifterRecipes); + .addTo(sifterRecipes); } } diff --git a/src/main/java/gregtech/loaders/postload/recipes/SlicerRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/SlicerRecipes.java index 2db50141b6..73d251014e 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/SlicerRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/SlicerRecipes.java @@ -1,6 +1,6 @@ package gregtech.loaders.postload.recipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sSlicerRecipes; +import static gregtech.api.recipe.RecipeMaps.slicerRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; @@ -16,27 +16,27 @@ public class SlicerRecipes implements Runnable { .itemOutputs(ItemList.Food_Raw_Cookie.get(4)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sSlicerRecipes); + .addTo(slicerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Food_Baked_Bun.get(1), ItemList.Shape_Slicer_Flat.get(0)) .itemOutputs(ItemList.Food_Sliced_Bun.get(2)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sSlicerRecipes); + .addTo(slicerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Food_Baked_Bread.get(1), ItemList.Shape_Slicer_Flat.get(0)) .itemOutputs(ItemList.Food_Sliced_Bread.get(2)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sSlicerRecipes); + .addTo(slicerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Food_Baked_Baguette.get(1), ItemList.Shape_Slicer_Flat.get(0)) .itemOutputs(ItemList.Food_Sliced_Baguette.get(2)) .duration(6 * SECONDS + 8 * TICKS) .eut(4) - .addTo(sSlicerRecipes); + .addTo(slicerRecipes); } } diff --git a/src/main/java/gregtech/loaders/postload/recipes/ThermalCentrifugeRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/ThermalCentrifugeRecipes.java index 597cde3825..7e10d2a1fc 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/ThermalCentrifugeRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/ThermalCentrifugeRecipes.java @@ -1,6 +1,6 @@ package gregtech.loaders.postload.recipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes; +import static gregtech.api.recipe.RecipeMaps.thermalCentrifugeRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import net.minecraft.init.Items; @@ -25,6 +25,6 @@ public class ThermalCentrifugeRecipes implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 1)) .duration(25 * SECONDS) .eut(TierEU.RECIPE_LV) - .addTo(sThermalCentrifugeRecipes); + .addTo(thermalCentrifugeRecipes); } } diff --git a/src/main/java/gregtech/loaders/postload/recipes/TranscendentPlasmaMixerRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/TranscendentPlasmaMixerRecipes.java index 058ab39279..123f9903ea 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/TranscendentPlasmaMixerRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/TranscendentPlasmaMixerRecipes.java @@ -1,6 +1,6 @@ package gregtech.loaders.postload.recipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sTranscendentPlasmaMixerRecipes; +import static gregtech.api.recipe.RecipeMaps.transcendentPlasmaMixerRecipes; import gregtech.api.enums.GT_Values; import gregtech.api.enums.Materials; @@ -31,7 +31,7 @@ public class TranscendentPlasmaMixerRecipes implements Runnable { .duration(100) .eut(CRUDE_EU_PER_L) .noOptimize() - .addTo(sTranscendentPlasmaMixerRecipes); + .addTo(transcendentPlasmaMixerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(2)) @@ -48,7 +48,7 @@ public class TranscendentPlasmaMixerRecipes implements Runnable { .duration(100) .eut(PROSAIC_EU_PER_L) .noOptimize() - .addTo(sTranscendentPlasmaMixerRecipes); + .addTo(transcendentPlasmaMixerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(3)) @@ -69,7 +69,7 @@ public class TranscendentPlasmaMixerRecipes implements Runnable { .duration(100) .eut(RESPLENDENT_EU_PER_L) .noOptimize() - .addTo(sTranscendentPlasmaMixerRecipes); + .addTo(transcendentPlasmaMixerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(4)) @@ -94,7 +94,7 @@ public class TranscendentPlasmaMixerRecipes implements Runnable { .duration(100) .eut(EXOTIC_EU_PER_L) .noOptimize() - .addTo(sTranscendentPlasmaMixerRecipes); + .addTo(transcendentPlasmaMixerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(5)) @@ -123,7 +123,7 @@ public class TranscendentPlasmaMixerRecipes implements Runnable { .duration(200) .eut(STELLAR_EU_PER_HALF_L) .noOptimize() - .addTo(sTranscendentPlasmaMixerRecipes); + .addTo(transcendentPlasmaMixerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.getIntegratedCircuit(24)) @@ -136,7 +136,7 @@ public class TranscendentPlasmaMixerRecipes implements Runnable { .duration(100) .eut(PRIMORDIAL_MATTER) .noOptimize() - .addTo(sTranscendentPlasmaMixerRecipes); + .addTo(transcendentPlasmaMixerRecipes); } } diff --git a/src/main/java/gregtech/loaders/postload/recipes/VacuumFreezerRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/VacuumFreezerRecipes.java index 400ffcbc44..444db30889 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/VacuumFreezerRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/VacuumFreezerRecipes.java @@ -1,7 +1,7 @@ package gregtech.loaders.postload.recipes; import static gregtech.api.enums.Mods.GTPlusPlus; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sVacuumRecipes; +import static gregtech.api.recipe.RecipeMaps.vacuumFreezerRecipes; import static gregtech.api.util.GT_RecipeBuilder.HOURS; import static gregtech.api.util.GT_RecipeBuilder.MINUTES; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; @@ -32,28 +32,28 @@ public class VacuumFreezerRecipes implements Runnable { .itemOutputs(GT_ModHandler.getIC2Item("reactorHeatSwitch", 1L, 1)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_ModHandler.getIC2Item("reactorHeatSwitchCore", 1L, 32767)) .itemOutputs(GT_ModHandler.getIC2Item("reactorHeatSwitchCore", 1L, 1)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_ModHandler.getIC2Item("reactorHeatSwitchSpread", 1L, 32767)) .itemOutputs(GT_ModHandler.getIC2Item("reactorHeatSwitchSpread", 1L, 1)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_ModHandler.getIC2Item("reactorHeatSwitchDiamond", 1L, 32767)) .itemOutputs(GT_ModHandler.getIC2Item("reactorHeatSwitchDiamond", 1L, 1)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); } // reactor vent @@ -63,28 +63,28 @@ public class VacuumFreezerRecipes implements Runnable { .itemOutputs(GT_ModHandler.getIC2Item("reactorVent", 1L, 1)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_ModHandler.getIC2Item("reactorVentCore", 1L, 32767)) .itemOutputs(GT_ModHandler.getIC2Item("reactorVentCore", 1L, 1)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_ModHandler.getIC2Item("reactorVentGold", 1L, 32767)) .itemOutputs(GT_ModHandler.getIC2Item("reactorVentGold", 1L, 1)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_ModHandler.getIC2Item("reactorVentDiamond", 1L, 32767)) .itemOutputs(GT_ModHandler.getIC2Item("reactorVentDiamond", 1L, 1)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); } // reactor vent spread @@ -93,7 +93,7 @@ public class VacuumFreezerRecipes implements Runnable { .itemOutputs(GT_ModHandler.getIC2Item("reactorVentSpread", 1L, 0)) .duration(5 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); // reactor coolant { @@ -103,98 +103,98 @@ public class VacuumFreezerRecipes implements Runnable { .itemOutputs(GT_ModHandler.getIC2Item("reactorCoolantSimple", 1L, 1)) .duration(10 * TICKS) .eut(TierEU.RECIPE_MV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_ModHandler.getIC2Item("reactorCoolantTriple", 1L, 32767)) .itemOutputs(GT_ModHandler.getIC2Item("reactorCoolantTriple", 1L, 1)) .duration(1 * SECONDS + 10 * TICKS) .eut(TierEU.RECIPE_MV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_ModHandler.getIC2Item("reactorCoolantSix", 1L, 32767)) .itemOutputs(GT_ModHandler.getIC2Item("reactorCoolantSix", 1L, 1)) .duration(3 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Reactor_Coolant_He_1.getWildcard(1L)) .itemOutputs(ItemList.Reactor_Coolant_He_1.get(1L)) .duration(3 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Reactor_Coolant_He_3.getWildcard(1L)) .itemOutputs(ItemList.Reactor_Coolant_He_3.get(1L)) .duration(9 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Reactor_Coolant_He_6.getWildcard(1L)) .itemOutputs(ItemList.Reactor_Coolant_He_6.get(1L)) .duration(18 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Reactor_Coolant_NaK_1.getWildcard(1L)) .itemOutputs(ItemList.Reactor_Coolant_NaK_1.get(1L)) .duration(3 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Reactor_Coolant_NaK_3.getWildcard(1L)) .itemOutputs(ItemList.Reactor_Coolant_NaK_3.get(1L)) .duration(9 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Reactor_Coolant_NaK_6.getWildcard(1L)) .itemOutputs(ItemList.Reactor_Coolant_NaK_6.get(1L)) .duration(18 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.neutroniumHeatCapacitor.getWildcard(1L)) .itemOutputs(ItemList.neutroniumHeatCapacitor.get(1L)) .duration(13 * HOURS + 53 * MINUTES + 20 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Reactor_Coolant_Sp_1.getWildcard(1L)) .itemOutputs(ItemList.Reactor_Coolant_Sp_1.get(1L)) .duration(9 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Reactor_Coolant_Sp_2.getWildcard(1L)) .itemOutputs(ItemList.Reactor_Coolant_Sp_2.get(1L)) .duration(18 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Reactor_Coolant_Sp_3.getWildcard(1L)) .itemOutputs(ItemList.Reactor_Coolant_Sp_3.get(1L)) .duration(27 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Reactor_Coolant_Sp_6.getWildcard(1L)) .itemOutputs(ItemList.Reactor_Coolant_Sp_6.get(1L)) .duration(54 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); } } @@ -206,56 +206,56 @@ public class VacuumFreezerRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Ice, 1L)) .duration(2 * SECONDS + 10 * TICKS) .eut(TierEU.RECIPE_MV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Oxygen, 1L)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.LiquidOxygen, 1L)) .duration(1 * MINUTES) .eut(TierEU.RECIPE_HV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Nitrogen, 1L)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.LiquidNitrogen, 1L)) .duration(1 * MINUTES) .eut(TierEU.RECIPE_HV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_ModHandler.getIC2Item("airCell", 1L)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.LiquidAir, 1L)) .duration(1 * SECONDS + 8 * TICKS) .eut(TierEU.RECIPE_HV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Reactor_Coolant_Sp_1.getWildcard(1L)) .itemOutputs(ItemList.Reactor_Coolant_Sp_1.get(1L)) .duration(1 * MINUTES + 30 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Reactor_Coolant_Sp_2.getWildcard(1L)) .itemOutputs(ItemList.Reactor_Coolant_Sp_2.get(1L)) .duration(3 * MINUTES) .eut(TierEU.RECIPE_MV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Reactor_Coolant_Sp_3.getWildcard(1L)) .itemOutputs(ItemList.Reactor_Coolant_Sp_3.get(1L)) .duration(4 * MINUTES + 30 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Reactor_Coolant_Sp_6.getWildcard(1L)) .itemOutputs(ItemList.Reactor_Coolant_Sp_6.get(1L)) .duration(9 * MINUTES) .eut(TierEU.RECIPE_MV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); } // Freeze superconductors. @@ -265,7 +265,7 @@ public class VacuumFreezerRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Pentacadmiummagnesiumhexaoxid, 1L)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_MV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -274,21 +274,21 @@ public class VacuumFreezerRecipes implements Runnable { GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Titaniumonabariumdecacoppereikosaoxid, 1L)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_HV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.Uraniumtriplatinid, 1L)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Uraniumtriplatinid, 1L)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_EV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.Vanadiumtriindinid, 1L)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Vanadiumtriindinid, 1L)) .duration(10 * SECONDS) .eut(TierEU.RECIPE_IV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -303,7 +303,7 @@ public class VacuumFreezerRecipes implements Runnable { 1L)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_LuV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -313,7 +313,7 @@ public class VacuumFreezerRecipes implements Runnable { GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Tetranaquadahdiindiumhexaplatiumosminid, 1L)) .duration(20 * SECONDS) .eut(TierEU.RECIPE_ZPM) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -322,7 +322,7 @@ public class VacuumFreezerRecipes implements Runnable { GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Longasssuperconductornameforuvwire, 1L)) .duration(40 * SECONDS) .eut(TierEU.RECIPE_UV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); GT_Values.RA.stdBuilder() .itemInputs( @@ -331,28 +331,28 @@ public class VacuumFreezerRecipes implements Runnable { GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Longasssuperconductornameforuhvwire, 1L)) .duration(1 * MINUTES + 20 * SECONDS) .eut(TierEU.RECIPE_UHV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.SuperconductorUEVBase, 1L)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.SuperconductorUEVBase, 1L)) .duration(2 * MINUTES + 40 * SECONDS) .eut(TierEU.RECIPE_UEV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.SuperconductorUIVBase, 1L)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.SuperconductorUIVBase, 1L)) .duration(2 * MINUTES + 40 * SECONDS) .eut(TierEU.RECIPE_UIV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.SuperconductorUMVBase, 1L)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.SuperconductorUMVBase, 1L)) .duration(2 * MINUTES + 40 * SECONDS) .eut(TierEU.RECIPE_UMV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); } // Plasma Freezing @@ -362,42 +362,42 @@ public class VacuumFreezerRecipes implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cellMolten, Materials.Americium, 1L)) .duration(1 * SECONDS) .eut(TierEU.RECIPE_LuV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.cellPlasma, Materials.Helium, 1L)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Helium, 1L)) .duration(5 * TICKS) .eut(TierEU.RECIPE_MV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.cellPlasma, Materials.Nitrogen, 1L)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Nitrogen, 1L)) .duration(1 * SECONDS + 8 * TICKS) .eut(TierEU.RECIPE_MV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.cellPlasma, Materials.Oxygen, 1L)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Oxygen, 1L)) .duration(1 * SECONDS + 12 * TICKS) .eut(TierEU.RECIPE_MV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.cellPlasma, Materials.Radon, 1L)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Radon, 1L)) .duration(5 * SECONDS + 10 * TICKS) .eut(TierEU.RECIPE_HV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); GT_Values.RA.stdBuilder() .fluidInputs(Materials.Boron.getPlasma(144L)) .fluidOutputs(Materials.Boron.getMolten(144L)) .duration(1 * SECONDS) .eut(12) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); } if (GTPlusPlus.isModLoaded()) { @@ -410,7 +410,7 @@ public class VacuumFreezerRecipes implements Runnable { Materials.SuperCoolant.getFluid(1000)) .duration(1 * SECONDS) .eut(TierEU.RECIPE_UIV) - .addTo(sVacuumRecipes); + .addTo(vacuumFreezerRecipes); } } } diff --git a/src/main/java/gregtech/loaders/postload/recipes/WiremillRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/WiremillRecipes.java index ec391e748b..017a8e6582 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/WiremillRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/WiremillRecipes.java @@ -1,6 +1,6 @@ package gregtech.loaders.postload.recipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sWiremillRecipes; +import static gregtech.api.recipe.RecipeMaps.wiremillRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; import static gregtech.api.util.GT_RecipeRegistrator.registerWiremillRecipes; @@ -31,14 +31,14 @@ public class WiremillRecipes implements Runnable { .itemOutputs(new ItemStack(Items.string, 32)) .duration(4 * SECONDS) .eut(48) - .addTo(sWiremillRecipes); + .addTo(wiremillRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.Steel, 1)) .itemOutputs(GT_ModHandler.getIC2Item("miningPipe", 1)) .duration(10 * SECONDS) .eut(16) - .addTo(sWiremillRecipes); + .addTo(wiremillRecipes); if (!GT_Mod.gregtechproxy.mDisableIC2Cables) { GT_Values.RA.stdBuilder() @@ -46,42 +46,42 @@ public class WiremillRecipes implements Runnable { .itemOutputs(GT_ModHandler.getIC2Item("copperCableItem", 3L)) .duration(5 * SECONDS) .eut(2) - .addTo(sWiremillRecipes); + .addTo(wiremillRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.AnnealedCopper, 1L)) .itemOutputs(GT_ModHandler.getIC2Item("copperCableItem", 3L)) .duration(5 * SECONDS) .eut(2) - .addTo(sWiremillRecipes); + .addTo(wiremillRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Tin, 1L)) .itemOutputs(GT_ModHandler.getIC2Item("tinCableItem", 4L)) .duration(7 * SECONDS + 10 * TICKS) .eut(1) - .addTo(sWiremillRecipes); + .addTo(wiremillRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 1L)) .itemOutputs(GT_ModHandler.getIC2Item("ironCableItem", 6L)) .duration(10 * SECONDS) .eut(2) - .addTo(sWiremillRecipes); + .addTo(wiremillRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 1L)) .itemOutputs(GT_ModHandler.getIC2Item("ironCableItem", 6L)) .duration(10 * SECONDS) .eut(2) - .addTo(sWiremillRecipes); + .addTo(wiremillRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Gold, 1L)) .itemOutputs(GT_ModHandler.getIC2Item("goldCableItem", 6L)) .duration(10 * SECONDS) .eut(1) - .addTo(sWiremillRecipes); + .addTo(wiremillRecipes); } } } diff --git a/src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java b/src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java index 20b0b46098..0d1257350d 100644 --- a/src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java +++ b/src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java @@ -9,10 +9,10 @@ import static gregtech.api.enums.Mods.PamsHarvestCraft; import static gregtech.api.enums.Mods.Railcraft; import static gregtech.api.enums.Mods.Thaumcraft; import static gregtech.api.enums.Mods.TwilightForest; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sFluidCannerRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sMaceratorRecipes; -import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes; +import static gregtech.api.recipe.RecipeMaps.centrifugeRecipes; +import static gregtech.api.recipe.RecipeMaps.fluidCannerRecipes; +import static gregtech.api.recipe.RecipeMaps.maceratorRecipes; +import static gregtech.api.recipe.RecipeMaps.thermalCentrifugeRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; import static gregtech.api.util.GT_RecipeBuilder.WILDCARD; @@ -275,7 +275,7 @@ public class GT_Loader_Item_Block_And_Fluid implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 1L)) .duration(25 * SECONDS) .eut(48) - .addTo(sThermalCentrifugeRecipes); + .addTo(thermalCentrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Depleted_Thorium_2.get(1)) @@ -285,7 +285,7 @@ public class GT_Loader_Item_Block_And_Fluid implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 3L)) .duration(25 * SECONDS) .eut(48) - .addTo(sThermalCentrifugeRecipes); + .addTo(thermalCentrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Depleted_Thorium_4.get(1)) @@ -295,7 +295,7 @@ public class GT_Loader_Item_Block_And_Fluid implements Runnable { GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 6L)) .duration(25 * SECONDS) .eut(48) - .addTo(sThermalCentrifugeRecipes); + .addTo(thermalCentrifugeRecipes); ItemList.Depleted_Naquadah_1 .set(new GT_DepletetCell_Item("NaquadahcellDep", "Fuel Rod (Depleted Naquadah)", 1)); @@ -349,7 +349,7 @@ public class GT_Loader_Item_Block_And_Fluid implements Runnable { .outputChances(10_000, 5_000, 5_000, 2_500, 10_000, 10_000) .duration(25 * SECONDS) .eut(2000) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Depleted_Naquadah_2.get(1)) @@ -363,7 +363,7 @@ public class GT_Loader_Item_Block_And_Fluid implements Runnable { .outputChances(10_000, 5_000, 5_000, 2_500, 10_000, 10_000) .duration(50 * SECONDS) .eut(2000) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Depleted_Naquadah_4.get(1)) @@ -377,7 +377,7 @@ public class GT_Loader_Item_Block_And_Fluid implements Runnable { .outputChances(10_000, 5_000, 5_000, 2_500, 10_000, 10_000) .duration(100 * SECONDS) .eut(2000) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); ItemList.Depleted_MNq_1.set(new GT_DepletetCell_Item("MNqCellDep", "Fuel Rod (Depleted Nq*)", 1)); ItemList.Depleted_MNq_2.set(new GT_DepletetCell_Item("Double_MNqCellDep", "Dual Fuel Rod (Depleted Nq*)", 1)); @@ -428,7 +428,7 @@ public class GT_Loader_Item_Block_And_Fluid implements Runnable { .outputChances(10_000, 5_000, 5_000, 2_500, 10_000, 10_000) .duration(25 * SECONDS) .eut(2000) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Depleted_MNq_2.get(1)) @@ -442,7 +442,7 @@ public class GT_Loader_Item_Block_And_Fluid implements Runnable { .outputChances(10_000, 5_000, 5_000, 2_500, 10_000, 10_000) .duration(50 * SECONDS) .eut(2000) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); GT_Values.RA.stdBuilder() .itemInputs(ItemList.Depleted_MNq_4.get(1)) @@ -456,7 +456,7 @@ public class GT_Loader_Item_Block_And_Fluid implements Runnable { .outputChances(10_000, 5_000, 5_000, 2_500, 10_000, 10_000) .duration(100 * SECONDS) .eut(2000) - .addTo(sCentrifugeRecipes); + .addTo(centrifugeRecipes); ItemList.Uraniumcell_1.set( new GT_RadioactiveCellIC_Item( @@ -827,7 +827,7 @@ public class GT_Loader_Item_Block_And_Fluid implements Runnable { .fluidInputs(GT_ModHandler.getSteam(1000)) .duration(16 * TICKS) .eut(1) - .addTo(sFluidCannerRecipes); + .addTo(fluidCannerRecipes); Materials.Ice.mGas = Materials.Water.mGas; Materials.Water.mGas.setTemperature(375) @@ -2072,7 +2072,7 @@ public class GT_Loader_Item_Block_And_Fluid implements Runnable { .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1L)) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.gravel, 1, WILDCARD)) @@ -2080,21 +2080,21 @@ public class GT_Loader_Item_Block_And_Fluid implements Runnable { .outputChances(10000, 1000) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.furnace, 1, WILDCARD)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 8L)) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(new ItemStack(Blocks.lit_furnace, 1, WILDCARD)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 8L)) .duration(20 * SECONDS) .eut(2) - .addTo(sMaceratorRecipes); + .addTo(maceratorRecipes); GT_OreDictUnificator.set( OrePrefixes.ingot, diff --git a/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java b/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java index 8ab21db198..9977af29f8 100644 --- a/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java +++ b/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java @@ -65,7 +65,6 @@ import static gregtech.api.enums.MetaTileEntityIDs.BREWERY_IV; import static gregtech.api.enums.MetaTileEntityIDs.BREWERY_LV; import static gregtech.api.enums.MetaTileEntityIDs.BREWERY_MV; import static gregtech.api.enums.MetaTileEntityIDs.BRICKED_BLAST_FURNACE_CONTROLLER; -import static gregtech.api.enums.MetaTileEntityIDs.BRONZE_BLAST_FURNACE_CONTROLLER; import static gregtech.api.enums.MetaTileEntityIDs.CHARCOAL_PILE_IGNITER_CONTROLLER; import static gregtech.api.enums.MetaTileEntityIDs.CHEST_BUFFER_EV; import static gregtech.api.enums.MetaTileEntityIDs.CHEST_BUFFER_HV; @@ -536,7 +535,6 @@ import gregtech.common.tileentities.machines.long_distance.GT_MetaTileEntity_Lon import gregtech.common.tileentities.machines.long_distance.GT_MetaTileEntity_LongDistancePipelineItem; import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_AssemblyLine; import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_BrickedBlastFurnace; -import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_BronzeBlastFurnace; import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_Charcoal_Pit; import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_Cleanroom; import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_ConcreteBackfiller1; @@ -815,13 +813,6 @@ public class GT_Loader_MetaTileEntities implements Runnable { // TODO CHECK CIRC "multimachine.brickedblastfurnace", "Bricked Blast Furnace").getStackForm(1L)); - // deprecated since ages, maybe time to remove it from the game? - ItemList.Machine_Bronze_BlastFurnace.set( - new GT_MetaTileEntity_BronzeBlastFurnace( - BRONZE_BLAST_FURNACE_CONTROLLER.ID, - "bronzemachine.blastfurnace", - "Bronze Plated Blast Furnace").getStackForm(1L)); - ItemList.Machine_Multi_BlastFurnace.set( new GT_MetaTileEntity_ElectricBlastFurnace( EBF_CONTROLLER.ID, diff --git a/src/main/java/gregtech/loaders/preload/GT_PreLoad.java b/src/main/java/gregtech/loaders/preload/GT_PreLoad.java index 2f7ed5ca16..412eb3bba9 100644 --- a/src/main/java/gregtech/loaders/preload/GT_PreLoad.java +++ b/src/main/java/gregtech/loaders/preload/GT_PreLoad.java @@ -17,6 +17,7 @@ import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.PrintStream; +import java.lang.reflect.Field; import java.util.ArrayList; import java.util.Arrays; import java.util.Calendar; @@ -33,6 +34,8 @@ import org.apache.commons.lang3.StringUtils; import cpw.mods.fml.common.LoadController; import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.ModContainer; +import cpw.mods.fml.common.discovery.ASMDataTable; +import cpw.mods.fml.common.discovery.ModDiscoverer; import gregtech.GT_Mod; import gregtech.api.GregTech_API; import gregtech.api.enums.ConfigCategories; @@ -40,6 +43,9 @@ import gregtech.api.enums.Dyes; import gregtech.api.enums.GT_Values; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; +import gregtech.api.recipe.RecipeCategory; +import gregtech.api.recipe.RecipeCategoryHolder; +import gregtech.api.recipe.RecipeCategorySetting; import gregtech.api.util.GT_Config; import gregtech.api.util.GT_LanguageManager; import gregtech.api.util.GT_Log; @@ -516,8 +522,6 @@ public class GT_PreLoad { .getBoolean(true); GT_Mod.gregtechproxy.mHideUnusedOres = tMainConfig.get(GT_Mod.aTextGeneral, "HideUnusedOres", true) .getBoolean(true); - GT_Mod.gregtechproxy.mHideRecyclingRecipes = tMainConfig.get(GT_Mod.aTextGeneral, "HideRecyclingRecipes", true) - .getBoolean(true); GT_Mod.gregtechproxy.mArcSmeltIntoAnnealed = tMainConfig .get(GT_Mod.aTextGeneral, "ArcSmeltIntoAnnealedWrought", true) .getBoolean(true); @@ -853,6 +857,18 @@ public class GT_PreLoad { .get("nei", "RecipeOwnerStackTrace", false); GT_Mod.gregtechproxy.mNEIOriginalVoltage = GregTech_API.sClientDataFile.get("nei", "OriginalVoltage", false); + GT_Mod.gregtechproxy.recipeCategorySettings.clear(); + for (RecipeCategory recipeCategory : findRecipeCategories()) { + RecipeCategorySetting setting = RecipeCategorySetting.find( + GregTech_API.sClientDataFile.getWithValidValues( + "nei.recipe_categories", + recipeCategory.unlocalizedName, + RecipeCategorySetting.NAMES, + RecipeCategorySetting.getDefault() + .toName())); + GT_Mod.gregtechproxy.recipeCategorySettings.put(recipeCategory, setting); + } + GT_Mod.gregtechproxy.mWailaTransformerVoltageTier = GregTech_API.sClientDataFile .get("waila", "WailaTransformerVoltageTier", true); GT_Mod.gregtechproxy.wailaAverageNS = GregTech_API.sClientDataFile.get("waila", "WailaAverageNS", false); @@ -862,5 +878,38 @@ public class GT_PreLoad { for (int i = 0; i < Circuits.length; i++) { GT_Mod.gregtechproxy.mCircuitsOrder.putIfAbsent(Circuits[i], i); } + + GT_Mod.gregtechproxy.reloadNEICache(); + } + + private static List<RecipeCategory> findRecipeCategories() { + List<RecipeCategory> ret = new ArrayList<>(); + try { + Field discovererField = Loader.class.getDeclaredField("discoverer"); + discovererField.setAccessible(true); + ModDiscoverer discoverer = (ModDiscoverer) discovererField.get(Loader.instance()); + for (ASMDataTable.ASMData asmData : discoverer.getASMTable() + .getAll(RecipeCategoryHolder.class.getName())) { + try { + Object obj = Class.forName(asmData.getClassName()) + .getDeclaredField(asmData.getObjectName()) + .get(null); + if (obj instanceof RecipeCategory recipeCategory) { + ret.add(recipeCategory); + } else { + GT_FML_LOGGER.error( + "{}#{} is not an instance of RecipeCategory", + asmData.getClassName(), + asmData.getObjectName()); + } + } catch (ClassNotFoundException | NoSuchFieldException | IllegalAccessException e) { + GT_FML_LOGGER.error("Failed to find RecipeCategory"); + GT_FML_LOGGER.catching(e); + } + } + } catch (NoSuchFieldException | IllegalAccessException e) { + throw new RuntimeException(e); + } + return ret; } } diff --git a/src/main/java/gregtech/nei/GT_NEI_AssLineHandler.java b/src/main/java/gregtech/nei/GT_NEI_AssLineHandler.java deleted file mode 100644 index bb14a02618..0000000000 --- a/src/main/java/gregtech/nei/GT_NEI_AssLineHandler.java +++ /dev/null @@ -1,21 +0,0 @@ -package gregtech.nei; - -import gregtech.api.util.GT_Recipe; - -@Deprecated -public class GT_NEI_AssLineHandler extends RecipeMapHandler { - - public GT_NEI_AssLineHandler(GT_Recipe.GT_Recipe_Map aRecipeMap) { - super(aRecipeMap); - } - - @Override - public String getGuiTexture() { - return null; - } - - @Override - public String getRecipeName() { - return null; - } -} diff --git a/src/main/java/gregtech/nei/GT_NEI_DefaultHandler.java b/src/main/java/gregtech/nei/GT_NEI_DefaultHandler.java index f61bd7621f..dd99b6bb0e 100644 --- a/src/main/java/gregtech/nei/GT_NEI_DefaultHandler.java +++ b/src/main/java/gregtech/nei/GT_NEI_DefaultHandler.java @@ -1,12 +1,12 @@ package gregtech.nei; -import static codechicken.nei.recipe.RecipeInfo.getGuiOffset; +import static gregtech.api.enums.GT_Values.V; -import java.awt.Point; import java.awt.Rectangle; import java.lang.ref.SoftReference; import java.text.DecimalFormat; import java.util.ArrayList; +import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.Iterator; @@ -16,14 +16,15 @@ import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; import java.util.stream.Collectors; +import java.util.stream.Stream; import javax.annotation.Nonnull; import javax.annotation.Nullable; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; +import net.minecraft.util.StatCollector; import net.minecraftforge.fluids.FluidStack; import org.apache.commons.lang3.Range; @@ -38,58 +39,62 @@ import com.gtnewhorizons.modularui.api.screen.ModularWindow; import com.gtnewhorizons.modularui.api.widget.Widget; import com.gtnewhorizons.modularui.common.widget.SlotWidget; -import codechicken.lib.gui.GuiDraw; import codechicken.nei.NEIClientUtils; import codechicken.nei.PositionedStack; -import codechicken.nei.guihook.GuiContainerManager; -import codechicken.nei.guihook.IContainerInputHandler; -import codechicken.nei.guihook.IContainerTooltipHandler; -import codechicken.nei.recipe.GuiCraftingRecipe; import codechicken.nei.recipe.GuiRecipe; -import codechicken.nei.recipe.GuiUsageRecipe; import codechicken.nei.recipe.ICraftingHandler; import codechicken.nei.recipe.IUsageHandler; import codechicken.nei.recipe.RecipeCatalysts; import codechicken.nei.recipe.TemplateRecipeHandler; import gregtech.GT_Mod; -import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.SteamVariant; -import gregtech.api.gui.GT_GUIContainer; +import gregtech.api.gui.GT_GUIColorOverride; +import gregtech.api.gui.modularui.GT_UITextures; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; +import gregtech.api.interfaces.tileentity.IOverclockDescriptionProvider; import gregtech.api.objects.ItemData; -import gregtech.api.util.GT_LanguageManager; -import gregtech.api.util.GT_Log; +import gregtech.api.objects.overclockdescriber.EUNoOverclockDescriber; +import gregtech.api.objects.overclockdescriber.OverclockDescriber; +import gregtech.api.recipe.BasicUIProperties; +import gregtech.api.recipe.NEIRecipeProperties; +import gregtech.api.recipe.RecipeCategory; +import gregtech.api.recipe.RecipeCategorySetting; +import gregtech.api.recipe.RecipeMap; +import gregtech.api.recipe.RecipeMapFrontend; import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_OverclockCalculator; import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; import gregtech.common.blocks.GT_Item_Machines; import gregtech.common.gui.modularui.UIHelper; -import gregtech.common.power.Power; -public class GT_NEI_DefaultHandler extends RecipeMapHandler { +public class GT_NEI_DefaultHandler extends TemplateRecipeHandler { - public static final int sOffsetX = 5; - public static final int sOffsetY = 11; + private static final int offsetX = 5; + private static final int offsetY = 11; + protected static final Pos2d WINDOW_OFFSET = new Pos2d(-offsetX, -offsetY); - private static final ConcurrentMap<GT_Recipe.GT_Recipe_Map, SortedRecipeListCache> CACHE = new ConcurrentHashMap<>(); + private static final ConcurrentMap<RecipeCategory, SortedRecipeListCache> CACHE = new ConcurrentHashMap<>(); - protected Power mPower; - private String mRecipeName; // Name of the handler displayed on top - private NEIHandlerAbsoluteTooltip mRecipeNameTooltip; private static final int RECIPE_NAME_WIDTH = 140; /** * Static version of {@link TemplateRecipeHandler#cycleticks}. Can be referenced from cached recipes. */ - public static int cycleTicksStatic = Math.abs((int) System.currentTimeMillis()); + private static int cycleTicksStatic = Math.abs((int) System.currentTimeMillis()); /** * Basically {@link #cycleTicksStatic} but always updated even while holding shift */ private static int drawTicks; + private static final int PROGRESSBAR_CYCLE_TICKS = 200; - protected static final int PROGRESSBAR_CYCLE_TICKS = 200; + protected final RecipeCategory recipeCategory; + protected final RecipeMap<?> recipeMap; + protected final RecipeMapFrontend frontend; + protected final BasicUIProperties uiProperties; + protected final NEIRecipeProperties neiProperties; protected final ModularWindow modularWindow; protected final ItemStackHandler itemInputsInventory; @@ -97,80 +102,117 @@ public class GT_NEI_DefaultHandler extends RecipeMapHandler { protected final ItemStackHandler specialSlotInventory; protected final ItemStackHandler fluidInputsInventory; protected final ItemStackHandler fluidOutputsInventory; - protected static final Pos2d WINDOW_OFFSET = new Pos2d(-sOffsetX, -sOffsetY); - static { - GuiContainerManager.addInputHandler(new GT_RectHandler()); - GuiContainerManager.addTooltipHandler(new GT_RectHandler()); - } - - public GT_NEI_DefaultHandler(GT_Recipe.GT_Recipe_Map aRecipeMap) { - super(aRecipeMap); - Rectangle transferRect = new Rectangle(aRecipeMap.neiTransferRect); - transferRect.translate(WINDOW_OFFSET.x, WINDOW_OFFSET.y); - this.transferRects.add(new RecipeTransferRect(transferRect, getOverlayIdentifier())); - - if (mRecipeMap.useModularUI) { - ModularWindow.Builder builder = mRecipeMap.createNEITemplate( - itemInputsInventory = new ItemStackHandler(mRecipeMap.mUsualInputCount), - itemOutputsInventory = new ItemStackHandler(mRecipeMap.mUsualOutputCount), - specialSlotInventory = new ItemStackHandler(1), - fluidInputsInventory = new ItemStackHandler(mRecipeMap.getUsualFluidInputCount()), - fluidOutputsInventory = new ItemStackHandler(mRecipeMap.getUsualFluidOutputCount()), - () -> ((float) getDrawTicks() % PROGRESSBAR_CYCLE_TICKS) / PROGRESSBAR_CYCLE_TICKS, - WINDOW_OFFSET); - modularWindow = builder.build(); - UIInfos.initializeWindow(Minecraft.getMinecraft().thePlayer, modularWindow); - } else { - itemInputsInventory = itemOutputsInventory = specialSlotInventory = fluidInputsInventory = fluidOutputsInventory = null; - modularWindow = null; - } - } - - @Deprecated - public List<GT_Recipe> getSortedRecipes() { - List<GT_Recipe> result = new ArrayList<>(this.mRecipeMap.mRecipeList); - Collections.sort(result); - return result; + protected OverclockDescriber overclockDescriber; + /** + * Localized name of this handler displayed on the top. + */ + private String recipeNameDisplay; + /** + * Tooltip shown while hovering over header of this handler. Can be null if the full name fits in the screen. + */ + private NEIHandlerAbsoluteTooltip recipeNameTooltip; + + protected final GT_GUIColorOverride colorOverride = GT_GUIColorOverride + .get(GT_UITextures.BACKGROUND_NEI_SINGLE_RECIPE.location); + private int neiTextColorOverride = -1; + + public GT_NEI_DefaultHandler(RecipeCategory recipeCategory) { + this.recipeCategory = recipeCategory; + this.recipeMap = recipeCategory.recipeMap; + this.frontend = recipeMap.getFrontend(); + this.uiProperties = frontend.getUIProperties(); + this.neiProperties = frontend.getNEIProperties(); + uiProperties.neiTransferRect.forEach(transferRect -> { + transferRect = new Rectangle(transferRect); + transferRect.translate(WINDOW_OFFSET.x, WINDOW_OFFSET.y); + this.transferRects.add(new RecipeTransferRect(transferRect, recipeMap.unlocalizedName)); + }); + + ModularWindow.Builder builder = frontend.createNEITemplate( + itemInputsInventory = new ItemStackHandler(uiProperties.maxItemInputs), + itemOutputsInventory = new ItemStackHandler(uiProperties.maxItemOutputs), + specialSlotInventory = new ItemStackHandler(1), + fluidInputsInventory = new ItemStackHandler(uiProperties.maxFluidInputs), + fluidOutputsInventory = new ItemStackHandler(uiProperties.maxFluidOutputs), + () -> ((float) getDrawTicks() % PROGRESSBAR_CYCLE_TICKS) / PROGRESSBAR_CYCLE_TICKS, + WINDOW_OFFSET); + modularWindow = builder.build(); + UIInfos.initializeWindow(Minecraft.getMinecraft().thePlayer, modularWindow); + } + + public RecipeMap<?> getRecipeMap() { + return recipeMap; } private SortedRecipeListCache getCacheHolder() { - return CACHE.computeIfAbsent(mRecipeMap, m -> new SortedRecipeListCache()); + return CACHE.computeIfAbsent(recipeCategory, m -> new SortedRecipeListCache()); } public List<CachedDefaultRecipe> getCache() { SortedRecipeListCache cacheHolder = getCacheHolder(); List<CachedDefaultRecipe> cache; - if (cacheHolder.getCachedRecipesVersion() != GT_Mod.gregtechproxy.getReloadCount() + if (cacheHolder.getCachedRecipesVersion() != GT_Mod.gregtechproxy.getNEIReloadCount() || (cache = cacheHolder.getCachedRecipes()) == null) { - cache = mRecipeMap.mRecipeList.stream() // do not use parallel stream. This is already parallelized by NEI + RecipeCategory defaultCategory = recipeMap.getDefaultRecipeCategory(); + Collection<GT_Recipe> recipes; + if (this.recipeCategory == defaultCategory) { + // This is main category, so merge categories that are configured as such + Stream<GT_Recipe> recipesToMerge = recipeMap.getBackend() + .getRecipeCategoryMap() + .entrySet() + .stream() + .flatMap(entry -> { + boolean merge = entry.getKey() != defaultCategory && GT_Mod.gregtechproxy.recipeCategorySettings + .getOrDefault(entry.getKey(), RecipeCategorySetting.getDefault()) + == RecipeCategorySetting.MERGE; + return merge ? entry.getValue() + .stream() : Stream.empty(); + }); + recipes = Stream.concat( + recipesToMerge, + recipeMap.getBackend() + .getRecipesByCategory(defaultCategory) + .stream()) + .collect(Collectors.toList()); + } else { + // This is "sub" category + if (GT_Mod.gregtechproxy.recipeCategorySettings + .getOrDefault(recipeCategory, RecipeCategorySetting.getDefault()) == RecipeCategorySetting.ENABLE) { + recipes = recipeMap.getBackend() + .getRecipesByCategory(recipeCategory); + } else { + recipes = Collections.emptyList(); + } + } + cache = recipes.stream() // do not use parallel stream. This is already parallelized by NEI .filter(r -> !r.mHidden) - .sorted() + .sorted(neiProperties.comparator) .map(CachedDefaultRecipe::new) .collect(Collectors.toList()); // while the NEI parallelize handlers, for each individual handler it still uses sequential execution model, // so we do not need any synchronization here // even if it does break, at worst case it's just recreating the cache multiple times, which should be fine cacheHolder.setCachedRecipes(cache); - cacheHolder.setCachedRecipesVersion(GT_Mod.gregtechproxy.getReloadCount()); + cacheHolder.setCachedRecipesVersion(GT_Mod.gregtechproxy.getNEIReloadCount()); } return cache; } @Override public TemplateRecipeHandler newInstance() { - return new GT_NEI_DefaultHandler(this.mRecipeMap); + return new GT_NEI_DefaultHandler(recipeCategory); } @Override public void loadCraftingRecipes(String outputId, Object... results) { - if (outputId.equals(getOverlayIdentifier())) { - if (results.length > 0 && results[0] instanceof Power) { - mPower = (Power) results[0]; - if (mRecipeMap.useComparatorForNEI) { - loadTieredCraftingRecipesWithPower(mPower); + if (outputId.equals(recipeMap.unlocalizedName)) { + if (results.length > 0 && results[0] instanceof OverclockDescriber) { + overclockDescriber = (OverclockDescriber) results[0]; + if (neiProperties.useCustomFilter) { + loadTieredRecipesWithCustomFilter(overclockDescriber); } else { - loadTieredCraftingRecipesUpTo(mPower.getTier()); + loadTieredRecipesUpTo(overclockDescriber.getTier()); } } else { arecipes.addAll(getCache()); @@ -218,29 +260,27 @@ public class GT_NEI_DefaultHandler extends RecipeMapHandler { } } - private void loadTieredCraftingRecipesWithPower(Power power) { - arecipes.addAll(getTieredRecipes(power)); + private void loadTieredRecipesWithCustomFilter(OverclockDescriber overclockDescriber) { + arecipes.addAll(getTieredRecipesWithCustomFilter(overclockDescriber)); } - private List<CachedDefaultRecipe> getTieredRecipes(Power power) { + private List<CachedDefaultRecipe> getTieredRecipesWithCustomFilter(OverclockDescriber overclockDescriber) { List<CachedDefaultRecipe> recipes = getCache(); - if (recipes.size() > 0) { + if (!recipes.isEmpty()) { recipes = recipes.stream() - .filter( - recipe -> power.compareTo(GT_Utility.getTier(recipe.mRecipe.mEUt), recipe.mRecipe.mSpecialValue) - >= 0) + .filter(recipe -> overclockDescriber.canHandle(recipe.mRecipe)) .collect(Collectors.toList()); } return recipes; } - private void loadTieredCraftingRecipesUpTo(byte upperTier) { + private void loadTieredRecipesUpTo(byte upperTier) { arecipes.addAll(getTieredRecipes(upperTier)); } private List<CachedDefaultRecipe> getTieredRecipes(byte upperTier) { List<CachedDefaultRecipe> recipes = getCache(); - if (recipes.size() > 0) { + if (!recipes.isEmpty()) { Range<Integer> indexRange = getCacheHolder().getIndexRangeForTiers((byte) 0, upperTier); recipes = recipes.subList(indexRange.getMinimum(), indexRange.getMaximum() + 1); } @@ -271,14 +311,14 @@ public class GT_NEI_DefaultHandler extends RecipeMapHandler { ItemStack candidate = (ItemStack) ingredients[0]; GT_NEI_DefaultHandler handler = (GT_NEI_DefaultHandler) newInstance(); if (RecipeCatalysts.containsCatalyst(handler, candidate)) { - IMetaTileEntity gtTileEntity = GT_Item_Machines.getMetaTileEntity(candidate); - Power power; - if (gtTileEntity != null) { - power = gtTileEntity.getPower(); + IMetaTileEntity metaTile = GT_Item_Machines.getMetaTileEntity(candidate); + OverclockDescriber overclockDescriber; + if (metaTile instanceof IOverclockDescriptionProvider provider) { + overclockDescriber = provider.getOverclockDescriber(); } else { - power = null; + overclockDescriber = null; } - handler.loadCraftingRecipes(getOverlayIdentifier(), power); + handler.loadCraftingRecipes(recipeMap.unlocalizedName, overclockDescriber); return handler; } } @@ -288,37 +328,27 @@ public class GT_NEI_DefaultHandler extends RecipeMapHandler { @Override public ICraftingHandler getRecipeHandler(String outputId, Object... results) { GT_NEI_DefaultHandler handler = (GT_NEI_DefaultHandler) super.getRecipeHandler(outputId, results); - if (results.length > 0 && results[0] instanceof Power) { - handler.mPower = (Power) results[0]; + if (results.length > 0 && results[0] instanceof OverclockDescriber) { + handler.overclockDescriber = (OverclockDescriber) results[0]; } return handler; } @Override public String getOverlayIdentifier() { - return this.mRecipeMap.mNEIName; + return recipeCategory.unlocalizedName; } @Override public void drawBackground(int recipe) { - if (modularWindow != null) { - drawUI(modularWindow); - } else { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - GuiDraw.changeTexture(getGuiTexture()); - GuiDraw.drawTexturedModalRect(-4, -8, 1, 3, 174, 78); - } + drawUI(modularWindow); } @Override public void drawForeground(int recipe) { - if (mRecipeMap.useModularUI) { - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_LIGHTING); - drawExtras(recipe); - } else { - super.drawForeground(recipe); - } + GL11.glColor4f(1, 1, 1, 1); + GL11.glDisable(GL11.GL_LIGHTING); + drawExtras(recipe); } @Override @@ -335,71 +365,69 @@ public class GT_NEI_DefaultHandler extends RecipeMapHandler { @Override public String getRecipeName() { - if (mRecipeName == null) { - mRecipeName = computeRecipeName(); - updateOverrideTextColor(); - mRecipeMap.updateNEITextColorOverride(); + if (recipeNameDisplay == null) { + recipeNameDisplay = computeRecipeName(); + neiTextColorOverride = colorOverride.getTextColorOrDefault("nei", -1); } - return mRecipeName; + return recipeNameDisplay; } private String computeRecipeName() { - String recipeName = GT_LanguageManager.getTranslation(this.mRecipeMap.mUnlocalizedName); - if (mPower != null) { - recipeName = addSuffixToRecipeName(recipeName, mPower.getTierString() + ")"); + String recipeName = StatCollector.translateToLocal(recipeCategory.unlocalizedName); + if (overclockDescriber != null) { + String suffix = "(" + overclockDescriber.getTierString() + ")"; + // Space will be cropped if title exceeds + return shrinkRecipeName(recipeName + " ", suffix); + } else { + return shrinkRecipeName(recipeName, ""); } - return recipeName; } - private String addSuffixToRecipeName(final String aRecipeName, final String suffix) { - final String recipeName; - final String separator; + private String shrinkRecipeName(final String originalRecipeName, final String suffix) { FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer; - int recipeNameWidth = fontRenderer.getStringWidth(aRecipeName); - int targetWidth = RECIPE_NAME_WIDTH - fontRenderer.getStringWidth(suffix); - if (recipeNameWidth + fontRenderer.getStringWidth(" (") <= targetWidth) { - recipeName = aRecipeName; - separator = " ("; - } else { - setupRecipeNameTooltip(aRecipeName + " (" + suffix); - separator = "...("; - recipeName = shrinkRecipeName(aRecipeName, targetWidth - fontRenderer.getStringWidth(separator)); + int suffixWidth = fontRenderer.getStringWidth(suffix); + if (fontRenderer.getStringWidth(originalRecipeName) + suffixWidth <= RECIPE_NAME_WIDTH) { + return originalRecipeName + suffix; } - return recipeName + separator + suffix; - } - private String shrinkRecipeName(String recipeName, int targetWidth) { - FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer; + final String ellipsis = "..."; + final int ellipsisWidth = fontRenderer.getStringWidth(ellipsis); + String recipeName = originalRecipeName; do { - recipeName = recipeName.substring(0, recipeName.length() - 2); - } while (fontRenderer.getStringWidth(recipeName) > targetWidth); - return recipeName; + recipeName = recipeName.substring(0, recipeName.length() - 1); + } while (fontRenderer.getStringWidth(recipeName) + ellipsisWidth + suffixWidth > RECIPE_NAME_WIDTH); + setupRecipeNameTooltip(originalRecipeName + suffix); + return recipeName + ellipsis + suffix; } private void setupRecipeNameTooltip(String tooltip) { - mRecipeNameTooltip = new NEIHandlerAbsoluteTooltip(tooltip, new Rectangle(13, -34, RECIPE_NAME_WIDTH - 1, 11)); + recipeNameTooltip = new NEIHandlerAbsoluteTooltip(tooltip, new Rectangle(13, -34, RECIPE_NAME_WIDTH - 1, 11)); } @Override public String getRecipeTabName() { - return GT_LanguageManager.getTranslation(this.mRecipeMap.mUnlocalizedName); + return StatCollector.translateToLocal(recipeCategory.unlocalizedName); } @Override public String getGuiTexture() { - return this.mRecipeMap.mNEIGUIPath; + // not called + return ""; } @Override public List<String> handleItemTooltip(GuiRecipe<?> gui, ItemStack aStack, List<String> currentTip, int aRecipeIndex) { - CachedRecipe tObject = this.arecipes.get(aRecipeIndex); - if (tObject instanceof CachedDefaultRecipe) { - currentTip = mRecipeMap.handleNEIItemTooltip(aStack, currentTip, (CachedDefaultRecipe) tObject); + if (recipeNameTooltip != null) { + recipeNameTooltip.handleTooltip(currentTip, aRecipeIndex); + } + if (aStack == null) { + return currentTip; } - if (mRecipeNameTooltip != null) { - mRecipeNameTooltip.handleTooltip(currentTip, aRecipeIndex); + CachedRecipe tObject = this.arecipes.get(aRecipeIndex); + if (tObject instanceof CachedDefaultRecipe) { + currentTip = frontend.handleNEIItemTooltip(aStack, currentTip, (CachedDefaultRecipe) tObject); } return currentTip; } @@ -409,40 +437,42 @@ public class GT_NEI_DefaultHandler extends RecipeMapHandler { CachedDefaultRecipe cachedRecipe = ((CachedDefaultRecipe) this.arecipes.get(aRecipeIndex)); drawDescription(cachedRecipe); - mRecipeMap.drawNEIOverlays(cachedRecipe); + frontend.drawNEIOverlays(cachedRecipe); } private void drawDescription(CachedDefaultRecipe cachedRecipe) { GT_Recipe recipe = cachedRecipe.mRecipe; - if (mPower == null) { - mPower = mRecipeMap.getPowerFromRecipeMap(); + if (overclockDescriber == null) { + // By default, assume generic LV EU with no overclocks + overclockDescriber = new EUNoOverclockDescriber((byte) 1, uiProperties.amperage); } - mPower.computePowerUsageAndDuration(recipe.mEUt, recipe.mDuration, recipe.mSpecialValue); - - mRecipeMap - .drawNEIDescription(new NEIRecipeInfo(recipe, mRecipeMap, cachedRecipe, mPower, getDescriptionYOffset())); - } - @Deprecated - protected String getSpecialInfo(int specialValue) { - return ""; - } + GT_OverclockCalculator calculator = overclockDescriber.createCalculator( + new GT_OverclockCalculator().setRecipeEUt(recipe.mEUt) + .setDuration(recipe.mDuration), + recipe); + calculator.calculate(); - @Deprecated - protected void drawLine(int lineNumber, String line) { - drawText(10, getDescriptionYOffset() + lineNumber * 10, line, 0xFF000000); + frontend.drawDescription( + new RecipeDisplayInfo( + recipe, + recipeMap, + overclockDescriber, + calculator, + getDescriptionYOffset(), + neiTextColorOverride)); } protected int getDescriptionYOffset() { - return mRecipeMap.neiBackgroundSize.height + mRecipeMap.neiBackgroundOffset.y + WINDOW_OFFSET.y + 3; + return neiProperties.recipeBackgroundSize.height + neiProperties.recipeBackgroundOffset.y + WINDOW_OFFSET.y + 3; } protected void drawUI(ModularWindow window) { for (IDrawable background : window.getBackground()) { GlStateManager.pushMatrix(); GlStateManager.translate( - WINDOW_OFFSET.x + mRecipeMap.neiBackgroundOffset.x, - WINDOW_OFFSET.y + mRecipeMap.neiBackgroundOffset.y, + WINDOW_OFFSET.x + neiProperties.recipeBackgroundOffset.x, + WINDOW_OFFSET.y + neiProperties.recipeBackgroundOffset.y, 0); GlStateManager.color(1f, 1f, 1f, 1f); background.draw(Pos2d.ZERO, window.getSize(), 0); @@ -469,99 +499,6 @@ public class GT_NEI_DefaultHandler extends RecipeMapHandler { return drawTicks; } - public static class GT_RectHandler implements IContainerInputHandler, IContainerTooltipHandler { - - @Override - public boolean mouseClicked(GuiContainer gui, int mouseX, int mouseY, int button) { - if (canHandle(gui)) { - NEI_TransferRectHost host = (NEI_TransferRectHost) gui; - if (hostRectContainsMouse(host, getMousePos(gui, mouseX, mouseY))) { - if (button == 0) { - return handleTransferRectMouseClick(host, false); - } - if (button == 1) { - return handleTransferRectMouseClick(host, true); - } - } - } - return false; - } - - private Point getMousePos(GuiContainer gui, int mouseX, int mouseY) { - return new Point( - mouseX - ((GT_GUIContainer) gui).getLeft() - getGuiOffset(gui)[0], - mouseY - ((GT_GUIContainer) gui).getTop() - getGuiOffset(gui)[1]); - } - - private boolean hostRectContainsMouse(NEI_TransferRectHost host, Point mousePos) { - return host.getNeiTransferRect() - .contains(mousePos); - } - - private boolean handleTransferRectMouseClick(NEI_TransferRectHost gui, boolean usage) { - String mNEI = gui.getNeiTransferRectString(); - Object[] args = gui.getNeiTransferRectArgs(); - return usage ? GuiUsageRecipe.openRecipeGui(mNEI) : GuiCraftingRecipe.openRecipeGui(mNEI, args); - } - - @Override - public boolean lastKeyTyped(GuiContainer gui, char keyChar, int keyCode) { - return false; - } - - public boolean canHandle(GuiContainer gui) { - return gui instanceof NEI_TransferRectHost - && GT_Utility.isStringValid(((NEI_TransferRectHost) gui).getNeiTransferRectString()); - } - - @Override - public List<String> handleTooltip(GuiContainer gui, int mouseX, int mouseY, List<String> currentTip) { - if ((canHandle(gui)) && (currentTip.isEmpty())) { - NEI_TransferRectHost host = (NEI_TransferRectHost) gui; - if (hostRectContainsMouse(host, getMousePos(gui, mouseX, mouseY))) { - currentTip.add(host.getNeiTransferRectTooltip()); - } - } - return currentTip; - } - - @Override - public List<String> handleItemDisplayName(GuiContainer gui, ItemStack itemstack, List<String> currentTip) { - return currentTip; - } - - @Override - public List<String> handleItemTooltip(GuiContainer gui, ItemStack itemstack, int mouseX, int mouseY, - List<String> currentTip) { - return currentTip; - } - - @Override - public boolean keyTyped(GuiContainer gui, char keyChar, int keyCode) { - return false; - } - - @Override - public void onKeyTyped(GuiContainer gui, char keyChar, int keyID) {} - - @Override - public void onMouseClicked(GuiContainer gui, int mouseX, int mouseY, int button) {} - - @Override - public void onMouseUp(GuiContainer gui, int mouseX, int mouseY, int button) {} - - @Override - public boolean mouseScrolled(GuiContainer gui, int mouseX, int mouseY, int scrolled) { - return false; - } - - @Override - public void onMouseScrolled(GuiContainer gui, int mouseX, int mouseY, int scrolled) {} - - @Override - public void onMouseDragged(GuiContainer gui, int mouseX, int mouseY, int button, long heldTime) {} - } - public static class FixedPositionedStack extends PositionedStack { public static final DecimalFormat chanceFormat = new DecimalFormat("##0.##%"); @@ -569,26 +506,6 @@ public class GT_NEI_DefaultHandler extends RecipeMapHandler { public final int realStackSize; public final boolean renderRealStackSize; - @Deprecated - public FixedPositionedStack(Object object, int x, int y) { - this(object, true, x, y, 0, true); - } - - @Deprecated - public FixedPositionedStack(Object object, int x, int y, boolean aUnificate) { - this(object, true, x, y, 0, aUnificate); - } - - @Deprecated - public FixedPositionedStack(Object object, int x, int y, int aChance) { - this(object, true, x, y, aChance, true); - } - - @Deprecated - public FixedPositionedStack(Object object, int x, int y, int aChance, boolean aUnificate) { - this(object, true, x, y, aChance, aUnificate); - } - public FixedPositionedStack(Object object, boolean renderRealStackSizes, int x, int y) { this(object, renderRealStackSizes, x, y, 0, true); } @@ -633,366 +550,138 @@ public class GT_NEI_DefaultHandler extends RecipeMapHandler { public final List<PositionedStack> mOutputs; public final List<PositionedStack> mInputs; - // Draws a grid of items for NEI rendering. - private void drawNEIItemGrid(ItemStack[] ItemArray, int x_coord_origin, int y_coord_origin, int x_dir_max_items, - int y_max_dir_max_items, GT_Recipe Recipe, boolean is_input) { - if (ItemArray.length > x_dir_max_items * y_max_dir_max_items) { - GT_Log.err.println("Recipe cannot be properly displayed in NEI due to too many items."); - } - // 18 pixels to get to a new grid for placing an item tile since they are 16x16 and have 1 pixel buffers - // around them. - int x_max = x_coord_origin + x_dir_max_items * 18; - - // Temp variables to keep track of current coordinates to place item at. - int x_coord = x_coord_origin; - int y_coord = y_coord_origin; - - // Iterate over all items in array and display them. - int special_counter = 0; - for (ItemStack item : ItemArray) { - if (item != GT_Values.NI) { - if (is_input) { - mInputs.add( - new FixedPositionedStack( - item, - GT_NEI_DefaultHandler.this.mRecipeMap.renderRealStackSizes, - x_coord, - y_coord, - true)); - } else { - mOutputs.add( - new FixedPositionedStack( - item, - GT_NEI_DefaultHandler.this.mRecipeMap.renderRealStackSizes, - x_coord, - y_coord, - Recipe.getOutputChance(special_counter), - GT_NEI_DefaultHandler.this.mRecipeMap.mNEIUnificateOutput)); - special_counter++; - } - x_coord += 18; - if (x_coord == x_max) { - x_coord = x_coord_origin; - y_coord += 18; - } - } - } - } - - @SuppressWarnings("deprecation") public CachedDefaultRecipe(GT_Recipe aRecipe) { super(); this.mRecipe = aRecipe; - List<PositionedStack> maybeIn; - List<PositionedStack> maybeOut; - - try { - maybeIn = GT_NEI_DefaultHandler.this.mRecipeMap.getInputPositionedStacks(aRecipe); - } catch (NullPointerException npe) { - maybeIn = null; - GT_Log.err.println("CachedDefaultRecipe - Invalid InputPositionedStacks " + aRecipe); - npe.printStackTrace(GT_Log.err); - } - try { - maybeOut = GT_NEI_DefaultHandler.this.mRecipeMap.getOutputPositionedStacks(aRecipe); - } catch (NullPointerException npe) { - maybeOut = null; - GT_Log.err.println("CachedDefaultRecipe - Invalid OutputPositionedStacks " + aRecipe); - npe.printStackTrace(GT_Log.err); - } - - if (maybeOut != null && maybeIn != null) { - mOutputs = maybeOut; - mInputs = maybeIn; - return; - } - - try { - maybeIn = aRecipe.getInputPositionedStacks(); - } catch (NullPointerException npe) { - maybeIn = null; - GT_Log.err.println("CachedDefaultRecipe - Invalid InputPositionedStacks " + aRecipe); - npe.printStackTrace(GT_Log.err); - } - try { - maybeOut = aRecipe.getOutputPositionedStacks(); - } catch (NullPointerException npe) { - maybeOut = null; - GT_Log.err.println("CachedDefaultRecipe - Invalid OutputPositionedStacks " + aRecipe); - npe.printStackTrace(GT_Log.err); - } - - if (maybeOut != null && maybeIn != null) { - mOutputs = maybeOut; - mInputs = maybeIn; - return; - } - mOutputs = new ArrayList<>(); mInputs = new ArrayList<>(); - if (GT_NEI_DefaultHandler.this.mRecipeMap.useModularUI) { - for (Widget child : modularWindow.getChildren()) { - if (child instanceof SlotWidget widget) { - if (widget.getMcSlot() - .getItemHandler() == itemInputsInventory) { + for (Widget child : modularWindow.getChildren()) { + if (child instanceof SlotWidget widget) { + if (widget.getMcSlot() + .getItemHandler() == itemInputsInventory) { + int i = widget.getMcSlot() + .getSlotIndex(); + Object input = aRecipe instanceof GT_Recipe.GT_Recipe_WithAlt + ? ((GT_Recipe.GT_Recipe_WithAlt) aRecipe).getAltRepresentativeInput(i) + : aRecipe.getRepresentativeInput(i); + if (input != null) { + mInputs.add( + new FixedPositionedStack( + input, + GT_NEI_DefaultHandler.this.neiProperties.renderRealStackSizes, + widget.getPos().x + 1, + widget.getPos().y + 1, + true)); + } + } else if (widget.getMcSlot() + .getItemHandler() == itemOutputsInventory) { int i = widget.getMcSlot() .getSlotIndex(); - Object input = aRecipe instanceof GT_Recipe.GT_Recipe_WithAlt - ? ((GT_Recipe.GT_Recipe_WithAlt) aRecipe).getAltRepresentativeInput(i) - : aRecipe.getRepresentativeInput(i); - if (input != null) { - mInputs.add( + ItemStack output = aRecipe.getRepresentativeOutput(i); + if (output != null) { + mOutputs.add( new FixedPositionedStack( - input, - GT_NEI_DefaultHandler.this.mRecipeMap.renderRealStackSizes, + output, + GT_NEI_DefaultHandler.this.neiProperties.renderRealStackSizes, widget.getPos().x + 1, widget.getPos().y + 1, - true)); + aRecipe.getOutputChance(i), + GT_NEI_DefaultHandler.this.neiProperties.unificateOutput)); } } else if (widget.getMcSlot() - .getItemHandler() == itemOutputsInventory) { - int i = widget.getMcSlot() - .getSlotIndex(); - - ItemStack output = aRecipe.getRepresentativeOutput(i); - if (output != null) { - mOutputs.add( + .getItemHandler() == specialSlotInventory) { + if (aRecipe.mSpecialItems != null) { + mInputs.add( new FixedPositionedStack( - output, - GT_NEI_DefaultHandler.this.mRecipeMap.renderRealStackSizes, + aRecipe.mSpecialItems, + GT_NEI_DefaultHandler.this.neiProperties.renderRealStackSizes, widget.getPos().x + 1, - widget.getPos().y + 1, - aRecipe.getOutputChance(i), - GT_NEI_DefaultHandler.this.mRecipeMap.mNEIUnificateOutput)); + widget.getPos().y + 1)); } } else if (widget.getMcSlot() - .getItemHandler() == specialSlotInventory) { - if (aRecipe.mSpecialItems != null) { + .getItemHandler() == fluidInputsInventory) { + int i = widget.getMcSlot() + .getSlotIndex(); + if (aRecipe.mFluidInputs.length > i && aRecipe.mFluidInputs[i] != null + && aRecipe.mFluidInputs[i].getFluid() != null) { mInputs.add( new FixedPositionedStack( - aRecipe.mSpecialItems, - GT_NEI_DefaultHandler.this.mRecipeMap.renderRealStackSizes, + GT_Utility.getFluidDisplayStack(aRecipe.mFluidInputs[i], true), + GT_NEI_DefaultHandler.this.neiProperties.renderRealStackSizes, widget.getPos().x + 1, widget.getPos().y + 1)); } } else if (widget.getMcSlot() - .getItemHandler() == fluidInputsInventory) { + .getItemHandler() == fluidOutputsInventory) { int i = widget.getMcSlot() .getSlotIndex(); - if (aRecipe.mFluidInputs.length > i && aRecipe.mFluidInputs[i] != null - && aRecipe.mFluidInputs[i].getFluid() != null) { - mInputs.add( + if (aRecipe.mFluidOutputs.length > i && aRecipe.mFluidOutputs[i] != null + && aRecipe.mFluidOutputs[i].getFluid() != null) { + mOutputs.add( new FixedPositionedStack( - GT_Utility.getFluidDisplayStack(aRecipe.mFluidInputs[i], true), - GT_NEI_DefaultHandler.this.mRecipeMap.renderRealStackSizes, + GT_Utility.getFluidDisplayStack(aRecipe.mFluidOutputs[i], true), + GT_NEI_DefaultHandler.this.neiProperties.renderRealStackSizes, widget.getPos().x + 1, widget.getPos().y + 1)); } - } else if (widget.getMcSlot() - .getItemHandler() == fluidOutputsInventory) { - int i = widget.getMcSlot() - .getSlotIndex(); - if (aRecipe.mFluidOutputs.length > i && aRecipe.mFluidOutputs[i] != null - && aRecipe.mFluidOutputs[i].getFluid() != null) { - mOutputs.add( - new FixedPositionedStack( - GT_Utility.getFluidDisplayStack(aRecipe.mFluidOutputs[i], true), - GT_NEI_DefaultHandler.this.mRecipeMap.renderRealStackSizes, - widget.getPos().x + 1, - widget.getPos().y + 1)); - } - } - } + } } + } - // items and fluids that exceed usual count - UIHelper.forEachSlots((i, backgrounds, pos) -> { - if (i >= GT_NEI_DefaultHandler.this.mRecipeMap.mUsualInputCount && aRecipe.mInputs[i] != null) { - mInputs.add( - new FixedPositionedStack( - aRecipe.mInputs[i], - GT_NEI_DefaultHandler.this.mRecipeMap.renderRealStackSizes, - pos.x + 1, - pos.y + 1, - true)); - } - }, (i, backgrounds, pos) -> { - if (i >= GT_NEI_DefaultHandler.this.mRecipeMap.mUsualOutputCount && aRecipe.mOutputs[i] != null) { - mOutputs.add( - new FixedPositionedStack( - aRecipe.mOutputs[i], - GT_NEI_DefaultHandler.this.mRecipeMap.renderRealStackSizes, - pos.x + 1, - pos.y + 1, - aRecipe.getOutputChance(i), - GT_NEI_DefaultHandler.this.mRecipeMap.mNEIUnificateOutput)); - } - }, (i, backgrounds, pos) -> {}, (i, backgrounds, pos) -> { - if (i >= GT_NEI_DefaultHandler.this.mRecipeMap.getUsualFluidInputCount() - && aRecipe.mFluidInputs[i] != null - && aRecipe.mFluidInputs[i].getFluid() != null) { - mInputs.add( - new FixedPositionedStack( - GT_Utility.getFluidDisplayStack(aRecipe.mFluidInputs[i], true), - GT_NEI_DefaultHandler.this.mRecipeMap.renderRealStackSizes, - pos.x + 1, - pos.y + 1)); - } - }, (i, backgrounds, pos) -> { - if (i >= GT_NEI_DefaultHandler.this.mRecipeMap.getUsualFluidOutputCount() - && aRecipe.mFluidOutputs[i] != null - && aRecipe.mFluidOutputs[i].getFluid() != null) { - mOutputs.add( - new FixedPositionedStack( - GT_Utility.getFluidDisplayStack(aRecipe.mFluidOutputs[i], true), - GT_NEI_DefaultHandler.this.mRecipeMap.renderRealStackSizes, - pos.x + 1, - pos.y + 1)); - } - }, - null, - null, - GT_NEI_DefaultHandler.this.mRecipeMap, - aRecipe.mInputs.length, - aRecipe.mOutputs.length, - aRecipe.mFluidInputs.length, - aRecipe.mFluidOutputs.length, - SteamVariant.NONE, - WINDOW_OFFSET); - } else { - // todo remove after all the migrations are done - // Default GT NEI handler for drawing fluids/items on screen. - switch (GT_NEI_DefaultHandler.this.mRecipeMap.mUsualInputCount) { - case 0: - break; - case 1: // 1x1 - drawNEIItemGrid(aRecipe.mInputs, 48, 14, 1, 1, aRecipe, true); - break; - case 2: // 2x1 - drawNEIItemGrid(aRecipe.mInputs, 30, 14, 2, 1, aRecipe, true); - break; - case 3: // - drawNEIItemGrid(aRecipe.mInputs, 12, 14, 3, 1, aRecipe, true); - break; - case 4: - case 5: - drawNEIItemGrid(aRecipe.mInputs, 12, 14, 3, 2, aRecipe, true); - break; - case 6: - drawNEIItemGrid(aRecipe.mInputs, 12, 5, 3, 2, aRecipe, true); - break; - default: - drawNEIItemGrid(aRecipe.mInputs, 12, -4, 3, 3, aRecipe, true); + // items and fluids that exceed usual count + UIHelper.forEachSlots((i, backgrounds, pos) -> { + if (i >= GT_NEI_DefaultHandler.this.uiProperties.maxItemInputs && aRecipe.mInputs[i] != null) { + mInputs.add( + new FixedPositionedStack( + aRecipe.mInputs[i], + GT_NEI_DefaultHandler.this.neiProperties.renderRealStackSizes, + pos.x + 1, + pos.y + 1, + true)); } - - switch (GT_NEI_DefaultHandler.this.mRecipeMap.mUsualOutputCount) { - case 0: - break; - case 1: - drawNEIItemGrid(aRecipe.mOutputs, 102, 14, 1, 1, aRecipe, false); - break; - case 2: - drawNEIItemGrid(aRecipe.mOutputs, 102, 14, 2, 1, aRecipe, false); - break; - case 3: - drawNEIItemGrid(aRecipe.mOutputs, 102, 14, 3, 1, aRecipe, false); - break; - case 4: - drawNEIItemGrid(aRecipe.mOutputs, 102, 5, 2, 2, aRecipe, false); - break; - case 5: - case 6: - drawNEIItemGrid(aRecipe.mOutputs, 102, 5, 3, 2, aRecipe, false); - break; - default: - drawNEIItemGrid(aRecipe.mOutputs, 102, -4, 3, 3, aRecipe, false); + }, (i, backgrounds, pos) -> { + if (i >= GT_NEI_DefaultHandler.this.uiProperties.maxItemOutputs && aRecipe.mOutputs[i] != null) { + mOutputs.add( + new FixedPositionedStack( + aRecipe.mOutputs[i], + GT_NEI_DefaultHandler.this.neiProperties.renderRealStackSizes, + pos.x + 1, + pos.y + 1, + aRecipe.getOutputChance(i), + GT_NEI_DefaultHandler.this.neiProperties.unificateOutput)); } - - // ??? No idea what this does. Leaving it alone. - if (aRecipe.mSpecialItems != null) { - this.mInputs.add( + }, (i, backgrounds, pos) -> {}, (i, backgrounds, pos) -> { + if (i >= GT_NEI_DefaultHandler.this.uiProperties.maxFluidInputs && aRecipe.mFluidInputs[i] != null + && aRecipe.mFluidInputs[i].getFluid() != null) { + mInputs.add( new FixedPositionedStack( - aRecipe.mSpecialItems, - GT_NEI_DefaultHandler.this.mRecipeMap.renderRealStackSizes, - 120, - 52)); + GT_Utility.getFluidDisplayStack(aRecipe.mFluidInputs[i], true), + GT_NEI_DefaultHandler.this.neiProperties.renderRealStackSizes, + pos.x + 1, + pos.y + 1)); } - - if ((aRecipe.mFluidInputs.length > 0) && (aRecipe.mFluidInputs[0] != null) - && (aRecipe.mFluidInputs[0].getFluid() != null)) { - this.mInputs.add( + }, (i, backgrounds, pos) -> { + if (i >= GT_NEI_DefaultHandler.this.uiProperties.maxFluidOutputs && aRecipe.mFluidOutputs[i] != null + && aRecipe.mFluidOutputs[i].getFluid() != null) { + mOutputs.add( new FixedPositionedStack( - GT_Utility.getFluidDisplayStack(aRecipe.mFluidInputs[0], true), - GT_NEI_DefaultHandler.this.mRecipeMap.renderRealStackSizes, - 48, - 52)); - if ((aRecipe.mFluidInputs.length > 1) && (aRecipe.mFluidInputs[1] != null) - && (aRecipe.mFluidInputs[1].getFluid() != null)) { - this.mInputs.add( - new FixedPositionedStack( - GT_Utility.getFluidDisplayStack(aRecipe.mFluidInputs[1], true), - GT_NEI_DefaultHandler.this.mRecipeMap.renderRealStackSizes, - 30, - 52)); - } + GT_Utility.getFluidDisplayStack(aRecipe.mFluidOutputs[i], true), + GT_NEI_DefaultHandler.this.neiProperties.renderRealStackSizes, + pos.x + 1, + pos.y + 1)); } - - if (aRecipe.mFluidOutputs.length > 1) { - if (aRecipe.mFluidOutputs[0] != null && (aRecipe.mFluidOutputs[0].getFluid() != null)) { - this.mOutputs.add( - new FixedPositionedStack( - GT_Utility.getFluidDisplayStack(aRecipe.mFluidOutputs[0], true), - GT_NEI_DefaultHandler.this.mRecipeMap.renderRealStackSizes, - 120, - 5)); - } - if (aRecipe.mFluidOutputs[1] != null && (aRecipe.mFluidOutputs[1].getFluid() != null)) { - this.mOutputs.add( - new FixedPositionedStack( - GT_Utility.getFluidDisplayStack(aRecipe.mFluidOutputs[1], true), - GT_NEI_DefaultHandler.this.mRecipeMap.renderRealStackSizes, - 138, - 5)); - } - if (aRecipe.mFluidOutputs.length > 2 && aRecipe.mFluidOutputs[2] != null - && (aRecipe.mFluidOutputs[2].getFluid() != null)) { - this.mOutputs.add( - new FixedPositionedStack( - GT_Utility.getFluidDisplayStack(aRecipe.mFluidOutputs[2], true), - GT_NEI_DefaultHandler.this.mRecipeMap.renderRealStackSizes, - 102, - 23)); - } - if (aRecipe.mFluidOutputs.length > 3 && aRecipe.mFluidOutputs[3] != null - && (aRecipe.mFluidOutputs[3].getFluid() != null)) { - this.mOutputs.add( - new FixedPositionedStack( - GT_Utility.getFluidDisplayStack(aRecipe.mFluidOutputs[3], true), - GT_NEI_DefaultHandler.this.mRecipeMap.renderRealStackSizes, - 120, - 23)); - } - if (aRecipe.mFluidOutputs.length > 4 && aRecipe.mFluidOutputs[4] != null - && (aRecipe.mFluidOutputs[4].getFluid() != null)) { - this.mOutputs.add( - new FixedPositionedStack( - GT_Utility.getFluidDisplayStack(aRecipe.mFluidOutputs[4], true), - GT_NEI_DefaultHandler.this.mRecipeMap.renderRealStackSizes, - 138, - 23)); - } - } else if ((aRecipe.mFluidOutputs.length > 0) && (aRecipe.mFluidOutputs[0] != null) - && (aRecipe.mFluidOutputs[0].getFluid() != null)) { - this.mOutputs.add( - new FixedPositionedStack( - GT_Utility.getFluidDisplayStack(aRecipe.mFluidOutputs[0], true), - GT_NEI_DefaultHandler.this.mRecipeMap.renderRealStackSizes, - 102, - 52)); - } - } + }, + IDrawable.EMPTY, + IDrawable.EMPTY, + GT_NEI_DefaultHandler.this.frontend.getUIProperties(), + aRecipe.mInputs.length, + aRecipe.mOutputs.length, + aRecipe.mFluidInputs.length, + aRecipe.mFluidOutputs.length, + SteamVariant.NONE, + WINDOW_OFFSET); } @Override @@ -1011,11 +700,6 @@ public class GT_NEI_DefaultHandler extends RecipeMapHandler { } } - @Deprecated - public String trans(String aKey, String aEnglish) { - return GT_Utility.trans(aKey, aEnglish); - } - private class SortedRecipeListCache { private int mCachedRecipesVersion = -1; @@ -1052,7 +736,7 @@ public class GT_NEI_DefaultHandler extends RecipeMapHandler { private void computeTierIndexes() { // Holds 16 elements without rehashing - mTierIndexes = new HashMap<>(GT_Values.V.length + 1, 1f); + mTierIndexes = new HashMap<>(V.length + 1, 1f); assert mCachedRecipes != null; Iterator<CachedDefaultRecipe> iterator = Objects.requireNonNull(mCachedRecipes.get()) .iterator(); @@ -1065,7 +749,7 @@ public class GT_NEI_DefaultHandler extends RecipeMapHandler { while (iterator.hasNext()) { CachedDefaultRecipe recipe = iterator.next(); byte recipeTier = GT_Utility - .getTier(recipe.mRecipe.mEUt / GT_NEI_DefaultHandler.this.mRecipeMap.mAmperage); + .getTier(recipe.mRecipe.mEUt / GT_NEI_DefaultHandler.this.recipeMap.getAmperage()); if (recipeTier != previousTier) { if (maxIndex != -1) { mTierIndexes.put(previousTier, Range.between(minIndex, maxIndex)); diff --git a/src/main/java/gregtech/nei/HeatingCoilSpecialValueFormatter.java b/src/main/java/gregtech/nei/HeatingCoilSpecialValueFormatter.java deleted file mode 100644 index 936aa6b715..0000000000 --- a/src/main/java/gregtech/nei/HeatingCoilSpecialValueFormatter.java +++ /dev/null @@ -1,22 +0,0 @@ -package gregtech.nei; - -import java.util.ArrayList; -import java.util.List; -import java.util.function.Function; - -import gregtech.api.enums.HeatingCoilLevel; - -public class HeatingCoilSpecialValueFormatter implements INEISpecialInfoFormatter { - - public static final HeatingCoilSpecialValueFormatter INSTANCE = new HeatingCoilSpecialValueFormatter(); - - @Override - public List<String> format(NEIRecipeInfo recipeInfo, Function<Integer, String> applyPrefixAndSuffix) { - int heat = recipeInfo.recipe.mSpecialValue; - - List<String> result = new ArrayList<>(); - result.add(applyPrefixAndSuffix.apply(heat)); - result.add(" (" + HeatingCoilLevel.getDisplayNameFromHeat(heat, false) + ")"); - return result; - } -} diff --git a/src/main/java/gregtech/nei/IMCForNEI.java b/src/main/java/gregtech/nei/IMCForNEI.java deleted file mode 100644 index 2fdda9893c..0000000000 --- a/src/main/java/gregtech/nei/IMCForNEI.java +++ /dev/null @@ -1,71 +0,0 @@ -package gregtech.nei; - -import static gregtech.api.enums.Mods.GregTech; -import static gregtech.api.enums.Mods.NotEnoughItems; - -import net.minecraft.nbt.NBTTagCompound; - -import cpw.mods.fml.common.event.FMLInterModComms; - -public class IMCForNEI { - - public static void IMCSender() { - if (!NotEnoughItems.isModLoaded()) { - return; - } - - sendHandler("gt.recipe.transcendentplasmamixerrecipes", "gregtech:gt.blockmachines:1006", 1); - sendCatalyst("gt.recipe.transcendentplasmamixerrecipes", "gregtech:gt.blockmachines:1006"); - - sendHandler("gt.recipe.plasmaforge", "gregtech:gt.blockmachines:1004", 1); - sendCatalyst("gt.recipe.plasmaforge", "gregtech:gt.blockmachines:1004"); - - sendHandler("gt.recipe.complexfusionreactor", "gregtech:gt.blockmachines:1193"); - sendCatalyst("gt.recipe.complexfusionreactor", "gregtech:gt.blockmachines:1193"); - sendCatalyst("gt.recipe.complexfusionreactor", "gregtech:gt.blockmachines:1194"); - sendCatalyst("gt.recipe.complexfusionreactor", "gregtech:gt.blockmachines:1195"); - - sendCatalyst("gt.recipe.gasturbinefuel", "gregtech:gt.blockmachines:1005", -1); - sendCatalyst("gt.recipe.gasturbinefuel", "gregtech:gt.blockmachines:1118"); - sendCatalyst("gt.recipe.gasturbinefuel", "gregtech:gt.blockmachines:1119"); - - // overwrite yShift to 6 - sendHandler("gt.recipe.fakeAssemblylineProcess", "gregtech:gt.blockmachines:1170"); - sendHandler("gt.recipe.nanoforge", "gregtech:gt.blockmachines:357"); - sendCatalyst("gt.recipe.nanoforge", "gregtech:gt.blockmachines:357"); - sendHandler("gt.recipe.pcbfactory", "gregtech:gt.blockmachines:356"); - sendCatalyst("gt.recipe.pcbfactory", "gregtech:gt.blockmachines:356"); - sendHandler("gt.recipe.ic2nuke", "IC2:blockGenerator:5"); - sendCatalyst("gt.recipe.ic2nuke", "IC2:blockGenerator:5"); - } - - private static void sendHandler(String aName, String aBlock, int aMaxRecipesPerPage) { - NBTTagCompound aNBT = new NBTTagCompound(); - aNBT.setString("handler", aName); - aNBT.setString("modName", "GregTech"); - aNBT.setString("modId", GregTech.ID); - aNBT.setBoolean("modRequired", true); - aNBT.setString("itemName", aBlock); - aNBT.setInteger("handlerHeight", 135); - aNBT.setInteger("handlerWidth", 166); - aNBT.setInteger("maxRecipesPerPage", aMaxRecipesPerPage); - aNBT.setInteger("yShift", 6); - FMLInterModComms.sendMessage("NotEnoughItems", "registerHandlerInfo", aNBT); - } - - private static void sendHandler(String aName, String aBlock) { - sendHandler(aName, aBlock, 2); - } - - private static void sendCatalyst(String aName, String aStack, int aPriority) { - NBTTagCompound aNBT = new NBTTagCompound(); - aNBT.setString("handlerID", aName); - aNBT.setString("itemName", aStack); - aNBT.setInteger("priority", aPriority); - FMLInterModComms.sendMessage("NotEnoughItems", "registerCatalystInfo", aNBT); - } - - private static void sendCatalyst(String aName, String aStack) { - sendCatalyst(aName, aStack, 0); - } -} diff --git a/src/main/java/gregtech/nei/INEISpecialInfoFormatter.java b/src/main/java/gregtech/nei/INEISpecialInfoFormatter.java deleted file mode 100644 index ef2ba880eb..0000000000 --- a/src/main/java/gregtech/nei/INEISpecialInfoFormatter.java +++ /dev/null @@ -1,21 +0,0 @@ -package gregtech.nei; - -import java.util.List; -import java.util.function.Function; - -/** - * Getter for description for {@link gregtech.api.util.GT_Recipe#mSpecialValue} etc. that will be drawn on NEI. - */ -@FunctionalInterface -public interface INEISpecialInfoFormatter { - - /** - * @param recipeInfo Recipe info to draw description. You can retrieve special value with - * {@code recipeInfo.recipe.mSpecialValue}. - * @param applyPrefixAndSuffix Function to apply - * {@link gregtech.api.util.GT_Recipe.GT_Recipe_Map#formatSpecialValue}. - * @return List of strings containing info for special value etc. - */ - @SuppressWarnings("JavadocReference") - List<String> format(NEIRecipeInfo recipeInfo, Function<Integer, String> applyPrefixAndSuffix); -} diff --git a/src/main/java/gregtech/nei/NEIRecipeInfo.java b/src/main/java/gregtech/nei/NEIRecipeInfo.java deleted file mode 100644 index 85db921ade..0000000000 --- a/src/main/java/gregtech/nei/NEIRecipeInfo.java +++ /dev/null @@ -1,45 +0,0 @@ -package gregtech.nei; - -import gregtech.api.util.GT_Recipe; -import gregtech.common.power.Power; - -/** - * Holds info used for drawing descriptions on NEI. - */ -public class NEIRecipeInfo { - - /** - * Recipe to show description. - */ - public final GT_Recipe recipe; - - /** - * RecipeMap the recipe belongs to. - */ - public final GT_Recipe.GT_Recipe_Map recipeMap; - - /** - * Recipe object for NEI. - */ - public final GT_NEI_DefaultHandler.CachedDefaultRecipe neiCachedRecipe; - - /** - * When user looks up usage for machine, NEI will show all the recipes that the machine can process, taking tier of - * the machine into consideration. This object can be used to show info around overclocked EU/t and duration. - */ - public final Power power; - - /** - * Current Y position for drawing description. - */ - public int yPos; - - public NEIRecipeInfo(GT_Recipe recipe, GT_Recipe.GT_Recipe_Map recipeMap, - GT_NEI_DefaultHandler.CachedDefaultRecipe neiCachedRecipe, Power power, int descriptionYOffset) { - this.recipe = recipe; - this.recipeMap = recipeMap; - this.neiCachedRecipe = neiCachedRecipe; - this.power = power; - this.yPos = descriptionYOffset; - } -} diff --git a/src/main/java/gregtech/nei/NEI_GT_Config.java b/src/main/java/gregtech/nei/NEI_GT_Config.java index 324b4cf303..cb51380539 100644 --- a/src/main/java/gregtech/nei/NEI_GT_Config.java +++ b/src/main/java/gregtech/nei/NEI_GT_Config.java @@ -1,21 +1,31 @@ package gregtech.nei; -import java.util.ArrayList; +import java.util.Collection; import java.util.Comparator; -import java.util.List; +import java.util.Map; +import com.google.common.collect.ImmutableListMultimap; import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ListMultimap; import codechicken.nei.api.API; import codechicken.nei.api.IConfigureNEI; +import codechicken.nei.event.NEIRegisterHandlerInfosEvent; import codechicken.nei.recipe.GuiCraftingRecipe; import codechicken.nei.recipe.GuiUsageRecipe; +import codechicken.nei.recipe.HandlerInfo; import codechicken.nei.recipe.TemplateRecipeHandler; -import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.event.FMLInterModComms; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import gregtech.api.GregTech_API; import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; -import gregtech.api.util.GT_Recipe; +import gregtech.api.interfaces.metatileentity.IMetaTileEntity; +import gregtech.api.interfaces.tileentity.RecipeMapWorkable; +import gregtech.api.recipe.RecipeCategory; +import gregtech.api.recipe.RecipeMap; +import gregtech.api.recipe.RecipeMaps; +import gregtech.api.util.GT_ModHandler; import gregtech.common.items.GT_MetaGenerated_Item_01; import gregtech.common.items.GT_MetaGenerated_Item_02; import gregtech.common.items.GT_MetaGenerated_Item_03; @@ -36,14 +46,17 @@ public class NEI_GT_Config implements IConfigureNEI { * Handlers will be displayed in ascending order of integer value. Any recipe map that is not present in this map * will be assigned a value of 0. Negative values are fine. */ - private static final ImmutableMap<GT_Recipe.GT_Recipe_Map, Integer> RECIPE_MAP_ORDERING = ImmutableMap.<GT_Recipe.GT_Recipe_Map, Integer>builder() - .put(GT_Recipe.GT_Recipe_Map.sAssemblylineVisualRecipes, 1) - .put(GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes, 2) + private static final ImmutableMap<RecipeMap<?>, Integer> RECIPE_MAP_ORDERING = ImmutableMap + .<RecipeMap<?>, Integer>builder() + .put(RecipeMaps.assemblylineVisualRecipes, 1) + .put(RecipeMaps.scannerFakeRecipes, 2) .build(); - private static final Comparator<RecipeMapHandler> RECIPE_MAP_HANDLER_COMPARATOR = Comparator + private static final Comparator<GT_NEI_DefaultHandler> RECIPE_MAP_HANDLER_COMPARATOR = Comparator .comparingInt(handler -> RECIPE_MAP_ORDERING.getOrDefault(handler.getRecipeMap(), 0)); + private static ListMultimap<RecipeCategory, RecipeMapWorkable> RECIPE_CATALYST_INDEX; + public static boolean sIsAdded = true; private static void addHandler(TemplateRecipeHandler handler) { @@ -59,33 +72,107 @@ public class NEI_GT_Config implements IConfigureNEI { @Override public void loadConfig() { sIsAdded = false; - if (FMLCommonHandler.instance() - .getEffectiveSide() - .isClient()) { - List<RecipeMapHandler> handlers = new ArrayList<>(); - - for (GT_Recipe.GT_Recipe_Map tMap : GT_Recipe.GT_Recipe_Map.sMappings) { - if (tMap.mNEIAllowed) { - handlers.add(new GT_NEI_DefaultHandler(tMap)); - } - } + registerHandlers(); + registerCatalysts(); + registerItemEntries(); + registerDumpers(); + sIsAdded = true; + } - handlers.sort(RECIPE_MAP_HANDLER_COMPARATOR); - handlers.forEach(NEI_GT_Config::addHandler); + private void registerHandlers() { + RecipeCategory.ALL_RECIPE_CATEGORIES.values() + .stream() + .filter( + recipeCategory -> recipeCategory.recipeMap.getFrontend() + .getNEIProperties().registerNEI) + .map(GT_NEI_DefaultHandler::new) + .sorted(RECIPE_MAP_HANDLER_COMPARATOR) + .forEach(NEI_GT_Config::addHandler); + } - API.addItemListEntry(ItemList.VOLUMETRIC_FLASK.get(1)); + private void registerCatalysts() { + for (Map.Entry<RecipeCategory, Collection<RecipeMapWorkable>> entry : RECIPE_CATALYST_INDEX.asMap() + .entrySet()) { + entry.getValue() + .forEach( + recipeMapWorkable -> API.addRecipeCatalyst( + recipeMapWorkable.getStackForm(1), + entry.getKey().unlocalizedName, + recipeMapWorkable.getRecipeCatalystPriority())); + } + API.addRecipeCatalyst( + GT_ModHandler.getIC2Item("nuclearReactor", 1, null), + RecipeMaps.ic2NuclearFakeRecipes.unlocalizedName); + // Bronze Blast Furnace + API.removeRecipeCatalyst( + GT_ModHandler.getModItem("gregtech", "gt.blockmachines", 1, 108), + RecipeMaps.primitiveBlastRecipes.unlocalizedName); + } - API.addOption(new MetaTileEntityDumper()); - API.addOption(new MaterialDumper()); - API.addOption(new MetaItemDumper(GT_MetaGenerated_Item_01.INSTANCE, "metaitem01")); - API.addOption(new MetaItemDumper(GT_MetaGenerated_Item_02.INSTANCE, "metaitem02")); - API.addOption(new MetaItemDumper(GT_MetaGenerated_Item_03.INSTANCE, "metaitem03")); - API.addOption(new VoidProtectionSupportDumper()); - API.addOption(new InputSeparationSupportDumper()); - API.addOption(new BatchModeSupportDumper()); - API.addOption(new RecipeLockingSupportDumper()); + private void registerItemEntries() { + API.addItemListEntry(ItemList.VOLUMETRIC_FLASK.get(1)); + } + + private void registerDumpers() { + API.addOption(new MetaTileEntityDumper()); + API.addOption(new MaterialDumper()); + API.addOption(new MetaItemDumper(GT_MetaGenerated_Item_01.INSTANCE, "metaitem01")); + API.addOption(new MetaItemDumper(GT_MetaGenerated_Item_02.INSTANCE, "metaitem02")); + API.addOption(new MetaItemDumper(GT_MetaGenerated_Item_03.INSTANCE, "metaitem03")); + API.addOption(new VoidProtectionSupportDumper()); + API.addOption(new InputSeparationSupportDumper()); + API.addOption(new BatchModeSupportDumper()); + API.addOption(new RecipeLockingSupportDumper()); + } + + @SubscribeEvent + public void registerHandlerInfo(NEIRegisterHandlerInfosEvent event) { + if (RECIPE_CATALYST_INDEX == null) { + // This method will be called earlier than #loadConfig + generateRecipeCatalystIndex(); } - sIsAdded = true; + RecipeCategory.ALL_RECIPE_CATEGORIES.values() + .forEach(recipeCategory -> { + HandlerInfo.Builder builder = createHandlerInfoBuilderTemplate(recipeCategory); + HandlerInfo handlerInfo; + if (recipeCategory.handlerInfoCreator != null) { + handlerInfo = recipeCategory.handlerInfoCreator.apply(builder) + .build(); + } else { + // Infer icon from recipe catalysts + RECIPE_CATALYST_INDEX.get(recipeCategory) + .stream() + .findFirst() + .ifPresent(catalyst -> builder.setDisplayStack(catalyst.getStackForm(1))); + handlerInfo = builder.build(); + } + event.registerHandlerInfo(handlerInfo); + }); + } + + private HandlerInfo.Builder createHandlerInfoBuilderTemplate(RecipeCategory recipeCategory) { + return new HandlerInfo.Builder( + recipeCategory.unlocalizedName, + recipeCategory.ownerMod.getName(), + recipeCategory.ownerMod.getModId()).setShiftY(6) + .setHeight(135) + .setMaxRecipesPerPage(2); + } + + private static void generateRecipeCatalystIndex() { + ImmutableListMultimap.Builder<RecipeCategory, RecipeMapWorkable> builder = new ImmutableListMultimap.Builder<>(); + builder + .orderValuesBy(Comparator.comparing(recipeMapWorkable -> -recipeMapWorkable.getRecipeCatalystPriority())); + for (int i = 1; i < GregTech_API.METATILEENTITIES.length; i++) { + IMetaTileEntity mte = GregTech_API.METATILEENTITIES[i]; + if (!(mte instanceof RecipeMapWorkable recipeMapWorkable)) continue; + for (RecipeMap<?> recipeMap : recipeMapWorkable.getAvailableRecipeMaps()) { + for (RecipeCategory recipeCategory : recipeMap.getAssociatedCategories()) { + builder.put(recipeCategory, recipeMapWorkable); + } + } + } + RECIPE_CATALYST_INDEX = builder.build(); } @Override diff --git a/src/main/java/gregtech/nei/NEI_TransferRectHost.java b/src/main/java/gregtech/nei/NEI_TransferRectHost.java deleted file mode 100644 index cdc708beb8..0000000000 --- a/src/main/java/gregtech/nei/NEI_TransferRectHost.java +++ /dev/null @@ -1,14 +0,0 @@ -package gregtech.nei; - -import java.awt.Rectangle; - -public interface NEI_TransferRectHost { - - String getNeiTransferRectString(); - - String getNeiTransferRectTooltip(); - - Object[] getNeiTransferRectArgs(); - - Rectangle getNeiTransferRect(); -} diff --git a/src/main/java/gregtech/nei/RecipeDisplayInfo.java b/src/main/java/gregtech/nei/RecipeDisplayInfo.java new file mode 100644 index 0000000000..f9cc1a9a8c --- /dev/null +++ b/src/main/java/gregtech/nei/RecipeDisplayInfo.java @@ -0,0 +1,99 @@ +package gregtech.nei; + +import static gregtech.api.util.GT_Utility.isStringInvalid; + +import java.util.List; + +import javax.annotation.Nullable; +import javax.annotation.ParametersAreNonnullByDefault; + +import net.minecraft.client.Minecraft; + +import gregtech.api.objects.overclockdescriber.OverclockDescriber; +import gregtech.api.recipe.RecipeMap; +import gregtech.api.util.FieldsAreNonnullByDefault; +import gregtech.api.util.GT_OverclockCalculator; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.MethodsReturnNonnullByDefault; + +/** + * Holds info used for drawing descriptions on NEI. + */ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +@FieldsAreNonnullByDefault +public class RecipeDisplayInfo { + + /** + * Recipe to show description. + */ + public final GT_Recipe recipe; + + /** + * RecipeMap the recipe belongs to. + */ + public final RecipeMap<?> recipeMap; + + /** + * When user looks up usage for machine, NEI will show all the recipes that the machine can process, taking tier of + * the machine into consideration. This object can be used to show info around overclocked EU/t and duration. + */ + public final OverclockDescriber overclockDescriber; + + /** + * Pre-built overclock calculator, used for drawing OC information. Do not calculate it again. + */ + public final GT_OverclockCalculator calculator; + + /** + * Current Y position for drawing description. + */ + private int yPos; + + private final int neiTextColorOverride; + + RecipeDisplayInfo(GT_Recipe recipe, RecipeMap<?> recipeMap, OverclockDescriber overclockDescriber, + GT_OverclockCalculator calculator, int descriptionYOffset, int neiTextColorOverride) { + this.recipe = recipe; + this.recipeMap = recipeMap; + this.overclockDescriber = overclockDescriber; + this.calculator = calculator; + this.yPos = descriptionYOffset; + this.neiTextColorOverride = neiTextColorOverride; + } + + /** + * Draws text. + */ + public void drawText(@Nullable String text) { + drawText(text, 10); + } + + /** + * Draws text. + * + * @param yShift y position to shift after this text + */ + public void drawText(@Nullable String text, int yShift) { + drawText(text, 5, yShift); + } + + /** + * Draws text. + * + * @param xStart x position to start drawing + * @param yShift y position to shift after this text + */ + public void drawText(@Nullable String text, int xStart, int yShift) { + if (isStringInvalid(text)) return; + Minecraft.getMinecraft().fontRenderer + .drawString(text, xStart, yPos, neiTextColorOverride != -1 ? neiTextColorOverride : 0x000000); + yPos += yShift; + } + + public void drawTextMultipleLines(List<String> texts) { + for (String text : texts) { + drawText(text, 10); + } + } +} diff --git a/src/main/java/gregtech/nei/RecipeMapHandler.java b/src/main/java/gregtech/nei/RecipeMapHandler.java deleted file mode 100644 index a31bcefdff..0000000000 --- a/src/main/java/gregtech/nei/RecipeMapHandler.java +++ /dev/null @@ -1,39 +0,0 @@ -package gregtech.nei; - -import net.minecraft.client.Minecraft; - -import com.gtnewhorizons.modularui.api.ModularUITextures; - -import codechicken.nei.recipe.TemplateRecipeHandler; -import gregtech.api.gui.GT_GUIColorOverride; -import gregtech.api.util.GT_Recipe; - -/** - * This abstract class represents an NEI handler that is constructed from a {@link GT_Recipe.GT_Recipe_Map}, and allows - * us to sort NEI handlers by recipe map. - */ -abstract class RecipeMapHandler extends TemplateRecipeHandler { - - protected final GT_Recipe.GT_Recipe_Map mRecipeMap; - - protected final GT_GUIColorOverride colorOverride; - private int overrideTextColor = -1; - - RecipeMapHandler(GT_Recipe.GT_Recipe_Map mRecipeMap) { - this.mRecipeMap = mRecipeMap; - colorOverride = GT_GUIColorOverride.get(ModularUITextures.VANILLA_BACKGROUND.location); - } - - GT_Recipe.GT_Recipe_Map getRecipeMap() { - return mRecipeMap; - } - - protected void updateOverrideTextColor() { - overrideTextColor = colorOverride.getTextColorOrDefault("nei", -1); - } - - protected void drawText(int aX, int aY, String aString, int aColor) { - Minecraft.getMinecraft().fontRenderer - .drawString(aString, aX, aY, overrideTextColor != -1 ? overrideTextColor : aColor); - } -} diff --git a/src/main/java/gregtech/nei/formatter/DefaultSpecialValueFormatter.java b/src/main/java/gregtech/nei/formatter/DefaultSpecialValueFormatter.java new file mode 100644 index 0000000000..1c4d486319 --- /dev/null +++ b/src/main/java/gregtech/nei/formatter/DefaultSpecialValueFormatter.java @@ -0,0 +1,36 @@ +package gregtech.nei.formatter; + +import static gregtech.api.util.GT_Utility.trans; + +import java.util.Collections; +import java.util.List; + +import javax.annotation.ParametersAreNonnullByDefault; + +import gregtech.GT_Mod; +import gregtech.api.util.MethodsReturnNonnullByDefault; +import gregtech.nei.RecipeDisplayInfo; + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +public class DefaultSpecialValueFormatter implements INEISpecialInfoFormatter { + + public static DefaultSpecialValueFormatter INSTANCE = new DefaultSpecialValueFormatter(); + + @Override + public List<String> format(RecipeDisplayInfo recipeInfo) { + int specialValue = recipeInfo.recipe.mSpecialValue; + if (specialValue == -100 && GT_Mod.gregtechproxy.mLowGravProcessing) { + return Collections.singletonList(trans("159", "Needs Low Gravity")); + } else if (specialValue == -200 && GT_Mod.gregtechproxy.mEnableCleanroom) { + return Collections.singletonList(trans("160", "Needs Cleanroom")); + } else if (specialValue == -201) { + return Collections.singletonList(trans("206", "Scan for Assembly Line")); + } else if (specialValue == -300 && GT_Mod.gregtechproxy.mEnableCleanroom) { + return Collections.singletonList(trans("160.1", "Needs Cleanroom & LowGrav")); + } else if (specialValue == -400) { + return Collections.singletonList(trans("216", "Deprecated Recipe")); + } + return Collections.emptyList(); + } +} diff --git a/src/main/java/gregtech/nei/formatter/FuelSpecialValueFormatter.java b/src/main/java/gregtech/nei/formatter/FuelSpecialValueFormatter.java new file mode 100644 index 0000000000..dcfe2617dd --- /dev/null +++ b/src/main/java/gregtech/nei/formatter/FuelSpecialValueFormatter.java @@ -0,0 +1,27 @@ +package gregtech.nei.formatter; + +import java.util.Collections; +import java.util.List; + +import javax.annotation.ParametersAreNonnullByDefault; + +import net.minecraft.util.StatCollector; + +import gregtech.api.util.GT_Utility; +import gregtech.api.util.MethodsReturnNonnullByDefault; +import gregtech.nei.RecipeDisplayInfo; + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +public class FuelSpecialValueFormatter implements INEISpecialInfoFormatter { + + public static FuelSpecialValueFormatter INSTANCE = new FuelSpecialValueFormatter(); + + @Override + public List<String> format(RecipeDisplayInfo recipeInfo) { + return Collections.singletonList( + StatCollector.translateToLocalFormatted( + "GT5U.nei.fuel", + GT_Utility.formatNumbers(recipeInfo.recipe.mSpecialValue * 1000L))); + } +} diff --git a/src/main/java/gregtech/nei/FusionSpecialValueFormatter.java b/src/main/java/gregtech/nei/formatter/FusionSpecialValueFormatter.java index 46254a1510..77cd41b343 100644 --- a/src/main/java/gregtech/nei/FusionSpecialValueFormatter.java +++ b/src/main/java/gregtech/nei/formatter/FusionSpecialValueFormatter.java @@ -1,26 +1,35 @@ -package gregtech.nei; +package gregtech.nei.formatter; import java.util.Collections; import java.util.List; -import java.util.function.Function; + +import javax.annotation.ParametersAreNonnullByDefault; + +import net.minecraft.util.StatCollector; import gregtech.api.enums.GT_Values; +import gregtech.api.util.GT_Utility; +import gregtech.api.util.MethodsReturnNonnullByDefault; +import gregtech.nei.RecipeDisplayInfo; +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault public class FusionSpecialValueFormatter implements INEISpecialInfoFormatter { public static final FusionSpecialValueFormatter INSTANCE = new FusionSpecialValueFormatter(); - private static final int M = 1000000; + private static final long M = 1000000; @Override - public List<String> format(NEIRecipeInfo recipeInfo, Function<Integer, String> applyPrefixAndSuffix) { + public List<String> format(RecipeDisplayInfo recipeInfo) { int euToStart = recipeInfo.recipe.mSpecialValue; int voltage = recipeInfo.recipe.mEUt; int tier = getFusionTier(euToStart, voltage); - return Collections.singletonList(applyPrefixAndSuffix.apply(euToStart) + " (MK " + tier + ")"); + return Collections.singletonList( + StatCollector.translateToLocalFormatted("GT5U.nei.start_eu", GT_Utility.formatNumbers(euToStart), tier)); } - public static int getFusionTier(int startupPower, long voltage) { + public static int getFusionTier(long startupPower, long voltage) { int tier; if (startupPower <= 10 * M * 16) { tier = 1; @@ -28,8 +37,10 @@ public class FusionSpecialValueFormatter implements INEISpecialInfoFormatter { tier = 2; } else if (startupPower <= 40 * M * 16) { tier = 3; - } else { + } else if (startupPower <= 320 * M * 16) { tier = 4; + } else { + tier = 5; } if (voltage <= GT_Values.V[6]) { diff --git a/src/main/java/gregtech/nei/formatter/HeatingCoilSpecialValueFormatter.java b/src/main/java/gregtech/nei/formatter/HeatingCoilSpecialValueFormatter.java new file mode 100644 index 0000000000..f5c17a1163 --- /dev/null +++ b/src/main/java/gregtech/nei/formatter/HeatingCoilSpecialValueFormatter.java @@ -0,0 +1,30 @@ +package gregtech.nei.formatter; + +import java.util.Collections; +import java.util.List; + +import javax.annotation.ParametersAreNonnullByDefault; + +import net.minecraft.util.StatCollector; + +import gregtech.api.enums.HeatingCoilLevel; +import gregtech.api.util.GT_Utility; +import gregtech.api.util.MethodsReturnNonnullByDefault; +import gregtech.nei.RecipeDisplayInfo; + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +public class HeatingCoilSpecialValueFormatter implements INEISpecialInfoFormatter { + + public static final HeatingCoilSpecialValueFormatter INSTANCE = new HeatingCoilSpecialValueFormatter(); + + @Override + public List<String> format(RecipeDisplayInfo recipeInfo) { + int heat = recipeInfo.recipe.mSpecialValue; + return Collections.singletonList( + StatCollector.translateToLocalFormatted( + "GT5U.nei.heat_capacity", + GT_Utility.formatNumbers(heat), + HeatingCoilLevel.getDisplayNameFromHeat(heat, false))); + } +} diff --git a/src/main/java/gregtech/nei/formatter/INEISpecialInfoFormatter.java b/src/main/java/gregtech/nei/formatter/INEISpecialInfoFormatter.java new file mode 100644 index 0000000000..21228240d4 --- /dev/null +++ b/src/main/java/gregtech/nei/formatter/INEISpecialInfoFormatter.java @@ -0,0 +1,24 @@ +package gregtech.nei.formatter; + +import java.util.List; + +import javax.annotation.ParametersAreNonnullByDefault; + +import gregtech.api.util.MethodsReturnNonnullByDefault; +import gregtech.nei.RecipeDisplayInfo; + +/** + * Getter for description for {@link gregtech.api.util.GT_Recipe#mSpecialValue} etc. that will be drawn on NEI. + */ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +@FunctionalInterface +public interface INEISpecialInfoFormatter { + + /** + * @param recipeInfo Recipe info to draw description. You can retrieve special value with + * {@code recipeInfo.recipe.mSpecialValue}. + * @return List of strings containing info for special value etc. + */ + List<String> format(RecipeDisplayInfo recipeInfo); +} diff --git a/src/main/java/gregtech/nei/formatter/SimpleSpecialValueFormatter.java b/src/main/java/gregtech/nei/formatter/SimpleSpecialValueFormatter.java new file mode 100644 index 0000000000..8f2098c0a9 --- /dev/null +++ b/src/main/java/gregtech/nei/formatter/SimpleSpecialValueFormatter.java @@ -0,0 +1,49 @@ +package gregtech.nei.formatter; + +import java.util.Collections; +import java.util.List; + +import javax.annotation.Nullable; +import javax.annotation.ParametersAreNonnullByDefault; + +import net.minecraft.util.StatCollector; + +import gregtech.api.util.GT_Utility; +import gregtech.api.util.MethodsReturnNonnullByDefault; +import gregtech.nei.RecipeDisplayInfo; + +/** + * Simple formatter for recipe's special value. + */ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +public class SimpleSpecialValueFormatter implements INEISpecialInfoFormatter { + + @Nullable + private final String translationKey; + private final int multiplier; + + /** + * @param translationKey Localization key to format + * @param multiplier Number to multiply to special value for display + */ + public SimpleSpecialValueFormatter(@Nullable String translationKey, int multiplier) { + this.translationKey = translationKey; + this.multiplier = multiplier; + } + + /** + * @param translationKey Localization key to format + */ + public SimpleSpecialValueFormatter(@Nullable String translationKey) { + this(translationKey, 1); + } + + @Override + public List<String> format(RecipeDisplayInfo recipeInfo) { + return Collections.singletonList( + StatCollector.translateToLocalFormatted( + translationKey, + GT_Utility.formatNumbers((long) recipeInfo.recipe.mSpecialValue * multiplier))); + } +} diff --git a/src/main/resources/assets/gregtech/lang/en_US.lang b/src/main/resources/assets/gregtech/lang/en_US.lang index 1a6505a731..f76c25ef71 100644 --- a/src/main/resources/assets/gregtech/lang/en_US.lang +++ b/src/main/resources/assets/gregtech/lang/en_US.lang @@ -100,8 +100,8 @@ gt.recipe.assembler=Assembler gt.recipe.assembler.description=Avengers, Assemble! gt.recipe.autoclave=Autoclave gt.recipe.autoclave.description=Crystallizing your Dusts -gt.recipe.brewery=Brewery -gt.recipe.brewery.description=Brewing your Drinks +gt.recipe.brewer=Brewery +gt.recipe.brewer.description=Brewing your Drinks gt.recipe.metalbender=Bending Machine gt.recipe.metalbender.description=Boo, he's bad! We want BENDER!!! gt.recipe.canner=Canner @@ -191,6 +191,47 @@ gt.recipe.unpackager.description=Grabs things out of Boxes gt.recipe.wiremill=Wiremill gt.recipe.wiremill.description=Produces Wires more efficiently +# RecipeMaps that are not listed on MachineType enum +gt.recipe.fakeAssemblylineProcess=Assemblyline Process +gt.recipe.fusionreactor=Fusion Reactor +gt.recipe.blastfurnace=Blast Furnace +gt.recipe.plasmaforge=DTPF +gt.recipe.transcendentplasmamixerrecipes=Transcendent Plasma Mixer +gt.recipe.fakespaceprojects=Space Projects +gt.recipe.primitiveblastfurnace=Primitive Blast Furnace +gt.recipe.implosioncompressor=Implosion Compressor +gt.recipe.vacuumfreezer=Vacuum Freezer +gt.recipe.largechemicalreactor=Large Chemical Reactor +gt.recipe.distillationtower=Distillation Tower +gt.recipe.craker=Oil Cracker +gt.recipe.pyro=Pyrolyse Oven +gt.recipe.dieselgeneratorfuel=Combustion Generator Fuels +gt.recipe.extremedieselgeneratorfuel=Extreme Diesel Engine Fuel +gt.recipe.gasturbinefuel=Gas Turbine Fuel +gt.recipe.thermalgeneratorfuel=Thermal Generator Fuels +gt.recipe.semifluidboilerfuels=Semifluid Boiler Fuels +gt.recipe.plasmageneratorfuels=Plasma Generator Fuels +gt.recipe.magicfuels=Magic Energy Absorber Fuels +gt.recipe.smallnaquadahreactor=Naquadah Reactor MkI +gt.recipe.largenaquadahreactor=Naquadah Reactor MkII +gt.recipe.fluidnaquadahreactor=Naquadah Reactor MkIII +gt.recipe.hugenaquadahreactor=Naquadah Reactor MkIV +gt.recipe.extrahugenaquadahreactor=Naquadah Reactor MkV +gt.recipe.fluidfuelnaquadahreactor=Fluid Naquadah Reactor +gt.recipe.largeboilerfakefuels=Large Boiler +gt.recipe.nanoforge=Nano Forge +gt.recipe.pcbfactory=PCB Factory +gt.recipe.ic2nuke=Nuclear Fission + +# Recipe categories +gt.recipe.category.arc_furnace_recycling=Arc Furnace Recycling +gt.recipe.category.plasma_arc_furnace_recycling=Plasma Arc Furnace Recycling +gt.recipe.category.macerator_recycling=Macerator Recycling +gt.recipe.category.fluid_extractor_recycling=Fluid Extractor Recycling +gt.recipe.category.alloy_smelter_recycling=Alloy Smelter Recycling +gt.recipe.category.alloy_smelter_molding=Alloy Smelter Molding +gt.recipe.category.forge_hammer_recycling=Forge Hammer Recycling + GT5U.machines.tier=Tier GT5U.machines.workarea=Work Area GT5U.machines.workareaset=Work Area set to @@ -466,6 +507,13 @@ GT5U.multiblock.usage=Probably uses GT5U.multiblock.parallelism=Max parallelism GT5U.multiblock.curparallelism=Current parallelism +# NEI recipe handlers +GT5U.nei.heat_capacity=Heat Capacity: %s K (%s) +GT5U.nei.tier=Tier: %s +GT5U.nei.start_eu=Start: %s EU (MK %s) +GT5U.nei.stages=Stages: %s +GT5U.nei.fuel=Fuel Value: %s EU + GT5U.config.colormodulation=Color Modulator GT5U.config.colormodulation.cable_insulation=Cable Insulation GT5U.config.colormodulation.cable_insulation.B=Blue @@ -514,6 +562,7 @@ GT5U.config.nei.RecipeOwner=Show which mod added the recipe GT5U.config.nei.RecipeOwnerStackTrace=[debug] Show stack traces of recipe addition GT5U.config.nei.RecipeOwnerStackTrace.tooltip=[requires reboot] GT5U.config.nei.OriginalVoltage=Show original voltage when overclocked +GT5U.config.nei.recipe_categories=Recipe Categories GT5U.config.waila=Waila GT5U.config.waila.WailaTransformerVoltageTier=Show voltage tier of transformer GT5U.config.waila.WailaAverageNS=Show average ns of multiblocks on waila @@ -526,7 +575,10 @@ GT5U.interface.coverTabs.south=South GT5U.interface.coverTabs.west=West GT5U.interface.coverTabs.east=East -# NEI +GT5U.steam_variant.bronze=Bronze +GT5U.steam_variant.steel=Steel + +# NEI options nei.options.tools.dump.gt5u=GT5u nei.options.tools.dump.gt5u.metatileentity=MetaTileEntity nei.options.tools.dump.gt5u.metatileentitys=MetaTileEntities @@ -1375,7 +1427,6 @@ gt.solar.system.nereid=Nereid gt.solar.system.mercury=Mercury gt.solar.system.titan=Titan gt.solar.system.phobos=Phobos -gt.specialvalue.stages=Stages: gt.multiBlock.controller.cokeOven=Coke Oven diff --git a/src/main/resources/assets/gregtech/textures/gui/background/nei_single_recipe.png b/src/main/resources/assets/gregtech/textures/gui/background/nei_single_recipe.png Binary files differnew file mode 100644 index 0000000000..e385d976b1 --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/gui/background/nei_single_recipe.png diff --git a/src/main/resources/assets/gregtech/textures/gui/picture/alloy_smelter_molding.png b/src/main/resources/assets/gregtech/textures/gui/picture/alloy_smelter_molding.png Binary files differnew file mode 100644 index 0000000000..333b94759d --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/gui/picture/alloy_smelter_molding.png diff --git a/src/main/resources/assets/gregtech/textures/gui/picture/alloy_smelter_recycling.png b/src/main/resources/assets/gregtech/textures/gui/picture/alloy_smelter_recycling.png Binary files differnew file mode 100644 index 0000000000..7210d1bd95 --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/gui/picture/alloy_smelter_recycling.png diff --git a/src/main/resources/assets/gregtech/textures/gui/picture/arc_furnace_recycling.png b/src/main/resources/assets/gregtech/textures/gui/picture/arc_furnace_recycling.png Binary files differnew file mode 100644 index 0000000000..c5c1bd598d --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/gui/picture/arc_furnace_recycling.png diff --git a/src/main/resources/assets/gregtech/textures/gui/picture/fluid_extractor_recycling.png b/src/main/resources/assets/gregtech/textures/gui/picture/fluid_extractor_recycling.png Binary files differnew file mode 100644 index 0000000000..31a3ed19ee --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/gui/picture/fluid_extractor_recycling.png diff --git a/src/main/resources/assets/gregtech/textures/gui/picture/forge_hammer_recycling.png b/src/main/resources/assets/gregtech/textures/gui/picture/forge_hammer_recycling.png Binary files differnew file mode 100644 index 0000000000..2bba77de12 --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/gui/picture/forge_hammer_recycling.png diff --git a/src/main/resources/assets/gregtech/textures/gui/picture/macerator_recycling.png b/src/main/resources/assets/gregtech/textures/gui/picture/macerator_recycling.png Binary files differnew file mode 100644 index 0000000000..69a79e1a8a --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/gui/picture/macerator_recycling.png diff --git a/src/main/resources/assets/gregtech/textures/gui/picture/plasma_arc_furnace_recycling.png b/src/main/resources/assets/gregtech/textures/gui/picture/plasma_arc_furnace_recycling.png Binary files differnew file mode 100644 index 0000000000..2dbf7ce070 --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/gui/picture/plasma_arc_furnace_recycling.png |