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 | |
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>
308 files changed, 12600 insertions, 12887 deletions
diff --git a/dependencies.gradle b/dependencies.gradle index fcabfe33b1..e0f168bbaa 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -41,7 +41,7 @@ dependencies { api("com.github.GTNewHorizons:ModularUI:1.1.24:dev") api("com.github.GTNewHorizons:waila:1.6.5:dev") api("com.github.GTNewHorizons:Applied-Energistics-2-Unofficial:rv3-beta-288-GTNH:dev") - api("com.github.GTNewHorizons:AE2FluidCraft-Rework:1.1.67-gtnh:dev") + api("com.github.GTNewHorizons:AE2FluidCraft-Rework:1.1.68-gtnh-pre:dev") implementation("com.github.GTNewHorizons:Avaritia:1.46:dev") @@ -68,6 +68,9 @@ dependencies { compileOnly("com.google.auto.value:auto-value-annotations:1.10.1") { transitive = false } annotationProcessor("com.google.auto.value:auto-value:1.10.1") + // For testing iApiary + //runtimeOnlyNonPublishable("com.github.GTNewHorizons:ForestryMC:4.6.14:dev") + testImplementation(platform('org.junit:junit-bom:5.9.2')) testImplementation('org.junit.jupiter:junit-jupiter') testImplementation("org.mockito:mockito-core:3.+") diff --git a/docs/RecipeBuilder.md b/docs/RecipeBuilder.md index 9a56bebc49..1607f8fd23 100644 --- a/docs/RecipeBuilder.md +++ b/docs/RecipeBuilder.md @@ -29,13 +29,13 @@ being the preferred choice. ## complicated recipe adder 1. If one invocation of recipe adder would add multiple recipe to same recipe map, give that recipe map a recipeEmitter -2. If one invocation of recipe adder would conditionally add recipe, define a new IGT_RecipeMap in GT_RecipeConstants +2. If one invocation of recipe adder would conditionally add recipe, define a new IRecipeMap in GT_RecipeConstants 3. If one invocation of recipe adder would add recipe to multiple recipe map, 1. If all recipe maps involved receive recipe only via this type of adding, use the chaining mechanism offered by GT_RecipeMap, i.e. addDownstream(). e.g.sMultiblockElectrolyzerRecipes and sElectrolyzerRecipes - 2. Otherwise, define a new IGT_RecipeMap in GT_RecipeConstants. -4. If the target isn't a real recipe map (e.g. AssLine stuff), define a new IGT_RecipeMap in GT_RecipeConstants. + 2. Otherwise, define a new IRecipeMap in GT_RecipeConstants. +4. If the target isn't a real recipe map (e.g. AssLine stuff), define a new IRecipeMap in GT_RecipeConstants. ## Downstream in an addon @@ -44,17 +44,17 @@ This assumes you need to generate recipe into your own recipe map from a parent ## deep copy or not There is no need to do deep copy EXCEPT you are downstream. -If you do modify the values in a downstream recipe map, call IGT_RecipeMap.deepCopyInput() before adding yourself as a downstream. +If you do modify the values in a downstream recipe map, call IRecipeMap.deepCopyInput() before adding yourself as a downstream. -## setRecipeSpecialHandler or setRecipeEmitterSingle +## recipeTransformer or recipeEmitterSingle -Prefer setRecipeSpecialHandler, unless it would throw exception on builder.build(). +Prefer recipeTransformer, unless it would throw exception on builder.build(). ## Special Value and Special Item -These are considered legacy. IGT_RecipeMap should avoid using these and use the more readable metadata system. +These are considered legacy. IRecipeMap should avoid using these and use the more readable metadata system. -## Use recipe builder or add() directly inside IGT_RecipeMap.doAdd()? +## Use recipe builder or add() directly inside IRecipeMap.doAdd()? You SHOULD use the recipe builder and delegate further processing to the doAdd() on that recipe map. e.g. UniversalDistillation However, there are situations that you need to bypass those logic. Then add() is a valid choice. diff --git a/docs/ResourcePacks_Guide.md b/docs/ResourcePacks_Guide.md index c016d82a00..30fc219651 100644 --- a/docs/ResourcePacks_Guide.md +++ b/docs/ResourcePacks_Guide.md @@ -8,7 +8,7 @@ You might want to change color of text displayed on GUI. You can place mcmeta fi - `gregtech/textures/gui/background/steel.png.mcmeta` (steam steel machines) - `gregtech/textures/gui/background/primitive.png.mcmeta` (steam primitive machines) - `gregtech/textures/gui/background/fusion_computer.png.mcmeta` (fusion reactor controller) -- `modularui/textures/gui/background/vanilla_background.png.mcmeta` (NEI) +- `gregtech/textures/gui/background/nei_single_recipe.png.mcmeta` (NEI recipe border) (and there might be more in the future, but currently these are exhaustive.) You also need to place png file corresponding to mcmeta file, even if it's unchanged from the mod's default one. 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 |