aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/gregtech/api/util/GT_ProcessingArray_Manager.java31
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java87
-rw-r--r--src/main/java/gregtech/loaders/postload/GT_ProcessingArrayRecipeLoader.java209
3 files changed, 121 insertions, 206 deletions
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 853a493f4a..0005f20869 100644
--- a/src/main/java/gregtech/api/util/GT_ProcessingArray_Manager.java
+++ b/src/main/java/gregtech/api/util/GT_ProcessingArray_Manager.java
@@ -6,26 +6,19 @@ import java.util.HashMap;
public class GT_ProcessingArray_Manager {
- private static final HashMap<Integer, String> mMetaKeyMap = new HashMap<Integer, String>();
- private static final HashMap<String, GT_Recipe_Map> mRecipeCache = new HashMap<String, GT_Recipe_Map>();
-
- public static boolean registerRecipeMapForMeta(int aMeta, GT_Recipe_Map aMap) {
- if (aMeta < 0 || aMeta > Short.MAX_VALUE || aMap == null) {
- return false;
- }
- if (mMetaKeyMap.containsKey(aMeta)) {
- return false;
- }
- String aMapNameKey = aMap.mUnlocalizedName;
- mMetaKeyMap.put(aMeta, aMapNameKey);
- if (!mRecipeCache.containsKey(aMapNameKey)) {
- mRecipeCache.put(aMapNameKey, aMap);
+ private static final HashMap<String, GT_Recipe_Map> mRecipeSaves = new HashMap<String, GT_Recipe_Map>();
+ //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) {
+ if (aMachineName != null) {
+ mRecipeSaves.put(aMachineName, aMap);
}
- return true;
}
-
- public static GT_Recipe_Map getRecipeMapForMeta(int aMeta) {
- return mRecipeCache.get(mMetaKeyMap.get(aMeta));
+ //Allows the PA to extract the recipe map for the machine inside it.
+ public static GT_Recipe_Map giveRecipeMap(String aMachineName) {
+ if (aMachineName != null) {
+ return mRecipeSaves.get(aMachineName);
+ }
+ return null;
}
-
}
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 7184c8ccd7..4cd73dab3c 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
@@ -20,6 +20,7 @@ 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_Single_Recipe_Check_Processing_Array;
+import gregtech.common.blocks.GT_Item_Machines;
import gregtech.api.util.GT_Utility;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
@@ -142,10 +143,13 @@ public class GT_MetaTileEntity_ProcessingArray extends GT_MetaTileEntity_CubicMu
}
*/
+ //Gets the recipe map for the given machine through its unlocalized name
@Override
public GT_Recipe_Map getRecipeMap() {
if (isCorrectMachinePart(mInventory[1])) {
- return GT_ProcessingArray_Manager.getRecipeMapForMeta(mInventory[1].getItemDamage());
+ int length = mInventory[1].getUnlocalizedName().length();
+ String aMachineName = mInventory[1].getUnlocalizedName().substring(17,length-8);
+ return GT_ProcessingArray_Manager.giveRecipeMap(aMachineName);
}
return null;
}
@@ -177,68 +181,31 @@ public class GT_MetaTileEntity_ProcessingArray extends GT_MetaTileEntity_CubicMu
mMachineName = mInventory[1].getUnlocalizedName();
}
- int machineTier = 0;
-
if (mLastRecipe == null) {
- try {
- int length = mMachineName.length();
-
- machineTier = Integer.parseInt(mMachineName.substring(length - 2));
-
- } catch (NumberFormatException ignored) {
- /* do nothing */
- }
-
- switch (machineTier) {
- default:
- tTier = 0;
- mMult = 0;//*1
- break;
- case 1:
- case 2:
- case 3:
- case 4:
- case 5:
- case 6:
- case 7:
- case 8:
- case 9:
- tTier = machineTier;
- mMult = 0;//*1
- break;
- case 10:
- if (downtierUEV) {
- tTier = 9;
- mMult = 2;//u need 4x less machines and they will use 4x less power
- } else {
- tTier = machineTier;
- mMult = 0;//*1
- }
- break;
- case 11:
- if (downtierUEV) {
- tTier = 9;
- mMult = 4;//u need 16x less machines and they will use 16x less power
- } else {
- tTier = machineTier;
- mMult = 0;//*1
- }
- break;
- case 12:
- case 13:
- case 14:
- case 15:
- if (downtierUEV) {
- tTier = 9;
- mMult = 6;//u need 64x less machines and they will use 64x less power
- } else {
- tTier = machineTier;
- mMult = 0;//*1
- }
- break;
+ IMetaTileEntity aMachine = GT_Item_Machines.getMetaTileEntity(mInventory[1]);
+ if (aMachine!=null)
+ tTier = ((GT_MetaTileEntity_TieredMachineBlock) aMachine).mTier;
+ mMult = 0;
+ if (downtierUEV && tTier>9){
+ switch(tTier){
+ default:
+ tTier=0;
+ break;
+ case 10:
+ tTier=9;
+ mMult=2; //Parallels are 4x as strong and require 4x less EU/t
+ case 11:
+ tTier=9;
+ mMult=4; //Parallels are 16x as strong and require 16x less EU/t
+ case 12:
+ case 13:
+ case 14:
+ case 15:
+ tTier=9;
+ mMult=6; //Parallels are 64x as strong and require 64x less EU/t
+ }
}
}
-
ArrayList<FluidStack> tFluidList = getStoredFluids();
FluidStack[] tFluids = tFluidList.toArray(new FluidStack[0]);
if (mSeparate) {
diff --git a/src/main/java/gregtech/loaders/postload/GT_ProcessingArrayRecipeLoader.java b/src/main/java/gregtech/loaders/postload/GT_ProcessingArrayRecipeLoader.java
index 57a65268be..71dda61bca 100644
--- a/src/main/java/gregtech/loaders/postload/GT_ProcessingArrayRecipeLoader.java
+++ b/src/main/java/gregtech/loaders/postload/GT_ProcessingArrayRecipeLoader.java
@@ -8,137 +8,92 @@ public class GT_ProcessingArrayRecipeLoader {
public static void registerDefaultGregtechMaps() {
- // Centrifuge
- registerMapBetweenRange(361, 365, GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes);
-
- // Electrolyzer
- registerMapBetweenRange(371, 375, GT_Recipe.GT_Recipe_Map.sElectrolyzerRecipes);
-
- // Assembler
- registerMapBetweenRange(211, 215, GT_Recipe.GT_Recipe_Map.sAssemblerRecipes);
-
- // Compressor
- registerMapBetweenRange(241, 245, GT_Recipe.GT_Recipe_Map.sCompressorRecipes);
-
+ //Alloy Smelter
+ GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.alloysmelter",GT_Recipe_Map.sAlloySmelterRecipes);
+ //Arc Furnace
+ GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.arcfurnace",GT_Recipe_Map.sArcFurnaceRecipes);
+ //Assembler
+ GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.assembler",GT_Recipe_Map.sAssemblerRecipes);
+ //Autoclave
+ GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.autoclave",GT_Recipe_Map.sAutoclaveRecipes);
+ //Bender
+ GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.bender",GT_Recipe_Map.sBenderRecipes);
+ //Boxinator
+ GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.boxinator",GT_Recipe_Map.sBoxinatorRecipes);
+ //Brewery
+ GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.brewery",GT_Recipe_Map.sBrewingRecipes);
+ //Canner
+ GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.canner",GT_Recipe_Map.sCannerRecipes);
+ //Centrifuge
+ GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.centrifuge",GT_Recipe_Map.sCentrifugeRecipes);
+ //Chemical Bath
+ GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.chemicalbath",GT_Recipe_Map.sChemicalBathRecipes);
+ //Chemical Reactor
+ GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.chemicalreactor",GT_Recipe_Map.sChemicalRecipes);
+ //Circuit Assembler
+ GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.circuitassembler",GT_Recipe_Map.sCircuitAssemblerRecipes);
+ //Compressor
+ GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.compressor",GT_Recipe_Map.sCompressorRecipes);
+ //Cutting Machine
+ GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.cutter",GT_Recipe_Map.sCutterRecipes);
+ //Distillery
+ GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.distillery",GT_Recipe_Map.sDistilleryRecipes);
+ //Electrolyzer
+ GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.electrolyzer",GT_Recipe_Map.sElectrolyzerRecipes);
//Extractor
- registerMapBetweenRange(271, 275, GT_Recipe.GT_Recipe_Map.sExtractorRecipes);
-
+ GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.extractor",GT_Recipe_Map.sExtractorRecipes);
+ //Extruder
+ GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.extruder",GT_Recipe_Map.sExtruderRecipes);
+ //Fermenter
+ GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.fermenter",GT_Recipe_Map.sFermentingRecipes);
+ //Fluid Canner
+ GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.fluidcanner",GT_Recipe_Map.sFluidCannerRecipes);
+ //Fluid Extractor
+ GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.fluidextractor",GT_Recipe_Map.sFluidExtractionRecipes);
+ //Fluid Heater
+ GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.fluidheater",GT_Recipe_Map.sFluidHeaterRecipes);
+ //Fluid Solidifier
+ GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.fluidsolidifier",GT_Recipe_Map.sFluidSolidficationRecipes);
+ //Forge Hammer
+ GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.hammer",GT_Recipe_Map.sHammerRecipes);
+ //Forming Press
+ GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.press",GT_Recipe_Map.sPressRecipes);
+ //Laser Engraver
+ GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.laserengraver",GT_Recipe_Map.sLaserEngraverRecipes);
+ //Lathe
+ GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.lathe",GT_Recipe_Map.sLatheRecipes);
//Macerator
- registerMapBetweenRange(301, 305, GT_Recipe.GT_Recipe_Map.sMaceratorRecipes);
-
- // Microwave (New)
- registerMapBetweenRange(311, 315, GT_Recipe.GT_Recipe_Map.sMicrowaveRecipes);
-
+ GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.macerator",GT_Recipe_Map.sMaceratorRecipes);
+ //Magnetic Separator
+ GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.electromagneticseparator",GT_Recipe_Map.sElectroMagneticSeparatorRecipes);
+ //Matter Amplifier
+ GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.amplifab",GT_Recipe_Map.sAmplifiers);
+ //Microwave
+ GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.microwave",GT_Recipe_Map.sMicrowaveRecipes);
+ //Mixer
+ GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.mixer",GT_Recipe_Map.sMixerRecipes);
+ //Ore Washer
+ GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.orewasher",GT_Recipe_Map.sOreWasherRecipes);
+ //Plasma Arc Furnace
+ GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.plasmaarcfurnace",GT_Recipe_Map.sPlasmaArcFurnaceRecipes);
+ //Polarizer
+ GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.polarizer",GT_Recipe_Map.sPolarizerRecipes);
+ //Printer
+ GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.printer",GT_Recipe_Map.sPrinterRecipes);
//Recycler
- registerMapBetweenRange(331, 335, GT_Recipe.GT_Recipe_Map.sRecyclerRecipes);
-
+ GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.recycler",GT_Recipe_Map.sRecyclerRecipes);
+ //Scanner
+ GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.scanner",GT_Recipe_Map.sScannerFakeRecipes);
+ //Sifter
+ GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.sifter",GT_Recipe_Map.sSifterRecipes);
+ //Slicer
+ GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.slicer",GT_Recipe_Map.sSlicerRecipes);
//Thermal Centrifuge
- registerMapBetweenRange(381, 385, GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes);
-
- // Ore Washer
- registerMapBetweenRange(391, 395, GT_Recipe.GT_Recipe_Map.sOreWasherRecipes);
-
- // Chemical Reactor
- registerMapBetweenRange(421, 425, GT_Recipe.GT_Recipe_Map.sChemicalRecipes);
-
- // Chemical Bath
- registerMapBetweenRange(541, 545, GT_Recipe.GT_Recipe_Map.sChemicalBathRecipes);
-
- // Magnetic Seperator
- registerMapBetweenRange(561, 565, GT_Recipe.GT_Recipe_Map.sElectroMagneticSeparatorRecipes);
-
- // Autoclave
- registerMapBetweenRange(571, 575, GT_Recipe.GT_Recipe_Map.sAutoclaveRecipes);
-
- // Mixer
- registerMapBetweenRange(581, 585, GT_Recipe.GT_Recipe_Map.sMixerRecipes);
-
- // Forge Hammer
- registerMapBetweenRange(611, 615, GT_Recipe.GT_Recipe_Map.sHammerRecipes);
-
- // Sifter
- registerMapBetweenRange(641, 645, GT_Recipe.GT_Recipe_Map.sSifterRecipes);
-
- // Extruder
- registerMapBetweenRange(281, 285, GT_Recipe.GT_Recipe_Map.sExtruderRecipes);
-
- // Laser Engraver
- registerMapBetweenRange(591, 595, GT_Recipe.GT_Recipe_Map.sLaserEngraverRecipes);
-
- // Bender
- registerMapBetweenRange(221, 225, GT_Recipe.GT_Recipe_Map.sBenderRecipes);
-
- // Wiremill
- registerMapBetweenRange(351, 355, GT_Recipe.GT_Recipe_Map.sWiremillRecipes);
-
- // Arc Furnace
- registerMapBetweenRange(651, 655, GT_Recipe.GT_Recipe_Map.sArcFurnaceRecipes);
-
- // Plasma Arc Furnace
- registerMapBetweenRange(661, 665, GT_Recipe.GT_Recipe_Map.sPlasmaArcFurnaceRecipes);
-
- // Brewery
- registerMapBetweenRange(491, 495, GT_Recipe.GT_Recipe_Map.sBrewingRecipes);
-
- // Canner
- registerMapBetweenRange(231, 235, GT_Recipe.GT_Recipe_Map.sCannerRecipes);
-
- // Cutter
- registerMapBetweenRange(251, 255, GT_Recipe.GT_Recipe_Map.sCutterRecipes);
-
- // Fermenter
- registerMapBetweenRange(501, 505, GT_Recipe.GT_Recipe_Map.sFermentingRecipes);
-
- // Fluid Extractor
- registerMapBetweenRange(511, 515, GT_Recipe.GT_Recipe_Map.sFluidExtractionRecipes);
-
- // Fluid Solidifier
- registerMapBetweenRange(521, 525, GT_Recipe.GT_Recipe_Map.sFluidSolidficationRecipes);
-
- // Lathe
- registerMapBetweenRange(291, 295, GT_Recipe.GT_Recipe_Map.sLatheRecipes);
-
- // Boxinator
- registerMapBetweenRange(401, 408, GT_Recipe.GT_Recipe_Map.sBoxinatorRecipes);
-
- // Unboxinator
- registerMapBetweenRange(411, 418, GT_Recipe.GT_Recipe_Map.sUnboxinatorRecipes);
-
- // Polarizer
- registerMapBetweenRange(551, 555, GT_Recipe.GT_Recipe_Map.sPolarizerRecipes);
-
- // Printer
- registerMapBetweenRange(321, 328, GT_Recipe.GT_Recipe_Map.sPrinterRecipes);
-
- // Fluid Canner
- registerMapBetweenRange(431, 435, GT_Recipe.GT_Recipe_Map.sFluidCannerRecipes);
-
- // Fluid Heater
- registerMapBetweenRange(621, 625, GT_Recipe.GT_Recipe_Map.sFluidHeaterRecipes);
-
- // Distillery
- registerMapBetweenRange(531, 535, GT_Recipe.GT_Recipe_Map.sDistilleryRecipes);
-
- // Slicer
- registerMapBetweenRange(631, 635, GT_Recipe.GT_Recipe_Map.sSlicerRecipes);
-
- // Matter Amplifier
- registerMapBetweenRange(471, 475, GT_Recipe.GT_Recipe_Map.sAmplifiers);
-
- // Circuit Assembler
- registerMapBetweenRange(1180, 1187, GT_Recipe.GT_Recipe_Map.sCircuitAssemblerRecipes);
-
- // Alloy Smelter
- registerMapBetweenRange(201, 205, GT_Recipe.GT_Recipe_Map.sAlloySmelterRecipes);
-
- // Forming Press
- registerMapBetweenRange(601, 605, GT_Recipe.GT_Recipe_Map.sPressRecipes);
-
- }
+ GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.thermalcentrifuge",GT_Recipe_Map.sThermalCentrifugeRecipes);
+ //Unboxinator
+ GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.unboxinator",GT_Recipe_Map.sUnboxinatorRecipes);
+ //Wiremill
+ GT_ProcessingArray_Manager.addRecipeMapToPA("basicmachine.wiremill",GT_Recipe_Map.sWiremillRecipes);
- private static final void registerMapBetweenRange(int aMin, int aMax, GT_Recipe_Map aMap) {
- for (int i=aMin; i<=aMax;i++) {
- GT_ProcessingArray_Manager.registerRecipeMapForMeta(i, aMap);
- }
}
}