diff --git a/src/main/java/gregtech/api/util/GT_ProcessingArray_Manager.java b/src/main/java/gregtech/api/util/GT_ProcessingArray_Manager.java new file mode 100644 index 00000000..d048f1f8 --- /dev/null +++ b/src/main/java/gregtech/api/util/GT_ProcessingArray_Manager.java @@ -0,0 +1,31 @@ +package gregtech.api.util; + +import java.util.HashMap; + +import gregtech.api.util.GT_Recipe.GT_Recipe_Map; + +public class GT_ProcessingArray_Manager { + + private static final HashMap mMetaKeyMap = new HashMap(); + private static final HashMap mRecipeCache = new HashMap(); + + 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); + } + return true; + } + + public static GT_Recipe_Map getRecipeMapForMeta(int aMeta) { + return mRecipeCache.get(mMetaKeyMap.get(aMeta)); + } + +} diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AdvancedProcessingArray.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AdvancedProcessingArray.java index f0c5bbe4..1bb7e609 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AdvancedProcessingArray.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AdvancedProcessingArray.java @@ -9,7 +9,9 @@ import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; import gregtech.api.objects.GT_RenderedTexture; +import gregtech.api.util.GT_ProcessingArray_Manager; import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraftforge.common.util.ForgeDirection; @@ -69,94 +71,13 @@ public class GT_MetaTileEntity_AdvancedProcessingArray extends GT_MetaTileEntity return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "AdvancedProcessingArray.png"); } - public GT_Recipe.GT_Recipe_Map getRecipeMap() { - if (mInventory[1] == null) return null; - String tmp = mInventory[1].getUnlocalizedName().replaceAll("gt\\.blockmachines\\.basicmachine\\.", ""); - if (tmp.startsWith("centrifuge")) { - return GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes; - } else if (tmp.startsWith("electrolyzer")) { - return GT_Recipe.GT_Recipe_Map.sElectrolyzerRecipes; - } else if (tmp.startsWith("alloysmelter")) { - return GT_Recipe.GT_Recipe_Map.sAlloySmelterRecipes; - } else if (tmp.startsWith("assembler")) { - return GT_Recipe.GT_Recipe_Map.sAssemblerRecipes; - } else if (tmp.startsWith("compressor")) { - return GT_Recipe.GT_Recipe_Map.sCompressorRecipes; - } else if (tmp.startsWith("extractor")) { - return GT_Recipe.GT_Recipe_Map.sExtractorRecipes; - } else if (tmp.startsWith("macerator")) { - return GT_Recipe.GT_Recipe_Map.sMaceratorRecipes; - } else if (tmp.startsWith("recycler")) { - return GT_Recipe.GT_Recipe_Map.sRecyclerRecipes; - } else if (tmp.startsWith("thermalcentrifuge")) { - return GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes; - } else if (tmp.startsWith("orewasher")) { - return GT_Recipe.GT_Recipe_Map.sOreWasherRecipes; - } else if (tmp.startsWith("chemicalreactor")) { - return GT_Recipe.GT_Recipe_Map.sChemicalRecipes; - } else if (tmp.startsWith("chemicalbath")) { - return GT_Recipe.GT_Recipe_Map.sChemicalBathRecipes; - } else if (tmp.startsWith("electromagneticseparator")) { - return GT_Recipe.GT_Recipe_Map.sElectroMagneticSeparatorRecipes; - } else if (tmp.startsWith("autoclave")) { - return GT_Recipe.GT_Recipe_Map.sAutoclaveRecipes; - } else if (tmp.startsWith("mixer")) { - return GT_Recipe.GT_Recipe_Map.sMixerRecipes; - } else if (tmp.startsWith("hammer")) { - return GT_Recipe.GT_Recipe_Map.sHammerRecipes; - } else if (tmp.startsWith("sifter")) { - return GT_Recipe.GT_Recipe_Map.sSifterRecipes; - } else if (tmp.startsWith("extruder")) { - return GT_Recipe.GT_Recipe_Map.sExtruderRecipes; - } else if (tmp.startsWith("laserengraver")) { - return GT_Recipe.GT_Recipe_Map.sLaserEngraverRecipes; - } else if (tmp.startsWith("bender")) { - return GT_Recipe.GT_Recipe_Map.sBenderRecipes; - } else if (tmp.startsWith("wiremill")) { - return GT_Recipe.GT_Recipe_Map.sWiremillRecipes; - } else if (tmp.startsWith("arcfurnace")) { - return GT_Recipe.GT_Recipe_Map.sArcFurnaceRecipes; - } else if (tmp.startsWith("brewery")) { - return GT_Recipe.GT_Recipe_Map.sBrewingRecipes; - } else if (tmp.startsWith("canner")) { - return GT_Recipe.GT_Recipe_Map.sCannerRecipes; - } else if (tmp.startsWith("cutter")) { - return GT_Recipe.GT_Recipe_Map.sCutterRecipes; - } else if (tmp.startsWith("fermenter")) { - return GT_Recipe.GT_Recipe_Map.sFermentingRecipes; - } else if (tmp.startsWith("fluidextractor")) { - return GT_Recipe.GT_Recipe_Map.sFluidExtractionRecipes; - } else if (tmp.startsWith("fluidsolidifier")) { - return GT_Recipe.GT_Recipe_Map.sFluidSolidficationRecipes; - } else if (tmp.startsWith("lathe")) { - return GT_Recipe.GT_Recipe_Map.sLatheRecipes; - } else if (tmp.startsWith("boxinator")) { - return GT_Recipe.GT_Recipe_Map.sBoxinatorRecipes; - } else if (tmp.startsWith("unboxinator")) { - return GT_Recipe.GT_Recipe_Map.sUnboxinatorRecipes; - } else if (tmp.startsWith("polarizer")) { - return GT_Recipe.GT_Recipe_Map.sPolarizerRecipes; - } else if(tmp.startsWith("press")){ - return GT_Recipe.GT_Recipe_Map.sPressRecipes; - } else if (tmp.startsWith("plasmaarcfurnace")) { - return GT_Recipe.GT_Recipe_Map.sPlasmaArcFurnaceRecipes; - } else if (tmp.startsWith("printer")) { - return GT_Recipe.GT_Recipe_Map.sPrinterRecipes; - } else if (tmp.startsWith("press")) { - return GT_Recipe.GT_Recipe_Map.sPressRecipes; - } else if (tmp.startsWith("fluidcanner")) { - return GT_Recipe.GT_Recipe_Map.sFluidCannerRecipes; - } else if (tmp.startsWith("fluidheater")) { - return GT_Recipe.GT_Recipe_Map.sFluidHeaterRecipes; - } else if (tmp.startsWith("distillery")) { - return GT_Recipe.GT_Recipe_Map.sDistilleryRecipes; - } else if (tmp.startsWith("slicer")) { - return GT_Recipe.GT_Recipe_Map.sSlicerRecipes; - } else if (tmp.startsWith("amplifier")) { - return GT_Recipe.GT_Recipe_Map.sAmplifiers; - } else if (tmp.startsWith("circuitassembler")) { - return GT_Recipe.GT_Recipe_Map.sCircuitAssemblerRecipes; - } + public GT_Recipe_Map getRecipeMap() { + if (isCorrectMachinePart(mInventory[1])) { + GT_Recipe_Map aTemp = GT_ProcessingArray_Manager.getRecipeMapForMeta(mInventory[1].getItemDamage()); + if (aTemp != null) { + return aTemp; + } + } 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 8d2de6d5..c4bdc065 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 @@ -9,7 +9,9 @@ import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; import gregtech.api.objects.GT_RenderedTexture; +import gregtech.api.util.GT_ProcessingArray_Manager; import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraftforge.common.util.ForgeDirection; @@ -64,94 +66,13 @@ public class GT_MetaTileEntity_ProcessingArray extends GT_MetaTileEntity_MultiBl return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "ProcessingArray.png"); } - public GT_Recipe.GT_Recipe_Map getRecipeMap() { - if (mInventory[1] == null) return null; - String tmp = mInventory[1].getUnlocalizedName().replaceAll("gt\\.blockmachines\\.basicmachine\\.", ""); - if (tmp.startsWith("centrifuge")) { - return GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes; - } else if (tmp.startsWith("electrolyzer")) { - return GT_Recipe.GT_Recipe_Map.sElectrolyzerRecipes; - } else if (tmp.startsWith("alloysmelter")) { - return GT_Recipe.GT_Recipe_Map.sAlloySmelterRecipes; - } else if (tmp.startsWith("assembler")) { - return GT_Recipe.GT_Recipe_Map.sAssemblerRecipes; - } else if (tmp.startsWith("compressor")) { - return GT_Recipe.GT_Recipe_Map.sCompressorRecipes; - } else if (tmp.startsWith("extractor")) { - return GT_Recipe.GT_Recipe_Map.sExtractorRecipes; - } else if (tmp.startsWith("macerator")) { - return GT_Recipe.GT_Recipe_Map.sMaceratorRecipes; - } else if (tmp.startsWith("recycler")) { - return GT_Recipe.GT_Recipe_Map.sRecyclerRecipes; - } else if (tmp.startsWith("thermalcentrifuge")) { - return GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes; - } else if (tmp.startsWith("orewasher")) { - return GT_Recipe.GT_Recipe_Map.sOreWasherRecipes; - } else if (tmp.startsWith("chemicalreactor")) { - return GT_Recipe.GT_Recipe_Map.sChemicalRecipes; - } else if (tmp.startsWith("chemicalbath")) { - return GT_Recipe.GT_Recipe_Map.sChemicalBathRecipes; - } else if (tmp.startsWith("electromagneticseparator")) { - return GT_Recipe.GT_Recipe_Map.sElectroMagneticSeparatorRecipes; - } else if (tmp.startsWith("autoclave")) { - return GT_Recipe.GT_Recipe_Map.sAutoclaveRecipes; - } else if (tmp.startsWith("mixer")) { - return GT_Recipe.GT_Recipe_Map.sMixerRecipes; - } else if (tmp.startsWith("hammer")) { - return GT_Recipe.GT_Recipe_Map.sHammerRecipes; - } else if (tmp.startsWith("sifter")) { - return GT_Recipe.GT_Recipe_Map.sSifterRecipes; - } else if (tmp.startsWith("extruder")) { - return GT_Recipe.GT_Recipe_Map.sExtruderRecipes; - } else if (tmp.startsWith("laserengraver")) { - return GT_Recipe.GT_Recipe_Map.sLaserEngraverRecipes; - } else if (tmp.startsWith("bender")) { - return GT_Recipe.GT_Recipe_Map.sBenderRecipes; - } else if (tmp.startsWith("wiremill")) { - return GT_Recipe.GT_Recipe_Map.sWiremillRecipes; - } else if (tmp.startsWith("arcfurnace")) { - return GT_Recipe.GT_Recipe_Map.sArcFurnaceRecipes; - } else if (tmp.startsWith("brewery")) { - return GT_Recipe.GT_Recipe_Map.sBrewingRecipes; - } else if (tmp.startsWith("canner")) { - return GT_Recipe.GT_Recipe_Map.sCannerRecipes; - } else if (tmp.startsWith("cutter")) { - return GT_Recipe.GT_Recipe_Map.sCutterRecipes; - } else if (tmp.startsWith("fermenter")) { - return GT_Recipe.GT_Recipe_Map.sFermentingRecipes; - } else if (tmp.startsWith("fluidextractor")) { - return GT_Recipe.GT_Recipe_Map.sFluidExtractionRecipes; - } else if (tmp.startsWith("fluidsolidifier")) { - return GT_Recipe.GT_Recipe_Map.sFluidSolidficationRecipes; - } else if (tmp.startsWith("lathe")) { - return GT_Recipe.GT_Recipe_Map.sLatheRecipes; - } else if (tmp.startsWith("boxinator")) { - return GT_Recipe.GT_Recipe_Map.sBoxinatorRecipes; - } else if (tmp.startsWith("unboxinator")) { - return GT_Recipe.GT_Recipe_Map.sUnboxinatorRecipes; - } else if (tmp.startsWith("polarizer")) { - return GT_Recipe.GT_Recipe_Map.sPolarizerRecipes; - } else if(tmp.startsWith("press")){ - return GT_Recipe.GT_Recipe_Map.sPressRecipes; - } else if (tmp.startsWith("plasmaarcfurnace")) { - return GT_Recipe.GT_Recipe_Map.sPlasmaArcFurnaceRecipes; - } else if (tmp.startsWith("printer")) { - return GT_Recipe.GT_Recipe_Map.sPrinterRecipes; - } else if (tmp.startsWith("press")) { - return GT_Recipe.GT_Recipe_Map.sPressRecipes; - } else if (tmp.startsWith("fluidcanner")) { - return GT_Recipe.GT_Recipe_Map.sFluidCannerRecipes; - } else if (tmp.startsWith("fluidheater")) { - return GT_Recipe.GT_Recipe_Map.sFluidHeaterRecipes; - } else if (tmp.startsWith("distillery")) { - return GT_Recipe.GT_Recipe_Map.sDistilleryRecipes; - } else if (tmp.startsWith("slicer")) { - return GT_Recipe.GT_Recipe_Map.sSlicerRecipes; - } else if (tmp.startsWith("amplifier")) { - return GT_Recipe.GT_Recipe_Map.sAmplifiers; - } else if (tmp.startsWith("circuitassembler")) { - return GT_Recipe.GT_Recipe_Map.sCircuitAssemblerRecipes; - } + public GT_Recipe_Map getRecipeMap() { + if (isCorrectMachinePart(mInventory[1])) { + GT_Recipe_Map aTemp = GT_ProcessingArray_Manager.getRecipeMapForMeta(mInventory[1].getItemDamage()); + if (aTemp != null) { + return aTemp; + } + } return null; } diff --git a/src/main/java/gregtech/loaders/postload/GT_ProcessingArrayRecipeLoader.java b/src/main/java/gregtech/loaders/postload/GT_ProcessingArrayRecipeLoader.java new file mode 100644 index 00000000..8ce9a82f --- /dev/null +++ b/src/main/java/gregtech/loaders/postload/GT_ProcessingArrayRecipeLoader.java @@ -0,0 +1,144 @@ +package gregtech.loaders.postload; + +import gregtech.api.util.GT_ProcessingArray_Manager; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_Recipe.GT_Recipe_Map; + +public class GT_ProcessingArrayRecipeLoader { + + public static void registerDefaultGregtechMaps() { + + // Centrifuge + registerMapBetweenRange(361, 368, GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes); + + // Electrolyzer + registerMapBetweenRange(371, 378, GT_Recipe.GT_Recipe_Map.sElectrolyzerRecipes); + + // Assembler + registerMapBetweenRange(211, 218, GT_Recipe.GT_Recipe_Map.sAssemblerRecipes); + + // Compressor + registerMapBetweenRange(241, 248, GT_Recipe.GT_Recipe_Map.sCompressorRecipes); + + //Extractor + registerMapBetweenRange(271, 278, GT_Recipe.GT_Recipe_Map.sExtractorRecipes); + + //Macerator + registerMapBetweenRange(301, 308, GT_Recipe.GT_Recipe_Map.sMaceratorRecipes); + + // Microwave (New) + registerMapBetweenRange(311, 318, GT_Recipe.GT_Recipe_Map.sMicrowaveRecipes); + + //Recycler + registerMapBetweenRange(331, 338, GT_Recipe.GT_Recipe_Map.sRecyclerRecipes); + + //Thermal Centrifuge + registerMapBetweenRange(381, 388, GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes); + + // Ore Washer + registerMapBetweenRange(391, 398, GT_Recipe.GT_Recipe_Map.sOreWasherRecipes); + + // Chemical Reactor + registerMapBetweenRange(421, 428, GT_Recipe.GT_Recipe_Map.sChemicalRecipes); + + // Chemical Bath + registerMapBetweenRange(541, 548, GT_Recipe.GT_Recipe_Map.sChemicalBathRecipes); + + // Magnetic Seperator + registerMapBetweenRange(561, 568, GT_Recipe.GT_Recipe_Map.sElectroMagneticSeparatorRecipes); + + // Autoclave + registerMapBetweenRange(571, 578, GT_Recipe.GT_Recipe_Map.sAutoclaveRecipes); + + // Mixer + registerMapBetweenRange(581, 588, GT_Recipe.GT_Recipe_Map.sMixerRecipes); + + // Forge Hammer + registerMapBetweenRange(611, 618, GT_Recipe.GT_Recipe_Map.sHammerRecipes); + + // Sifter + registerMapBetweenRange(641, 648, GT_Recipe.GT_Recipe_Map.sSifterRecipes); + + // Extruder + registerMapBetweenRange(281, 288, GT_Recipe.GT_Recipe_Map.sExtruderRecipes); + + // Laser Engraver + registerMapBetweenRange(591, 598, GT_Recipe.GT_Recipe_Map.sLaserEngraverRecipes); + + // Bender + registerMapBetweenRange(221, 228, GT_Recipe.GT_Recipe_Map.sBenderRecipes); + + // Wiremill + registerMapBetweenRange(351, 358, GT_Recipe.GT_Recipe_Map.sWiremillRecipes); + + // Arc Furnace + registerMapBetweenRange(651, 658, GT_Recipe.GT_Recipe_Map.sArcFurnaceRecipes); + + // Plasma Arc Furnace + registerMapBetweenRange(661, 668, GT_Recipe.GT_Recipe_Map.sPlasmaArcFurnaceRecipes); + + // Brewery + registerMapBetweenRange(491, 498, GT_Recipe.GT_Recipe_Map.sBrewingRecipes); + + // Canner + registerMapBetweenRange(231, 238, GT_Recipe.GT_Recipe_Map.sCannerRecipes); + + // Cutter + registerMapBetweenRange(251, 258, GT_Recipe.GT_Recipe_Map.sCutterRecipes); + + // Fermenter + registerMapBetweenRange(501, 508, GT_Recipe.GT_Recipe_Map.sFermentingRecipes); + + // Fluid Extractor + registerMapBetweenRange(511, 518, GT_Recipe.GT_Recipe_Map.sFluidExtractionRecipes); + + // Fluid Solidifier + registerMapBetweenRange(521, 528, GT_Recipe.GT_Recipe_Map.sFluidSolidficationRecipes); + + // Lathe + registerMapBetweenRange(291, 298, GT_Recipe.GT_Recipe_Map.sLatheRecipes); + + // Boxinator + registerMapBetweenRange(401, 408, GT_Recipe.GT_Recipe_Map.sBoxinatorRecipes); + + // Unboxinator + registerMapBetweenRange(411, 408, GT_Recipe.GT_Recipe_Map.sUnboxinatorRecipes); + + // Polarizer + registerMapBetweenRange(551, 558, GT_Recipe.GT_Recipe_Map.sPolarizerRecipes); + + // Printer + registerMapBetweenRange(321, 328, GT_Recipe.GT_Recipe_Map.sPrinterRecipes); + + // Fluid Canner + registerMapBetweenRange(431, 438, GT_Recipe.GT_Recipe_Map.sFluidCannerRecipes); + + // Fluid Heater + registerMapBetweenRange(621, 628, GT_Recipe.GT_Recipe_Map.sFluidHeaterRecipes); + + // Distillery + registerMapBetweenRange(531, 538, GT_Recipe.GT_Recipe_Map.sDistilleryRecipes); + + // Slicer + registerMapBetweenRange(631, 638, GT_Recipe.GT_Recipe_Map.sSlicerRecipes); + + // Matter Amplifier + registerMapBetweenRange(471, 478, GT_Recipe.GT_Recipe_Map.sAmplifiers); + + // Circuit Assembler + registerMapBetweenRange(1180, 1187, GT_Recipe.GT_Recipe_Map.sCircuitAssemblerRecipes); + + // Alloy Smelter + registerMapBetweenRange(201, 208, GT_Recipe.GT_Recipe_Map.sAlloySmelterRecipes); + + // Forming Press + registerMapBetweenRange(601, 608, GT_Recipe.GT_Recipe_Map.sPressRecipes); + + } + + 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); + } + } +} 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 663e8cd2..2822b511 100644 --- a/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java +++ b/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java @@ -28,6 +28,7 @@ import gregtech.common.tileentities.machines.steam.*; import gregtech.common.tileentities.storage.GT_MetaTileEntity_Locker; import gregtech.common.tileentities.storage.GT_MetaTileEntity_QuantumChest; import gregtech.common.tileentities.storage.GT_MetaTileEntity_QuantumTank; +import gregtech.loaders.postload.GT_ProcessingArrayRecipeLoader; import ic2.core.Ic2Items; import net.minecraft.init.Blocks; import net.minecraft.init.Items; @@ -1199,7 +1200,9 @@ public class GT_Loader_MetaTileEntities implements Runnable { ItemList.Processing_Array.set(new GT_MetaTileEntity_ProcessingArray(1199, "multimachine.processingarray", "Processing Array").getStackForm(1L)); GT_ModHandler.addCraftingRecipe(ItemList.Processing_Array.get(1L, new Object[0]), bitsd, new Object[]{"CTC", "FMF", "CBC", 'M', ItemList.Hull_EV, 'B', OrePrefixes.pipeLarge.get(Materials.StainlessSteel), 'C', OrePrefixes.circuit.get(Materials.Elite), 'F', ItemList.Robot_Arm_EV, 'T', ItemList.Energy_LapotronicOrb}); - + GT_ProcessingArrayRecipeLoader.registerDefaultGregtechMaps(); + + ItemList.Advanced_Processing_Array.set(new GT_MetaTileEntity_AdvancedProcessingArray(1188, "multimachine.advancedprocessingarray", "Advanced Processing Array").getStackForm(1L)); GT_ModHandler.addCraftingRecipe(ItemList.Advanced_Processing_Array.get(1L, new Object[0]), bitsd, new Object[]{"RRR", "CPC", "CPC", 'R', ItemList.Robot_Arm_LuV, 'C', OrePrefixes.circuit.get(Materials.Master), 'P', ItemList.Processing_Array});