aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/bartworks/common/loaders/recipes
diff options
context:
space:
mode:
authorNotAPenguin <michiel.vandeginste@gmail.com>2024-09-02 23:17:17 +0200
committerGitHub <noreply@github.com>2024-09-02 23:17:17 +0200
commit1b820de08a05070909a267e17f033fcf58ac8710 (patch)
tree02831a025986a06b20f87e5bcc69d1e0c639a342 /src/main/java/bartworks/common/loaders/recipes
parentafd3fd92b6a6ab9ab0d0dc3214e6bc8ff7a86c9b (diff)
downloadGT5-Unofficial-1b820de08a05070909a267e17f033fcf58ac8710.tar.gz
GT5-Unofficial-1b820de08a05070909a267e17f033fcf58ac8710.tar.bz2
GT5-Unofficial-1b820de08a05070909a267e17f033fcf58ac8710.zip
The Great Renaming (#3014)
* move kekztech to a single root dir * move detrav to a single root dir * move gtnh-lanthanides to a single root dir * move tectech and delete some gross reflection in gt++ * remove more reflection inside gt5u * delete more reflection in gt++ * fix imports * move bartworks and bwcrossmod * fix proxies * move galactigreg and ggfab * move gtneioreplugin * try to fix gt++ bee loader * apply the rename rules to BW * apply rename rules to bwcrossmod * apply rename rules to detrav scanner mod * apply rename rules to galacticgreg * apply rename rules to ggfab * apply rename rules to goodgenerator * apply rename rules to gtnh-lanthanides * apply rename rules to gt++ * apply rename rules to kekztech * apply rename rules to kubatech * apply rename rules to tectech * apply rename rules to gt apply the rename rules to gt * fix tt import * fix mui hopefully * fix coremod except intergalactic * rename assline recipe class * fix a class name i stumbled on * rename StructureUtility to GTStructureUtility to prevent conflict with structurelib * temporary rename of GTTooltipDataCache to old name * fix gt client/server proxy names
Diffstat (limited to 'src/main/java/bartworks/common/loaders/recipes')
-rw-r--r--src/main/java/bartworks/common/loaders/recipes/Assembler.java270
-rw-r--r--src/main/java/bartworks/common/loaders/recipes/AssemblyLine.java81
-rw-r--r--src/main/java/bartworks/common/loaders/recipes/Autoclave.java40
-rw-r--r--src/main/java/bartworks/common/loaders/recipes/Centrifuge.java141
-rw-r--r--src/main/java/bartworks/common/loaders/recipes/ChemicalBath.java83
-rw-r--r--src/main/java/bartworks/common/loaders/recipes/ChemicalReactor.java28
-rw-r--r--src/main/java/bartworks/common/loaders/recipes/CraftingRecipes.java468
-rw-r--r--src/main/java/bartworks/common/loaders/recipes/Electrolyzer.java151
-rw-r--r--src/main/java/bartworks/common/loaders/recipes/Extractor.java44
-rw-r--r--src/main/java/bartworks/common/loaders/recipes/FakeRecipes.java11
-rw-r--r--src/main/java/bartworks/common/loaders/recipes/FluidHeater.java26
-rw-r--r--src/main/java/bartworks/common/loaders/recipes/FluidSolidifier.java102
-rw-r--r--src/main/java/bartworks/common/loaders/recipes/FormingPress.java76
-rw-r--r--src/main/java/bartworks/common/loaders/recipes/LaserEngraver.java27
-rw-r--r--src/main/java/bartworks/common/loaders/recipes/Mixer.java62
-rw-r--r--src/main/java/bartworks/common/loaders/recipes/Pulverizer.java97
-rw-r--r--src/main/java/bartworks/common/loaders/recipes/PyrolyseOven.java27
17 files changed, 1734 insertions, 0 deletions
diff --git a/src/main/java/bartworks/common/loaders/recipes/Assembler.java b/src/main/java/bartworks/common/loaders/recipes/Assembler.java
new file mode 100644
index 0000000000..912b0f8c9a
--- /dev/null
+++ b/src/main/java/bartworks/common/loaders/recipes/Assembler.java
@@ -0,0 +1,270 @@
+package bartworks.common.loaders.recipes;
+
+import static gregtech.api.recipe.RecipeMaps.assemblerRecipes;
+import static gregtech.api.util.GTRecipeBuilder.HOURS;
+import static gregtech.api.util.GTRecipeBuilder.SECONDS;
+import static gregtech.api.util.GTRecipeBuilder.TICKS;
+
+import net.minecraft.item.ItemStack;
+import net.minecraftforge.fluids.FluidRegistry;
+
+import bartworks.common.loaders.ItemRegistry;
+import bartworks.system.material.WerkstoffLoader;
+import gregtech.api.GregTechAPI;
+import gregtech.api.enums.GTValues;
+import gregtech.api.enums.ItemList;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.OrePrefixes;
+import gregtech.api.enums.TierEU;
+import gregtech.api.util.GTOreDictUnificator;
+import gregtech.api.util.GTUtility;
+
+public class Assembler implements Runnable {
+
+ @Override
+ public void run() {
+ Materials[] cables = { // Cable material used in the acid gen, diode and energy distributor below
+ Materials.Lead, // ULV
+ Materials.Tin, // LV
+ Materials.AnnealedCopper, // MV
+ Materials.Gold, // HV
+ Materials.Aluminium, // EV
+ Materials.Tungsten, // IV
+ Materials.VanadiumGallium, // LuV
+ Materials.Naquadah, // ZPM
+ Materials.NaquadahAlloy, // UV
+ Materials.SuperconductorUV // UHV
+ };
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ new ItemStack(ItemRegistry.BW_BLOCKS[0], 1, 0),
+ Materials.Lapis.getPlates(9),
+ GTOreDictUnificator.get(OrePrefixes.circuit, Materials.HV, 2L),
+ GTUtility.getIntegratedCircuit(17))
+ .itemOutputs(new ItemStack(ItemRegistry.BW_BLOCKS[0], 1, 1))
+ .fluidInputs(FluidRegistry.getFluidStack("ic2coolant", 1000))
+ .duration(5 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(assemblerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ new ItemStack(ItemRegistry.BW_BLOCKS[0], 1, 1),
+ Materials.Lapis.getBlocks(8),
+ GTUtility.getIntegratedCircuit(17))
+ .itemOutputs(new ItemStack(ItemRegistry.BW_BLOCKS[1]))
+ .duration(5 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(assemblerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(ItemList.Machine_Multi_BlastFurnace.get(64), GTUtility.getIntegratedCircuit(17))
+ .itemOutputs(ItemRegistry.megaMachines[0])
+ .fluidInputs(Materials.SolderingAlloy.getMolten(9216))
+ .duration(1 * HOURS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(assemblerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(ItemList.Machine_Multi_VacuumFreezer.get(64), GTUtility.getIntegratedCircuit(17))
+ .itemOutputs(ItemRegistry.megaMachines[1])
+ .fluidInputs(Materials.SolderingAlloy.getMolten(9216))
+ .duration(1 * HOURS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(assemblerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(ItemList.Distillation_Tower.get(64), GTUtility.getIntegratedCircuit(17))
+ .itemOutputs(ItemRegistry.megaMachines[2])
+ .fluidInputs(Materials.SolderingAlloy.getMolten(9216))
+ .duration(1 * HOURS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(assemblerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(ItemList.Machine_Multi_LargeChemicalReactor.get(64), GTUtility.getIntegratedCircuit(17))
+ .itemOutputs(ItemRegistry.megaMachines[3])
+ .fluidInputs(Materials.SolderingAlloy.getMolten(9216))
+ .duration(1 * HOURS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(assemblerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(ItemList.OilCracker.get(64), GTUtility.getIntegratedCircuit(17))
+ .itemOutputs(ItemRegistry.megaMachines[4])
+ .fluidInputs(Materials.SolderingAlloy.getMolten(9216))
+ .duration(1 * HOURS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(assemblerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTOreDictUnificator.get(OrePrefixes.wireFine, Materials.AnnealedCopper, 64L),
+ GTUtility.getIntegratedCircuit(17))
+ .itemOutputs(new ItemStack(ItemRegistry.BW_BLOCKS[2], 1, 1))
+ .fluidInputs(Materials.Plastic.getMolten(1152L))
+ .duration(1 * TICKS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(assemblerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTOreDictUnificator.get(OrePrefixes.circuit, Materials.MV, 1L),
+ Materials.Aluminium.getPlates(1),
+ ItemList.Circuit_Board_Plastic.get(1L),
+ ItemList.Battery_RE_LV_Lithium.get(1L))
+ .itemOutputs(new ItemStack(ItemRegistry.CIRCUIT_PROGRAMMER))
+ .fluidInputs(Materials.SolderingAlloy.getMolten(288L))
+ .duration(30 * SECONDS)
+ .eut(TierEU.RECIPE_MV)
+ .addTo(assemblerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ ItemList.Circuit_Parts_GlassFiber.get(32),
+ GTOreDictUnificator.get(OrePrefixes.foil, Materials.Electrum, 8),
+ WerkstoffLoader.CubicZirconia.get(OrePrefixes.gemExquisite, 2))
+ .itemOutputs(
+ new ItemStack(
+ ItemRegistry.TecTechPipeEnergyLowPower.getItem(),
+ 1,
+ ItemRegistry.TecTechPipeEnergyLowPower.getItemDamage()))
+ .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(72))
+ .duration(10 * SECONDS)
+ .eut(TierEU.RECIPE_EV)
+ .addTo(assemblerRecipes);
+
+ ItemStack[][] converters = ItemRegistry.TecTechLaserAdditions[0];
+ ItemStack[][] input = ItemRegistry.TecTechLaserAdditions[1];
+ ItemStack[][] dynamo = ItemRegistry.TecTechLaserAdditions[2];
+
+ ItemList[] emitters = { ItemList.Emitter_EV, ItemList.Emitter_IV, ItemList.Emitter_LuV, ItemList.Emitter_ZPM };
+
+ ItemList[] sensors = { ItemList.Sensor_EV, ItemList.Sensor_IV, ItemList.Sensor_LuV, ItemList.Sensor_ZPM };
+
+ OrePrefixes[] prefixes = { OrePrefixes.cableGt04, OrePrefixes.cableGt08, OrePrefixes.cableGt12,
+ OrePrefixes.cableGt16 };
+
+ for (int j = 0; j < 4; j++) {
+ for (int i = 0; i < 4; i++) {
+ ItemStack converter = converters[j][i];
+ ItemStack eInput = input[j][i];
+ ItemStack eDynamo = dynamo[j][i];
+ long recipeConsumption = switch (i) {
+ case 0 -> TierEU.RECIPE_EV;
+ case 1 -> TierEU.RECIPE_IV;
+ case 2 -> TierEU.RECIPE_LuV;
+ case 3 -> TierEU.RECIPE_ZPM;
+ default -> TierEU.RECIPE_EV;
+ };
+
+ int solderingAmount = Math.max(144 * i, 72) * (j + 1);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+
+ new ItemStack(
+ ItemRegistry.TecTechPipeEnergyLowPower.getItem(),
+ ((j + 1) * 16),
+ ItemRegistry.TecTechPipeEnergyLowPower.getItemDamage()),
+ WerkstoffLoader.CubicZirconia.get(OrePrefixes.lens),
+ GTOreDictUnificator.get(prefixes[j], cables[i + 4], 8),
+ emitters[i].get(2 * (j + 1)),
+ sensors[i].get(2 * (j + 1)),
+ ItemList.TRANSFORMERS[4 + i].get(2 * (j + 1)))
+ .itemOutputs(converter)
+ .fluidInputs(Materials.SolderingAlloy.getMolten(solderingAmount))
+ .duration((10 * (j + 1)) * SECONDS)
+ .eut(recipeConsumption)
+ .addTo(assemblerRecipes);
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ new ItemStack(
+ ItemRegistry.TecTechPipeEnergyLowPower.getItem(),
+ ((j + 1) * 16),
+ ItemRegistry.TecTechPipeEnergyLowPower.getItemDamage()),
+ WerkstoffLoader.CubicZirconia.get(OrePrefixes.lens),
+ GTOreDictUnificator.get(prefixes[j], cables[i + 4], 8),
+ emitters[i].get(2 * (j + 1)),
+ sensors[i].get(2 * (j + 1)),
+ ItemList.TRANSFORMERS[4 + i].get(2 * (j + 1)))
+ .itemOutputs(converter)
+ .fluidInputs(Materials.SolderingAlloy.getMolten(solderingAmount))
+ .duration((10 * (j + 1)) * SECONDS)
+ .eut(recipeConsumption)
+ .addTo(assemblerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ new ItemStack(
+ ItemRegistry.TecTechPipeEnergyLowPower.getItem(),
+ (j + 1) * 16,
+ ItemRegistry.TecTechPipeEnergyLowPower.getItemDamage()),
+ WerkstoffLoader.CubicZirconia.get(OrePrefixes.lens),
+ GTOreDictUnificator.get(prefixes[j], cables[i + 4], 8),
+ sensors[i].get(2 * (j + 1)),
+ ItemList.HATCHES_ENERGY[4 + i].get(2 * (j + 1)))
+ .itemOutputs(eInput)
+ .fluidInputs(Materials.SolderingAlloy.getMolten(solderingAmount))
+ .duration((10 * (j + 1)) * SECONDS)
+ .eut(recipeConsumption)
+ .addTo(assemblerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ new ItemStack(
+ ItemRegistry.TecTechPipeEnergyLowPower.getItem(),
+ (j + 1) * 16,
+ ItemRegistry.TecTechPipeEnergyLowPower.getItemDamage()),
+ WerkstoffLoader.CubicZirconia.get(OrePrefixes.lens),
+ GTOreDictUnificator.get(prefixes[j], cables[i + 4], 8),
+ emitters[i].get(2 * (j + 1)),
+ ItemList.HATCHES_DYNAMO[4 + i].get(2 * (j + 1)))
+ .itemOutputs(eDynamo)
+ .fluidInputs(Materials.SolderingAlloy.getMolten(solderingAmount))
+ .duration((10 * (j + 1) * SECONDS))
+ .eut(recipeConsumption)
+ .addTo(assemblerRecipes);
+ }
+ }
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ ItemList.Hatch_Input_HV.get(64),
+ Materials.LiquidAir.getCells(1),
+ GTUtility.getIntegratedCircuit(17))
+ .itemOutputs(ItemRegistry.compressedHatch.copy())
+ .duration(15 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(assemblerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(ItemList.Hatch_Output_HV.get(64), GTUtility.getIntegratedCircuit(17))
+ .itemOutputs(ItemRegistry.giantOutputHatch.copy())
+ .duration(15 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(assemblerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTOreDictUnificator.get(OrePrefixes.plateDense, Materials.Lead, 6),
+ GTOreDictUnificator.get(OrePrefixes.frameGt, Materials.TungstenSteel, 1))
+ .itemOutputs(new ItemStack(GregTechAPI.sBlockCasings3, 1, 12))
+ .fluidInputs(Materials.Concrete.getMolten(1296))
+ .duration(2 * SECONDS)
+ .eut(TierEU.RECIPE_IV)
+ .addTo(assemblerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ new ItemStack(GregTechAPI.sBlockCasings3, 1, 12),
+ GTOreDictUnificator.get(OrePrefixes.foil, Materials.Europium, 6),
+ GTOreDictUnificator.get(OrePrefixes.screw, Materials.Europium, 24))
+ .itemOutputs(new ItemStack(GregTechAPI.sBlockCasings8, 1, 5))
+ .fluidInputs(Materials.Lead.getMolten(864))
+ .duration(10 * SECONDS)
+ .eut(TierEU.RECIPE_LuV)
+ .addTo(assemblerRecipes);
+ }
+}
diff --git a/src/main/java/bartworks/common/loaders/recipes/AssemblyLine.java b/src/main/java/bartworks/common/loaders/recipes/AssemblyLine.java
new file mode 100644
index 0000000000..650bb02918
--- /dev/null
+++ b/src/main/java/bartworks/common/loaders/recipes/AssemblyLine.java
@@ -0,0 +1,81 @@
+package bartworks.common.loaders.recipes;
+
+import static gregtech.api.util.GTRecipeBuilder.HOURS;
+import static gregtech.api.util.GTRecipeBuilder.MINUTES;
+import static gregtech.api.util.GTRecipeBuilder.SECONDS;
+import static gregtech.api.util.GTRecipeConstants.AssemblyLine;
+import static gregtech.api.util.GTRecipeConstants.RESEARCH_ITEM;
+import static gregtech.api.util.GTRecipeConstants.RESEARCH_TIME;
+
+import net.minecraftforge.fluids.Fluid;
+import net.minecraftforge.fluids.FluidRegistry;
+import net.minecraftforge.fluids.FluidStack;
+
+import bartworks.common.loaders.ItemRegistry;
+import bartworks.system.material.WerkstoffLoader;
+import gregtech.api.enums.GTValues;
+import gregtech.api.enums.ItemList;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.OrePrefixes;
+import gregtech.api.enums.TierEU;
+import gregtech.api.util.GTOreDictUnificator;
+
+public class AssemblyLine implements Runnable {
+
+ @Override
+ public void run() {
+ Fluid solderIndalloy = FluidRegistry.getFluid("molten.indalloy140") != null
+ ? FluidRegistry.getFluid("molten.indalloy140")
+ : FluidRegistry.getFluid("molten.solderingalloy");
+ GTValues.RA.stdBuilder()
+ .metadata(RESEARCH_ITEM, ItemList.Pump_IV.get(1L))
+ .metadata(RESEARCH_TIME, 1 * HOURS)
+ .itemInputs(
+ ItemList.Pump_IV.get(16),
+ GTOreDictUnificator.get(OrePrefixes.pipeLarge, Materials.Ultimate, 32L),
+ GTOreDictUnificator.get(OrePrefixes.gearGt, Materials.HSSE, 16L),
+ GTOreDictUnificator.get(OrePrefixes.gearGt, Materials.HSSE, 16L),
+ ItemList.Field_Generator_LuV.get(8))
+ .fluidInputs(
+ new FluidStack(solderIndalloy, 32 * 144),
+ Materials.Polytetrafluoroethylene.getMolten(32 * 144))
+ .itemOutputs(ItemRegistry.dehp)
+ .eut(TierEU.RECIPE_LuV)
+ .duration(4 * MINUTES + 10 * SECONDS)
+ .addTo(AssemblyLine);
+
+ GTValues.RA.stdBuilder()
+ .metadata(RESEARCH_ITEM, ItemList.OreDrill4.get(1L))
+ .metadata(RESEARCH_TIME, 25 * MINUTES + 36 * SECONDS)
+ .itemInputs(
+ ItemList.OreDrill4.get(1L),
+ GTOreDictUnificator.get(OrePrefixes.frameGt, Materials.Tritanium, 9L),
+ Materials.Europium.getPlates(3),
+ ItemList.Electric_Motor_LuV.get(9L),
+ ItemList.Sensor_LuV.get(9L),
+ ItemList.Field_Generator_LuV.get(9L),
+ GTOreDictUnificator.get(OrePrefixes.screw, Materials.Europium, 36L))
+ .fluidInputs(new FluidStack(solderIndalloy, 1440), WerkstoffLoader.Neon.getFluidOrGas(20000))
+ .itemOutputs(ItemRegistry.voidminer[0].copy())
+ .eut(TierEU.RECIPE_LuV)
+ .duration(5 * MINUTES)
+ .addTo(AssemblyLine);
+
+ GTValues.RA.stdBuilder()
+ .metadata(RESEARCH_ITEM, ItemList.Machine_LuV_CircuitAssembler.get(1L))
+ .metadata(RESEARCH_TIME, 20 * MINUTES)
+ .itemInputs(
+ ItemList.Machine_LuV_CircuitAssembler.get(1L),
+ ItemList.Robot_Arm_LuV.get(4L),
+ ItemList.Electric_Motor_LuV.get(4L),
+ ItemList.Field_Generator_LuV.get(1L),
+ ItemList.Emitter_LuV.get(1L),
+ ItemList.Sensor_LuV.get(1L),
+ WerkstoffLoader.LuVTierMaterial.get(OrePrefixes.plate, 8))
+ .fluidInputs(new FluidStack(solderIndalloy, 1440))
+ .itemOutputs(ItemRegistry.cal.copy())
+ .eut(TierEU.RECIPE_LuV)
+ .duration(20 * MINUTES)
+ .addTo(AssemblyLine);
+ }
+}
diff --git a/src/main/java/bartworks/common/loaders/recipes/Autoclave.java b/src/main/java/bartworks/common/loaders/recipes/Autoclave.java
new file mode 100644
index 0000000000..12140611f7
--- /dev/null
+++ b/src/main/java/bartworks/common/loaders/recipes/Autoclave.java
@@ -0,0 +1,40 @@
+package bartworks.common.loaders.recipes;
+
+import static gregtech.api.recipe.RecipeMaps.autoclaveRecipes;
+import static gregtech.api.util.GTRecipeBuilder.SECONDS;
+
+import net.minecraft.init.Items;
+import net.minecraft.item.ItemStack;
+
+import bartworks.common.loaders.BioItemList;
+import gregtech.api.enums.GTValues;
+import gregtech.api.enums.ItemList;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.TierEU;
+
+public class Autoclave implements Runnable {
+
+ @Override
+ public void run() {
+ Materials[] sterilizers = { Materials.Ammonia, Materials.Chlorine, Materials.Ethanol, Materials.Methanol };
+ for (Materials used : sterilizers) {
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(ItemList.Circuit_Parts_PetriDish.get(1L))
+ .itemOutputs(BioItemList.getPetriDish(null))
+ .fluidInputs(used.getGas(10L) != null ? used.getGas(8L) : used.getFluid(16L))
+ .duration(5 * SECONDS)
+ .eut(TierEU.RECIPE_LV)
+ .addTo(autoclaveRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(Items.glass_bottle))
+ .itemOutputs(BioItemList.getDNASampleFlask(null))
+ .fluidInputs(used.getGas(10L) != null ? used.getGas(8L) : used.getFluid(16L))
+ .duration(5 * SECONDS)
+ .eut(TierEU.RECIPE_LV)
+ .addTo(autoclaveRecipes);
+
+ }
+ }
+}
diff --git a/src/main/java/bartworks/common/loaders/recipes/Centrifuge.java b/src/main/java/bartworks/common/loaders/recipes/Centrifuge.java
new file mode 100644
index 0000000000..a689d39ce8
--- /dev/null
+++ b/src/main/java/bartworks/common/loaders/recipes/Centrifuge.java
@@ -0,0 +1,141 @@
+package bartworks.common.loaders.recipes;
+
+import static gregtech.api.recipe.RecipeMaps.centrifugeRecipes;
+import static gregtech.api.util.GTRecipeBuilder.MINUTES;
+import static gregtech.api.util.GTRecipeBuilder.SECONDS;
+
+import java.util.Arrays;
+
+import net.minecraft.item.ItemStack;
+import net.minecraftforge.fluids.FluidStack;
+
+import bartworks.common.loaders.BioCultureLoader;
+import bartworks.common.loaders.BioItemList;
+import bartworks.common.loaders.FluidLoader;
+import bartworks.common.tileentities.multis.MTEHighTempGasCooledReactor;
+import bartworks.common.tileentities.multis.MTEThoriumHighTempReactor;
+import bartworks.system.material.WerkstoffLoader;
+import gregtech.api.enums.GTValues;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.OrePrefixes;
+import gregtech.api.enums.TierEU;
+import gregtech.api.util.GTRecipeBuilder;
+import gregtech.api.util.GTUtility;
+
+public class Centrifuge implements Runnable {
+
+ @Override
+ public void run() {
+ GTValues.RA.stdBuilder()
+ .itemInputs(Materials.Thorium.getDust(1))
+ .itemOutputs(
+ Materials.Thorium.getDust(1),
+ Materials.Thorium.getDust(1),
+ WerkstoffLoader.Thorium232.get(OrePrefixes.dust, 1),
+ WerkstoffLoader.Thorium232.get(OrePrefixes.dust, 1),
+ WerkstoffLoader.Thorium232.get(OrePrefixes.dust, 1))
+ .outputChances(800, 375, 22, 22, 5)
+ .duration(8 * MINUTES + 20 * SECONDS)
+ .eut(TierEU.RECIPE_EV)
+ .addTo(centrifugeRecipes);
+
+ ItemStack[] pellets = new ItemStack[6];
+ Arrays.fill(pellets, new ItemStack(MTEThoriumHighTempReactor.THTRMaterials.aTHTR_Materials, 64, 4));
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ new ItemStack(MTEThoriumHighTempReactor.THTRMaterials.aTHTR_Materials, 1, 3),
+ GTUtility.getIntegratedCircuit(17))
+ .itemOutputs(pellets)
+ .duration(40 * MINUTES)
+ .eut(TierEU.RECIPE_LV)
+ .addTo(centrifugeRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ new ItemStack(MTEThoriumHighTempReactor.THTRMaterials.aTHTR_Materials, 1, 5),
+ GTUtility.getIntegratedCircuit(17))
+ .itemOutputs(new ItemStack(MTEThoriumHighTempReactor.THTRMaterials.aTHTR_Materials, 64, 6))
+ .duration(40 * MINUTES)
+ .eut(TierEU.RECIPE_LV)
+ .addTo(centrifugeRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(MTEThoriumHighTempReactor.THTRMaterials.aTHTR_Materials, 1, 6))
+ .itemOutputs(Materials.Lead.getDust(1))
+ .outputChances(300)
+ .duration(60 * SECONDS)
+ .eut(TierEU.RECIPE_LV)
+ .addTo(centrifugeRecipes);
+
+ int i = 0;
+ for (MTEHighTempGasCooledReactor.HTGRMaterials.Fuel_ fuel : MTEHighTempGasCooledReactor.HTGRMaterials.sHTGR_Fuel) {
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ new ItemStack(MTEHighTempGasCooledReactor.HTGRMaterials.aHTGR_Materials, 1, i + 3),
+ GTUtility.getIntegratedCircuit(17))
+ .itemOutputs(
+ new ItemStack(MTEHighTempGasCooledReactor.HTGRMaterials.aHTGR_Materials, 64, i + 4),
+ new ItemStack(MTEHighTempGasCooledReactor.HTGRMaterials.aHTGR_Materials, 64, i + 4),
+ new ItemStack(MTEHighTempGasCooledReactor.HTGRMaterials.aHTGR_Materials, 64, i + 4),
+ new ItemStack(MTEHighTempGasCooledReactor.HTGRMaterials.aHTGR_Materials, 64, i + 4))
+ .duration(10 * MINUTES)
+ .eut(TierEU.RECIPE_LV)
+ .addTo(centrifugeRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ new ItemStack(MTEHighTempGasCooledReactor.HTGRMaterials.aHTGR_Materials, 1, i + 5),
+ GTUtility.getIntegratedCircuit(17))
+ .itemOutputs(new ItemStack(MTEHighTempGasCooledReactor.HTGRMaterials.aHTGR_Materials, 64, i + 6))
+ .duration(2 * MINUTES + 30 * SECONDS)
+ .eut(TierEU.RECIPE_LV)
+ .addTo(centrifugeRecipes);
+
+ GTRecipeBuilder recipeBuilder = GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(MTEHighTempGasCooledReactor.HTGRMaterials.aHTGR_Materials, 1, i + 6))
+ .itemOutputs(
+ fuel.recycledItems[0],
+ fuel.recycledItems[1],
+ fuel.recycledItems[2],
+ fuel.recycledItems[3],
+ fuel.recycledItems[4])
+ .outputChances(fuel.recycleChances);
+ if (fuel.recycledFluid != null) {
+ recipeBuilder.fluidOutputs(fuel.recycledFluid);
+ }
+ recipeBuilder.duration(1 * MINUTES)
+ .eut(TierEU.RECIPE_LV)
+ .addTo(centrifugeRecipes);
+
+ i += MTEHighTempGasCooledReactor.HTGRMaterials.MATERIALS_PER_FUEL;
+ }
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTUtility.getIntegratedCircuit(17))
+ .itemOutputs(BioItemList.getOther(4))
+ .fluidInputs(new FluidStack(BioCultureLoader.eColi.getFluid(), 1000))
+ .fluidOutputs(new FluidStack(FluidLoader.BioLabFluidMaterials[1], 10))
+ .duration(60 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(centrifugeRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTUtility.getIntegratedCircuit(17))
+ .fluidInputs(new FluidStack(FluidLoader.BioLabFluidMaterials[1], 1000))
+ .fluidOutputs(new FluidStack(FluidLoader.BioLabFluidMaterials[3], 250))
+ .duration(60 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(centrifugeRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTUtility.getIntegratedCircuit(17))
+ .fluidInputs(new FluidStack(BioCultureLoader.CommonYeast.getFluid(), 1000))
+ .fluidOutputs(new FluidStack(FluidLoader.BioLabFluidMaterials[2], 10))
+ .duration(60 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(centrifugeRecipes);
+
+ }
+}
diff --git a/src/main/java/bartworks/common/loaders/recipes/ChemicalBath.java b/src/main/java/bartworks/common/loaders/recipes/ChemicalBath.java
new file mode 100644
index 0000000000..478acdb81f
--- /dev/null
+++ b/src/main/java/bartworks/common/loaders/recipes/ChemicalBath.java
@@ -0,0 +1,83 @@
+package bartworks.common.loaders.recipes;
+
+import static gregtech.api.recipe.RecipeMaps.chemicalBathRecipes;
+import static gregtech.api.util.GTRecipeBuilder.SECONDS;
+import static gregtech.api.util.GTRecipeBuilder.TICKS;
+
+import net.minecraft.item.ItemStack;
+
+import bartworks.common.loaders.ItemRegistry;
+import gregtech.api.enums.Dyes;
+import gregtech.api.enums.GTValues;
+import gregtech.api.enums.Materials;
+
+public class ChemicalBath implements Runnable {
+
+ @Override
+ public void run() {
+
+ for (int i = 0; i < Dyes.dyeBrown.getSizeOfFluidList(); ++i) {
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(ItemRegistry.bw_glasses[0], 1, 0))
+ .itemOutputs(new ItemStack(ItemRegistry.bw_glasses[0], 1, 6))
+ .fluidInputs(Dyes.dyeRed.getFluidDye(i, 36))
+ .duration(3 * SECONDS + 4 * TICKS)
+ .eut(2)
+ .addTo(chemicalBathRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(ItemRegistry.bw_glasses[0], 1, 0))
+ .itemOutputs(new ItemStack(ItemRegistry.bw_glasses[0], 1, 7))
+ .fluidInputs(Dyes.dyeGreen.getFluidDye(i, 36))
+ .duration(3 * SECONDS + 4 * TICKS)
+ .eut(2)
+ .addTo(chemicalBathRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(ItemRegistry.bw_glasses[0], 1, 0))
+ .itemOutputs(new ItemStack(ItemRegistry.bw_glasses[0], 1, 8))
+ .fluidInputs(Dyes.dyePurple.getFluidDye(i, 36))
+ .duration(3 * SECONDS + 4 * TICKS)
+ .eut(2)
+ .addTo(chemicalBathRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(ItemRegistry.bw_glasses[0], 1, 0))
+ .itemOutputs(new ItemStack(ItemRegistry.bw_glasses[0], 1, 9))
+ .fluidInputs(Dyes.dyeYellow.getFluidDye(i, 36))
+ .duration(3 * SECONDS + 4 * TICKS)
+ .eut(2)
+ .addTo(chemicalBathRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(ItemRegistry.bw_glasses[0], 1, 0))
+ .itemOutputs(new ItemStack(ItemRegistry.bw_glasses[0], 1, 10))
+ .fluidInputs(Dyes.dyeLime.getFluidDye(i, 36))
+ .duration(3 * SECONDS + 4 * TICKS)
+ .eut(2)
+ .addTo(chemicalBathRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(ItemRegistry.bw_glasses[0], 1, 0))
+ .itemOutputs(new ItemStack(ItemRegistry.bw_glasses[0], 1, 11))
+ .fluidInputs(Dyes.dyeBrown.getFluidDye(i, 36))
+ .duration(3 * SECONDS + 4 * TICKS)
+ .eut(2)
+ .addTo(chemicalBathRecipes);
+
+ }
+
+ for (int i = 6; i < 11; i++) {
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(ItemRegistry.bw_glasses[0], 1, i))
+ .itemOutputs(new ItemStack(ItemRegistry.bw_glasses[0], 1, 0))
+ .fluidInputs(Materials.Chlorine.getGas(50))
+ .duration(3 * SECONDS + 4 * TICKS)
+ .eut(2)
+ .addTo(chemicalBathRecipes);
+
+ }
+ }
+}
diff --git a/src/main/java/bartworks/common/loaders/recipes/ChemicalReactor.java b/src/main/java/bartworks/common/loaders/recipes/ChemicalReactor.java
new file mode 100644
index 0000000000..0270a31355
--- /dev/null
+++ b/src/main/java/bartworks/common/loaders/recipes/ChemicalReactor.java
@@ -0,0 +1,28 @@
+package bartworks.common.loaders.recipes;
+
+import static gregtech.api.util.GTRecipeBuilder.SECONDS;
+import static gregtech.api.util.GTRecipeBuilder.TICKS;
+import static gregtech.api.util.GTRecipeConstants.UniversalChemical;
+
+import net.minecraftforge.fluids.FluidStack;
+
+import bartworks.common.loaders.FluidLoader;
+import gregtech.api.enums.GTValues;
+import gregtech.api.enums.TierEU;
+import gregtech.api.util.GTUtility;
+
+public class ChemicalReactor implements Runnable {
+
+ @Override
+ public void run() {
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTUtility.getIntegratedCircuit(10))
+ .fluidInputs(new FluidStack(FluidLoader.heatedfulvicAcid, 1000))
+ .fluidOutputs(new FluidStack(FluidLoader.Kerogen, 1000))
+ .duration(3 * SECONDS + 15 * TICKS)
+ .eut(TierEU.RECIPE_MV)
+ .addTo(UniversalChemical);
+
+ }
+}
diff --git a/src/main/java/bartworks/common/loaders/recipes/CraftingRecipes.java b/src/main/java/bartworks/common/loaders/recipes/CraftingRecipes.java
new file mode 100644
index 0000000000..2cb768ec70
--- /dev/null
+++ b/src/main/java/bartworks/common/loaders/recipes/CraftingRecipes.java
@@ -0,0 +1,468 @@
+package bartworks.common.loaders.recipes;
+
+import static gregtech.api.enums.MetaTileEntityIDs.BioLab_EV;
+import static gregtech.api.enums.MetaTileEntityIDs.BioLab_HV;
+import static gregtech.api.enums.MetaTileEntityIDs.BioLab_IV;
+import static gregtech.api.enums.MetaTileEntityIDs.BioLab_LuV;
+import static gregtech.api.enums.MetaTileEntityIDs.BioLab_MAX;
+import static gregtech.api.enums.MetaTileEntityIDs.BioLab_UEV;
+import static gregtech.api.enums.MetaTileEntityIDs.BioLab_UHV;
+import static gregtech.api.enums.MetaTileEntityIDs.BioLab_UIV;
+import static gregtech.api.enums.MetaTileEntityIDs.BioLab_UMV;
+import static gregtech.api.enums.MetaTileEntityIDs.BioLab_UV;
+import static gregtech.api.enums.MetaTileEntityIDs.BioLab_UXV;
+import static gregtech.api.enums.MetaTileEntityIDs.BioLab_ZPM;
+import static gregtech.api.enums.MetaTileEntityIDs.BioVat;
+import static gregtech.api.enums.MetaTileEntityIDs.LESU;
+import static gregtech.api.enums.MetaTileEntityIDs.ManualTrafo;
+import static gregtech.api.enums.MetaTileEntityIDs.RadioHatch_EV;
+import static gregtech.api.enums.MetaTileEntityIDs.RadioHatch_HV;
+import static gregtech.api.enums.MetaTileEntityIDs.RadioHatch_IV;
+import static gregtech.api.enums.MetaTileEntityIDs.RadioHatch_LuV;
+import static gregtech.api.enums.MetaTileEntityIDs.RadioHatch_MAX;
+import static gregtech.api.enums.MetaTileEntityIDs.RadioHatch_UEV;
+import static gregtech.api.enums.MetaTileEntityIDs.RadioHatch_UHV;
+import static gregtech.api.enums.MetaTileEntityIDs.RadioHatch_UIV;
+import static gregtech.api.enums.MetaTileEntityIDs.RadioHatch_UMV;
+import static gregtech.api.enums.MetaTileEntityIDs.RadioHatch_UV;
+import static gregtech.api.enums.MetaTileEntityIDs.RadioHatch_UXV;
+import static gregtech.api.enums.MetaTileEntityIDs.RadioHatch_ZPM;
+import static gregtech.api.enums.MetaTileEntityIDs.Windmill;
+import static gregtech.api.enums.Mods.IndustrialCraft2;
+
+import net.minecraft.init.Blocks;
+import net.minecraft.init.Items;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.StatCollector;
+import net.minecraftforge.oredict.OreDictionary;
+
+import bartworks.common.configs.ConfigHandler;
+import bartworks.common.loaders.BioItemList;
+import bartworks.common.loaders.ItemRegistry;
+import bartworks.common.loaders.RecipeLoader;
+import bartworks.common.tileentities.multis.MTEBioVat;
+import bartworks.common.tileentities.multis.MTELESU;
+import bartworks.common.tileentities.multis.MTEManualTrafo;
+import bartworks.common.tileentities.multis.MTEWindmill;
+import bartworks.common.tileentities.tiered.GT_MetaTileEntity_RadioHatch;
+import bartworks.common.tileentities.tiered.MTEBioLab;
+import bartworks.system.material.Werkstoff;
+import bartworks.system.material.WerkstoffLoader;
+import gregtech.api.GregTechAPI;
+import gregtech.api.enums.GTValues;
+import gregtech.api.enums.ItemList;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.OrePrefixes;
+import gregtech.api.interfaces.ISubTagContainer;
+import gregtech.api.util.GTModHandler;
+import gregtech.api.util.GTOreDictUnificator;
+import ic2.core.Ic2Items;
+
+public class CraftingRecipes implements Runnable {
+
+ @Override
+ public void run() {
+
+ Materials[] cables = { // Cable material used in the acid gen, diode and energy distributor below
+ Materials.Lead, // ULV
+ Materials.Tin, // LV
+ Materials.AnnealedCopper, // MV
+ Materials.Gold, // HV
+ Materials.Aluminium, // EV
+ Materials.Tungsten, // IV
+ Materials.VanadiumGallium, // LuV
+ Materials.Naquadah, // ZPM
+ Materials.NaquadahAlloy, // UV
+ Materials.SuperconductorUV // UHV
+ };
+
+ ISubTagContainer[] hulls = { // Plate material used in the acid gen, diode and energy distributor below
+ Materials.WroughtIron, // ULV
+ Materials.Steel, // LV
+ Materials.Aluminium, // MV
+ Materials.StainlessSteel, // HV
+ Materials.Titanium, // EV
+ Materials.TungstenSteel, // IV
+ WerkstoffLoader.LuVTierMaterial, // LuV
+ Materials.Iridium, // ZPM
+ Materials.Osmium, // UV
+ Materials.Naquadah // UHV
+ };
+
+ ItemStack[] bats = { ItemList.Battery_Hull_LV.get(1L), ItemList.Battery_Hull_MV.get(1L),
+ ItemList.Battery_Hull_HV.get(1L) };
+ ItemStack[] chreac = { ItemList.Machine_MV_ChemicalReactor.get(1L), ItemList.Machine_HV_ChemicalReactor.get(1L),
+ ItemList.Machine_EV_ChemicalReactor.get(1L) };
+
+ GTModHandler.addCraftingRecipe(
+ new MTELESU(LESU.ID, "LESU", "L.E.S.U.").getStackForm(1L),
+ RecipeLoader.BITSD,
+ new Object[] { "CDC", "SBS", "CFC", 'C', "circuitAdvanced", 'D', ItemList.Cover_Screen.get(1L), 'S',
+ GTOreDictUnificator.get(OrePrefixes.cableGt12, Materials.Platinum, 1L), 'B',
+ new ItemStack(ItemRegistry.BW_BLOCKS[1]), 'F', ItemList.Field_Generator_HV.get(1L) });
+
+ GTModHandler.addCraftingRecipe(
+ new ItemStack(ItemRegistry.ROCKCUTTER_MV),
+ RecipeLoader.BITSD,
+ new Object[] { "DS ", "DP ", "DCB", 'D', GTOreDictUnificator.get(OrePrefixes.dust, Materials.Diamond, 1L),
+ 'S', GTOreDictUnificator.get(OrePrefixes.stick, Materials.TungstenSteel, 1L), 'P',
+ GTOreDictUnificator.get(OrePrefixes.plate, Materials.TungstenSteel, 1L), 'C', "circuitGood", 'B',
+ ItemList.IC2_AdvBattery.get(1L) });
+
+ GTModHandler.addCraftingRecipe(
+ new ItemStack(ItemRegistry.ROCKCUTTER_LV),
+ RecipeLoader.BITSD,
+ new Object[] { "DS ", "DP ", "DCB", 'D', GTOreDictUnificator.get(OrePrefixes.dust, Materials.Diamond, 1L),
+ 'S', GTOreDictUnificator.get(OrePrefixes.stick, Materials.Titanium, 1L), 'P',
+ GTOreDictUnificator.get(OrePrefixes.plate, Materials.Titanium, 1L), 'C', "circuitBasic", 'B',
+ ItemList.IC2_ReBattery.get(1L) });
+
+ GTModHandler.addCraftingRecipe(
+ new ItemStack(ItemRegistry.ROCKCUTTER_HV),
+ RecipeLoader.BITSD,
+ new Object[] { "DS ", "DP ", "DCB", 'D', GTOreDictUnificator.get(OrePrefixes.dust, Materials.Diamond, 1L),
+ 'S', GTOreDictUnificator.get(OrePrefixes.stick, Materials.Iridium, 1L), 'P',
+ GTOreDictUnificator.get(OrePrefixes.plate, Materials.Iridium, 1L), 'C', "circuitAdvanced", 'B',
+ ItemList.IC2_EnergyCrystal.get(1L) });
+
+ if (ConfigHandler.teslastaff) {
+ GTModHandler.addCraftingRecipe(
+ new ItemStack(ItemRegistry.TESLASTAFF),
+ RecipeLoader.BITSD,
+ new Object[] { "BO ", "OP ", " P", 'O',
+ GTOreDictUnificator.get(OrePrefixes.wireGt16, Materials.SuperconductorUHV, 1L), 'B',
+ ItemList.Energy_LapotronicOrb.get(1L), 'P', "plateAlloyIridium", });
+ }
+
+ GTModHandler.addCraftingRecipe(
+ new ItemStack(ItemRegistry.PUMPPARTS, 1, 0), // tube
+ GTModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { " fG", " G ", "G ", 'G', ItemList.Circuit_Parts_Glass_Tube.get(1L) });
+ GTModHandler.addCraftingRecipe(
+ new ItemStack(ItemRegistry.PUMPPARTS, 1, 1), // motor
+ GTModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { "GLP", "LSd", "PfT", 'G',
+ GTOreDictUnificator.get(OrePrefixes.gearGtSmall, Materials.Steel, 1L), 'L',
+ GTOreDictUnificator.get(OrePrefixes.stickLong, Materials.Steel, 1L), 'S',
+ GTOreDictUnificator.get(OrePrefixes.screw, Materials.Steel, 1L), 'P', new ItemStack(Blocks.piston), 'T',
+ new ItemStack(ItemRegistry.PUMPPARTS, 1, 0) });
+ GTModHandler.addCraftingRecipe(
+ new ItemStack(ItemRegistry.PUMPBLOCK, 1, 0),
+ GTModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { "IPI", "PMP", "ISI", 'I', GTOreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 1L),
+ 'P', GTOreDictUnificator.get(OrePrefixes.pipeLarge, Materials.Wood, 1L), 'M',
+ new ItemStack(ItemRegistry.PUMPPARTS, 1, 1), 'S', Ic2Items.ironFurnace });
+
+ GTModHandler.addCraftingRecipe(
+ new ItemStack(ItemRegistry.WINDMETER),
+ GTModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { "SWF", "Sf ", "Ss ", 'S', "stickWood", 'W', new ItemStack(Blocks.wool, 1, Short.MAX_VALUE),
+ 'F', new ItemStack(Items.string), });
+
+ for (int i = 0; i < 3; i++) {
+ Materials cable = cables[i + 2];
+ ItemStack machinehull = ItemList.MACHINE_HULLS[i + 2].get(1L);
+ GTModHandler.addCraftingRecipe(
+ ItemRegistry.acidGens[i],
+ RecipeLoader.BITSD,
+ new Object[] { "HRH", "HCH", "HKH", 'H', bats[i], 'K',
+ GTOreDictUnificator.get(OrePrefixes.cableGt01, cable, 1L), 'C', machinehull, 'R', chreac[i] });
+ }
+
+ GTModHandler.addCraftingRecipe(
+ ItemRegistry.acidGensLV,
+ RecipeLoader.BITSD,
+ new Object[] { "HRH", "KCK", "HKH", 'H', ItemList.Battery_Hull_LV.get(1L), 'K',
+ GTOreDictUnificator.get(OrePrefixes.cableGt01, Materials.Tin, 1L), 'C', ItemList.Hull_LV.get(1L), 'R',
+ ItemList.Machine_LV_ChemicalReactor.get(1L), });
+
+ for (int i = 0; i < 9; i++) {
+ try {
+ Materials cable = cables[i];
+ ItemStack hull = hulls[i] instanceof Materials
+ ? GTOreDictUnificator.get(OrePrefixes.plate, hulls[i], 1L)
+ : ((Werkstoff) hulls[i]).get(OrePrefixes.plate);
+ ItemStack machinehull = ItemList.MACHINE_HULLS[i].get(1L);
+
+ GTModHandler.addCraftingRecipe(
+ ItemRegistry.energyDistributor[i],
+ RecipeLoader.BITSD,
+ new Object[] { "PWP", "WCW", "PWP", 'W', GTOreDictUnificator.get(OrePrefixes.wireGt16, cable, 1L),
+ 'P', hull, 'C', machinehull });
+ GTModHandler.addCraftingRecipe(
+ ItemRegistry.diode12A[i],
+ RecipeLoader.BITSD,
+ new Object[] { "WDW", "DCD", "PDP", 'D', OrePrefixes.componentCircuit.get(Materials.Diode), 'W',
+ GTOreDictUnificator.get(OrePrefixes.cableGt12, cable, 1L), 'P', hull, 'C', machinehull });
+ GTModHandler.addCraftingRecipe(
+ ItemRegistry.diode8A[i],
+ RecipeLoader.BITSD,
+ new Object[] { "WDW", "DCD", "PDP", 'D', OrePrefixes.componentCircuit.get(Materials.Diode), 'W',
+ GTOreDictUnificator.get(OrePrefixes.cableGt08, cable, 1L), 'P', hull, 'C', machinehull });
+ GTModHandler.addCraftingRecipe(
+ ItemRegistry.diode4A[i],
+ RecipeLoader.BITSD,
+ new Object[] { "WDW", "DCD", "PDP", 'D', OrePrefixes.componentCircuit.get(Materials.Diode), 'W',
+ GTOreDictUnificator.get(OrePrefixes.cableGt04, cable, 1L), 'P', hull, 'C', machinehull });
+ GTModHandler.addCraftingRecipe(
+ ItemRegistry.diode2A[i],
+ RecipeLoader.BITSD,
+ new Object[] { "WDW", "DCD", "PDP", 'D', OrePrefixes.componentCircuit.get(Materials.Diode), 'W',
+ GTOreDictUnificator.get(OrePrefixes.cableGt02, cable, 1L), 'P', hull, 'C', machinehull });
+ GTModHandler.addCraftingRecipe(
+ ItemRegistry.diode16A[i],
+ RecipeLoader.BITSD,
+ new Object[] { "WHW", "DCD", "PDP", 'H', OrePrefixes.componentCircuit.get(Materials.Inductor), 'D',
+ OrePrefixes.componentCircuit.get(Materials.Diode), 'W',
+ GTOreDictUnificator.get(OrePrefixes.wireGt16, cable, 1L), 'P', hull, 'C', machinehull });
+
+ } catch (ArrayIndexOutOfBoundsException ignored) {
+
+ }
+
+ }
+
+ String[] stones = { "stone", "stoneSmooth" };
+ String[] granites = { "blockGranite", "stoneGranite", "Granite", "granite" };
+ for (String granite : granites) {
+ for (String stone : stones) {
+ GTModHandler.addCraftingRecipe(
+ new ItemStack(ItemRegistry.CRAFTING_PARTS, 1, 0),
+ GTModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { "SSS", "DfD", " h ", 'S', stone, 'D',
+ new ItemStack(GregTechAPI.sBlockGranites, 1, OreDictionary.WILDCARD_VALUE), });
+ GTModHandler.addCraftingRecipe(
+ new ItemStack(ItemRegistry.CRAFTING_PARTS, 1, 1),
+ GTModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { "hDf", "SSS", 'S', stone, 'D',
+ new ItemStack(GregTechAPI.sBlockGranites, 1, OreDictionary.WILDCARD_VALUE), });
+ GTModHandler.addCraftingRecipe(
+ new ItemStack(ItemRegistry.CRAFTING_PARTS, 1, 0),
+ GTModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { "SSS", "DfD", " h ", 'S', stone, 'D', granite, });
+ GTModHandler.addCraftingRecipe(
+ new ItemStack(ItemRegistry.CRAFTING_PARTS, 1, 1),
+ GTModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { "hDf", "SSS", 'S', stone, 'D', granite, });
+ }
+ GTModHandler.addCraftingRecipe(
+ new ItemStack(ItemRegistry.CRAFTING_PARTS, 1, 2),
+ GTModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { "STS", "h f", "SBS", 'S', granite, 'T', new ItemStack(ItemRegistry.CRAFTING_PARTS, 1, 0),
+ 'B', new ItemStack(ItemRegistry.CRAFTING_PARTS, 1, 1), });
+ }
+
+ GTModHandler.addCraftingRecipe(
+ new MTEManualTrafo(ManualTrafo.ID, "bw.manualtrafo", StatCollector.translateToLocal("tile.manutrafo.name"))
+ .getStackForm(1L),
+ RecipeLoader.BITSD,
+ new Object[] { "SCS", "CHC", "ZCZ", 'S', GTOreDictUnificator.get(OrePrefixes.screw, Materials.Titanium, 1L),
+ 'C', new ItemStack(ItemRegistry.BW_BLOCKS[2]), 'H', ItemList.Hull_HV.get(1L), 'Z', "circuitAdvanced" });
+
+ GTModHandler.addCraftingRecipe(
+ new MTEWindmill(Windmill.ID, "bw.windmill", StatCollector.translateToLocal("tile.bw.windmill.name"))
+ .getStackForm(1L),
+ RecipeLoader.BITSD,
+ new Object[] { "BHB", "WGW", "BWB", 'B', new ItemStack(Blocks.brick_block), 'W',
+ GTOreDictUnificator.get(OrePrefixes.gearGt, Materials.Iron, 1L), 'H', new ItemStack(Blocks.hopper), 'G',
+ new ItemStack(ItemRegistry.CRAFTING_PARTS, 1, 2), });
+
+ GTModHandler.addCraftingRecipe(
+ new ItemStack(ItemRegistry.CRAFTING_PARTS, 1, 2),
+ GTModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { "STS", "h f", "SBS", 'S',
+ new ItemStack(GregTechAPI.sBlockGranites, 1, OreDictionary.WILDCARD_VALUE), 'T',
+ new ItemStack(ItemRegistry.CRAFTING_PARTS, 1, 0), 'B',
+ new ItemStack(ItemRegistry.CRAFTING_PARTS, 1, 1), });
+ GTModHandler.addCraftingRecipe(
+ new ItemStack(ItemRegistry.CRAFTING_PARTS, 1, 3),
+ GTModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { "WLs", "WLh", "WLf", 'L', new ItemStack(Items.leather), 'W', "logWood", });
+ GTModHandler.addCraftingRecipe(
+ new ItemStack(ItemRegistry.CRAFTING_PARTS, 1, 4),
+ GTModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { "WLs", "WLh", "WLf", 'L', new ItemStack(Blocks.carpet), 'W', "logWood", });
+ GTModHandler.addCraftingRecipe(
+ new ItemStack(ItemRegistry.CRAFTING_PARTS, 1, 5),
+ GTModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { "WLs", "WLh", "WLf", 'L', new ItemStack(Items.paper), 'W', "logWood", });
+
+ GTModHandler.addCraftingRecipe(
+ new ItemStack(ItemRegistry.CRAFTING_PARTS, 1, 6),
+ GTModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { "WEs", "WZh", "WDf", 'E', new ItemStack(ItemRegistry.CRAFTING_PARTS, 1, 3), 'Z',
+ new ItemStack(ItemRegistry.CRAFTING_PARTS, 1, 4), 'D', new ItemStack(ItemRegistry.CRAFTING_PARTS, 1, 5),
+ 'W', "logWood", });
+
+ GTModHandler.addCraftingRecipe(
+ new ItemStack(ItemRegistry.CRAFTING_PARTS, 1, 6),
+ GTModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { "WEs", "WZh", "WDf", 'Z', new ItemStack(ItemRegistry.CRAFTING_PARTS, 1, 3), 'E',
+ new ItemStack(ItemRegistry.CRAFTING_PARTS, 1, 4), 'D', new ItemStack(ItemRegistry.CRAFTING_PARTS, 1, 5),
+ 'W', "logWood", });
+
+ GTModHandler.addCraftingRecipe(
+ new ItemStack(ItemRegistry.CRAFTING_PARTS, 1, 6),
+ GTModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { "WEs", "WZh", "WDf", 'D', new ItemStack(ItemRegistry.CRAFTING_PARTS, 1, 3), 'Z',
+ new ItemStack(ItemRegistry.CRAFTING_PARTS, 1, 4), 'E', new ItemStack(ItemRegistry.CRAFTING_PARTS, 1, 5),
+ 'W', "logWood", });
+
+ GTModHandler.addCraftingRecipe(
+ new ItemStack(ItemRegistry.CRAFTING_PARTS, 1, 6),
+ GTModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { "WEs", "WZh", "WDf", 'E', new ItemStack(ItemRegistry.CRAFTING_PARTS, 1, 3), 'D',
+ new ItemStack(ItemRegistry.CRAFTING_PARTS, 1, 4), 'Z', new ItemStack(ItemRegistry.CRAFTING_PARTS, 1, 5),
+ 'W', "logWood", });
+
+ GTModHandler.addCraftingRecipe(
+ new ItemStack(ItemRegistry.CRAFTING_PARTS, 1, 6),
+ GTModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { "WEs", "WZh", "WDf", 'Z', new ItemStack(ItemRegistry.CRAFTING_PARTS, 1, 3), 'D',
+ new ItemStack(ItemRegistry.CRAFTING_PARTS, 1, 4), 'E', new ItemStack(ItemRegistry.CRAFTING_PARTS, 1, 5),
+ 'W', "logWood", });
+
+ GTModHandler.addCraftingRecipe(
+ new ItemStack(ItemRegistry.LEATHER_ROTOR),
+ GTModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { "hPf", "PWP", "sPr", 'P', new ItemStack(ItemRegistry.CRAFTING_PARTS, 1, 3), 'W',
+ GTOreDictUnificator.get(OrePrefixes.gearGt, Materials.Iron, 1L), });
+ GTModHandler.addCraftingRecipe(
+ new ItemStack(ItemRegistry.WOOL_ROTOR),
+ GTModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { "hPf", "PWP", "sPr", 'P', new ItemStack(ItemRegistry.CRAFTING_PARTS, 1, 4), 'W',
+ GTOreDictUnificator.get(OrePrefixes.gearGt, Materials.Iron, 1L), });
+ GTModHandler.addCraftingRecipe(
+ new ItemStack(ItemRegistry.PAPER_ROTOR),
+ GTModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { "hPf", "PWP", "sPr", 'P', new ItemStack(ItemRegistry.CRAFTING_PARTS, 1, 5), 'W',
+ GTOreDictUnificator.get(OrePrefixes.gearGt, Materials.Iron, 1L), });
+ GTModHandler.addCraftingRecipe(
+ new ItemStack(ItemRegistry.COMBINED_ROTOR),
+ GTModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { "hPf", "PWP", "sPr", 'P', new ItemStack(ItemRegistry.CRAFTING_PARTS, 1, 6), 'W',
+ GTOreDictUnificator.get(OrePrefixes.gearGt, Materials.Iron, 1L), });
+ GTModHandler.addCraftingRecipe(
+ new ItemStack(ItemRegistry.ROTORBLOCK),
+ RecipeLoader.BITSD,
+ new Object[] { "WRW", "RGR", "WRW", 'R', GTOreDictUnificator.get(OrePrefixes.ring, Materials.Iron, 1L), 'W',
+ "plankWood", 'G', GTOreDictUnificator.get(OrePrefixes.gearGt, Materials.Iron, 1L), });
+
+ GTModHandler.addCraftingRecipe(
+ ItemRegistry.THTR,
+ RecipeLoader.BITSD,
+ new Object[] { "BZB", "BRB", "BZB", 'B', new ItemStack(GregTechAPI.sBlockCasings3, 1, 12), 'R',
+ GTModHandler.getModItem(IndustrialCraft2.ID, "blockGenerator", 1, 5), 'Z', "circuitUltimate" });
+
+ GTModHandler.addCraftingRecipe(
+ ItemRegistry.HTGR,
+ RecipeLoader.BITSD,
+ new Object[] { "BZB", "BRB", "BZB", 'B', new ItemStack(GregTechAPI.sBlockCasings8, 1, 5), 'R',
+ GTModHandler.getModItem(IndustrialCraft2.ID, "blockGenerator", 1, 5), 'Z', "circuitSuperconductor" });
+
+ // DNAExtractionModule
+ GTModHandler.addCraftingRecipe(
+ BioItemList.mBioLabParts[0],
+ RecipeLoader.BITSD,
+ new Object[] { "TET", "CFC", "TST", 'T', GTOreDictUnificator.get(OrePrefixes.plate, Materials.Titanium, 1L),
+ 'E', ItemList.Emitter_EV.get(1L), 'C',
+ GTOreDictUnificator.get(OrePrefixes.cableGt04, Materials.Aluminium, 1L), 'S',
+ ItemList.Sensor_EV.get(1L), 'F', ItemList.Field_Generator_EV.get(1L) });
+
+ // PCRThermoclyclingModule
+ GTModHandler.addCraftingRecipe(
+ BioItemList.mBioLabParts[1],
+ RecipeLoader.BITSD,
+ new Object[] { "NEN", "CFC", "NSN", 'N',
+ GTOreDictUnificator.get(OrePrefixes.wireGt04, Materials.Nichrome, 1L), 'E', ItemList.Emitter_EV.get(1L),
+ 'C', GTOreDictUnificator.get(OrePrefixes.cableGt04, Materials.Aluminium, 1L), 'S',
+ ItemList.Sensor_EV.get(1L), 'F', ItemList.Field_Generator_EV.get(1L) });
+
+ // PlasmidSynthesisModule
+ GTModHandler.addCraftingRecipe(
+ BioItemList.mBioLabParts[2],
+ RecipeLoader.BITSD,
+ new Object[] { "SFE", "CPC", "NFN", 'N',
+ GTOreDictUnificator.get(OrePrefixes.wireGt04, Materials.Nichrome, 1L), 'C', "circuit" + Materials.EV,
+ 'F', ItemList.Field_Generator_EV.get(1L), 'E', ItemList.Emitter_EV.get(1L), 'S',
+ ItemList.Sensor_EV.get(1L), 'P', GTOreDictUnificator.get(OrePrefixes.plate, Materials.Titanium, 1L), });
+ // TransformationModule
+ GTModHandler.addCraftingRecipe(
+ BioItemList.mBioLabParts[3],
+ RecipeLoader.BITSD,
+ new Object[] { "SFE", "CPC", "NFN", 'N',
+ GTOreDictUnificator.get(OrePrefixes.wireGt04, Materials.Naquadah, 1L), 'C', "circuit" + Materials.LuV,
+ 'F', ItemList.Field_Generator_LuV.get(1L), 'E', ItemList.Emitter_LuV.get(1L), 'S',
+ ItemList.Sensor_LuV.get(1L), 'P', WerkstoffLoader.LuVTierMaterial.get(OrePrefixes.plate, 1), });
+
+ // ClonalCellularSynthesisModule
+ GTModHandler.addCraftingRecipe(
+ BioItemList.mBioLabParts[4],
+ RecipeLoader.BITSD,
+ new Object[] { "FEF", "CPC", "FSF", 'N',
+ GTOreDictUnificator.get(OrePrefixes.wireGt04, Materials.Naquadah, 1L), 'C', "circuit" + Materials.LuV,
+ 'F', ItemList.Field_Generator_LuV.get(1L), 'E', ItemList.Emitter_LuV.get(1L), 'S',
+ ItemList.Sensor_LuV.get(1L), 'P', WerkstoffLoader.LuVTierMaterial.get(OrePrefixes.plate, 1), });
+
+ GTModHandler.addCraftingRecipe(
+ new MTEBioVat(BioVat.ID, "bw.biovat", StatCollector.translateToLocal("tile.biovat.name")).getStackForm(1L),
+ RecipeLoader.BITSD,
+ new Object[] { "GCG", "KHK", "GCG", 'G', new ItemStack(ItemRegistry.bw_glasses[0], 1, 1), 'C',
+ "circuit" + Materials.EV, 'K', GTOreDictUnificator.get(OrePrefixes.wireGt08, Materials.Silver, 1L), 'H',
+ ItemList.MACHINE_HULLS[3].get(1L) });
+
+ ItemStack[] Pistons2 = { ItemList.Electric_Piston_HV.get(1L), ItemList.Electric_Piston_EV.get(1L),
+ ItemList.Electric_Piston_IV.get(1L), ItemList.Electric_Piston_LuV.get(1L),
+ ItemList.Electric_Piston_ZPM.get(1L), ItemList.Electric_Piston_UV.get(1L) };
+ ItemStack[] BioLab2 = new ItemStack[GTValues.VN.length - 3];
+ ItemStack[] RadioHatch2 = new ItemStack[GTValues.VN.length - 3];
+ Materials[] cables2 = { Materials.Gold, Materials.Aluminium, Materials.Tungsten, Materials.VanadiumGallium,
+ Materials.Naquadah, Materials.NaquadahAlloy, Materials.SuperconductorUHV };
+ Materials[] hulls2 = { Materials.StainlessSteel, Materials.Titanium, Materials.TungstenSteel, Materials.Chrome,
+ Materials.Iridium, Materials.Osmium, Materials.Naquadah };
+ Materials[] wireMat2 = { Materials.Kanthal, Materials.Nichrome, Materials.TungstenSteel, Materials.Naquadah,
+ Materials.NaquadahAlloy, Materials.SuperconductorUHV };
+ Materials[] circuits2 = { Materials.HV, Materials.EV, Materials.IV, Materials.LuV, Materials.ZPM,
+ Materials.UV };
+
+ int[] BioLab = new int[] { BioLab_HV.ID, BioLab_EV.ID, BioLab_IV.ID, BioLab_LuV.ID, BioLab_ZPM.ID, BioLab_UV.ID,
+ BioLab_UHV.ID, BioLab_UEV.ID, BioLab_UIV.ID, BioLab_UMV.ID, BioLab_UXV.ID, BioLab_MAX.ID };
+ int[] RadioHatch = new int[] { RadioHatch_HV.ID, RadioHatch_EV.ID, RadioHatch_IV.ID, RadioHatch_LuV.ID,
+ RadioHatch_ZPM.ID, RadioHatch_UV.ID, RadioHatch_UHV.ID, RadioHatch_UEV.ID, RadioHatch_UIV.ID,
+ RadioHatch_UMV.ID, RadioHatch_UXV.ID, RadioHatch_MAX.ID };
+
+ for (int i = 3; i < GTValues.VN.length - 1; i++) {
+ BioLab2[i - 3] = new MTEBioLab(
+ BioLab[i - 3],
+ "bw.biolab" + GTValues.VN[i],
+ GTValues.VN[i] + " " + StatCollector.translateToLocal("tile.biolab.name"),
+ i).getStackForm(1L);
+ RadioHatch2[i - 3] = new GT_MetaTileEntity_RadioHatch(
+ RadioHatch[i - 3],
+ "bw.radiohatch" + GTValues.VN[i],
+ GTValues.VN[i] + " " + StatCollector.translateToLocal("tile.radiohatch.name"),
+ i).getStackForm(1L);
+ try {
+ ItemStack machinehull = ItemList.MACHINE_HULLS[i].get(1L);
+ GTModHandler.addCraftingRecipe(
+ BioLab2[i - 3],
+ RecipeLoader.BITSD,
+ new Object[] { "PFP", "WCW", "OGO", 'F',
+ GTOreDictUnificator.get(OrePrefixes.frameGt, hulls2[i - 3], 1L), 'W',
+ GTOreDictUnificator.get(OrePrefixes.wireGt01, wireMat2[i - 3], 1L), 'P',
+ GTOreDictUnificator.get(OrePrefixes.plate, Materials.Polytetrafluoroethylene, 1L), 'O',
+ GTOreDictUnificator.get(OrePrefixes.plate, Materials.Polystyrene, 1L), 'G',
+ "circuit" + circuits2[i - 3], 'C', machinehull });
+ GTModHandler.addCraftingRecipe(
+ RadioHatch2[i - 3],
+ RecipeLoader.BITSD,
+ new Object[] { "DPD", "DCD", "DKD", 'D',
+ GTOreDictUnificator.get(OrePrefixes.plateDense, Materials.Lead, 1L), 'C', machinehull, 'K',
+ GTOreDictUnificator.get(OrePrefixes.cableGt08, cables2[i - 3], 1L), 'P', Pistons2[i - 3] });
+ } catch (ArrayIndexOutOfBoundsException ignored) {
+
+ }
+ }
+
+ }
+}
diff --git a/src/main/java/bartworks/common/loaders/recipes/Electrolyzer.java b/src/main/java/bartworks/common/loaders/recipes/Electrolyzer.java
new file mode 100644
index 0000000000..26653743fc
--- /dev/null
+++ b/src/main/java/bartworks/common/loaders/recipes/Electrolyzer.java
@@ -0,0 +1,151 @@
+package bartworks.common.loaders.recipes;
+
+import static gregtech.api.recipe.RecipeMaps.electrolyzerRecipes;
+import static gregtech.api.util.GTRecipeBuilder.SECONDS;
+import static gregtech.api.util.GTRecipeBuilder.TICKS;
+
+import bartworks.system.material.WerkstoffLoader;
+import gregtech.api.enums.GTValues;
+import gregtech.api.enums.ItemList;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.OrePrefixes;
+import gregtech.api.enums.TierEU;
+import gregtech.api.util.GTOreDictUnificator;
+
+public class Electrolyzer implements Runnable {
+
+ // TODO: fix the chemical balance issues there are below
+ @Override
+ public void run() {
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffLoader.Forsterit.get(OrePrefixes.dust, 7))
+ .itemOutputs(
+ GTOreDictUnificator.get(OrePrefixes.dust, Materials.Magnesium, 2L),
+ GTOreDictUnificator.get(OrePrefixes.dust, Materials.SiliconDioxide, 1L))
+ .fluidOutputs(Materials.Oxygen.getGas(2000L))
+ .duration(10 * SECONDS)
+ .eut(90)
+ .addTo(electrolyzerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffLoader.RedZircon.get(OrePrefixes.dust, 6))
+ .itemOutputs(
+ WerkstoffLoader.Zirconium.get(OrePrefixes.dust, 1),
+ GTOreDictUnificator.get(OrePrefixes.dust, Materials.SiliconDioxide, 1L))
+ .fluidOutputs(Materials.Oxygen.getGas(2000L))
+ .duration(12 * SECONDS + 10 * TICKS)
+ .eut(90)
+ .addTo(electrolyzerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffLoader.Fayalit.get(OrePrefixes.dust, 7))
+ .itemOutputs(
+ GTOreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 2L),
+ GTOreDictUnificator.get(OrePrefixes.dust, Materials.SiliconDioxide, 1L))
+ .fluidOutputs(Materials.Oxygen.getGas(2000L))
+ .duration(16 * SECONDS)
+ .eut(90)
+ .addTo(electrolyzerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffLoader.Prasiolite.get(OrePrefixes.dust, 16))
+ .itemOutputs(
+ GTOreDictUnificator.get(OrePrefixes.dust, Materials.SiliconDioxide, 5L),
+ GTOreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 1L))
+ .duration(29 * SECONDS)
+ .eut(90)
+ .addTo(electrolyzerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffLoader.Hedenbergit.get(OrePrefixes.dust, 10))
+ .itemOutputs(
+ GTOreDictUnificator.get(OrePrefixes.dust, Materials.Calcium, 1L),
+ GTOreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 1L),
+ GTOreDictUnificator.get(OrePrefixes.dust, Materials.SiliconDioxide, 2L))
+ .fluidOutputs(Materials.Oxygen.getGas(2000L))
+ .duration(15 * SECONDS)
+ .eut(90)
+ .addTo(electrolyzerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffLoader.FuchsitAL.get(OrePrefixes.dust, 21), ItemList.Cell_Empty.get(2))
+ .itemOutputs(
+ GTOreDictUnificator.get(OrePrefixes.dust, Materials.Potassium, 1L),
+ GTOreDictUnificator.get(OrePrefixes.dust, Materials.Aluminiumoxide, 3L),
+ GTOreDictUnificator.get(OrePrefixes.dust, Materials.SiliconDioxide, 3L),
+ GTOreDictUnificator.get(OrePrefixes.cell, Materials.Hydrogen, 2))
+ .fluidOutputs(Materials.Oxygen.getGas(2000L))
+ .duration(19 * SECONDS + 10 * TICKS)
+ .eut(TierEU.RECIPE_MV)
+ .addTo(electrolyzerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffLoader.FuchsitCR.get(OrePrefixes.dust, 21), ItemList.Cell_Empty.get(2))
+ .itemOutputs(
+ GTOreDictUnificator.get(OrePrefixes.dust, Materials.Potassium, 1L),
+ GTOreDictUnificator.get(OrePrefixes.dust, Materials.Chrome, 3L),
+ GTOreDictUnificator.get(OrePrefixes.dust, Materials.SiliconDioxide, 3L),
+ GTOreDictUnificator.get(OrePrefixes.cell, Materials.Hydrogen, 2))
+ .fluidOutputs(Materials.Oxygen.getGas(2000L))
+ .duration(23 * SECONDS)
+ .eut(TierEU.RECIPE_MV)
+ .addTo(electrolyzerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffLoader.VanadioOxyDravit.get(OrePrefixes.dust, 53), ItemList.Cell_Empty.get(3))
+ .itemOutputs(
+ GTOreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 1L),
+ GTOreDictUnificator.get(OrePrefixes.dust, Materials.Vanadium, 3L),
+ GTOreDictUnificator.get(OrePrefixes.dust, Materials.Magnalium, 6L),
+ GTOreDictUnificator.get(OrePrefixes.dust, Materials.SiliconDioxide, 6),
+ GTOreDictUnificator.get(OrePrefixes.dust, Materials.Boron, 3),
+ GTOreDictUnificator.get(OrePrefixes.cell, Materials.Hydrogen, 3))
+ .fluidOutputs(Materials.Oxygen.getGas(19000L))
+ .duration(35 * SECONDS + 10 * TICKS)
+ .eut(TierEU.RECIPE_MV)
+ .addTo(electrolyzerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffLoader.ChromoAluminoPovondrait.get(OrePrefixes.dust, 53), ItemList.Cell_Empty.get(3))
+ .itemOutputs(
+ GTOreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 1L),
+ GTOreDictUnificator.get(OrePrefixes.dust, Materials.Chrome, 3L),
+ GTOreDictUnificator.get(OrePrefixes.dust, Materials.Magnalium, 6L),
+ GTOreDictUnificator.get(OrePrefixes.dust, Materials.SiliconDioxide, 6),
+ GTOreDictUnificator.get(OrePrefixes.dust, Materials.Boron, 3),
+ GTOreDictUnificator.get(OrePrefixes.cell, Materials.Hydrogen, 3))
+ .fluidOutputs(Materials.Oxygen.getGas(19000L))
+ .duration(36 * SECONDS)
+ .eut(TierEU.RECIPE_MV)
+ .addTo(electrolyzerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffLoader.FluorBuergerit.get(OrePrefixes.dust, 50), ItemList.Cell_Empty.get(3))
+ .itemOutputs(
+ GTOreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 1L),
+ GTOreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 3L),
+ GTOreDictUnificator.get(OrePrefixes.dust, Materials.Aluminiumoxide, 6L),
+ GTOreDictUnificator.get(OrePrefixes.dust, Materials.SiliconDioxide, 6),
+ GTOreDictUnificator.get(OrePrefixes.dust, Materials.Boron, 3),
+ GTOreDictUnificator.get(OrePrefixes.cell, Materials.Fluorine, 3))
+ .fluidOutputs(Materials.Oxygen.getGas(6000L))
+ .duration(36 * SECONDS + 10 * TICKS)
+ .eut(TierEU.RECIPE_MV)
+ .addTo(electrolyzerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffLoader.Olenit.get(OrePrefixes.dust, 51), ItemList.Cell_Empty.get(1))
+ .itemOutputs(
+ GTOreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 1L),
+ GTOreDictUnificator.get(OrePrefixes.dust, Materials.Aluminiumoxide, 9L),
+ GTOreDictUnificator.get(OrePrefixes.dust, Materials.SiliconDioxide, 6L),
+ GTOreDictUnificator.get(OrePrefixes.dust, Materials.Boron, 3),
+ GTOreDictUnificator.get(OrePrefixes.cell, Materials.Hydrogen, 1))
+ .fluidOutputs(Materials.Oxygen.getGas(1000L))
+ .duration(39 * SECONDS + 10 * TICKS)
+ .eut(TierEU.RECIPE_MV)
+ .addTo(electrolyzerRecipes);
+
+ }
+}
diff --git a/src/main/java/bartworks/common/loaders/recipes/Extractor.java b/src/main/java/bartworks/common/loaders/recipes/Extractor.java
new file mode 100644
index 0000000000..1e99259b3f
--- /dev/null
+++ b/src/main/java/bartworks/common/loaders/recipes/Extractor.java
@@ -0,0 +1,44 @@
+package bartworks.common.loaders.recipes;
+
+import static gregtech.api.enums.Mods.CropLoadCore;
+import static gregtech.api.recipe.RecipeMaps.extractorRecipes;
+import static gregtech.api.util.GTRecipeBuilder.SECONDS;
+
+import java.util.List;
+
+import net.minecraft.item.ItemStack;
+import net.minecraftforge.oredict.OreDictionary;
+
+import bartworks.common.loaders.BioItemList;
+import bartworks.util.BWUtil;
+import gregtech.api.enums.GTValues;
+import gregtech.api.enums.ItemList;
+import gregtech.api.enums.TierEU;
+
+public class Extractor implements Runnable {
+
+ @Override
+ public void run() {
+ List<ItemStack> oreCropVine = OreDictionary.getOres("cropVine", false);
+ if (CropLoadCore.isModLoaded() && !oreCropVine.isEmpty()) {
+ for (ItemStack stack : oreCropVine) {
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(BWUtil.setStackSize(stack, 12))
+ .itemOutputs(BioItemList.getOther(1))
+ .duration(25 * SECONDS)
+ .eut((int) TierEU.RECIPE_HV)
+ .addTo(extractorRecipes);
+
+ }
+ }
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(ItemList.Circuit_Chip_Stemcell.get(1L))
+ .itemOutputs(BioItemList.getOther(4))
+ .duration(25 * SECONDS)
+ .eut((int) TierEU.RECIPE_LuV)
+ .addTo(extractorRecipes);
+
+ }
+}
diff --git a/src/main/java/bartworks/common/loaders/recipes/FakeRecipes.java b/src/main/java/bartworks/common/loaders/recipes/FakeRecipes.java
new file mode 100644
index 0000000000..372100c187
--- /dev/null
+++ b/src/main/java/bartworks/common/loaders/recipes/FakeRecipes.java
@@ -0,0 +1,11 @@
+package bartworks.common.loaders.recipes;
+
+import bartworks.common.tileentities.multis.MTEHighTempGasCooledReactor;
+
+public class FakeRecipes implements Runnable {
+
+ @Override
+ public void run() {
+ MTEHighTempGasCooledReactor.HTGRMaterials.register_fake_THR_Recipes();
+ }
+}
diff --git a/src/main/java/bartworks/common/loaders/recipes/FluidHeater.java b/src/main/java/bartworks/common/loaders/recipes/FluidHeater.java
new file mode 100644
index 0000000000..cc8e3cb64a
--- /dev/null
+++ b/src/main/java/bartworks/common/loaders/recipes/FluidHeater.java
@@ -0,0 +1,26 @@
+package bartworks.common.loaders.recipes;
+
+import static gregtech.api.recipe.RecipeMaps.fluidHeaterRecipes;
+import static gregtech.api.util.GTRecipeBuilder.SECONDS;
+import static gregtech.api.util.GTRecipeBuilder.TICKS;
+
+import net.minecraftforge.fluids.FluidStack;
+
+import bartworks.common.loaders.FluidLoader;
+import gregtech.api.enums.GTValues;
+import gregtech.api.enums.TierEU;
+import gregtech.api.util.GTUtility;
+
+public class FluidHeater implements Runnable {
+
+ @Override
+ public void run() {
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTUtility.getIntegratedCircuit(10))
+ .fluidInputs(new FluidStack(FluidLoader.fulvicAcid, 1000))
+ .fluidOutputs(new FluidStack(FluidLoader.heatedfulvicAcid, 1000))
+ .duration(4 * SECONDS + 10 * TICKS)
+ .eut(TierEU.RECIPE_MV)
+ .addTo(fluidHeaterRecipes);
+ }
+}
diff --git a/src/main/java/bartworks/common/loaders/recipes/FluidSolidifier.java b/src/main/java/bartworks/common/loaders/recipes/FluidSolidifier.java
new file mode 100644
index 0000000000..22ed73dae2
--- /dev/null
+++ b/src/main/java/bartworks/common/loaders/recipes/FluidSolidifier.java
@@ -0,0 +1,102 @@
+package bartworks.common.loaders.recipes;
+
+import static gregtech.api.recipe.RecipeMaps.fluidSolidifierRecipes;
+import static gregtech.api.util.GTRecipeBuilder.SECONDS;
+
+import net.minecraft.init.Blocks;
+import net.minecraft.item.ItemStack;
+
+import bartworks.common.loaders.ItemRegistry;
+import bartworks.system.material.WerkstoffLoader;
+import gregtech.api.enums.GTValues;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.MaterialsUEVplus;
+import gregtech.api.enums.TierEU;
+
+public class FluidSolidifier implements Runnable {
+
+ @Override
+ public void run() {
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.lapis_block))
+ .itemOutputs(new ItemStack(ItemRegistry.BW_BLOCKS[0], 1, 0))
+ .fluidInputs(Materials.Iron.getMolten(1296L))
+ .duration(5 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(fluidSolidifierRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(ItemRegistry.bw_glasses[0], 1, 0))
+ .itemOutputs(new ItemStack(ItemRegistry.bw_glasses[0], 1, 1))
+ .fluidInputs(Materials.Titanium.getMolten(1152))
+ .duration(40 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(fluidSolidifierRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(ItemRegistry.bw_glasses[0], 1, 0))
+ .itemOutputs(new ItemStack(ItemRegistry.bw_glasses[0], 1, 2))
+ .fluidInputs(Materials.TungstenSteel.getMolten(1152))
+ .duration(40 * SECONDS)
+ .eut(TierEU.RECIPE_EV)
+ .addTo(fluidSolidifierRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(ItemRegistry.bw_glasses[0], 1, 0))
+ .itemOutputs(new ItemStack(ItemRegistry.bw_glasses[0], 1, 3))
+ .fluidInputs(WerkstoffLoader.LuVTierMaterial.getMolten(1152))
+ .duration(40 * SECONDS)
+ .eut(TierEU.RECIPE_IV)
+ .addTo(fluidSolidifierRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(ItemRegistry.bw_glasses[0], 1, 0))
+ .itemOutputs(new ItemStack(ItemRegistry.bw_glasses[0], 1, 4))
+ .fluidInputs(Materials.Iridium.getMolten(1152))
+ .duration(40 * SECONDS)
+ .eut(TierEU.RECIPE_LuV)
+ .addTo(fluidSolidifierRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(ItemRegistry.bw_glasses[0], 1, 0))
+ .itemOutputs(new ItemStack(ItemRegistry.bw_glasses[0], 1, 5))
+ .fluidInputs(Materials.Osmium.getMolten(1152))
+ .duration(40 * SECONDS)
+ .eut(TierEU.RECIPE_ZPM)
+ .addTo(fluidSolidifierRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(ItemRegistry.bw_glasses[0], 1, 0))
+ .itemOutputs(new ItemStack(ItemRegistry.bw_glasses[0], 1, 13))
+ .fluidInputs(Materials.Neutronium.getMolten(1152))
+ .duration(40 * SECONDS)
+ .eut(TierEU.RECIPE_UV)
+ .addTo(fluidSolidifierRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(ItemRegistry.bw_glasses[0], 1, 0))
+ .itemOutputs(new ItemStack(ItemRegistry.bw_glasses[0], 1, 14))
+ .fluidInputs(Materials.CosmicNeutronium.getMolten(1152))
+ .duration(40 * SECONDS)
+ .eut(TierEU.RECIPE_UHV)
+ .addTo(fluidSolidifierRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(ItemRegistry.bw_glasses[0], 1, 0))
+ .itemOutputs(new ItemStack(ItemRegistry.bw_glasses[0], 1, 15))
+ .fluidInputs(Materials.Infinity.getMolten(1152))
+ .duration(40 * SECONDS)
+ .eut(TierEU.RECIPE_UEV)
+ .addTo(fluidSolidifierRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(ItemRegistry.bw_glasses[0], 1, 0))
+ .itemOutputs(new ItemStack(ItemRegistry.bw_glasses[1], 1, 0))
+ .fluidInputs(MaterialsUEVplus.TranscendentMetal.getMolten(1152))
+ .duration(40 * SECONDS)
+ .eut(TierEU.RECIPE_UIV)
+ .addTo(fluidSolidifierRecipes);
+
+ }
+}
diff --git a/src/main/java/bartworks/common/loaders/recipes/FormingPress.java b/src/main/java/bartworks/common/loaders/recipes/FormingPress.java
new file mode 100644
index 0000000000..447f77e7df
--- /dev/null
+++ b/src/main/java/bartworks/common/loaders/recipes/FormingPress.java
@@ -0,0 +1,76 @@
+package bartworks.common.loaders.recipes;
+
+import static gregtech.api.recipe.RecipeMaps.formingPressRecipes;
+import static gregtech.api.util.GTRecipeBuilder.SECONDS;
+
+import net.minecraft.item.ItemStack;
+
+import bartworks.common.tileentities.multis.MTEHighTempGasCooledReactor;
+import bartworks.common.tileentities.multis.MTEThoriumHighTempReactor;
+import gregtech.api.enums.GTValues;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.TierEU;
+
+public class FormingPress implements Runnable {
+
+ @Override
+ public void run() {
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ new ItemStack(MTEThoriumHighTempReactor.THTRMaterials.aTHTR_Materials),
+ Materials.Graphite.getDust(64))
+ .itemOutputs(new ItemStack(MTEThoriumHighTempReactor.THTRMaterials.aTHTR_Materials, 1, 1))
+ .duration(2 * SECONDS)
+ .eut(TierEU.RECIPE_LV)
+ .addTo(formingPressRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ new ItemStack(MTEThoriumHighTempReactor.THTRMaterials.aTHTR_Materials, 1, 1),
+ Materials.Silicon.getDust(64))
+ .itemOutputs(new ItemStack(MTEThoriumHighTempReactor.THTRMaterials.aTHTR_Materials, 1, 2))
+ .duration(2 * SECONDS)
+ .eut(TierEU.RECIPE_LV)
+ .addTo(formingPressRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ new ItemStack(MTEThoriumHighTempReactor.THTRMaterials.aTHTR_Materials, 1, 2),
+ Materials.Graphite.getDust(64))
+ .itemOutputs(new ItemStack(MTEThoriumHighTempReactor.THTRMaterials.aTHTR_Materials, 1, 3))
+ .duration(2 * SECONDS)
+ .eut(TierEU.RECIPE_LV)
+ .addTo(formingPressRecipes);
+
+ int i = 0;
+ for (MTEHighTempGasCooledReactor.HTGRMaterials.Fuel_ fuel : MTEHighTempGasCooledReactor.HTGRMaterials.sHTGR_Fuel) {
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ new ItemStack(MTEHighTempGasCooledReactor.HTGRMaterials.aHTGR_Materials, 1, i),
+ Materials.Carbon.getDust(64))
+ .itemOutputs(new ItemStack(MTEHighTempGasCooledReactor.HTGRMaterials.aHTGR_Materials, 1, i + 1))
+ .duration(2 * SECONDS)
+ .eut(TierEU.RECIPE_LV)
+ .addTo(formingPressRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ new ItemStack(MTEHighTempGasCooledReactor.HTGRMaterials.aHTGR_Materials, 1, i + 1),
+ Materials.Silicon.getDust(64))
+ .itemOutputs(new ItemStack(MTEHighTempGasCooledReactor.HTGRMaterials.aHTGR_Materials, 1, i + 2))
+ .duration(2 * SECONDS)
+ .eut(TierEU.RECIPE_LV)
+ .addTo(formingPressRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ new ItemStack(MTEHighTempGasCooledReactor.HTGRMaterials.aHTGR_Materials, 1, i + 2),
+ Materials.Graphite.getDust(64))
+ .itemOutputs(new ItemStack(MTEHighTempGasCooledReactor.HTGRMaterials.aHTGR_Materials, 1, i + 3))
+ .duration(2 * SECONDS)
+ .eut(TierEU.RECIPE_LV)
+ .addTo(formingPressRecipes);
+ i += MTEHighTempGasCooledReactor.HTGRMaterials.MATERIALS_PER_FUEL;
+ }
+ }
+}
diff --git a/src/main/java/bartworks/common/loaders/recipes/LaserEngraver.java b/src/main/java/bartworks/common/loaders/recipes/LaserEngraver.java
new file mode 100644
index 0000000000..1983232704
--- /dev/null
+++ b/src/main/java/bartworks/common/loaders/recipes/LaserEngraver.java
@@ -0,0 +1,27 @@
+package bartworks.common.loaders.recipes;
+
+import static gregtech.api.recipe.RecipeMaps.laserEngraverRecipes;
+import static gregtech.api.util.GTRecipeBuilder.SECONDS;
+
+import net.minecraft.init.Items;
+import net.minecraft.item.ItemStack;
+
+import bartworks.common.loaders.BioItemList;
+import gregtech.api.enums.GTValues;
+import gregtech.api.enums.TierEU;
+import gregtech.api.util.GTUtility;
+
+public class LaserEngraver implements Runnable {
+
+ @Override
+ public void run() {
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(Items.emerald), GTUtility.getIntegratedCircuit(17))
+ .itemOutputs(BioItemList.getPlasmidCell(null))
+ .duration(5 * SECONDS)
+ .eut(TierEU.RECIPE_LV)
+ .addTo(laserEngraverRecipes);
+
+ }
+}
diff --git a/src/main/java/bartworks/common/loaders/recipes/Mixer.java b/src/main/java/bartworks/common/loaders/recipes/Mixer.java
new file mode 100644
index 0000000000..6f15c3773f
--- /dev/null
+++ b/src/main/java/bartworks/common/loaders/recipes/Mixer.java
@@ -0,0 +1,62 @@
+package bartworks.common.loaders.recipes;
+
+import static gregtech.api.enums.Mods.Gendustry;
+import static gregtech.api.recipe.RecipeMaps.mixerRecipes;
+import static gregtech.api.util.GTRecipeBuilder.SECONDS;
+
+import net.minecraft.item.ItemStack;
+import net.minecraftforge.fluids.FluidRegistry;
+import net.minecraftforge.fluids.FluidStack;
+
+import bartworks.common.loaders.FluidLoader;
+import bartworks.common.tileentities.multis.MTEHighTempGasCooledReactor;
+import bartworks.common.tileentities.multis.MTEThoriumHighTempReactor;
+import bartworks.system.material.WerkstoffLoader;
+import gregtech.api.enums.GTValues;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.OrePrefixes;
+import gregtech.api.enums.TierEU;
+import gregtech.api.util.GTOreDictUnificator;
+import gregtech.api.util.GTUtility;
+
+public class Mixer implements Runnable {
+
+ @Override
+ public void run() {
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ WerkstoffLoader.Thorium232.get(OrePrefixes.dust, 10),
+ Materials.Uranium235.getDust(1),
+ GTUtility.getIntegratedCircuit(2))
+ .itemOutputs(new ItemStack(MTEThoriumHighTempReactor.THTRMaterials.aTHTR_Materials))
+ .duration(20 * SECONDS)
+ .eut(TierEU.RECIPE_LV)
+ .addTo(mixerRecipes);
+
+ int i = 0;
+ for (MTEHighTempGasCooledReactor.HTGRMaterials.Fuel_ fuel : MTEHighTempGasCooledReactor.HTGRMaterials.sHTGR_Fuel) {
+ GTValues.RA.stdBuilder()
+ .itemInputs(fuel.mainItem, fuel.secondaryItem, GTUtility.getIntegratedCircuit(1))
+ .itemOutputs(new ItemStack(MTEHighTempGasCooledReactor.HTGRMaterials.aHTGR_Materials, 1, i))
+ .duration(20 * SECONDS)
+ .eut(TierEU.RECIPE_LV)
+ .addTo(mixerRecipes);
+
+ i += MTEHighTempGasCooledReactor.HTGRMaterials.MATERIALS_PER_FUEL;
+ }
+
+ if (Gendustry.isModLoaded()) {
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ GTUtility.getIntegratedCircuit(17),
+ GTOreDictUnificator.get(OrePrefixes.cell, Materials.Radon, 1L))
+ .itemOutputs(Materials.Empty.getCells(1))
+ .fluidInputs(FluidRegistry.getFluidStack("liquiddna", 1000))
+ .fluidOutputs(new FluidStack(FluidLoader.BioLabFluidMaterials[0], 2000))
+ .duration(25 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(mixerRecipes);
+ }
+
+ }
+}
diff --git a/src/main/java/bartworks/common/loaders/recipes/Pulverizer.java b/src/main/java/bartworks/common/loaders/recipes/Pulverizer.java
new file mode 100644
index 0000000000..0d0bf316a6
--- /dev/null
+++ b/src/main/java/bartworks/common/loaders/recipes/Pulverizer.java
@@ -0,0 +1,97 @@
+package bartworks.common.loaders.recipes;
+
+import static gregtech.api.recipe.RecipeMaps.maceratorRecipes;
+import static gregtech.api.util.GTRecipeBuilder.SECONDS;
+
+import net.minecraft.item.ItemStack;
+
+import bartworks.common.loaders.ItemRegistry;
+import bartworks.system.material.WerkstoffLoader;
+import gregtech.api.enums.GTValues;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.MaterialsUEVplus;
+import gregtech.api.enums.OrePrefixes;
+import gregtech.api.enums.TierEU;
+
+public class Pulverizer implements Runnable {
+
+ @Override
+ public void run() {
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(ItemRegistry.bw_glasses[0], 1, 1))
+ .itemOutputs(Materials.BorosilicateGlass.getDust(9), Materials.Titanium.getDust(8))
+ .duration(40 * SECONDS)
+ .eut(TierEU.RECIPE_EV)
+ .addTo(maceratorRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(ItemRegistry.bw_glasses[0], 1, 2))
+ .itemOutputs(Materials.BorosilicateGlass.getDust(9), Materials.TungstenSteel.getDust(8))
+ .duration(40 * SECONDS)
+ .eut(TierEU.RECIPE_IV)
+ .addTo(maceratorRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(ItemRegistry.bw_glasses[0], 1, 3))
+ .itemOutputs(
+ Materials.BorosilicateGlass.getDust(9),
+ WerkstoffLoader.LuVTierMaterial.get(OrePrefixes.dust, 8))
+ .duration(40 * SECONDS)
+ .eut(TierEU.RECIPE_LuV)
+ .addTo(maceratorRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(ItemRegistry.bw_glasses[0], 1, 4))
+ .itemOutputs(Materials.BorosilicateGlass.getDust(9), Materials.Iridium.getDust(8))
+ .duration(40 * SECONDS)
+ .eut(TierEU.RECIPE_ZPM)
+ .addTo(maceratorRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(ItemRegistry.bw_glasses[0], 1, 5))
+ .itemOutputs(Materials.BorosilicateGlass.getDust(9), Materials.Osmium.getDust(8))
+ .duration(40 * SECONDS)
+ .eut(TierEU.RECIPE_UV)
+ .addTo(maceratorRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(ItemRegistry.bw_glasses[0], 1, 13))
+ .itemOutputs(Materials.BorosilicateGlass.getDust(9), Materials.Neutronium.getDust(8))
+ .duration(40 * SECONDS)
+ .eut(TierEU.RECIPE_UHV)
+ .addTo(maceratorRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(ItemRegistry.bw_glasses[0], 1, 14))
+ .itemOutputs(Materials.BorosilicateGlass.getDust(9), Materials.CosmicNeutronium.getDust(8))
+ .duration(40 * SECONDS)
+ .eut(TierEU.RECIPE_UEV)
+ .addTo(maceratorRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(ItemRegistry.bw_glasses[0], 1, 15))
+ .itemOutputs(Materials.BorosilicateGlass.getDust(9), Materials.Infinity.getDust(8))
+ .duration(40 * SECONDS)
+ .eut(TierEU.RECIPE_UIV)
+ .addTo(maceratorRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(ItemRegistry.bw_glasses[1], 1, 0))
+ .itemOutputs(Materials.BorosilicateGlass.getDust(9), MaterialsUEVplus.TranscendentMetal.getDust(8))
+ .duration(40 * SECONDS)
+ .eut(TierEU.RECIPE_UMV)
+ .addTo(maceratorRecipes);
+
+ for (int i = 6; i < 11; i++) {
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(new ItemStack(ItemRegistry.bw_glasses[0], 1, i))
+ .itemOutputs(Materials.BorosilicateGlass.getDust(9))
+ .duration(20 * SECONDS)
+ .eut(TierEU.RECIPE_LV)
+ .addTo(maceratorRecipes);
+
+ }
+ }
+}
diff --git a/src/main/java/bartworks/common/loaders/recipes/PyrolyseOven.java b/src/main/java/bartworks/common/loaders/recipes/PyrolyseOven.java
new file mode 100644
index 0000000000..4e457ab021
--- /dev/null
+++ b/src/main/java/bartworks/common/loaders/recipes/PyrolyseOven.java
@@ -0,0 +1,27 @@
+package bartworks.common.loaders.recipes;
+
+import static gregtech.api.recipe.RecipeMaps.pyrolyseRecipes;
+import static gregtech.api.util.GTRecipeBuilder.SECONDS;
+import static gregtech.api.util.GTRecipeBuilder.TICKS;
+
+import net.minecraftforge.fluids.FluidStack;
+
+import bartworks.common.loaders.FluidLoader;
+import gregtech.api.enums.GTValues;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.TierEU;
+import gregtech.api.util.GTUtility;
+
+public class PyrolyseOven implements Runnable {
+
+ @Override
+ public void run() {
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTUtility.getIntegratedCircuit(10), Materials.Wood.getDust(10))
+ .fluidInputs(new FluidStack(FluidLoader.Kerogen, 1000))
+ .fluidOutputs(Materials.Oil.getFluid(1000))
+ .duration(5 * SECONDS + 5 * TICKS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(pyrolyseRecipes);
+ }
+}