267 lines
12 KiB
Java

package com.hbm.inventory.recipes;
import java.util.ArrayList;
import java.util.List;
import com.hbm.blocks.ModBlocks;
import com.hbm.inventory.FluidStack;
import static com.hbm.inventory.OreDictManager.*;
import com.hbm.inventory.RecipesCommon.AStack;
import com.hbm.inventory.RecipesCommon.ComparableStack;
import com.hbm.inventory.RecipesCommon.OreDictStack;
import com.hbm.inventory.fluid.Fluids;
import com.hbm.items.ModItems;
import com.hbm.items.ItemEnums.EnumTarType;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
public class ChemplantRecipes {
public static List<ChemRecipe> recipes = new ArrayList();
public static void register() {
registerFuelProcessing();
registerFuelCracking();
registerCoalCracking();
registerSolidFuel();
registerOtherOil();
recipes.add(new ChemRecipe("COOLANT", 0));
recipes.add(new ChemRecipe("CRYOGEL", 0));
recipes.add(new ChemRecipe("DESH", 0));
recipes.add(new ChemRecipe("NITAN", 0));
recipes.add(new ChemRecipe("PEROXIDE", 0));
recipes.add(new ChemRecipe("CIRCUIT_4", 0));
recipes.add(new ChemRecipe("CIRCUIT_5", 0));
recipes.add(new ChemRecipe("POLYMER", 0));
recipes.add(new ChemRecipe("DEUTERIUM", 0));
recipes.add(new ChemRecipe("STEAM", 0));
recipes.add(new ChemRecipe("YELLOWCAKE", 0));
recipes.add(new ChemRecipe("UF6", 0));
recipes.add(new ChemRecipe("PUF6", 0));
recipes.add(new ChemRecipe("SAS3", 0));
recipes.add(new ChemRecipe("DYN_SCHRAB", 0));
recipes.add(new ChemRecipe("DYN_EUPH", 0));
recipes.add(new ChemRecipe("DYN_DNT", 0));
recipes.add(new ChemRecipe("CORDITE", 0));
recipes.add(new ChemRecipe("KEVLAR", 0));
recipes.add(new ChemRecipe("CONCRETE", 0));
recipes.add(new ChemRecipe("CONCRETE_ASBESTOS", 0));
recipes.add(new ChemRecipe("SOLID_FUEL", 0));
recipes.add(new ChemRecipe("ELECTROLYSIS", 0));
recipes.add(new ChemRecipe("XENON", 0));
recipes.add(new ChemRecipe("XENON_OXY", 0));
recipes.add(new ChemRecipe("SATURN", 0));
recipes.add(new ChemRecipe("BALEFIRE", 0));
recipes.add(new ChemRecipe("SCHRABIDIC", 0));
recipes.add(new ChemRecipe("SCHRABIDATE", 0));
recipes.add(new ChemRecipe("COLTAN_CLEANING", 0));
recipes.add(new ChemRecipe("COLTAN_PAIN", 0));
recipes.add(new ChemRecipe("COLTAN_CRYSTAL", 0));
recipes.add(new ChemRecipe("VIT_LIQUID", 0));
recipes.add(new ChemRecipe("VIT_GAS", 0));
recipes.add(new ChemRecipe("TEL", 0));
recipes.add(new ChemRecipe("GASOLINE", 0));
recipes.add(new ChemRecipe("FRACKSOL", 0));
recipes.add(new ChemRecipe("DUCRETE", 0));
}
public static void registerFuelProcessing() {
recipes.add(new ChemRecipe("FP_HEAVYOIL", 50)
.inputFluids(new FluidStack(1000, Fluids.HEAVYOIL))
.outputFluids(
new FluidStack(RefineryRecipes.heavy_frac_bitu * 10, Fluids.BITUMEN),
new FluidStack(RefineryRecipes.heavy_frac_smear * 10, Fluids.SMEAR)
));
recipes.add(new ChemRecipe("FP_SMEAR", 50)
.inputFluids(new FluidStack(1000, Fluids.SMEAR))
.outputFluids(
new FluidStack(RefineryRecipes.smear_frac_heat * 10, Fluids.HEATINGOIL),
new FluidStack(RefineryRecipes.smear_frac_lube * 10, Fluids.LUBRICANT)
));
recipes.add(new ChemRecipe("FP_NAPHTHA", 50)
.inputFluids(new FluidStack(1000, Fluids.NAPHTHA))
.outputFluids(
new FluidStack(RefineryRecipes.napht_frac_heat * 10, Fluids.HEATINGOIL),
new FluidStack(RefineryRecipes.napht_frac_diesel * 10, Fluids.DIESEL)
));
recipes.add(new ChemRecipe("FP_LIGHTOIL", 50)
.inputFluids(new FluidStack(1000, Fluids.LIGHTOIL))
.outputFluids(
new FluidStack(RefineryRecipes.light_frac_diesel * 10, Fluids.DIESEL),
new FluidStack(RefineryRecipes.light_frac_kero * 10, Fluids.KEROSENE)
));
recipes.add(new ChemRecipe("FR_REOIL", 30)
.inputFluids(new FluidStack(1000, Fluids.SMEAR))
.outputFluids(new FluidStack(800, Fluids.RECLAIMED)));
recipes.add(new ChemRecipe("FR_PETROIL", 30)
.inputFluids(
new FluidStack(800, Fluids.RECLAIMED),
new FluidStack(200, Fluids.LUBRICANT))
.outputFluids(new FluidStack(1000, Fluids.PETROIL)));
}
public static void registerFuelCracking() {
recipes.add(new ChemRecipe("FC_BITUMEN", 100)
.inputFluids(
new FluidStack(1200, Fluids.BITUMEN),
new FluidStack(2400, Fluids.STEAM))
.outputFluids(
new FluidStack(1000, Fluids.OIL),
new FluidStack(200, Fluids.PETROLEUM)));
recipes.add(new ChemRecipe("FC_I_NAPHTHA", 150)
.inputFluids(
new FluidStack(1400, Fluids.SMEAR),
new FluidStack(800, Fluids.WATER))
.outputFluids(new FluidStack(800, Fluids.NAPHTHA)));
recipes.add(new ChemRecipe("FC_GAS_PETROLEUM", 100)
.inputFluids(
new FluidStack(1800, Fluids.GAS),
new FluidStack(1200, Fluids.WATER))
.outputFluids(new FluidStack(800, Fluids.PETROLEUM)));
recipes.add(new ChemRecipe("FC_DIESEL_KEROSENE", 150)
.inputFluids(
new FluidStack(1200, Fluids.DIESEL),
new FluidStack(2000, Fluids.STEAM))
.outputFluids(new FluidStack(400, Fluids.KEROSENE)));
recipes.add(new ChemRecipe("FC_KEROSENE_PETROLEUM", 150)
.inputFluids(
new FluidStack(1400, Fluids.KEROSENE),
new FluidStack(2000, Fluids.STEAM))
.outputFluids(new FluidStack(800, Fluids.PETROLEUM)));
}
public static void registerCoalCracking() {
recipes.add(new ChemRecipe("CC_OIL", 150)
.inputItems(new OreDictStack(COAL.dust(), 8), new OreDictStack(ANY_TAR.any(), 4))
.inputFluids(new FluidStack(1400, Fluids.STEAM))
.outputFluids(new FluidStack(2000, Fluids.OIL)));
recipes.add(new ChemRecipe("CC_I", 200)
.inputItems(new OreDictStack(COAL.dust(), 6), new OreDictStack(ANY_TAR.any(), 4))
.inputFluids(new FluidStack(1800, Fluids.WATER))
.outputFluids(new FluidStack(1600, Fluids.SMEAR)));
recipes.add(new ChemRecipe("CC_HEATING", 250)
.inputItems(new OreDictStack(COAL.dust(), 6), new OreDictStack(ANY_TAR.any(), 4))
.inputFluids(new FluidStack(2000, Fluids.STEAM))
.outputFluids(new FluidStack(1800, Fluids.HEATINGOIL)));
recipes.add(new ChemRecipe("CC_HEAVY", 200)
.inputItems(new OreDictStack(COAL.dust(), 8), new OreDictStack(ANY_TAR.any(), 4))
.inputFluids(new FluidStack(1400, Fluids.WATER))
.outputFluids(new FluidStack(1800, Fluids.HEAVYOIL)));
recipes.add(new ChemRecipe("CC_NAPHTHA", 300)
.inputItems(new OreDictStack(COAL.dust(), 8), new OreDictStack(ANY_TAR.any(), 4))
.inputFluids(new FluidStack(2400, Fluids.STEAM))
.outputFluids(new FluidStack(2000, Fluids.NAPHTHA)));
}
public static void registerSolidFuel() {
recipes.add(new ChemRecipe("SF_OIL", 20)
.inputFluids(new FluidStack(350, Fluids.OIL))
.outputItems(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE), DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE)));
recipes.add(new ChemRecipe("SF_HEAVYOIL", 20)
.inputFluids(new FluidStack(250, Fluids.HEAVYOIL))
.outputItems(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE), DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE)));
recipes.add(new ChemRecipe("SF_SMEAR", 20)
.inputFluids(new FluidStack(200, Fluids.SMEAR))
.outputItems(new ItemStack(ModItems.solid_fuel, 1), new ItemStack(ModItems.solid_fuel, 1)));
recipes.add(new ChemRecipe("SF_HEATINGOIL", 20)
.inputFluids(new FluidStack(100, Fluids.HEATINGOIL))
.outputItems(new ItemStack(ModItems.solid_fuel, 1), new ItemStack(ModItems.solid_fuel, 1)));
recipes.add(new ChemRecipe("SF_RECLAIMED", 20)
.inputFluids(new FluidStack(200, Fluids.RECLAIMED))
.outputItems(new ItemStack(ModItems.solid_fuel, 1), new ItemStack(ModItems.solid_fuel, 1)));
recipes.add(new ChemRecipe("SF_PETROIL", 20)
.inputFluids(new FluidStack(250, Fluids.PETROIL))
.outputItems(new ItemStack(ModItems.solid_fuel, 1), new ItemStack(ModItems.solid_fuel, 1)));
recipes.add(new ChemRecipe("SF_LUBRICANT", 20)
.inputFluids(new FluidStack(250, Fluids.LUBRICANT))
.outputItems(new ItemStack(ModItems.solid_fuel, 1), new ItemStack(ModItems.solid_fuel, 1)));
recipes.add(new ChemRecipe("SF_NAPHTHA", 20)
.inputFluids(new FluidStack(300, Fluids.NAPHTHA))
.outputItems(new ItemStack(ModItems.solid_fuel, 1), new ItemStack(ModItems.solid_fuel, 1)));
recipes.add(new ChemRecipe("SF_DIESEL", 20)
.inputFluids(new FluidStack(400, Fluids.DIESEL))
.outputItems(new ItemStack(ModItems.solid_fuel, 1), new ItemStack(ModItems.solid_fuel, 1)));
recipes.add(new ChemRecipe("SF_LIGHTOIL", 20)
.inputFluids(new FluidStack(450, Fluids.LIGHTOIL))
.outputItems(new ItemStack(ModItems.solid_fuel, 1), new ItemStack(ModItems.solid_fuel, 1)));
recipes.add(new ChemRecipe("SF_KEROSENE", 20)
.inputFluids(new FluidStack(550, Fluids.KEROSENE))
.outputItems(new ItemStack(ModItems.solid_fuel, 1), new ItemStack(ModItems.solid_fuel, 1)));
recipes.add(new ChemRecipe("SF_GAS", 20)
.inputFluids(new FluidStack(750, Fluids.GAS))
.outputItems(new ItemStack(ModItems.solid_fuel, 1), new ItemStack(ModItems.solid_fuel, 1)));
recipes.add(new ChemRecipe("SF_PETROLEUM", 20)
.inputFluids(new FluidStack(600, Fluids.PETROLEUM))
.outputItems(new ItemStack(ModItems.solid_fuel, 1), new ItemStack(ModItems.solid_fuel, 1)));
recipes.add(new ChemRecipe("SF_BIOGAS", 20)
.inputFluids(new FluidStack(3500, Fluids.BIOGAS))
.outputItems(new ItemStack(ModItems.solid_fuel, 1), new ItemStack(ModItems.solid_fuel, 1)));
recipes.add(new ChemRecipe("SF_BIOFUEL", 20)
.inputFluids(new FluidStack(1500, Fluids.BIOFUEL))
.outputItems(new ItemStack(ModItems.solid_fuel, 1), new ItemStack(ModItems.solid_fuel, 1)));;
}
public static void registerOtherOil() {
recipes.add(new ChemRecipe("BP_BIOGAS", 200)
.inputItems(new ComparableStack(ModItems.biomass, 16))
.outputFluids(new FluidStack(4000, Fluids.BIOGAS)));
recipes.add(new ChemRecipe("BP_BIOFUEL", 100)
.inputFluids(new FluidStack(2000, Fluids.BIOGAS))
.outputFluids(new FluidStack(1000, Fluids.BIOFUEL)));
recipes.add(new ChemRecipe("LPG", 100)
.inputFluids(new FluidStack(2000, Fluids.PETROLEUM))
.outputFluids(new FluidStack(1000, Fluids.LPG)));
recipes.add(new ChemRecipe("OIL_SAND", 200)
.inputItems(new ComparableStack(ModBlocks.ore_oil_sand, 16), new OreDictStack(ANY_TAR.any(), 1))
.outputItems(new ItemStack(Blocks.sand, 4), new ItemStack(Blocks.sand, 4), new ItemStack(Blocks.sand, 4), new ItemStack(Blocks.sand, 4))
.outputFluids(new FluidStack(1000, Fluids.BITUMEN)));
recipes.add(new ChemRecipe("ASPHALT", 100)
.inputItems(new ComparableStack(Blocks.gravel, 2), new ComparableStack(Blocks.sand, 6))
.inputFluids(new FluidStack(1000, Fluids.BITUMEN))
.outputItems(new ItemStack(ModBlocks.asphalt, 4), new ItemStack(ModBlocks.asphalt, 4), new ItemStack(ModBlocks.asphalt, 4), new ItemStack(ModBlocks.asphalt, 4)));
}
public static class ChemRecipe {
public String name;
private AStack[] inputs;
private FluidStack[] inputFluids;
private ItemStack[] outputs;
private FluidStack[] outputFluids;
private int duration;
public ChemRecipe(String name, int duration) {
this.name = name;
this.duration = duration;
this.inputs = new AStack[4];
this.outputs = new ItemStack[4];
this.inputFluids = new FluidStack[2];
this.outputFluids = new FluidStack[2];
}
public ChemRecipe inputItems(AStack... in) {
for(int i = 0; i < in.length; i++) this.inputs[i] = in[i];
return this;
}
public ChemRecipe inputFluids(FluidStack... in) {
for(int i = 0; i < in.length; i++) this.inputFluids[i] = in[i];
return this;
}
public ChemRecipe outputItems(ItemStack... out) {
for(int i = 0; i < out.length; i++) this.outputs[i] = out[i];
return this;
}
public ChemRecipe outputFluids(FluidStack... out) {
for(int i = 0; i < out.length; i++) this.outputFluids[i] = out[i];
return this;
}
}
}