diff options
author | Johann Bernhardt <johann.bernhardt@tum.de> | 2021-12-12 19:38:06 +0100 |
---|---|---|
committer | Johann Bernhardt <johann.bernhardt@tum.de> | 2021-12-12 19:38:06 +0100 |
commit | 311ab89f93558233a40079f7cb16605b141b5346 (patch) | |
tree | c5f44ef47f441a57c5f57aa801f639c7879ed760 /src/main/java/gtPlusPlus/core/recipe | |
parent | 896143b96132f5ac54aa8d8f7386f27487e5e530 (diff) | |
download | GT5-Unofficial-311ab89f93558233a40079f7cb16605b141b5346.tar.gz GT5-Unofficial-311ab89f93558233a40079f7cb16605b141b5346.tar.bz2 GT5-Unofficial-311ab89f93558233a40079f7cb16605b141b5346.zip |
Move sources and resources
Diffstat (limited to 'src/main/java/gtPlusPlus/core/recipe')
17 files changed, 9200 insertions, 0 deletions
diff --git a/src/main/java/gtPlusPlus/core/recipe/Gregtech_Recipe_Adder.java b/src/main/java/gtPlusPlus/core/recipe/Gregtech_Recipe_Adder.java new file mode 100644 index 0000000000..b5fc9c3995 --- /dev/null +++ b/src/main/java/gtPlusPlus/core/recipe/Gregtech_Recipe_Adder.java @@ -0,0 +1,100 @@ +package gtPlusPlus.core.recipe; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.util.GT_ModHandler; + +import gtPlusPlus.api.objects.Logger; +import gtPlusPlus.core.util.minecraft.ItemUtils; + +public class Gregtech_Recipe_Adder { + + private static int euT; + private static int ticks; + private static ItemStack inputStack1; + private static ItemStack inputStack2; + private static ItemStack outputStack1; + private static ItemStack outputStack2; + + public static void addRecipe( + final Item maceratorInput, final int maceratorInputAmount1, + final Item maceratorOutput, final int maceratorOutputAmount1, + final Item compressorInput, final int compressorInputAmount1, + final Item compressorOutput, final int compressorOutputAmount1, + final Item blastFurnaceInput, final int blastFurnaceInputAmount1, + final Item blastFurnaceOutput, final int blastFurnaceOutputAmount1, + final Item blastFurnaceInput2, final int blastFurnaceInputAmount2, + final Item blastFurnaceOutput2, final int blastFurnaceOutputAmount2, + final Item smeltingInput, final int smeltingInputAmount1, + final Item smeltingOutput, final int smeltingOutputAmount1, + + final int euPerTick, final int timeInTicks, + final boolean addMaceratorRecipe, final boolean addCompressorRecipe, final boolean addBlastFurnaceRecipe, final int blastFurnaceTemp, final boolean addSmeltingRecipe, final boolean addMixerRecipe){ + euT = euPerTick; + ticks = timeInTicks; + + resetVars(); + if (addMaceratorRecipe){ + inputStack1 = ItemUtils.getSimpleStack(maceratorInput, maceratorInputAmount1); + outputStack1 = ItemUtils.getSimpleStack(maceratorOutput, maceratorOutputAmount1); + addMaceratorRecipe(inputStack1, outputStack1); + } + resetVars(); + if (addCompressorRecipe){ + inputStack1 = ItemUtils.getSimpleStack(compressorInput, compressorInputAmount1); + outputStack1 = ItemUtils.getSimpleStack(compressorOutput, compressorOutputAmount1); + addCompressorRecipe(inputStack1, outputStack1); + } + resetVars(); + if (addBlastFurnaceRecipe){ + inputStack1 = ItemUtils.getSimpleStack(blastFurnaceInput, blastFurnaceInputAmount1); + inputStack2 = ItemUtils.getSimpleStack(blastFurnaceInput2, blastFurnaceInputAmount2); + outputStack1 = ItemUtils.getSimpleStack(blastFurnaceOutput, blastFurnaceOutputAmount1); + outputStack2 = ItemUtils.getSimpleStack(blastFurnaceOutput2, blastFurnaceOutputAmount2); + addBlastFurnaceRecipe(inputStack1, inputStack2, outputStack1, outputStack2, blastFurnaceTemp); + } + resetVars(); + if (addSmeltingRecipe){ + inputStack1 = ItemUtils.getSimpleStack(smeltingInput, smeltingInputAmount1); + outputStack1 = ItemUtils.getSimpleStack(smeltingOutput, smeltingOutputAmount1); + addSmeltingRecipe(inputStack1, outputStack1); + } + resetVars(); + + } + + private static void resetVars(){ + inputStack1 = null; + inputStack2 = null; + outputStack1 = null; + outputStack2 = null; + } + + private static void addMaceratorRecipe(final ItemStack input1, final ItemStack output1){ + GT_ModHandler.addPulverisationRecipe(input1, output1); + } + + private static void addCompressorRecipe(final ItemStack input1, final ItemStack output1){ + GT_ModHandler.addCompressionRecipe(input1, output1); + } + + private static void addBlastFurnaceRecipe(final ItemStack input1, final ItemStack input2, final ItemStack output1, final ItemStack output2, final int tempRequired){ + Logger.INFO("Registering Blast Furnace Recipes."); + GT_Values.RA.addBlastRecipe( + input1, + input2, + GT_Values.NF, GT_Values.NF, + output1, + output2, + ticks, + euT, + tempRequired); + } + + private static void addSmeltingRecipe(final ItemStack input1, final ItemStack output1){ + GT_ModHandler.addSmeltingRecipe(input1, output1); + } + +} diff --git a/src/main/java/gtPlusPlus/core/recipe/LOADER_Machine_Components.java b/src/main/java/gtPlusPlus/core/recipe/LOADER_Machine_Components.java new file mode 100644 index 0000000000..460b29e802 --- /dev/null +++ b/src/main/java/gtPlusPlus/core/recipe/LOADER_Machine_Components.java @@ -0,0 +1,216 @@ +package gtPlusPlus.core.recipe; + +import gregtech.api.enums.ItemList; + +import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.core.recipe.common.CI; +import gtPlusPlus.core.util.minecraft.ItemUtils; +import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList; + +public class LOADER_Machine_Components { + + public static void initialise(){ + + registerDefaultComponents(); + + if (!CORE.GTNH){ + if(CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK){ + registerGTExperimentalComponents(); + } + else { + registerGTStandardComponents(); + } + } + else { + registerGTNHComponents(); + } + } + + private static void registerDefaultComponents(){ + //Machine Components + CI.electricMotor_LV = ItemList.Electric_Motor_LV.get(1); + CI.electricMotor_MV = ItemList.Electric_Motor_MV.get(1); + CI.electricMotor_HV = ItemList.Electric_Motor_HV.get(1); + CI.electricMotor_EV = ItemList.Electric_Motor_EV.get(1); + CI.electricMotor_IV = ItemList.Electric_Motor_IV.get(1); + CI.electricPump_LV = ItemList.Electric_Pump_LV.get(1); + CI.electricPump_MV = ItemList.Electric_Pump_MV.get(1); + CI.electricPump_HV = ItemList.Electric_Pump_HV.get(1); + CI.electricPump_EV = ItemList.Electric_Pump_EV.get(1); + CI.electricPump_IV = ItemList.Electric_Pump_IV.get(1); + CI.electricPiston_LV = ItemList.Electric_Piston_LV.get(1); + CI.electricPiston_MV = ItemList.Electric_Piston_MV.get(1); + CI.electricPiston_HV = ItemList.Electric_Piston_HV.get(1); + CI.electricPiston_EV = ItemList.Electric_Piston_EV.get(1); + CI.electricPiston_IV = ItemList.Electric_Piston_IV.get(1); + CI.robotArm_LV = ItemList.Robot_Arm_LV.get(1); + CI.robotArm_MV = ItemList.Robot_Arm_MV.get(1); + CI.robotArm_HV = ItemList.Robot_Arm_HV.get(1); + CI.robotArm_EV = ItemList.Robot_Arm_EV.get(1); + CI.robotArm_IV = ItemList.Robot_Arm_IV.get(1); + CI.conveyorModule_LV = ItemList.Conveyor_Module_LV.get(1); + CI.conveyorModule_MV = ItemList.Conveyor_Module_MV.get(1); + CI.conveyorModule_HV = ItemList.Conveyor_Module_HV.get(1); + CI.conveyorModule_EV = ItemList.Conveyor_Module_EV.get(1); + CI.conveyorModule_IV = ItemList.Conveyor_Module_IV.get(1); + CI.emitter_LV = ItemList.Emitter_LV.get(1); + CI.emitter_MV = ItemList.Emitter_MV.get(1); + CI.emitter_HV = ItemList.Emitter_HV.get(1); + CI.emitter_EV = ItemList.Emitter_EV.get(1); + CI.emitter_IV = ItemList.Emitter_IV.get(1); + CI.fieldGenerator_LV = ItemList.Field_Generator_LV.get(1); + CI.fieldGenerator_MV = ItemList.Field_Generator_MV.get(1); + CI.fieldGenerator_HV = ItemList.Field_Generator_HV.get(1); + CI.fieldGenerator_EV = ItemList.Field_Generator_EV.get(1); + CI.fieldGenerator_IV = ItemList.Field_Generator_IV.get(1); + CI.sensor_LV = ItemList.Sensor_LV.get(1); + CI.sensor_MV = ItemList.Sensor_MV.get(1); + CI.sensor_HV = ItemList.Sensor_HV.get(1); + CI.sensor_EV = ItemList.Sensor_EV.get(1); + CI.sensor_IV = ItemList.Sensor_IV.get(1); + } + + private static void registerGTExperimentalComponents(){ + //GT++ Machine Components + CI.electricMotor_LuV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32606, 1); + CI.electricMotor_ZPM = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32607, 1); + CI.electricMotor_UV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32608, 1); + CI.electricPump_LuV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32620, 1); + CI.electricPump_ZPM = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32621, 1); + CI.electricPump_UV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32622, 1); + CI.electricPiston_LuV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32645, 1); + CI.electricPiston_ZPM = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32646, 1); + CI.electricPiston_UV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32647, 1); + CI.robotArm_LuV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32655, 1); + CI.robotArm_ZPM = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32656, 1); + CI.robotArm_UV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32657, 1); + CI.conveyorModule_LuV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32636, 1); + CI.conveyorModule_ZPM = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32637, 1); + CI.conveyorModule_UV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32638, 1); + CI.emitter_LuV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32685, 1); + CI.emitter_ZPM = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32686, 1); + CI.emitter_UV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32687, 1); + CI.fieldGenerator_LuV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32675, 1); + CI.fieldGenerator_ZPM = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32676, 1); + CI.fieldGenerator_UV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32677, 1); + CI.sensor_LuV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32695, 1); + CI.sensor_ZPM = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32696, 1); + CI.sensor_UV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32697, 1); + + registerComponentsULV(); + registerComponentsMAX(); + } + + private static void registerGTStandardComponents(){ + CI.electricMotor_LuV = GregtechItemList.Electric_Motor_LuV.get(1); + CI.electricMotor_ZPM = GregtechItemList.Electric_Motor_ZPM.get(1); + CI.electricMotor_UV = GregtechItemList.Electric_Motor_UV.get(1); + CI.electricMotor_MAX = GregtechItemList.Electric_Motor_MAX.get(1); + CI.electricPump_LuV = GregtechItemList.Electric_Pump_LuV.get(1); + CI.electricPump_ZPM = GregtechItemList.Electric_Pump_ZPM.get(1); + CI.electricPump_UV = GregtechItemList.Electric_Pump_UV.get(1); + CI.electricPump_MAX = GregtechItemList.Electric_Pump_MAX.get(1); + CI.electricPiston_LuV = GregtechItemList.Electric_Piston_LuV.get(1); + CI.electricPiston_ZPM = GregtechItemList.Electric_Piston_ZPM.get(1); + CI.electricPiston_UV = GregtechItemList.Electric_Piston_UV.get(1); + CI.electricPiston_MAX = GregtechItemList.Electric_Piston_MAX.get(1); + CI.robotArm_LuV = GregtechItemList.Robot_Arm_LuV.get(1); + CI.robotArm_ZPM = GregtechItemList.Robot_Arm_ZPM.get(1); + CI.robotArm_UV = GregtechItemList.Robot_Arm_UV.get(1); + CI.robotArm_MAX = GregtechItemList.Robot_Arm_MAX.get(1); + CI.conveyorModule_LuV = GregtechItemList.Conveyor_Module_LuV.get(1); + CI.conveyorModule_ZPM = GregtechItemList.Conveyor_Module_ZPM.get(1); + CI.conveyorModule_UV = GregtechItemList.Conveyor_Module_UV.get(1); + CI.conveyorModule_MAX = GregtechItemList.Conveyor_Module_MAX.get(1); + CI.emitter_LuV = GregtechItemList.Emitter_LuV.get(1); + CI.emitter_ZPM = GregtechItemList.Emitter_ZPM.get(1); + CI.emitter_UV = GregtechItemList.Emitter_UV.get(1); + CI.emitter_MAX = GregtechItemList.Emitter_MAX.get(1); + CI.fieldGenerator_LuV = GregtechItemList.Field_Generator_LuV.get(1); + CI.fieldGenerator_ZPM = GregtechItemList.Field_Generator_ZPM.get(1); + CI.fieldGenerator_UV = GregtechItemList.Field_Generator_UV.get(1); + CI.fieldGenerator_MAX = GregtechItemList.Field_Generator_MAX.get(1); + CI.sensor_LuV = GregtechItemList.Sensor_LuV.get(1); + CI.sensor_ZPM = GregtechItemList.Sensor_ZPM.get(1); + CI.sensor_UV = GregtechItemList.Sensor_UV.get(1); + CI.sensor_MAX = GregtechItemList.Sensor_MAX.get(1); + + registerComponentsULV(); + } + + private static void registerGTNHComponents(){ + //Machine Components + CI.electricMotor_LuV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32606, 1); + CI.electricMotor_ZPM = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32607, 1); + CI.electricMotor_UV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32608, 1); + + CI.electricPump_LuV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32615, 1); + CI.electricPump_ZPM = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32616, 1); + CI.electricPump_UV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32617, 1); + + CI.electricPiston_LuV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32645, 1); + CI.electricPiston_ZPM = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32646, 1); + CI.electricPiston_UV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32647, 1); + + CI.robotArm_LuV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32655, 1); + CI.robotArm_ZPM = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32656, 1); + CI.robotArm_UV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32657, 1); + + CI.conveyorModule_LuV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32635, 1); + CI.conveyorModule_ZPM = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32636, 1); + CI.conveyorModule_UV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32637, 1); + + CI.emitter_LuV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32685, 1); + CI.emitter_ZPM = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32686, 1); + CI.emitter_UV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32687, 1); + + CI.fieldGenerator_LuV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32675, 1); + CI.fieldGenerator_ZPM = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32676, 1); + CI.fieldGenerator_UV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32677, 1); + + CI.sensor_LuV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32695, 1); + CI.sensor_ZPM = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32696, 1); + CI.sensor_UV = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32697, 1); + + // Thanks 0lafe + CI.electricMotor_MAX = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32596, 1); + CI.electricPump_MAX = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32618, 1); + CI.electricPiston_MAX = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32648, 1); + CI.robotArm_MAX = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32658, 1); + CI.conveyorModule_MAX = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32638, 1); + CI.emitter_MAX = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32688, 1); + CI.fieldGenerator_MAX = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32678, 1); + CI.sensor_MAX = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32698, 1); + + registerComponentsULV(); + } + + private static boolean registerComponentsULV(){ + + CI.electricMotor_ULV = GregtechItemList.Electric_Motor_ULV.get(1); + CI.electricPump_ULV = GregtechItemList.Electric_Pump_ULV.get(1); + CI.electricPiston_ULV = GregtechItemList.Electric_Piston_ULV.get(1); + CI.robotArm_ULV = GregtechItemList.Robot_Arm_ULV.get(1); + CI.conveyorModule_ULV = GregtechItemList.Conveyor_Module_ULV.get(1); + CI.emitter_ULV = GregtechItemList.Emitter_ULV.get(1); + CI.fieldGenerator_ULV = GregtechItemList.Field_Generator_ULV.get(1); + CI.sensor_ULV = GregtechItemList.Sensor_ULV.get(1); + return true; + } + + private static boolean registerComponentsMAX() { + + // Max Tier Components Blood Never added... Useless, lol. + CI.electricMotor_MAX = GregtechItemList.Electric_Motor_MAX.get(1); + CI.electricPump_MAX = GregtechItemList.Electric_Pump_MAX.get(1); + CI.electricPiston_MAX = GregtechItemList.Electric_Piston_MAX.get(1); + CI.robotArm_MAX = GregtechItemList.Robot_Arm_MAX.get(1); + CI.conveyorModule_MAX = GregtechItemList.Conveyor_Module_MAX.get(1); + CI.emitter_MAX = GregtechItemList.Emitter_MAX.get(1); + CI.fieldGenerator_MAX = GregtechItemList.Field_Generator_MAX.get(1); + CI.sensor_MAX = GregtechItemList.Sensor_MAX.get(1); + + return true; + } + +} diff --git a/src/main/java/gtPlusPlus/core/recipe/RECIPES_Extruder.java b/src/main/java/gtPlusPlus/core/recipe/RECIPES_Extruder.java new file mode 100644 index 0000000000..455beb2fd0 --- /dev/null +++ b/src/main/java/gtPlusPlus/core/recipe/RECIPES_Extruder.java @@ -0,0 +1,47 @@ +package gtPlusPlus.core.recipe; + +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.*; +import gregtech.api.interfaces.IOreRecipeRegistrator; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; + +import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList; + +public class RECIPES_Extruder implements IOreRecipeRegistrator { + + public RECIPES_Extruder() { + OrePrefixes.ingot.add((IOreRecipeRegistrator) this); + OrePrefixes.dust.add((IOreRecipeRegistrator) this); + } + + public void registerOre(final OrePrefixes aPrefix, final Materials aMaterial, final String aOreDictName, + final String aModName, final ItemStack aStack) { + if (!CORE.GTNH && ((aMaterial == Materials.Glass || aMaterial == Materials.WroughtIron + || GT_OreDictUnificator.get(OrePrefixes.ingot, (Object) aMaterial, 1L) != null) + && !aMaterial.contains(SubTag.NO_SMELTING))) { + final long aMaterialMass = aMaterial.getMass(); + final int tAmount = (int) (aPrefix.mMaterialAmount / 3628800L); + if (tAmount > 0 && tAmount <= 64 && aPrefix.mMaterialAmount % 3628800L == 0L) { + int tVoltageMultiplier = (aMaterial.mBlastFurnaceTemp >= 2800) ? 64 : 16; + if (aMaterial.contains(SubTag.NO_SMASHING)) { + tVoltageMultiplier /= 4; + } else if (aPrefix.name().startsWith(OrePrefixes.dust.name())) { + return; + } + + GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), + GregtechItemList.Shape_Extruder_SmallGear.get(0L, new Object[0]), + GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, (Object) aMaterial.mSmeltInto, (long) tAmount), + ((int) Math.max(aMaterialMass * 5L * tAmount, tAmount)/4), 8 * tVoltageMultiplier); + GT_Values.RA.addAlloySmelterRecipe(GT_Utility.copyAmount(2L, new Object[]{aStack}), + ItemList.Shape_Mold_Gear_Small.get(0L, new Object[0]), + GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, (Object) aMaterial.mSmeltInto, (long) tAmount), + ((int) Math.max(aMaterialMass * 10L * tAmount, tAmount)/4), 2 * tVoltageMultiplier); + + } + } + } +}
\ No newline at end of file diff --git a/src/main/java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java b/src/main/java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java new file mode 100644 index 0000000000..5156b938db --- /dev/null +++ b/src/main/java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java @@ -0,0 +1,2270 @@ +package gtPlusPlus.core.recipe; + +import static gtPlusPlus.core.lib.CORE.GTNH; + +import java.util.ArrayList; + +import cpw.mods.fml.common.Loader; +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.HotFuel; +import gregtech.api.util.ThermalFuel; +import gtPlusPlus.api.objects.Logger; +import gtPlusPlus.core.block.ModBlocks; +import gtPlusPlus.core.item.ModItems; +import gtPlusPlus.core.item.chemistry.AgriculturalChem; +import gtPlusPlus.core.item.chemistry.GenericChem; +import gtPlusPlus.core.item.chemistry.IonParticles; +import gtPlusPlus.core.item.chemistry.RocketFuels; +import gtPlusPlus.core.item.crafting.ItemDummyResearch; +import gtPlusPlus.core.item.crafting.ItemDummyResearch.ASSEMBLY_LINE_RESEARCH; +import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.core.lib.LoadedMods; +import gtPlusPlus.core.material.ALLOY; +import gtPlusPlus.core.material.ELEMENT; +import gtPlusPlus.core.material.MISC_MATERIALS; +import gtPlusPlus.core.material.ORES; +import gtPlusPlus.core.material.Particle; +import gtPlusPlus.core.material.nuclear.FLUORIDES; +import gtPlusPlus.core.recipe.common.CI; +import gtPlusPlus.core.util.Utils; +import gtPlusPlus.core.util.minecraft.EnchantingUtils; +import gtPlusPlus.core.util.minecraft.FluidUtils; +import gtPlusPlus.core.util.minecraft.ItemUtils; +import gtPlusPlus.core.util.minecraft.MaterialUtils; +import gtPlusPlus.core.util.reflect.AddGregtechRecipe; +import gtPlusPlus.everglades.dimension.Dimension_Everglades; +import gtPlusPlus.xmod.bop.blocks.BOP_Block_Registrator; +import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.oredict.OreDictionary; + +public class RECIPES_GREGTECH { + + public static void run() { + Logger.INFO("Loading Recipes through GregAPI for Industrial Multiblocks."); + execute(); + } + + private static void execute() { + cokeOvenRecipes(); + electrolyzerRecipes(); + assemblerRecipes(); + fluidcannerRecipes(); + distilleryRecipes(); + extractorRecipes(); + fluidExtractorRecipes(); + chemicalBathRecipes(); + chemicalReactorRecipes(); + dehydratorRecipes(); + blastFurnaceRecipes(); + + if (CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK) { + largeChemReactorRecipes(); + fusionRecipes(); + } + + fissionFuelRecipes(); + autoclaveRecipes(); + compressorRecipes(); + mixerRecipes(); + macerationRecipes(); + centrifugeRecipes(); + benderRecipes(); + cyclotronRecipes(); + blastSmelterRecipes(); + //advancedMixerRecipes(); + sifterRecipes(); + electroMagneticSeperatorRecipes(); + extruderRecipes(); + cuttingSawRecipes(); + breweryRecipes(); + laserEngraverRecipes(); + assemblyLineRecipes(); + latheRecipes(); + vacuumFreezerRecipes(); + fluidheaterRecipes(); + chemplantRecipes(); + packagerRecipes(); + + + /** + * Special Recipe handlers + */ + RECIPES_SeleniumProcessing.init(); + RECIPES_RareEarthProcessing.init(); + + + + + + + addFuels(); + } + + + + private static void packagerRecipes() { + + + } + + private static void chemplantRecipes() { + + //This is subsequently absorbed in water to form nitric acid and nitric oxide. + //3 NO2 (g) + H2O (l) → 2 HNO3 (aq) + NO (g) (ΔH = −117 kJ/mol) + //The nitric oxide is cycled back for reoxidation. Alternatively, if the last step is carried out in air: + //4 NO2 (g) + O2 (g) + 2 H2O (l) → 4 HNO3 (aq) + + // Advanced method for Nitric Acid Production + CORE.RA.addChemicalPlantRecipe( + new ItemStack[] { + CI.getNumberedAdvancedCircuit(17), + CI.getPinkCatalyst(0), + }, + new FluidStack[] { + FluidUtils.getFluidStack(GenericChem.Nitrogen_Dioxide, 4000), + FluidUtils.getAir(4000), + FluidUtils.getWater(2000), + }, + new ItemStack[] { + + }, + new FluidStack[] { + FluidUtils.getFluidStack("nitricacid", 4000), + }, + 10 * 20, + 480, + 3); + + // Advanced recipe for Fluorine Production + CORE.RA.addChemicalPlantRecipe( + new ItemStack[] { + CI.getNumberedAdvancedCircuit(17), + CI.getPurpleCatalyst(0), + ItemUtils.getSimpleStack(Blocks.sandstone, 64), + ItemUtils.getSimpleStack(Blocks.sandstone, 64) + }, + new FluidStack[] { + FluidUtils.getFluidStack("nitricacid", 4000), + FluidUtils.getAir(8000) + }, + new ItemStack[] { + FLUORIDES.FLUORITE.getOre(8), + FLUORIDES.FLUORITE.getOre(4), + FLUORIDES.FLUORITE.getOre(4), + FLUORIDES.FLUORITE.getOre(4), + }, + new FluidStack[] { + + }, + new int[] { + 0, 2500, 2000, 1500 + }, + 10 * 20, + 1024, + 5); + + // Advanced recipe for Fluorine Production + CORE.RA.addChemicalPlantRecipe( + new ItemStack[] { + CI.getNumberedAdvancedCircuit(17), + CI.getPurpleCatalyst(0), + ItemUtils.getSimpleStack(Blocks.sand, 64), + ItemUtils.getSimpleStack(Blocks.sand, 64) + }, + new FluidStack[] { + FluidUtils.getFluidStack("nitricacid", 5000), + FluidUtils.getAir(12000) + }, + new ItemStack[] { + FLUORIDES.FLUORITE.getOre(4), + FLUORIDES.FLUORITE.getOre(2), + FLUORIDES.FLUORITE.getOre(2), + FLUORIDES.FLUORITE.getOre(2), + }, + new FluidStack[] { + + }, + new int[] { + 7500, 1500, 1000, 500 + }, + 10 * 20, + 1024, + 5); + + CORE.RA.addChemicalPlantRecipe( + new ItemStack[] { + CI.getNumberedAdvancedCircuit(16), + CI.getPinkCatalyst(0), + }, + new FluidStack[] { + FluidUtils.getFluidStack(GenericChem.Nitrogen_Dioxide, 3000), + FluidUtils.getDistilledWater(5000) + }, + new ItemStack[] { + + }, + new FluidStack[] { + FluidUtils.getFluidStack("nitricacid", 2000), + FluidUtils.getFluidStack(GenericChem.Nitric_Oxide, 1500), + }, + 10 * 20, + 480, + 2); + + // Produce Boric Acid + CORE.RA.addChemicalPlantRecipe( + new ItemStack[] { + CI.getNumberedAdvancedCircuit(21), + ItemUtils.getItemStackOfAmountFromOreDict("dustBorax", 4), + }, + new FluidStack[] { + FluidUtils.getFluidStack(GenericChem.HydrochloricAcid, 2000) + }, + new ItemStack[] { + ItemUtils.getItemStackOfAmountFromOreDict("dustSalt", 5), + }, + new FluidStack[] { + FluidUtils.getFluidStack("boricacid", 2000), + FluidUtils.getWater(5000) + + }, + 20 * 30, + MaterialUtils.getVoltageForTier(3), + 3); + + // Produce Th232 + CORE.RA.addChemicalPlantRecipe( + new ItemStack[] { + CI.getNumberedAdvancedCircuit(22), + ELEMENT.getInstance().THORIUM.getDust(16) + }, + new FluidStack[] { + FluidUtils.getDistilledWater(2000), + FluidUtils.getFluidStack("boricacid", 1500) + }, + new ItemStack[] { + ELEMENT.getInstance().THORIUM.getSmallDust(32), + ELEMENT.getInstance().THORIUM232.getDust(2), + ELEMENT.getInstance().THORIUM232.getSmallDust(2), + ELEMENT.getInstance().URANIUM232.getDust(1), + }, + new FluidStack[] { + + }, + new int[] { + 0, 0, 1000, 250 + }, + 20 * 300, + MaterialUtils.getVoltageForTier(4), + 4); + + // Modify Sapling into Pine Sapling + CORE.RA.addChemicalPlantRecipe( + new ItemStack[] { + CI.getNumberedBioCircuit(6), + ItemUtils.getSimpleStack(Blocks.sapling, 32) + }, + new FluidStack[] { + FluidUtils.getFluidStack("fluid.geneticmutagen", 2000), + FluidUtils.getDistilledWater(8000) + }, + new ItemStack[] { + ItemUtils.getSimpleStack(BOP_Block_Registrator.sapling_Pine, 16) + }, + new FluidStack[] { + + }, + 120 * 20, + 64, + 2); + + + // Convert GT++ Plutonium239 into normal Plutonium + if (Materials.Plutonium.mDefaultLocalName.equals("Plutonium 239")) { + CORE.RA.addChemicalPlantRecipe( + new ItemStack[] { + CI.getNumberedAdvancedCircuit(16), + ELEMENT.getInstance().PLUTONIUM239.getDust(1) + }, + new FluidStack[] { + + }, + new ItemStack[] { + ItemUtils.getItemStackOfAmountFromOreDict("dustPlutonium", 1) + }, + new FluidStack[] { + + }, + 5 * 20, + 1, + 2); + CORE.RA.addChemicalPlantRecipe( + new ItemStack[] { + CI.getNumberedAdvancedCircuit(16), + ELEMENT.getInstance().PLUTONIUM239.getSmallDust(1) + }, + new FluidStack[] { + + }, + new ItemStack[] { + ItemUtils.getItemStackOfAmountFromOreDict("dustSmallPlutonium", 1) + }, + new FluidStack[] { + + }, + 5 * 20, + 1, + 2); + CORE.RA.addChemicalPlantRecipe( + new ItemStack[] { + CI.getNumberedAdvancedCircuit(16), + ELEMENT.getInstance().PLUTONIUM239.getTinyDust(1) + }, + new FluidStack[] { + + }, + new ItemStack[] { + ItemUtils.getItemStackOfAmountFromOreDict("dustTinyPlutonium", 1) + }, + new FluidStack[] { + + }, + 5 * 20, + 1, + 2); + } + + int aLaureniumTier = ALLOY.LAURENIUM.vTier; + // Adding Recipes for Casings + CORE.RA.addChemicalPlantRecipe( + new ItemStack[] { + CI.getNumberedAdvancedCircuit(12), + CI.getTieredMachineCasing(aLaureniumTier-1), + ALLOY.LAURENIUM.getPlate(8), + CI.getGear(aLaureniumTier, 2) + }, + new FluidStack[] { + CI.getTieredFluid(aLaureniumTier, 2 * 144), + CI.getAlternativeTieredFluid(aLaureniumTier-1, 4 * 144), + CI.getTertiaryTieredFluid(aLaureniumTier-2, 6 * 144) + }, + new ItemStack[] { + GregtechItemList.Casing_Machine_Custom_3.get(1) + }, + new FluidStack[] { + + }, + 20 * 20, + MaterialUtils.getVoltageForTier(aLaureniumTier-2), + 5); + + int aBotmiumTier = ALLOY.BOTMIUM.vTier; + // Adding Recipes for Casings + CORE.RA.addChemicalPlantRecipe( + new ItemStack[] { + CI.getNumberedAdvancedCircuit(12), + CI.getTieredMachineCasing(aBotmiumTier-1), + ALLOY.BOTMIUM.getPlate(8), + CI.getGear(aBotmiumTier, 2) + }, + new FluidStack[] { + CI.getTieredFluid(aBotmiumTier, 2 * 144), + CI.getAlternativeTieredFluid(aBotmiumTier-1, 4 * 144), + CI.getTertiaryTieredFluid(aBotmiumTier-2, 6 * 144) + }, + new ItemStack[] { + GregtechItemList.Casing_Machine_Custom_4.get(1) + }, + new FluidStack[] { + + }, + 20 * 20, + MaterialUtils.getVoltageForTier(aBotmiumTier-2), + 6); + + } + + private static void fluidheaterRecipes() { + GT_Values.RA.addFluidHeaterRecipe(CI.getNumberedCircuit(20), FluidUtils.getWater(1000), FluidUtils.getHotWater(1000), 30, 30); + + } + + private static void vacuumFreezerRecipes() { + GT_Values.RA.addVacuumFreezerRecipe(GregtechItemList.Bomb_Cast_Molten.get(1), GregtechItemList.Bomb_Cast_Set.get(1), 20 * 30); + } + + private static void latheRecipes() { + + GT_Values.RA.addLatheRecipe( + ALLOY.EGLIN_STEEL.getBlock(1), + GregtechItemList.Bomb_Cast_Mold.get(1), + null, + 20 * 60 * 15, + 120); + + GT_Values.RA.addLatheRecipe( + GregtechItemList.Bomb_Cast_Set.get(1), + GregtechItemList.Bomb_Cast_Broken.get(2), + ItemUtils.getSimpleStack(ModItems.itemBombCasing, 2), + 20 * 60 * 5, + 30); + + } + + private static void fusionRecipes() { + + /** + * Adds a Fusion reactor Recipe + * + * @param aInput1 = first Input (not null, and respects StackSize) + * @param aInput2 = second Input (not null, and respects StackSize) + * @param aOutput = Output of the Fusion (can be null, and respects StackSize) + * @param aFusionDurationInTicks = How many ticks the Fusion lasts (must be > 0) + * @param aFusionEnergyPerTick = The EU generated per Tick (can even be negative!) + * @param aEnergyNeededForStartingFusion = EU needed for heating the Reactor up (must be >= 0) + */ + + //Hydrogen Plasma + /*CORE.RA.addFusionReactorRecipe( + Particle.getIon("Hydrogen", 0), + Particle.getIon("Hydrogen", 0), + Materials.Hydrogen.getPlasma(1), + 5000, + 16, + 4096, + 40000000);*/ + + + //Hypogen Creation + GT_Values.RA.addFusionReactorRecipe( + Materials.Neutronium.getMolten(128), + ALLOY.QUANTUM.getFluidStack(256), + ELEMENT.STANDALONE.HYPOGEN.getFluidStack(4), + 2048 * 4, + (int) MaterialUtils.getVoltageForTier(9), + 600000000 * 2); + + //Rhugnor + GT_Values.RA.addFusionReactorRecipe( + GenericChem.TEFLON.getFluidStack(64), + ALLOY.PIKYONIUM.getFluidStack(128), + ELEMENT.STANDALONE.RHUGNOR.getFluidStack(8), + 2048 * 4, + (int) MaterialUtils.getVoltageForTier(7), + 150000000 * 2); + + } + + private static void assemblyLineRecipes() { + + + + ItemStack[] aCoilWire = new ItemStack[] { + ItemUtils.simpleMetaStack("miscutils:itemDehydratorCoilWire", 0, GTNH ? 64 : 32), + ItemUtils.simpleMetaStack("miscutils:itemDehydratorCoilWire", 1, GTNH ? 64 : 32), + ItemUtils.simpleMetaStack("miscutils:itemDehydratorCoilWire", 2, GTNH ? 64 : 32), + ItemUtils.simpleMetaStack("miscutils:itemDehydratorCoilWire", 3, GTNH ? 64 : 32), + }; + + + + + //Containment Casings + CORE.RA.addAssemblylineRecipe( + ItemDummyResearch.getResearchStack(ASSEMBLY_LINE_RESEARCH.RESEARCH_1_CONTAINMENT, 1), + 20 * 60 * 30, + new Object[] { + ItemList.Field_Generator_IV.get(GTNH ? 32 : 16), + ItemList.Electric_Motor_EV.get(GTNH ? 64 : 32), + ItemList.Energy_LapotronicOrb.get(GTNH ? 32 : 16), + CI.getTieredComponent(OrePrefixes.cableGt12, 7, GTNH ? 32 : 16), + CI.getTieredComponent(OrePrefixes.wireGt16, 6, GTNH ? 64 : 32), + ItemUtils.getOrePrefixStack(OrePrefixes.plate, Materials.Naquadria, GTNH ? 64 : 16), + ELEMENT.getInstance().GADOLINIUM.getDust(GTNH ? 32 : 8), + ELEMENT.getInstance().SAMARIUM.getDust(GTNH ? 16 : 4), + ALLOY.ARCANITE.getGear(GTNH ? 8 : 2), + new Object[] {CI.getTieredCircuitOreDictName(5), 64}, + new Object[] {CI.getTieredCircuitOreDictName(6), 32}, + new Object[] {CI.getTieredCircuitOreDictName(7), 16}, + GregtechItemList.Laser_Lens_Special.get(1), + aCoilWire[3] + }, + new FluidStack[] { + ALLOY.NITINOL_60.getFluidStack(144 * 9 * (GTNH ? 4 : 2)), + ALLOY.ENERGYCRYSTAL.getFluidStack(144 * 9 * (GTNH ? 8 : 4)), + ALLOY.TUMBAGA.getFluidStack(144 * 9 * (GTNH ? 32 : 8)), + ALLOY.NICHROME.getFluidStack(144 * 1 * (GTNH ? 16 : 4)), + }, + ItemUtils.getSimpleStack(ModBlocks.blockCasings3Misc, 15, 32), + 20 * 60 * 10 * (GTNH ? 2 : 1), + (int) MaterialUtils.getVoltageForTier(6)); + + //Slow Fusion Controller + /*CORE.RA.addAssemblylineRecipe( + GregtechItemList.COMET_Cyclotron.get(1), + 20 * 60 * 30, + new ItemStack[] { + CI.getFieldGenerator(6, GTNH ? 32 : 8), + ItemList.Electric_Motor_EV.get(GTNH ? 32 : 8), + ItemList.Tool_Scanner.get(GTNH ? 4 : 2), + CI.getTieredComponent(OrePrefixes.cableGt12, 6, GTNH ? 32 : 16), + CI.getTieredComponent(OrePrefixes.wireGt16, 5, GTNH ? 64 : 32), + CI.getTieredComponent(OrePrefixes.plate, 6, GTNH ? 64 : 32), + ELEMENT.getInstance().GADOLINIUM.getDust(GTNH ? 32 : 8), + ELEMENT.getInstance().SAMARIUM.getDust(GTNH ? 16 : 4), + ALLOY.INCOLOY_MA956.getGear(GTNH ? 8 : 2), + CI.getTieredComponent(OrePrefixes.circuit, 5, GTNH ? 64 : 32), + CI.getTieredComponent(OrePrefixes.circuit, 6, GTNH ? 32 : 16), + CI.getTieredComponent(OrePrefixes.circuit, 7, GTNH ? 16 : 8) + }, + new FluidStack[] { + CI.getTieredFluid(6, 144 * 9 * (GTNH ? 8 : 4)), + CI.getTertiaryTieredFluid(6, 144 * 9 * (GTNH ? 8 : 4)), + CI.getAlternativeTieredFluid(6, 144 * 9 * (GTNH ? 8 : 4)), + CI.getTieredFluid(5, 144 * 9 * (GTNH ? 16 : 8)), + }, + GregtechItemList.Miniature_Fusion.get(1), + 20 * 60 * 5 * (GTNH ? 2 : 1), + (int) MaterialUtils.getVoltageForTier(7));*/ + + + //Plasma Tank + /*CORE.RA.addAssemblylineRecipe( + ItemUtils.getOrePrefixStack(OrePrefixes.pipeMedium, Materials.Superconductor, 1), + 20 * 60 * 5, + new ItemStack[] { + CI.getTieredComponent(OrePrefixes.plate, 5, GTNH ? 32 : 16), + CI.getTieredComponent(OrePrefixes.circuit, 5, GTNH ? 16 : 4), + CI.getTieredComponent(OrePrefixes.pipeHuge, 5, GTNH ? 16 : 4), + CI.getTieredComponent(OrePrefixes.cableGt08, 7, GTNH ? 32 : 16), + CI.getTieredComponent(OrePrefixes.gearGt, 6, GTNH ? 8 : 4), + aCoilWire[2] + }, + new FluidStack[] { + CI.getTieredFluid(4, 144 * 9 * (GTNH ? 16 : 8)), + CI.getTertiaryTieredFluid(4, 144 * 9 * (GTNH ? 16 : 8)), + CI.getAlternativeTieredFluid(4, 144 * 9 * (GTNH ? 16 : 8)), + + }, + GregtechItemList.Plasma_Tank.get(1), + 20 * 60 * 1 * (GTNH ? 2 : 1), + (int) MaterialUtils.getVoltageForTier(5));*/ + + // Turbine Automation Port + CORE.RA.addAssemblylineRecipe( + ItemDummyResearch.getResearchStack(ASSEMBLY_LINE_RESEARCH.RESEARCH_8_TURBINE_AUTOMATION, 1), + 20 * 60 * 60 * 24, + new Object[] { + CI.getTieredMachineHull(8, 4), + CI.getConveyor(8, GTNH ? 24 : 12), + CI.getElectricMotor(7, GTNH ? 32 : 16), + CI.getElectricPiston(7, GTNH ? 16 : 4), + CI.getEnergyCore(6, GTNH ? 8 : 2), + CI.getPlate(8, GTNH ? 24 : 12), + CI.getTieredComponent(OrePrefixes.screw, 8, GTNH ? 48 : 24), + CI.getTieredComponent(OrePrefixes.bolt, 7, GTNH ? 32 : 16), + CI.getTieredComponent(OrePrefixes.rod, 6, GTNH ? 12 : 6), + new Object[] {CI.getTieredCircuitOreDictName(7), 20}, + CI.getTieredComponent(OrePrefixes.rotor, 6, GTNH ? 16 : 8), + }, + new FluidStack[] { + CI.getTieredFluid(8, 144 * 32), + CI.getAlternativeTieredFluid(7, 144 * 16), + CI.getTertiaryTieredFluid(7, 144 * 16), + ALLOY.BABBIT_ALLOY.getFluidStack(128 * 144), + ALLOY.ZERON_100.getFluidStack(144 * 64) + + }, + GregtechItemList.Hatch_Input_TurbineHousing.get(4), + 20 * 60 * 60 * (GTNH ? 2 : 1), + (int) MaterialUtils.getVoltageForTier(8)); + + + /* + * Contianment casings + */ + + ItemStack[] aGemCasings = new ItemStack[] { + GregtechItemList.Battery_Casing_Gem_1.get(1), + GregtechItemList.Battery_Casing_Gem_2.get(1), + GregtechItemList.Battery_Casing_Gem_3.get(1), + GregtechItemList.Battery_Casing_Gem_4.get(1), + }; + ItemStack[] aResearch = new ItemStack[] { + Particle.getBaseParticle(Particle.UNKNOWN), + GregtechItemList.Battery_Casing_Gem_1.get(1), + GregtechItemList.Battery_Casing_Gem_2.get(1), + GregtechItemList.Battery_Casing_Gem_3.get(1), + }; + + int aCasingSlot = 0; + for (int j = 6; j < 10; j++) { + CORE.RA.addAssemblylineRecipe( + aResearch[aCasingSlot], + 20 * 60 * 60, + new ItemStack[] { + CI.getTieredComponent(OrePrefixes.plate, j-1,16), + CI.getTieredComponent(OrePrefixes.cableGt08, j+1,(GTNH ? 32 : 16)), + CI.getTieredComponent(OrePrefixes.gearGt, j-1, 4), + aCoilWire[aCasingSlot] + }, + new FluidStack[] { + CI.getTieredFluid(j, 144 *(GTNH ? 8 : 4)), + CI.getTertiaryTieredFluid(j-2, 144 * (GTNH ? 16 : 8)), + CI.getAlternativeTieredFluid(j, 144 * (GTNH ? 16 : 12)), + + }, + aGemCasings[aCasingSlot++], + 20 * 60 * 1 * (GTNH ? 2 : 1), + (int) MaterialUtils.getVoltageForTier(j)); + } + + /* + * Gem Battery Recipes + */ + + ItemStack[] aGemBatteries = new ItemStack[] { + GregtechItemList.Battery_Gem_1.get(1), + GregtechItemList.Battery_Gem_2.get(1), + GregtechItemList.Battery_Gem_3.get(1), + GregtechItemList.Battery_Gem_4.get(1), + }; + + ItemStack[] aExoticInputs = new ItemStack[] { + Particle.getBaseParticle(Particle.PROTON), + Particle.getBaseParticle(Particle.ELECTRON), + Particle.getBaseParticle(Particle.CHARM), + Particle.getBaseParticle(Particle.GRAVITON) + }; + aCasingSlot = 0; + for (int j = 6; j < 10; j++) { + CORE.RA.addAssemblylineRecipe( + aExoticInputs[aCasingSlot], + 20 * 60 * 60 * 5, + new Object[] { + aGemCasings[aCasingSlot], + ItemUtils.getSimpleStack(aExoticInputs[aCasingSlot], 16), + CI.getTieredComponent(OrePrefixes.plate, j, 16), + new Object[] {CI.getTieredCircuitOreDictName(j), 8}, + CI.getTieredComponent(OrePrefixes.wireGt16, j+1, GTNH ? 32 : 16), + CI.getTieredComponent(OrePrefixes.bolt, j, GTNH ? 8 : 4), + CI.getTieredComponent(OrePrefixes.screw, j-1, GTNH ? 8 : 4), + }, + new FluidStack[] { + CI.getTieredFluid(j, 144 * 1 * (GTNH ? 16 : 8)), + CI.getTertiaryTieredFluid(j-2, 144 * 2 * (GTNH ? 16 : 8)), + CI.getAlternativeTieredFluid(j, 144 * (GTNH ? 16 : 8)), + CI.getTertiaryTieredFluid(j-1, 144 * (GTNH ? 16 : 8)), + }, + aGemBatteries[aCasingSlot++], + 20 * 60 * 1 * (GTNH ? 2 : 1), + (int) MaterialUtils.getVoltageForTier(j)); + } + + + if (LoadedMods.Baubles) { + //Nano Healer + CORE.RA.addAssemblylineRecipe( + ItemUtils.simpleMetaStack(Items.golden_apple, 1, 1), + 20 * 60 * 10, + new Object[] { + ItemUtils.getSimpleStack(aGemCasings[2], GTNH ? 4 : 2), + CI.getTieredComponent(OrePrefixes.plate, 8, GTNH ? 32 : 16), + new Object[] {CI.getTieredCircuitOreDictName(7), 16}, + CI.getTieredComponent(OrePrefixes.cableGt02, 7, GTNH ? 16 : 8), + CI.getTieredComponent(OrePrefixes.gearGt, 6, GTNH ? 6 : 3), + CI.getTieredComponent(OrePrefixes.screw, 7, GTNH ? 16 : 8), + CI.getTieredComponent(OrePrefixes.bolt, 5, GTNH ? 24 : 12), + CI.getTieredComponent(OrePrefixes.frameGt, 4, GTNH ? 12 : 6), + aCoilWire[3] + }, + new FluidStack[] { + CI.getTieredFluid(7, 144 * 18 * (GTNH ? 16 : 8)), + CI.getTertiaryTieredFluid(7, 144 * 18 * (GTNH ? 16 : 8)), + CI.getAlternativeTieredFluid(6, 144 * 18 * (GTNH ? 16 : 8)), + CI.getAlternativeTieredFluid(7, 144 * 18 * (GTNH ? 16 : 8)), + + }, + ItemUtils.getItemStackFromFQRN("miscutils:personalHealingDevice", 1), + 20 * 60 * 30 * (GTNH ? 2 : 1), + (int) MaterialUtils.getVoltageForTier(7)); + + + + //Charge Pack LuV-UV + + ItemStack[] aChargeResearch = new ItemStack[] { + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore7", 1), + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore8", 1), + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore9", 1), + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore10", 1), + }; + + ItemStack[] aChargeOutputs = new ItemStack[] { + ItemUtils.getSimpleStack(ModItems.itemChargePack_High_1, 1), + ItemUtils.getSimpleStack(ModItems.itemChargePack_High_2, 1), + ItemUtils.getSimpleStack(ModItems.itemChargePack_High_3, 1), + ItemUtils.getSimpleStack(ModItems.itemChargePack_High_4, 1), + }; + + int aCurrSlot = 0; + for (int h = 6; h < 10; h++) { + CORE.RA.addAssemblylineRecipe( + aChargeResearch[aCurrSlot], + 20 * 60 * 10 * (aCurrSlot + 1), + new Object[] { + ItemUtils.getSimpleStack(aGemBatteries[aCurrSlot],2), + aCoilWire[aCurrSlot], + CI.getTieredComponent(OrePrefixes.plate, h, 8), + new Object[] {CI.getTieredCircuitOreDictName(h), 4}, + new Object[] {CI.getTieredCircuitOreDictName(h-1), 8}, + CI.getTieredComponent(OrePrefixes.cableGt12, h-1, 16), + CI.getTieredComponent(OrePrefixes.screw, h, GTNH ? 16 : 8), + CI.getTieredComponent(OrePrefixes.bolt, h-2, GTNH ? 32 : 16), + CI.getFieldGenerator(h, 1), + }, + new FluidStack[] { + CI.getTieredFluid(h, 144 * 4 * (GTNH ? 8 : 4)), + CI.getTertiaryTieredFluid(h-1, 144 * 4 * (GTNH ? 8 : 4)), + CI.getAlternativeTieredFluid(h-1, 144 * 4 * (GTNH ? 8 : 4)), + CI.getAlternativeTieredFluid(h-2, 144 * 4 * (GTNH ? 8 : 4)), + }, + aChargeOutputs[aCurrSlot], + 20 * 60 * 30 * (GTNH ? 2 : 1) * (aCurrSlot+1), + (int) MaterialUtils.getVoltageForTier(h)); + aCurrSlot++; + } + + //Cloaking device + CORE.RA.addAssemblylineRecipe( + ItemDummyResearch.getResearchStack(ASSEMBLY_LINE_RESEARCH.RESEARCH_9_CLOAKING, 1), + 20 * 60 * 10, + new Object[] { + ItemUtils.getSimpleStack(aGemCasings[3], GTNH ? 4 : 2), + CI.getTieredComponent(OrePrefixes.plate, 8, GTNH ? 32 : 16), + new Object[] {CI.getTieredCircuitOreDictName(7), 16}, + CI.getTieredComponent(OrePrefixes.cableGt04, 8, GTNH ? 16 : 8), + CI.getTieredComponent(OrePrefixes.gearGt, 7, GTNH ? 6 : 3), + CI.getTieredComponent(OrePrefixes.screw, 8, GTNH ? 16 : 8), + CI.getTieredComponent(OrePrefixes.bolt, 7, GTNH ? 24 : 12), + CI.getTieredComponent(OrePrefixes.frameGt, 5, GTNH ? 12 : 6), + aCoilWire[3] + }, + new FluidStack[] { + CI.getTieredFluid(8, 144 * 18 * (GTNH ? 16 : 8)), + CI.getTertiaryTieredFluid(8, 144 * 18 * (GTNH ? 16 : 8)), + CI.getAlternativeTieredFluid(7, 144 * 18 * (GTNH ? 16 : 8)), + CI.getAlternativeTieredFluid(8, 144 * 18 * (GTNH ? 16 : 8)), + + }, + ItemUtils.getItemStackFromFQRN("miscutils:personalCloakingDevice", 1), + 20 * 60 * 30 * (GTNH ? 2 : 1), + (int) MaterialUtils.getVoltageForTier(8)); + } + + + + + + + + + + } + + private static void laserEngraverRecipes() { + + // Laser Sensors and Emitters together + GregtechItemList[] aTransParts = new GregtechItemList[] { + GregtechItemList.TransmissionComponent_ULV, + GregtechItemList.TransmissionComponent_LV, + GregtechItemList.TransmissionComponent_MV, + GregtechItemList.TransmissionComponent_HV, + GregtechItemList.TransmissionComponent_EV, + GregtechItemList.TransmissionComponent_IV, + GregtechItemList.TransmissionComponent_LuV, + GregtechItemList.TransmissionComponent_ZPM, + GregtechItemList.TransmissionComponent_UV, + GregtechItemList.TransmissionComponent_MAX, + }; + for (int i=0;i<10;i++) { + GT_Values.RA.addLaserEngraverRecipe( + CI.getEmitter(i, 2), + CI.getSensor(i, 2), + aTransParts[i].get(1), + 20 * 5, + MaterialUtils.getVoltageForTier(i)); + } + + + + GT_Values.RA.addLaserEngraverRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Tungsten, 6L), + GregtechItemList.Laser_Lens_Special.get(0), + ELEMENT.STANDALONE.CELESTIAL_TUNGSTEN.getDust(1), + 20 * 60 * 3, + MaterialUtils.getVoltageForTier(ELEMENT.STANDALONE.CELESTIAL_TUNGSTEN.vTier)); + + GT_Values.RA.addLaserEngraverRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Titanium, 8L), + GregtechItemList.Laser_Lens_Special.get(0), + ELEMENT.STANDALONE.ASTRAL_TITANIUM.getDust(1), + 20 * 60 * 2, + MaterialUtils.getVoltageForTier(ELEMENT.STANDALONE.ASTRAL_TITANIUM.vTier)); + + GT_Values.RA.addLaserEngraverRecipe( + ALLOY.NITINOL_60.getBlock(2), + GregtechItemList.Laser_Lens_Special.get(0), + ELEMENT.STANDALONE.ADVANCED_NITINOL.getBlock(1), + 20 * 60 * 1, + MaterialUtils.getVoltageForTier(ELEMENT.STANDALONE.ADVANCED_NITINOL.vTier)); + + GT_Values.RA.addLaserEngraverRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glass, 64L), + GregtechItemList.Laser_Lens_Special.get(0), + ELEMENT.STANDALONE.CHRONOMATIC_GLASS.getDust(1), + 20 * 60 * 5, + MaterialUtils.getVoltageForTier(ELEMENT.STANDALONE.CHRONOMATIC_GLASS.vTier)); + + + GT_Values.RA.addLaserEngraverRecipe( + CI.getFieldGenerator(6, 1), + CI.getEmitter(7, 2), + ItemDummyResearch.getResearchStack(ASSEMBLY_LINE_RESEARCH.RESEARCH_1_CONTAINMENT, 1), + 20 * 60 * 5, + MaterialUtils.getVoltageForTier(5)); + + // Distillus Upgrade Chip + GT_Values.RA.addLaserEngraverRecipe( + GregtechItemList.Laser_Lens_WoodsGlass.get(0), + ItemUtils.simpleMetaStack(AgriculturalChem.mBioCircuit, 20, 1), + GregtechItemList.Distillus_Upgrade_Chip.get(1), + 20 * 60 * 5, + MaterialUtils.getVoltageForTier(5)); + + + + + } + + private static void breweryRecipes() { + CORE.RA.addBrewingRecipe(14, EnchantingUtils.getMobEssence(100), EnchantingUtils.getLiquidXP(1332), 100, 120, false); + CORE.RA.addBrewingRecipe(14, EnchantingUtils.getLiquidXP(1332), EnchantingUtils.getMobEssence(100), 100, 120, false); + CORE.RA.addBrewingRecipe(ItemUtils.getSimpleStack(BOP_Block_Registrator.sapling_Rainforest), FluidUtils.getFluidStack("water", 100), FluidUtils.getFluidStack("biomass", 100), 1200, 3, false); + CORE.RA.addBrewingRecipe(ItemUtils.getSimpleStack(BOP_Block_Registrator.sapling_Rainforest), FluidUtils.getFluidStack("honey", 100), FluidUtils.getFluidStack("biomass", 150), 1200, 3, false); + CORE.RA.addBrewingRecipe(ItemUtils.getSimpleStack(BOP_Block_Registrator.sapling_Rainforest), FluidUtils.getFluidStack("juice", 100), FluidUtils.getFluidStack("biomass", 150), 1200, 3, false); + } + + private static void cuttingSawRecipes() { + GT_Values.RA.addCutterRecipe( + ItemUtils.getItemStackOfAmountFromOreDict("blockMeatRaw", 1), //Input + ItemUtils.getItemStackOfAmountFromOreDict("plateMeatRaw", 9), //Output + null, + 16, //Time + 8); //EU + } + + private static void electrolyzerRecipes() { + GT_Values.RA.addElectrolyzerRecipe( + ItemUtils.getSimpleStack(ModItems.dustDecayedRadium226, 1), + null, + null, + FluidUtils.getFluidStack("radon", !GTNH ? 500 : 144), + null, + null, + null, + null, + null, + null, + new int[]{}, + 20*90, + 240); + } + + private static void extruderRecipes() { + // Osmium Credits + if (GT_Values.RA.addExtruderRecipe(ItemUtils.getItemStackOfAmountFromOreDict("blockOsmium", 1), + ItemList.Shape_Mold_Credit.get(0), ItemList.Credit_Greg_Osmium.get(1), + (int) Math.max(Materials.Osmium.getMass() * 2L * 20, 1), 1024)) { + Logger.WARNING("Extruder Recipe: Osmium Credit - Success"); + } + else { + Logger.WARNING("Extruder Recipe: Osmium Credit - Failed"); + } + } + + private static void blastSmelterRecipes() { + + if (!GTNH) { + // Trinium + CORE.RA.addBlastSmelterRecipe( + new ItemStack[] { + ItemUtils.getGregtechCircuit(8), + ELEMENT.getInstance().BISMUTH.getDust(8), + ELEMENT.getInstance().IRON.getDust(64), + ELEMENT.getInstance().CARBON.getDust(16), + ELEMENT.getInstance().GOLD.getDust(16), + ELEMENT.getInstance().SILVER.getDust(16), + ELEMENT.getInstance().OSMIUM.getDust(4), + ELEMENT.getInstance().IRIDIUM.getDust(4), + ELEMENT.getInstance().CERIUM.getDust(8) + }, + FluidUtils.getFluidStack("molten.trinium", 136 * 144), 0, 20 * 3000, + 2040*4); + } + + //Eglin Steel + CORE.RA.addBlastSmelterRecipe( + new ItemStack[] { + ItemUtils.getGregtechCircuit(6), + ELEMENT.getInstance().IRON.getDust(4), + ALLOY.KANTHAL.getDust(1), + ALLOY.INVAR.getDust(5), + ELEMENT.getInstance().SULFUR.getDust(1), + ELEMENT.getInstance().CARBON.getDust(1), + ELEMENT.getInstance().SILICON.getDust(4) + }, + ALLOY.EGLIN_STEEL.getFluidStack(16 * 144), + 0, + 20 * 45, + 120); + + //HG1223 + CORE.RA.addBlastSmelterRecipe( + new ItemStack[] { + ItemUtils.getGregtechCircuit(5), + ELEMENT.getInstance().MERCURY.getCell(1), + ELEMENT.getInstance().BARIUM.getDust(2), + ELEMENT.getInstance().CALCIUM.getDust(2), + ELEMENT.getInstance().COPPER.getDust(3), + }, + ELEMENT.getInstance().OXYGEN.getFluidStack(8000), + ALLOY.HG1223.getFluidStack(16 * 144), + new ItemStack[] { + CI.emptyCells(1) + }, + new int[] {10000}, //Output Chance + 20 * 120, + 30720); + + //NITINOL_60 + CORE.RA.addBlastSmelterRecipe( + new ItemStack[] { + ItemUtils.getGregtechCircuit(2), + ELEMENT.getInstance().TITANIUM.getDust(3), + ELEMENT.getInstance().NICKEL.getDust(2) + }, + ALLOY.NITINOL_60.getFluidStack(5 * 144), + 0, + 20 * 75, + 7680); + + + + + + // Germanium Roasting + CORE.RA.addBlastSmelterRecipe( + new ItemStack[] { + ItemUtils.getGregtechCircuit(15), + ItemUtils.getItemStackOfAmountFromOreDict("crushedPurifiedSphalerite", 8), + ELEMENT.getInstance().CARBON.getDust(32), + }, + Materials.SulfuricAcid.getFluid(2000), + ELEMENT.getInstance().GERMANIUM.getFluidStack(288), + 0, + 20 * 300, + 4000); + + + // Ruthenium Roasting + CORE.RA.addBlastSmelterRecipe( + new ItemStack[] { + ItemUtils.getGregtechCircuit(19), + ItemUtils.getItemStackOfAmountFromOreDict("crushedPurifiedIridium", 8), + ELEMENT.getInstance().CARBON.getDust(32), + }, + Materials.SulfuricAcid.getFluid(2000), + ELEMENT.getInstance().RUTHENIUM.getFluidStack(288), + 0, + 20 * 300, + 8000); + CORE.RA.addBlastSmelterRecipe( + new ItemStack[] { + ItemUtils.getGregtechCircuit(19), + ItemUtils.getItemStackOfAmountFromOreDict("crushedPurifiedOsmium", 8), + ELEMENT.getInstance().CARBON.getDust(32), + }, + Materials.SulfuricAcid.getFluid(2000), + ELEMENT.getInstance().RUTHENIUM.getFluidStack(288), + 0, + 20 * 300, + 8000); + CORE.RA.addBlastSmelterRecipe( + new ItemStack[] { + ItemUtils.getGregtechCircuit(19), + ItemUtils.getItemStackOfAmountFromOreDict("crushedPurifiedPlatinum", 8), + ELEMENT.getInstance().CARBON.getDust(32), + }, + Materials.SulfuricAcid.getFluid(2000), + ELEMENT.getInstance().RUTHENIUM.getFluidStack(288), + 0, + 20 * 300, + 8000); + CORE.RA.addBlastSmelterRecipe( + new ItemStack[] { + ItemUtils.getGregtechCircuit(19), + ItemUtils.getItemStackOfAmountFromOreDict("crushedPurifiedCooperite", 8), + ELEMENT.getInstance().CARBON.getDust(32), + }, + Materials.SulfuricAcid.getFluid(8000), + ELEMENT.getInstance().RUTHENIUM.getFluidStack(144), + 0, + 20 * 300, + 8000); + + // Rhenium Roasting + CORE.RA.addBlastSmelterRecipe( + new ItemStack[] { + ItemUtils.getGregtechCircuit(20), + ItemUtils.getItemStackOfAmountFromOreDict("crushedPurifiedScheelite", 8), + ELEMENT.getInstance().CARBON.getDust(32), + }, + Materials.SulfuricAcid.getFluid(10000), + ELEMENT.getInstance().RHENIUM.getFluidStack(144), + 0, + 20 * 300, + 4000); + CORE.RA.addBlastSmelterRecipe( + new ItemStack[] { + ItemUtils.getGregtechCircuit(20), + ItemUtils.getItemStackOfAmountFromOreDict("crushedPurifiedMolybdenite", 8), + ELEMENT.getInstance().CARBON.getDust(32), + }, + Materials.SulfuricAcid.getFluid(7500), + ELEMENT.getInstance().RHENIUM.getFluidStack(144), + 0, + 20 * 300, + 4000); + CORE.RA.addBlastSmelterRecipe( + new ItemStack[] { + ItemUtils.getGregtechCircuit(20), + ItemUtils.getItemStackOfAmountFromOreDict("crushedPurifiedMolybdenum", 8), + ELEMENT.getInstance().CARBON.getDust(32), + }, + Materials.SulfuricAcid.getFluid(5000), + ELEMENT.getInstance().RHENIUM.getFluidStack(288), + 0, + 20 * 300, + 4000); + + //Thallium Roasting + CORE.RA.addBlastSmelterRecipe( + new ItemStack[] { + ItemUtils.getGregtechCircuit(21), + ItemUtils.getItemStackOfAmountFromOreDict("crushedPurifiedIron", 12), + ItemUtils.getItemStackOfAmountFromOreDict("crushedPurifiedPyrite", 16), + ELEMENT.getInstance().CARBON.getDust(64), + }, + Materials.SulfuricAcid.getFluid(5000), + ELEMENT.getInstance().THALLIUM.getFluidStack(288+144), + 0, + 20 * 300, + 8000); + + + + //Strontium processing + CORE.RA.addBlastSmelterRecipe( + new ItemStack[] { + ItemUtils.getGregtechCircuit(21), + MISC_MATERIALS.STRONTIUM_OXIDE.getDust(8), + ELEMENT.getInstance().ALUMINIUM.getDust(8), + }, + null, + ELEMENT.getInstance().OXYGEN.getFluidStack(8000), + new ItemStack[] { + ELEMENT.getInstance().ALUMINIUM.getIngot(8), + ELEMENT.getInstance().STRONTIUM.getIngot(8) + }, + new int[] {10000, 10000}, //Output Chance + 20 * 120, + 480*4); + + + //Wood's Glass Laser Lens + CORE.RA.addBlastSmelterRecipe( + new ItemStack[] { + ItemUtils.getGregtechCircuit(5), + ItemList.Shape_Mold_Ball.get(0), + ELEMENT.getInstance().BARIUM.getDust(1), + ELEMENT.getInstance().SODIUM.getDust(1), + ELEMENT.getInstance().SILICON.getDust(2), + ELEMENT.getInstance().NICKEL.getDust(1), + ItemUtils.getItemStackOfAmountFromOreDict("dustGlass", 5) + }, + FluidUtils.getUUM(1000), + null, + new ItemStack[] { + GregtechItemList.Laser_Lens_WoodsGlass.get(1) + }, + new int[] {10000}, + 20 * 300, + (int) GT_Values.V[3]); + + + + } + + private static void fluidcannerRecipes() { + // Sulfuric Acid + CORE.RA.addFluidCannerRecipe(ItemUtils.getSimpleStack(Items.glass_bottle), + ItemUtils.getSimpleStack(ModItems.itemSulfuricPotion), FluidUtils.getFluidStack("sulfuricacid", 250), + null); + CORE.RA.addFluidCannerRecipe(ItemUtils.getSimpleStack(ModItems.itemSulfuricPotion), + ItemUtils.getSimpleStack(Items.glass_bottle), null, FluidUtils.getFluidStack("sulfuricacid", 250)); + + + + // Hydrofluoric Acid + boolean addedGtExtraction = false; + // Try use Internal GT Fluid first + if (Utils.getGregtechVersionAsInt() >= 50929) { + // Hydrofluoric Acid + CORE.RA.addFluidCannerRecipe(ItemUtils.getSimpleStack(Items.glass_bottle), + ItemUtils.getSimpleStack(ModItems.itemHydrofluoricPotion), + FluidUtils.getFluidStack("hydrofluoricacid_gt5u", 250), null); + addedGtExtraction = CORE.RA.addFluidCannerRecipe(ItemUtils.getSimpleStack(ModItems.itemHydrofluoricPotion), + ItemUtils.getSimpleStack(Items.glass_bottle), null, FluidUtils.getFluidStack("hydrofluoricacid_gt5u", 250)); + } + //Add a Fill recipe for GT++ Acid + CORE.RA.addFluidCannerRecipe(ItemUtils.getSimpleStack(Items.glass_bottle), + ItemUtils.getSimpleStack(ModItems.itemHydrofluoricPotion), + FluidUtils.getFluidStack("hydrofluoricacid", 125), null); + //Add an empty recipe, but only if we didn't for the standard GT HF. Prevents Fluid transformation exploits. + if (!addedGtExtraction) { + CORE.RA.addFluidCannerRecipe(ItemUtils.getSimpleStack(ModItems.itemHydrofluoricPotion), ItemUtils.getSimpleStack(Items.glass_bottle), null, FluidUtils.getFluidStack("hydrofluoricacid", 125)); + } + + //Gelid Cryotheum + CORE.RA.addFluidExtractionRecipe(ItemUtils.getItemStackOfAmountFromOreDict("dustCryotheum", 1), FluidUtils.getFluidStack("cryotheum", 250), 200, 240); + + //Ender Fluid + CORE.RA.addFluidExtractionRecipe(ItemUtils.getSimpleStack(Items.ender_pearl), FluidUtils.getFluidStack("ender", 250), 100, 30); + + //Blazing Pyrotheum + CORE.RA.addFluidExtractionRecipe(ItemUtils.getItemStackOfAmountFromOreDict("dustPyrotheum", 1), FluidUtils.getFluidStack("pyrotheum", 250), 200, 240); + + + } + + private static void cokeOvenRecipes() { + Logger.INFO("Loading Recipes for Industrial Coking Oven."); + // Wood to Charcoal + //Try use all woods found + ArrayList<ItemStack> aLogData = OreDictionary.getOres("logWood"); + if (aLogData.isEmpty()) { + AddGregtechRecipe.addCokeAndPyrolyseRecipes(GT_OreDictUnificator.get(OrePrefixes.log, Materials.Wood, 20L), 20, + GT_ModHandler.getSteam(1000), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Charcoal, 24L), + FluidUtils.getFluidStack("fluid.coalgas", 1440), 60, 30); } + else { + for (ItemStack stack : aLogData) { + AddGregtechRecipe.addCokeAndPyrolyseRecipes(ItemUtils.getSimpleStack(stack, 20), 20, + GT_ModHandler.getSteam(1000), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Charcoal, 24L), + FluidUtils.getFluidStack("fluid.coalgas", 1440), 60, 30); + } + } + + // Coal to Coke + AddGregtechRecipe.addCokeAndPyrolyseRecipes(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Coal, 16L), 22, + GT_ModHandler.getSteam(1000), ItemUtils.getItemStackOfAmountFromOreDict("fuelCoke", 10), + FluidUtils.getFluidStack("fluid.coalgas", 2880), 30, 120); + + // Coke & Coal + CORE.RA.addCokeOvenRecipe(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Coal, 12L), + ItemUtils.getItemStackOfAmountFromOreDict("fuelCoke", 6), GT_ModHandler.getSteam(2000), + FluidUtils.getFluidStack("fluid.coalgas", 5040), + ItemUtils.getItemStackOfAmountFromOreDict("fuelCoke", 14), 60 * 20, 240); + + } + + private static void matterFabRecipes() { + Logger.INFO("Loading Recipes for Matter Fabricator."); + + try { + + CORE.RA.addMatterFabricatorRecipe(Materials.UUAmplifier.getFluid(1L), // Fluid + // Input + Materials.UUMatter.getFluid(1L), // Fluid Output + 800, // Time in ticks + 32); // EU + } + catch (final NullPointerException e) { + Logger.INFO("FAILED TO LOAD RECIPES - NULL POINTER SOMEWHERE"); + } + try { + + CORE.RA.addMatterFabricatorRecipe(null, // Fluid Input + Materials.UUMatter.getFluid(1L), // Fluid Output + 3200, // Time in ticks + 32); // EU + } + catch (final NullPointerException e) { + Logger.INFO("FAILED TO LOAD RECIPES - NULL POINTER SOMEWHERE"); + } + + } + + private static void dehydratorRecipes() { + Logger.INFO("Loading Recipes for Chemical Dehydrator."); + + + ItemStack cropGrape = ItemUtils.getItemStackOfAmountFromOreDictNoBroken("cropGrape", 1); + ItemStack foodRaisins = ItemUtils.getItemStackOfAmountFromOreDictNoBroken("foodRaisins", 1); + + if (cropGrape != null && foodRaisins != null) + CORE.RA.addDehydratorRecipe(new ItemStack[] { + CI.getNumberedBioCircuit(20), + cropGrape + }, // Item + null, // Fluid input (slot 1) + null, // Fluid output (slot 2) + new ItemStack[] { + foodRaisins + }, // Output + new int[] { 10000 }, + 10, // Time in ticks + 2); // EU + + + + // Process Waste Water + CORE.RA.addDehydratorRecipe( + new ItemStack[] { + CI.getNumberedBioCircuit(21) + }, + FluidUtils.getFluidStack("fluid.sludge", 1000), + FluidUtils.getFluidStack("nitricacid", 10), + new ItemStack[] { + ItemUtils.getItemStackOfAmountFromOreDict("dustTinyIron", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustTinyCopper", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustTinyTin", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustTinyNickel", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustTinyCobalt", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustTinyAluminium", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustTinySilver", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustTinyGold", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustTinyIridium", 1) }, + new int[] { 10, 5, 5, 4, 4, 3, 2, 2, 1 }, + 2 * 20, + 500); // EU + + // CaF2 + H2SO4 → CaSO4(solid) + 2 HF + FluidStack aGregtechHydro = FluidUtils.getFluidStack("hydrofluoricacid_gt5u", 16000); + if (aGregtechHydro == null) { + aGregtechHydro = FluidUtils.getFluidStack("hydrofluoricacid", 16000); + } + + CORE.RA.addDehydratorRecipe( + new ItemStack[] { + CI.getNumberedAdvancedCircuit(5), + ItemUtils.getItemStackOfAmountFromOreDict("dustFluorite", 37), + }, + FluidUtils.getFluidStack("sulfuricacid", 56 * 144), + aGregtechHydro, // Fluid output (slot 2) + new ItemStack[] { + ItemUtils.getItemStackOfAmountFromOreDict("dustCalciumSulfate", 30), + ItemUtils.getItemStackOfAmountFromOreDict("dustSilver", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustGold", 2), + ItemUtils.getItemStackOfAmountFromOreDict("dustTin", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustCopper", 2) + }, + new int[] { 10000, 100, 100, 300, 200 }, + 10 * 60 * 20, + 230); // EU + + + CORE.RA.addDehydratorRecipe( + new ItemStack[] { + CI.getNumberedAdvancedCircuit(18), + CI.emptyCells(3) + }, + FluidUtils.getFluidStack("fluid.ethylbenzene", 1000), + null, + new ItemStack[] { + ItemUtils.getItemStackOfAmountFromOreDict("cellStyrene", 1), + ItemUtils.getItemStackOfAmountFromOreDict("cellHydrogen", 2) + }, + new int[] {10000, 10000}, + 3 * 20, + 30); + + /* + * Try Add custom Recipe for drying leather + */ + if (LoadedMods.PamsHarvestcraft && Loader.isModLoaded("Backpack")) { + ItemStack aLeather1, aLeather2; + aLeather1 = ItemUtils.getCorrectStacktype("harvestcraft:hardenedleatherItem", 1); + aLeather2 = ItemUtils.getCorrectStacktype("Backpack:tannedLeather", 1); + CORE.RA.addDehydratorRecipe( + new ItemStack[] { + CI.getNumberedAdvancedCircuit(18), + aLeather1 + }, + FluidUtils.getFluidStack("fluid.ethylbenzene", 1000), + null, + new ItemStack[] { + aLeather2 + }, + new int[] {10000}, + 5 * 20, + 180); + } + + } + + private static void largeChemReactorRecipes() { + //Styrene + CORE.RA.addMultiblockChemicalRecipe( + new ItemStack[]{CI.getNumberedCircuit(24)}, + new FluidStack[]{ + FluidUtils.getFluidStack("fluid.ethylbenzene", 1000) + }, + new FluidStack[]{ + MaterialUtils.getMaterial("Styrene").getFluid(1000), + Materials.Hydrogen.getGas(2000) + }, + null, + 30, + 30); + //Short-cut Styrene + CORE.RA.addMultiblockChemicalRecipe( + new ItemStack[]{CI.getNumberedCircuit(24)}, + new FluidStack[]{ + MaterialUtils.getMaterial("Ethylene").getGas(500), + MaterialUtils.getMaterial("Benzene").getFluid(500) + }, + new FluidStack[]{ + MaterialUtils.getMaterial("Styrene").getFluid(500), + Materials.Hydrogen.getGas(1000) + }, + null, + 240, + 120); + } + + private static void fissionFuelRecipes() { + try { + + } + catch (final NullPointerException e) { + Logger.INFO("FAILED TO LOAD RECIPES - NULL POINTER SOMEWHERE"); + } + } + + private static void assemblerRecipes() { + // ItemUtils.getSimpleStack(GregtechItemList.Casing_Vanadium_Redox.get(1) + addAR(ItemUtils.getItemStackOfAmountFromOreDict("plateVanadium", 32), + ItemUtils.getItemStackOfAmountFromOreDict("frameGtVanadiumSteel", 8), + FluidUtils.getFluidStack("oxygen", 8000), + ItemUtils.simpleMetaStack(ModItems.itemHalfCompleteCasings, 0, 4), 16, 60); + addAR(ItemUtils.simpleMetaStack(ModItems.itemHalfCompleteCasings, 0, 2), + ItemUtils.getItemStackOfAmountFromOreDict("plateVanadiumGallium", 8), + FluidUtils.getFluidStack("molten.tantalum", 144 * 4), + ItemUtils.simpleMetaStack(ModItems.itemHalfCompleteCasings, 1, 8), 32, 120); + addAR(ItemUtils.simpleMetaStack(ModItems.itemHalfCompleteCasings, 1, 1), + ItemUtils.getItemStackOfAmountFromOreDict("plateDenseLead", 4), FluidUtils.getFluidStack("oxygen", 16000), + ItemUtils.getSimpleStack(GregtechItemList.Casing_Vanadium_Redox.get(1), 1), 64, 240); + + //Tier 2-6 + ItemStack T1 = GregtechItemList.Casing_Vanadium_Redox.get(1); + ItemStack T2 = GregtechItemList.Casing_Vanadium_Redox_IV.get(1); + ItemStack T3 = GregtechItemList.Casing_Vanadium_Redox_LuV.get(1); + ItemStack T4 = GregtechItemList.Casing_Vanadium_Redox_ZPM.get(1); + ItemStack T5 = GregtechItemList.Casing_Vanadium_Redox_UV.get(1); + ItemStack T6 = GregtechItemList.Casing_Vanadium_Redox_MAX.get(1); + + addAR(T1, + ItemUtils.getItemStackOfAmountFromOreDict("plateDenseTitanium", 4), + FluidUtils.getFluidStack("nitrogen", 16000), + T2, 120, 2000); + addAR(T2, + ItemUtils.getItemStackOfAmountFromOreDict("plateDenseTungstenSteel", 4), + FluidUtils.getFluidStack("helium", 8000), + T3, 250, 8000); + addAR(T3, + ItemUtils.getItemStackOfAmountFromOreDict("plateAlloyIridium", 16), + FluidUtils.getFluidStack("argon", 4000), + T4, 500, 32000); + addAR(T4, + ItemUtils.getItemStackOfAmountFromOreDict("plateDenseNaquadah", 4), + FluidUtils.getFluidStack("radon", 4000), + T5, 1000, 128000); + addAR(T5, + ItemUtils.getItemStackOfAmountFromOreDict("plateDenseAmericium", 4), + FluidUtils.getFluidStack("krypton", 500), + T6, 2000, 512000); + + addAR(ItemUtils.getItemStackOfAmountFromOreDict( + "dustClay", 32), + GregtechItemList.Bomb_Cast_Mold.get(0), + FluidUtils.getWater(4000), + GregtechItemList.Bomb_Cast.get(4), + 30, 120); + addAR(ItemUtils.getSimpleStack(Items.redstone, 32), + ItemUtils.getSimpleStack(ModItems.itemRope, 16), + Materials.Glue.getFluid(500), + ItemUtils.getSimpleStack(ModItems.itemDetCable, 24), + 30, + 120); + + + + /*addAR(ItemUtils.getItemStackOfAmountFromOreDict("plateIncoloy020", 16), + ItemUtils.getItemStackOfAmountFromOreDict("frameGtIncoloyMA956", 4), null, + GregtechItemList.Casing_Power_SubStation.get(4), 80, 120);*/ + + + + + + CORE.RA.addSixSlotAssemblingRecipe(new ItemStack[] { + GregtechItemList.Casing_Multi_Use.get(1), + ItemUtils.getItemStackOfAmountFromOreDict(CI.getTieredCircuitOreDictName(6), 1), + ItemUtils.getItemStackOfAmountFromOreDict(CI.getTieredCircuitOreDictName(4), 8), + CI.sensor_HV, + CI.emitter_HV, + CI.fieldGenerator_HV, + }, + null, + ItemUtils.getSimpleStack(Dimension_Everglades.blockPortalFrame), + 20*20, + 2048); + + + + + + + + CORE.RA.addSixSlotAssemblingRecipe(new ItemStack[] {ItemUtils.getSimpleStack(ModItems.itemRope, 6)}, null, ItemUtils.getSimpleStack(ModBlocks.blockNet, 2), 1*20, 8); + CORE.RA.addSixSlotAssemblingRecipe(new ItemStack[] {ItemUtils.getSimpleStack(CI.explosiveITNT, 2), ItemUtils.getSimpleStack(CI.explosiveTNT, 4), ELEMENT.getInstance().SULFUR.getDust(2), ELEMENT.getInstance().IRON.getFrameBox(1)}, null, ItemUtils.getSimpleStack(ModBlocks.blockMiningExplosive, 3), 5*20, 60); + CORE.RA.addSixSlotAssemblingRecipe(new ItemStack[] {ItemUtils.getSimpleStack(Items.nether_star), ItemUtils.getItemStackOfAmountFromOreDict("plateTungstenSteel", 8), ItemUtils.getItemStackOfAmountFromOreDict("stickBlackSteel", 8)}, null, ItemUtils.getSimpleStack(ModBlocks.blockWitherGuard, 32), 30*20, 500); + + + ItemStack aFluidReg1 = ItemUtils.getValueOfItemList("FluidRegulator_LV", ItemList.Pump_LV).get(1); + ItemStack aFluidReg2 = ItemUtils.getValueOfItemList("FluidRegulator_MV", ItemList.Pump_MV).get(1); + ItemStack aFluidReg3 = ItemUtils.getValueOfItemList("FluidRegulator_HV", ItemList.Pump_HV).get(1); + ItemStack aFluidReg4 = ItemUtils.getValueOfItemList("FluidRegulator_EV", ItemList.Pump_EV).get(1); + + CORE.RA.addSixSlotAssemblingRecipe(new ItemStack[] { + aFluidReg1, + CI.electricMotor_LV, + CI.getTieredComponent(OrePrefixes.bolt, 1, GTNH ? 8 : 4), + ItemUtils.getItemStackOfAmountFromOreDict("ringBrass", 1), + ItemUtils.getItemStackOfAmountFromOreDict("stickBrass", 1), + ItemUtils.getItemStackOfAmountFromOreDict("plateSteel", 2) + }, null, ItemUtils.simpleMetaStack(ModItems.itemGenericToken, 1, 1), 10*20, 30); + CORE.RA.addSixSlotAssemblingRecipe(new ItemStack[] { + aFluidReg2, + CI.electricMotor_MV, + CI.getTieredComponent(OrePrefixes.bolt, 2, GTNH ? 8 : 4), + ItemUtils.getItemStackOfAmountFromOreDict("ringInvar", 1), + ItemUtils.getItemStackOfAmountFromOreDict("stickInvar", 1), + ItemUtils.getItemStackOfAmountFromOreDict("plateAluminium", 2) + }, null, ItemUtils.simpleMetaStack(ModItems.itemGenericToken, 2, 1), 10*20*2, 120); + CORE.RA.addSixSlotAssemblingRecipe(new ItemStack[] { + aFluidReg3, + CI.electricMotor_HV, + CI.getTieredComponent(OrePrefixes.bolt, 3, GTNH ? 8 : 4), + ItemUtils.getItemStackOfAmountFromOreDict("ringChrome", 1), + ItemUtils.getItemStackOfAmountFromOreDict("stickChrome", 1), + ItemUtils.getItemStackOfAmountFromOreDict("plateStainlessSteel", 2) + }, null, ItemUtils.simpleMetaStack(ModItems.itemGenericToken, 3, 1), 10*20*3, 480); + + CORE.RA.addSixSlotAssemblingRecipe(new ItemStack[] { + aFluidReg4, + CI.electricMotor_EV, + CI.getTieredComponent(OrePrefixes.bolt, 4, GTNH ? 8 : 4), + ItemUtils.getItemStackOfAmountFromOreDict("ringTitanium", 1), + ItemUtils.getItemStackOfAmountFromOreDict("stickTitanium", 1), + ItemUtils.getItemStackOfAmountFromOreDict("plateTungstenSteel", 2) + }, null, ItemUtils.simpleMetaStack(ModItems.itemGenericToken, 4, 1), 10*20*4, 1960); + + GT_Values.RA.addAssemblerRecipe(ItemUtils.simpleMetaStack(ModItems.itemGenericToken, 1, 1), CI.getNumberedCircuit(20), ItemUtils.simpleMetaStack(ModItems.toolGregtechPump, 1000, 1), 30, 30); + GT_Values.RA.addAssemblerRecipe(ItemUtils.simpleMetaStack(ModItems.itemGenericToken, 2, 1), CI.getNumberedCircuit(20), ItemUtils.simpleMetaStack(ModItems.toolGregtechPump, 1001, 1), 120, 120); + GT_Values.RA.addAssemblerRecipe(ItemUtils.simpleMetaStack(ModItems.itemGenericToken, 3, 1), CI.getNumberedCircuit(20), ItemUtils.simpleMetaStack(ModItems.toolGregtechPump, 1002, 1), 480, 480); + GT_Values.RA.addAssemblerRecipe(ItemUtils.simpleMetaStack(ModItems.itemGenericToken, 4, 1), CI.getNumberedCircuit(20), ItemUtils.simpleMetaStack(ModItems.toolGregtechPump, 1003, 1), 1820, 1820); + + + + + + //Low tier Charge Packs + + final ItemStack[] aPackBatteries = new ItemStack[] { + ItemList.Battery_RE_LV_Lithium.get(4), + ItemList.Battery_RE_MV_Lithium.get(4), + ItemList.Battery_RE_HV_Lithium.get(4), + GregtechItemList.Battery_RE_EV_Lithium.get(4), + ItemList.Energy_LapotronicOrb.get(4), + }; + final ItemStack[] aPackPlates = new ItemStack[] { + CI.getPlate(1,8), + CI.getPlate(2,8), + CI.getPlate(3,8), + CI.getPlate(4,8), + CI.getPlate(5,8), + }; + final ItemStack[] aPackWire = new ItemStack[] { + CI.getTieredComponent(OrePrefixes.wireGt02, 1,6), + CI.getTieredComponent(OrePrefixes.wireGt04, 2,6), + CI.getTieredComponent(OrePrefixes.wireGt08, 3,6), + CI.getTieredComponent(OrePrefixes.wireGt12, 4,6), + CI.getTieredComponent(OrePrefixes.wireGt16, 5,6), + }; + final ItemStack[] aPackCircuit = new ItemStack[] { + CI.getTieredComponent(OrePrefixes.circuit, 1,4), + CI.getTieredComponent(OrePrefixes.circuit, 2,4), + CI.getTieredComponent(OrePrefixes.circuit, 3,4), + CI.getTieredComponent(OrePrefixes.circuit, 4,4), + CI.getTieredComponent(OrePrefixes.circuit, 5,4), + }; + final ItemStack[] aPackRing = new ItemStack[] { + CI.getTieredComponent(OrePrefixes.ring, 1,12), + CI.getTieredComponent(OrePrefixes.ring, 2,12), + CI.getTieredComponent(OrePrefixes.ring, 3,12), + CI.getTieredComponent(OrePrefixes.ring, 4,12), + CI.getTieredComponent(OrePrefixes.ring, 5,12), + }; + final ItemStack[] aPackOutput = new ItemStack[] { + ItemUtils.getSimpleStack(ModItems.itemChargePack_Low_1), + ItemUtils.getSimpleStack(ModItems.itemChargePack_Low_2), + ItemUtils.getSimpleStack(ModItems.itemChargePack_Low_3), + ItemUtils.getSimpleStack(ModItems.itemChargePack_Low_4), + ItemUtils.getSimpleStack(ModItems.itemChargePack_Low_5) + }; + + for (int i = 1; i < 6; i++) { + + int aAS = i-1; + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + aPackPlates[aAS], + aPackRing[aAS], + aPackWire[aAS], + aPackCircuit[aAS], + aPackBatteries[aAS], + CI.getSensor(i, GTNH ? 4 : 2), + }, + CI.getTieredFluid(i, (144 * (GTNH ? 4 : 2))), + aPackOutput[aAS], + 30 * 20 * i, + (int) GT_Values.V[i]); + } + + + if (!GTNH) { + if (CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK) { + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.WroughtIron, 1L), GT_OreDictUnificator.get(OrePrefixes.ring, Materials.WroughtIron, 2L), GregtechItemList.Fluid_Cell_1L.get(1L, new Object[0]), 50, 32); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Bronze, 1L), GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Bronze, 2L), GregtechItemList.Fluid_Cell_16L.get(1L, new Object[0]), 50, 32); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Brass, 1L), GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Brass, 2L), GregtechItemList.Fluid_Cell_36L.get(1L, new Object[0]), 75, 32); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Invar, 1L), GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Invar, 2L), GregtechItemList.Fluid_Cell_144L.get(1L, new Object[0]), 75, 32); + + } else { + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 8L), GT_OreDictUnificator.get(OrePrefixes.ring, Materials.WroughtIron, 4L), GregtechItemList.Fluid_Cell_1L.get(1L, new Object[0]), 50, 32); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Bronze, 8L), GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Bronze, 4L), GregtechItemList.Fluid_Cell_16L.get(1L, new Object[0]), 50, 32); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Brass, 8L), GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Brass, 4L), GregtechItemList.Fluid_Cell_36L.get(1L, new Object[0]), 75, 32); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Invar, 8L), GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Invar, 4L), GregtechItemList.Fluid_Cell_144L.get(1L, new Object[0]), 75, 32); + } + } + + + if (LoadedMods.Baubles) { + + + + // Turbine Housing Research Page + CORE.RA.addSixSlotAssemblingRecipe(new ItemStack[] { + ItemUtils.getGregtechCircuit(17), + ItemUtils.getItemStackOfAmountFromOreDict("plateRefinedTrinium", GTNH ? 64 : 32), + CI.getSensor(6, GTNH ? 6 : 3), + CI.getBolt(7, GTNH ? 64 : 32), + ItemUtils.getItemStackOfAmountFromOreDict("wireFinePlatinum", GTNH ? 64 : 32), + ItemUtils.getItemStackOfAmountFromOreDict(CI.getTieredCircuitOreDictName(7), GTNH ? 12 : 6) + }, + CI.getAlternativeTieredFluid(7, 144 * 32), + ItemDummyResearch.getResearchStack(ASSEMBLY_LINE_RESEARCH.RESEARCH_8_TURBINE_AUTOMATION, 1), + 20 * 60 * 5, + (int) GT_Values.V[6]); + + // Cloaking Device Research Page + CORE.RA.addSixSlotAssemblingRecipe(new ItemStack[] { + ItemUtils.getGregtechCircuit(17), + ItemUtils.getSimpleStack(ModItems.itemCircuitLFTR, 4), + CI.getFieldGenerator(6, GTNH ? 16 : 8), + ItemUtils.getItemStackOfAmountFromOreDict("wireFinePalladium", GTNH ? 32 : 16), + ItemUtils.getItemStackOfAmountFromOreDict(CI.getTieredCircuitOreDictName(6), GTNH ? 12 : 6) + }, + CI.getAlternativeTieredFluid(7, 144 * 32), + ItemDummyResearch.getResearchStack(ASSEMBLY_LINE_RESEARCH.RESEARCH_9_CLOAKING, 1), + 20 * 60 * 10, + (int) GT_Values.V[7]); + + + // Supreme Pizza Gloves + CORE.RA.addSixSlotAssemblingRecipe(new ItemStack[] { + ItemUtils.getGregtechCircuit(19), + ItemUtils.getSimpleStack(ModItems.itemRope, GTNH ? 32 : 16), + ItemUtils.getItemStackOfAmountFromOreDict("gearGtSmallWroughtIron", GTNH ? 8 : 4), + ItemUtils.getItemStackOfAmountFromOreDict("wireFineCopper", GTNH ? 32 : 16), + ItemUtils.getItemStackOfAmountFromOreDict(CI.getTieredCircuitOreDictName(1), GTNH ? 2 : 1) + }, + FluidUtils.getFluidStack("molten.rubber", 2000), + ItemUtils.getSimpleStack(ModItems.itemPersonalFireProofDevice), + 20 * 60 * 5, + 30); + } + + + + + + } + + private static boolean addAR(final ItemStack inputA, final ItemStack inputB, final FluidStack inputFluidA, + final ItemStack outputA, final int seconds, final int voltage) { + // return GT_Values.RA.addAssemblerRecipe(inputA, inputB, outputA, + // seconds*20, voltage); + return GT_Values.RA.addAssemblerRecipe(inputA, inputB, inputFluidA, outputA, seconds * 20, voltage); + } + + private static void distilleryRecipes() { + Logger.INFO("Registering Distillery/Distillation Tower Recipes."); + GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 4L, new Object[0]), + FluidUtils.getFluidStack("air", 1000), FluidUtils.getFluidStack("helium", 1), 400, 30, false); + GT_Values.RA.addDistillationTowerRecipe(FluidUtils.getFluidStack("air", 20000), + FluidUtils.getFluidStackArray("helium", 25), ItemUtils.getSimpleStack(ModItems.itemHydrogenBlob, 1), + 200, 60); + + // Apatite Distillation + /* + * so if you dissolve aparite in sulphuric acid you'll get a mixture of + * SO2, H2O, HF and HCl + */ + final FluidStack[] apatiteOutput = { FluidUtils.getFluidStack("sulfurousacid", 3800), + FluidUtils.getFluidStack("hydrogenchloride", 1000), FluidUtils.getFluidStack("hydrofluoricacid", 400) }; + GT_Values.RA.addDistillationTowerRecipe(FluidUtils.getFluidStack("sulfuricapatite", 5200), apatiteOutput, null, + 45 * 20, 256); + + final FluidStack[] sulfurousacidOutput = { FluidUtils.getFluidStack("sulfurdioxide", 500), + FluidUtils.getFluidStack("water", 500) }; + GT_Values.RA.addDistillationTowerRecipe(FluidUtils.getFluidStack("sulfurousacid", 1000), sulfurousacidOutput, + null, 10 * 20, 60); + + final FluidStack[] sulfurdioxideOutput = { FluidUtils.getFluidStack("oxygen", 144 * 2) }; + GT_Values.RA.addDistillationTowerRecipe(FluidUtils.getFluidStack("sulfurdioxide", 144 * 3), sulfurdioxideOutput, + ItemUtils.getItemStackOfAmountFromOreDict("dustSulfur", 1), 5 * 20, 30); + } + + private static void addFuels() { + Logger.INFO("Registering New Fuels."); + + if (!GTNH) { + GT_Values.RA.addFuel(ItemUtils.simpleMetaStack("EnderIO:bucketFire_water", 0, 1), null, 120, 0); + GT_Values.RA.addFuel(ItemUtils.simpleMetaStack("EnderIO:bucketRocket_fuel", 0, 1), null, 112, 0); + GT_Values.RA.addFuel(ItemUtils.simpleMetaStack("EnderIO:bucketHootch", 0, 1), null, 36, 0); + } + + HotFuel.addNewHotFuel(GT_ModHandler.getLava(83), GT_Values.NF, + new ItemStack[] { ItemUtils.getItemStackOfAmountFromOreDict("nuggetCopper", 1), + ItemUtils.getItemStackOfAmountFromOreDict("nuggetTin", 1), + ItemUtils.getItemStackOfAmountFromOreDict("nuggetGold", 1), + ItemUtils.getItemStackOfAmountFromOreDict("nuggetSilver", 1), + ItemUtils.getItemStackOfAmountFromOreDict("nuggetTantalum", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustSmallTungstate", 1), + ItemUtils.getSimpleStack(Blocks.obsidian) }, + new int[] { 2000, 1000, 250, 250, 250, 250, 500 }, 0); + + HotFuel.addNewHotFuel(FluidUtils.getFluidStack("ic2pahoehoelava", 83), GT_Values.NF, + new ItemStack[] { + ItemUtils.getItemStackOfAmountFromOreDict("nuggetBronze", 1), + ItemUtils.getItemStackOfAmountFromOreDict("nuggetElectrum", 1), + ItemUtils.getItemStackOfAmountFromOreDict("nuggetTantalum", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustSmallTungstate", 1), + ItemUtils.getSimpleStack(Blocks.obsidian) }, + new int[] { 750, 250, 250, 250, 1850 }, 0); + + /* + * HotFuel.addNewHotFuel( FluidUtils.getFluidStack("ic2hotcoolant", + * 100), GT_Values.NF, new ItemStack[]{}, new int[]{}, 0); + */ + + ThermalFuel.addSteamTurbineFuel(FluidUtils.getFluidStack("steam", 1024)); + + // CORE.RA.addFuel(UtilsItems.simpleMetaStack("EnderIO:bucketRocket_fuel", + // 0, 1), null, 112, 0); + GT_Values.RA.addFuel(ItemUtils.getSimpleStack(Items.lava_bucket), null, 32, 2); + GT_Values.RA.addFuel(ItemUtils.getIC2Cell(2), null, 32, 2); + GT_Values.RA.addFuel(ItemUtils.getIC2Cell(11), null, 24, 2); + // System.exit(1); + } + + private static void extractorRecipes() { + Logger.INFO("Registering Extractor Recipes."); + GT_ModHandler.addExtractionRecipe(GregtechItemList.Battery_RE_EV_Sodium.get(1L, new Object[0]), + ItemList.Battery_Hull_HV.get(4L, new Object[0])); + GT_ModHandler.addExtractionRecipe(GregtechItemList.Battery_RE_EV_Cadmium.get(1L, new Object[0]), + ItemList.Battery_Hull_HV.get(4L, new Object[0])); + GT_ModHandler.addExtractionRecipe(GregtechItemList.Battery_RE_EV_Lithium.get(1L, new Object[0]), + ItemList.Battery_Hull_HV.get(4L, new Object[0])); + } + + private static void fluidExtractorRecipes() { + + } + + private static void chemicalBathRecipes() { + + GT_Values.RA.addChemicalBathRecipe( + FLUORIDES.FLUORITE.getCrushed(2), + FluidUtils.getFluidStack("hydrogen", 2000), + FLUORIDES.FLUORITE.getCrushedPurified(8), + FLUORIDES.FLUORITE.getDustImpure(4), + FLUORIDES.FLUORITE.getDustPurified(2), + new int[] { 10000, 5000, 1000 }, + 30 * 20, + 240); + + } + + private static void centrifugeRecipes() { + + } + + private static void mixerRecipes() { + + GT_Values.RA.addMixerRecipe( + ItemUtils.getItemStackOfAmountFromOreDict("dustSulfur", 1), + null, + null, + null, + FluidUtils.getFluidStack("oxygen", 2000), + FluidUtils.getFluidStack("sulfurdioxide", 3000), + null, + 600, + 60); + + } + + private static void chemicalReactorRecipes() { + + //Bombs + GT_Values.RA.addChemicalRecipe( + ItemUtils.getSimpleStack(ModItems.itemBombCasing, 4), + ItemUtils.getSimpleStack(RocketFuels.Ammonium_Nitrate_Dust, 8), + Materials.Fuel.getFluid(1000), + null, + ItemUtils.getSimpleStack(ModItems.itemBombUnf, 4), + 300 * 20); + + GT_Values.RA.addChemicalRecipe( + ItemUtils.getSimpleStack(ModItems.itemBombUnf, 4), + ItemUtils.getSimpleStack(ModItems.itemDetCable, 4), + FluidUtils.getFluidStack(RocketFuels.Kerosene, 100), + null, + ItemUtils.getSimpleStack(ModItems.itemBomb, 4), + 10 * 20); + + GT_Values.RA.addChemicalRecipe( + ItemUtils.getItemStackOfAmountFromOreDict("dustApatite", 16), + null, + FluidUtils.getFluidStack("sulfuricacid", 144 * 32), + FluidUtils.getFluidStack("sulfuricapatite", 144 * 8), + ItemUtils.getItemStackOfAmountFromOreDict("dustSmallSulfur", 1), + 20 * 20); + + ItemStack temp_GT5u_SA = ItemUtils.getItemStackOfAmountFromOreDictNoBroken("cellHydrofluoricAcid_GT5U", 5); + if (temp_GT5u_SA != null) { + //Refine GT HF into GT++ HF + GT_Values.RA.addChemicalRecipe( + ItemUtils.getItemStackOfAmountFromOreDict("cellHydrofluoricAcid", 2), + temp_GT5u_SA, + null, // Fluid Input + FluidUtils.getFluidStack("hydrofluoricacid", 6000), // Fluid Output + CI.emptyCells(7), + 2 * 20); + } + + } + + private static void blastFurnaceRecipes() { + + //public boolean addBlastRecipe( + //ItemStack aInput1, ItemStack aInput2, + //FluidStack aFluidInput, FluidStack aFluidOutput, + //ItemStack aOutput1, ItemStack aOutput2, + //int aDuration, int aEUt, int aLevel) + + + //Synthetic Graphite + GT_Values.RA.addBlastRecipe( + CI.getNumberedCircuit(22), + ALLOY.SILICON_CARBIDE.getDust(16), + ELEMENT.getInstance().NITROGEN.getFluidStack(4000), + GT_Values.NF, + ItemUtils.getItemStackOfAmountFromOreDict("dustGraphite", 8), + ItemUtils.getItemStackOfAmountFromOreDict("dustSmallSilicon", 8), + 60 * 20, + MaterialUtils.getVoltageForTier(GTNH ? 5 : 4), + 4500); + + //Bomb Casings + GT_Values.RA.addBlastRecipe( + GregtechItemList.Bomb_Cast.get(4), + ALLOY.STEEL.getDust(16), + ELEMENT.getInstance().OXYGEN.getFluidStack(2000), + GT_Values.NF, + GregtechItemList.Bomb_Cast_Molten.get(4), + null, + 4 * 60 * 20, + MaterialUtils.getVoltageForTier(GTNH ? 3 : 2), + 2800); + + //Krypton Processing + if (ModItems.itemHotTitaniumIngot != null) { + GT_Values.RA.addBlastRecipe( + ItemUtils.getItemStackOfAmountFromOreDict("ingotTitanium", 1), + CI.getNumberedCircuit(16), + GT_Values.NF, + GT_Values.NF, + ItemUtils.getItemStackOfAmountFromOreDict("ingotHotTitanium", 1), + null, + 10 * 20, + 500, + Materials.Titanium.mBlastFurnaceTemp); + } + + } + + private static void autoclaveRecipes() { + + } + + private static void benderRecipes() { + + if (CORE.ConfigSwitches.enableMultiblock_PowerSubstation) { + GT_Values.RA.addBenderRecipe(ItemUtils.getItemStackOfAmountFromOreDict("ingotVanadium", 1), + ItemUtils.getItemStackOfAmountFromOreDict("plateVanadium", 1), 8, 16); + } + } + + private static void compressorRecipes() { + GT_ModHandler.addCompressionRecipe(ItemUtils.getItemStackOfAmountFromOreDict("dustSmallClay", 4), + ItemUtils.getItemStackOfAmountFromOreDict("plateClay", 1)); + GT_ModHandler.addCompressionRecipe(ItemUtils.getItemStackOfAmountFromOreDict("dustSmallMeatRaw", 4), + ItemUtils.getItemStackOfAmountFromOreDict("plateMeatRaw", 1)); + GT_ModHandler.addCompressionRecipe(ItemUtils.getItemStackOfAmountFromOreDict("dustMeatRaw", 9), + ItemUtils.getItemStackOfAmountFromOreDict("blockMeatRaw", 1)); + + CORE.RA.addCompressorRecipe(ItemList.FusionComputer_UV.get(9), GregtechItemList.Compressed_Fusion_Reactor.get(1), (int) GT_Values.V[7], (int) GT_Values.V[8]); + } + + private static void macerationRecipes() { + + GT_ModHandler.addPulverisationRecipe(ItemUtils.getItemStackOfAmountFromOreDict("blockMeatRaw", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustMeatRaw", 9)); + + GT_ModHandler.addPulverisationRecipe(GregtechItemList.Bomb_Cast_Broken.get(1), + ItemUtils.getItemStackOfAmountFromOreDict("dustClay", 3)); + + if (ItemUtils.simpleMetaStack("chisel:limestone", 0, 1) != null) { + GT_ModHandler.addPulverisationRecipe(ItemUtils.getItemStackOfAmountFromOreDict("limestone", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustCalcite", 4)); + } + + } + + private static void cyclotronRecipes() { + + // Polonium + CORE.RA.addCyclotronRecipe(CI.getNumberedCircuit(0), FluidUtils.getFluidStack("molten.bismuth", 1), + new ItemStack[] { GregtechItemList.Pellet_RTG_PO210.get(1) }, null, new int[] { 100 }, 20 * 300 * 100, 2040 * 4, + 500 * 20); + + // Americium + CORE.RA.addCyclotronRecipe(CI.getNumberedCircuit(0), FluidUtils.getFluidStack("molten.americium", 1), + new ItemStack[] { GregtechItemList.Pellet_RTG_AM241.get(4) }, null, new int[] { 2500 }, 20 * 300 * 100, 1020 * 4, + 500 * 20); //PO Special Value + + // Strontium u235 + CORE.RA.addCyclotronRecipe(CI.getNumberedCircuit(0), FluidUtils.getFluidStack("molten.uranium235", 10), + new ItemStack[] { GregtechItemList.Pellet_RTG_SR90.get(1) }, null, new int[] { 570 }, 20 * 300 * 100, 1020 * 4, + 500 * 20); //PO Special Value + + // Strontium u233 + CORE.RA.addCyclotronRecipe(CI.getNumberedCircuit(0), FluidUtils.getFluidStack("molten.uranium233", 10), + new ItemStack[] { GregtechItemList.Pellet_RTG_SR90.get(1) }, null, new int[] { 660 }, 20 * 300 * 100, 1020 * 4, + 500 * 20); //PO Special Value + + // Strontium pu239 + CORE.RA.addCyclotronRecipe(CI.getNumberedCircuit(0), FluidUtils.getFluidStack("molten.plutonium239", 10), + new ItemStack[] { GregtechItemList.Pellet_RTG_SR90.get(1) }, null, new int[] { 220 }, 20 * 300 * 100, 1020 * 4, + 500 * 20); //PO Special Value + + // Plutonium + CORE.RA.addCyclotronRecipe(CI.getNumberedCircuit(0), FluidUtils.getFluidStack("molten.plutonium238", 1), + new ItemStack[] { GregtechItemList.Pellet_RTG_PU238.get(2) }, null, new int[] { 780 }, 20 * 300 * 100, 1020 * 4, + 500 * 20); //PO Special Value + + // Neptunium + CORE.RA.addCyclotronRecipe(new ItemStack[] {ELEMENT.getInstance().URANIUM238.getDust(1) }, FluidUtils.getFluidStack("deuterium", 400), + new ItemStack[] {ItemUtils.getSimpleStack(ModItems.dustNeptunium238)}, null, new int[] { 500 }, 20 * 5, 500 * 4, + 500 * 20); //PO Special Value + + + /** + * Particle Science + */ + + + // Quark Smash + CORE.RA.addCyclotronRecipe( + CI.getNumberedCircuit(3), + FluidUtils.getFluidStack("plasma.hydrogen", 100), + new ItemStack[] { + Particle.getBaseParticle(Particle.UP), + Particle.getBaseParticle(Particle.DOWN), + Particle.getBaseParticle(Particle.CHARM), + Particle.getBaseParticle(Particle.STRANGE), + Particle.getBaseParticle(Particle.TOP), + Particle.getBaseParticle(Particle.BOTTOM), + }, + null, + new int[] { 50, 50, 50, 50, 50, 50 }, + 20 * 300 * 9, + (int) MaterialUtils.getVoltageForTier(7), + 750 * 20); + + // Lepton Smash + CORE.RA.addCyclotronRecipe( + CI.getNumberedCircuit(6), + FluidUtils.getFluidStack("plasma.helium", 1500), + new ItemStack[] { + Particle.getBaseParticle(Particle.ELECTRON), + Particle.getBaseParticle(Particle.MUON), + Particle.getBaseParticle(Particle.TAU), + Particle.getBaseParticle(Particle.ELECTRON_NEUTRINO), + Particle.getBaseParticle(Particle.MUON_NEUTRINO), + Particle.getBaseParticle(Particle.TAU_NEUTRINO), + }, + null, + new int[] { 600, 40, 20, 15, 10, 5 }, + 20 * 300 * 8, + (int) MaterialUtils.getVoltageForTier(7), + 750 * 20); + + // Boson Smash + CORE.RA.addCyclotronRecipe( + CI.getNumberedCircuit(9), + FluidUtils.getFluidStack("plasma.helium", 1500), + new ItemStack[] { + Particle.getBaseParticle(Particle.GLUON), + Particle.getBaseParticle(Particle.PHOTON), + Particle.getBaseParticle(Particle.Z_BOSON), + Particle.getBaseParticle(Particle.W_BOSON), + Particle.getBaseParticle(Particle.HIGGS_BOSON), + }, + null, + new int[] { 160, 260, 150, 150, 1 }, + 20 * 300 * 6, + (int) MaterialUtils.getVoltageForTier(7), + 750 * 20); + + + // Mixed Smash 1 + CORE.RA.addCyclotronRecipe( + CI.getNumberedCircuit(12), + FluidUtils.getFluidStack("plasma.beryllium", 2500), + new ItemStack[] { + Particle.getBaseParticle(Particle.GRAVITON), + Particle.getBaseParticle(Particle.ETA_MESON), + Particle.getBaseParticle(Particle.PION), + Particle.getBaseParticle(Particle.PROTON), + Particle.getBaseParticle(Particle.NEUTRON), + Particle.getBaseParticle(Particle.LAMBDA), + Particle.getBaseParticle(Particle.OMEGA), + Particle.getBaseParticle(Particle.HIGGS_BOSON), + }, + null, + new int[] { 10, 20, 20, 10, 10, 5, 5, 2 }, + 17 * 247 * 32, + (int) MaterialUtils.getVoltageForTier(8), + 750 * 20); + + // Graviton Smash + CORE.RA.addCyclotronRecipe( + CI.getNumberedCircuit(15), + FluidUtils.getFluidStack("plasma.hydrogen", GTNH ? 50 : 10), + new ItemStack[] { + Particle.getBaseParticle(Particle.GRAVITON), + Particle.getBaseParticle(Particle.UNKNOWN) + }, + null, + new int[] {15, 100}, + 20 * (GTNH ? 90 : 30), + (int) MaterialUtils.getVoltageForTier(6), + 1000 * 20); + + FluidStack aPlasma = Materials.Duranium.getMolten(GTNH ? 40 : 10); + FluidStack aPlasma_NULL = Materials._NULL.getPlasma(1); + + if (aPlasma == null || aPlasma.isFluidEqual(aPlasma_NULL)) { + aPlasma = Materials.Americium.getMolten(GTNH ? 20 : 5); + } + + // Quantum Anomaly + CORE.RA.addCyclotronRecipe( + new ItemStack[] { + CI.getNumberedCircuit(24), + Particle.getBaseParticle(Particle.UNKNOWN), + }, + aPlasma, + new ItemStack[] { + GregtechItemList.Laser_Lens_Special.get(1) + }, + null, + new int[] {100}, + 20 * (GTNH ? 300 : 60), + (int) MaterialUtils.getVoltageForTier(6), + 1000 * 20); + + /* + * Ions + */ + + int IonCount = 2; + int tenCountA = (GTNH ? 2 : 1); + int tenCountB = 0; + for (String y : IonParticles.MetaToNameMap.values()) { + if (y.toLowerCase().contains("hydrogen")) { + continue; + } + FluidStack aPlasma2 = FluidUtils.getFluidStack("plasma."+y.toLowerCase(), 2); + Materials aTestMat = MaterialUtils.getMaterial(y); + FluidStack aPlasma3 = aTestMat != null ? aTestMat.getPlasma(2) : aPlasma2; + + // Ionize Plasma + if ((aPlasma2 != null && !aPlasma2.isFluidEqual(aPlasma_NULL)) || (aPlasma3 != null && !aPlasma3.isFluidEqual(aPlasma_NULL))) { + CORE.RA.addCyclotronRecipe( + CI.getNumberedCircuit(1+(tenCountA-1)), + aPlasma2 != null ? aPlasma2 : aPlasma3, + new ItemStack[] { + Particle.getIon(y, 1), + Particle.getIon(y, 2), + Particle.getIon(y, 3), + Particle.getIon(y, -1), + Particle.getIon(y, -2), + Particle.getIon(y, -3), + Particle.getIon(y, 1), + Particle.getIon(y, 2), + Particle.getIon(y, -1), + }, + null, + new int[] { 275, 250, 225, 275, 250, 225, 275, 250, 275}, + 20 * 20 * (IonCount++) * tenCountA, + (int) MaterialUtils.getVoltageForTier(7), + 1500 * 20 * tenCountA); + } + else { + Logger.INFO("Plasma for "+y+" does not exist, please report this to Alkalus."); + } + + if (tenCountB == 12) { + tenCountB = 0; + tenCountA++; + } + else { + tenCountB++; + } + } + + // Generate Hydrogen Ion Recipe + CORE.RA.addCyclotronRecipe( + CI.getNumberedCircuit(24), + FluidUtils.getWildcardFluidStack("hydrogen", 1000), + new ItemStack[] { + Particle.getIon("Hydrogen", 1), + Particle.getIon("Hydrogen", 2), + Particle.getIon("Hydrogen", 3), + Particle.getIon("Hydrogen", 1), + Particle.getIon("Hydrogen", 2), + Particle.getIon("Hydrogen", 3), + Particle.getIon("Hydrogen", -1), + Particle.getIon("Hydrogen", -2), + Particle.getIon("Hydrogen", -3) + }, + null, + new int[] { 125, 125, 125, 125, 125, 125, 125, 125, 125 }, + 20 * 20, + (int) MaterialUtils.getVoltageForTier(6), + 15000); + + // Generate Hydrogen Plasma Recipe + CORE.RA.addCyclotronRecipe( + new ItemStack[] { + Particle.getIon("Hydrogen", 0), + ItemUtils.getItemStackOfAmountFromOreDict("cellHydrogen", 1) + }, + null, + new ItemStack[] { + Particle.getBaseParticle(Particle.PROTON), + Particle.getBaseParticle(Particle.NEUTRON), + Particle.getBaseParticle(Particle.ELECTRON), + Particle.getBaseParticle(Particle.UNKNOWN), + Particle.getBaseParticle(Particle.UNKNOWN), + Particle.getBaseParticle(Particle.UNKNOWN), + CI.emptyCells(1) + }, + FluidUtils.getFluidStack("plasma.hydrogen", 1), + new int[] { 250, 250, 250, 500, 500, 500, 10000 }, + 20 * 60 * 2, + (int) MaterialUtils.getVoltageForTier(6), + 750 * 20); + + + // Generate Protons Easily + CORE.RA.addCyclotronRecipe( + new ItemStack[] { + CI.getNumberedCircuit(20), + Particle.getIon("Hydrogen", 0) + }, + FluidUtils.getWildcardFluidStack("hydrogen", 100), + new ItemStack[] { + Particle.getBaseParticle(Particle.PROTON), + Particle.getBaseParticle(Particle.PROTON), + Particle.getBaseParticle(Particle.PROTON), + Particle.getBaseParticle(Particle.PROTON), + Particle.getBaseParticle(Particle.PROTON), + Particle.getBaseParticle(Particle.PROTON), + Particle.getBaseParticle(Particle.PROTON), + Particle.getBaseParticle(Particle.PROTON), + Particle.getBaseParticle(Particle.PROTON), + }, + null, + new int[] { 750, 750, 750, 750, 750, 750, 750, 750, 750 }, + 20 * 20, + (int) MaterialUtils.getVoltageForTier(6), + 15000); + + CORE.RA.addCyclotronRecipe( + new ItemStack[] { + CI.getNumberedCircuit(22), + Particle.getBaseParticle(Particle.UNKNOWN), + }, + FluidUtils.getWildcardFluidStack("hydrogen", 100), + new ItemStack[] { + Particle.getBaseParticle(Particle.PROTON), + Particle.getBaseParticle(Particle.PROTON), + Particle.getBaseParticle(Particle.PROTON), + Particle.getBaseParticle(Particle.PROTON), + Particle.getBaseParticle(Particle.PROTON), + Particle.getBaseParticle(Particle.PROTON), + Particle.getBaseParticle(Particle.PROTON), + Particle.getBaseParticle(Particle.PROTON), + Particle.getBaseParticle(Particle.PROTON), + }, + null, + new int[] { 375, 375, 375, 375, 375, 375, 375, 375, 375 }, + 20 * 20, + (int) MaterialUtils.getVoltageForTier(6), + 15000); + + + //Create Strange Dust + CORE.RA.addCyclotronRecipe( + new ItemStack[] { + ELEMENT.getInstance().PLUTONIUM238.getDust(1), + Particle.getBaseParticle(Particle.UNKNOWN), + Particle.getBaseParticle(Particle.UNKNOWN), + Particle.getBaseParticle(Particle.UNKNOWN), + Particle.getBaseParticle(Particle.UNKNOWN), + Particle.getBaseParticle(Particle.UNKNOWN), + Particle.getBaseParticle(Particle.UNKNOWN), + Particle.getBaseParticle(Particle.UNKNOWN), + Particle.getBaseParticle(Particle.UNKNOWN), + }, + FluidUtils.getFluidStack(FluidUtils.getWildcardFluidStack("ender", 1000), 1000), + new ItemStack[] { + ORES.DEEP_EARTH_REACTOR_FUEL_DEPOSIT.getDust(1) + }, + null, + new int[] { 2500 }, + 20 * 60 * 15, + (int) MaterialUtils.getVoltageForTier(7), + 15000); + + + + + + } + + private static void sifterRecipes() { + + } + + private static void electroMagneticSeperatorRecipes() { + + if (!GTNH) { + // Trinium + GT_Values.RA.addElectromagneticSeparatorRecipe( + ItemUtils.getItemStackOfAmountFromOreDict("crushedPurifiedNaquadah", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustNaquadah", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustSmallNaquadahEnriched", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustSmallTrinium", 1), new int[] { 10000, 2500, 5000 }, + 20 * 20, 24); + + // Trinium + GT_Values.RA.addElectromagneticSeparatorRecipe( + ItemUtils.getItemStackOfAmountFromOreDict("crushedPurifiedIridium", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustIridium", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustSmallOsmium", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustSmallTrinium", 1), new int[] { 10000, 2500, 5000 }, + 20 * 20, 24); + + // Trinium + GT_Values.RA.addElectromagneticSeparatorRecipe( + ItemUtils.getItemStackOfAmountFromOreDict("crushedPurifiedWulfenite", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustWulfenite", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustSmallTrinium", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustSmallTrinium", 1), new int[] { 10000, 3000, 3000 }, + 20 * 20, 24); + } + + } + + private static void advancedMixerRecipes() { + // HgBa2Ca2Cu3O8 + /*CORE.RA.addMixerRecipe( + ItemUtils.getItemStackOfAmountFromOreDict("cellMercury", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustBarium", 2), + ItemUtils.getItemStackOfAmountFromOreDict("dustCalcium", 2), + ItemUtils.getItemStackOfAmountFromOreDict("dustCopper", 3), + FluidUtils.getFluidStack("oxygen", 8000), + null, CI.emptyCells(1), ALLOY.HG1223.getDust(16), null, null, + 30 * 20, 500); */ + + } + +} diff --git a/src/main/java/gtPlusPlus/core/recipe/RECIPES_General.java b/src/main/java/gtPlusPlus/core/recipe/RECIPES_General.java new file mode 100644 index 0000000000..08d8dda039 --- /dev/null +++ b/src/main/java/gtPlusPlus/core/recipe/RECIPES_General.java @@ -0,0 +1,509 @@ +package gtPlusPlus.core.recipe; + +import static gtPlusPlus.core.lib.CORE.GTNH; +import static gtPlusPlus.core.recipe.common.CI.bitsd; +import static gtPlusPlus.core.util.minecraft.ItemUtils.getSimpleStack; +import static gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechConduits.generatePipeRecipes; +import static gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechConduits.generateWireRecipes; + +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_ModHandler; +import gtPlusPlus.api.objects.Logger; +import gtPlusPlus.core.block.ModBlocks; +import gtPlusPlus.core.item.ModItems; +import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.core.lib.LoadedMods; +import gtPlusPlus.core.material.ALLOY; +import gtPlusPlus.core.material.ELEMENT; +import gtPlusPlus.core.recipe.common.CI; +import gtPlusPlus.core.util.minecraft.*; +import gtPlusPlus.core.util.minecraft.gregtech.PollutionUtils; +import gtPlusPlus.xmod.bop.blocks.BOP_Block_Registrator; +import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList; +import gtPlusPlus.xmod.gregtech.api.enums.GregtechOrePrefixes.GT_Materials; +import gtPlusPlus.xmod.gregtech.common.Meta_GT_Proxy; +import gtPlusPlus.xmod.gregtech.common.helpers.VolumetricFlaskHelper; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +public class RECIPES_General { + + static final ItemStack NULL = null; + static ItemStack RECIPE_Paper; + static ItemStack RECIPE_Dirt; + static ItemStack RECIPE_Snow; + static ItemStack RECIPE_Obsidian; + static String RECIPE_LapisDust = "dustLazurite"; + static ItemStack OUTPUT_Blueprint; + static ItemStack RECIPE_CraftingTable; + static String RECIPE_BronzePlate = "plateBronze"; + static ItemStack RECIPE_BasicCasingIC2; + static ItemStack OUTPUT_Workbench_Bronze; + static ItemStack RECIPE_HydrogenDust; + + public static void loadRecipes(){ + if (LoadedMods.Gregtech){ + RECIPE_Paper = ItemUtils.getSimpleStack(Items.paper); + RECIPE_Dirt = ItemUtils.getSimpleStack(Blocks.dirt); + RECIPE_Snow = ItemUtils.getSimpleStack(Blocks.snow); + RECIPE_Obsidian = ItemUtils.getSimpleStack(Blocks.obsidian); + RECIPE_CraftingTable = ItemUtils.getSimpleStack(Blocks.crafting_table); + RECIPE_HydrogenDust = ItemUtils.getSimpleStack(ModItems.itemHydrogenBlob); + RECIPE_BasicCasingIC2 = ItemUtils.getItemStackFromFQRN("IC2:blockMachine", 1); + OUTPUT_Workbench_Bronze = ItemUtils.getSimpleStack(ModBlocks.blockWorkbench); + OUTPUT_Blueprint = ItemUtils.getSimpleStack(ModItems.itemBlueprintBase); + run(); + addCompressedObsidian(); + migratedRecipes(); + } + } + + private static void run() { + //Workbench Blueprint + /*RecipeUtils.addShapedRecipe( + RECIPE_Paper, RECIPE_LapisDust, NULL, + RECIPE_Paper, RECIPE_LapisDust, NULL, + RECIPE_LapisDust, RECIPE_LapisDust, NULL, + OUTPUT_Blueprint);*/ + + //Bronze Workbench + /*RecipeUtils.addShapedRecipe( + RECIPE_BronzePlate, RECIPE_CraftingTable, RECIPE_BronzePlate, + RECIPE_BronzePlate, RECIPE_BasicCasingIC2, RECIPE_BronzePlate, + RECIPE_BronzePlate, RECIPE_BronzePlate, RECIPE_BronzePlate, + OUTPUT_Workbench_Bronze);*/ + + //Generates recipes for the Dull shard when TC is not installed. + if (!LoadedMods.Thaumcraft) { + //Dull Shard to Aer + RecipeUtils.addShapedRecipe( + RECIPE_HydrogenDust, RECIPE_HydrogenDust, RECIPE_HydrogenDust, + RECIPE_HydrogenDust, ItemUtils.getSimpleStack(ModItems.shardDull), RECIPE_HydrogenDust, + RECIPE_HydrogenDust, RECIPE_HydrogenDust, RECIPE_HydrogenDust, + ItemUtils.getSimpleStack(ModItems.shardAer)); + //Dull Shard to Ignis + RecipeUtils.addShapedRecipe( + RECIPE_Obsidian, RECIPE_Obsidian, RECIPE_Obsidian, + RECIPE_Obsidian, ItemUtils.getSimpleStack(ModItems.shardDull), RECIPE_Obsidian, + RECIPE_Obsidian, RECIPE_Obsidian, RECIPE_Obsidian, + ItemUtils.getSimpleStack(ModItems.shardIgnis)); + //Dull Shard to Terra + RecipeUtils.addShapedRecipe( + RECIPE_Dirt, RECIPE_Dirt, RECIPE_Dirt, + RECIPE_Dirt, ItemUtils.getSimpleStack(ModItems.shardDull), RECIPE_Dirt, + RECIPE_Dirt, RECIPE_Dirt, RECIPE_Dirt, + ItemUtils.getSimpleStack(ModItems.shardTerra)); + //Dull Shard to Aqua + RecipeUtils.addShapedRecipe( + RECIPE_LapisDust, RECIPE_LapisDust, RECIPE_LapisDust, + RECIPE_LapisDust, ItemUtils.getSimpleStack(ModItems.shardDull), RECIPE_LapisDust, + RECIPE_LapisDust, RECIPE_LapisDust, RECIPE_LapisDust, + ItemUtils.getSimpleStack(ModItems.shardAqua)); + + GT_ModHandler.addPulverisationRecipe(ItemUtils.getSimpleStack(ModItems.shardAer), ItemUtils.getSimpleStack(ModItems.dustAer, 2)); + GT_ModHandler.addPulverisationRecipe(ItemUtils.getSimpleStack(ModItems.shardIgnis), ItemUtils.getSimpleStack(ModItems.dustIgnis, 2)); + GT_ModHandler.addPulverisationRecipe(ItemUtils.getSimpleStack(ModItems.shardTerra), ItemUtils.getSimpleStack(ModItems.dustTerra, 2)); + GT_ModHandler.addPulverisationRecipe(ItemUtils.getSimpleStack(ModItems.shardAqua), ItemUtils.getSimpleStack(ModItems.dustAqua, 2)); + + } + + //Rainforest oak Sapling + if (RecipeUtils.addShapedRecipe( + "stickWood", "stickWood", "stickWood", + "stickWood", "treeSapling", "stickWood", + "stickWood", "dustBone", "stickWood", + ItemUtils.getSimpleStack(BOP_Block_Registrator.sapling_Rainforest))){ + Logger.INFO("Added a recipe for Rainforest oak Saplings."); + } + + //Iron bars + final ItemStack ironBars; + if (CORE.GTNH) { + ironBars = ItemUtils.getItemStackFromFQRN("dreamcraft:item.SteelBars", 1); + } else { + ironBars = ItemUtils.getItemStackFromFQRN("minecraft:iron_bars", 1); + } + + //Fish Trap + if (RecipeUtils.addShapedRecipe( + ironBars, ironBars, ironBars, + ironBars, "frameGtWroughtIron", ironBars, + ironBars, ironBars, ironBars, + ItemUtils.getSimpleStack(ModBlocks.blockFishTrap))){ + Logger.INFO("Added a recipe for the Fish Trap."); + } + + //Small Gear Extruder Shape + if (!CORE.GTNH) { + GT_ModHandler.addCraftingRecipe(GregtechItemList.Shape_Extruder_SmallGear.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"hXS", "XPX", "fXd", Character.valueOf('P'), ItemList.Shape_Extruder_Gear, Character.valueOf('X'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('S'), OrePrefixes.screw.get(Materials.Steel)}); + + + String[] ironTypes = {"", "Wrought", "Pig", "Any"}; + for (int y=0;y<ironTypes.length;y++) { + //Iron bars + String ironRecipe = "stick"+ironTypes[y]+"Iron"; + if (RecipeUtils.addShapedRecipe( + null, CI.craftingToolWrench, null, + ironRecipe, ironRecipe, ironRecipe, + ironRecipe, ironRecipe, ironRecipe, + ItemUtils.getItemStackFromFQRN("minecraft:iron_bars", 8))) { + Logger.INFO("Re-added old GT recipe for Iron Bars."); + } + } + } + + + //Shaped Crafting for ULV Material Dusts + + //Potin + if (RecipeUtils.addShapelessGregtechRecipe(new Object[] {"dustLead", "dustBronze", "dustTin", + "dustLead", "dustBronze"}, ALLOY.POTIN.getDust(5))){ + Logger.INFO("Added shapeless recipe for Potin Dust."); + } + + //Tumbaga + if (RecipeUtils.addShapelessGregtechRecipe(new Object[] { + "dustGold", "dustGold", "dustCopper"}, ItemUtils.getSimpleStack(ModItems.dustTumbagaMix))){ + Logger.INFO("Added shapeless recipe for Tumbaga Mix."); + } + if (RecipeUtils.addShapelessGregtechRecipe(new Object[] { + ItemUtils.getSimpleStack(ModItems.dustTumbagaMix), + ItemUtils.getSimpleStack(ModItems.dustTumbagaMix), + ItemUtils.getSimpleStack(ModItems.dustTumbagaMix), + "dustGold" + }, + ALLOY.TUMBAGA.getDust(10))){ + Logger.INFO("Added shapeless recipe for Tumbaga Dust."); + } + + + + if (CORE.ConfigSwitches.enableMachine_Pollution) { + RecipeUtils.addShapedRecipe( + CI.craftingToolFile, "plateIron", "stickIron", + "plateIron", "ringIron", "plateIron", + "stickIron", "plateIron", CI.craftingToolHammer_Hard, + ItemUtils.simpleMetaStack(ModItems.itemBasicTurbine, 0, 1) + ); + RecipeUtils.addShapedRecipe( + CI.craftingToolFile, "plateBronze", "stickBronze", + "plateBronze", "ringBronze", "plateBronze", + "stickBronze", "plateBronze", CI.craftingToolHammer_Hard, + ItemUtils.simpleMetaStack(ModItems.itemBasicTurbine, 1, 1) + ); + } + + if (Meta_GT_Proxy.sDoesVolumetricFlaskExist) { + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + CI.getNumberedAdvancedCircuit(4), + ItemUtils.getSimpleStack(Blocks.glass, 16), + ItemUtils.getSimpleStack(Blocks.glowstone, 16), + ItemList.Large_Fluid_Cell_Steel.get(1) + }, + FluidUtils.getFluidStack("molten.borosilicateglass", 2000), + VolumetricFlaskHelper.getLargeVolumetricFlask(2), + 20 * 15, + MaterialUtils.getVoltageForTier(3)); + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + CI.getNumberedAdvancedCircuit(5), + ItemUtils.getSimpleStack(Blocks.glass, 64), + ItemUtils.getSimpleStack(Blocks.glowstone, 64), + ItemList.Large_Fluid_Cell_TungstenSteel.get(1) + }, + FluidUtils.getFluidStack("molten.borosilicateglass", 8000), + VolumetricFlaskHelper.getGiganticVolumetricFlask(2), + 20 * 15, + MaterialUtils.getVoltageForTier(5)); + + } + + + + //Mining Explosive + Logger.RECIPE("[Inspection] Explosives"); + if (RecipeUtils.addShapedRecipe( + CI.explosiveITNT, CI.explosiveTNT, CI.explosiveITNT, + CI.explosiveTNT, "frameGtIron", CI.explosiveTNT, + "dustSulfur", CI.explosiveTNT, "dustSulfur", + ItemUtils.getSimpleStack(ModBlocks.blockMiningExplosive, 3))){ + Logger.INFO("Added a recipe for Mining Explosives."); + } + + //Alkalus Coin + if (RecipeUtils.addShapedRecipe( + "gemExquisiteRuby", "gemFlawlessDiamond", "gemExquisiteDiamond", + "gemFlawlessRuby", ItemList.Credit_Greg_Osmium.get(1), "gemFlawlessSapphire", + "gemExquisiteEmerald", "gemFlawlessEmerald", "gemExquisiteSapphire", + ItemUtils.getSimpleStack(ModItems.itemAlkalusDisk))){ + Logger.INFO("Added a recipe for The Alkalus Disk."); + } + + /*final String fancyGems[] = new String[]{"gemExquisiteDiamond", "gemExquisiteEmerald", "gemExquisiteRuby", "gemExquisiteSapphire"}; + final ItemStack gemShards[] = new ItemStack[]{ItemUtils.simpleMetaStack(ModItems.itemGemShards, 0, 1), + ItemUtils.simpleMetaStack(ModItems.itemGemShards, 1, 1), + ItemUtils.simpleMetaStack(ModItems.itemGemShards, 2, 1), + ItemUtils.simpleMetaStack(ModItems.itemGemShards, 3, 1)}; + + int l=0; + for (final String gem : fancyGems){ + GameRegistry.addShapelessRecipe( + gemShards[l], + ItemUtils.getItemStackOfAmountFromOreDict(gem, 1), + new ItemStack(ModItems.itemAlkalusDisk, 1, OreDictionary.WILDCARD_VALUE)); + l++; + }*/ + + Logger.RECIPE("[Inspection] Wither Cage"); + if (RecipeUtils.addShapedRecipe( + "stickBlackSteel", "plateTungstenSteel", "stickBlackSteel", + "plateTungstenSteel", getSimpleStack(Items.nether_star), "plateTungstenSteel", + "stickBlackSteel", "plateTungstenSteel", "stickBlackSteel", + ItemUtils.getSimpleStack(ModBlocks.blockWitherGuard, 32))){ + Logger.INFO("Added a recipe for Wither Cages."); + } + + /*Logger.RECIPE("[Inspection] Xp Converter"); + if (RecipeUtils.addShapedRecipe( + getSimpleStack(Items.experience_bottle), ItemUtils.simpleMetaStack(ModBlocks.blockCompressedObsidian, 2, 1), getSimpleStack(Items.experience_bottle), + ItemUtils.simpleMetaStack(ModBlocks.blockCompressedObsidian, 5, 1), getSimpleStack(Items.nether_star), ItemUtils.simpleMetaStack(ModBlocks.blockCompressedObsidian, 5, 1), + getSimpleStack(Items.experience_bottle), ItemUtils.simpleMetaStack(ModBlocks.blockCompressedObsidian, 2, 1), getSimpleStack(Items.experience_bottle), + ItemUtils.getSimpleStack(ModBlocks.blockXpConverter, 1))){ + Logger.INFO("Added a recipe for XP Converter."); + }*/ + + + + + // Rope/Fiber/Net + if (RecipeUtils.addShapelessGregtechRecipe( + new ItemStack[]{ + ItemUtils.getItemStackOfAmountFromOreDictNoBroken(CI.craftingToolKnife, 1), ItemUtils.getSimpleStack(Items.reeds)}, + ItemUtils.getSimpleStack(ModItems.itemFiber, 16) + )){ + Logger.INFO("Added a recipe for Fiber."); + } + + if (RecipeUtils.addShapelessGregtechRecipe( + new ItemStack[]{ + ItemUtils.getItemStackOfAmountFromOreDictNoBroken(CI.craftingToolKnife, 1), ItemUtils.getSimpleStack(Blocks.sapling)}, + ItemUtils.getSimpleStack(ModItems.itemFiber, 32) + )){ + Logger.INFO("Added a recipe for Fiber."); + } + + if (RecipeUtils.addShapedRecipe( + null, ItemUtils.getSimpleStack(ModItems.itemFiber, 1), null, + ItemUtils.getSimpleStack(ModItems.itemFiber, 1), CI.craftingToolKnife, ItemUtils.getSimpleStack(ModItems.itemFiber, 1), + null, ItemUtils.getSimpleStack(ModItems.itemFiber, 1), null, + ItemUtils.getSimpleStack(ModItems.itemRope, 3))){ + Logger.INFO("Added a recipe for Rope."); + } + + Logger.RECIPE("[Inspection] Net"); + if (RecipeUtils.addShapedRecipe( + ItemUtils.getSimpleStack(ModItems.itemRope, 1), ItemUtils.getSimpleStack(ModItems.itemRope, 1), ItemUtils.getSimpleStack(ModItems.itemRope, 1), + ItemUtils.getSimpleStack(ModItems.itemRope, 1), ItemUtils.getSimpleStack(ModItems.itemRope, 1), ItemUtils.getSimpleStack(ModItems.itemRope, 1), + null, null, null, + ItemUtils.getSimpleStack(ModBlocks.blockNet, 2))){ + Logger.INFO("Added a recipe for Nets."); + } + + // Slow Builders Ring + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { ItemUtils.getSimpleStack(Blocks.ice, 8), + ItemUtils.getSimpleStack(ModBlocks.blockNet, 8), ItemUtils.getSimpleStack(Blocks.vine, 8), + ALLOY.TUMBAGA.getRing(1), }, + FluidUtils.getWater(1000), // Fluid + ItemUtils.getItemStackFromFQRN("miscutils:SlowBuildingRing", 1), // Output + 20 * 30, // Dur + 16); // Eu + + // Pest Killer + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + CI.getNumberedCircuit(16), + CI.getTieredMachineCasing(1), + CI.getElectricPump(2, 1), + CI.getPlate(2, GTNH ? 4 : 2), + ItemUtils.getItemStackOfAmountFromOreDict(CI.getTieredCircuitOreDictName(0), GTNH ? 2 : 1), + }, + FluidUtils.getHotWater(500), // Fluid + ItemUtils.getSimpleStack(ModBlocks.blockPestKiller), // Output + 20 * 60, // Dur + 16); // Eu + + + + + } + + private static boolean addCompressedObsidian(){ + //Invert Obsidian + if (RecipeUtils.addShapedRecipe( + getSimpleStack(Items.redstone), getSimpleStack(Items.glowstone_dust), getSimpleStack(Items.redstone), + getSimpleStack(Items.glowstone_dust), ItemUtils.simpleMetaStack(ModBlocks.blockCompressedObsidian, 1, 1), getSimpleStack(Items.glowstone_dust), + getSimpleStack(Items.redstone), getSimpleStack(Items.glowstone_dust), getSimpleStack(Items.redstone), + ItemUtils.simpleMetaStack(ModBlocks.blockCompressedObsidian, 5, 1))){ + Logger.INFO("Added a recipe for Inverted Obsidian."); + } + + final ItemStack[] mItems = new ItemStack[6]; + mItems[0] = ItemUtils.getSimpleStack(Blocks.obsidian); + for (int r=0;r<5;r++){ + mItems[r+1] = ItemUtils.simpleMetaStack(ModBlocks.blockCompressedObsidian, r, 1); + } + + //Compressed Obsidian 1-5 + for (int r=0;r<5;r++){ + + final ItemStack input = mItems[r]; + final ItemStack output = mItems[r+1]; + + if (RecipeUtils.addShapedRecipe( + input, input, input, + input, input, input, + input, input, input, + output)){ + Logger.INFO("Added a recipe for Compressed Obsidian ["+r+"]"); + } + + if (RecipeUtils.addShapelessGregtechRecipe(new ItemStack[]{output}, ItemUtils.getSimpleStack(input, 9))){ + Logger.INFO("Added a shapeless recipe for Compressed Obsidian ["+r+"]"); + } + + } + return true; + } + + private static void migratedRecipes() { + + RecipeUtils.generateMortarRecipe(ItemUtils.getSimpleStack(ModItems.itemPlateRawMeat), ItemUtils.getItemStackOfAmountFromOreDict("dustMeatRaw", 1)); + + generateWireRecipes(ELEMENT.getInstance().ZIRCONIUM); + generateWireRecipes(ALLOY.HG1223); + generateWireRecipes(ALLOY.LEAGRISIUM); + generateWireRecipes(ALLOY.TRINIUM_TITANIUM); + + GT_Materials[] g = new GT_Materials[] { + GT_Materials.Staballoy, + GT_Materials.Tantalloy60, + GT_Materials.Tantalloy61, + GT_Materials.Void, + GT_Materials.Potin, + GT_Materials.MaragingSteel300, + GT_Materials.MaragingSteel350, + GT_Materials.Inconel690, + GT_Materials.Inconel792, + GT_Materials.HastelloyX, + GT_Materials.TriniumNaquadahCarbonite, + + }; + for (GT_Materials e : g) { + if (e == GT_Materials.Void) { + if (!LoadedMods.Thaumcraft) { + continue; + } + } + int tVoltageMultiplier = (e.mBlastFurnaceTemp >= 2800) ? 64 : 16; + generatePipeRecipes(e.mDefaultLocalName, e.getMass(), tVoltageMultiplier); + } + + Materials[] h = new Materials[] { + Materials.Europium, + Materials.Tungsten, + Materials.DarkSteel, + Materials.Clay, + Materials.Lead, + + }; + + for (Materials e : h) { + if (e == Materials.DarkSteel) { + if (!LoadedMods.EnderIO) { + continue; + } + } + int tVoltageMultiplier = (e.mBlastFurnaceTemp >= 2800) ? 64 : 16; + generatePipeRecipes(e.mDefaultLocalName, e.getMass(), tVoltageMultiplier); + } + + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[4], "rotorGtStainlessSteel", CI.component_Plate[4], + CI.getTieredCircuitOreDictName(3), CI.machineHull_HV, CI.getTieredCircuitOreDictName(3), + CI.component_Plate[4], CI.electricPump_HV, CI.component_Plate[4], + GregtechItemList.Hatch_Air_Intake.get(1L, new Object[0])); + + RecipeUtils.addShapedGregtechRecipe(CI.component_Plate[6], ALLOY.MARAGING250.getGear(1), CI.component_Plate[6], + CI.getTieredCircuitOreDictName(4), GregtechItemList.Casing_AdvancedVacuum.get(1), + CI.getTieredCircuitOreDictName(4), CI.component_Plate[5], ItemList.Hatch_Input_IV.get(1), + CI.component_Plate[5], GregtechItemList.Hatch_Input_Cryotheum.get(1L, new Object[0])); + + RecipeUtils.addShapedGregtechRecipe(CI.component_Plate[5], ALLOY.MARAGING300.getGear(1), CI.component_Plate[5], + CI.getTieredCircuitOreDictName(4), GregtechItemList.Casing_Adv_BlastFurnace.get(1), + CI.getTieredCircuitOreDictName(4), CI.component_Plate[6], ItemList.Hatch_Input_IV.get(1), + CI.component_Plate[6], GregtechItemList.Hatch_Input_Pyrotheum.get(1L, new Object[0])); + + RecipeUtils.addShapedGregtechRecipe(CI.component_Plate[8], ALLOY.PIKYONIUM.getGear(1), CI.component_Plate[9], + CI.getTieredCircuitOreDictName(7), GregtechItemList.Casing_Naq_Reactor_A.get(1), + CI.getTieredCircuitOreDictName(7), CI.component_Plate[9], ItemList.Hatch_Input_ZPM.get(1), + CI.component_Plate[8], GregtechItemList.Hatch_Input_Naquadah.get(1L, new Object[0])); + + + if (PollutionUtils.isPollutionEnabled()) { + GT_ModHandler.addCraftingRecipe(GregtechItemList.Hatch_Muffler_Adv_LV.get(1L, new Object[0]), bitsd, + new Object[] { "M", "P", Character.valueOf('M'), ItemList.Hatch_Muffler_LV.get(1), Character.valueOf('P'), + GregtechItemList.Pollution_Cleaner_LV.get(1) }); + GT_ModHandler.addCraftingRecipe(GregtechItemList.Hatch_Muffler_Adv_MV.get(1L, new Object[0]), bitsd, + new Object[] { "M", "P", Character.valueOf('M'), ItemList.Hatch_Muffler_MV.get(1), Character.valueOf('P'), + GregtechItemList.Pollution_Cleaner_MV.get(1) }); + GT_ModHandler.addCraftingRecipe(GregtechItemList.Hatch_Muffler_Adv_HV.get(1L, new Object[0]), bitsd, + new Object[] { "M", "P", Character.valueOf('M'), ItemList.Hatch_Muffler_HV.get(1), Character.valueOf('P'), + GregtechItemList.Pollution_Cleaner_HV.get(1) }); + GT_ModHandler.addCraftingRecipe(GregtechItemList.Hatch_Muffler_Adv_EV.get(1L, new Object[0]), bitsd, + new Object[] { "M", "P", Character.valueOf('M'), ItemList.Hatch_Muffler_EV.get(1), Character.valueOf('P'), + GregtechItemList.Pollution_Cleaner_EV.get(1) }); + GT_ModHandler.addCraftingRecipe(GregtechItemList.Hatch_Muffler_Adv_IV.get(1L, new Object[0]), bitsd, + new Object[] { "M", "P", Character.valueOf('M'), ItemList.Hatch_Muffler_IV.get(1), Character.valueOf('P'), + GregtechItemList.Pollution_Cleaner_IV.get(1) }); + GT_ModHandler.addCraftingRecipe(GregtechItemList.Hatch_Muffler_Adv_LuV.get(1L, new Object[0]), bitsd, + new Object[] { "M", "P", Character.valueOf('M'), ItemList.Hatch_Muffler_LuV.get(1), Character.valueOf('P'), + GregtechItemList.Pollution_Cleaner_LuV.get(1) }); + GT_ModHandler.addCraftingRecipe(GregtechItemList.Hatch_Muffler_Adv_ZPM.get(1L, new Object[0]), bitsd, + new Object[] { "M", "P", Character.valueOf('M'), ItemList.Hatch_Muffler_ZPM.get(1), Character.valueOf('P'), + GregtechItemList.Pollution_Cleaner_ZPM.get(1) }); + GT_ModHandler.addCraftingRecipe(GregtechItemList.Hatch_Muffler_Adv_UV.get(1L, new Object[0]), bitsd, + new Object[] { "M", "P", Character.valueOf('M'), ItemList.Hatch_Muffler_UV.get(1), Character.valueOf('P'), + GregtechItemList.Pollution_Cleaner_UV.get(1) }); + GT_ModHandler.addCraftingRecipe(GregtechItemList.Hatch_Muffler_Adv_MAX.get(1L, new Object[0]), bitsd, + new Object[] { "M", "P", Character.valueOf('M'), ItemList.Hatch_Muffler_MAX.get(1), Character.valueOf('P'), + GregtechItemList.Pollution_Cleaner_MAX.get(1) }); + } + + + + + + + + + + + } + + + + + + + + + +} + + diff --git a/src/main/java/gtPlusPlus/core/recipe/RECIPES_LaserEngraver.java b/src/main/java/gtPlusPlus/core/recipe/RECIPES_LaserEngraver.java new file mode 100644 index 0000000000..76182e61d9 --- /dev/null +++ b/src/main/java/gtPlusPlus/core/recipe/RECIPES_LaserEngraver.java @@ -0,0 +1,135 @@ +package gtPlusPlus.core.recipe; + +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.*; +import gregtech.api.interfaces.IOreRecipeRegistrator; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; + +import gtPlusPlus.api.objects.Logger; +import gtPlusPlus.core.item.ModItems; +import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.core.util.minecraft.ItemUtils; +import gtPlusPlus.everglades.dimension.Dimension_Everglades; +import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList; + +public class RECIPES_LaserEngraver implements IOreRecipeRegistrator { + public RECIPES_LaserEngraver() { + OrePrefixes.crafting.add(this); + } + + @Override + public void registerOre(final OrePrefixes aPrefix, final Materials aMaterial, final String aOreDictName, final String aModName, final ItemStack aStack) { + if (aOreDictName.equals(OreDictNames.craftingLensBlue.toString())) { + + if (CORE.ConfigSwitches.enableCustomCircuits && !CORE.GTNH){ + if (ItemUtils.getItemStackOfAmountFromOreDictNoBroken("foilYttriumBariumCuprate", 1) != null){ + GT_Values.RA.addLaserEngraverRecipe(GT_OreDictUnificator.get(OrePrefixes.foil, Materials.YttriumBariumCuprate, 2L), GT_Utility.copyAmount(0L, new Object[]{aStack}), GregtechItemList.Circuit_Parts_Wiring_IV.get(1L, new Object[0]), 64, 480); + } + else { + Logger.INFO("foilYttriumBariumCuprate does not exist within Gregtech, please report this issue to Blood-asp on github."); + Logger.INFO("This material item can be re-enabled within the gregtech configuration files, If you wish to fix this yourself."); + } + if (ItemUtils.getItemStackOfAmountFromOreDictNoBroken("foilVanadiumGallium", 1) != null){ + GT_Values.RA.addLaserEngraverRecipe(GT_OreDictUnificator.get(OrePrefixes.foil, Materials.VanadiumGallium, 2L), GT_Utility.copyAmount(0L, new Object[]{aStack}), GregtechItemList.Circuit_Parts_Wiring_IV.get(1L, new Object[0]), 64, 480); + } + else { + Logger.INFO("foilVanadiumGallium does not exist within Gregtech, please report this issue to Blood-asp on github."); + Logger.INFO("This material item can be re-enabled within the gregtech configuration files, If you wish to fix this yourself."); + } + if (ItemUtils.getItemStackOfAmountFromOreDictNoBroken("foilNiobiumTitanium", 1) != null){ + GT_Values.RA.addLaserEngraverRecipe(GT_OreDictUnificator.get(OrePrefixes.foil, Materials.NiobiumTitanium, 2L), GT_Utility.copyAmount(0L, new Object[]{aStack}), GregtechItemList.Circuit_Parts_Wiring_IV.get(1L, new Object[0]), 64, 480); + } + else { + Logger.INFO("foilNiobiumTitanium does not exist within Gregtech, please report this issue to Blood-asp on github."); + Logger.INFO("This material item can be re-enabled within the gregtech configuration files, If you wish to fix this yourself."); + } + } + + + } else if (aOreDictName.equals(OreDictNames.craftingLensYellow.toString())) { + if (CORE.ConfigSwitches.enableCustomCircuits && !CORE.GTNH){ + if (ItemUtils.getItemStackOfAmountFromOreDictNoBroken("foilOsmium", 1) != null){ + GT_Values.RA.addLaserEngraverRecipe(GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Osmium, 2L), GT_Utility.copyAmount(0L, new Object[]{aStack}), GregtechItemList.Circuit_Parts_Wiring_LuV.get(1L, new Object[0]), 64, 1024); + } + else { + Logger.INFO("foilOsmium does not exist within Gregtech, please report this issue to Blood-asp on github."); + Logger.INFO("This material item can be re-enabled within the gregtech configuration files, If you wish to fix this yourself."); + } + } + + } else if (aOreDictName.equals(OreDictNames.craftingLensCyan.toString())) { + } else if (aOreDictName.equals(OreDictNames.craftingLensRed.toString())) { + } else if (aOreDictName.equals(OreDictNames.craftingLensGreen.toString())) { + if (CORE.ConfigSwitches.enableCustomCircuits && !CORE.GTNH){ + if (ItemUtils.getItemStackOfAmountFromOreDictNoBroken("foilNaquadah", 1) != null){ + GT_Values.RA.addLaserEngraverRecipe(GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Naquadah, 2L), GT_Utility.copyAmount(0L, new Object[]{aStack}), GregtechItemList.Circuit_Parts_Wiring_ZPM.get(1L, new Object[0]), 64, 2000); + } + else { + Logger.INFO("foilNaquadah does not exist within Gregtech, please report this issue to Blood-asp on github."); + Logger.INFO("This material item can be re-enabled within the gregtech configuration files, If you wish to fix this yourself."); + } + } + } else if (aOreDictName.equals(OreDictNames.craftingLensWhite.toString())) { + if (ItemUtils.getItemStackOfAmountFromOreDictNoBroken("plateLithium", 1) != null){ + GT_Values.RA.addLaserEngraverRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Lithium, 2L), GT_Utility.copyAmount(0L, new Object[]{aStack}), ItemUtils.getItemStackOfAmountFromOreDict("plateDoubleLithium7", 1), 4*60*20, 2000); + } + else { + Logger.INFO("plateLithium does not exist within Gregtech, please report this issue to Blood-asp on github."); + Logger.INFO("This material item can be re-enabled within the gregtech configuration files, If you wish to fix this yourself."); + } + if (ItemUtils.getItemStackOfAmountFromOreDictNoBroken("dustLithium", 1) != null){ + GT_Values.RA.addLaserEngraverRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lithium, 3L), GT_Utility.copyAmount(0L, new Object[]{aStack}), ItemUtils.getItemStackOfAmountFromOreDict("dustLithium7", 1), 2*60*20, 2000); + } + else { + Logger.INFO("dustLithium does not exist within Gregtech, please report this issue to Blood-asp on github."); + Logger.INFO("This material item can be re-enabled within the gregtech configuration files, If you wish to fix this yourself."); + } + + } + + else if (aOreDictName.equals(OreDictNames.craftingLensLime.toString())) { + //Coil Wires + ItemStack coilWire1 = ItemUtils.getItemStackWithMeta(true, "miscutils:itemDehydratorCoilWire", "coilWire1", 0, 1); + ItemStack coilWire2 = ItemUtils.getItemStackWithMeta(true, "miscutils:itemDehydratorCoilWire:1", "coilWire2", 1, 1); + ItemStack coilWire3 = ItemUtils.getItemStackWithMeta(true, "miscutils:itemDehydratorCoilWire:2", "coilWire3", 2, 1); + ItemStack coilWire4 = ItemUtils.getItemStackWithMeta(true, "miscutils:itemDehydratorCoilWire:3", "coilWire4", 3, 1); + + //Simple Life + String wire = "wireGt02"; + + //Wires to Laser + ItemStack wireT1a = ItemUtils.getItemStackOfAmountFromOreDict(wire+"Aluminium", 1); + ItemStack wireT1b = ItemUtils.getItemStackOfAmountFromOreDict(wire+"Nichrome", 1); + ItemStack wireT2a = ItemUtils.getItemStackOfAmountFromOreDict(wire+"Osmium", 1); + ItemStack wireT2b = ItemUtils.getItemStackOfAmountFromOreDict(wire+"Platinum", 1); + ItemStack wireT3a = ItemUtils.getItemStackOfAmountFromOreDict(wire+"VanadiumGallium", 1); + ItemStack wireT3b = ItemUtils.getItemStackOfAmountFromOreDict(wire+"YttriumBariumCuprate", 1); + ItemStack wireT3c = ItemUtils.getItemStackOfAmountFromOreDict(wire+"NiobiumTitanium", 1); + ItemStack wireT4a = ItemUtils.getItemStackOfAmountFromOreDict(wire+"Naquadah", 1); + + //T1 + GT_Values.RA.addLaserEngraverRecipe(wireT1a, GT_Utility.copyAmount(0L, new Object[]{aStack}), coilWire1, 10*20, 500); + GT_Values.RA.addLaserEngraverRecipe(wireT1b, GT_Utility.copyAmount(0L, new Object[]{aStack}), coilWire1, 10*20, 500); + //T2 + GT_Values.RA.addLaserEngraverRecipe(wireT2a, GT_Utility.copyAmount(0L, new Object[]{aStack}), coilWire2, 20*20, 2000); + GT_Values.RA.addLaserEngraverRecipe(wireT2b, GT_Utility.copyAmount(0L, new Object[]{aStack}), coilWire2, 20*20, 2000); + //T3 + GT_Values.RA.addLaserEngraverRecipe(wireT3a, GT_Utility.copyAmount(0L, new Object[]{aStack}), coilWire3, 30*20, 8000); + GT_Values.RA.addLaserEngraverRecipe(wireT3b, GT_Utility.copyAmount(0L, new Object[]{aStack}), coilWire3, 30*20, 8000); + GT_Values.RA.addLaserEngraverRecipe(wireT3c, GT_Utility.copyAmount(0L, new Object[]{aStack}), coilWire3, 30*20, 8000); + //T4 + GT_Values.RA.addLaserEngraverRecipe(wireT4a, GT_Utility.copyAmount(0L, new Object[]{aStack}), coilWire4, 40*20, 32000); + + + } + + else if (aOreDictName.equals(OreDictNames.craftingLensOrange.toString())) { + GT_Values.RA.addLaserEngraverRecipe(ItemUtils.getSimpleStack(ModItems.itemAlkalusDisk), GT_Utility.copyAmount(0L, new Object[]{aStack}), ItemUtils.getSimpleStack(Dimension_Everglades.portalItem), 360*60*20, 4096); + } + + + + } +} diff --git a/src/main/java/gtPlusPlus/core/recipe/RECIPES_MTWRAPPER.java b/src/main/java/gtPlusPlus/core/recipe/RECIPES_MTWRAPPER.java new file mode 100644 index 0000000000..0d377f74de --- /dev/null +++ b/src/main/java/gtPlusPlus/core/recipe/RECIPES_MTWRAPPER.java @@ -0,0 +1,27 @@ +package gtPlusPlus.core.recipe; + +public class RECIPES_MTWRAPPER { + + public static int MT_RECIPES_LOADED = 0; + public static int MT_RECIPES_FAILED = 0; + + public static void run(){ + + } + + public static void addShaped(final Object item_Output, + final Object item_1, final Object item_2, final Object item_3, + final Object item_4, final Object item_5, final Object item_6, + final Object item_7, final Object item_8, final Object item_9){ + + + } + + public static void addShapeless(){ + + } + + + +} + diff --git a/src/main/java/gtPlusPlus/core/recipe/RECIPES_MachineComponents.java b/src/main/java/gtPlusPlus/core/recipe/RECIPES_MachineComponents.java new file mode 100644 index 0000000000..71b4c4ef48 --- /dev/null +++ b/src/main/java/gtPlusPlus/core/recipe/RECIPES_MachineComponents.java @@ -0,0 +1,410 @@ +package gtPlusPlus.core.recipe; + +import gregtech.api.enums.*; +import gregtech.api.util.GT_OreDictUnificator; + +import gtPlusPlus.api.objects.Logger; +import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.core.recipe.common.CI; +import gtPlusPlus.core.util.minecraft.RecipeUtils; +import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList; + +public class RECIPES_MachineComponents { + + //Wire + public static String wireTier0 = "wireGt01Lead"; + public static String wireTier1 = "wireGt01RedAlloy"; + public static String wireTier6 = "wireGt08NiobiumTitanium"; + public static String wireTier7 = "wireGt08Osmium"; + public static String wireTier8 = "wireGt08Naquadah"; + public static String wireTier9 = "wireGt08Superconductor"; + public static String wireTier10 = "wireGt16Superconductor"; + + //Cable + public static String cableTier0 = "cableGt01Lead"; + public static String cableTier1 = "cableGt01RedAlloy"; + public static String cableTier6 = "cableGt04Tungsten"; + public static String cableTier7 = "cableGt04NiobiumTitanium"; + public static String cableTier8 = "cableGt04Osmium"; + public static String cableTier9 = "cableGt04Naquadah"; + public static String cableTier10 = "wireGt08Superconductor"; + + //Plates + public static String plateTier0 = "plateWroughtIron"; + public static String plateTier7 = "plateChrome"; + public static String plateTier8 = "plateIridium"; + public static String plateTier9 = "plateOsmium"; + public static String plateTier10 = "plateNeutronium"; + + //rods + public static String rodTier0 = "stickWroughtIron"; + public static String rodTier1 = "stickPotin"; + public static String rodTier2 = "stickIronMagnetic"; + public static String rodTier7a = "stickChrome"; + public static String rodTier8a = "stickIridium"; + public static String rodTier9a = "stickOsmium"; + public static String rodTier10a = "stickNeutronium"; + public static String rodTier7b = "stickPlatinum"; + public static String rodTier8b = "stickChrome"; + public static String rodTier9b = "stickIridium"; + public static String rodTier10b = "stickOsmium"; + public static String rodTier7c = "stickTitanium"; + public static String rodTier8c = "stickTungstenSteel"; + public static String rodTier9c = "stickNaquadah"; + public static String rodTier10c = "stickOsmium"; + + //Screws + public static String screwTier0 = "screwPotin"; + public static String screwTier7 = "screwChrome"; + public static String screwTier8 = "screwIridium"; + public static String screwTier9 = "screwOsmium"; + public static String screwTier10 = "screwNeutronium"; + + //Rotors + public static String rotorTier0 = "rotorPotin"; + public static String rotorTier7 = "rotorChrome"; + public static String rotorTier8 = "rotorIridium"; + public static String rotorTier9 = "rotorOsmium"; + public static String rotorTier10 = "rotorNeutronium"; + + //Fluid Pipe + public static String pipeTier0 = "pipeSmallLead"; + public static String pipeTier7 = "pipeHugeSteel"; + public static String pipeTier8 = "pipeHugeStainlessSteel"; + public static String pipeTier9 = "pipeHugeTitanium"; + public static String pipeTier10 = "pipeHugeTungstenSteel"; + + //Rubber Ring/Plate + public static String itemRubberRing = "ringRubber"; + public static String plateRubber = "plateRubber"; + + //Circuits + public static String circuitTier0 = "circuitPrimitive"; + public static String circuitTier1 = "circuitBasic"; + public static String circuitTier6 = "circuitMaster"; + public static String circuitTier7 = "circuitUltimate"; + public static String circuitTier8 = "circuitSuperconductor"; + public static String circuitTier9 = "circuitInfinite"; + public static String circuitTier10 = "circuitQuantum"; + + //small gears + public static String smallGearTier0 = "gearGtSmallWroughtIron"; + public static String smallGearTier7 = "gearGtSmallChrome"; + public static String smallGearTier8 = "gearGtSmallIridium"; + public static String smallGearTier9 = "gearGtSmallOsmium"; + public static String smallGearTier10 = "gearGtSmallNeutronium"; + + public static final void loadRecipes(){ + Logger.INFO("Loading Recipes for the Various Circuits and Machine components."); + if (!CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK){ + run(); + } + else { + onlyULVComponents(); + if (!CORE.GTNH) { + onlyMaxComponents(); + } + } + gregtechMachinePhase(); + } + + private static void run(){ + //Electric Motors + RecipeUtils.addShapedGregtechRecipe( + cableTier7, wireTier7, rodTier7a, + wireTier7, rodTier7b, wireTier7, + rodTier7a, wireTier7, cableTier7, + CI.electricMotor_LuV); + RecipeUtils.addShapedGregtechRecipe( + cableTier8, wireTier8, rodTier8a, + wireTier8, rodTier8b, wireTier8, + rodTier8a, wireTier8, cableTier8, + CI.electricMotor_ZPM); + RecipeUtils.addShapedGregtechRecipe( + cableTier9, wireTier9, rodTier9a, + wireTier9, rodTier9b, wireTier9, + rodTier9a, wireTier9, cableTier9, + CI.electricMotor_UV); + RecipeUtils.addShapedGregtechRecipe( + cableTier10, wireTier10, rodTier10a, + wireTier10, rodTier10b, wireTier10, + rodTier10a, wireTier10, cableTier10, + CI.electricMotor_MAX); + + //Electric Pump + RecipeUtils.addShapedGregtechRecipe( + cableTier7, rotorTier7, itemRubberRing, + CI.craftingToolScrewdriver, pipeTier7, CI.craftingToolWrench, + itemRubberRing, CI.electricMotor_LuV, cableTier7, + CI.electricPump_LuV); + RecipeUtils.addShapedGregtechRecipe( + cableTier8, rotorTier8, itemRubberRing, + CI.craftingToolScrewdriver, pipeTier8, CI.craftingToolWrench, + itemRubberRing, CI.electricMotor_ZPM, cableTier8, + CI.electricPump_ZPM); + RecipeUtils.addShapedGregtechRecipe( + cableTier9, rotorTier9, itemRubberRing, + CI.craftingToolScrewdriver, pipeTier9, CI.craftingToolWrench, + itemRubberRing, CI.electricMotor_UV, cableTier9, + CI.electricPump_UV); + RecipeUtils.addShapedGregtechRecipe( + cableTier10, rotorTier10, itemRubberRing, + CI.craftingToolScrewdriver, pipeTier10, CI.craftingToolWrench, + itemRubberRing, CI.electricMotor_MAX, cableTier10, + CI.electricPump_MAX); + + //Electric Pump + RecipeUtils.addShapedGregtechRecipe( + plateTier7, plateTier7, plateTier7, + cableTier7, rodTier7a, rodTier7a, + cableTier7, CI.electricMotor_LuV, smallGearTier7, + CI.electricPiston_LuV); + RecipeUtils.addShapedGregtechRecipe( + plateTier8, plateTier8, plateTier8, + cableTier8, rodTier8a, rodTier8a, + cableTier8, CI.electricMotor_ZPM, smallGearTier8, + CI.electricPiston_ZPM); + RecipeUtils.addShapedGregtechRecipe( + plateTier9, plateTier9, plateTier9, + cableTier9, rodTier9a, rodTier9a, + cableTier9, CI.electricMotor_UV, smallGearTier9, + CI.electricPiston_UV); + RecipeUtils.addShapedGregtechRecipe( + plateTier10, plateTier10, plateTier10, + cableTier10, rodTier10a, rodTier10a, + cableTier10, CI.electricMotor_MAX, smallGearTier10, + CI.electricPiston_MAX); + + //Robot Arms + RecipeUtils.addShapedGregtechRecipe( + cableTier7, cableTier7, cableTier7, + CI.electricMotor_LuV, rodTier7a, CI.electricMotor_LuV, + CI.electricPiston_LuV, circuitTier7, rodTier7a, + CI.robotArm_LuV); + RecipeUtils.addShapedGregtechRecipe( + cableTier8, cableTier8, cableTier8, + CI.electricMotor_ZPM, rodTier8a, CI.electricMotor_ZPM, + CI.electricPiston_ZPM, circuitTier8, rodTier8a, + CI.robotArm_ZPM); + RecipeUtils.addShapedGregtechRecipe( + cableTier9, cableTier9, cableTier9, + CI.electricMotor_UV, rodTier9a, CI.electricMotor_UV, + CI.electricPiston_UV, circuitTier9, rodTier9a, + CI.robotArm_UV); + RecipeUtils.addShapedGregtechRecipe( + cableTier10, cableTier10, cableTier10, + CI.electricMotor_MAX, rodTier10a, CI.electricMotor_MAX, + CI.electricPiston_MAX, circuitTier10, rodTier10a, + CI.robotArm_MAX); + + //Conveyor Modules + RecipeUtils.addShapedGregtechRecipe( + plateRubber, plateRubber, plateRubber, + CI.electricMotor_LuV, cableTier7, CI.electricMotor_LuV, + plateRubber, plateRubber, plateRubber, + CI.conveyorModule_LuV); + RecipeUtils.addShapedGregtechRecipe( + plateRubber, plateRubber, plateRubber, + CI.electricMotor_ZPM, cableTier8, CI.electricMotor_ZPM, + plateRubber, plateRubber, plateRubber, + CI.conveyorModule_ZPM); + RecipeUtils.addShapedGregtechRecipe( + plateRubber, plateRubber, plateRubber, + CI.electricMotor_UV, cableTier9, CI.electricMotor_UV, + plateRubber, plateRubber, plateRubber, + CI.conveyorModule_UV); + RecipeUtils.addShapedGregtechRecipe( + plateRubber, plateRubber, plateRubber, + CI.electricMotor_MAX, cableTier10, CI.electricMotor_MAX, + plateRubber, plateRubber, plateRubber, + CI.conveyorModule_MAX); + + //Emitter Modules + RecipeUtils.addShapedGregtechRecipe( + rodTier7c, rodTier7c, circuitTier7, + cableTier7, circuitTier6, rodTier7c, + circuitTier7, cableTier7, rodTier7c, + CI.emitter_LuV); + RecipeUtils.addShapedGregtechRecipe( + rodTier8c, rodTier8c, circuitTier8, + cableTier8, circuitTier7, rodTier8c, + circuitTier8, cableTier8, rodTier8c, + CI.emitter_ZPM); + RecipeUtils.addShapedGregtechRecipe( + rodTier9c, rodTier9c, circuitTier9, + cableTier9, circuitTier8, rodTier9c, + circuitTier9, cableTier9, rodTier9c, + CI.emitter_UV); + RecipeUtils.addShapedGregtechRecipe( + rodTier10c, rodTier10c, circuitTier10, + cableTier10, circuitTier9, rodTier10c, + circuitTier10, cableTier10, rodTier10c, + CI.emitter_MAX); + + //Field Generator Modules + RecipeUtils.addShapedGregtechRecipe( + wireTier7, circuitTier7, wireTier7, + circuitTier7, circuitTier6, circuitTier7, + wireTier7, circuitTier7, wireTier7, + CI.fieldGenerator_LuV); + RecipeUtils.addShapedGregtechRecipe( + wireTier8, circuitTier8, wireTier8, + circuitTier8, circuitTier7, circuitTier8, + wireTier8, circuitTier8, wireTier8, + CI.fieldGenerator_ZPM); + RecipeUtils.addShapedGregtechRecipe( + wireTier9, circuitTier9, wireTier9, + circuitTier9, circuitTier8, circuitTier9, + wireTier9, circuitTier9, wireTier9, + CI.fieldGenerator_UV); + RecipeUtils.addShapedGregtechRecipe( + wireTier10, circuitTier10, wireTier10, + circuitTier10, circuitTier9, circuitTier10, + wireTier10, circuitTier10, wireTier10, + CI.fieldGenerator_MAX); + + //Sensor Modules + RecipeUtils.addShapedRecipe( + plateTier7, null, circuitTier6, + plateTier7, rodTier7c, null, + circuitTier7, plateTier7, plateTier7, + CI.sensor_LuV); + RecipeUtils.addShapedRecipe( + plateTier8, null, circuitTier7, + plateTier8, rodTier8c, null, + circuitTier8, plateTier8, plateTier8, + CI.sensor_ZPM); + RecipeUtils.addShapedRecipe( + plateTier9, null, circuitTier8, + plateTier9, rodTier9c, null, + circuitTier9, plateTier9, plateTier9, + CI.sensor_UV); + RecipeUtils.addShapedRecipe( + plateTier10, null, circuitTier9, + plateTier10, rodTier10c, null, + circuitTier10, plateTier10, plateTier10, + CI.sensor_MAX); + + onlyULVComponents(); + + Logger.INFO("Done loading recipes for the Various machine components."); + + } + + private static void onlyULVComponents(){ + RecipeUtils.addShapedGregtechRecipe( + cableTier1, wireTier0, rodTier0, + wireTier0, rodTier2, wireTier0, + rodTier0, wireTier0, cableTier1, + CI.electricMotor_ULV); + + RecipeUtils.addShapedGregtechRecipe( + cableTier0, rotorTier0, itemRubberRing, + CI.craftingToolScrewdriver, pipeTier0, CI.craftingToolWrench, + itemRubberRing, CI.electricMotor_ULV, cableTier0, + CI.electricPump_ULV); + + RecipeUtils.addShapedGregtechRecipe( + plateTier0, plateTier0, plateTier0, + cableTier0, rodTier1, rodTier1, + cableTier0, CI.electricMotor_ULV, smallGearTier0, + CI.electricPiston_ULV); + + RecipeUtils.addShapedGregtechRecipe( + cableTier0, cableTier0, cableTier0, + CI.electricMotor_ULV, rodTier1, CI.electricMotor_ULV, + CI.electricPiston_ULV, circuitTier0, rodTier1, + CI.robotArm_ULV); + + RecipeUtils.addShapedGregtechRecipe( + plateRubber, plateRubber, plateRubber, + CI.electricMotor_ULV, cableTier0, CI.electricMotor_ULV, + plateRubber, plateRubber, plateRubber, + CI.conveyorModule_ULV); + + RecipeUtils.addShapedGregtechRecipe( + rodTier2, rodTier2, circuitTier0, + cableTier0, circuitTier1, rodTier2, + circuitTier0, cableTier0, rodTier2, + CI.emitter_ULV); + + RecipeUtils.addShapedGregtechRecipe( + wireTier0, circuitTier0, wireTier0, + circuitTier0, circuitTier1, circuitTier0, + wireTier0, circuitTier0, wireTier0, + CI.fieldGenerator_ULV); + + RecipeUtils.addShapedRecipe( + plateTier0, null, circuitTier1, + plateTier0, rodTier2, null, + circuitTier0, plateTier0, plateTier0, + CI.sensor_ULV); + } + + private static void onlyMaxComponents(){ + RecipeUtils.addShapedGregtechRecipe( + cableTier10, wireTier10, rodTier10a, + wireTier10, rodTier10b, wireTier10, + rodTier10a, wireTier10, cableTier10, + CI.electricMotor_MAX); + RecipeUtils.addShapedGregtechRecipe( + cableTier10, rotorTier10, itemRubberRing, + CI.craftingToolScrewdriver, pipeTier10, CI.craftingToolWrench, + itemRubberRing, CI.electricMotor_MAX, cableTier10, + CI.electricPump_MAX); + RecipeUtils.addShapedGregtechRecipe( + plateTier10, plateTier10, plateTier10, + cableTier10, rodTier10a, rodTier10a, + cableTier10, CI.electricMotor_MAX, smallGearTier10, + CI.electricPiston_MAX); + RecipeUtils.addShapedGregtechRecipe( + cableTier10, cableTier10, cableTier10, + CI.electricMotor_MAX, rodTier10a, CI.electricMotor_MAX, + CI.electricPiston_MAX, circuitTier10, rodTier10a, + CI.robotArm_MAX); + RecipeUtils.addShapedGregtechRecipe( + plateRubber, plateRubber, plateRubber, + CI.electricMotor_MAX, cableTier10, CI.electricMotor_MAX, + plateRubber, plateRubber, plateRubber, + CI.conveyorModule_MAX); + RecipeUtils.addShapedGregtechRecipe( + rodTier10c, rodTier10c, circuitTier10, + cableTier10, circuitTier9, rodTier10c, + circuitTier10, cableTier10, rodTier10c, + CI.emitter_MAX); + RecipeUtils.addShapedGregtechRecipe( + wireTier10, circuitTier10, wireTier10, + circuitTier10, circuitTier9, circuitTier10, + wireTier10, circuitTier10, wireTier10, + CI.fieldGenerator_MAX); + RecipeUtils.addShapedRecipe( + plateTier10, null, circuitTier9, + plateTier10, rodTier10c, null, + circuitTier10, plateTier10, plateTier10, + CI.sensor_MAX); + } + + private static void gregtechMachinePhase(){ + if (CORE.ConfigSwitches.enableCustomCircuits && !CORE.GTNH){ + Logger.INFO("Adding Gregtech machine recipes for the circuits."); + GT_Values.RA.addFormingPressRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Silicon, 1L), GregtechItemList.Circuit_Parts_Wiring_IV.get(4L, new Object[0]), GregtechItemList.Circuit_Board_IV.get(1L, new Object[0]), 30, 240); + GT_Values.RA.addFormingPressRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Silicon, 1L), GregtechItemList.Circuit_Parts_Wiring_LuV.get(4L, new Object[0]), GregtechItemList.Circuit_Board_LuV.get(1L, new Object[0]), 60, 480); + GT_Values.RA.addFormingPressRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Silicon, 2L), GregtechItemList.Circuit_Parts_Wiring_ZPM.get(4L, new Object[0]), GregtechItemList.Circuit_Board_ZPM.get(1L, new Object[0]), 90, 1000); + GT_Values.RA.addFormingPressRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Lazurite, 1L), GregtechItemList.Circuit_Parts_Crystal_Chip_IV.get(3L, new Object[0]), GregtechItemList.Circuit_Parts_IV.get(1L, new Object[0]), 30, 480); + GT_Values.RA.addFormingPressRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Lazurite, 1L), GregtechItemList.Circuit_Parts_Crystal_Chip_LuV.get(3L, new Object[0]), GregtechItemList.Circuit_Parts_LuV.get(1L, new Object[0]), 60, 1000); + GT_Values.RA.addFormingPressRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Lazurite, 1L), GregtechItemList.Circuit_Parts_Crystal_Chip_ZPM.get(3L, new Object[0]), GregtechItemList.Circuit_Parts_ZPM.get(1L, new Object[0]), 90, 2000); + GT_Values.RA.addForgeHammerRecipe(ItemList.Circuit_Master.get(1L, new Object[0]), GregtechItemList.Circuit_Parts_Crystal_Chip_IV.get(5L, new Object[0]), 30, 256); + GT_Values.RA.addForgeHammerRecipe(GregtechItemList.Circuit_IV.get(1L, new Object[0]), GregtechItemList.Circuit_Parts_Crystal_Chip_LuV.get(5L, new Object[0]), 60, 512); + GT_Values.RA.addForgeHammerRecipe(GregtechItemList.Circuit_LuV.get(1L, new Object[0]), GregtechItemList.Circuit_Parts_Crystal_Chip_ZPM.get(5L, new Object[0]), 120, 1024); + for (final Materials tMat : Materials.values()) { + if ((tMat.mStandardMoltenFluid != null) && (tMat.contains(SubTag.SOLDERING_MATERIAL))) { + final int tMultiplier = tMat.contains(SubTag.SOLDERING_MATERIAL_GOOD) ? 1 : tMat.contains(SubTag.SOLDERING_MATERIAL_BAD) ? 4 : 2; + GT_Values.RA.addAssemblerRecipe(GregtechItemList.Circuit_Board_IV.get(1L, new Object[0]), GregtechItemList.Circuit_Parts_IV.get(1L, new Object[0]), tMat.getMolten((144L * tMultiplier) / 4L), GregtechItemList.Circuit_IV.get(1L, new Object[0]), 30, 480); + GT_Values.RA.addAssemblerRecipe(GregtechItemList.Circuit_Board_LuV.get(1L, new Object[0]), GregtechItemList.Circuit_Parts_LuV.get(1L, new Object[0]), tMat.getMolten((144L * tMultiplier) / 4L), GregtechItemList.Circuit_LuV.get(1L, new Object[0]), 60, 1000); + GT_Values.RA.addAssemblerRecipe(GregtechItemList.Circuit_Board_ZPM.get(1L, new Object[0]), GregtechItemList.Circuit_Parts_ZPM.get(1L, new Object[0]), tMat.getMolten((144L * tMultiplier) / 4L), GregtechItemList.Circuit_ZPM.get(1L, new Object[0]), 90, 2000); + + } + } + } + } +} diff --git a/src/main/java/gtPlusPlus/core/recipe/RECIPES_Machines.java b/src/main/java/gtPlusPlus/core/recipe/RECIPES_Machines.java new file mode 100644 index 0000000000..14001d86bd --- /dev/null +++ b/src/main/java/gtPlusPlus/core/recipe/RECIPES_Machines.java @@ -0,0 +1,2926 @@ +package gtPlusPlus.core.recipe; + +import static gtPlusPlus.core.lib.CORE.GTNH; + +import cpw.mods.fml.common.Loader; +import gregtech.api.GregTech_API; +import gregtech.api.enums.*; +import gregtech.api.util.GT_ModHandler; +import gtPlusPlus.api.objects.Logger; +import gtPlusPlus.core.block.ModBlocks; +import gtPlusPlus.core.item.ModItems; +import gtPlusPlus.core.item.chemistry.AgriculturalChem; +import gtPlusPlus.core.item.crafting.ItemDummyResearch; +import gtPlusPlus.core.item.crafting.ItemDummyResearch.ASSEMBLY_LINE_RESEARCH; +import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.core.lib.LoadedMods; +import gtPlusPlus.core.material.ALLOY; +import gtPlusPlus.core.material.ELEMENT; +import gtPlusPlus.core.material.Material; +import gtPlusPlus.core.recipe.common.CI; +import gtPlusPlus.core.util.minecraft.*; +import gtPlusPlus.core.util.minecraft.gregtech.PollutionUtils; +import gtPlusPlus.core.util.reflect.ReflectionUtils; +import gtPlusPlus.everglades.dimension.Dimension_Everglades; +import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList; +import gtPlusPlus.xmod.gregtech.common.Meta_GT_Proxy; +import gtPlusPlus.xmod.gregtech.common.covers.CoverManager; +import gtPlusPlus.xmod.gregtech.common.helpers.VolumetricFlaskHelper; +import gtPlusPlus.xmod.gregtech.common.items.MetaCustomCoverItem; +import net.minecraft.block.Block; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidStack; + +public class RECIPES_Machines { + + //Outputs + //static ItemStack RECIPE_BufferCore_ULV = new ItemStack(GregtechEnergyBuffer.itemBufferCore); + public static ItemStack RECIPE_SteamCondenser; + public static ItemStack RECIPE_IronBlastFurnace; + public static ItemStack RECIPE_IronPlatedBricks; + public static ItemStack RECIPE_Buffer_ULV = GregtechItemList.Energy_Buffer_1by1_ULV.get(1); + public static ItemStack RECIPE_Buffer_LV = GregtechItemList.Energy_Buffer_1by1_LV.get(1); + public static ItemStack RECIPE_Buffer_MV = GregtechItemList.Energy_Buffer_1by1_MV.get(1); + public static ItemStack RECIPE_Buffer_HV = GregtechItemList.Energy_Buffer_1by1_HV.get(1); + public static ItemStack RECIPE_Buffer_EV = GregtechItemList.Energy_Buffer_1by1_EV.get(1); + public static ItemStack RECIPE_Buffer_IV = GregtechItemList.Energy_Buffer_1by1_IV.get(1); + public static ItemStack RECIPE_Buffer_LuV = GregtechItemList.Energy_Buffer_1by1_LuV.get(1); + public static ItemStack RECIPE_Buffer_ZPM = GregtechItemList.Energy_Buffer_1by1_ZPM.get(1); + public static ItemStack RECIPE_Buffer_UV = GregtechItemList.Energy_Buffer_1by1_UV.get(1); + public static ItemStack RECIPE_Buffer_MAX = GregtechItemList.Energy_Buffer_1by1_MAX.get(1); + //Industrial Centrifuge + public static ItemStack RECIPE_IndustrialCentrifugeController; + public static ItemStack RECIPE_IndustrialCentrifugeCasing; + //Industrial Coke Oven + public static ItemStack RECIPE_IndustrialCokeOvenController; + public static ItemStack RECIPE_IndustrialCokeOvenFrame; + public static ItemStack RECIPE_IndustrialCokeOvenCasingA; + public static ItemStack RECIPE_IndustrialCokeOvenCasingB; + //Industrial Electrolyzer + public static ItemStack RECIPE_IndustrialElectrolyzerController; + public static ItemStack RECIPE_IndustrialElectrolyzerFrame; + //Industrial Material Press + public static ItemStack RECIPE_IndustrialMaterialPressController; + public static ItemStack RECIPE_IndustrialMaterialPressFrame; + //Industrial Maceration Stack + public static ItemStack RECIPE_IndustrialMacerationStackController; + public static ItemStack RECIPE_IndustrialMacerationStackFrame; + //Industrial Wire Factory + public static ItemStack RECIPE_IndustrialWireFactoryController; + public static ItemStack RECIPE_IndustrialWireFactoryFrame; + //Industrial Multi Tank + public static ItemStack RECIPE_IndustrialMultiTankController; + public static ItemStack RECIPE_IndustrialMultiTankFrame; + //Industrial Matter Fabricator + public static ItemStack RECIPE_IndustrialMatterFabController; + public static ItemStack RECIPE_IndustrialMatterFabFrame; + public static ItemStack RECIPE_IndustrialMatterFabCoil; + //Industrial Blast Smelter + public static ItemStack RECIPE_IndustrialBlastSmelterController; + public static ItemStack RECIPE_IndustrialBlastSmelterFrame; + public static ItemStack RECIPE_IndustrialBlastSmelterCoil; + //Industrial Sieve + public static ItemStack RECIPE_IndustrialSieveController; + public static ItemStack RECIPE_IndustrialSieveFrame; + public static ItemStack RECIPE_IndustrialSieveGrate; + //Industrial Tree Farmer + public static ItemStack RECIPE_TreeFarmController; + public static ItemStack RECIPE_TreeFarmFrame; + //Tesseracts + public static ItemStack RECIPE_TesseractGenerator; + public static ItemStack RECIPE_TesseractTerminal; + //Thermal Boiler + public static ItemStack RECIPE_ThermalBoilerController; + public static ItemStack RECIPE_ThermalBoilerCasing; + + //Thorium Reactor + public static ItemStack RECIPE_LFTRController; + public static ItemStack RECIPE_LFTROuterCasing; + public static ItemStack RECIPE_LFTRInnerCasing; + + //Milling + public static ItemStack RECIPE_ISAMill_Controller; + public static ItemStack RECIPE_ISAMill_Gearbox; + public static ItemStack RECIPE_ISAMill_Casing; + public static ItemStack RECIPE_ISAMill_Hatch; + public static ItemStack RECIPE_Flotation_Controller; + public static ItemStack RECIPE_Flotation_Casing; + + //Cyclotron + public static ItemStack RECIPE_CyclotronController; + public static ItemStack RECIPE_CyclotronOuterCasing; + public static ItemStack RECIPE_CyclotronInnerCoil; + + + //Buffer Cores + public static ItemStack RECIPE_BufferCore_ULV = ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore1", 1); + public static ItemStack RECIPE_BufferCore_LV = ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore2", 1); + public static ItemStack RECIPE_BufferCore_MV = ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore3", 1); + public static ItemStack RECIPE_BufferCore_HV = ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore4", 1); + public static ItemStack RECIPE_BufferCore_EV = ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore5", 1); + public static ItemStack RECIPE_BufferCore_IV = ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore6", 1); + public static ItemStack RECIPE_BufferCore_LuV = ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore7", 1); + public static ItemStack RECIPE_BufferCore_ZPM = ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore8", 1); + public static ItemStack RECIPE_BufferCore_UV = ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore9", 1); + public static ItemStack RECIPE_BufferCore_MAX = ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore10", 1); + + + //Wire + public static String wireTier1 = "wireGt08Lead"; + public static String wireTier2 = "wireGt08Tin"; + public static String wireTier3 = "wireGt08Copper"; + public static String wireTier4 = "wireGt08Gold"; + public static String wireTier5 = "wireGt08Aluminium"; + public static String wireTier6 = "wireGt08Tungsten"; + public static String wireTier7 = "wireGt08Naquadah"; + public static String wireTier8 = "wireGt08Osmium"; + public static String wireTier9 = "wireGt08Superconductor"; + public static String wireTier10 = "wireGt16Superconductor"; + + //Wire + public static String cableTier1 = "cableGt04Lead"; + public static String cableTier2 = "cableGt04Tin"; + public static String cableTier3 = "cableGt04Copper"; + public static String cableTier4 = "cableGt04Gold"; + public static String cableTier5 = "cableGt04Aluminium"; + public static String cableTier6 = "cableGt04Tungsten"; + public static String cableTier7 = "cableGt04Naquadah"; + public static String cableTier8 = "cableGt04Osmium"; + public static String cableTier9 = "cableGt04NiobiumTitanium"; + public static String cableTier10 = "cableGt08NiobiumTitanium"; + + public static String pipeTier1 = "pipeHuge"+"Clay"; + public static String pipeTier2 = "pipeHuge"+"Potin"; + public static String pipeTier3 = "pipeHuge"+"Steel"; + public static String pipeTier4 = "pipeHuge"+"StainlessSteel"; + public static String pipeTier5 = "pipeHuge"+"TungstenSteel"; + public static String pipeTier6 = "pipeHuge"+"MaragingSteel300"; + public static String pipeTier7 = "pipeHuge"+"Tantalloy60"; + public static String pipeTier8 = "pipeHuge"+"Tantalloy61"; + public static String pipeTier9 = "pipeHuge"+"Inconel792"; + public static String pipeTier10 = "pipeHuge"+"HastelloyX"; + public static String pipeTier11 = "pipeHuge"+"Europium"; + + // EV/IV MACHINES + public static ItemStack EV_MACHINE_Electrolyzer; + public static ItemStack EV_MACHINE_Centrifuge; + public static ItemStack EV_MACHINE_BendingMachine; + public static ItemStack EV_MACHINE_Wiremill; + public static ItemStack HV_MACHINE_Macerator; + public static ItemStack EV_MACHINE_Macerator; + public static ItemStack EV_MACHINE_Cutter; + public static ItemStack EV_MACHINE_MassFabricator; + public static ItemStack EV_MACHINE_Extruder; + public static ItemStack EV_MACHINE_Sifter; + public static ItemStack EV_MACHINE_ThermalCentrifuge; + public static ItemStack EV_MACHINE_OreWasher; + public static ItemStack EV_MACHINE_AlloySmelter; + public static ItemStack EV_MACHINE_Mixer; + + + //Cables + public static String cableGt02Electrum = "cableGt02Electrum"; + + + //Plates + public static String plateElectricalSteel= "plateElectricalSteel"; + public static String plateEnergeticAlloy= "plateEnergeticAlloy"; + public static String plateCobalt = "plateCobalt"; + public static String plateBronze = "plateBronze"; + public static String plateSteel = "plateSteel"; + + //Pipes + public static String pipeLargeCopper="pipeLargeCopper"; + public static String pipeHugeSteel="pipeHugeSteel"; + public static String pipeHugeStainlessSteel="pipeHugeStainlessSteel"; + public static String pipeHugeTitanium="pipeHugeTitanium"; + + //Lava Boiler + public static ItemStack boiler_Coal; + public static ItemStack blockBricks = ItemUtils.getItemStackFromFQRN("minecraft:brick_block", 1); + + //Batteries + public static String batteryBasic = "batteryBasic"; + public static String batteryAdvanced = "batteryAdvanced"; + public static String batteryElite = "batteryElite"; + public static String batteryMaster = "batteryMaster"; + public static String batteryUltimate = "batteryUltimate"; + public static ItemStack IC2MFE; + public static ItemStack IC2MFSU; + + //Misc + public static ItemStack INPUT_RCCokeOvenBlock; + public static ItemStack INPUT_IECokeOvenBlock; + + //Output Determiner + public static int Casing_Amount; + + + + public static final void loadRecipes(){ + run(); + Logger.INFO("Loading Recipes for the Various machine blocks."); + } + + private static void run(){ + + //Determines Casing Recipe Output + if (CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK && !GTNH){ + Casing_Amount=2; + } + else { + Casing_Amount=1; + } + + initModItems(); + tieredMachineHulls(); + controlCores(); + energyCores(); + wirelessChargers(); + largeArcFurnace(); + industrialVacuumFurnace(); + fakeMachineCasingCovers(); + ztonesCoverRecipes(); + overflowValveCovers(); + superBuses(); + roundRobinators(); + chunkloaders(); + distillus(); + algaeFarm(); + chemPlant(); + zyngen(); + milling(); + sparging(); + + } + + private static void zyngen() { + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + CI.getNumberedAdvancedCircuit(6), + CI.getTieredMachineHull(4), + ItemList.Machine_EV_AlloySmelter.get(1), + CI.getGear(3, 16), + CI.getBolt(3, 64), + CI.getPlate(4, 16) + }, + CI.getAlternativeTieredFluid(4, 144 * 8), + GregtechItemList.Industrial_AlloySmelter.get(1), + 20 * 30, + MaterialUtils.getVoltageForTier(4)); + + } + + private static void chemPlant() { + + + GT_ModHandler.addCraftingRecipe( + GregtechItemList.Casing_Machine_Custom_1.get(2L, new Object[0]), + CI.bits, + new Object[]{ + "PhP", + "PFP", + "PwP", + 'P', + OrePrefixes.plate.get(Materials.Bronze), + 'F', + OrePrefixes.frameGt.get(Materials.Bronze) + } + ); + + GT_ModHandler.addCraftingRecipe( + GregtechItemList.Casing_Machine_Custom_2.get(2L, new Object[0]), + CI.bits, + new Object[]{ + "PhP", + "PFP", + "PwP", + 'P', + OrePrefixes.plate.get(Materials.Aluminium), + 'F', + OrePrefixes.frameGt.get(Materials.Aluminium) + } + ); + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + CI.getNumberedBioCircuit(19), + CI.getTieredGTPPMachineCasing(1, 6), + CI.getTieredComponentOfMaterial(Materials.Steel, OrePrefixes.gearGt, 6), + CI.getTieredComponentOfMaterial(Materials.Aluminium, OrePrefixes.plate, 32), + CI.getTieredComponentOfMaterial(Materials.CobaltBrass, OrePrefixes.dust, 16), + CI.getTieredComponent(OrePrefixes.frameGt, 2, 4), + }, + ALLOY.STEEL.getFluidStack(2 * (144 * 4)), + GregtechItemList.ChemicalPlant_Controller.get(1), + 120 * 20, + MaterialUtils.getVoltageForTier(2)); + + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + CI.getNumberedBioCircuit(15), + CI.getTieredGTPPMachineCasing(1, 2), + ItemList.Hatch_Input_Bus_MV.get(1), + CI.getTieredComponentOfMaterial(Materials.Bronze, OrePrefixes.gearGt, 8), + CI.getTieredComponentOfMaterial(Materials.Lead, OrePrefixes.plate, 48), + CI.getTieredComponentOfMaterial(Materials.SolderingAlloy, OrePrefixes.wireFine, 16), + }, + ALLOY.BRONZE.getFluidStack(2 * (144 * 4)), + GregtechItemList.Bus_Catalysts.get(1), + 60 * 20, + MaterialUtils.getVoltageForTier(2)); + + } + + private static void algaeFarm() { + + // Give the shitty algae a use :) + CORE.RA.addDistilleryRecipe( + ItemUtils.getSimpleStack(AgriculturalChem.mAlgaeBiosmass, 32), + null, + null, + ItemUtils.getSimpleStack(AgriculturalChem.mGreenAlgaeBiosmass, 4), + 20 * 15, + 16, + false); + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + CI.getNumberedBioCircuit(21), + CI.getTieredGTPPMachineCasing(0, 4), + CI.getTieredComponentOfMaterial(Materials.Iron, OrePrefixes.rod, 12), + CI.getTieredComponentOfMaterial(Materials.Wood, OrePrefixes.plate, 32), + CI.getTieredComponentOfMaterial(Materials.Bronze, OrePrefixes.bolt, 16), + CI.getTieredComponentOfMaterial(Materials.Redstone, OrePrefixes.dust, 32), + }, + ALLOY.POTIN.getFluidStack(2 * (144 * 4)), + GregtechItemList.AlgaeFarm_Controller.get(1), + 60 * 20, + MaterialUtils.getVoltageForTier(1)); + + + } + + private static void distillus() { + + CORE.RA.addChemicalPlantRecipe( + new ItemStack[] { + CI.getNumberedAdvancedCircuit(19), + ItemList.Distillation_Tower.get(2), + GregtechItemList.GTPP_Casing_IV.get(16), + CI.getTieredComponent(OrePrefixes.circuit, 6, 8) + }, + new FluidStack[] { + ALLOY.AQUATIC_STEEL.getFluidStack(144 * 32), + ALLOY.BABBIT_ALLOY.getFluidStack(144 * 16), + ALLOY.BRONZE.getFluidStack(144 * 64), + ALLOY.KANTHAL.getFluidStack(144 * 16), + }, + new ItemStack[] { + GregtechItemList.Machine_Adv_DistillationTower.get(1) + }, + new FluidStack[] { + + }, + 20 * 600, + MaterialUtils.getVoltageForTier(6), + 5); + + } + + private static void chunkloaders() { + + ItemStack aOutputs[] = new ItemStack[] { + GregtechItemList.GT_Chunkloader_HV.get(1L), + GregtechItemList.GT_Chunkloader_IV.get(1L), + GregtechItemList.GT_Chunkloader_ZPM.get(1L), + }; + + int aIndex = 0; + + for (int i=3;i<8;i++) { + if (i == 4 || i == 6) { + continue; + } + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + CI.getNumberedAdvancedCircuit(21), + CI.getElectricPiston(i, 10), + CI.getFieldGenerator(i + 1, 6), + CI.getPlate(i, 16), + CI.getTransmissionComponent(i - 1, 8), + CI.getTieredComponent(OrePrefixes.cableGt08, i, 16) + }, + ALLOY.EGLIN_STEEL.getFluidStack(i * (144 * 4)), + aOutputs[aIndex++].copy(), + 300 * 20, + MaterialUtils.getVoltageForTier(i)); + } + + + } + + private static void overflowValveCovers() { + ItemStack aOutputs[] = new ItemStack[] { + GregtechItemList.Cover_Overflow_ULV.get(1L), + GregtechItemList.Cover_Overflow_LV.get(1L), + GregtechItemList.Cover_Overflow_MV.get(1L), + GregtechItemList.Cover_Overflow_HV.get(1L), + GregtechItemList.Cover_Overflow_EV.get(1L), + GregtechItemList.Cover_Overflow_IV.get(1L), + }; + + for (int i=0;i<6;i++) { + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + CI.getNumberedBioCircuit(19), + CI.getElectricPump(i, 2), + CI.getElectricMotor(i, 2), + CI.getPlate(i, 4) + }, + FluidUtils.getWater((i+1) * 750), + aOutputs[i].copy(), + 20 * 20, + MaterialUtils.getVoltageForTier(i)); + } + + } + + private static void tieredMachineHulls() { + + GregtechItemList[] aHulls = new GregtechItemList[] { + GregtechItemList.GTPP_Casing_ULV, + GregtechItemList.GTPP_Casing_LV, + GregtechItemList.GTPP_Casing_MV, + GregtechItemList.GTPP_Casing_HV, + GregtechItemList.GTPP_Casing_EV, + GregtechItemList.GTPP_Casing_IV, + GregtechItemList.GTPP_Casing_LuV, + GregtechItemList.GTPP_Casing_ZPM, + GregtechItemList.GTPP_Casing_UV, + GregtechItemList.GTPP_Casing_MAX + }; + + for (int i=0;i<10;i++) { + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + CI.getNumberedBioCircuit(20), + CI.getTieredMachineCasing(i), + CI.getPlate(i, 8), + CI.getGear(i, 2), + CI.getTieredComponent(OrePrefixes.cableGt02, i, 4), + CI.getTieredComponent(OrePrefixes.circuit, i, 2) + }, + CI.getAlternativeTieredFluid(i, 144 * (i+1) * 2), + aHulls[i].get(1), + 20 * 20, + MaterialUtils.getVoltageForTier(i)); + } + + } + + private static void initModItems(){ + if (LoadedMods.IndustrialCraft2){ + IC2MFE = ItemUtils.getItemStackWithMeta(LoadedMods.IndustrialCraft2, "IC2:blockElectric", "IC2_MFE", 1, 1); + IC2MFSU = ItemUtils.getItemStackWithMeta(LoadedMods.IndustrialCraft2, "IC2:blockElectric", "IC2_MFSU", 2, 1); + } + if (LoadedMods.Gregtech){ + + //Lava Boiler + boiler_Coal = ItemList.Machine_Bronze_Boiler.get(1); + + //IV MACHINES + if (!GTNH){ + EV_MACHINE_Electrolyzer = ItemList.Machine_EV_Electrolyzer.get(1); + EV_MACHINE_BendingMachine= ItemList.Machine_EV_Bender.get(1); + EV_MACHINE_Wiremill= ItemList.Machine_EV_Wiremill.get(1); + HV_MACHINE_Macerator= ItemList.Machine_HV_Macerator.get(1); + EV_MACHINE_Macerator= ItemList.Machine_EV_Macerator.get(1); + EV_MACHINE_MassFabricator= ItemList.Machine_EV_Massfab.get(1); + EV_MACHINE_Centrifuge= ItemList.Machine_EV_Centrifuge.get(1); + EV_MACHINE_Cutter = ItemList.Machine_EV_Cutter.get(1); + EV_MACHINE_Extruder = ItemList.Machine_EV_Extruder.get(1); + EV_MACHINE_Sifter = ItemList.Machine_HV_Sifter.get(1); + EV_MACHINE_ThermalCentrifuge = ItemList.Machine_EV_ThermalCentrifuge.get(1); + EV_MACHINE_OreWasher = ItemList.Machine_EV_OreWasher.get(1); + EV_MACHINE_AlloySmelter = ItemList.Machine_EV_AlloySmelter.get(1); + EV_MACHINE_Mixer = ItemList.Machine_EV_Mixer.get(1); + } + //Balanced opposites + else { + EV_MACHINE_Electrolyzer = ItemList.Machine_IV_Electrolyzer.get(1); + EV_MACHINE_BendingMachine= ItemList.Machine_IV_Bender.get(1); + EV_MACHINE_Wiremill= ItemList.Machine_IV_Wiremill.get(1); + HV_MACHINE_Macerator= ItemList.Machine_EV_Macerator.get(1); + EV_MACHINE_Macerator= ItemList.Machine_IV_Macerator.get(1); + EV_MACHINE_MassFabricator= CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK ? ItemUtils.getValueOfItemList("Machine_LuV_Massfab", ItemList.Machine_IV_Massfab).get(1) : ItemList.Machine_IV_Massfab.get(1); + EV_MACHINE_Centrifuge= ItemList.Machine_IV_Centrifuge.get(1); + EV_MACHINE_Cutter = ItemList.Machine_IV_Cutter.get(1); + EV_MACHINE_Extruder = ItemList.Machine_IV_Extruder.get(1); + EV_MACHINE_Sifter = ItemList.Machine_HV_Sifter.get(1); + EV_MACHINE_ThermalCentrifuge = ItemList.Machine_IV_ThermalCentrifuge.get(1); + EV_MACHINE_OreWasher = ItemList.Machine_IV_OreWasher.get(1); + EV_MACHINE_AlloySmelter = ItemList.Machine_IV_AlloySmelter.get(1); + EV_MACHINE_Mixer = ItemList.Machine_IV_Mixer.get(1); + } + + + + } + if (CORE.ConfigSwitches.enableMultiblock_IndustrialCokeOven){ + if(LoadedMods.Railcraft){ + //Misc + INPUT_RCCokeOvenBlock = ItemUtils.getItemStackWithMeta(LoadedMods.Railcraft, "Railcraft:machine.alpha", "Coke_Oven_RC", 7, 1); + } + if(LoadedMods.ImmersiveEngineering){ + //Misc + INPUT_IECokeOvenBlock = ItemUtils.getItemStackWithMeta(LoadedMods.ImmersiveEngineering, "ImmersiveEngineering:stoneDecoration", "Coke_Oven_IE", 1, 1); + } + } + runModRecipes(); + } + + private static void runModRecipes(){ + if (LoadedMods.Gregtech){ + + //Computer Cube + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + ItemUtils.getSimpleStack(CI.getDataOrb(), 4 * (GTNH ? 2 : 1)), + ItemList.Cover_Screen.get(4), + CI.machineHull_IV, + ItemUtils.getItemStackOfAmountFromOreDict(CI.getTieredCircuitOreDictName(7), 2) + }, + ELEMENT.getInstance().TANTALUM.getFluidStack(144 * 16), + GregtechItemList.Gregtech_Computer_Cube.get(1), + 60 * 20 * 3, + 8000); + + //Circuit programmer + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + ItemUtils.getSimpleStack(CI.robotArm_LV, 4 * (GTNH ? 2 : 1)), + ItemList.Cover_Controller.get(1, CI.electricMotor_MV), + CI.machineHull_MV, + ItemUtils.getItemStackOfAmountFromOreDict(CI.getTieredCircuitOreDictName(1), 2), + ItemUtils.getItemStackOfAmountFromOreDict(CI.getTieredCircuitOreDictName(2), 2) + }, + ELEMENT.getInstance().IRON.getFluidStack(144 * 4), + ItemUtils.getSimpleStack(ModBlocks.blockCircuitProgrammer), + 60 * 10 * 1, + 30); + + //Lead Lined Chest + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + CI.machineHull_LV, + ItemUtils.getItemStackOfAmountFromOreDict("plateRubber", 32), + ItemUtils.getItemStackOfAmountFromOreDict("plateDenseLead", 9), + ItemUtils.getSimpleStack(Blocks.chest) + }, + ELEMENT.getInstance().LEAD.getFluidStack(144 * 16), + ItemUtils.getSimpleStack(ModBlocks.blockDecayablesChest), + 60 * 10 * 3, + 60); + + //RTG + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + ItemUtils.getItemStackWithMeta(true, "IC2:blockGenerator:6", "IC2-RTG", 6, 1), + ALLOY.NITINOL_60.getPlate(GTNH ? 32 : 8), + ALLOY.MARAGING350.getGear(GTNH ? 16 : 4), + ItemUtils.getSimpleStack(GTNH ? CI.fieldGenerator_IV : CI.fieldGenerator_EV, 8 ), + ItemUtils.getItemStackOfAmountFromOreDict("wireFinePlatinum", GTNH ? 64 : 32), + ItemUtils.getItemStackOfAmountFromOreDict(CI.getTieredCircuitOreDictName(GTNH ? 7 : 6), GTNH ? 5 : 4) + }, + ALLOY.NIOBIUM_CARBIDE.getFluidStack(144 * 16), + GregtechItemList.RTG.get(1), + 60 * 20 * 10, + 8000); + + // Super Jukebox + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + CI.machineHull_LV, + ItemUtils.getItemStackOfAmountFromOreDict("circuitBasic", 4), + ItemUtils.getItemStackOfAmountFromOreDict("plateTumbaga", 8), + ItemUtils.getSimpleStack(Blocks.jukebox) + }, + ELEMENT.getInstance().COPPER.getFluidStack(144 * 2), + ItemUtils.getSimpleStack(ModBlocks.blockCustomJukebox), + 20 * 30, + 30); + + ItemStack aFluidRegulator1 = ItemUtils.getValueOfItemList("FluidRegulator_MV",GTNH ? 4 : 2, ItemList.Electric_Pump_HV); + ItemStack aFluidRegulator2 = ItemUtils.getValueOfItemList("FluidRegulator_IV", GTNH ? 4 : 2, ItemUtils.getValueOfItemList("Electric_Pump_LuV", GTNH ? 8 : 4, ItemList.Electric_Pump_IV)); + + //Poo Collector + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + CI.machineHull_MV, + aFluidRegulator1, + CI.getTieredComponent(OrePrefixes.pipeMedium, 2, GTNH ? 4 : 2), + ALLOY.EGLIN_STEEL.getPlate(GTNH ? 8 : 4), + ALLOY.POTIN.getScrew(GTNH ? 12 : 6) + }, + ALLOY.TUMBAGA.getFluidStack(144 * 4), + ItemUtils.getSimpleStack(ModBlocks.blockPooCollector), + 20 * 60, + 30); + + //Adv. Poo Collector + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + CI.getTieredMachineHull(-1), + ItemUtils.getSimpleStack(ModBlocks.blockPooCollector), + aFluidRegulator2, + CI.getTieredComponent(OrePrefixes.pipeHuge, 6, GTNH ? 8 : 4), + CI.getTieredComponent(OrePrefixes.screw, 6, GTNH ? 32 : 16) + }, + CI.getAlternativeTieredFluid(5, 144 * 9), + ItemUtils.getSimpleStack(ModBlocks.blockPooCollector, 8, 1), + 20 * 60 * 5, + 500); + + + //Basic Steam Turbine + RecipeUtils.addShapedGregtechRecipe( + CI.getTieredComponent(OrePrefixes.pipeSmall, 0, 1), "circuitPrimitive", CI.getTieredComponent(OrePrefixes.pipeSmall, 0, 1), + ALLOY.TUMBAGA.getRotor(1), CI.machineCasing_ULV, ALLOY.TUMBAGA.getRotor(1), + CI.getElectricMotor(0, 1), "cableGt01RedAlloy", CI.getElectricMotor(0, 1), + GregtechItemList.Generator_Steam_Turbine_ULV.get(1)); + + //Basic Gas Turbine + RecipeUtils.addShapedGregtechRecipe( + "circuitPrimitive", ALLOY.TUMBAGA.getRotor(1), "circuitPrimitive", + ALLOY.TUMBAGA.getRotor(1), CI.machineCasing_ULV, ALLOY.TUMBAGA.getRotor(1), + CI.getElectricMotor(0, 1), "cableGt01RedAlloy", CI.getElectricMotor(0, 1), + GregtechItemList.Generator_Gas_Turbine_ULV.get(1)); + + //Basic Combustion Turbine + RecipeUtils.addShapedGregtechRecipe( + CI.getElectricPiston(0, 1), "circuitPrimitive", CI.getElectricPiston(0, 1), + CI.getElectricMotor(0, 1), CI.machineCasing_ULV, CI.getElectricMotor(0, 1), + ALLOY.TUMBAGA.getGear(1), "cableGt01RedAlloy", ALLOY.TUMBAGA.getGear(1), + GregtechItemList.Generator_Diesel_ULV.get(1)); + + + + //Steam Condenser + if (CORE.ConfigSwitches.enableMachine_SteamConverter ){ + RECIPE_SteamCondenser = GregtechItemList.Condensor_MAX.get(1); + RecipeUtils.addShapedGregtechRecipe( + pipeLargeCopper, pipeHugeSteel, pipeLargeCopper, + plateEnergeticAlloy, CI.electricPump_HV, plateEnergeticAlloy, + plateEnergeticAlloy, pipeLargeCopper, plateEnergeticAlloy, + RECIPE_SteamCondenser); + } + + ItemStack aBronzeBricks = ItemUtils.simpleMetaStack(GregTech_API.sBlockCasings1, 10, 1); + // Steam Macerator Multi + RecipeUtils.addShapedGregtechRecipe( + aBronzeBricks, ALLOY.TUMBAGA.getGear(1), aBronzeBricks, + aBronzeBricks, ALLOY.TUMBAGA.getFrameBox(1), aBronzeBricks, + aBronzeBricks, ALLOY.TUMBAGA.getGear(1), aBronzeBricks, + GregtechItemList.Controller_SteamMaceratorMulti.get(1)); + + // Steam Hatch + RecipeUtils.addShapedGregtechRecipe( + "plateBronze", "pipeMediumBronze", "plateBronze", + "plateBronze", GregtechItemList.GT_FluidTank_ULV.get(1), "plateBronze", + "plateBronze", "pipeMediumBronze", "plateBronze", + GregtechItemList.Hatch_Input_Steam.get(1)); + + // Steam Input Bus + RecipeUtils.addShapedGregtechRecipe( + "plateBronze", ALLOY.TUMBAGA.getPlate(1), "plateBronze", + "plateTin", ItemUtils.getSimpleStack(Blocks.hopper), "plateTin", + "plateBronze", ALLOY.TUMBAGA.getPlate(1), "plateBronze", + GregtechItemList.Hatch_Input_Bus_Steam.get(1)); + + // Steam Output Bus + RecipeUtils.addShapedGregtechRecipe( + "plateBronze", "plateTin", "plateBronze", + ALLOY.TUMBAGA.getPlate(1), ItemUtils.getSimpleStack(Blocks.hopper), ALLOY.TUMBAGA.getPlate(1), + "plateBronze", "plateTin", "plateBronze", + GregtechItemList.Hatch_Output_Bus_Steam.get(1)); + + + //RF Convertor + if (LoadedMods.CoFHCore && CORE.ConfigSwitches.enableMachine_RF_Convetor){ + RecipeUtils.addShapedGregtechRecipe( + CI.getPlate(4, 1), CI.getTieredCircuitOreDictName(5), CI.getPlate(4, 1), + CI.getTransmissionComponent(3, 1), CI.getTieredGTPPMachineCasing(4, 1), CI.getTransmissionComponent(3, 1), + CI.getPlate(4, 1), plateEnergeticAlloy, CI.getPlate(4, 1), + GregtechItemList.Energy_Buffer_RF_Convertor.get(1)); + } + + // Egg Box + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + CI.getNumberedAdvancedCircuit(8), + CI.getTieredMachineHull(3), + ItemUtils.getSimpleStack(Items.egg, 64), + ItemUtils.getSimpleStack(ModItems.itemRope, 32), + CI.getPlate(4, GTNH ? 16 : 8) + }, + FluidUtils.getFluidStack("mobessence", 4096), + ItemUtils.getSimpleStack(ModBlocks.blockEggBox, 1), + 20 * 60, + 480); + + //Flask Configurator + if (Meta_GT_Proxy.sDoesVolumetricFlaskExist) { + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + CI.getNumberedAdvancedCircuit(8), + CI.getTieredMachineHull(2), + ItemUtils.getSimpleStack(ModBlocks.blockCircuitProgrammer), + VolumetricFlaskHelper.getVolumetricFlask(8), + CI.getTieredComponent(OrePrefixes.pipeSmall, 2, GTNH ? 4 : 2), + CI.getPlate(2, GTNH ? 8 : 4) + }, + CI.getAlternativeTieredFluid(1, 144 * 8), + ItemUtils.getSimpleStack(ModBlocks.blockVolumetricFlaskSetter, 1), + 20 * 60, + 120); + } + + + if (CORE.ConfigSwitches.enableMultiblock_IronBlastFurnace){ + + RECIPE_IronBlastFurnace = GregtechItemList.Machine_Iron_BlastFurnace.get(1); + RECIPE_IronPlatedBricks = GregtechItemList.Casing_IronPlatedBricks.get(Casing_Amount); + + //Iron BF + RecipeUtils.addShapedGregtechRecipe( + "plateDoubleAnyIron", "craftingFurnace", "plateDoubleAnyIron", + boiler_Coal, CI.machineCasing_ULV, boiler_Coal, + "plateDoubleAnyIron", "bucketLava", "plateDoubleAnyIron", + RECIPE_IronBlastFurnace); + //Iron plated Bricks + RecipeUtils.addShapedGregtechRecipe( + "plateAnyIron", RECIPES_Tools.craftingToolHardHammer, "plateAnyIron", + "plateAnyIron", blockBricks, "plateAnyIron", + "plateAnyIron", RECIPES_Tools.craftingToolWrench, "plateAnyIron", + RECIPE_IronPlatedBricks); + + //Add recycle recipes for the Iron Plated Bricks + //GT_ModHandler.addPulverisationRecipe(RECIPE_IronPlatedBricks, ItemUtils.getItemStackOfAmountFromOreDictNoBroken("dustIron", 6), ItemUtils.getItemStackOfAmountFromOreDictNoBroken("dustClay", 2), true); + CORE.RA.addPulverisationRecipe( + RECIPE_IronPlatedBricks, + ItemUtils.getItemStackOfAmountFromOreDictNoBroken("dustIron", 6), + ItemUtils.getItemStackOfAmountFromOreDictNoBroken("dustClay", 2), + null); + GT_Values.RA.addArcFurnaceRecipe(RECIPE_IronPlatedBricks, new ItemStack[]{ItemUtils.getItemStackOfAmountFromOreDictNoBroken("ingotWroughtIron", 6), ItemUtils.getItemStackOfAmountFromOreDictNoBroken("dustAsh", 2)}, new int[]{0}, 32*20, 32); + } + + if (CORE.ConfigSwitches.enableMultiblock_IndustrialCentrifuge){ + //Industrial Centrifuge + RECIPE_IndustrialCentrifugeController = GregtechItemList.Industrial_Centrifuge.get(1); + RECIPE_IndustrialCentrifugeCasing = GregtechItemList.Casing_Centrifuge1.get(Casing_Amount); + + //Industrial Centrifuge + RecipeUtils.addShapedGregtechRecipe( + CI.circuitTier5, pipeHugeStainlessSteel, CI.circuitTier5, + CI.component_Plate[6], EV_MACHINE_Centrifuge, CI.component_Plate[6], + CI.component_Plate[8], CI.machineCasing_IV, CI.component_Plate[8], + RECIPE_IndustrialCentrifugeController); + //Centrifuge Casing + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[6], "stickTumbaga", CI.component_Plate[6], + CI.component_Plate[8], "stickTumbaga", CI.component_Plate[8], + CI.component_Plate[6], "stickTumbaga", CI.component_Plate[6], + RECIPE_IndustrialCentrifugeCasing); + } + + if (CORE.ConfigSwitches.enableMultiblock_IndustrialCokeOven){ + //Industrial Coke Oven + RECIPE_IndustrialCokeOvenController = GregtechItemList.Industrial_CokeOven.get(1); + RECIPE_IndustrialCokeOvenFrame = GregtechItemList.Casing_CokeOven.get(Casing_Amount); + RECIPE_IndustrialCokeOvenCasingA = GregtechItemList.Casing_CokeOven_Coil1.get(Casing_Amount); + RECIPE_IndustrialCokeOvenCasingB = GregtechItemList.Casing_CokeOven_Coil2.get(Casing_Amount); + + if (LoadedMods.Railcraft){ + //Industrial Coke Oven + RecipeUtils.addShapedGregtechRecipe( + plateCobalt, CI.circuitTier4, plateCobalt, + CI.machineCasing_HV, INPUT_RCCokeOvenBlock, CI.machineCasing_HV, + plateCobalt, CI.circuitTier5, plateCobalt, + RECIPE_IndustrialCokeOvenController); + } + if (LoadedMods.ImmersiveEngineering){ + //Industrial Coke Oven + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[8], CI.circuitTier4, CI.component_Plate[8], + CI.machineCasing_HV, INPUT_IECokeOvenBlock, CI.machineCasing_HV, + CI.component_Plate[8], CI.circuitTier3, CI.component_Plate[8], + RECIPE_IndustrialCokeOvenController); + } + //Coke Oven Frame Casing + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[7], CI.component_Rod[7], CI.component_Plate[7], + CI.component_Rod[7], "frameGtTantalloy61", CI.component_Rod[7], + CI.component_Plate[7], CI.component_Rod[7], CI.component_Plate[7], + RECIPE_IndustrialCokeOvenFrame); + //Coke Oven Coil 1 + RecipeUtils.addShapedGregtechRecipe( + plateBronze, plateBronze, plateBronze, + "frameGtBronze", CI.gearboxCasing_Tier_1, "frameGtBronze", + plateBronze, plateBronze, plateBronze, + RECIPE_IndustrialCokeOvenCasingA); + //Coke Oven Coil 2 + RecipeUtils.addShapedGregtechRecipe( + plateSteel, plateSteel, plateSteel, + "frameGtSteel", CI.gearboxCasing_Tier_2, "frameGtSteel", + plateSteel, plateSteel, plateSteel, + RECIPE_IndustrialCokeOvenCasingB); + } + + if (CORE.ConfigSwitches.enableMultiblock_IndustrialElectrolyzer){ + //Industrial Electrolyzer + RECIPE_IndustrialElectrolyzerController = GregtechItemList.Industrial_Electrolyzer.get(1); + RECIPE_IndustrialElectrolyzerFrame = GregtechItemList.Casing_Electrolyzer.get(Casing_Amount); + + //Electrolyzer Frame Casing + RecipeUtils.addShapedGregtechRecipe( + "platePotin", "stickLongChrome", "platePotin", + "stickLongPotin", "frameGtPotin", "stickLongPotin", + "platePotin", "stickLongPotin", "platePotin", + RECIPE_IndustrialElectrolyzerFrame); + //Industrial Electrolyzer + RecipeUtils.addShapedGregtechRecipe( + "plateStellite", CI.circuitTier5, "plateStellite", + CI.machineCasing_EV, EV_MACHINE_Electrolyzer, CI.machineCasing_EV, + "plateStellite", "rotorStellite", "plateStellite", + RECIPE_IndustrialElectrolyzerController); + } + + if (CORE.ConfigSwitches.enableMultiblock_IndustrialPlatePress){ + //Industrial Material Press + RECIPE_IndustrialMaterialPressController = GregtechItemList.Industrial_PlatePress.get(1); + RECIPE_IndustrialMaterialPressFrame = GregtechItemList.Casing_MaterialPress.get(Casing_Amount); + + //Material Press Frame Casing + RecipeUtils.addShapedGregtechRecipe( + "plateTitanium", "stickLongTumbaga", "plateTitanium", + "stickTantalloy60", "frameGtTumbaga", "stickTantalloy60", + "plateTitanium", "stickLongTumbaga", "plateTitanium", + RECIPE_IndustrialMaterialPressFrame); + //Industrial Material Press + RecipeUtils.addShapedGregtechRecipe( + "plateTitanium", CI.circuitTier5, "plateTitanium", + CI.machineCasing_EV, EV_MACHINE_BendingMachine, CI.machineCasing_EV, + "plateTitanium", CI.circuitTier5, "plateTitanium", + RECIPE_IndustrialMaterialPressController); + } + + if (CORE.ConfigSwitches.enableMultiblock_IndustrialMacerationStack){ + //Industrial Maceration Stack + RECIPE_IndustrialMacerationStackController = GregtechItemList.Industrial_MacerationStack.get(1); + RECIPE_IndustrialMacerationStackFrame = GregtechItemList.Casing_MacerationStack.get(Casing_Amount); + + //Maceration Frame Casing + RecipeUtils.addShapedGregtechRecipe( + "platePalladium", "platePalladium", "platePalladium", + "stickPlatinum", "frameGtInconel625", "stickPlatinum", + "platePalladium", "stickLongPalladium", "platePalladium", + RECIPE_IndustrialMacerationStackFrame); + //Industrial Maceration stack + RecipeUtils.addShapedGregtechRecipe( + "plateTungstenCarbide", EV_MACHINE_Macerator, "plateTungstenCarbide", + HV_MACHINE_Macerator, CI.circuitTier7, HV_MACHINE_Macerator, + "plateTungstenCarbide", CI.machineCasing_IV, "plateTungstenCarbide", + RECIPE_IndustrialMacerationStackController); + } + + if (CORE.ConfigSwitches.enableMultiblock_IndustrialWireMill){ + //Industrial Wire Factory + RECIPE_IndustrialWireFactoryController = GregtechItemList.Industrial_WireFactory.get(1); + RECIPE_IndustrialWireFactoryFrame = GregtechItemList.Casing_WireFactory.get(Casing_Amount); + + //Wire Factory Frame Casing + RecipeUtils.addShapedGregtechRecipe( + "plateBlueSteel", "stickBlueSteel", "plateBlueSteel", + "stickBlueSteel", "frameGtBlueSteel", "stickBlueSteel", + "plateBlueSteel", "stickBlueSteel", "plateBlueSteel", + RECIPE_IndustrialWireFactoryFrame); + //Industrial Wire Factory + RecipeUtils.addShapedGregtechRecipe( + "plateZeron100", CI.machineCasing_IV, "plateZeron100", + CI.circuitTier5, EV_MACHINE_Wiremill, CI.circuitTier5, + "plateZeron100", CI.machineCasing_IV, "plateZeron100", + RECIPE_IndustrialWireFactoryController); + } + + + + //Tiered Tanks + if (CORE.ConfigSwitches.enableMachine_FluidTanks){ + Logger.WARNING("Is New Horizons Loaded? "+GTNH); + if (!GTNH){ + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[1], CI.component_Plate[1], CI.component_Plate[1], + CI.component_Plate[1], pipeTier1, CI.component_Plate[1], + CI.component_Plate[1], GregtechItemList.Fluid_Cell_144L.get(1), CI.component_Plate[1], + GregtechItemList.GT_FluidTank_ULV.get(1)); + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[2], CI.component_Plate[2], CI.component_Plate[2], + CI.component_Plate[2], pipeTier2, CI.component_Plate[2], + CI.component_Plate[2], CI.electricPump_LV, CI.component_Plate[2], + GregtechItemList.GT_FluidTank_LV.get(1)); + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[3], CI.component_Plate[3], CI.component_Plate[3], + CI.component_Plate[3], pipeTier3, CI.component_Plate[3], + CI.component_Plate[3], CI.electricPump_MV, CI.component_Plate[3], + GregtechItemList.GT_FluidTank_MV.get(1)); + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[4], CI.component_Plate[4], CI.component_Plate[4], + CI.component_Plate[4], pipeTier4, CI.component_Plate[4], + CI.component_Plate[4], CI.electricPump_HV, CI.component_Plate[4], + GregtechItemList.GT_FluidTank_HV.get(1)); + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[5], CI.component_Plate[5], CI.component_Plate[5], + CI.component_Plate[5], pipeTier5, CI.component_Plate[5], + CI.component_Plate[5], CI.electricPump_EV, CI.component_Plate[5], + GregtechItemList.GT_FluidTank_EV.get(1)); + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[6], CI.component_Plate[6], CI.component_Plate[6], + CI.component_Plate[6], pipeTier6, CI.component_Plate[6], + CI.component_Plate[6], CI.electricPump_IV, CI.component_Plate[6], + GregtechItemList.GT_FluidTank_IV.get(1)); + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[7], CI.component_Plate[7], CI.component_Plate[7], + CI.component_Plate[7], pipeTier7, CI.component_Plate[7], + CI.component_Plate[7], CI.electricPump_LuV, CI.component_Plate[7], + GregtechItemList.GT_FluidTank_LuV.get(1)); + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[8], CI.component_Plate[8], CI.component_Plate[8], + CI.component_Plate[8], pipeTier8, CI.component_Plate[8], + CI.component_Plate[8], CI.electricPump_ZPM, CI.component_Plate[8], + GregtechItemList.GT_FluidTank_ZPM.get(1)); + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[9], CI.component_Plate[9], CI.component_Plate[9], + CI.component_Plate[9], pipeTier9, CI.component_Plate[9], + CI.component_Plate[9], CI.electricPump_UV, CI.component_Plate[9], + GregtechItemList.GT_FluidTank_UV.get(1)); + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[10], CI.component_Plate[10], CI.component_Plate[10], + CI.component_Plate[10], pipeTier10, CI.component_Plate[10], + CI.component_Plate[10], CI.electricPump_MAX, CI.component_Plate[10], + GregtechItemList.GT_FluidTank_MAX.get(1)); + } + else { + + CI.component_Plate[1] = "plateTin"; + pipeTier1 = "pipeLargeClay"; + CI.circuitTier1 = ItemList.Circuit_Primitive.get(1); + CI.component_Plate[2] = "plateCopper"; + pipeTier2 = "pipeHugeClay"; + CI.component_Plate[3] = "plateBronze"; + pipeTier3 = "pipeMediumBronze"; + CI.component_Plate[4] = "plateIron"; + pipeTier4 = "pipeMediumSteel"; + CI.component_Plate[5] = "plateSteel"; + CI.component_Plate[6] = "plateRedstone"; + CI.component_Plate[7] = "plateAluminium"; + CI.component_Plate[8] = "plateDarkSteel"; + ItemStack waterBucket = ItemUtils.getSimpleStack(Items.water_bucket); + + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[1], CI.component_Plate[5], CI.component_Plate[1], + CI.component_Plate[4], pipeTier1, CI.component_Plate[4], + CI.component_Plate[4], waterBucket, CI.component_Plate[4], + GregtechItemList.GT_FluidTank_ULV.get(1)); + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[5], CI.component_Plate[4], CI.component_Plate[5], + CI.component_Plate[3], pipeTier2, CI.component_Plate[3], + CI.component_Plate[3], CI.electricPump_LV, CI.component_Plate[3], + GregtechItemList.GT_FluidTank_LV.get(1)); + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[8], CI.component_Plate[3], CI.component_Plate[8], + CI.component_Plate[5], pipeTier3, CI.component_Plate[5], + CI.component_Plate[5], CI.electricPump_LV, CI.component_Plate[5], + GregtechItemList.GT_FluidTank_MV.get(1)); + RecipeUtils.addShapedGregtechRecipe( + CI.circuitTier1, CI.component_Plate[7], CI.circuitTier1, + CI.component_Plate[8], pipeTier4, CI.component_Plate[8], + CI.circuitTier1, CI.electricPump_MV, CI.circuitTier1, + GregtechItemList.GT_FluidTank_HV.get(1)); + } + } + + if (CORE.ConfigSwitches.enableMultiblock_MultiTank){ + //Industrial Multi Tank + //RECIPE_IndustrialMultiTankController = GregtechItemList.Industrial_MultiTank.get(1); + RECIPE_IndustrialMultiTankFrame = GregtechItemList.Casing_MultitankExterior.get(Casing_Amount); + + //Industrial Multi Tank Casing + RecipeUtils.addShapedGregtechRecipe( + "stickGrisium", "plateGrisium", "stickGrisium", + "plateGrisium", "frameGtGrisium", "plateGrisium", + "plateGrisium", "plateGrisium", "plateGrisium", + RECIPE_IndustrialMultiTankFrame); + //Industrial Multi Tank + RecipeUtils.addShapedGregtechRecipe( + "pipeHugeTantalloy60", "gearGrisium", "pipeHugeTantalloy60", + CI.circuitTier4, RECIPE_IndustrialMultiTankFrame, CI.circuitTier4, + "plateDoubleGrisium", "rotorGrisium", "plateDoubleGrisium", + RECIPE_IndustrialMultiTankController); + } + //TODO + + //Semi-Fluid Generators + ItemStack[][] aSemiFluidInputs = new ItemStack[3][6]; + aSemiFluidInputs[0] = new ItemStack[]{ + CI.getNumberedBioCircuit(14), + CI.getTieredMachineHull(1, 1), + CI.getElectricPiston(1, GTNH ? 4 : 2), + CI.getTieredComponent(OrePrefixes.circuit, 1, GTNH ? 4 : 2), + CI.getPlate(1, GTNH ? 8 : 4), + CI.getGear(1, GTNH ? 4 : 2) + }; + aSemiFluidInputs[1] = new ItemStack[]{ + CI.getNumberedCircuit(14), + CI.getTieredMachineHull(2, 1), + CI.getElectricPiston(2, GTNH ? 4 : 2), + CI.getTieredComponent(OrePrefixes.circuit, 2, GTNH ? 4 : 2), + CI.getPlate(2, GTNH ? 8 : 4), + CI.getGear(2, GTNH ? 4 : 2) + }; + aSemiFluidInputs[2] = new ItemStack[]{ + CI.getNumberedAdvancedCircuit(14), + CI.getTieredMachineHull(3, 1), + CI.getElectricPiston(3, GTNH ? 4 : 2), + CI.getTieredComponent(OrePrefixes.circuit, 3, GTNH ? 4 : 2), + CI.getPlate(3, GTNH ? 8 : 4), + CI.getGear(3, GTNH ? 4 : 2) + }; + FluidStack[] aSemiFluidFluidInputs = new FluidStack[] { + ALLOY.BRONZE.getFluidStack(144 * 8), + ALLOY.STEEL.getFluidStack(144 * 8), + ELEMENT.getInstance().ALUMINIUM.getFluidStack(144 * 8), + }; + + //ItemUtils.simpleMetaStack("IC2:blockGenerator:7", 7, 1); + ItemStack[] aSemifluids = new ItemStack[] {GregtechItemList.Generator_SemiFluid_LV.get(1), GregtechItemList.Generator_SemiFluid_MV.get(1), GregtechItemList.Generator_SemiFluid_HV.get(1)}; + for (int o=0;o<3;o++) { + CORE.RA.addSixSlotAssemblingRecipe( + aSemiFluidInputs[o], + aSemiFluidFluidInputs[o], + aSemifluids[o], + 20 * 30, + MaterialUtils.getVoltageForTier(o+1)); + } + + if (CORE.ConfigSwitches.enableMultiblock_AlloyBlastSmelter){ + //Industrial Blast Smelter + RECIPE_IndustrialBlastSmelterController = GregtechItemList.Industrial_AlloyBlastSmelter.get(1); + RECIPE_IndustrialBlastSmelterFrame = GregtechItemList.Casing_BlastSmelter.get(Casing_Amount); + RECIPE_IndustrialBlastSmelterCoil = GregtechItemList.Casing_Coil_BlastSmelter.get(Casing_Amount); + + //Blast Smelter + RecipeUtils.addShapedGregtechRecipe( + "plateZirconiumCarbide", CI.circuitTier4, "plateZirconiumCarbide", + cableTier4, EV_MACHINE_AlloySmelter, cableTier4, + "plateZirconiumCarbide", CI.circuitTier3, "plateZirconiumCarbide", + RECIPE_IndustrialBlastSmelterController); + //Blast Smelter Frame Casing + RecipeUtils.addShapedGregtechRecipe( + "plateZirconiumCarbide", CI.component_Rod[5], "plateZirconiumCarbide", + CI.component_Rod[5], "frameGtTumbaga", CI.component_Rod[5], + "plateZirconiumCarbide", CI.component_Rod[5], "plateZirconiumCarbide", + RECIPE_IndustrialBlastSmelterFrame); + //Blast Smelter Coil + RecipeUtils.addShapedGregtechRecipe( + "plateStaballoy", "plateStaballoy", "plateStaballoy", + "frameGtStaballoy", CI.gearboxCasing_Tier_3, "frameGtStaballoy", + "plateStaballoy", "plateStaballoy", "plateStaballoy", + RECIPE_IndustrialBlastSmelterCoil); + } + + if (CORE.ConfigSwitches.enableMultiblock_MatterFabricator){ + //Industrial Matter Fabricator + RECIPE_IndustrialMatterFabController = GregtechItemList.Industrial_MassFab.get(1); + RECIPE_IndustrialMatterFabFrame = GregtechItemList.Casing_MatterFab.get(Casing_Amount); + RECIPE_IndustrialMatterFabCoil = GregtechItemList.Casing_MatterGen.get(Casing_Amount); + + //Matter Fabricator CPU + RecipeUtils.addShapedGregtechRecipe( + CI.getDoublePlate(8, 1), CI.circuitTier5, CI.getPlate(8, 1), + cableTier8, CI.machineCasing_LuV, cableTier8, + CI.getPlate(8, 1), CI.circuitTier5, CI.getPlate(8, 1), + RECIPE_IndustrialMatterFabController); + //Matter Fabricator Frame Casing + RecipeUtils.addShapedGregtechRecipe( + "plateNiobiumCarbide", CI.component_Rod[8], "plateNiobiumCarbide", + CI.component_Rod[8], "frameGtInconel690", CI.component_Rod[8], + "plateNiobiumCarbide", CI.component_Rod[8], "plateNiobiumCarbide", + RECIPE_IndustrialMatterFabFrame); + //Matter Fabricator Coil + RecipeUtils.addShapedGregtechRecipe( + CI.getPlate(6, 1), CI.getPlate(7, 1), CI.getPlate(6, 1), + "frameGtStellite", CI.machineCasing_UV, "frameGtStellite", + CI.getPlate(6, 1), CI.getPlate(7, 1), CI.getPlate(6, 1), + RECIPE_IndustrialMatterFabCoil); + } + + if (CORE.ConfigSwitches.enableMultiblock_IndustrialSifter){ + //Industrial Sieve + RECIPE_IndustrialSieveController = GregtechItemList.Industrial_Sifter.get(1); + RECIPE_IndustrialSieveFrame = GregtechItemList.Casing_Sifter.get(Casing_Amount); + RECIPE_IndustrialSieveGrate = GregtechItemList.Casing_SifterGrate.get(Casing_Amount); + + //Industrial Sieve + RecipeUtils.addShapedGregtechRecipe( + "plateEglinSteel", CI.circuitTier2, "plateEglinSteel", + cableTier3, EV_MACHINE_Sifter, cableTier3, + "plateEglinSteel", CI.circuitTier2, "plateEglinSteel", + RECIPE_IndustrialSieveController); + //Industrial Sieve Casing + RecipeUtils.addShapedGregtechRecipe( + "plateEglinSteel", "plateEglinSteel", "plateEglinSteel", + "plateEglinSteel", "frameGtTumbaga", "plateEglinSteel", + "plateEglinSteel", "plateEglinSteel", "plateEglinSteel", + RECIPE_IndustrialSieveFrame); + //Industrial Sieve Grate + RecipeUtils.addShapedGregtechRecipe( + "frameGtEglinSteel", "wireFineSteel", "frameGtEglinSteel", + "wireFineSteel", "wireFineSteel", "wireFineSteel", + "frameGtEglinSteel", "wireFineSteel", "frameGtEglinSteel", + RECIPE_IndustrialSieveGrate); + } + + if (CORE.ConfigSwitches.enableMultiblock_TreeFarmer){ + //Industrial Tree Farmer + RECIPE_TreeFarmController = GregtechItemList.Industrial_TreeFarm.get(1); + RECIPE_TreeFarmFrame = GregtechItemList.Casing_PLACEHOLDER_TreeFarmer.get(Casing_Amount); + //Industrial Tree Farm Controller + if (!GTNH) { + RecipeUtils.addShapedGregtechRecipe( + "plateEglinSteel", "rotorEglinSteel", "plateEglinSteel", + "cableGt02Steel", "pipeMediumSteel", "cableGt02Steel", + "plateEglinSteel", CI.machineCasing_MV, "plateEglinSteel", + RECIPE_TreeFarmController); + } + else { + RecipeUtils.addShapedGregtechRecipe( + "plateEglinSteel", "rotorEglinSteel", "plateEglinSteel", + "cableGt02Silver", "pipeMediumStainlessSteel", "cableGt02Silver", + "plateEglinSteel", CI.machineCasing_HV, "plateEglinSteel", + RECIPE_TreeFarmController); + } + //Industrial Tree Farm Frame + RecipeUtils.addShapedGregtechRecipe( + ItemUtils.getSimpleStack(Blocks.dirt), ItemUtils.getSimpleStack(Blocks.dirt), ItemUtils.getSimpleStack(Blocks.dirt), + "plankWood", "frameGtTumbaga", "plankWood", + "plankWood", "plankWood", "plankWood", + RECIPE_TreeFarmFrame); + } + + if (CORE.ConfigSwitches.enableMachine_Tesseracts){ + //Tesseracts + RECIPE_TesseractGenerator = GregtechItemList.GT4_Tesseract_Generator.get(1); + RECIPE_TesseractTerminal = GregtechItemList.GT4_Tesseract_Terminal.get(1); + //Tesseract Generator + RecipeUtils.addShapedGregtechRecipe( + "plateTitanium","circuitMaster","plateTitanium", + "circuitMaster",ItemUtils.getSimpleStack(Blocks.ender_chest),"circuitMaster", + "plateTitanium",GregtechItemList.Gregtech_Computer_Cube.get(1),"plateTitanium", + RECIPE_TesseractGenerator); + //Tesseract Terminal + RecipeUtils.addShapedGregtechRecipe( + "plateTitanium","circuitElite","plateTitanium", + "circuitElite",ItemUtils.getSimpleStack(Blocks.ender_chest),"circuitElite", + "plateTitanium",CI.machineHull_EV,"plateTitanium", + RECIPE_TesseractTerminal); + } + + if (CORE.ConfigSwitches.enableMachine_SimpleWasher){ + ItemStack plateWrought = ItemUtils.getItemStackOfAmountFromOreDict("plateWroughtIron", 1); + ItemStack washerPipe; + + + if (CORE.ConfigSwitches.enableCustom_Pipes){ + washerPipe = ItemUtils.getItemStackOfAmountFromOreDict("pipeLargeClay", 1); + RecipeUtils.addShapedGregtechRecipe( + plateWrought, CI.electricPump_LV, plateWrought, + plateWrought, washerPipe, plateWrought, + plateWrought, CI.machineCasing_ULV, plateWrought, + GregtechItemList.SimpleDustWasher_ULV.get(1)); + } + //Add Recipe + washerPipe = ItemUtils.getItemStackOfAmountFromOreDict("pipeLargeCopper", 1); + RecipeUtils.addShapedGregtechRecipe( + plateWrought, CI.electricPump_LV, plateWrought, + plateWrought, washerPipe, plateWrought, + plateWrought, CI.machineCasing_ULV, plateWrought, + GregtechItemList.SimpleDustWasher_ULV.get(1)); + + int aSimpleWasherTier = 2; + int aSlot = 0; + ItemStack[][] aInputsForSimpleWashers = new ItemStack[4][6]; + + aInputsForSimpleWashers[0] = new ItemStack[] { + CI.getTieredMachineHull(2), + CI.getTieredComponent(OrePrefixes.screw, 2, GTNH ? 16 : 8), + CI.getTieredComponent(OrePrefixes.plate, 1, GTNH ? 8 : 4), + CI.getTieredComponent(OrePrefixes.rod, 2, GTNH ? 4 : 2), + CI.getTieredComponent(OrePrefixes.circuit, 2, GTNH ? 3 : 1), + + }; + aInputsForSimpleWashers[1] = new ItemStack[] { + CI.getTieredMachineHull(4), + CI.getTieredComponent(OrePrefixes.screw, 4, GTNH ? 24 : 12), + CI.getTieredComponent(OrePrefixes.plate, 3, GTNH ? 12 : 6), + CI.getTieredComponent(OrePrefixes.rod, 4, GTNH ? 6 : 3), + CI.getTieredComponent(OrePrefixes.circuit, 4, GTNH ? 4 : 2), + + }; + aInputsForSimpleWashers[2] = new ItemStack[] { + CI.getTieredMachineHull(6), + CI.getTieredComponent(OrePrefixes.screw, 6, GTNH ? 48 : 24), + CI.getTieredComponent(OrePrefixes.plate, 5, GTNH ? 16 : 8), + CI.getTieredComponent(OrePrefixes.rod, 6, GTNH ? 8 : 4), + CI.getTieredComponent(OrePrefixes.circuit, 6, GTNH ? 6 : 3), + + }; + aInputsForSimpleWashers[3] = new ItemStack[] { + CI.getTieredMachineHull(8), + CI.getTieredComponent(OrePrefixes.screw, 8, GTNH ? 64 : 32), + CI.getTieredComponent(OrePrefixes.plate, 7, GTNH ? 32 : 16), + CI.getTieredComponent(OrePrefixes.rod, 8, GTNH ? 10 : 5), + CI.getTieredComponent(OrePrefixes.circuit, 8, GTNH ? 8 : 4), + + }; + + + + + + + ItemStack[] aSimpleWashers = new ItemStack[] {GregtechItemList.SimpleDustWasher_MV.get(1), GregtechItemList.SimpleDustWasher_EV.get(1), GregtechItemList.SimpleDustWasher_LuV.get(1), GregtechItemList.SimpleDustWasher_UV.get(1)}; + for (int i=0;i<4;i++) { + + CORE.RA.addSixSlotAssemblingRecipe( + aInputsForSimpleWashers[aSlot], + CI.getTieredFluid(aSimpleWasherTier, 144 * aSimpleWasherTier), + aSimpleWashers[aSlot], + 20 * 15 * aSimpleWasherTier, + (int) GT_Values.V[aSimpleWasherTier]); + + aSimpleWasherTier += 2; + aSlot++; + } + } + + if (CORE.ConfigSwitches.enableMachine_Pollution && PollutionUtils.isPollutionEnabled()){ + + RecipeUtils.addShapedGregtechRecipe( + "plateCarbon", "plateCarbon", "plateCarbon", + "dustCarbon", "dustCarbon", "dustCarbon", + "plateCarbon", "plateCarbon", "plateCarbon", + ItemUtils.simpleMetaStack(ModItems.itemAirFilter, 0, 1)); + + RecipeUtils.addShapedGregtechRecipe( + "plateCarbon", "plateCarbon", "plateCarbon", + "cellLithiumPeroxide", "dustCarbon", "cellLithiumPeroxide", + "plateCarbon", "plateCarbon", "plateCarbon", + ItemUtils.simpleMetaStack(ModItems.itemAirFilter, 1, 1)); + + //Pollution Detector + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[1], CI.sensor_MV, CI.component_Plate[1], + CI.component_Plate[2], CI.electricMotor_ULV, CI.component_Plate[2], + CI.getTieredCircuit(1), CI.machineHull_LV, CI.getTieredCircuit(0), + GregtechItemList.Pollution_Detector.get(1)); + + //ULV + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[0], ItemUtils.simpleMetaStack(ModItems.itemAirFilter, 0, 1), CI.component_Plate[0], + CI.component_Plate[0], CI.electricMotor_ULV, CI.component_Plate[0], + CI.getTieredCircuit(0), CI.machineHull_ULV, CI.getTieredCircuit(0), + GregtechItemList.Pollution_Cleaner_ULV.get(1)); + //LV + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[1], ItemUtils.simpleMetaStack(ModItems.itemAirFilter, 0, 1), CI.component_Plate[1], + CI.component_Plate[1], CI.electricMotor_LV, CI.component_Plate[1], + CI.getTieredCircuit(1), CI.machineHull_LV, CI.getTieredCircuit(1), + GregtechItemList.Pollution_Cleaner_LV.get(1)); + //MV + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[2], ItemUtils.simpleMetaStack(ModItems.itemAirFilter, 0, 1), CI.component_Plate[2], + CI.component_Plate[2], CI.electricMotor_MV, CI.component_Plate[2], + CI.getTieredCircuit(2), CI.machineHull_MV, CI.getTieredCircuit(2), + GregtechItemList.Pollution_Cleaner_MV.get(1)); + //HV + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[3], ItemUtils.simpleMetaStack(ModItems.itemAirFilter, 0, 1), CI.component_Plate[3], + CI.component_Plate[3], CI.electricMotor_HV, CI.component_Plate[3], + CI.getTieredCircuit(3), CI.machineHull_HV, CI.getTieredCircuit(3), + GregtechItemList.Pollution_Cleaner_HV.get(1)); + //EV + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[4], ItemUtils.simpleMetaStack(ModItems.itemAirFilter, 0, 1), CI.component_Plate[4], + CI.component_Plate[4], CI.electricMotor_EV, CI.component_Plate[4], + CI.getTieredCircuit(4), CI.machineHull_EV, CI.getTieredCircuit(4), + GregtechItemList.Pollution_Cleaner_EV.get(1)); + //IV + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[5], ItemUtils.simpleMetaStack(ModItems.itemAirFilter, 1, 1), CI.component_Plate[5], + CI.component_Plate[5], CI.electricMotor_IV, CI.component_Plate[5], + CI.getTieredCircuit(5), CI.machineHull_IV, CI.getTieredCircuit(5), + GregtechItemList.Pollution_Cleaner_IV.get(1)); + //LuV + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[6], ItemUtils.simpleMetaStack(ModItems.itemAirFilter, 1, 1), CI.component_Plate[6], + CI.component_Plate[6], CI.electricMotor_LuV, CI.component_Plate[6], + CI.getTieredCircuit(6), CI.machineHull_LuV, CI.getTieredCircuit(6), + GregtechItemList.Pollution_Cleaner_LuV.get(1)); + //ZPM + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[7], ItemUtils.simpleMetaStack(ModItems.itemAirFilter, 1, 1), CI.component_Plate[7], + CI.component_Plate[7], CI.electricMotor_ZPM, CI.component_Plate[7], + CI.getTieredCircuit(7), CI.machineHull_ZPM, CI.getTieredCircuit(7), + GregtechItemList.Pollution_Cleaner_ZPM.get(1)); + //UV + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[8], ItemUtils.simpleMetaStack(ModItems.itemAirFilter, 1, 1), CI.component_Plate[8], + CI.component_Plate[8], CI.electricMotor_UV, CI.component_Plate[8], + CI.getTieredCircuit(8), CI.machineHull_UV, CI.getTieredCircuit(8), + GregtechItemList.Pollution_Cleaner_UV.get(1)); + //MAX + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[9], ItemUtils.simpleMetaStack(ModItems.itemAirFilter, 1, 1), CI.component_Plate[9], + CI.component_Plate[9], CI.electricMotor_MAX, CI.component_Plate[9], + CI.getTieredCircuit(9), CI.machineHull_MAX, CI.getTieredCircuit(9), + GregtechItemList.Pollution_Cleaner_MAX.get(1)); + + + } + + if (CORE.ConfigSwitches.enableMultiblock_ThermalBoiler){ + RECIPE_ThermalBoilerController = GregtechItemList.GT4_Thermal_Boiler.get(1); + RECIPE_ThermalBoilerCasing = GregtechItemList.Casing_ThermalContainment.get(GTNH ? 1 : 2); + ItemStack centrifugeHV = GTNH ? ItemList.Machine_IV_Centrifuge.get(1) : ItemList.Machine_EV_Centrifuge.get(1); + + RecipeUtils.addShapedGregtechRecipe( + "craftingGeothermalGenerator", centrifugeHV, "craftingGeothermalGenerator", + "gearGtTitanium", CI.getTieredCircuitOreDictName(6), "gearGtTitanium", + "craftingGeothermalGenerator", centrifugeHV, "craftingGeothermalGenerator", + RECIPE_ThermalBoilerController); + + RecipeUtils.addShapedGregtechRecipe( + "craftingGeothermalGenerator", centrifugeHV, "craftingGeothermalGenerator", + "gearGtTungstenSteel", CI.getTieredCircuitOreDictName(5), "gearGtTungstenSteel", + "craftingGeothermalGenerator", centrifugeHV, "craftingGeothermalGenerator", + RECIPE_ThermalBoilerController); + + RecipeUtils.addShapedGregtechRecipe( + ALLOY.MARAGING350.getPlate(1), "plateStainlessSteel", ALLOY.MARAGING350.getPlate(1), + "circuitAdvanced", CI.machineCasing_HV, "circuitAdvanced", + ALLOY.MARAGING350.getPlate(1), ALLOY.MARAGING350.getPlate(1), ALLOY.MARAGING350.getPlate(1), + RECIPE_ThermalBoilerCasing); + + //Lava Filter Recipe + CORE.RA.addSixSlotAssemblingRecipe(new ItemStack[] { + CI.getNumberedCircuit(18), + ItemUtils.getItemStackOfAmountFromOreDict("dustCarbon", GTNH ? 64 : 32), + ItemUtils.getItemStackOfAmountFromOreDict("wireFineSteel", GTNH ? 64 : 32), + ItemUtils.getItemStackOfAmountFromOreDict("ringTumbaga", GTNH ? 32 : 16), + ItemUtils.getItemStackOfAmountFromOreDict("foilCopper", GTNH ? 8 : 4), + ItemUtils.getItemStackWithMeta(LoadedMods.IndustrialCraft2, "IC2:itemPartCarbonMesh", "RawCarbonMesh", 0, 64), + + }, + CI.getTieredFluid(3, 144), + ItemUtils.getSimpleStack(ModItems.itemLavaFilter, GTNH ? 8 : 16), + 1600, + 240 + ); + } + + //Air Intake Hatch + ItemList FluidRegulator_IV = ItemUtils.getValueOfItemList("FluidRegulator_IV", ItemList.Pump_IV); + ItemStack aTieredFluidRegulator = CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK ? FluidRegulator_IV.get(1) : ItemList.Pump_IV.get(1); + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[6], ItemList.Casing_Grate.get(1), CI.component_Plate[6], + CI.component_Plate[6], aTieredFluidRegulator, CI.component_Plate[6], + CI.getTieredCircuit(4), ItemList.Hatch_Input_IV.get(1), CI.getTieredCircuit(4), + GregtechItemList.Hatch_Air_Intake.get(1)); + + if (CORE.ConfigSwitches.enableMultiblock_LiquidFluorideThoriumReactor){ + + //Thorium Reactor + RECIPE_LFTRController = GregtechItemList.ThoriumReactor.get(1); + RECIPE_LFTRInnerCasing = GregtechItemList.Casing_Reactor_II.get(1); //Zeron + RECIPE_LFTROuterCasing = GregtechItemList.Casing_Reactor_I.get(1); //Hastelloy + + ItemStack controlCircuit = ItemUtils.getSimpleStack(ModItems.itemCircuitLFTR); + if(!GTNH) { + RecipeUtils.addShapedGregtechRecipe( + controlCircuit, "cableGt12NaquadahAlloy", controlCircuit, + "plateDoubleHastelloyN", GregtechItemList.Gregtech_Computer_Cube.get(1), "plateDoubleHastelloyN", + "plateThorium232", CI.machineHull_EV, "plateThorium232", + RECIPE_LFTRController); + } else { + RecipeUtils.addShapedGregtechRecipe( + controlCircuit, "cableGt12NaquadahAlloy", controlCircuit, + "plateDoubleHastelloyN", GregtechItemList.Gregtech_Computer_Cube.get(1), "plateDoubleHastelloyN", + "plateThorium232", CI.machineHull_IV, "plateThorium232", + RECIPE_LFTRController); + } + RecipeUtils.addShapedGregtechRecipe( + "plateDoubleZeron100", CI.craftingToolScrewdriver, "plateDoubleZeron100", + "gearGtTalonite", CI.fieldGenerator_MV, "gearGtTalonite", + "plateDoubleZeron100", CI.craftingToolHammer_Hard, "plateDoubleZeron100", + RECIPE_LFTRInnerCasing); + + ItemStack IC2HeatPlate = ItemUtils.getItemStackFromFQRN("IC2:reactorPlatingHeat", 1); + RecipeUtils.addShapedGregtechRecipe( + "plateDoubleHastelloyN", IC2HeatPlate, "plateDoubleHastelloyN", + IC2HeatPlate, "frameGtHastelloyC276", IC2HeatPlate, + "plateDoubleHastelloyN", IC2HeatPlate, "plateDoubleHastelloyN", + RECIPE_LFTROuterCasing); + + //LFTR Control Circuit + ItemStack circuitT5 = ItemList.Circuit_Master.get(1); + GT_Values.RA.addAssemblerRecipe(circuitT5, CI.fieldGenerator_HV, controlCircuit, 240*20, 500); + + + //Fission Fuel Plant + RecipeUtils.addShapedGregtechRecipe( + CI.getTieredCircuitOreDictName(5), CI.craftingToolSolderingIron, CI.getTieredCircuitOreDictName(5), + "plateDenseTungstenSteel", GregtechItemList.Gregtech_Computer_Cube.get(1), "plateDenseTungstenSteel", + "gearGtStellite", CI.machineHull_IV, "gearGtStellite", + GregtechItemList.Industrial_FuelRefinery.get(1)); + + ItemStack mInnerTank; + + if (GTNH || !CORE.ConfigSwitches.enableMachine_FluidTanks){ + mInnerTank = ItemList.Quantum_Tank_LV.get(1); + } + else { + mInnerTank = GregtechItemList.GT_FluidTank_EV.get(1); + } + + //Incoloy Casing + RecipeUtils.addShapedGregtechRecipe( + "plateIncoloyDS", "pipeHugeStaballoy", "plateIncoloyDS", + "gearGtIncoloyDS", mInnerTank, "gearGtIncoloyDS", + "plateIncoloyDS", "pipeHugeStaballoy", "plateIncoloyDS", + GregtechItemList.Casing_Refinery_Internal.get(Casing_Amount)); + + //Hastelloy-N Sealant Casing + RecipeUtils.addShapedGregtechRecipe( + "plateIncoloyMA956", "plateHastelloyN", "plateIncoloyMA956", + "plateHastelloyN", "frameGtHastelloyC276", "plateHastelloyN", + "plateIncoloyMA956", "plateHastelloyN", "plateIncoloyMA956", + GregtechItemList.Casing_Refinery_External.get(Casing_Amount)); + + //Hastelloy-X Structural Casing + RecipeUtils.addShapedGregtechRecipe( + "ringInconel792", "gearGtHastelloyX", CI.component_Plate[5], + CI.craftingToolHammer_Hard, "frameGtHastelloyC276", CI.craftingToolWrench, + CI.component_Plate[5], CI.getTieredMachineCasing(4), "ringInconel792", + GregtechItemList.Casing_Refinery_Structural.get(Casing_Amount)); + + RecipeUtils.addShapedGregtechRecipe( + CI.getPlate(5, 1), ALLOY.HASTELLOY_X.getPlateDouble(1), CI.getPlate(5, 1), + CI.getPlate(5, 1), CI.getTieredMachineCasing(5), CI.getPlate(5, 1), + CI.getRobotArm(5, 1), ItemList.Casing_FrostProof.get(1), CI.getRobotArm(5, 1), + GregtechItemList.ColdTrap_IV.get(1)); + RecipeUtils.addShapedGregtechRecipe( + CI.getPlate(7, 1), ALLOY.HS188A.getPlateDouble(1), CI.getPlate(7, 1), + CI.getPlate(7, 1), GregtechItemList.ColdTrap_IV.get(1), CI.getPlate(7, 1), + CI.getRobotArm(7, 1), ItemList.Casing_FrostProof.get(1), CI.getRobotArm(7, 1), + GregtechItemList.ColdTrap_ZPM.get(1)); + + RecipeUtils.addShapedGregtechRecipe( + CI.getFieldGenerator(3, 1), CI.getRobotArm(5, 1), CI.getPlate(5, 1), + ALLOY.HASTELLOY_N.getPlateDouble(1), ItemList.Machine_IV_ChemicalReactor.get(1), ALLOY.HASTELLOY_N.getPlateDouble(1), + CI.getPlate(5, 1), ALLOY.HASTELLOY_N.getPlateDouble(1), CI.getFieldGenerator(3, 1), + GregtechItemList.ReactorProcessingUnit_IV.get(1)); + RecipeUtils.addShapedGregtechRecipe( + CI.getFieldGenerator(5, 1), CI.getRobotArm(7, 1), CI.getPlate(7, 1), + ALLOY.HS188A.getPlateDouble(1), GregtechItemList.ReactorProcessingUnit_IV.get(1), ALLOY.HS188A.getPlateDouble(1), + CI.getPlate(7, 1), ALLOY.HS188A.getPlateDouble(1), CI.getFieldGenerator(5, 1), + GregtechItemList.ReactorProcessingUnit_ZPM.get(1)); + + } + + //Shelves + RecipeUtils.addShapedGregtechRecipe( + "screwWood", "plateWood", "screwWood", + CI.craftingToolHammer_Hard, "frameGtWood", CI.craftingToolHammer_Soft, + "plateWood", "plateWood", "plateWood", + GregtechItemList.GT4_Shelf.get(2)); + + RecipeUtils.addShapelessGregtechRecipe(new ItemStack[] {GregtechItemList.GT4_Shelf.get(1)}, GregtechItemList.GT4_Shelf_Compartment.get(1)); + RecipeUtils.addShapelessGregtechRecipe(new ItemStack[] {GregtechItemList.GT4_Shelf_Compartment.get(1)}, GregtechItemList.GT4_Shelf_Desk.get(1)); + RecipeUtils.addShapelessGregtechRecipe(new ItemStack[] {GregtechItemList.GT4_Shelf_Desk.get(1)}, GregtechItemList.GT4_Shelf_Iron.get(1)); + RecipeUtils.addShapelessGregtechRecipe(new ItemStack[] {GregtechItemList.GT4_Shelf_Iron.get(1)}, GregtechItemList.GT4_Shelf_FileCabinet.get(1)); + RecipeUtils.addShapelessGregtechRecipe(new ItemStack[] {GregtechItemList.GT4_Shelf_FileCabinet.get(1)}, GregtechItemList.GT4_Shelf.get(1)); + + + //Cyclotron + if (CORE.ConfigSwitches.enableMultiblock_Cyclotron){ + RECIPE_CyclotronController = GregtechItemList.COMET_Cyclotron.get(1); + RECIPE_CyclotronOuterCasing = GregtechItemList.Casing_Cyclotron_External.get(Casing_Amount); + RECIPE_CyclotronInnerCoil = GregtechItemList.Casing_Cyclotron_Coil.get(1); + + //Outer Casing + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + ItemList.Casing_FrostProof.get(1), + ItemUtils.simpleMetaStack("miscutils:itemDehydratorCoilWire", 0, GTNH ? 8 : 4), + ALLOY.INCOLOY_DS.getPlate(GTNH ? 16 : 8), + ALLOY.INCONEL_690.getScrew(GTNH ? 32 : 16), + ALLOY.EGLIN_STEEL.getLongRod(GTNH ? 16 : 4), + CI.getElectricPiston(3, GTNH ? 4 : 2) + }, + ALLOY.ZIRCONIUM_CARBIDE.getFluidStack(144 * 8), //Input Fluid + RECIPE_CyclotronOuterCasing, + 30 * 20 * 2, + MaterialUtils.getVoltageForTier(4)); + + + //Inner Coil + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + ItemList.Casing_Coil_Nichrome.get(1), + ItemUtils.simpleMetaStack("miscutils:itemDehydratorCoilWire", 1, GTNH ? 32 : 8), + ALLOY.INCOLOY_MA956.getPlate(GTNH ? 16 : 8), + ALLOY.TANTALLOY_61.getBolt(GTNH ? 32 : 16), + ALLOY.INCOLOY_020.getScrew(GTNH ? 64 : 32), + CI.getFieldGenerator(4, GTNH ? 2 : 1) + }, + ALLOY.HG1223.getFluidStack(144 * 5), //Input Fluid + RECIPE_CyclotronInnerCoil, + 60 * 20 * 2, + MaterialUtils.getVoltageForTier(5)); + + + //Controller + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + CI.machineHull_IV, + ItemUtils.getSimpleStack(RECIPE_CyclotronInnerCoil, GTNH ? 4 : 2), + ALLOY.INCOLOY_020.getPlate(GTNH ? 16 : 8), + ALLOY.TANTALLOY_61.getGear(GTNH ? 4 : 2), + ALLOY.INCOLOY_MA956.getScrew(GTNH ? 64 : 16), + ItemUtils.getItemStackOfAmountFromOreDict(CI.getTieredCircuitOreDictName(GTNH ? 6 : 5), GTNH ? 8 : 16) + }, + ALLOY.INCOLOY_020.getFluidStack(144 * 9), //Input Fluid + RECIPE_CyclotronController, + 60 * 20 * 5, + MaterialUtils.getVoltageForTier(5)); + } + + // Mazut + GT_ModHandler.addCraftingRecipe( + GregtechItemList.Controller_LargeSemifluidGenerator.get(1L), + CI.bitsd, + new Object[]{ + "PCP", + "EME", + "GWG", + 'M', ItemList.Hull_EV, + 'P', ItemList.Electric_Piston_EV, + 'E', ItemList.Electric_Pump_EV, + 'C', OrePrefixes.circuit.get(Materials.Data), + 'W', OrePrefixes.cableGt08.get(Materials.Electrum), + 'G', ALLOY.INCONEL_792.getGear(1) + }); + + + if (CORE.ConfigSwitches.enableMultiblock_PowerSubstation){ + RecipeUtils.addShapedRecipe( + "screwTitanium", "plateIncoloy020", "screwTitanium", + "plateIncoloy020", "frameGtIncoloyMA956", "plateIncoloy020", + "screwTitanium", "plateIncoloy020", "screwTitanium", + GregtechItemList.Casing_Power_SubStation.get(Casing_Amount)); + + ItemStack mBattery = ItemUtils.getSimpleStack(ModItems.itemCircuitLFTR); + + RecipeUtils.addShapedRecipe( + "plateIncoloyMA956", mBattery, "plateIncoloyMA956", + GregtechItemList.Casing_Power_SubStation.get(1), GregtechItemList.Casing_Vanadium_Redox.get(1), GregtechItemList.Casing_Power_SubStation.get(1), + "plateIncoloy020", "plateIncoloyMA956", "plateIncoloy020", + GregtechItemList.PowerSubStation.get(1)); + } + + if (CORE.ConfigSwitches.enableMultiblock_IndustrialThermalCentrifuge){ + RecipeUtils.addShapedRecipe( + "plateRedSteel", CI.craftingToolHammer_Hard, "plateRedSteel", + "plateRedSteel", "frameGtBlackSteel", "plateRedSteel", + "plateRedSteel", CI.craftingToolWrench, "plateRedSteel", + GregtechItemList.Casing_ThermalCentrifuge.get(Casing_Amount)); + + RecipeUtils.addShapedRecipe( + "plateRedSteel","circuitData","plateRedSteel", + "stickTalonite",EV_MACHINE_ThermalCentrifuge,"stickTalonite", + "plateRedSteel","gearGtTalonite","plateRedSteel", + GregtechItemList.Industrial_ThermalCentrifuge.get(1)); + } + + if (CORE.ConfigSwitches.enableMultiblock_IndustrialWashPlant){ + RecipeUtils.addShapedRecipe( + "plateGrisium", CI.craftingToolHammer_Hard, "plateGrisium", + "plateTalonite", "frameGtGrisium", "plateTalonite", + "plateGrisium", CI.craftingToolWrench, "plateGrisium", + GregtechItemList.Casing_WashPlant.get(Casing_Amount)); + + RecipeUtils.addShapedRecipe( + "plateGrisium",CI.electricPump_MV,"plateGrisium", + "plateTalonite",EV_MACHINE_OreWasher,"plateTalonite", + "plateGrisium","circuitData","plateGrisium", + GregtechItemList.Industrial_WashPlant.get(1)); + } + + if (CORE.ConfigSwitches.enableMultiblock_LargeAutoCrafter) { + + ItemStack aCoreBlock = CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK + ? ItemUtils.getValueOfItemList("Block_IridiumTungstensteel", 1, ItemUtils.getItemStackOfAmountFromOreDict("blockOsmiridium", 1)) + : ItemUtils.getItemStackOfAmountFromOreDict("blockOsmiridium", 1); + + aCoreBlock.stackSize = GTNH ? 2 : 1; + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + ItemUtils.getSimpleStack(GregtechItemList.Casing_Multi_Use.get(1), GTNH ? 2 : 1), + aCoreBlock, + CI.getTieredComponent(OrePrefixes.circuit, GTNH ? 3 : 2, 16), + CI.getTieredComponent(OrePrefixes.screw, GTNH ? 6 : 5, 32), + CI.getTieredComponent(OrePrefixes.bolt, GTNH ? 6 : 5, 12), + CI.getTieredComponent(OrePrefixes.plate, GTNH ? 7 : 6, 8), }, + CI.getTertiaryTieredFluid(6, 144 * (GTNH ? 12 : 4)), + GregtechItemList.Casing_Autocrafter.get(Casing_Amount), 20 * 60 * 2, + MaterialUtils.getVoltageForTier(GTNH ? 6 : 5)); + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + GregtechItemList.Casing_Refinery_Structural.get(4), + ItemUtils.getSimpleStack(ModItems.itemCircuitLFTR, GTNH ? 2 : 1), + CI.getTieredComponent(OrePrefixes.cableGt08, GTNH ? 7 : 6, GTNH ? 32 : 16), + CI.getTransmissionComponent(GTNH ? 6 : 5, 2), + GregtechItemList.Gregtech_Computer_Cube.get(1), + }, + CI.getTieredFluid(7, 144 * (GTNH ? 32 : 8)), GregtechItemList.GT4_Multi_Crafter.get(1), + 20 * 60 * 5, MaterialUtils.getVoltageForTier(GTNH ? 6 : 5)); + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + ItemUtils.getSimpleStack(GregtechItemList.Casing_Multi_Use.get(1), Casing_Amount), + CI.getEmitter(GTNH ? 5 : 4, GTNH ? 4 : 2), CI.getRobotArm(GTNH ? 5 : 4, GTNH ? 4 : 2), + CI.getTieredComponent(OrePrefixes.circuit, GTNH ? 3 : 2, 8), + CI.getTieredComponent(OrePrefixes.screw, GTNH ? 4 : 3, 8), + CI.getTieredComponent(OrePrefixes.plate, 5, GTNH ? 16 : 4), }, + CI.getAlternativeTieredFluid(5, 144 * 4), ItemUtils.getSimpleStack(ModBlocks.blockProjectTable), + 20 * 30 * 3, MaterialUtils.getVoltageForTier(GTNH ? 5 : 4)); + + } + + if (CORE.ConfigSwitches.enableMultiblock_IndustrialCuttingMachine){ + ItemStack plate = ALLOY.MARAGING300.getPlate(1); + RecipeUtils.addShapedRecipe( + plate, CI.craftingToolHammer_Hard, plate, + "plateStellite", "frameGtTalonite", "plateStellite", + plate, CI.craftingToolWrench, plate, + GregtechItemList.Casing_CuttingFactoryFrame.get(Casing_Amount)); + + RecipeUtils.addShapedRecipe( + plate,CI.getTieredCircuit(3),plate, + "wireFinePlatinum", EV_MACHINE_Cutter, "wireFinePlatinum", + plate,CI.getTieredCircuit(4),plate, + GregtechItemList.Industrial_CuttingFactoryController.get(1)); + } + + //EV_MACHINE_Extruder + if (CORE.ConfigSwitches.enableMultiblock_IndustrialExtrudingMachine){ + ItemStack plate = ALLOY.INCONEL_690.getPlate(1); + RecipeUtils.addShapedRecipe( + plate, CI.craftingToolHammer_Hard, plate, + "plateTalonite", "frameGtStaballoy", "plateTalonite", + plate, CI.craftingToolWrench, plate, + GregtechItemList.Casing_Extruder.get(Casing_Amount)); + + RecipeUtils.addShapedRecipe( + plate,CI.getTieredCircuit(4),plate, + CI.electricPiston_EV, EV_MACHINE_Extruder, CI.electricPiston_EV, + plate,CI.getTieredCircuit(4),plate, + GregtechItemList.Industrial_Extruder.get(1)); + } + + if (CORE.ConfigSwitches.enableMultiblock_IndustrialFishingPort){ + ItemStack plate = ALLOY.AQUATIC_STEEL.getPlate(1); + RecipeUtils.addShapedRecipe( + plate, CI.craftingToolHammer_Hard, plate, + "plateEglinSteel", "frameGtEglinSteel", "plateEglinSteel", + plate, CI.craftingToolWrench, plate, + GregtechItemList.Casing_FishPond.get(Casing_Amount)); + + RecipeUtils.addShapedRecipe( + plate,CI.getTieredCircuit(3),plate, + "wireFineElectrum", ItemUtils.getSimpleStack(ModBlocks.blockFishTrap), "wireFineElectrum", + plate,CI.getTieredCircuit(2),plate, + GregtechItemList.Industrial_FishingPond.get(1)); + } + + if (true) { + //Advanced Vacuum Freezer + ItemStack plate = ALLOY.HG1223.getPlateDouble(1); + ItemStack gear = ALLOY.INCOLOY_MA956.getGear(1); + ItemStack frame = ALLOY.LAFIUM.getFrameBox(1); + ItemStack cell1 = ItemList.Reactor_Coolant_He_6.get(1); + ItemStack cell2 = ItemList.Reactor_Coolant_NaK_6.get(1); + + RecipeUtils.addShapedRecipe( + plate, gear, plate, + cell1, frame, cell2, + plate, gear, plate, + GregtechItemList.Casing_AdvancedVacuum.get(Casing_Amount)); + RecipeUtils.addShapedRecipe( + gear,CI.getTieredCircuit(6),gear, + CI.electricPiston_IV, GregtechItemList.Casing_AdvancedVacuum.get(1), CI.electricPiston_IV, + plate, GregtechItemList.Gregtech_Computer_Cube.get(1), plate, + GregtechItemList.Industrial_Cryogenic_Freezer.get(1)); + + //Advanced Blast Furnace + plate = ALLOY.HASTELLOY_N.getPlateDouble(1); + gear = ALLOY.HASTELLOY_W.getGear(1); + frame = ALLOY.HASTELLOY_X.getFrameBox(1); + cell1 = ItemUtils.simpleMetaStack("IC2:reactorHeatSwitchDiamond:1", 1, 1); + cell2 = ItemUtils.simpleMetaStack("IC2:reactorVentGold:1", 1, 1); + ItemStack cell3 = ItemUtils.simpleMetaStack("IC2:reactorVentDiamond:1:1", 1, 1); + + RecipeUtils.addShapedRecipe( + plate, cell1, plate, + cell3, frame, cell2, + plate, gear, plate, + GregtechItemList.Casing_Adv_BlastFurnace.get(Casing_Amount)); + RecipeUtils.addShapedRecipe( + gear,CI.getTieredCircuit(6),gear, + CI.robotArm_IV, GregtechItemList.Casing_Adv_BlastFurnace.get(1), CI.robotArm_IV, + plate, GregtechItemList.Gregtech_Computer_Cube.get(1), plate, + GregtechItemList.Machine_Adv_BlastFurnace.get(1)); + + //Advanced Implosion Compressor + plate = ItemUtils.getItemStackOfAmountFromOreDict("plateAlloyIridium", 1); + gear = ALLOY.LEAGRISIUM.getGear(1); + frame = ALLOY.CINOBITE.getFrameBox(1); + cell1 = ItemUtils.simpleMetaStack("IC2:reactorHeatSwitchDiamond:1", 1, 1); + cell2 = ItemUtils.simpleMetaStack("IC2:reactorVentGold:1", 1, 1); + + RecipeUtils.addShapedRecipe( + gear,CI.getTieredCircuit(6),gear, + CI.fieldGenerator_IV, CI.machineHull_ZPM, CI.robotArm_IV, + plate, GregtechItemList.Gregtech_Computer_Cube.get(1), plate, + GregtechItemList.Machine_Adv_ImplosionCompressor.get(1)); + + + + //Supply Depot + plate = ALLOY.TUNGSTEN_CARBIDE.getPlateDouble(1); + gear = ALLOY.TRINIUM_TITANIUM.getRing(1); + frame = ALLOY.TUNGSTEN_CARBIDE.getFrameBox(1); + cell1 = CI.conveyorModule_EV; + cell2 = CI.electricMotor_IV; + ItemStack casingAmazon = GregtechItemList.Casing_AmazonWarehouse.get(1); + ItemStack aTieredUnboxinator = CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK ? ItemUtils.getValueOfItemList("Machine_LuV_Unboxinator", 1, ItemList.Machine_IV_Unboxinator.get(1)) : ItemList.Machine_IV_Unboxinator.get(1); + + + RecipeUtils.addShapedRecipe( + plate, ItemUtils.getItemStackOfAmountFromOreDict("cableGt12VanadiumGallium", 1), plate, + cell1, frame, cell2, + plate, gear, plate, + GregtechItemList.Casing_AmazonWarehouse.get(Casing_Amount)); + RecipeUtils.addShapedRecipe( + casingAmazon, CI.getTieredCircuit(7), casingAmazon, + CI.robotArm_LuV, aTieredUnboxinator, CI.robotArm_LuV, + CI.conveyorModule_LuV, GregtechItemList.Gregtech_Computer_Cube.get(1), CI.conveyorModule_LuV, + GregtechItemList.Amazon_Warehouse_Controller.get(1)); + + + //Industrial Mixing Machine + RecipeUtils.addShapedRecipe( + "plateStaballoy",CI.getTieredCircuit(5),"plateStaballoy", + "plateZirconiumCarbide", EV_MACHINE_Mixer, "plateZirconiumCarbide", + "plateStaballoy",CI.getTieredCircuit(5),"plateStaballoy", + GregtechItemList.Industrial_Mixer.get(1)); + + } + + if (CORE.ConfigSwitches.enableMultiblock_IndustrialMultiMachine){ + ItemStack plate = ALLOY.STABALLOY.getPlate(1); + + + ItemStack o_Compressor; + ItemStack o_Lathe; + ItemStack o_Electromagnet; + ItemStack o_Fermenter; + ItemStack o_Distillery; + ItemStack o_Extractor; + if (GTNH) { + o_Compressor = ItemList.Machine_IV_Compressor.get(1); + o_Lathe = ItemList.Machine_IV_Lathe.get(1); + o_Electromagnet = ItemList.Machine_IV_Polarizer.get(1); + o_Fermenter = ItemList.Machine_IV_Fermenter.get(1); + o_Distillery = ItemList.Machine_IV_FluidExtractor.get(1); + o_Extractor = ItemList.Machine_IV_Extractor.get(1); + } + else { + o_Compressor = ItemList.Machine_EV_Compressor.get(1); + o_Lathe = ItemList.Machine_EV_Lathe.get(1); + o_Electromagnet = ItemList.Machine_EV_Polarizer.get(1); + o_Fermenter = ItemList.Machine_EV_Fermenter.get(1); + o_Distillery = ItemList.Machine_EV_FluidExtractor.get(1); + o_Extractor = ItemList.Machine_EV_Extractor.get(1); + } + RecipeUtils.addShapedRecipe( + plate, CI.craftingToolHammer_Hard, plate, + "plateStainlessSteel", "frameGtZirconiumCarbide", "plateStainlessSteel", + plate, CI.craftingToolWrench, plate, + GregtechItemList.Casing_Multi_Use.get(Casing_Amount)); + + RecipeUtils.addShapedRecipe( + o_Compressor, o_Lathe, o_Electromagnet, + plate, ItemUtils.getSimpleStack(ModBlocks.blockProjectTable), plate, + o_Fermenter, o_Distillery, o_Extractor, + GregtechItemList.Industrial_MultiMachine.get(1)); + } + + + + + /* + * 6/1/19 - Content additions + */ + + if (CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK) { + + /* + * Fusion MK4 + */ + + //Fusion MK4 Controller + CORE.RA.addAssemblylineRecipe( + ItemList.FusionComputer_UV.get(1), + (int) GT_Values.V[5], + new Object[] { + new Object[] {CI.getTieredCircuitOreDictName(9), 4 * (GTNH ? 2 : 1)}, + new Object[] {CI.getTieredCircuitOreDictName(7), 32 * (GTNH ? 2 : 1)}, + ItemUtils.getItemStackOfAmountFromOreDict("wireGt16Superconductor", 8 * (GTNH ? 4 : 2)), + ItemUtils.getItemStackOfAmountFromOreDict("plateDenseNeutronium", 2 * (GTNH ? 4 : 1)), + ItemUtils.getSimpleStack((GTNH ? CI.fieldGenerator_MAX : CI.fieldGenerator_ZPM), 5), + ItemList.Energy_LapotronicOrb2.get(1 * (GTNH ? 64 : 8)), + GTNH ? GregtechItemList.Compressed_Fusion_Reactor.get(1) : ItemList.FusionComputer_UV.get(1), + GregtechItemList.Casing_Fusion_Internal.get(1) + }, + new FluidStack[] { + ALLOY.PIKYONIUM.getFluidStack(32 * 144 * (GTNH ? 2 : 1)), + ALLOY.HG1223.getFluidStack(64 * 144) + }, + GregtechItemList.FusionComputer_UV2.get(1), + (int) GT_Values.V[6], + (int) GT_Values.V[8]); + + //Fusion MK4 Casing + CORE.RA.addAssemblylineRecipe( + ItemList.Casing_Fusion2.get(1), + (int) GT_Values.V[4], + new Object[] { + new Object[] {CI.getTieredCircuitOreDictName(5), 8 * (GTNH ? 2 : 1)}, + new Object[] {CI.getTieredCircuitOreDictName(4), 16 * (GTNH ? 2 : 1)}, + ItemUtils.getItemStackOfAmountFromOreDict("blockTungstenCarbide", 4 * (GTNH ? 2 : 1)), + ItemUtils.getItemStackOfAmountFromOreDict("plateNeutronium", 2 * (GTNH ? 2 : 1)), + ItemUtils.getSimpleStack((GTNH ? CI.electricMotor_MAX : CI.electricMotor_ZPM), 3 * (GTNH ? 2 : 1)), + ItemUtils.getSimpleStack((GTNH ? CI.electricPiston_UV : CI.electricPiston_LuV), 4 * (GTNH ? 2 : 1)), + ItemUtils.getSimpleStack((GTNH ? CI.machineHull_MAX : CI.machineHull_ZPM), 1 * (GTNH ? 2 : 1)), + ItemList.Casing_Fusion2.get(1) + }, + new FluidStack[] { + Materials.NaquadahAlloy.getMolten(576 * (GTNH ? 2 : 1)), + ALLOY.ZERON_100.getFluidStack(16 * 144) + }, + GregtechItemList.Casing_Fusion_External.get(1), + (int) GT_Values.V[5], + (int) GT_Values.V[7]); + + //Fusion MK4 Coil + CORE.RA.addAssemblylineRecipe( + ItemList.Casing_Fusion_Coil.get(1), + (int) GT_Values.V[4], + new Object[] { + new Object[] {CI.getTieredCircuitOreDictName(8), 4 * (GTNH ? 2 : 1)}, + new Object[] {CI.getTieredCircuitOreDictName(6), 8 * (GTNH ? 2 : 1)}, + ItemUtils.getItemStackOfAmountFromOreDict("plateNeutronium", 2 * (GTNH ? 3 : 1)), + ItemUtils.getSimpleStack((GTNH ? CI.emitter_MAX : CI.emitter_ZPM), 2 * (GTNH ? 2 : 1)), + ItemUtils.getSimpleStack((GTNH ? CI.sensor_MAX : CI.sensor_ZPM), 2 * (GTNH ? 2 : 1)), + ItemUtils.getSimpleStack((GTNH ? CI.fieldGenerator_MAX : CI.fieldGenerator_LuV), 2 * (GTNH ? 2 : 1)), + new Object[] {CI.getTieredCircuitOreDictName(8), 8}, + ItemList.Energy_LapotronicOrb2.get(2 * (GTNH ? 16 : 1)), + ItemList.Casing_Fusion_Coil.get(1) + }, + new FluidStack[] { + ALLOY.CINOBITE.getFluidStack(16 * 144 * (GTNH ? 2 : 1)), + ALLOY.ABYSSAL.getFluidStack(64 * 144) + }, + GregtechItemList.Casing_Fusion_Internal.get(1), + (int) GT_Values.V[5], + (int) GT_Values.V[7]); + + + + + ItemStack aDrillController = ItemUtils.getValueOfItemList("OreDrill4", ItemList.Hull_UV).get(1); + + //Drilling Platform + /*CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + aDrillController, + ItemUtils.getItemStackOfAmountFromOreDict("frameGtTriniumNaquadahCarbonite", 3), + ItemUtils.getItemStackOfAmountFromOreDict(CI.getTieredCircuitOreDictName(9), 2 * (GTNH ? 4 : 1)), + ItemUtils.getSimpleStack((GTNH ? CI.conveyorModule_UV : CI.conveyorModule_ZPM), 2 * (GTNH ? 2 : 1)), + ItemUtils.getSimpleStack((GTNH ? CI.electricPump_UV : CI.electricPump_ZPM), 4 * (GTNH ? 2 : 1)), + }, + ALLOY.LAFIUM.getFluid(144 * 8 * (GTNH ? 2 : 1)), + GregtechItemList.BedrockMiner_MKI.get(1), + (int) GT_Values.V[5], + (int) GT_Values.V[7]);*/ + + //Drilling Platform Casings + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + ItemUtils.getItemStackOfAmountFromOreDict("frameGtTriniumNaquadahCarbonite", 4), + ItemUtils.getItemStackOfAmountFromOreDict("plateDoubleTriniumTitaniumAlloy", 1 * (GTNH ? 2 : 1)), + ItemUtils.getItemStackOfAmountFromOreDict("gearGtPikyonium64B", 2 * (GTNH ? 2 : 1)), + ALLOY.TRINIUM_REINFORCED_STEEL.getPlateDouble(4 * (GTNH ? 2 : 1)), + ItemUtils.getSimpleStack((GTNH ? CI.machineHull_UV : CI.machineHull_LuV), 1 * (GTNH ? 2 : 1)), + }, + ALLOY.MARAGING350.getFluidStack(144 * 16 * (GTNH ? 2 : 1)), + GregtechItemList.Casing_BedrockMiner.get(1), + (int) GT_Values.V[4], + (int) GT_Values.V[6]); + + + + + + + + + + } + + + + + + + + + + + } + + int aCostMultiplier = GTNH ? 2 : 1; + + //Mystic Frame + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + GregtechItemList.Casing_Multi_Use.get(1), + ItemList.Field_Generator_MV.get(1, CI.circuitTier7), + ItemList.Field_Generator_HV.get(1, CI.circuitTier7), + ItemList.Emitter_HV.get(1, CI.circuitTier7), + ItemList.Sensor_HV.get(1, CI.circuitTier7), + CI.getTieredComponent(OrePrefixes.plate, 7, 8 * aCostMultiplier), + CI.getTieredComponent(OrePrefixes.wireGt08, 8, 4 * aCostMultiplier), + }, + CI.getTieredFluid(6, (144 * 8)), //Input Fluid + ItemUtils.getSimpleStack(Dimension_Everglades.blockPortalFrame, 2), + 45 * 20 * 1 * (6), + MaterialUtils.getVoltageForTier(6)); + + + //Player Doors + ItemStack[] aDoorInputs = new ItemStack[] { + ItemUtils.getSimpleStack(Blocks.log2), + ItemUtils.getSimpleStack(Blocks.iron_block), + ItemUtils.getSimpleStack(Blocks.glass), + ItemUtils.getSimpleStack(Blocks.packed_ice), + ItemUtils.getSimpleStack(Blocks.cactus), + }; + ItemStack[] aDoorOutputs = new ItemStack[] { + ItemUtils.getSimpleStack(ModBlocks.blockPlayerDoorWooden), + ItemUtils.getSimpleStack(ModBlocks.blockPlayerDoorIron), + ItemUtils.getSimpleStack(ModBlocks.blockPlayerDoorCustom_Glass), + ItemUtils.getSimpleStack(ModBlocks.blockPlayerDoorCustom_Ice), + ItemUtils.getSimpleStack(ModBlocks.blockPlayerDoorCustom_Cactus), + }; + + for (int y = 0; y < aDoorInputs.length; y++) { + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + ItemUtils.getSimpleStack(Items.iron_door), + aDoorInputs[y], + ItemList.Sensor_LV.get(1, CI.circuitTier7), + CI.getTieredComponent(OrePrefixes.plate, 1, 2 * aCostMultiplier), + CI.getTieredComponent(OrePrefixes.wireGt02, 1, 2 * aCostMultiplier), + ItemUtils.getSimpleStack(Items.redstone, 16) + }, + CI.getTieredFluid(1, (144 * 2)), //Input Fluid + aDoorOutputs[y], + 100, + MaterialUtils.getVoltageForTier(1)); + } + + + + + + + Logger.INFO("Done loading recipes for the Various machine blocks."); + } + + + private static void controlCores() { + + Material[] aMat_A = new Material[] { + ALLOY.POTIN, + ALLOY.ZIRCONIUM_CARBIDE, + ALLOY.TANTALLOY_61, + ALLOY.INCONEL_792, + ALLOY.STABALLOY, + ALLOY.TALONITE, + ALLOY.HASTELLOY_N, + ALLOY.HG1223, + ALLOY.LAFIUM, + ALLOY.PIKYONIUM + }; + Material[] aMat_B = new Material[] { + ALLOY.TUMBAGA, + ALLOY.SILICON_CARBIDE, + ALLOY.EGLIN_STEEL, + ALLOY.NICHROME, + ALLOY.TUNGSTEN_CARBIDE, + ALLOY.STELLITE, + ALLOY.HASTELLOY_C276, + ALLOY.NITINOL_60, + ALLOY.ZERON_100, + ALLOY.CINOBITE + }; + + Item aBaseCore = ModItems.itemControlCore; + ItemStack[] aInputPrevTier = new ItemStack[] { + GTNH ? ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore3", 1) : ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore2", 1), + ItemUtils.simpleMetaStack(aBaseCore, 0, 1), + ItemUtils.simpleMetaStack(aBaseCore, 1, 1), + ItemUtils.simpleMetaStack(aBaseCore, 2, 1), + ItemUtils.simpleMetaStack(aBaseCore, 3, 1), + ItemUtils.simpleMetaStack(aBaseCore, 4, 1), + ItemUtils.simpleMetaStack(aBaseCore, 5, 1), + ItemUtils.simpleMetaStack(aBaseCore, 6, 1), + ItemUtils.simpleMetaStack(aBaseCore, 7, 1), + ItemUtils.simpleMetaStack(aBaseCore, 8, 1), + }; + ItemStack[] aOutput = new ItemStack[] { + ItemUtils.simpleMetaStack(aBaseCore, 0, 1), + ItemUtils.simpleMetaStack(aBaseCore, 1, 1), + ItemUtils.simpleMetaStack(aBaseCore, 2, 1), + ItemUtils.simpleMetaStack(aBaseCore, 3, 1), + ItemUtils.simpleMetaStack(aBaseCore, 4, 1), + ItemUtils.simpleMetaStack(aBaseCore, 5, 1), + ItemUtils.simpleMetaStack(aBaseCore, 6, 1), + ItemUtils.simpleMetaStack(aBaseCore, 7, 1), + ItemUtils.simpleMetaStack(aBaseCore, 8, 1), + ItemUtils.simpleMetaStack(aBaseCore, 9, 1), + + }; + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + CI.machineHull_HV, + aOutput[1], + aMat_A[1].getGear(GTNH ? 4 : 2), + aMat_B[2].getPlateDouble(GTNH ? 16 : 8), + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore"+(GTNH ? "2" : "1"), GTNH ? 4 : 2), + ItemUtils.getItemStackOfAmountFromOreDict(CI.getTieredCircuitOreDictName(GTNH ? 3 : 2), GTNH ? 10 : 5) + }, + aMat_B[3].getFluidStack(144 * 8), //Input Fluid + GregtechItemList.Hatch_Control_Core.get(1), + 60 * 20 * 5, + MaterialUtils.getVoltageForTier(3)); + + + for (int i = 0; i < 10; i++) { + boolean aDub = false; + ItemStack aPlateStack = aMat_A[i].getPlateDouble((GTNH ? 16 : 8) * (aDub ? 2 : 1)); + ItemStack aGearStack = aMat_B[i].getGear(GTNH ? 4 : 2 * (aDub ? 2 : 1)); + ItemStack aRodStack = aMat_A[i].getLongRod(GTNH ? 16 : 8 * (aDub ? 2 : 1)); + ItemStack aScrewStack = aMat_B[i].getScrew(32 * (aDub ? 2 : 1)); + + if (!ItemUtils.checkForInvalidItems(aPlateStack)) { + aPlateStack = aMat_A[i].getPlate((GTNH ? 16 : 8) * (aDub ? 2 : 1) * 2); + if (!ItemUtils.checkForInvalidItems(aPlateStack)) { + aPlateStack = aMat_B[i].getPlateDouble((GTNH ? 16 : 8) * (aDub ? 2 : 1)); + if (!ItemUtils.checkForInvalidItems(aPlateStack)) { + aPlateStack = aMat_B[i].getPlate((GTNH ? 16 : 8) * (aDub ? 2 : 1) * 2); + } + } + } + if (!ItemUtils.checkForInvalidItems(aGearStack)) { + aGearStack = aMat_A[i].getGear(GTNH ? 8 : 4 * (aDub ? 2 : 1)); + } + if (!ItemUtils.checkForInvalidItems(aRodStack)) { + aRodStack = aMat_B[i].getLongRod(GTNH ? 32 : 16 * (aDub ? 2 : 1)); + } + if (!ItemUtils.checkForInvalidItems(aScrewStack)) { + aScrewStack = aMat_A[i].getScrew(32 * (aDub ? 2 : 1)); + } + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + CI.getEnergyCore(i, 4), + aPlateStack, + aGearStack, + aRodStack, + aScrewStack, + ItemUtils.getItemStackOfAmountFromOreDict(CI.getTieredCircuitOreDictName((int) (4+Math.ceil((double) i / (double) 2))), GTNH ? (i * 2 * 2) : (i * 2)) + }, + CI.getTieredFluid(i, 144 * 4 * (i+1)), //Input Fluid + aOutput[i], + 60 * 20 * 1 * (i+1), + MaterialUtils.getVoltageForTier(i)); + } + } + + private static void energyCores() { + + //Simpler Recipes for normal Players, Force assembly crafting in GTNH + if (!GTNH) { + //Buffer Core + /*RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[1], cableTier1, CI.component_Plate[1], + "circuitPrimitive", "plateStaballoy", "circuitPrimitive", + CI.component_Plate[1], cableTier1, CI.component_Plate[1], + RECIPE_BufferCore_ULV); + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[2], cableTier2, CI.component_Plate[2], + RECIPE_BufferCore_ULV, CI.machineHull_HV, RECIPE_BufferCore_ULV, + CI.component_Plate[2], cableTier2, CI.component_Plate[2], + RECIPE_BufferCore_LV); + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[3], cableTier3, CI.component_Plate[3], + RECIPE_BufferCore_LV, CI.circuitTier2, RECIPE_BufferCore_LV, + CI.component_Plate[3], cableTier3, CI.component_Plate[3], + RECIPE_BufferCore_MV); + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[4], cableTier4, CI.component_Plate[4], + RECIPE_BufferCore_MV, CI.circuitTier3, RECIPE_BufferCore_MV, + CI.component_Plate[4], cableTier4, CI.component_Plate[4], + RECIPE_BufferCore_HV); + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[5], cableTier5, CI.component_Plate[5], + RECIPE_BufferCore_HV, CI.circuitTier4, RECIPE_BufferCore_HV, + CI.component_Plate[5], cableTier5, CI.component_Plate[5], + RECIPE_BufferCore_EV); + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[6], cableTier6, CI.component_Plate[6], + RECIPE_BufferCore_EV, CI.circuitTier5, RECIPE_BufferCore_EV, + CI.component_Plate[6], cableTier6, CI.component_Plate[6], + RECIPE_BufferCore_IV); + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[7], cableTier7, CI.component_Plate[7], + RECIPE_BufferCore_IV, CI.circuitTier6, RECIPE_BufferCore_IV, + CI.component_Plate[7], cableTier7, CI.component_Plate[7], + RECIPE_BufferCore_LuV); + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[8], cableTier8, CI.component_Plate[8], + RECIPE_BufferCore_LuV, CI.circuitTier7, RECIPE_BufferCore_LuV, + CI.component_Plate[8], cableTier8, CI.component_Plate[8], + RECIPE_BufferCore_ZPM); + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[9], cableTier9, CI.component_Plate[9], + RECIPE_BufferCore_ZPM, CI.circuitTier8, RECIPE_BufferCore_ZPM, + CI.component_Plate[9], cableTier9, CI.component_Plate[9], + RECIPE_BufferCore_UV); + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[10], cableTier10, CI.component_Plate[10], + RECIPE_BufferCore_UV, CI.circuitTier9, RECIPE_BufferCore_UV, + CI.component_Plate[10], cableTier10, CI.component_Plate[10], + RECIPE_BufferCore_MAX);*/ + + + /*RecipeUtils.addShapedGregtechRecipe( + wireTier1, RECIPE_BufferCore_ULV, wireTier1, + wireTier1, CI.machineCasing_ULV, wireTier1, + CI.circuitPrimitive, CI.circuitTier1, CI.circuitPrimitive, + RECIPE_Buffer_ULV); + RecipeUtils.addShapedGregtechRecipe( + wireTier2, RECIPE_BufferCore_LV, wireTier2, + wireTier2, CI.machineCasing_LV, wireTier2, + CI.circuitTier1, RECIPE_BufferCore_LV, CI.circuitTier1, + RECIPE_Buffer_LV); + RecipeUtils.addShapedGregtechRecipe( + wireTier3, RECIPE_BufferCore_MV, wireTier3, + wireTier3, CI.machineCasing_MV, wireTier3, + CI.circuitTier2, RECIPE_BufferCore_MV, CI.circuitTier2, + RECIPE_Buffer_MV); + RecipeUtils.addShapedGregtechRecipe( + wireTier4, RECIPE_BufferCore_HV, wireTier4, + wireTier4, CI.machineCasing_HV, wireTier4, + CI.circuitTier3, RECIPE_BufferCore_HV, CI.circuitTier3, + RECIPE_Buffer_HV); + RecipeUtils.addShapedGregtechRecipe( + wireTier5, RECIPE_BufferCore_EV, wireTier5, + wireTier5, CI.machineCasing_EV, wireTier5, + CI.circuitTier4, RECIPE_BufferCore_EV, CI.circuitTier4, + RECIPE_Buffer_EV); + RecipeUtils.addShapedGregtechRecipe( + wireTier6, RECIPE_BufferCore_IV, wireTier6, + wireTier6, CI.machineCasing_IV, wireTier6, + CI.circuitTier5, RECIPE_BufferCore_IV, CI.circuitTier5, + RECIPE_Buffer_IV); + RecipeUtils.addShapedGregtechRecipe( + wireTier7, RECIPE_BufferCore_LuV, wireTier7, + wireTier7, CI.machineCasing_LuV, wireTier7, + CI.circuitTier6, RECIPE_BufferCore_LuV, CI.circuitTier6, + RECIPE_Buffer_LuV); + RecipeUtils.addShapedGregtechRecipe( + wireTier8, RECIPE_BufferCore_ZPM, wireTier8, + wireTier8, CI.machineCasing_ZPM, wireTier8, + CI.circuitTier7, RECIPE_BufferCore_ZPM, CI.circuitTier7, + RECIPE_Buffer_ZPM); + RecipeUtils.addShapedGregtechRecipe( + wireTier9, RECIPE_BufferCore_UV, wireTier9, + wireTier9, CI.machineCasing_UV, wireTier9, + CI.circuitTier8, RECIPE_BufferCore_UV, CI.circuitTier8, + RECIPE_Buffer_UV); + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[11], RECIPE_BufferCore_MAX, CI.component_Plate[11], + wireTier10, CI.machineCasing_MAX, wireTier10, + CI.circuitTier9, RECIPE_BufferCore_MAX, CI.circuitTier9, + RECIPE_Buffer_MAX);*/ + } + + + ItemStack[] aBufferOutput = new ItemStack[] { + RECIPE_Buffer_ULV, RECIPE_Buffer_LV, RECIPE_Buffer_MV, + RECIPE_Buffer_HV, RECIPE_Buffer_EV, RECIPE_Buffer_IV, + RECIPE_Buffer_LuV, RECIPE_Buffer_ZPM, RECIPE_Buffer_UV, RECIPE_Buffer_MAX }; + + + + ItemStack[] aOutput = new ItemStack[] { + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore"+"1", 1), + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore"+"2", 1), + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore"+"3", 1), + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore"+"4", 1), + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore"+"5", 1), + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore"+"6", 1), + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore"+"7", 1), + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore"+"8", 1), + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore"+"9", 1), + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore"+"10", 1) + }; + + int aCostMultiplier = GTNH ? 4 : 1; + + for (int i = 0; i < 10; i++) { + + ItemStack aPrevTier = (i == 0 ? CI.getTieredMachineHull(GTNH ? 2 : 1) : aOutput[i-1]); + aPrevTier.stackSize = GTNH ? 2 : 1; + int aTier = (i + 1); + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + aPrevTier, + CI.getTieredComponent(OrePrefixes.plate, aTier, 4 * aCostMultiplier), + CI.getTieredComponent(OrePrefixes.cableGt04, i, 2 * aCostMultiplier), + CI.getTieredComponent(OrePrefixes.circuit, aTier, 2 * aCostMultiplier), + CI.getTieredComponent(OrePrefixes.screw, aTier, 6 * aCostMultiplier), + CI.getTieredComponent(OrePrefixes.bolt, i, 12 * (GTNH ? 2 : 1)), + }, + CI.getTieredFluid(i, (144 * 4 * aTier)), //Input Fluid + aOutput[i], + 45 * 10 * 1 * (aTier), + MaterialUtils.getVoltageForTier(i)); + + //Energy Buffer + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + ItemUtils.getSimpleStack(aOutput[i], 4), + CI.getTieredComponent(OrePrefixes.plate, aTier, 8 * aCostMultiplier), + CI.getTieredComponent(OrePrefixes.wireGt08, i, 4 * aCostMultiplier), + CI.getTieredComponent(OrePrefixes.circuit, i, 4 * aCostMultiplier), + CI.getTieredComponent(OrePrefixes.stickLong, aTier, 4 * aCostMultiplier), + CI.getTieredComponent(OrePrefixes.gearGt, i, 5 * (GTNH ? 2 : 1)), + }, + CI.getTieredFluid(aTier, (144 * 16 * aTier)), //Input Fluid + aBufferOutput[i], + 45 * 20 * 1 * (aTier), + MaterialUtils.getVoltageForTier(i)); + + } + + + + + } + + private static void wirelessChargers() { + + ItemStack[] aChargers = new ItemStack[] { + null, + GregtechItemList.Charger_LV.get(1), + GregtechItemList.Charger_MV.get(1), + GregtechItemList.Charger_HV.get(1), + GregtechItemList.Charger_EV.get(1), + GregtechItemList.Charger_IV.get(1), + GregtechItemList.Charger_LuV.get(1), + GregtechItemList.Charger_ZPM.get(1), + GregtechItemList.Charger_UV.get(1), + GregtechItemList.Charger_MAX.get(1) + }; + + int aCostMultiplier = GTNH ? 2 : 1; + + for (int i = 0; i < 10; i++) { + if (i == 0) { + continue; + } + int aTier = (i + 1); + ItemStack[] aInputs = new ItemStack[] { + CI.getTieredMachineHull(i, 1 * aCostMultiplier), + CI.getTransmissionComponent(i, 2 * aCostMultiplier), + CI.getFieldGenerator(i, 1 * aCostMultiplier), + CI.getTieredComponent(OrePrefixes.plate, aTier, 4 * aCostMultiplier), + CI.getTieredComponent(OrePrefixes.circuit, aTier, 2 * aCostMultiplier), + }; + CORE.RA.addSixSlotAssemblingRecipe( + aInputs, + CI.getAlternativeTieredFluid(i, (144 * 2 * aTier)), //Input Fluid + aChargers[i], + 45 * 10 * 1 * (aTier), + MaterialUtils.getVoltageForTier(i)); + + } + } + + private static void largeArcFurnace() { + int aCostMultiplier = GTNH ? 2 : 1; + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + CI.getTieredMachineHull(-1, 1 * aCostMultiplier), + CI.getTransmissionComponent(2, 2 * aCostMultiplier), + CI.getElectricPiston(4, 2 * aCostMultiplier), + CI.getTieredComponent(OrePrefixes.plate, 5, 4 * aCostMultiplier), + CI.getTieredComponent(OrePrefixes.pipeSmall, 4, 1 * aCostMultiplier), + }, + CI.getAlternativeTieredFluid(5, (144 * 2 * 4)), //Input Fluid + GregtechItemList.Casing_Industrial_Arc_Furnace.get(Casing_Amount), + 20 * 10 * 1 * (6), + MaterialUtils.getVoltageForTier(5)); + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + GregtechItemList.Casing_Industrial_Arc_Furnace.get(Casing_Amount), + CI.getFieldGenerator(4, 2 * aCostMultiplier), + CI.getRobotArm(5, 4 * aCostMultiplier), + CI.getEnergyCore(4, 2 * aCostMultiplier), + CI.getTieredComponent(OrePrefixes.plate, 6, 8 * aCostMultiplier), + CI.getTieredComponent(OrePrefixes.circuit, 5, 8 * aCostMultiplier), + }, + CI.getAlternativeTieredFluid(6, (144 * 4 * 5)), //Input Fluid + GregtechItemList.Industrial_Arc_Furnace.get(1), + 60 * 20 * 8, + MaterialUtils.getVoltageForTier(6)); + } + + private static void industrialVacuumFurnace() { + int aCostMultiplier = GTNH ? 2 : 1; + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + CI.getTieredMachineHull(-1, 1 * aCostMultiplier), + CI.getHeatCoil(2), + CI.getElectricPiston(3, 2 * aCostMultiplier), + CI.getTieredComponent(OrePrefixes.plate, 6, 4 * aCostMultiplier), + CI.getTieredComponent(OrePrefixes.gearGt, 6, 2 * aCostMultiplier), + }, + CI.getTertiaryTieredFluid(5, (144 * 2 * 4 * aCostMultiplier)), //Input Fluid + GregtechItemList.Casing_Vacuum_Furnace.get(Casing_Amount), + 20 * 10 * 6, + MaterialUtils.getVoltageForTier(6)); + + ; + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + GregtechItemList.Casing_Vacuum_Furnace.get(aCostMultiplier), + CI.getTieredComponent(OrePrefixes.wireGt16, 7, 4 * aCostMultiplier), + CI.getEnergyCore(6, 1 * aCostMultiplier), + CI.getRobotArm(4, 4 * aCostMultiplier), + CI.getTieredComponent(OrePrefixes.plate, 7, 8 * aCostMultiplier), + CI.getTieredComponent(OrePrefixes.circuit, 6, 8 * aCostMultiplier), + }, + CI.getTieredFluid(7, (144 * 4 * 5 * aCostMultiplier)), //Input Fluid + GregtechItemList.Controller_Vacuum_Furnace.get(1), + 60 * 20 * 12, + MaterialUtils.getVoltageForTier(7)); + } + + private static void milling() { + + + /*public static ItemStack RECIPE_ISAMill_Controller; + public static ItemStack RECIPE_ISAMill_Gearbox; + public static ItemStack RECIPE_ISAMill_Casing; + public static ItemStack RECIPE_ISAMill_Hatch; + public static ItemStack RECIPE_Flotation_Controller; + public static ItemStack RECIPE_Flotation_Casing;*/ + + // Isa Mill Controller + CORE.RA.addAssemblylineRecipe( + ItemList.Machine_IV_Macerator.get(1), + 20 * 60 * 20, + new Object[] { + GregtechItemList.Casing_IsaMill_Gearbox.get(4), + CI.getTieredGTPPMachineCasing(6, 4), + ItemList.Component_Grinder_Tungsten.get(16), + new Object[] {CI.getTieredCircuitOreDictName(6), 8}, + ALLOY.INCONEL_625.getGear(8), + ALLOY.INCONEL_625.getPlate(32), + ALLOY.ZERON_100.getPlateDouble(8), + ALLOY.ZERON_100.getPlateDouble(8), + ALLOY.ZERON_100.getScrew(64), + CI.getTieredComponentOfMaterial(Materials.NiobiumTitanium, OrePrefixes.wireFine, 32), + CI.getTieredComponentOfMaterial(Materials.NiobiumTitanium, OrePrefixes.wireFine, 32), + CI.getTieredComponentOfMaterial(Materials.Titanium, OrePrefixes.foil, 16), + CI.getTieredComponentOfMaterial(Materials.Titanium, OrePrefixes.foil, 16), + + }, + new FluidStack[] { + CI.getTieredFluid(6, 16 * 144), + CI.getAlternativeTieredFluid(6, 32 * 144), + CI.getTertiaryTieredFluid(6, 32 * 144) + }, + GregtechItemList.Controller_IsaMill.get(1), + 20 * 60 * 10, + MaterialUtils.getVoltageForTier(6)); + + // Isa Mill Gearbox + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + CI.getNumberedAdvancedCircuit(7), + ItemList.Casing_Gearbox_Titanium.get(2), + ALLOY.INCONEL_625.getGear(4), + CI.getTieredComponentOfMaterial(Materials.HSSE, OrePrefixes.gearGtSmall, 8), + ALLOY.INCONEL_625.getPlate(16), + ALLOY.ZERON_100.getBolt(16), + }, + ALLOY.TUNGSTENSTEEL.getFluidStack(8 * 144), + GregtechItemList.Casing_IsaMill_Gearbox.get(1), + 60 * 20 * 2, + MaterialUtils.getVoltageForTier(6)); + + // Isa Mill Casing + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + CI.getNumberedAdvancedCircuit(7), + CI.getTieredGTPPMachineCasing(5, 1), + ALLOY.INCONEL_625.getPlate(8), + ALLOY.ZERON_100.getRod(4), + CI.getTieredComponentOfMaterial(Materials.HSSG, OrePrefixes.gearGtSmall, 4), + ALLOY.ZERON_100.getScrew(8), + }, + ELEMENT.getInstance().TITANIUM.getFluidStack(4 * 144), + GregtechItemList.Casing_IsaMill_Casing.get(1), + 60 * 20 * 2, + MaterialUtils.getVoltageForTier(6)); + + // Isa Mill Pipe + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + CI.getNumberedAdvancedCircuit(7), + CI.getTieredGTPPMachineCasing(4, 2), + ALLOY.INCONEL_625.getPlateDouble(4), + ALLOY.INCOLOY_MA956.getRing(8), + CI.getTieredComponentOfMaterial(Materials.HSSE, OrePrefixes.plate, 8), + ALLOY.INCOLOY_MA956.getBolt(16), + }, + ELEMENT.getInstance().ALUMINIUM.getFluidStack(8 * 144), + GregtechItemList.Casing_IsaMill_Pipe.get(1), + 60 * 20 * 8, + MaterialUtils.getVoltageForTier(4)); + + // Flotation Cell Controller + CORE.RA.addAssemblylineRecipe( + ItemList.Distillation_Tower.get(1), + 20 * 60 * 20, + new Object[] { + GregtechItemList.Casing_Flotation_Cell.get(4), + CI.getTieredGTPPMachineCasing(5, 4), + ItemList.Machine_IV_Distillery.get(1), + new Object[] {CI.getTieredCircuitOreDictName(6), 8}, + ALLOY.STELLITE.getGear(8), + ALLOY.STELLITE.getPlate(32), + ALLOY.HASTELLOY_N.getPlateDouble(8), + ALLOY.HASTELLOY_N.getPlateDouble(8), + ALLOY.HASTELLOY_N.getScrew(64), + CI.getTieredComponentOfMaterial(Materials.YttriumBariumCuprate, OrePrefixes.wireFine, 64), + CI.getTieredComponentOfMaterial(Materials.YttriumBariumCuprate, OrePrefixes.wireFine, 64), + CI.getTieredComponentOfMaterial(Materials.Platinum, OrePrefixes.foil, 32), + CI.getTieredComponentOfMaterial(Materials.Platinum, OrePrefixes.foil, 32), + + }, + new FluidStack[] { + CI.getTieredFluid(5, 16 * 144), + CI.getAlternativeTieredFluid(4, 32 * 144), + CI.getTertiaryTieredFluid(4, 32 * 144) + }, + GregtechItemList.Controller_Flotation_Cell.get(1), + 20 * 60 * 10, + MaterialUtils.getVoltageForTier(6)); + + // Flotation Cell Casing + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + CI.getNumberedAdvancedCircuit(7), + CI.getTieredGTPPMachineCasing(4, 1), + ALLOY.AQUATIC_STEEL.getPlate(8), + ALLOY.STELLITE.getRing(8), + CI.getTieredComponentOfMaterial(Materials.HSSG, OrePrefixes.plateDouble, 4), + ALLOY.HASTELLOY_N.getScrew(8), + }, + ALLOY.STAINLESS_STEEL.getFluidStack(8 * 144), + GregtechItemList.Casing_Flotation_Cell.get(1), + 60 * 20 * 2, + MaterialUtils.getVoltageForTier(6)); + + // Milling Bus + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + CI.getNumberedAdvancedCircuit(7), + CI.getTieredGTPPMachineCasing(5, 1), + ItemList.Hatch_Input_Bus_EV.get(1), + CI.getTieredComponentOfMaterial(Materials.Titanium, OrePrefixes.gearGt, 8), + CI.getTieredComponentOfMaterial(Materials.TungstenSteel, OrePrefixes.plate, 32), + CI.getTieredComponentOfMaterial(Materials.SolderingAlloy, OrePrefixes.wireFine, 16), + }, + ELEMENT.getInstance().TUNGSTEN.getFluidStack(8 * 144), + GregtechItemList.Bus_Milling_Balls.get(1), + 60 * 20 * 4, + MaterialUtils.getVoltageForTier(5)); + + } + + private static void sparging() { + + // Sparge Tower Research + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + CI.getNumberedAdvancedCircuit(8), + ELEMENT.getInstance().HELIUM.getCell(8), + ELEMENT.getInstance().FLUORINE.getCell(8), + ALLOY.HS188A.getIngot(8), + ItemList.Distillation_Tower.get(1) + }, + null, + ItemDummyResearch.getResearchStack(ASSEMBLY_LINE_RESEARCH.RESEARCH_10_SPARGING, 1), + 60 * 20 * 5, + MaterialUtils.getVoltageForTier(5)); + + // Sparge Tower Controller + CORE.RA.addAssemblylineRecipe( + ItemDummyResearch.getResearchStack(ASSEMBLY_LINE_RESEARCH.RESEARCH_10_SPARGING, 1), + 20 * 60 * 20, + new Object[] { + GregtechItemList.Casing_Sparge_Tower_Exterior.get(4), + CI.getTieredGTPPMachineCasing(4, 4), + ItemList.Machine_IV_Distillery.get(1), + new Object[] {CI.getTieredCircuitOreDictName(5), 8}, + ALLOY.HS188A.getGear(8), + ALLOY.HS188A.getPlate(32), + ALLOY.HASTELLOY_N.getPlateDouble(8), + ALLOY.HASTELLOY_N.getPlateDouble(8), + ALLOY.HASTELLOY_N.getScrew(64), + CI.getTieredComponentOfMaterial(Materials.YttriumBariumCuprate, OrePrefixes.wireFine, 64), + CI.getTieredComponentOfMaterial(Materials.YttriumBariumCuprate, OrePrefixes.wireFine, 64), + CI.getTieredComponentOfMaterial(Materials.Platinum, OrePrefixes.foil, 32), + CI.getTieredComponentOfMaterial(Materials.Platinum, OrePrefixes.foil, 32), + + }, + new FluidStack[] { + CI.getTieredFluid(4, 16 * 144), + CI.getAlternativeTieredFluid(3, 32 * 144), + CI.getTertiaryTieredFluid(3, 32 * 144) + }, + GregtechItemList.Controller_Sparge_Tower.get(1), + 20 * 60 * 10, + MaterialUtils.getVoltageForTier(6)); + + // Sparge Tower Casing + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + CI.getNumberedAdvancedCircuit(8), + CI.getTieredGTPPMachineCasing(3, 1), + ALLOY.HS188A.getPlate(8), + ALLOY.HASTELLOY_N.getRing(4), + CI.getTieredComponentOfMaterial(Materials.TungstenSteel, OrePrefixes.plateDouble, 4), + ALLOY.HASTELLOY_N.getScrew(4), + }, + ALLOY.STAINLESS_STEEL.getFluidStack(8 * 144), + GregtechItemList.Casing_Sparge_Tower_Exterior.get(1), + 60 * 20 * 2, + MaterialUtils.getVoltageForTier(5)); + } + + private static void fakeMachineCasingCovers() { + GregtechItemList[] mMachineCasingCovers = new GregtechItemList[] { + GregtechItemList.FakeMachineCasingPlate_ULV, + GregtechItemList.FakeMachineCasingPlate_LV, + GregtechItemList.FakeMachineCasingPlate_MV, + GregtechItemList.FakeMachineCasingPlate_HV, + GregtechItemList.FakeMachineCasingPlate_EV, + GregtechItemList.FakeMachineCasingPlate_IV, + GregtechItemList.FakeMachineCasingPlate_LuV, + GregtechItemList.FakeMachineCasingPlate_ZPM, + GregtechItemList.FakeMachineCasingPlate_UV, + GregtechItemList.FakeMachineCasingPlate_MAX, + }; + int aMaxTier = GT_Values.VOLTAGE_NAMES.length; + if (!GTNH) { + aMaxTier = 10; + } + ItemStack aTier[] = new ItemStack[aMaxTier]; + for (int i=0;i<aMaxTier;i++) { + aTier[i] = ItemUtils.simpleMetaStack(CoverManager.Cover_Gt_Machine_Casing, i, 7); + } + // Deprecate old recipes + for (int i=0;i<10;i++) { + RecipeUtils.addShapelessGregtechRecipe(new ItemStack[] {mMachineCasingCovers[i].get(1)}, ItemUtils.getSimpleStack(aTier[i], 1)); + } + // Add recipes for new ones + for (int i = 0;i<aMaxTier;i++) { + GT_Values.RA.addCutterRecipe( + CI.getTieredMachineCasing(i), + aTier[i], + null, + 20 * 5 * i, + (int) GT_Values.V[i]); + } + } + + private static void ztonesCoverRecipes() { + + if (!Loader.isModLoaded("Ztones")) { + return; + } + Class ModBlocksClass = ReflectionUtils.getClass("com.riciJak.Ztones.init.ModBlocks"); + Block agon = (Block) ReflectionUtils.getFieldValue( ReflectionUtils.getField(ModBlocksClass, "agonBlock")); + Block korp = (Block) ReflectionUtils.getFieldValue( ReflectionUtils.getField(ModBlocksClass, "korpBlock")); + Block jelt = (Block) ReflectionUtils.getFieldValue( ReflectionUtils.getField(ModBlocksClass, "jeltBlock")); + Block bitt = (Block) ReflectionUtils.getFieldValue( ReflectionUtils.getField(ModBlocksClass, "bittBlock")); + Block iszm = (Block) ReflectionUtils.getFieldValue( ReflectionUtils.getField(ModBlocksClass, "iszmBlock")); + + // "agon", "iszm", "korp", "jelt", "bitt" + + ItemStack[] aBlocks = new ItemStack[] { + ItemUtils.getSimpleStack(agon), + ItemUtils.getSimpleStack(iszm), + ItemUtils.getSimpleStack(korp), + ItemUtils.getSimpleStack(jelt), + ItemUtils.getSimpleStack(bitt) + }; + MetaCustomCoverItem[] aCovers = new MetaCustomCoverItem[] { + CoverManager.Cover_Agon, + CoverManager.Cover_Iszm, + CoverManager.Cover_Korp, + CoverManager.Cover_Jelt, + CoverManager.Cover_Bitt + }; + + ItemStack aInputs[][] = new ItemStack[5][16]; + ItemStack aOutputs[][] = new ItemStack[5][16]; + for (int a=0;a<5;a++) { + for (int i=0;i<16;i++) { + aInputs[a][i] = ItemUtils.simpleMetaStack(aBlocks[a].getItem(), i, 1); + aOutputs[a][i] = ItemUtils.simpleMetaStack(aCovers[a], i, 9); + } + } + for (int a=0;a<5;a++) { + for (int i = 0;i<16;i++) { + ItemStack aInput = aInputs[a][i]; + ItemStack aOutput = aOutputs[a][i]; + if (GT_Values.RA.addCutterRecipe( + aInput, + aOutput, + null, + 20 * 5, + 16)) { + Logger.INFO("Added Cutting recipe for "+aInput.getDisplayName()); + } + + if (CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + CI.getNumberedCircuit((i/4)+4), + aOutput + }, + FluidUtils.getWildcardFluidStack("glue", 250), + aInput, + 20 * 10, + 16)) { + Logger.INFO("Added Assembly recipe for "+aInput.getDisplayName()); + } + } + } + } + + private static void superBuses() { + GregtechItemList[] mSuperBusesInput = new GregtechItemList[] { + GregtechItemList.Hatch_SuperBus_Input_ULV, + GregtechItemList.Hatch_SuperBus_Input_LV, + GregtechItemList.Hatch_SuperBus_Input_MV, + GregtechItemList.Hatch_SuperBus_Input_HV, + GregtechItemList.Hatch_SuperBus_Input_EV, + GregtechItemList.Hatch_SuperBus_Input_IV, + GregtechItemList.Hatch_SuperBus_Input_LuV, + GregtechItemList.Hatch_SuperBus_Input_ZPM, + GregtechItemList.Hatch_SuperBus_Input_UV, + GregtechItemList.Hatch_SuperBus_Input_MAX, + }; + + GregtechItemList[] mSuperBusesOutput = new GregtechItemList[] { + GregtechItemList.Hatch_SuperBus_Output_ULV, + GregtechItemList.Hatch_SuperBus_Output_LV, + GregtechItemList.Hatch_SuperBus_Output_MV, + GregtechItemList.Hatch_SuperBus_Output_HV, + GregtechItemList.Hatch_SuperBus_Output_EV, + GregtechItemList.Hatch_SuperBus_Output_IV, + GregtechItemList.Hatch_SuperBus_Output_LuV, + GregtechItemList.Hatch_SuperBus_Output_ZPM, + GregtechItemList.Hatch_SuperBus_Output_UV, + GregtechItemList.Hatch_SuperBus_Output_MAX, + }; + + ItemStack[] mInputHatch = new ItemStack[] { + ItemList.Hatch_Input_Bus_EV.get(1), + ItemList.Hatch_Input_Bus_IV.get(1), + ItemList.Hatch_Input_Bus_LuV.get(1), + ItemList.Hatch_Input_Bus_ZPM.get(1), + ItemList.Hatch_Input_Bus_UV.get(1), + ItemList.Hatch_Input_Bus_MAX.get(1), + GregtechItemList.Hatch_SuperBus_Input_LV.get(1), + GregtechItemList.Hatch_SuperBus_Input_MV.get(1), + GregtechItemList.Hatch_SuperBus_Input_HV.get(1), + GregtechItemList.Hatch_SuperBus_Input_EV.get(1), + }; + + ItemStack[] mOutputHatch = new ItemStack[] { + ItemList.Hatch_Output_Bus_EV.get(1), + ItemList.Hatch_Output_Bus_IV.get(1), + ItemList.Hatch_Output_Bus_LuV.get(1), + ItemList.Hatch_Output_Bus_ZPM.get(1), + ItemList.Hatch_Output_Bus_UV.get(1), + ItemList.Hatch_Output_Bus_MAX.get(1), + GregtechItemList.Hatch_SuperBus_Output_LV.get(1), + GregtechItemList.Hatch_SuperBus_Output_MV.get(1), + GregtechItemList.Hatch_SuperBus_Output_HV.get(1), + GregtechItemList.Hatch_SuperBus_Output_EV.get(1), + }; + + // Special Case recipes for ULV buses + { + + int i = 0; + ItemStack[] aInputs1 = new ItemStack[] { + CI.getNumberedCircuit(17), + mInputHatch[i], + CI.getElectricMotor(i, GTNH ? 8 : 2), + CI.getConveyor(i, GTNH ? 10 : 5), + CI.getBolt(i, GTNH ? 32 : 16), + CI.getTieredComponent(OrePrefixes.circuit, i, GTNH ? 4 : 2) + }; + Logger.INFO("[FIND] "+ItemUtils.getArrayStackNames(aInputs1)); + ItemStack[] aOutputs1 = new ItemStack[] { + CI.getNumberedCircuit(18), + mOutputHatch[i], + CI.getElectricPiston(i, GTNH ? 8 : 2), + CI.getConveyor(i, GTNH ? 10 : 5), + CI.getGear(i, GTNH ? 6 : 3), + CI.getTieredComponent(OrePrefixes.circuit, i, GTNH ? 4 : 2) + }; + Logger.INFO("[FIND] "+ItemUtils.getArrayStackNames(aOutputs1)); + + FluidStack a1 = CI.getAlternativeTieredFluid(i, 144 * 8); + FluidStack a2 = CI.getTertiaryTieredFluid(i, 144 * 8); + + + Logger.INFO("[FIND] Input Bus Fluid: "+ItemUtils.getFluidName(a1)); + Logger.INFO("[FIND] Output Bus Fluid: "+ItemUtils.getFluidName(a2)); + + + CORE.RA.addSixSlotAssemblingRecipe(aInputs1, + a1, + mSuperBusesInput[i].get(1), + 20 * 30 * 2 * i, + (int) GT_Values.V[i]); + + CORE.RA.addSixSlotAssemblingRecipe(aOutputs1, + a2, + mSuperBusesOutput[i].get(1), + 20 * 30 * 2 * i, + (int) GT_Values.V[i]); + + + } + + //Input Buses + for (int i = 1; i < 10; i++) { + CORE.RA.addSixSlotAssemblingRecipe(new ItemStack[] { + CI.getNumberedCircuit(17), + mInputHatch[i], + CI.getElectricMotor(i, GTNH ? 8 : 2), + CI.getConveyor(i, GTNH ? 10 : 5), + CI.getBolt(i, GTNH ? 32 : 16), + CI.getTieredComponent(OrePrefixes.circuit, i, GTNH ? 4 : 2) + }, + CI.getAlternativeTieredFluid(i, 144 * 8), + mSuperBusesInput[i].get(1), 20 * 30 * 2 * i, + (int) GT_Values.V[i]); + } + //Output Buses + for (int i = 1; i < 10; i++) { + CORE.RA.addSixSlotAssemblingRecipe(new ItemStack[] { + CI.getNumberedCircuit(18), + mOutputHatch[i], + CI.getElectricPiston(i, GTNH ? 8 : 2), + CI.getConveyor(i, GTNH ? 10 : 5), + CI.getGear(i, GTNH ? 6 : 3), + CI.getTieredComponent(OrePrefixes.circuit, i, GTNH ? 4 : 2) + }, + CI.getTertiaryTieredFluid(i, 144 * 8), + mSuperBusesOutput[i].get(1), 20 * 30 * 2 * i, + (int) GT_Values.V[i]); + } + + + } + + private static void roundRobinators() { + + RecipeUtils.addShapedGregtechRecipe( + ItemUtils.getSimpleStack(Blocks.hopper), "circuitPrimitive", ItemUtils.getSimpleStack(Blocks.hopper), + CI.craftingToolWrench, CI.machineCasing_ULV, CI.craftingToolScrewdriver, + ItemUtils.getSimpleStack(Blocks.hopper), "circuitPrimitive", ItemUtils.getSimpleStack(Blocks.hopper), + ItemUtils.simpleMetaStack(ModBlocks.blockRoundRobinator, 0, 1)); + + ItemStack[] aRobinators = new ItemStack[] { + ItemUtils.simpleMetaStack(ModBlocks.blockRoundRobinator, 0, 1), + ItemUtils.simpleMetaStack(ModBlocks.blockRoundRobinator, 1, 1), + ItemUtils.simpleMetaStack(ModBlocks.blockRoundRobinator, 2, 1), + ItemUtils.simpleMetaStack(ModBlocks.blockRoundRobinator, 3, 1), + ItemUtils.simpleMetaStack(ModBlocks.blockRoundRobinator, 4, 1), + }; + + int aCostMultiplier = GTNH ? 2 : 1; + + for (int i = 0; i < 5; i++) { + if (i == 0) { + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + CI.getNumberedCircuit(17), + CI.getTieredMachineCasing(0), + ItemUtils.getSimpleStack(Blocks.hopper, 4), + CI.getTieredComponent(OrePrefixes.circuit, 0, 2) + }, + GT_Values.NF, //Input Fluid + aRobinators[i], + 45 * 10 * 1, + 8); + continue; + } + int aTier = i+1; + ItemStack[] aInputs = new ItemStack[] { + aRobinators[i-1], + CI.getTieredMachineHull(aTier, 1 * aCostMultiplier), + CI.getConveyor(aTier, 2 * aCostMultiplier), + CI.getElectricMotor(aTier, 2 * aCostMultiplier), + CI.getTieredComponent(OrePrefixes.plate, aTier, 4 * aCostMultiplier), + CI.getTieredComponent(OrePrefixes.circuit, i, 2 * aCostMultiplier), + }; + + CORE.RA.addSixSlotAssemblingRecipe( + aInputs, + GT_Values.NF, //Input Fluid + aRobinators[i], + 45 * 10 * 1 * (i+1), + MaterialUtils.getVoltageForTier(i)); + + } + } + +} diff --git a/src/main/java/gtPlusPlus/core/recipe/RECIPES_Old_Circuits.java b/src/main/java/gtPlusPlus/core/recipe/RECIPES_Old_Circuits.java new file mode 100644 index 0000000000..3ed2f5f168 --- /dev/null +++ b/src/main/java/gtPlusPlus/core/recipe/RECIPES_Old_Circuits.java @@ -0,0 +1,458 @@ +package gtPlusPlus.core.recipe; + +import cpw.mods.fml.common.Loader; +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OreDictNames; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.SubTag; +import gregtech.api.interfaces.IOreRecipeRegistrator; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; +import gtPlusPlus.api.objects.Logger; +import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.core.recipe.common.CI; +import gtPlusPlus.core.util.Utils; +import gtPlusPlus.core.util.minecraft.ItemUtils; +import gtPlusPlus.core.util.minecraft.RecipeUtils; +import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList; +import net.minecraft.item.ItemStack; + +public class RECIPES_Old_Circuits implements IOreRecipeRegistrator { + public RECIPES_Old_Circuits() { + OrePrefixes.crafting.add(this); + } + + @Override + public void registerOre(final OrePrefixes aPrefix, final Materials aMaterial, final String aOreDictName, final String aModName, final ItemStack aStack) { + if (aOreDictName.equals(OreDictNames.craftingLensRed.toString())) { + Logger.INFO("[Old Feature - Circuits] Adding recipes for old circuits. (Part 2)"); + GT_Values.RA.addLaserEngraverRecipe(GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Copper, 1L), GT_Utility.copyAmount(0L, new Object[]{aStack}), GregtechItemList.Old_Circuit_Parts_Wiring_Basic.get(1L, new Object[0]), 64, 30); + GT_Values.RA.addLaserEngraverRecipe(GT_OreDictUnificator.get(OrePrefixes.foil, Materials.AnnealedCopper, 1L), GT_Utility.copyAmount(0L, new Object[]{aStack}), GregtechItemList.Old_Circuit_Parts_Wiring_Basic.get(1L, new Object[0]), 64, 30); + GT_Values.RA.addLaserEngraverRecipe(GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Gold, 1L), GT_Utility.copyAmount(0L, new Object[]{aStack}), GregtechItemList.Old_Circuit_Parts_Wiring_Advanced.get(1L, new Object[0]), 64, 120); + GT_Values.RA.addLaserEngraverRecipe(GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Electrum, 1L), GT_Utility.copyAmount(0L, new Object[]{aStack}), GregtechItemList.Old_Circuit_Parts_Wiring_Advanced.get(1L, new Object[0]), 64, 120); + GT_Values.RA.addLaserEngraverRecipe(GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Platinum, 1L), GT_Utility.copyAmount(0L, new Object[]{aStack}), GregtechItemList.Old_Circuit_Parts_Wiring_Elite.get(1L, new Object[0]), 64, 480); + } + + else if (aOreDictName.equals(OreDictNames.craftingLensGreen.toString())) { + Logger.INFO("[Old Feature - Circuits] Adding recipes for old circuits. (Part 3)"); + GT_Values.RA.addLaserEngraverRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Olivine, 1L), GT_Utility.copyAmount(0L, new Object[]{aStack}), GregtechItemList.Old_Circuit_Parts_Crystal_Chip_Elite.get(1L, new Object[0]), 256, 480); + GT_Values.RA.addLaserEngraverRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Emerald, 1L), GT_Utility.copyAmount(0L, new Object[]{aStack}), GregtechItemList.Old_Circuit_Parts_Crystal_Chip_Elite.get(1L, new Object[0]), 256, 480); + } + + else if (aOreDictName.equals(OreDictNames.craftingLensBlue.toString()) || aOreDictName.equals(OreDictNames.craftingLensCyan.toString()) || aOreDictName.equals(OreDictNames.craftingLensLightBlue.toString())) { + Logger.INFO("[Old Feature - Circuits] Adding recipes for old circuits. (Part 4)"); + GT_Values.RA.addLaserEngraverRecipe(ItemList.IC2_LapotronCrystal.getWildcard(1L, new Object[0]), GT_Utility.copyAmount(0L, new Object[]{aStack}), GregtechItemList.Old_Circuit_Parts_Crystal_Chip_Master.get(3L, new Object[0]), 256, 480); + } + } + + + private static boolean addCircuitRecipes(){ + Logger.INFO("[Old Feature - Circuits] Adding recipes for old circuits. (Part 1)"); + GT_ModHandler.addShapelessCraftingRecipe(GregtechItemList.Old_Circuit_Primitive.get(1L, new Object[0]), new Object[]{GT_ModHandler.getIC2Item("casingadviron", 1L), OrePrefixes.wireGt01.get(Materials.RedAlloy), OrePrefixes.wireGt01.get(Materials.RedAlloy), OrePrefixes.wireGt01.get(Materials.Tin)}); + GT_ModHandler.addCraftingRecipe(GregtechItemList.Old_Circuit_Basic.get(1L, new Object[0]), new Object[]{"WWW", "CPC", "WWW", 'C', OrePrefixes.circuit.get(Materials.Primitive), 'W', OreDictNames.craftingWireCopper, 'P', OrePrefixes.plate.get(Materials.Steel)}); + GT_ModHandler.addCraftingRecipe(GregtechItemList.Old_Circuit_Basic.get(1L, new Object[0]), new Object[]{"WCW", "WPW", "WCW", 'C', OrePrefixes.circuit.get(Materials.Primitive), 'W', OreDictNames.craftingWireCopper, 'P', OrePrefixes.plate.get(Materials.Steel)}); + GT_ModHandler.addCraftingRecipe(GregtechItemList.Old_Circuit_Basic.get(1L, new Object[0]), new Object[]{"WWW", "CPC", "WWW", 'C', OrePrefixes.circuit.get(Materials.Primitive), 'W', OrePrefixes.cableGt01.get(Materials.RedAlloy), 'P', OrePrefixes.plate.get(Materials.Steel)}); + GT_ModHandler.addCraftingRecipe(GregtechItemList.Old_Circuit_Basic.get(1L, new Object[0]), new Object[]{"WCW", "WPW", "WCW", 'C', OrePrefixes.circuit.get(Materials.Primitive), 'W', OrePrefixes.cableGt01.get(Materials.RedAlloy), 'P', OrePrefixes.plate.get(Materials.Steel)}); + + GT_Values.RA.addFormingPressRecipe(GregtechItemList.Old_Empty_Board_Basic.get(1L, new Object[0]), GregtechItemList.Old_Circuit_Parts_Wiring_Basic.get(4L, new Object[0]), GregtechItemList.Old_Circuit_Board_Basic.get(1L, new Object[0]), 32, 16); + GT_Values.RA.addFormingPressRecipe(GregtechItemList.Old_Empty_Board_Basic.get(1L, new Object[0]), GregtechItemList.Old_Circuit_Parts_Wiring_Advanced.get(4L, new Object[0]), GregtechItemList.Old_Circuit_Board_Advanced.get(1L, new Object[0]), 32, 64); + GT_Values.RA.addFormingPressRecipe(GregtechItemList.Old_Empty_Board_Elite.get(1L, new Object[0]), GregtechItemList.Old_Circuit_Parts_Wiring_Elite.get(4L, new Object[0]), GregtechItemList.Old_Circuit_Board_Elite.get(1L, new Object[0]), 32, 256); + + GT_Values.RA.addFormingPressRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Lapis, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glowstone, 1L), GregtechItemList.Old_Circuit_Parts_Advanced.get(2L, new Object[0]), 32, 64); + GT_Values.RA.addFormingPressRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Lazurite, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glowstone, 1L), GregtechItemList.Old_Circuit_Parts_Advanced.get(2L, new Object[0]), 32, 64); + + int tMultiplier; + for (Materials tMat : Materials.values()) { + if ((tMat.mStandardMoltenFluid != null) && (tMat.contains(SubTag.SOLDERING_MATERIAL))) + { + tMultiplier = tMat.contains(SubTag.SOLDERING_MATERIAL_BAD) ? 4 : tMat.contains(SubTag.SOLDERING_MATERIAL_GOOD) ? 1 : 2; + + GT_Values.RA.addAssemblerRecipe(ItemList.IC2_Item_Casing_Steel.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.RedAlloy, 2L), tMat.getMolten(144L * tMultiplier / 8L), GregtechItemList.Old_Circuit_Primitive.get(1L, new Object[0]), 16, 8); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Plastic, 1L), GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.RedAlloy, 1L), tMat.getMolten(144L * tMultiplier / 8L), GregtechItemList.Old_Circuit_Primitive.get(1L, new Object[0]), 16, 8); + GT_Values.RA.addAssemblerRecipe(GregtechItemList.Old_Circuit_Board_Basic.get(1L, new Object[0]), GregtechItemList.Old_Circuit_Primitive.get(2L, new Object[0]), tMat.getMolten(144L * tMultiplier / 4L), GregtechItemList.Old_Circuit_Basic.get(1L, new Object[0]), 32, 16); + GT_Values.RA.addAssemblerRecipe(GregtechItemList.Old_Circuit_Basic.get(1L, new Object[0]), GregtechItemList.Old_Circuit_Primitive.get(2L, new Object[0]), tMat.getMolten(144L * tMultiplier / 4L), GregtechItemList.Old_Circuit_Good.get(1L, new Object[0]), 32, 16); + GT_Values.RA.addAssemblerRecipe(GregtechItemList.Old_Circuit_Board_Advanced.get(1L, new Object[0]), GregtechItemList.Old_Circuit_Parts_Advanced.get(2L, new Object[0]), tMat.getMolten(144L * tMultiplier / 2L), GregtechItemList.Old_Circuit_Advanced.get(1L, new Object[0]), 32, 64); + GT_Values.RA.addAssemblerRecipe(GregtechItemList.Old_Circuit_Board_Advanced.get(1L, new Object[0]), GregtechItemList.Old_Circuit_Parts_Crystal_Chip_Elite.get(1L, new Object[0]), tMat.getMolten(144L * tMultiplier / 2L), GregtechItemList.Old_Circuit_Data.get(1L, new Object[0]), 32, 64); + GT_Values.RA.addAssemblerRecipe(GregtechItemList.Old_Circuit_Board_Elite.get(1L, new Object[0]), GregtechItemList.Old_Circuit_Data.get(3L, new Object[0]), tMat.getMolten(144L * tMultiplier / 1L), GregtechItemList.Old_Circuit_Elite.get(1L, new Object[0]), 32, 256); + GT_Values.RA.addAssemblerRecipe(GregtechItemList.Old_Circuit_Board_Elite.get(1L, new Object[0]), ItemList.Circuit_Parts_Crystal_Chip_Master.get(3L, new Object[0]), tMat.getMolten(144L * tMultiplier / 1L), GregtechItemList.Old_Circuit_Master.get(1L, new Object[0]), 32, 256); + GT_Values.RA.addAssemblerRecipe(GregtechItemList.Old_Circuit_Board_Elite.get(1L, new Object[0]), GregtechItemList.Old_Circuit_Parts_Crystal_Chip_Master.get(3L, new Object[0]), tMat.getMolten(144L * tMultiplier / 1L), GregtechItemList.Old_Circuit_Master.get(1L, new Object[0]), 32, 256); + GT_Values.RA.addAssemblerRecipe(GregtechItemList.Old_Circuit_Data.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Plastic, 2L), tMat.getMolten(144L * tMultiplier / 2L), GregtechItemList.Old_Tool_DataStick.get(1L, new Object[0]), 128, 64); + } + } + + GT_Values.RA.addAssemblerRecipe(GregtechItemList.Old_Circuit_Elite.get(2L, new Object[0]), GregtechItemList.Old_Circuit_Parts_Crystal_Chip_Elite.get(18L, new Object[0]), GT_Values.NF, GregtechItemList.Old_Tool_DataOrb.get(1L, new Object[0]), 512, 256); + GT_Values.RA.addAssemblerRecipe(GregtechItemList.Old_Circuit_Master.get(2L, new Object[0]), ItemList.Circuit_Parts_Crystal_Chip_Master.get(18L, new Object[0]), GT_Values.NF, ItemList.Energy_LapotronicOrb.get(1L, new Object[0]), 512, 1024); + GT_Values.RA.addAssemblerRecipe(GregtechItemList.Old_Circuit_Master.get(2L, new Object[0]), GregtechItemList.Old_Circuit_Parts_Crystal_Chip_Master.get(18L, new Object[0]), GT_Values.NF, ItemList.Energy_LapotronicOrb.get(1L, new Object[0]), 512, 1024); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Silicon, 1L), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Plastic, 1L), GregtechItemList.Old_Empty_Board_Basic.get(1L, new Object[0]), 32, 16); + + Materials plasticType = Materials.get("Polytetrafluoroethylene") != null ? Materials.get("Polytetrafluoroethylene") : Materials.Plastic; + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Silicon, 2L), GT_OreDictUnificator.get(OrePrefixes.plate, plasticType, 1L), GregtechItemList.Old_Empty_Board_Elite.get(1L, new Object[0]), 32, 256); + + + + return true; + } + + public static boolean handleCircuits(){ + hideCircuitsNEI(); + addCircuitRecipes(); + removeNewCircuits(); + generateTradeRecipes(); + return true; + } + + private static boolean setItemList(ItemList Set, GregtechItemList Get) { + try{ + Set.set(Get.get(1)); + return true; + } + catch (Throwable t) {} + return false; + } + + private static boolean removeNewCircuits(){ + Logger.INFO("[Old Feature - Circuits] Overriding .28+ circuit values in the GT5u Itemlist with values from GT++."); + + boolean newVersion = CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK && Utils.getGregtechSubVersion() >= 30; + + setItemList(ItemList.Circuit_Primitive, GregtechItemList.Old_Circuit_Primitive); + setItemList(ItemList.Circuit_Basic, GregtechItemList.Old_Circuit_Basic); + setItemList(ItemList.Circuit_Good, GregtechItemList.Old_Circuit_Good); + setItemList(ItemList.Circuit_Advanced, GregtechItemList.Old_Circuit_Advanced); + //ItemList.Circuit_Data, GregtechItemList.Old_Circuit_Data); + setItemList(ItemList.Circuit_Elite, GregtechItemList.Old_Circuit_Elite); + setItemList(ItemList.Circuit_Master, GregtechItemList.Old_Circuit_Master); + setItemList(ItemList.Circuit_Ultimate, GregtechItemList.Old_Circuit_Ultimate); + + /** + * Try Set New circuits to have old replacements + */ + + //Basic + if (newVersion) { + setItemList(ItemList.valueOf("Circuit_Microprocessor"), GregtechItemList.Old_Circuit_Basic); //NEW + } + //Good + if (newVersion) { + setItemList(ItemList.valueOf("Circuit_Integrated_Good"), GregtechItemList.Old_Circuit_Good); //New + } + //Advanced + if (newVersion) { + setItemList(ItemList.valueOf("Circuit_Nanoprocessor"), GregtechItemList.Old_Circuit_Advanced); + } + //Data + if (newVersion) { + setItemList(ItemList.valueOf("Circuit_Quantumprocessor"), GregtechItemList.Old_Circuit_Data); + } + if (newVersion) { + setItemList(ItemList.valueOf("Circuit_Nanocomputer"), GregtechItemList.Old_Circuit_Data); + } + //Elite + if (newVersion) { + setItemList(ItemList.valueOf("Circuit_Crystalprocessor"), GregtechItemList.Old_Circuit_Elite); + } + if (newVersion) { + setItemList(ItemList.valueOf("Circuit_Quantumcomputer"), GregtechItemList.Old_Circuit_Elite); + } + if (newVersion) { + setItemList(ItemList.valueOf("Circuit_Elitenanocomputer"), GregtechItemList.Old_Circuit_Elite); + } + //Master + if (newVersion) { + setItemList(ItemList.valueOf("Circuit_Neuroprocessor"), GregtechItemList.Old_Circuit_Master); + } + if (newVersion) { + setItemList(ItemList.valueOf("Circuit_Masterquantumcomputer"), GregtechItemList.Old_Circuit_Master); + } + //Ultimate + if (newVersion) { + setItemList(ItemList.valueOf("Circuit_Wetwarecomputer"), GregtechItemList.Old_Circuit_Ultimate); + } + if (newVersion) { + setItemList(ItemList.valueOf("Circuit_Ultimatecrystalcomputer"), GregtechItemList.Old_Circuit_Ultimate); + } + if (newVersion) { + setItemList(ItemList.valueOf("Circuit_Quantummainframe"), GregtechItemList.Old_Circuit_Ultimate); + } + //Superconductor + if (newVersion) { + setItemList(ItemList.valueOf("Circuit_Wetwaresupercomputer"), GregtechItemList.Circuit_IV); + } + if (newVersion) { + setItemList(ItemList.valueOf("Circuit_Crystalmainframe"), GregtechItemList.Circuit_IV); + } + //Infinite + if (newVersion) { + setItemList(ItemList.valueOf("Circuit_Wetwaremainframe"), GregtechItemList.Circuit_LuV); + } + + //set data orbs and sticks to their new replacements + setItemList(ItemList.Tool_DataStick, GregtechItemList.Old_Tool_DataStick); + setItemList(ItemList.Tool_DataOrb, GregtechItemList.Old_Tool_DataOrb); + + setItemList(ItemList.Circuit_Board_Basic, GregtechItemList.Old_Circuit_Board_Basic); + setItemList(ItemList.Circuit_Board_Advanced, GregtechItemList.Old_Circuit_Board_Advanced); + setItemList(ItemList.Circuit_Board_Elite, GregtechItemList.Old_Circuit_Board_Elite); + setItemList(ItemList.Circuit_Parts_Advanced, GregtechItemList.Old_Circuit_Parts_Advanced); + setItemList(ItemList.Circuit_Parts_Wiring_Basic, GregtechItemList.Old_Circuit_Parts_Wiring_Basic); + setItemList(ItemList.Circuit_Parts_Wiring_Advanced, GregtechItemList.Old_Circuit_Parts_Wiring_Advanced); + setItemList(ItemList.Circuit_Parts_Wiring_Elite, GregtechItemList.Old_Circuit_Parts_Wiring_Elite); + setItemList(ItemList.Circuit_Parts_Crystal_Chip_Elite, GregtechItemList.Old_Circuit_Parts_Crystal_Chip_Elite); + setItemList(ItemList.Circuit_Parts_Crystal_Chip_Master, GregtechItemList.Old_Circuit_Parts_Crystal_Chip_Master); + + return true; + } + + private static boolean generateTradeRecipes(){ + + //Data stick and Data orbs. + //GT Type to GT++ Type + RecipeUtils.recipeBuilder( + CI.craftingToolScrewdriver, null, null, + ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01:32708", 32708, 1), null, null, + null, null, null, + GregtechItemList.Old_Tool_DataStick.get(1)); + RecipeUtils.recipeBuilder( + CI.craftingToolScrewdriver, null, null, + ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01:32707", 32707, 1), null, null, + null, null, null, + GregtechItemList.Old_Tool_DataOrb.get(1)); + + //GT++ Type to GT Type + RecipeUtils.recipeBuilder( + CI.craftingToolScrewdriver, null, null, + GregtechItemList.Old_Tool_DataStick.get(1), null, null, + null, null, null, + ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01:32708", 32708, 1)); + RecipeUtils.recipeBuilder( + CI.craftingToolScrewdriver, null, null, + GregtechItemList.Old_Tool_DataOrb.get(1), null, null, + null, null, null, + ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01:32707", 32707, 1)); + + + + //Primitive + RecipeUtils.addShapelessGregtechRecipe( + new ItemStack[]{ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01:32700", 32700, 1)}, + ItemUtils.getItemStackOfAmountFromOreDict("circuitPrimitive", 1)); + + //Basic + RecipeUtils.addShapelessGregtechRecipe( + new ItemStack[]{ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01:32701", 32701, 1)}, + ItemUtils.getItemStackOfAmountFromOreDict("circuitBasic", 1)); + RecipeUtils.addShapelessGregtechRecipe( + new ItemStack[]{ItemUtils.simpleMetaStack("gregtech:gt.metaitem.03:32078", 32078, 1)}, + ItemUtils.getItemStackOfAmountFromOreDict("circuitBasic", 1)); + + //Good + RecipeUtils.addShapelessGregtechRecipe( + new ItemStack[]{ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01:32702", 32702, 1)}, + ItemUtils.getItemStackOfAmountFromOreDict("circuitGood", 1)); + RecipeUtils.addShapelessGregtechRecipe( + new ItemStack[]{ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01:32702", 32702, 1)}, + ItemUtils.getItemStackOfAmountFromOreDict("circuitGood", 1)); + + //Advanced + RecipeUtils.addShapelessGregtechRecipe( + new ItemStack[]{ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01:32703", 32703, 1)}, + ItemUtils.getItemStackOfAmountFromOreDict("circuitAdvanced", 1)); + RecipeUtils.addShapelessGregtechRecipe( + new ItemStack[]{ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01:32703", 32703, 1)}, + ItemUtils.getItemStackOfAmountFromOreDict("circuitAdvanced", 1)); + + //Data + RecipeUtils.addShapelessGregtechRecipe( + new ItemStack[]{ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01:32704", 32704, 1)}, + ItemUtils.getItemStackOfAmountFromOreDict("circuitData", 1)); + + //Elite + RecipeUtils.addShapelessGregtechRecipe( + new ItemStack[]{ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01:32705", 32705, 1)}, + ItemUtils.getItemStackOfAmountFromOreDict("circuitElite", 1)); + + //Master + RecipeUtils.addShapelessGregtechRecipe( + new ItemStack[]{ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01:32706", 32706, 1)}, + ItemUtils.getItemStackOfAmountFromOreDict("circuitMaster", 1)); + + + + //Components + //Green Chip + RecipeUtils.addShapelessGregtechRecipe( + new ItemStack[]{ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01:32713", 32713, 1)}, + GregtechItemList.Old_Circuit_Parts_Crystal_Chip_Elite.get(1)); + //Blue Chip + RecipeUtils.addShapelessGregtechRecipe( + new ItemStack[]{ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01:32714", 32714, 1)}, + GregtechItemList.Old_Circuit_Parts_Crystal_Chip_Master.get(1)); + + //Basic Board + RecipeUtils.addShapelessGregtechRecipe( + new ItemStack[]{ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01:32710", 32710, 1)}, + GregtechItemList.Old_Circuit_Board_Basic.get(1)); + //Advanced Board + RecipeUtils.addShapelessGregtechRecipe( + new ItemStack[]{ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01:32711", 32711, 1)}, + GregtechItemList.Old_Circuit_Board_Advanced.get(1)); + //Elite Board + RecipeUtils.addShapelessGregtechRecipe( + new ItemStack[]{ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01:32712", 32712, 1)}, + GregtechItemList.Old_Circuit_Board_Elite.get(1)); + + + //remove a few recipes + /*GT_ModHandler.removeRecipeByOutput(ItemUtils.simpleMetaStack("gregtech:gt.metaitem.03:32070", 32070, 1)); + GT_ModHandler.removeRecipeByOutput(ItemUtils.simpleMetaStack("gregtech:gt.metaitem.03:32069", 32069, 1)); + if (LoadedMods.Extra_Utils){ + ItemStack EQU = ItemUtils.simpleMetaStack("ExtraUtilities:enderQuarryUpgrade", 0, 1); + if (EQU != null){ + GT_ModHandler.removeRecipeByOutput(EQU); + GT_Values.RA.addAssemblerRecipe( + ItemUtils.simpleMetaStack("ExtraUtilities:decorativeBlock1:12", 12, 1), + GregtechItemList.Old_Circuit_Master.get(1), + EQU, + 80*20, + 2); + } + } + if (LoadedMods.GalacticraftCore){ + ItemStack ACW = ItemUtils.simpleMetaStack("GalacticraftCore:item.basicItem:14", 14, 1); + if (ACW != null){ + GT_ModHandler.removeRecipeByOutput(ACW); + GT_Values.RA.addAssemblerRecipe( + ItemUtils.getItemStackOfAmountFromOreDict("gemDiamond", 1), + GregtechItemList.Old_Circuit_Board_Advanced.get(1), + ACW, + 160*20, + 4); + } + ItemStack ACW2 = ItemUtils.simpleMetaStack("GalacticraftCore:item.basicItem:13", 13, 1); + if (ACW2 != null){ + GT_ModHandler.removeRecipeByOutput(ACW2); + GT_Values.RA.addAssemblerRecipe( + ItemUtils.getItemStackOfAmountFromOreDict("gemDiamond", 1), + GregtechItemList.Old_Circuit_Board_Basic.get(1), + ACW2, + 80*20, + 2); + } + }*/ + + return true; + } + + private static boolean hideCircuitsNEI(){ + Boolean isNEILoaded = Loader.isModLoaded("NotEnoughItems"); + if (isNEILoaded && !CORE.ConfigSwitches.showHiddenNEIItems){ + Logger.INFO("[Old Feature - Circuits] Hiding .28+ circuits in NEI."); + String[] CircuitToHide = { + "Circuit_Board_Basic", + "Circuit_Board_Advanced", + "Circuit_Board_Elite", + "Circuit_Parts_Advanced", + "Circuit_Parts_Wiring_Basic", + "Circuit_Parts_Wiring_Advanced", + "Circuit_Parts_Wiring_Elite", + "Circuit_Parts_Crystal_Chip_Elite", + "Circuit_Parts_Crystal_Chip_Master", + "Circuit_Primitive", + "Circuit_Basic", + "Circuit_Integrated_Good", + "Circuit_Good", + "Circuit_Advanced", + "Circuit_Data", + "Circuit_Elite", + "Circuit_Master", + "Circuit_Ultimate", + "Circuit_Board_Coated", + "Circuit_Board_Phenolic", + "Circuit_Board_Epoxy", + "Circuit_Board_Fiberglass", + "Circuit_Board_Multifiberglass", + "Circuit_Board_Wetware", + "Circuit_Parts_Resistor", + "Circuit_Parts_ResistorSMD", + "Circuit_Parts_Glass_Tube", + "Circuit_Parts_Vacuum_Tube", + "Circuit_Parts_Coil", + "Circuit_Parts_Diode", + "Circuit_Parts_DiodeSMD", + "Circuit_Parts_Transistor", + "Circuit_Parts_TransistorSMD", + "Circuit_Parts_Capacitor", + "Circuit_Parts_CapacitorSMD", + "Circuit_Silicon_Ingot", + "Circuit_Silicon_Ingot2", + "Circuit_Silicon_Ingot3", + "Circuit_Silicon_Wafer", + "Circuit_Silicon_Wafer2", + "Circuit_Silicon_Wafer3", + "Circuit_Wafer_ILC", + "Circuit_Chip_ILC", + "Circuit_Wafer_Ram", + "Circuit_Chip_Ram", + "Circuit_Wafer_NAND", + "Circuit_Chip_NAND", + "Circuit_Wafer_NOR", + "Circuit_Chip_NOR", + "Circuit_Wafer_CPU", + "Circuit_Chip_CPU", + "Circuit_Wafer_SoC", + "Circuit_Chip_SoC", + "Circuit_Wafer_SoC2", + "Circuit_Chip_SoC2", + "Circuit_Wafer_PIC", + "Circuit_Chip_PIC", + "Circuit_Wafer_HPIC", + "Circuit_Chip_HPIC", + "Circuit_Wafer_NanoCPU", + "Circuit_Chip_NanoCPU", + "Circuit_Wafer_QuantumCPU", + "Circuit_Chip_QuantumCPU", + "Circuit_Chip_CrystalCPU", + "Circuit_Chip_CrystalSoC", + "Circuit_Chip_NeuroCPU", + "Circuit_Chip_Stemcell", + "Circuit_Processor", + "Circuit_Computer", + "Circuit_Nanoprocessor", + "Circuit_Nanocomputer", + "Circuit_Elitenanocomputer", + "Circuit_Quantumprocessor", + "Circuit_Quantumcomputer", + "Circuit_Masterquantumcomputer", + "Circuit_Quantummainframe", + "Circuit_Crystalprocessor", + "Circuit_Crystalcomputer", + "Circuit_Ultimatecrystalcomputer", + "Circuit_Crystalmainframe", + "Circuit_Neuroprocessor", + "Circuit_Wetwarecomputer", + "Circuit_Wetwaresupercomputer", + "Circuit_Wetwaremainframe", + "Circuit_Parts_RawCrystalChip", + //Circuits Additions in .30/.31 + "Circuit_Board_Plastic", + "Circuit_Parts_GlassFiber", + "Circuit_Parts_PetriDish", + "Circuit_Microprocessor" + }; + + for (String component : CircuitToHide){ + try { + ItemUtils.hideItemFromNEI(ItemUtils.getValueOfItemList(component, null).get(1L, new Object[0])); + } catch (IllegalArgumentException I){ + Logger.INFO("Could not find "+component+" in the Gregtech item list."); + Logger.INFO("This is NOT an error, simply a notification."); + } + } + } + return true; + } + +} diff --git a/src/main/java/gtPlusPlus/core/recipe/RECIPES_RareEarthProcessing.java b/src/main/java/gtPlusPlus/core/recipe/RECIPES_RareEarthProcessing.java new file mode 100644 index 0000000000..97636e9e65 --- /dev/null +++ b/src/main/java/gtPlusPlus/core/recipe/RECIPES_RareEarthProcessing.java @@ -0,0 +1,226 @@ +package gtPlusPlus.core.recipe; + +import static gtPlusPlus.core.material.MISC_MATERIALS.BRINE; +import static gtPlusPlus.core.material.MISC_MATERIALS.HYDROGEN_CHLORIDE; +import static gtPlusPlus.core.material.MISC_MATERIALS.RARE_EARTH_HIGH; +import static gtPlusPlus.core.material.MISC_MATERIALS.RARE_EARTH_LOW; +import static gtPlusPlus.core.material.MISC_MATERIALS.RARE_EARTH_MID; +import static gtPlusPlus.core.material.MISC_MATERIALS.SALT_WATER; +import static gtPlusPlus.core.material.MISC_MATERIALS.SODIUM_CHLORIDE; +import static gtPlusPlus.core.material.MISC_MATERIALS.SODIUM_HYDROXIDE; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_OreDictUnificator; +import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.core.material.ELEMENT; +import gtPlusPlus.core.material.MISC_MATERIALS; +import gtPlusPlus.core.material.MaterialGenerator; +import gtPlusPlus.core.material.ORES; +import gtPlusPlus.core.recipe.common.CI; +import gtPlusPlus.core.util.minecraft.FluidUtils; +import gtPlusPlus.core.util.minecraft.ItemUtils; +import gtPlusPlus.core.util.minecraft.MaterialUtils; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidStack; + +public class RECIPES_RareEarthProcessing { + + private static ItemStack mDustSodiumHydroxide; + private static ItemStack mDustSalt; + private static FluidStack mSaltWater; + private static FluidStack mBrine; + private static FluidStack mHydrogenChloride; + + public static void init() { + + // Salt Check and Assignment + mDustSalt = ItemUtils.getItemStackOfAmountFromOreDict("dustSalt", 1); + if (mDustSalt == null) { + MaterialUtils.generateSpecialDustAndAssignToAMaterial(SODIUM_CHLORIDE, false); + mDustSalt = SODIUM_CHLORIDE.getDust(1); + } + else { + SODIUM_CHLORIDE.registerComponentForMaterial(OrePrefixes.dust, mDustSalt); + } + + // Salt water Check and Assignment + mSaltWater = FluidUtils.getFluidStack("saltwater", 1000); + if (mSaltWater == null) { + Fluid f = SALT_WATER.generateFluid(); + SALT_WATER.registerComponentForMaterial(FluidUtils.getFluidStack(f, 1000)); + mSaltWater = SALT_WATER.getFluidStack(1000); + } + else { + SALT_WATER.registerComponentForMaterial(FluidUtils.getFluidStack(mSaltWater, 1000)); + } + + // Brine Check and assignment + mBrine = FluidUtils.getFluidStack("brine", 1000); + if (mBrine == null) { + Fluid f = BRINE.generateFluid(); + BRINE.registerComponentForMaterial(FluidUtils.getFluidStack(f, 1000)); + mBrine = BRINE.getFluidStack(1000); + } + else { + BRINE.registerComponentForMaterial(FluidUtils.getFluidStack(mBrine, 1000)); + } + + // Check Sodium Hydroxide Exists, generate if not. + mDustSodiumHydroxide = ItemUtils.getItemStackOfAmountFromOreDict("dustSodiumHydroxide", 1); + if (mDustSodiumHydroxide == null) { + mDustSodiumHydroxide = ItemUtils.getItemStackOfAmountFromOreDict("dustSodiumHydroxide_GT5U", 1); + if (mDustSodiumHydroxide == null) { + MaterialUtils.generateSpecialDustAndAssignToAMaterial(SODIUM_HYDROXIDE, false); + mDustSodiumHydroxide = SODIUM_HYDROXIDE.getDust(1); + } + else { + SODIUM_HYDROXIDE.registerComponentForMaterial(OrePrefixes.dust, mDustSodiumHydroxide); + } + } + else { + SODIUM_HYDROXIDE.registerComponentForMaterial(OrePrefixes.dust, mDustSodiumHydroxide); + } + + // Hydrogen Chloride Check and assignment + mHydrogenChloride = FluidUtils.getFluidStack("hydrogenchloride", 1000); + if (mHydrogenChloride == null) { + HYDROGEN_CHLORIDE.generateFluid(); + mHydrogenChloride = BRINE.getFluidStack(1000); + } + else { + HYDROGEN_CHLORIDE.registerComponentForMaterial(FluidUtils.getFluidStack(mHydrogenChloride, 1000)); + } + + + // Add Process for creating Brine + CORE.RA.addBrewingRecipe( + ItemUtils.getSimpleStack(mDustSalt, 16), + MISC_MATERIALS.SALT_WATER.getFluidStack(2000), + FluidUtils.getFluidStack(mBrine, 4000), + 20 * 20, + 120, + false); + + // Chloralkali process + GT_Values.RA.addElectrolyzerRecipe( + CI.getNumberedCircuit(16), + CI.emptyCells(4), + FluidUtils.getFluidStack(mBrine, 4000), + null, // Out + ItemUtils.getItemStackOfAmountFromOreDict("cellChlorine", 2), + ItemUtils.getItemStackOfAmountFromOreDict("cellHydrogen", 2), + ItemUtils.getSimpleStack(mDustSodiumHydroxide, 2), + null, + null, + null, + new int[] {10000, 10000, 10000}, + 20 * 30, + (int) GT_Values.V[2]); + + // Generate Special Laser Recipe + CORE.RA.addUvLaserRecipe( + ELEMENT.getInstance().CHLORINE.getCell(2), + ELEMENT.getInstance().HYDROGEN.getCell(2), + ItemUtils.getItemStackOfAmountFromOreDict("cellHydrogenChloride", 4), + 20 * 30, + 480); + + + // Set Material Tiers correctly + ORES.GREENOCKITE.vTier = 1; + RARE_EARTH_LOW.vTier = 1; + RARE_EARTH_MID.vTier = 3; + RARE_EARTH_HIGH.vTier = 5; + + // Set Material Voltages correctly + ORES.GREENOCKITE.vVoltageMultiplier = 30; + RARE_EARTH_LOW.vVoltageMultiplier = 30; + RARE_EARTH_MID.vVoltageMultiplier = 480; + RARE_EARTH_HIGH.vVoltageMultiplier = 7680; + + // Set Material Tooltips to be shorter + RARE_EARTH_LOW.vChemicalFormula = "??????"; + RARE_EARTH_MID.vChemicalFormula = "??????"; + RARE_EARTH_HIGH.vChemicalFormula = "??????"; + + // Set Material Tooltips to be shorter + RARE_EARTH_LOW.vChemicalSymbol = "??"; + RARE_EARTH_MID.vChemicalSymbol = "??"; + RARE_EARTH_HIGH.vChemicalSymbol = "??"; + + // Generate Ore Materials + MaterialGenerator.generateOreMaterial(RARE_EARTH_LOW); + MaterialGenerator.generateOreMaterial(RARE_EARTH_MID); + MaterialGenerator.generateOreMaterial(RARE_EARTH_HIGH); + + ItemStack aRareEarth = GT_OreDictUnificator.get(OrePrefixes.dust, Materials.RareEarth, 1L); + + Fluid aSulfuric = FluidUtils.getFluidStack("sulfuricacid", 1).getFluid(); + Fluid aHydrocholric = FluidUtils.getFluidStack("hydrogenchloride", 1).getFluid(); + Fluid aNitric = FluidUtils.getFluidStack("hydrofluoricacid", 1).getFluid(); + + + + // LV Rare Earth + GT_Values.RA.addChemicalBathRecipe( + ItemUtils.getSimpleStack(aRareEarth, 3), + FluidUtils.getFluidStack(aSulfuric, 1000), + RARE_EARTH_LOW.getCrushed(1), + RARE_EARTH_LOW.getCrushed(1), + RARE_EARTH_LOW.getCrushed(1), + new int[] {10000, 10000, 9000}, + 20 * 30, + (int) GT_Values.V[1]); + + // HV Rare Earth + GT_Values.RA.addChemicalBathRecipe( + ItemUtils.getSimpleStack(aRareEarth, 6), + FluidUtils.getFluidStack(aHydrocholric, 3000), + RARE_EARTH_MID.getCrushed(2), + RARE_EARTH_MID.getCrushed(2), + RARE_EARTH_MID.getCrushed(2), + new int[] {10000, 9000, 8000}, + 20 * 60, + (int) GT_Values.V[3]); + + // IV Rare Earth + GT_Values.RA.addChemicalBathRecipe( + ItemUtils.getSimpleStack(aRareEarth, 9), + FluidUtils.getFluidStack(aNitric, 6000), + RARE_EARTH_HIGH.getCrushed(3), + RARE_EARTH_HIGH.getCrushed(3), + RARE_EARTH_HIGH.getCrushed(3), + new int[] {9000, 8000, 7000}, + 20 * 90, + (int) GT_Values.V[5]); + + + } + + + public static void processCopperRecipes() { + + // Rare Earth Processing + /*GT_Values.RA.addSifterRecipe(ItemUtils.getItemStackOfAmountFromOreDict("dustRareEarth", 1), + new ItemStack[] { + ELEMENT.getInstance().YTTRIUM.getSmallDust(1), + ELEMENT.getInstance().NEODYMIUM.getSmallDust(1), + ELEMENT.getInstance().LANTHANUM.getSmallDust(1), + ELEMENT.getInstance().CERIUM.getSmallDust(1), + ELEMENT.getInstance().CADMIUM.getSmallDust(1), + ELEMENT.getInstance().CAESIUM.getSmallDust(1), + ORES.SAMARSKITE_YB.getSmallDust(1), + ORES.FLORENCITE.getSmallDust(1), + ORES.FLUORCAPHITE.getSmallDust(1), + //ELEMENT.getInstance().YTTERBIUM.getTinyDust(1), + //ELEMENT.getInstance().SAMARIUM.getTinyDust(1), + //ELEMENT.getInstance().GADOLINIUM.getTinyDust(1) + }, + new int[] { 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000 }, 20 * 30, 500);*/ + + } + +} diff --git a/src/main/java/gtPlusPlus/core/recipe/RECIPES_SeleniumProcessing.java b/src/main/java/gtPlusPlus/core/recipe/RECIPES_SeleniumProcessing.java new file mode 100644 index 0000000000..9a2ea8bad0 --- /dev/null +++ b/src/main/java/gtPlusPlus/core/recipe/RECIPES_SeleniumProcessing.java @@ -0,0 +1,222 @@ +package gtPlusPlus.core.recipe; + +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.core.material.ELEMENT; +import gtPlusPlus.core.material.MISC_MATERIALS; +import gtPlusPlus.core.recipe.common.CI; +import gtPlusPlus.core.util.minecraft.FluidUtils; +import gtPlusPlus.core.util.minecraft.ItemUtils; +import gtPlusPlus.core.util.minecraft.MaterialUtils; +import gtPlusPlus.core.util.reflect.AddGregtechRecipe; +import net.minecraft.item.ItemStack; + +public class RECIPES_SeleniumProcessing { + + public static void init() { + + //We need this + MaterialUtils.generateSpecialDustAndAssignToAMaterial(MISC_MATERIALS.SELENIUM_DIOXIDE, false); + + // Makes Selenium Dioxide + processCopperRecipes(); + + //Liquify the Dried Dioxide + AddGregtechRecipe.addCokeAndPyrolyseRecipes(MISC_MATERIALS.SELENIUM_DIOXIDE.getDust(1), 13, FluidUtils.getSteam(500), null, MISC_MATERIALS.SELENIUM_DIOXIDE.getFluidStack(1000), 20, 1024); + + // Produce Selenious Acid + AddGregtechRecipe.addCokeAndPyrolyseRecipes(MISC_MATERIALS.SELENIUM_DIOXIDE.getCell(1), 14, FluidUtils.getHotWater(4000), CI.emptyCells(1), MISC_MATERIALS.SELENIOUS_ACID.getFluidStack(1000), 20, 2048); + + // Make Selenium + CORE.RA.addBlastSmelterRecipe( + new ItemStack[] { + ItemUtils.getGregtechCircuit(14), + ItemUtils.getItemStackOfAmountFromOreDict("cellSulfuricAcid", 8), + ELEMENT.getInstance().CARBON.getDust(16), + }, + MISC_MATERIALS.SELENIOUS_ACID.getFluidStack(750), + ELEMENT.getInstance().SELENIUM.getFluidStack(144 * 1), + new ItemStack[] { + CI.emptyCells(8), + ELEMENT.getInstance().SELENIUM.getIngot(1), + ELEMENT.getInstance().SELENIUM.getIngot(1), + }, + new int[] {10000, 2000, 2000}, + 20 * 300, + 7200); + + + /*// Old recipes for Selenium Roasting + CORE.RA.addBlastSmelterRecipe( + new ItemStack[] { + ItemUtils.getGregtechCircuit(16), + ItemUtils.getItemStackOfAmountFromOreDict("crushedPurifiedPyrite", 8), + ELEMENT.getInstance().CARBON.getDust(32), + }, + Materials.SulfuricAcid.getFluid(4000), + ELEMENT.getInstance().SELENIUM.getFluid(144), + 0, + 20 * 300, + 2000); + CORE.RA.addBlastSmelterRecipe( + new ItemStack[] { + ItemUtils.getGregtechCircuit(17), + ItemUtils.getItemStackOfAmountFromOreDict("crushedPurifiedChalcopyrite", 8), + ELEMENT.getInstance().CARBON.getDust(32), + }, + Materials.SulfuricAcid.getFluid(4000), + ELEMENT.getInstance().SELENIUM.getFluid(144), + 0, + 20 * 300, + 2000); + CORE.RA.addBlastSmelterRecipe( + new ItemStack[] { + ItemUtils.getGregtechCircuit(18), + ItemUtils.getItemStackOfAmountFromOreDict("crushedPurifiedGalena", 8), + ELEMENT.getInstance().CARBON.getDust(32), + }, + Materials.SulfuricAcid.getFluid(4000), + ELEMENT.getInstance().SELENIUM.getFluid(144), + 0, + 20 * 300, + 2000);*/ + } + + + public static void processCopperRecipes() { + + //Copper + CORE.RA.addDehydratorRecipe( + new ItemStack[]{ + CI.getNumberedAdvancedCircuit(23), + ItemUtils.getOrePrefixStack(OrePrefixes.crushedPurified, Materials.Copper, 1), // Item Input + }, + FluidUtils.getHotWater(1000), // Fluid + MISC_MATERIALS.SELENIUM_DIOXIDE.getFluidStack(20), // Fluid + new ItemStack[] { + ItemUtils.getOrePrefixStack(OrePrefixes.crushedCentrifuged, Materials.Copper, 1), + MISC_MATERIALS.SELENIUM_DIOXIDE.getDust(1), + MISC_MATERIALS.SELENIUM_DIOXIDE.getDust(1), + MISC_MATERIALS.SELENIUM_DIOXIDE.getSmallDust(1), + MISC_MATERIALS.SELENIUM_DIOXIDE.getSmallDust(1), + MISC_MATERIALS.SELENIUM_DIOXIDE.getSmallDust(1), + MISC_MATERIALS.SELENIUM_DIOXIDE.getTinyDust(1), + MISC_MATERIALS.SELENIUM_DIOXIDE.getTinyDust(1), + MISC_MATERIALS.SELENIUM_DIOXIDE.getTinyDust(1), + }, // Output + new int[] { + 10000, + 100, + 100, + 500, + 500, + 500, + 1000, + 1000, + 1000 + }, + 40 * 20, // Time in ticks + 1024); // EU + + //Tetra + CORE.RA.addDehydratorRecipe( + new ItemStack[]{ + CI.getNumberedAdvancedCircuit(23), + ItemUtils.getOrePrefixStack(OrePrefixes.crushedPurified, Materials.Tetrahedrite, 1), // Item Input + }, + FluidUtils.getHotWater(1000), // Fluid + MISC_MATERIALS.SELENIUM_DIOXIDE.getFluidStack(10), // Fluid + new ItemStack[] { + ItemUtils.getOrePrefixStack(OrePrefixes.crushedCentrifuged, Materials.Tetrahedrite, 1), + MISC_MATERIALS.SELENIUM_DIOXIDE.getDust(1), + MISC_MATERIALS.SELENIUM_DIOXIDE.getDust(1), + MISC_MATERIALS.SELENIUM_DIOXIDE.getSmallDust(1), + MISC_MATERIALS.SELENIUM_DIOXIDE.getSmallDust(1), + MISC_MATERIALS.SELENIUM_DIOXIDE.getSmallDust(1), + MISC_MATERIALS.SELENIUM_DIOXIDE.getTinyDust(1), + MISC_MATERIALS.SELENIUM_DIOXIDE.getTinyDust(1), + MISC_MATERIALS.SELENIUM_DIOXIDE.getTinyDust(1), + }, // Output + new int[] { + 10000, + 100, + 100, + 300, + 300, + 300, + 800, + 800, + 800 + }, + 40 * 20, // Time in ticks + 1024); // EU + + //Chalco + CORE.RA.addDehydratorRecipe( + new ItemStack[]{ + CI.getNumberedAdvancedCircuit(23), + ItemUtils.getOrePrefixStack(OrePrefixes.crushedPurified, Materials.Chalcopyrite, 1), // Item Input + }, + FluidUtils.getHotWater(1000), // Fluid + MISC_MATERIALS.SELENIUM_DIOXIDE.getFluidStack(10), // Fluid + new ItemStack[] { + ItemUtils.getOrePrefixStack(OrePrefixes.crushedCentrifuged, Materials.Chalcopyrite, 1), + MISC_MATERIALS.SELENIUM_DIOXIDE.getDust(1), + MISC_MATERIALS.SELENIUM_DIOXIDE.getDust(1), + MISC_MATERIALS.SELENIUM_DIOXIDE.getSmallDust(1), + MISC_MATERIALS.SELENIUM_DIOXIDE.getSmallDust(1), + MISC_MATERIALS.SELENIUM_DIOXIDE.getSmallDust(1), + MISC_MATERIALS.SELENIUM_DIOXIDE.getTinyDust(1), + MISC_MATERIALS.SELENIUM_DIOXIDE.getTinyDust(1), + MISC_MATERIALS.SELENIUM_DIOXIDE.getTinyDust(1), + }, // Output + new int[] { + 10000, + 100, + 100, + 300, + 300, + 300, + 800, + 800, + 800 + }, + 40 * 20, // Time in ticks + 1024); // EU + + //Malachite + CORE.RA.addDehydratorRecipe( + new ItemStack[]{ + CI.getNumberedAdvancedCircuit(23), + ItemUtils.getOrePrefixStack(OrePrefixes.crushedPurified, Materials.Malachite, 1), // Item Input + }, + FluidUtils.getHotWater(1000), // Fluid + MISC_MATERIALS.SELENIUM_DIOXIDE.getFluidStack(10), // Fluid + new ItemStack[] { + ItemUtils.getOrePrefixStack(OrePrefixes.crushedCentrifuged, Materials.Malachite, 1), + MISC_MATERIALS.SELENIUM_DIOXIDE.getDust(1), + MISC_MATERIALS.SELENIUM_DIOXIDE.getDust(1), + MISC_MATERIALS.SELENIUM_DIOXIDE.getSmallDust(1), + MISC_MATERIALS.SELENIUM_DIOXIDE.getSmallDust(1), + MISC_MATERIALS.SELENIUM_DIOXIDE.getSmallDust(1), + MISC_MATERIALS.SELENIUM_DIOXIDE.getTinyDust(1), + MISC_MATERIALS.SELENIUM_DIOXIDE.getTinyDust(1), + MISC_MATERIALS.SELENIUM_DIOXIDE.getTinyDust(1), + }, // Output + new int[] { + 10000, + 100, + 100, + 300, + 300, + 300, + 800, + 800, + 800 + }, + 40 * 20, // Time in ticks + 1024); // EU + } + +} diff --git a/src/main/java/gtPlusPlus/core/recipe/RECIPES_Shapeless.java b/src/main/java/gtPlusPlus/core/recipe/RECIPES_Shapeless.java new file mode 100644 index 0000000000..7ffdcf295b --- /dev/null +++ b/src/main/java/gtPlusPlus/core/recipe/RECIPES_Shapeless.java @@ -0,0 +1,35 @@ +package gtPlusPlus.core.recipe; + +import net.minecraft.item.ItemStack; + +import gtPlusPlus.api.objects.Logger; +import gtPlusPlus.core.lib.LoadedMods; + +public class RECIPES_Shapeless { + + static ItemStack dustStaballoy; + + //Circuits + static String circuitPrimitive = "circuitPrimitive"; + static String circuitBasic = "circuitBasic"; + static String circuitGood = "circuitGood"; + static String circuitAdvanced = "circuitAdvanced"; + static String circuitData = "circuitData"; + static String circuitElite = "circuitElite"; + static String circuitMaster = "circuitMaster"; + static String circuitUltimate = "circuitUltimate"; + static ItemStack gearboxCasing_Tier_1; + + public static final void loadRecipes(){ + //run(); + Logger.INFO("Loading Shapeless Recipes."); + } + + private static void run(){ + //Gregtech items + if (LoadedMods.Gregtech){ + + } + } + +} diff --git a/src/main/java/gtPlusPlus/core/recipe/RECIPES_Tools.java b/src/main/java/gtPlusPlus/core/recipe/RECIPES_Tools.java new file mode 100644 index 0000000000..42448e6b74 --- /dev/null +++ b/src/main/java/gtPlusPlus/core/recipe/RECIPES_Tools.java @@ -0,0 +1,181 @@ +package gtPlusPlus.core.recipe; + +import net.minecraft.block.Block; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +import gtPlusPlus.core.item.ModItems; +import gtPlusPlus.core.lib.LoadedMods; +import gtPlusPlus.core.util.minecraft.ItemUtils; +import gtPlusPlus.core.util.minecraft.RecipeUtils; +import net.minecraftforge.oredict.OreDictionary; + +public class RECIPES_Tools { + + //Outputs + public static ItemStack RECIPE_StaballoyPickaxe = new ItemStack(ModItems.itemStaballoyPickaxe); + public static ItemStack RECIPE_StaballoyAxe = new ItemStack(ModItems.itemStaballoyAxe); + public static ItemStack RECIPE_SandstoneHammer = new ItemStack(ModItems.itemSandstoneHammer); + //public static ItemStack RECIPE_StaballoyIngot = new ItemStack(ModItems.itemIngotStaballoy); + public static ItemStack RECIPE_SandStone = new ItemStack(Blocks.sandstone, 2); + public static ItemStack RECIPE_Sand = new ItemStack(Blocks.sand, 4); + public static ItemStack RECIPE_FireStarter = ItemUtils.getSimpleStack(ModItems.itemBasicFireMaker); + + public static ItemStack RECIPE_DivisionSigil; + + //MC Items + public static Item Apple = Items.apple; + + //MC Blocks + public static Block CobbleStone = Blocks.cobblestone; + public static Block Dirt = Blocks.dirt; + public static Block Sand = Blocks.sand; + public static Block Gravel = Blocks.gravel; + public static Block Sandstone = Blocks.sandstone; + + //null + public static String empty = " "; + + //Batteries + public static String batteryBasic = "batteryBasic"; + public static String batteryAdvanced = "batteryAdvanced"; + public static String batteryElite = "batteryElite"; + public static String batteryMaster = "batteryMaster"; + public static String batteryUltimate = "batteryUltimate"; + + //Circuits + public static String circuitPrimitive = "circuitPrimitive"; + public static String circuitBasic = "circuitBasic"; + public static String circuitGood = "circuitGood"; + public static String circuitAdvanced = "circuitAdvanced"; + public static String circuitElite = "circuitElite"; + public static String circuitMaster = "circuitMaster"; + public static String circuitUltimate = "circuitUltimate"; + + //Cables + public static String cableGt01Electrum = "cableGt01Electrum"; + public static String cableGt02Electrum = "cableGt02Electrum"; + public static String cableGt01RedstoneAlloy = "cableGt01RedstoneAlloy"; + public static String cableGt02RedstoneAlloy = "cableGt02RedstoneAlloy"; + public static String cableGt01Copper = "cableGt01Copper"; + public static String cableGt02Copper = "cableGt02Copper"; + public static String cableGt01AnnealedCopper = "cableGt01AnnealedCopper"; + public static String cableGt02AnnealedCopper = "cableGt02AnnealedCopper"; + + //Rods + public static String stickWood = "stickWood"; + public static String stickStaballoy= "stickStaballoy"; + public static String stickTitanium= "stickTitanium"; + public static String stickIron= "stickIron"; + public static String stickGold= "stickGold"; + public static String stickSilver= "stickSilver"; + public static String stickSteel= "stickSteel"; + public static String stickBronze= "stickBronze"; + public static String stickTungsten= "stickTungsten"; + public static String stickRedAlloy= "stickRedAlloy"; + public static String stickInvar= "stickInvar"; + public static String stickElectrum= "stickElectrum"; + public static String stickElectricalSteel= "stickElectricalSteel"; + + //Plates + public static String plateStaballoy= "plateStaballoy"; + public static String plateTitanium= "plateTitanium"; + public static String plateIron= "plateIron"; + public static String plateGold= "plateGold"; + public static String plateSilver= "plateSilver"; + public static String plateSteel= "plateSteel"; + public static String plateBronze= "plateBronze"; + public static String plateTungsten= "plateTungsten"; + public static String plateRedAlloy= "plateRedAlloy"; + public static String plateInvar= "plateInvar"; + public static String plateElectrum= "plateElectrum"; + public static String plateElectricalSteel= "plateElectricalSteel"; + + //Ingots + public static String ingotStaballoy= "ingotStaballoy"; + public static String ingotTitanium= "ingotTitanium"; + public static String ingotIron= "ingotIron"; + public static String ingotGold= "ingotGold"; + public static String ingotSilver= "ingotSilver"; + public static String ingotSteel= "ingotSteel"; + public static String ingotBronze= "ingotBronze"; + public static String ingotTungsten= "ingotTungsten"; + public static String ingotRedAlloy= "ingotRedAlloy"; + public static String ingotInvar= "ingotInvar"; + public static String ingotElectrum= "ingotElectrum"; + public static String ingotUranium= "ingotUranium"; + public static String ingotElectricalSteel= "ingotElectricalSteel"; + + //Crafting Tools + public static String craftingToolHardHammer = "craftingToolHardHammer"; + public static String craftingToolSoftHammer = "craftingToolSoftHammer"; + public static String craftingToolFile = "craftingToolFile"; + public static String craftingToolSaw = "craftingToolSaw"; + public static String craftingToolPickaxe = "craftingToolPickaxe"; + public static String craftingToolWrench = "craftingToolWrench"; + public static String craftingToolCrowbar = "craftingToolCrowbar"; + public static String craftingToolKnife = "craftingToolKnife"; + public static String craftingToolScrewdriver = "craftingToolScrewdriver"; + + public static ItemStack sandHammer = new ItemStack (ModItems.itemSandstoneHammer, 1, OreDictionary.WILDCARD_VALUE); + public static String craftingToolSandHammer = "craftingToolSandHammer"; + + public static ItemStack personalCloakingDevice = ItemUtils.getSimpleStack(ModItems.itemPersonalCloakingDevice); + public static String plateDoubleNiChrome = "plateDoubleNichrome"; + public static String plateIridiumAlloy = "plateAlloyIridium"; + + public static final void loadRecipes(){ + + + run(); + + } + + private static void run(){ + //Staballoy Pickaxe + RecipeUtils.addShapedRecipe( + plateStaballoy, plateStaballoy, ingotStaballoy, + craftingToolFile, stickTungsten, craftingToolHardHammer, + craftingToolWrench, stickTungsten, craftingToolHardHammer, + RECIPE_StaballoyPickaxe); + + //Staballoy Axe + RecipeUtils.addShapedRecipe( + plateStaballoy, ingotStaballoy, craftingToolHardHammer, + plateStaballoy, stickTungsten, craftingToolHardHammer, + craftingToolFile, stickTungsten, craftingToolWrench, + RECIPE_StaballoyAxe); + + //Cobble to Sand + RecipeUtils.addShapedRecipe( + CobbleStone, CobbleStone, CobbleStone, + CobbleStone, sandHammer, CobbleStone, + CobbleStone, CobbleStone, CobbleStone, + RECIPE_Sand); + + //Sand to Sandstone + RecipeUtils.addShapedRecipe( + Sand, Sand, Sand, + Sand, sandHammer, Sand, + Sand, Sand, Sand, + RECIPE_SandStone); + + //Sandstone Hammer + RecipeUtils.addShapedRecipe( + plateElectrum, ingotElectrum, plateElectrum, + craftingToolScrewdriver, stickBronze, craftingToolHardHammer, + null, stickSteel, null, + RECIPE_SandstoneHammer); + + //Basic Firemaker + RecipeUtils.addShapedRecipe( + "cropWheat", "cropWheat", "cropWheat", + ItemUtils.getSimpleStack(Items.string), stickWood, ItemUtils.getSimpleStack(Items.string), + "cropWheat", "cropWheat", "cropWheat", + RECIPE_FireStarter); + + } + +} diff --git a/src/main/java/gtPlusPlus/core/recipe/RECIPE_Batteries.java b/src/main/java/gtPlusPlus/core/recipe/RECIPE_Batteries.java new file mode 100644 index 0000000000..5476ef0e8d --- /dev/null +++ b/src/main/java/gtPlusPlus/core/recipe/RECIPE_Batteries.java @@ -0,0 +1,52 @@ +package gtPlusPlus.core.recipe; + +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.ItemList; + +import gtPlusPlus.core.lib.LoadedMods; +import gtPlusPlus.core.recipe.common.CI; +import gtPlusPlus.core.util.minecraft.ItemUtils; +import gtPlusPlus.core.util.minecraft.RecipeUtils; +import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList; + +public class RECIPE_Batteries { + + static ItemStack RECIPE_Battery_Sodium = GregtechItemList.Battery_RE_EV_Sodium.get(1); + static ItemStack RECIPE_Battery_Cadmium = GregtechItemList.Battery_RE_EV_Cadmium.get(1); + static ItemStack RECIPE_Battery_Lithium = GregtechItemList.Battery_RE_EV_Lithium.get(1); + static ItemStack GT_Battery_Sodium = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32539, 1); + static ItemStack GT_Battery_Cadmium = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32537, 1); + static ItemStack GT_Battery_Lithium = ItemUtils.simpleMetaStack("gregtech:gt.metaitem.01", 32538, 1); + static ItemStack machineTransformer_EV; + + public static void loadRecipes(){ + + if (LoadedMods.Gregtech){ + machineTransformer_EV = ItemList.Transformer_EV_HV.get(1); + run(); + } + } + + private static void run(){ + + + RecipeUtils.addShapedGregtechRecipe( + GT_Battery_Sodium, RECIPES_Machines.cableTier4, GT_Battery_Sodium, + CI.circuitTier3, machineTransformer_EV, CI.circuitTier3, + GT_Battery_Sodium, RECIPES_Machines.cableTier4, GT_Battery_Sodium, + RECIPE_Battery_Sodium); + RecipeUtils.addShapedGregtechRecipe( + GT_Battery_Cadmium, RECIPES_Machines.cableTier4, GT_Battery_Cadmium, + CI.circuitTier3, machineTransformer_EV, CI.circuitTier3, + GT_Battery_Cadmium, RECIPES_Machines.cableTier4, GT_Battery_Cadmium, + RECIPE_Battery_Cadmium); + RecipeUtils.addShapedGregtechRecipe( + GT_Battery_Lithium, RECIPES_Machines.cableTier4, GT_Battery_Lithium, + CI.circuitTier3, machineTransformer_EV, CI.circuitTier3, + GT_Battery_Lithium, RECIPES_Machines.cableTier4, GT_Battery_Lithium, + RECIPE_Battery_Lithium); + + } + +} diff --git a/src/main/java/gtPlusPlus/core/recipe/ShapedRecipeObject.java b/src/main/java/gtPlusPlus/core/recipe/ShapedRecipeObject.java new file mode 100644 index 0000000000..0d25d2bec9 --- /dev/null +++ b/src/main/java/gtPlusPlus/core/recipe/ShapedRecipeObject.java @@ -0,0 +1,43 @@ +package gtPlusPlus.core.recipe; + +import net.minecraft.item.ItemStack; + +import gtPlusPlus.api.objects.Logger; +import gtPlusPlus.core.util.minecraft.RecipeUtils; + +public class ShapedRecipeObject { + + public Object object_A; + public Object object_B; + public Object object_C; + public Object object_D; + public Object object_E; + public Object object_F; + public Object object_G; + public Object object_H; + public Object object_I; + public ItemStack object_OUTPUT; + + public ShapedRecipeObject( + final Object input_A,final Object input_B,final Object input_C, + final Object input_D,final Object input_E,final Object input_F, + final Object input_G,final Object input_H,final Object input_I, + final ItemStack input_Output){ + this.object_A = input_A; + this.object_B = input_B; + this.object_C = input_C; + this.object_D = input_D; + this.object_E = input_E; + this.object_F = input_F; + this.object_G = input_G; + this.object_H = input_H; + this.object_I = input_I; + this.object_OUTPUT = input_Output; + Logger.SPECIFIC_WARNING("ShapedRecipeObject", "New object created.", 36); + } + + public void buildRecipe(){ + RecipeUtils.recipeBuilder(this.object_A, this.object_B, this.object_C, this.object_D, this.object_E, this.object_F, this.object_G, this.object_H, this.object_I, this.object_OUTPUT); + } + +} diff --git a/src/main/java/gtPlusPlus/core/recipe/common/CI.java b/src/main/java/gtPlusPlus/core/recipe/common/CI.java new file mode 100644 index 0000000000..0a1b762a97 --- /dev/null +++ b/src/main/java/gtPlusPlus/core/recipe/common/CI.java @@ -0,0 +1,1343 @@ +package gtPlusPlus.core.recipe.common; + +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_Utility; +import gtPlusPlus.api.objects.Logger; +import gtPlusPlus.core.item.chemistry.AgriculturalChem; +import gtPlusPlus.core.item.chemistry.GenericChem; +import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.core.material.ALLOY; +import gtPlusPlus.core.material.ELEMENT; +import gtPlusPlus.core.material.Material; +import gtPlusPlus.core.recipe.LOADER_Machine_Components; +import gtPlusPlus.core.util.Utils; +import gtPlusPlus.core.util.math.MathUtils; +import gtPlusPlus.core.util.minecraft.ItemUtils; +import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList; +import gtPlusPlus.xmod.gregtech.common.StaticFields59; +import ic2.core.Ic2Items; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidStack; + +public class CI { + + //null + public static ItemStack _NULL = ItemUtils.getErrorStack(1); + + //bits + public static long bits = GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE + | GT_ModHandler.RecipeBits.BUFFERED; + public static long bitsd = GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE + | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED; + + //Circuits + public static Object circuitPrimitive; + public static Object circuitTier1; + public static Object circuitTier2; + public static Object circuitTier3; + public static Object circuitTier4; + public static Object circuitTier5; + public static Object circuitTier6; + public static Object circuitTier7; + public static Object circuitTier8; + public static Object circuitTier9; + + //Machine Components + public static ItemStack electricMotor_ULV; + public static ItemStack electricMotor_LV; + public static ItemStack electricMotor_MV; + public static ItemStack electricMotor_HV; + public static ItemStack electricMotor_EV; + public static ItemStack electricMotor_IV; + public static ItemStack electricMotor_LuV; + public static ItemStack electricMotor_ZPM; + public static ItemStack electricMotor_UV; + public static ItemStack electricMotor_MAX; + public static ItemStack electricPump_ULV; + public static ItemStack electricPump_LV; + public static ItemStack electricPump_MV; + public static ItemStack electricPump_HV; + public static ItemStack electricPump_EV; + public static ItemStack electricPump_IV; + public static ItemStack electricPump_LuV; + public static ItemStack electricPump_ZPM; + public static ItemStack electricPump_UV; + public static ItemStack electricPump_MAX; + public static ItemStack electricPiston_ULV; + public static ItemStack electricPiston_LV; + public static ItemStack electricPiston_MV; + public static ItemStack electricPiston_HV; + public static ItemStack electricPiston_EV; + public static ItemStack electricPiston_IV; + public static ItemStack electricPiston_LuV; + public static ItemStack electricPiston_ZPM; + public static ItemStack electricPiston_UV ; + public static ItemStack electricPiston_MAX; + public static ItemStack robotArm_ULV; + public static ItemStack robotArm_LV; + public static ItemStack robotArm_MV; + public static ItemStack robotArm_HV; + public static ItemStack robotArm_EV; + public static ItemStack robotArm_IV; + public static ItemStack robotArm_LuV; + public static ItemStack robotArm_ZPM; + public static ItemStack robotArm_UV; + public static ItemStack robotArm_MAX; + public static ItemStack conveyorModule_ULV; + public static ItemStack conveyorModule_LV; + public static ItemStack conveyorModule_MV; + public static ItemStack conveyorModule_HV; + public static ItemStack conveyorModule_EV; + public static ItemStack conveyorModule_IV; + public static ItemStack conveyorModule_LuV; + public static ItemStack conveyorModule_ZPM; + public static ItemStack conveyorModule_UV; + public static ItemStack conveyorModule_MAX; + public static ItemStack emitter_ULV; + public static ItemStack emitter_LV; + public static ItemStack emitter_MV; + public static ItemStack emitter_HV; + public static ItemStack emitter_EV; + public static ItemStack emitter_IV; + public static ItemStack emitter_LuV; + public static ItemStack emitter_ZPM; + public static ItemStack emitter_UV; + public static ItemStack emitter_MAX; + public static ItemStack fieldGenerator_ULV; + public static ItemStack fieldGenerator_LV; + public static ItemStack fieldGenerator_MV; + public static ItemStack fieldGenerator_HV; + public static ItemStack fieldGenerator_EV; + public static ItemStack fieldGenerator_IV; + public static ItemStack fieldGenerator_LuV; + public static ItemStack fieldGenerator_ZPM; + public static ItemStack fieldGenerator_UV; + public static ItemStack fieldGenerator_MAX; + public static ItemStack sensor_ULV; + public static ItemStack sensor_LV; + public static ItemStack sensor_MV; + public static ItemStack sensor_HV; + public static ItemStack sensor_EV; + public static ItemStack sensor_IV; + public static ItemStack sensor_LuV; + public static ItemStack sensor_ZPM; + public static ItemStack sensor_UV; + public static ItemStack sensor_MAX; + + //Machine Casings + public static ItemStack machineCasing_ULV; + public static ItemStack machineCasing_LV; + public static ItemStack machineCasing_MV; + public static ItemStack machineCasing_HV; + public static ItemStack machineCasing_EV; + public static ItemStack machineCasing_IV; + public static ItemStack machineCasing_LuV; + public static ItemStack machineCasing_ZPM; + public static ItemStack machineCasing_UV; + public static ItemStack machineCasing_MAX; + + //Machine Hulls + public static ItemStack machineHull_ULV; + public static ItemStack machineHull_LV; + public static ItemStack machineHull_MV; + public static ItemStack machineHull_HV; + public static ItemStack machineHull_EV; + public static ItemStack machineHull_IV; + public static ItemStack machineHull_LuV; + public static ItemStack machineHull_ZPM; + public static ItemStack machineHull_UV; + public static ItemStack machineHull_MAX; + + //Gearbox Casings + public static ItemStack gearboxCasing_Tier_1; + public static ItemStack gearboxCasing_Tier_2; + public static ItemStack gearboxCasing_Tier_3; + public static ItemStack gearboxCasing_Tier_4; + + public static String[] component_Plate; + public static String[] component_Rod; + public static String[] component_Ingot; + + //Crafting Tools + public static String craftingToolWrench = "craftingToolWrench"; + public static String craftingToolHammer_Hard = "craftingToolHardHammer"; + public static String craftingToolHammer_Soft = "craftingToolSoftHammer"; + public static String craftingToolScrewdriver = "craftingToolScrewdriver"; + public static String craftingToolFile = "craftingToolFile"; + public static String craftingToolMortar = "craftingToolMortar"; + public static String craftingToolKnife = "craftingToolKnife"; + public static String craftingToolCrowbar = "craftingToolCrowbar"; + public static String craftingToolSaw = "craftingToolSaw"; + public static String craftingToolWireCutter = "craftingToolWirecutter"; + public static String craftingToolSolderingIron = "craftingToolSolderingIron"; + + //Explosives + public static ItemStack explosivePowderKeg; + public static ItemStack explosiveTNT; + public static ItemStack explosiveITNT; + + public static void preInit(){ + + //Tiered Components + component_Plate = new String[]{ + getTieredComponent(OrePrefixes.plate, 0), + getTieredComponent(OrePrefixes.plate, 1), + getTieredComponent(OrePrefixes.plate, 2), + getTieredComponent(OrePrefixes.plate, 3), + getTieredComponent(OrePrefixes.plate, 4), + getTieredComponent(OrePrefixes.plate, 5), + getTieredComponent(OrePrefixes.plate, 6), + getTieredComponent(OrePrefixes.plate, 7), + getTieredComponent(OrePrefixes.plate, 8), + getTieredComponent(OrePrefixes.plate, 9), + getTieredComponent(OrePrefixes.plate, 10), + getTieredComponent(OrePrefixes.plate, 11) + }; + component_Rod = new String[]{ + getTieredComponent(OrePrefixes.stick, 0), + getTieredComponent(OrePrefixes.stick, 1), + getTieredComponent(OrePrefixes.stick, 2), + getTieredComponent(OrePrefixes.stick, 3), + getTieredComponent(OrePrefixes.stick, 4), + getTieredComponent(OrePrefixes.stick, 5), + getTieredComponent(OrePrefixes.stick, 6), + getTieredComponent(OrePrefixes.stick, 7), + getTieredComponent(OrePrefixes.stick, 8), + getTieredComponent(OrePrefixes.stick, 9), + getTieredComponent(OrePrefixes.stick, 10), + getTieredComponent(OrePrefixes.stick, 11) + }; + component_Ingot = new String[]{ + getTieredComponent(OrePrefixes.ingot, 0), + getTieredComponent(OrePrefixes.ingot, 1), + getTieredComponent(OrePrefixes.ingot, 2), + getTieredComponent(OrePrefixes.ingot, 3), + getTieredComponent(OrePrefixes.ingot, 4), + getTieredComponent(OrePrefixes.ingot, 5), + getTieredComponent(OrePrefixes.ingot, 6), + getTieredComponent(OrePrefixes.ingot, 7), + getTieredComponent(OrePrefixes.ingot, 8), + getTieredComponent(OrePrefixes.ingot, 9), + getTieredComponent(OrePrefixes.ingot, 10), + getTieredComponent(OrePrefixes.ingot, 11) + }; + + //Circuits + circuitPrimitive = getTieredCircuit(0); + circuitTier1 = getTieredCircuit(1); + circuitTier2 = getTieredCircuit(2); + circuitTier3 = getTieredCircuit(3); + circuitTier4 = getTieredCircuit(4); + circuitTier5 = getTieredCircuit(5); + circuitTier6 = getTieredCircuit(6); + circuitTier7 = getTieredCircuit(7); + circuitTier8 = getTieredCircuit(8); + circuitTier9 = getTieredCircuit(9); + + } + + public static Object getTieredCircuit(int tier){ + if (CORE.ConfigSwitches.enableOldGTcircuits && CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK && !CORE.GTNH){ + if (tier == 0){ + return GregtechItemList.Old_Circuit_Primitive.get(1); + } + else if (tier == 1){ + return GregtechItemList.Old_Circuit_Basic.get(1); + } + else if (tier == 2){ + return GregtechItemList.Old_Circuit_Good.get(1); + } + else if (tier == 3){ + return GregtechItemList.Old_Circuit_Advanced.get(1); + } + else if (tier == 4){ + return GregtechItemList.Old_Circuit_Data.get(1); + } + else if (tier == 5){ + return GregtechItemList.Old_Circuit_Elite.get(1); + } + else if (tier == 6){ + return GregtechItemList.Old_Circuit_Master.get(1); + } + else if (tier == 7){ + return GregtechItemList.Old_Circuit_Ultimate.get(1); + } + else if (tier == 8){ + return GregtechItemList.Circuit_IV.get(1); + } + else if (tier == 9){ + return GregtechItemList.Circuit_LuV.get(1); + } + else if (tier == 10){ + return GregtechItemList.Circuit_ZPM.get(1); + } + } + else { + return getTieredCircuitOreDictName(tier); + } + return _NULL; + } + + public static ItemStack[] getAllCircuitsOfTier(int tier){ + return ItemUtils.getStackOfAllOreDictGroup(getTieredCircuitOreDictName(tier)); + } + + public static String getTieredCircuitOreDictName(int tier){ + if (tier == 0){ + return "circuitPrimitive"; + } + else if (tier == 1){ + return "circuitBasic"; + } + else if (tier == 2){ + return "circuitGood"; + } + else if (tier == 3){ + return "circuitAdvanced"; + } + else if (tier == 4){ + return "circuitData"; + } + else if (tier == 5){ + return "circuitElite"; + } + else if (tier == 6){ + return "circuitMaster"; + } + else if (tier == 7){ + return "circuitUltimate"; + } + else if (tier == 8){ + return "circuitSuperconductor"; + } + else if (tier == 9){ + return "circuitInfinite"; + } + else if (tier == 10){ + return "circuitQuantum"; + } + else { + return "circuitPrimitive"; + } + } + + public static ItemStack getNumberedCircuit(int Meta){ + return ItemUtils.getGregtechCircuit(Meta); + } + + private static Object getMaterialFromTier(int tier){ + if (tier == 0){ + return Materials.Wood; + } + else if (tier == 1){ + return Materials.Lead; + } + else if (tier == 2){ + return Materials.Bronze; + } + else if (tier == 3){ + return Materials.Steel; + } + else if (tier == 4){ + return ALLOY.EGLIN_STEEL; + } + else if (tier == 5){ + return Materials.Aluminium; + } + else if (tier == 6){ + return ALLOY.MARAGING250; + } + else if (tier == 7){ + return ALLOY.TANTALLOY_61; + } + else if (tier == 8){ + return ALLOY.INCONEL_792; + } + else if (tier == 9){ + return ALLOY.ZERON_100; + } + else if (tier == 10){ + return Materials.NaquadahEnriched; + } + else if (tier == 11){ + return Materials.Neutronium; + } + return Materials._NULL; + } + + @Deprecated + public static String getTieredComponent(OrePrefixes type, int tier){ + Object material = getMaterialFromTier(tier); + if (material != null){ + if (material instanceof Materials){ + //return (ItemStack) type.get(material); + String materialName = ((Materials) material).mDefaultLocalName; + Logger.INFO("Searching for a component named "+type.name()+materialName); + //return ItemUtils.getItemStackOfAmountFromOreDict(type.name()+materialName, 1); + return (type.name()+materialName); + } + else { + String materialName = (Utils.sanitizeString(((Material) material).getLocalizedName())); + Logger.INFO("Searching for a component named "+type.name()+materialName); + //return ItemUtils.getItemStackOfAmountFromOreDict(type.name()+materialName, 1); + return (type.name()+materialName); + } + } + Logger.INFO("[Components] Failed getting a tiered component. "+type.name()+" | "+tier); + return null; + } + + public static ItemStack getDataOrb(){ + if (CORE.ConfigSwitches.enableOldGTcircuits && CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK && !CORE.GTNH){ + return GregtechItemList.Old_Tool_DataOrb.get(1); + } + else { + return ItemList.Tool_DataOrb.get(1); + } + } + + public static ItemStack getDataStick(){ + if (CORE.ConfigSwitches.enableOldGTcircuits && CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK && !CORE.GTNH){ + return GregtechItemList.Old_Tool_DataStick.get(1); + } + else { + return ItemList.Tool_DataStick.get(1); + } + } + + public static final ItemStack getTieredMachineHull(int tier){ + if (tier == 0){ + return machineHull_ULV; + } + else if (tier == 1){ + return machineHull_LV; + } + else if (tier == 2){ + return machineHull_MV; + } + else if (tier == 3){ + return machineHull_HV; + } + else if (tier == 4){ + return machineHull_EV; + } + else if (tier == 5){ + return machineHull_IV; + } + else if (tier == 6){ + return machineHull_LuV; + } + else if (tier == 7){ + return machineHull_ZPM; + } + else if (tier == 8){ + return machineHull_UV; + } + else if (tier == 9){ + return machineHull_MAX; + } + else { + return GregtechItemList.Casing_Multi_Use.get(1); + } + } + + public static final ItemStack getTieredMachineCasing(int tier){ + if (tier == 0){ + if (machineCasing_ULV == null) { + machineCasing_ULV = ItemList.Casing_ULV.get(1); + } + return machineCasing_ULV; + } + else if (tier == 1){ + return machineCasing_LV; + } + else if (tier == 2){ + return machineCasing_MV; + } + else if (tier == 3){ + return machineCasing_HV; + } + else if (tier == 4){ + return machineCasing_EV; + } + else if (tier == 5){ + return machineCasing_IV; + } + else if (tier == 6){ + return machineCasing_LuV; + } + else if (tier == 7){ + return machineCasing_ZPM; + } + else if (tier == 8){ + return machineCasing_UV; + } + else if (tier == 9){ + return machineCasing_MAX; + } + else { + return GregtechItemList.Casing_Multi_Use.get(1); + } + } + + public static void init() { + //Set Explosives + explosivePowderKeg = ItemUtils.getValueOfItemList("Block_Powderbarrel", 1, ItemUtils.getSimpleStack(Items.gunpowder, 16)); + explosiveTNT = ItemUtils.getSimpleStack(Blocks.tnt).copy(); + explosiveITNT = Ic2Items.industrialTnt.copy(); + + //Machine Casings + machineCasing_ULV = ItemList.Casing_ULV.get(1); + machineCasing_LV = ItemList.Casing_LV.get(1); + machineCasing_MV = ItemList.Casing_MV.get(1); + machineCasing_HV = ItemList.Casing_HV.get(1); + machineCasing_EV = ItemList.Casing_EV.get(1); + machineCasing_IV = ItemList.Casing_IV.get(1); + machineCasing_LuV = ItemList.Casing_LuV.get(1); + machineCasing_ZPM = ItemList.Casing_ZPM.get(1); + machineCasing_UV = ItemList.Casing_UV.get(1); + machineCasing_MAX = ItemList.Casing_MAX.get(1); + + //Machine Hulls + machineHull_ULV = ItemList.Hull_ULV.get(1); + machineHull_LV = ItemList.Hull_LV.get(1); + machineHull_MV = ItemList.Hull_MV.get(1); + machineHull_HV = ItemList.Hull_HV.get(1); + machineHull_EV = ItemList.Hull_EV.get(1); + machineHull_IV = ItemList.Hull_IV.get(1); + machineHull_LuV = ItemList.Hull_LuV.get(1); + machineHull_ZPM = ItemList.Hull_ZPM.get(1); + machineHull_UV = ItemList.Hull_UV.get(1); + machineHull_MAX = ItemList.Hull_MAX.get(1); + + //Gear box Casings + gearboxCasing_Tier_1 = ItemList.Casing_Gearbox_Bronze.get(1); + gearboxCasing_Tier_2 = ItemList.Casing_Gearbox_Steel.get(1); + gearboxCasing_Tier_3 = ItemList.Casing_Gearbox_Titanium.get(1); + gearboxCasing_Tier_4 = ItemList.Casing_Gearbox_TungstenSteel.get(1); + + //Machine Components + LOADER_Machine_Components.initialise(); + } + + public static ItemStack emptyCells(int i) { + return ItemUtils.getEmptyCell(i); + } + + private static final Material[] aMaterial_Main = new Material[] { + ALLOY.POTIN, + ALLOY.TUMBAGA, + ALLOY.EGLIN_STEEL, + ALLOY.INCONEL_792, + ALLOY.TUNGSTEN_TITANIUM_CARBIDE, + ALLOY.NITINOL_60, + ALLOY.ZERON_100, + ALLOY.PIKYONIUM, + ELEMENT.STANDALONE.ADVANCED_NITINOL, + ALLOY.ABYSSAL, + ALLOY.QUANTUM, + ELEMENT.STANDALONE.HYPOGEN + }; + + private static final Material[] aMaterial_Secondary = new Material[] { + ALLOY.STEEL, + ALLOY.SILICON_CARBIDE, + ALLOY.BABBIT_ALLOY, + ALLOY.INCONEL_690, + ALLOY.STELLITE, + ALLOY.ARCANITE, + ALLOY.LAFIUM, + ALLOY.CINOBITE, + ALLOY.TITANSTEEL, + ALLOY.OCTIRON, + ELEMENT.STANDALONE.CELESTIAL_TUNGSTEN, + ELEMENT.STANDALONE.HYPOGEN + }; + + private static final Material[] aMaterial_Tertiary = new Material[] { + ELEMENT.getInstance().LEAD, + ELEMENT.getInstance().ALUMINIUM, + ELEMENT.STANDALONE.BLACK_METAL, + ELEMENT.getInstance().TUNGSTEN, + ALLOY.HASTELLOY_N, + ALLOY.ENERGYCRYSTAL, + ALLOY.TRINIUM_NAQUADAH_CARBON, + ALLOY.TRINIUM_REINFORCED_STEEL, //Arceus + ALLOY.TITANSTEEL, + ELEMENT.STANDALONE.ASTRAL_TITANIUM, + ELEMENT.STANDALONE.CELESTIAL_TUNGSTEN, + ELEMENT.STANDALONE.HYPOGEN + }; + + private static final Materials[] aMaterial_Cables = new Materials[] { + !CORE.GTNH ? Materials.Lead : Materials.Tin, + Materials.Cobalt, + Materials.AnnealedCopper, + Materials.Gold, + Materials.Titanium, + Materials.Nichrome, + Materials.Platinum, + Materials.YttriumBariumCuprate, + Materials.Naquadah, + Materials.Duranium, + Materials.Superconductor, + }; + + private static final Materials[] aMaterial_Circuits = new Materials[] { + Materials.Primitive, + Materials.Basic, + Materials.Good, + Materials.Advanced, + Materials.Data, + Materials.Data, + Materials.Elite, + Materials.Master, + Materials.Ultimate, + Materials.Superconductor, + Materials.Infinite, + }; + + private static final Material[][] aMaster = new Material[][] {aMaterial_Main, aMaterial_Secondary, aMaterial_Tertiary}; + + + public static FluidStack getTieredFluid(int aTier, int aAmount) { + return getTieredFluid(aTier, aAmount, 0); + } + + public static FluidStack getAlternativeTieredFluid(int aTier, int aAmount) { + return getTieredFluid(aTier, aAmount, 1); + } + + public static FluidStack getTertiaryTieredFluid(int aTier, int aAmount) { + return getTieredFluid(aTier, aAmount, 2); + } + + public static FluidStack getTieredFluid(int aTier, int aAmount, int aType) { + // Weird Legacy handling + /*ItemStack aCell = getTieredComponent(OrePrefixes.liquid, aTier, 1); + FluidStack a = GT_Utility.getFluidForFilledItem(aCell, true); + if (a == null) { + a = aMaster[aType][aTier].getFluid(aAmount); + }*/ + + // Modern Handling + FluidStack a = aMaster[aType][aTier].getFluidStack(aAmount); + if (a == null) { + ItemStack aCell = getTieredComponent(OrePrefixes.liquid, aTier, 1); + if (aCell != null) { + a = GT_Utility.getFluidForFilledItem(aCell, true); + a.amount = aAmount; + } + } + return a; + } + + public static ItemStack getEnergyCore(int aTier, int aAmount) { + ItemStack[] aOutput = new ItemStack[] { + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore"+"1", 1), + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore"+"2", 1), + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore"+"3", 1), + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore"+"4", 1), + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore"+"5", 1), + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore"+"6", 1), + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore"+"7", 1), + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore"+"8", 1), + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore"+"9", 1), + ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore"+"10", 1) + }; + return ItemUtils.getSimpleStack(aOutput[MathUtils.balance(aTier, 0, 9)], aAmount); + } + + public static ItemStack getPlate(int aTier, int aAmount) { + return getTieredComponent(OrePrefixes.plate, aTier, aAmount); + } + + public static ItemStack getDoublePlate(int aTier, int aAmount) { + return getTieredComponent(OrePrefixes.plateDouble, aTier, aAmount); + } + + public static ItemStack getGear(int aTier, int aAmount) { + return getTieredComponent(OrePrefixes.gearGt, aTier, aAmount); + } + + public static ItemStack getIngot(int aTier, int aAmount) { + return getTieredComponent(OrePrefixes.ingot, aTier, aAmount); + } + + public static ItemStack getBolt(int aTier, int aAmount) { + return getTieredComponent(OrePrefixes.bolt, aTier, aAmount); + } + + public static ItemStack getTieredComponent(OrePrefixes aPrefix, int aTier, int aAmount) { + aTier = Math.max(0, aTier); + + Material m = null; + + if (aPrefix == OrePrefixes.liquid) { + int aMatID = (aTier == 0 || aTier == 2 || aTier == 5 || aTier == 8 ? 0 : (aTier == 1 || aTier == 3 || aTier == 6 || aTier == 9 ? 1 : 2)); + ItemStack aCell = aMaster[aMatID][aTier].getCell(aAmount); + return aCell; + } + + if (aPrefix == OrePrefixes.circuit) { + if (aTier == 4) { + return ItemUtils.getSimpleStack(CI.getDataStick(), aAmount); + } + else if (aTier == 5) { + return ItemUtils.getSimpleStack(CI.getDataOrb(), aAmount); + } + return ItemUtils.getOrePrefixStack(OrePrefixes.circuit, aMaterial_Circuits[aTier], aAmount); + } + + //Check for Cables first, catch SuperConductor case and swap to wire. + if (aPrefix == OrePrefixes.cableGt01 || aPrefix == OrePrefixes.cableGt02 || aPrefix == OrePrefixes.cableGt04 || aPrefix == OrePrefixes.cableGt08 || aPrefix == OrePrefixes.cableGt12) { + //Special Handler + if (aTier == 10) { + if (aPrefix == OrePrefixes.cableGt01) { + aPrefix = OrePrefixes.wireGt02; + } + else if (aPrefix == OrePrefixes.cableGt02) { + aPrefix = OrePrefixes.wireGt04; + } + else if (aPrefix == OrePrefixes.cableGt04) { + aPrefix = OrePrefixes.wireGt08; + } + else if (aPrefix == OrePrefixes.cableGt08) { + aPrefix = OrePrefixes.wireGt12; + } + else if (aPrefix == OrePrefixes.cableGt12) { + aPrefix = OrePrefixes.wireGt16; + } + } + else { + return ItemUtils.getOrePrefixStack(aPrefix, aMaterial_Cables[aTier], aAmount); + } + + + } + if (aPrefix == OrePrefixes.wireGt01 || aPrefix == OrePrefixes.wireGt02 || aPrefix == OrePrefixes.wireGt04 || aPrefix == OrePrefixes.wireGt08 || aPrefix == OrePrefixes.wireGt12 || aPrefix == OrePrefixes.wireGt16) { + return ItemUtils.getOrePrefixStack(aPrefix, aMaterial_Cables[aTier], aAmount); + } + + if (aPrefix == OrePrefixes.pipeTiny || aPrefix == OrePrefixes.pipeSmall || aPrefix == OrePrefixes.pipe || aPrefix == OrePrefixes.pipeMedium || aPrefix == OrePrefixes.pipeLarge || aPrefix == OrePrefixes.pipeHuge) { + + if (aPrefix == OrePrefixes.pipe) { + aPrefix = OrePrefixes.pipeMedium; + } + + if (aTier == 0) { + return ItemUtils.getOrePrefixStack(aPrefix, Materials.Lead, aAmount); + } + else if (aTier == 1) { + return ItemUtils.getOrePrefixStack(aPrefix, Materials.Steel, aAmount); + } + else if (aTier == 2) { + return ItemUtils.getOrePrefixStack(aPrefix, Materials.StainlessSteel, aAmount); + } + else if (aTier == 3) { + return ItemUtils.getOrePrefixStack(aPrefix, Materials.Tungsten, aAmount); + } + else if (aTier == 4) { + return ItemUtils.getOrePrefixStack(aPrefix, Materials.TungstenSteel, aAmount); + } + else if (aTier == 5) { + return ItemUtils.getOrePrefixStack(aPrefix, ALLOY.MARAGING350, aAmount); + } + else if (aTier == 6) { + return ItemUtils.getOrePrefixStack(aPrefix, ALLOY.STABALLOY, aAmount); + } + else if (aTier == 7) { + return ItemUtils.getOrePrefixStack(aPrefix, ALLOY.HASTELLOY_X, aAmount); + } + else if (aTier == 8) { + return ItemUtils.getOrePrefixStack(aPrefix, Materials.Ultimate, aAmount); + } + else if (aTier == 9) { + return ItemUtils.getOrePrefixStack(OrePrefixes.pipeMedium, Materials.Superconductor, aAmount); + } + else if (aTier == 10) { + return ItemUtils.getOrePrefixStack(aPrefix, Materials.Europium, aAmount); + } + else { + return ItemUtils.getOrePrefixStack(aPrefix, Materials.Titanium, aAmount); + } + } + + if (aPrefix == OrePrefixes.rod) { + aPrefix = OrePrefixes.stick; + } + + if (aPrefix == OrePrefixes.gear || aPrefix == OrePrefixes.gearGt) { + m = aMaster[0][aTier]; + } + else if (aPrefix == OrePrefixes.rod || aPrefix == OrePrefixes.stick) { + m = aMaster[0][aTier]; + } + else if (aPrefix == OrePrefixes.stickLong) { + m = aMaster[1][aTier]; + } + else if (aPrefix == OrePrefixes.bolt) { + m = aMaster[2][aTier]; + } + else if (aPrefix == OrePrefixes.screw) { + m = aMaster[0][aTier]; + } + else if (aPrefix == OrePrefixes.rotor) { + m = aMaster[1][aTier]; + } + else if (aPrefix == OrePrefixes.frame || aPrefix == OrePrefixes.frameGt) { + m = aMaster[2][aTier]; + } + else if (aPrefix == OrePrefixes.ingot) { + m = aMaster[1][aTier]; + } + else if (aPrefix == OrePrefixes.plate) { + m = aMaster[0][aTier]; + } + else if (aPrefix == OrePrefixes.plateDouble) { + m = aMaster[0][aTier]; + } + else if (aPrefix == OrePrefixes.ring) { + m = aMaster[2][aTier]; + } + else if (aPrefix == OrePrefixes.cell) { + m = aMaster[1][aTier]; + } + else { + m = aMaterial_Main[aTier]; + } + + ItemStack aReturn = ItemUtils.getOrePrefixStack(aPrefix, m, aAmount); + + //If Invalid, Try First Material + if (!ItemUtils.checkForInvalidItems(aReturn)) { + m = aMaster[0][aTier]; + aReturn = ItemUtils.getOrePrefixStack(aPrefix, m, aAmount); + + //If Invalid, Try Second Material + if (!ItemUtils.checkForInvalidItems(aReturn)) { + m = aMaster[1][aTier]; + aReturn = ItemUtils.getOrePrefixStack(aPrefix, m, aAmount); + + //If Invalid, Try Third Material + if (!ItemUtils.checkForInvalidItems(aReturn)) { + m = aMaster[2][aTier]; + aReturn = ItemUtils.getOrePrefixStack(aPrefix, m, aAmount); + + //All Invalid? Ok, shit. + //Let's add a special error ingot. + if (!ItemUtils.checkForInvalidItems(aReturn)) { + aReturn = ItemUtils.getErrorStack(1, (aPrefix.toString()+m.getLocalizedName()+" x"+aAmount)); + } + } + } + } + + return aReturn; + + + } + + public static ItemStack getElectricMotor(int aTier, int aSize) { + ItemStack aType; + int aLazyTier = 0; + if (aTier == aLazyTier++) { + aType = CI.electricMotor_ULV; + } + else if (aTier == aLazyTier++) { + aType = CI.electricMotor_LV; + } + else if (aTier == aLazyTier++) { + aType = CI.electricMotor_MV; + } + else if (aTier == aLazyTier++) { + aType = CI.electricMotor_HV; + } + else if (aTier == aLazyTier++) { + aType = CI.electricMotor_EV; + } + else if (aTier == aLazyTier++) { + aType = CI.electricMotor_IV; + } + else if (aTier == aLazyTier++) { + aType = CI.electricMotor_LuV; + } + else if (aTier == aLazyTier++) { + aType = CI.electricMotor_ZPM; + } + else if (aTier == aLazyTier++) { + aType = CI.electricMotor_UV; + } + else if (aTier == aLazyTier++) { + aType = CI.electricMotor_MAX; + } + else { + aType = CI.electricMotor_LV; + } + return ItemUtils.getSimpleStack(aType, aSize); + } + + public static ItemStack getElectricPiston(int aTier, int aSize) { + ItemStack aType; + int aLazyTier = 0; + if (aTier == aLazyTier++) { + aType = CI.electricPiston_ULV; + } + else if (aTier == aLazyTier++) { + aType = CI.electricPiston_LV; + } + else if (aTier == aLazyTier++) { + aType = CI.electricPiston_MV; + } + else if (aTier == aLazyTier++) { + aType = CI.electricPiston_HV; + } + else if (aTier == aLazyTier++) { + aType = CI.electricPiston_EV; + } + else if (aTier == aLazyTier++) { + aType = CI.electricPiston_IV; + } + else if (aTier == aLazyTier++) { + aType = CI.electricPiston_LuV; + } + else if (aTier == aLazyTier++) { + aType = CI.electricPiston_ZPM; + } + else if (aTier == aLazyTier++) { + aType = CI.electricPiston_UV; + } + else if (aTier == aLazyTier++) { + aType = CI.electricPiston_MAX; + } + else { + aType = CI.electricPiston_LV; + } + return ItemUtils.getSimpleStack(aType, aSize); + } + + public static ItemStack getElectricPump(int aTier, int aSize) { + ItemStack aType; + int aLazyTier = 0; + if (aTier == aLazyTier++) { + aType = CI.electricPump_ULV; + } + else if (aTier == aLazyTier++) { + aType = CI.electricPump_LV; + } + else if (aTier == aLazyTier++) { + aType = CI.electricPump_MV; + } + else if (aTier == aLazyTier++) { + aType = CI.electricPump_HV; + } + else if (aTier == aLazyTier++) { + aType = CI.electricPump_EV; + } + else if (aTier == aLazyTier++) { + aType = CI.electricPump_IV; + } + else if (aTier == aLazyTier++) { + aType = CI.electricPump_LuV; + } + else if (aTier == aLazyTier++) { + aType = CI.electricPump_ZPM; + } + else if (aTier == aLazyTier++) { + aType = CI.electricPump_UV; + } + else if (aTier == aLazyTier++) { + aType = CI.electricPump_MAX; + } + else { + aType = CI.electricPump_LV; + } + return ItemUtils.getSimpleStack(aType, aSize); + } + + public static ItemStack getRobotArm(int aTier, int aSize) { + ItemStack aType; + int aLazyTier = 0; + if (aTier == aLazyTier++) { + aType = CI.robotArm_ULV; + } + else if (aTier == aLazyTier++) { + aType = CI.robotArm_LV; + } + else if (aTier == aLazyTier++) { + aType = CI.robotArm_MV; + } + else if (aTier == aLazyTier++) { + aType = CI.robotArm_HV; + } + else if (aTier == aLazyTier++) { + aType = CI.robotArm_EV; + } + else if (aTier == aLazyTier++) { + aType = CI.robotArm_IV; + } + else if (aTier == aLazyTier++) { + aType = CI.robotArm_LuV; + } + else if (aTier == aLazyTier++) { + aType = CI.robotArm_ZPM; + } + else if (aTier == aLazyTier++) { + aType = CI.robotArm_UV; + } + else if (aTier == aLazyTier++) { + aType = CI.robotArm_MAX; + } + else { + aType = CI.robotArm_LV; + } + return ItemUtils.getSimpleStack(aType, aSize); + } + + public static ItemStack getConveyor(int aTier, int aSize) { + ItemStack aType; + int aLazyTier = 0; + if (aTier == aLazyTier++) { + aType = CI.conveyorModule_ULV; + } + else if (aTier == aLazyTier++) { + aType = CI.conveyorModule_LV; + } + else if (aTier == aLazyTier++) { + aType = CI.conveyorModule_MV; + } + else if (aTier == aLazyTier++) { + aType = CI.conveyorModule_HV; + } + else if (aTier == aLazyTier++) { + aType = CI.conveyorModule_EV; + } + else if (aTier == aLazyTier++) { + aType = CI.conveyorModule_IV; + } + else if (aTier == aLazyTier++) { + aType = CI.conveyorModule_LuV; + } + else if (aTier == aLazyTier++) { + aType = CI.conveyorModule_ZPM; + } + else if (aTier == aLazyTier++) { + aType = CI.conveyorModule_UV; + } + else if (aTier == aLazyTier++) { + aType = CI.conveyorModule_MAX; + } + else { + aType = CI.conveyorModule_LV; + } + return ItemUtils.getSimpleStack(aType, aSize); + } + + public static ItemStack getEmitter(int aTier, int aSize) { + ItemStack aType; + int aLazyTier = 0; + if (aTier == aLazyTier++) { + aType = CI.emitter_ULV; + } + else if (aTier == aLazyTier++) { + aType = CI.emitter_LV; + } + else if (aTier == aLazyTier++) { + aType = CI.emitter_MV; + } + else if (aTier == aLazyTier++) { + aType = CI.emitter_HV; + } + else if (aTier == aLazyTier++) { + aType = CI.emitter_EV; + } + else if (aTier == aLazyTier++) { + aType = CI.emitter_IV; + } + else if (aTier == aLazyTier++) { + aType = CI.emitter_LuV; + } + else if (aTier == aLazyTier++) { + aType = CI.emitter_ZPM; + } + else if (aTier == aLazyTier++) { + aType = CI.emitter_UV; + } + else if (aTier == aLazyTier++) { + aType = CI.emitter_MAX; + } + else { + aType = CI.emitter_LV; + } + return ItemUtils.getSimpleStack(aType, aSize); + } + + public static ItemStack getSensor(int aTier, int aSize) { + ItemStack aType; + int aLazyTier = 0; + if (aTier == aLazyTier++) { + aType = CI.sensor_ULV; + } + else if (aTier == aLazyTier++) { + aType = CI.sensor_LV; + } + else if (aTier == aLazyTier++) { + aType = CI.sensor_MV; + } + else if (aTier == aLazyTier++) { + aType = CI.sensor_HV; + } + else if (aTier == aLazyTier++) { + aType = CI.sensor_EV; + } + else if (aTier == aLazyTier++) { + aType = CI.sensor_IV; + } + else if (aTier == aLazyTier++) { + aType = CI.sensor_LuV; + } + else if (aTier == aLazyTier++) { + aType = CI.sensor_ZPM; + } + else if (aTier == aLazyTier++) { + aType = CI.sensor_UV; + } + else if (aTier == aLazyTier++) { + aType = CI.sensor_MAX; + } + else { + aType = CI.sensor_LV; + } + return ItemUtils.getSimpleStack(aType, aSize); + } + + public static ItemStack getFieldGenerator(int aTier, int aSize) { + ItemStack aType; + int aLazyTier = 0; + if (aTier == aLazyTier++) { + aType = CI.fieldGenerator_ULV; + } + else if (aTier == aLazyTier++) { + aType = CI.fieldGenerator_LV; + } + else if (aTier == aLazyTier++) { + aType = CI.fieldGenerator_MV; + } + else if (aTier == aLazyTier++) { + aType = CI.fieldGenerator_HV; + } + else if (aTier == aLazyTier++) { + aType = CI.fieldGenerator_EV; + } + else if (aTier == aLazyTier++) { + aType = CI.fieldGenerator_IV; + } + else if (aTier == aLazyTier++) { + aType = CI.fieldGenerator_LuV; + } + else if (aTier == aLazyTier++) { + aType = CI.fieldGenerator_ZPM; + } + else if (aTier == aLazyTier++) { + aType = CI.fieldGenerator_UV; + } + else if (aTier == aLazyTier++) { + aType = CI.fieldGenerator_MAX; + } + else { + aType = CI.fieldGenerator_LV; + } + return ItemUtils.getSimpleStack(aType, aSize); + } + + + + public static ItemStack getTieredMachineHull(int aTier, int aSize) { + ItemStack aType; + int aLazyTier = 0; + if (aTier == aLazyTier++) { + aType = CI.machineHull_ULV; + } + else if (aTier == aLazyTier++) { + aType = CI.machineHull_LV; + } + else if (aTier == aLazyTier++) { + aType = CI.machineHull_MV; + } + else if (aTier == aLazyTier++) { + aType = CI.machineHull_HV; + } + else if (aTier == aLazyTier++) { + aType = CI.machineHull_EV; + } + else if (aTier == aLazyTier++) { + aType = CI.machineHull_IV; + } + else if (aTier == aLazyTier++) { + aType = CI.machineHull_LuV; + } + else if (aTier == aLazyTier++) { + aType = CI.machineHull_ZPM; + } + else if (aTier == aLazyTier++) { + aType = CI.machineHull_UV; + } + else if (aTier == aLazyTier++) { + aType = CI.machineHull_MAX; + } + else { + aType = GregtechItemList.Casing_Multi_Use.get(1, CI.machineHull_MV); + } + return ItemUtils.getSimpleStack(aType, aSize); + } + + public static ItemStack getHeatCoil(int i) { + if (!CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK) { + if (i == 1) { + return ItemList.Casing_Coil_Kanthal.get(1); + } else if (i == 2) { + return ItemList.Casing_Coil_Nichrome.get(1); + } else { + return ItemList.Casing_Coil_Cupronickel.get(1); + } + } else { + if (!CORE.GTNH) { + if (i > 6) { + i = 6; + } + } else { + if (i > 8) { + i = 8; + } + } + return ItemUtils.simpleMetaStack(StaticFields59.getBlockCasings5(), i, 1); + } + + } + + public static ItemStack getNumberedBioCircuit(int i) { + return ItemUtils.simpleMetaStack(AgriculturalChem.mBioCircuit, i, 0); + } + + public static ItemStack getNumberedAdvancedCircuit(int i) { + return ItemUtils.simpleMetaStack(GenericChem.mAdvancedCircuit, i, 0); + } + + public static ItemStack getTieredGTPPMachineCasing(int aTier, int aAmount) { + GregtechItemList[] aHulls = new GregtechItemList[] { + GregtechItemList.GTPP_Casing_ULV, + GregtechItemList.GTPP_Casing_LV, + GregtechItemList.GTPP_Casing_MV, + GregtechItemList.GTPP_Casing_HV, + GregtechItemList.GTPP_Casing_EV, + GregtechItemList.GTPP_Casing_IV, + GregtechItemList.GTPP_Casing_LuV, + GregtechItemList.GTPP_Casing_ZPM, + GregtechItemList.GTPP_Casing_UV, + GregtechItemList.GTPP_Casing_MAX + }; + return aHulls[aTier].get(aAmount); + } + + public static ItemStack getTieredComponentOfMaterial(Materials aMaterial, OrePrefixes aPrefix, int aAmount) { + return ItemUtils.getOrePrefixStack(aPrefix, aMaterial, aAmount); + } + + public static ItemStack getTransmissionComponent(int aTier, int aAmount) { + GregtechItemList[] aTransParts = new GregtechItemList[] { + GregtechItemList.TransmissionComponent_ULV, + GregtechItemList.TransmissionComponent_LV, + GregtechItemList.TransmissionComponent_MV, + GregtechItemList.TransmissionComponent_HV, + GregtechItemList.TransmissionComponent_EV, + GregtechItemList.TransmissionComponent_IV, + GregtechItemList.TransmissionComponent_LuV, + GregtechItemList.TransmissionComponent_ZPM, + GregtechItemList.TransmissionComponent_UV, + GregtechItemList.TransmissionComponent_MAX, + }; + return aTransParts[aTier].get(aAmount); + } + + public static ItemStack getEmptyCatalyst(int aAmount) { + return ItemUtils.simpleMetaStack(AgriculturalChem.mAgrichemItem1, 13, aAmount); + } + + /** + * Aluminium + Silver Catalyst + * @param aAmount - Stacksize + * @return - A Catalyst stack of given size + */ + public static ItemStack getGreenCatalyst(int aAmount) { + return ItemUtils.simpleMetaStack(AgriculturalChem.mAgrichemItem1, 14, aAmount); + } + + /** + * Iron + Copper Catalyst + * @param aAmount - Stacksize + * @return - A Catalyst stack of given size + */ + public static ItemStack getRedCatalyst(int aAmount) { + return ItemUtils.simpleMetaStack(GenericChem.mGenericChemItem1, 0, aAmount); + } + + /** + * Tungsten + Nickel Catalyst + * @param aAmount - Stacksize + * @return - A Catalyst stack of given size + */ + public static ItemStack getYellowCatalyst(int aAmount) { + return ItemUtils.simpleMetaStack(GenericChem.mGenericChemItem1, 1, aAmount); + } + + /** + * Cobalt + Titanium Catalyst + * @param aAmount - Stacksize + * @return - A Catalyst stack of given size + */ + public static ItemStack getBlueCatalyst(int aAmount) { + return ItemUtils.simpleMetaStack(GenericChem.mGenericChemItem1, 2, aAmount); + } + + /** + * Vanadium + Palladium Catalyst + * @param aAmount - Stacksize + * @return - A Catalyst stack of given size + */ + public static ItemStack getOrangeCatalyst(int aAmount) { + return ItemUtils.simpleMetaStack(GenericChem.mGenericChemItem1, 3, aAmount); + } + + /** + * Iridium + Ruthenium Catalyst + * @param aAmount - Stacksize + * @return - A Catalyst stack of given size + */ + public static ItemStack getPurpleCatalyst(int aAmount) { + return ItemUtils.simpleMetaStack(GenericChem.mGenericChemItem1, 4, aAmount); + } + + /** + * Aluminium + Nickel Catalyst + * @param aAmount - Stacksize + * @return - A Catalyst stack of given size + */ + public static ItemStack getBrownCatalyst(int aAmount) { + return ItemUtils.simpleMetaStack(GenericChem.mGenericChemItem1, 5, aAmount); + } + + /** + * Platinum + Rhodium Catalyst + * @param aAmount - Stacksize + * @return - A Catalyst stack of given size + */ + public static ItemStack getPinkCatalyst(int aAmount) { + return ItemUtils.simpleMetaStack(GenericChem.mGenericChemItem1, 6, aAmount); + } + +} |