more work on the new chemplant recipe handler

This commit is contained in:
Boblet 2022-02-15 16:51:54 +01:00
parent c990f1dd81
commit 78efaa49a1
4 changed files with 323 additions and 164 deletions

View File

@ -1,6 +1,7 @@
package com.hbm.inventory; package com.hbm.inventory;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashSet;
import java.util.List; import java.util.List;
//i love you //i love you
@ -447,6 +448,10 @@ public class OreDictManager {
return GeneralConfig.enableReflectorCompat ? "plateDenseLead" : "plateTungCar"; //let's just mangle the name into "tungCar" so that it can't conflict with anything ever return GeneralConfig.enableReflectorCompat ? "plateDenseLead" : "plateTungCar"; //let's just mangle the name into "tungCar" so that it can't conflict with anything ever
} }
public void registerGroups() {
}
public static class DictFrame { public static class DictFrame {
String[] mats; String[] mats;
float hazMult = 1.0F; float hazMult = 1.0F;
@ -612,4 +617,52 @@ public class OreDictManager {
} }
} }
} }
/*public static class DictGroup {
private String name;
private HashSet<DictFrame> frames = new HashSet();
public DictGroup(String name) {
this.name = name;
}
public DictGroup(String name, DictFrame... frames) {
this(name);
for(DictFrame frame : frames) {
this.frames.add(frame);
}
}
public DictGroup prefix(String prefix) {
String groupKey = prefix + name;
for(DictFrame frame : this.frames) {
String key = prefix + frame.mats[0];
List<ItemStack> ores = OreDictionary.getOres(key);
for(ItemStack stack : ores) {
OreDictionary.registerOre(groupKey, stack);
}
}
return this;
}
public String any() { return ANY + name; }
public String nugget() { return NUGGET + name; }
public String tiny() { return TINY + name; }
public String ingot() { return INGOT + name; }
public String dustTiny() { return DUSTTINY + name; }
public String dust() { return DUST + name; }
public String gem() { return GEM + name; }
public String crystal() { return CRYSTAL + name; }
public String plate() { return PLATE + name; }
public String billet() { return BILLET + name; }
public String block() { return BLOCK + name; }
public String ore() { return ORE + name; }
}*/
} }

View File

@ -1,9 +1,11 @@
package com.hbm.inventory.recipes; package com.hbm.inventory.recipes;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import com.hbm.blocks.ModBlocks; import com.hbm.blocks.ModBlocks;
import com.hbm.config.GeneralConfig;
import com.hbm.inventory.FluidStack; import com.hbm.inventory.FluidStack;
import static com.hbm.inventory.OreDictManager.*; import static com.hbm.inventory.OreDictManager.*;
import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.AStack;
@ -11,221 +13,307 @@ import com.hbm.inventory.RecipesCommon.ComparableStack;
import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.RecipesCommon.OreDictStack;
import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.Fluids;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.items.ItemEnums.EnumTarType;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
public class ChemplantRecipes { public class ChemplantRecipes {
/**
* Nice order: The order in which the ChemRecipe are added to the recipes list
* Meta order: Fixed using the id param, saved in indexMapping
*/
public static HashMap<Integer, ChemRecipe> indexMapping = new HashMap();
public static List<ChemRecipe> recipes = new ArrayList(); public static List<ChemRecipe> recipes = new ArrayList();
public static void register() { public static void register() {
registerFuelProcessing(); registerFuelProcessing();
registerFuelCracking(); //6-30, formerly oil cracking, coal liquefaction and solidifciation
registerCoalCracking();
registerSolidFuel();
registerOtherOil(); registerOtherOil();
recipes.add(new ChemRecipe("COOLANT", 0));
recipes.add(new ChemRecipe("CRYOGEL", 0)); recipes.add(new ChemRecipe(36, "COOLANT", 50)
recipes.add(new ChemRecipe("DESH", 0)); .inputItems(new OreDictStack(KNO.dust()))
recipes.add(new ChemRecipe("NITAN", 0)); .inputFluids(new FluidStack(Fluids.WATER, 1800))
recipes.add(new ChemRecipe("PEROXIDE", 0)); .outputFluids(new FluidStack(Fluids.COOLANT, 2000)));
recipes.add(new ChemRecipe("CIRCUIT_4", 0)); recipes.add(new ChemRecipe(37, "CRYOGEL", 50)
recipes.add(new ChemRecipe("CIRCUIT_5", 0)); .inputItems(new ComparableStack(ModItems.powder_ice))
recipes.add(new ChemRecipe("POLYMER", 0)); .inputFluids(new FluidStack(Fluids.COOLANT, 1800))
recipes.add(new ChemRecipe("DEUTERIUM", 0)); .outputFluids(new FluidStack(Fluids.CRYOGEL, 2000)));
recipes.add(new ChemRecipe("STEAM", 0)); recipes.add(new ChemRecipe(38, "DESH", 300)
recipes.add(new ChemRecipe("YELLOWCAKE", 0)); .inputItems(new ComparableStack(ModItems.powder_desh_mix))
recipes.add(new ChemRecipe("UF6", 0)); .inputFluids(
recipes.add(new ChemRecipe("PUF6", 0)); GeneralConfig.enableBabyMode ?
recipes.add(new ChemRecipe("SAS3", 0)); new FluidStack[] {new FluidStack(Fluids.LIGHTOIL, 200)} :
recipes.add(new ChemRecipe("DYN_SCHRAB", 0)); new FluidStack[] {new FluidStack(Fluids.MERCURY, 200), new FluidStack(Fluids.LIGHTOIL, 200)})
recipes.add(new ChemRecipe("DYN_EUPH", 0)); .outputItems(new ItemStack(ModItems.ingot_desh)));
recipes.add(new ChemRecipe("DYN_DNT", 0)); recipes.add(new ChemRecipe(39, "NITAN", 50)
recipes.add(new ChemRecipe("CORDITE", 0)); .inputItems(new ComparableStack(ModItems.powder_nitan_mix))
recipes.add(new ChemRecipe("KEVLAR", 0)); .inputFluids(
recipes.add(new ChemRecipe("CONCRETE", 0)); new FluidStack(Fluids.KEROSENE, 600),
recipes.add(new ChemRecipe("CONCRETE_ASBESTOS", 0)); new FluidStack(Fluids.MERCURY, 200))
recipes.add(new ChemRecipe("SOLID_FUEL", 0)); .outputFluids(new FluidStack(Fluids.NITAN, 1000)));
recipes.add(new ChemRecipe("ELECTROLYSIS", 0)); recipes.add(new ChemRecipe(40, "PEROXIDE", 50)
recipes.add(new ChemRecipe("XENON", 0)); .inputFluids(new FluidStack(Fluids.WATER, 1000))
recipes.add(new ChemRecipe("XENON_OXY", 0)); .outputFluids(new FluidStack(Fluids.ACID, 800)));
recipes.add(new ChemRecipe("SATURN", 0)); recipes.add(new ChemRecipe(41, "CIRCUIT_4", 200)
recipes.add(new ChemRecipe("BALEFIRE", 0)); .inputItems(
recipes.add(new ChemRecipe("SCHRABIDIC", 0)); new ComparableStack(ModItems.circuit_red_copper),
recipes.add(new ChemRecipe("SCHRABIDATE", 0)); new ComparableStack(ModItems.wire_gold, 4),
recipes.add(new ChemRecipe("COLTAN_CLEANING", 0)); new OreDictStack(LAPIS.dust()),
recipes.add(new ChemRecipe("COLTAN_PAIN", 0)); new OreDictStack(ANY_PLASTIC.ingot()))
recipes.add(new ChemRecipe("COLTAN_CRYSTAL", 0)); .inputFluids(new FluidStack(Fluids.ACID, 400), new FluidStack(Fluids.PETROLEUM, 200))
recipes.add(new ChemRecipe("VIT_LIQUID", 0)); .outputItems(new ItemStack(ModItems.circuit_gold)));
recipes.add(new ChemRecipe("VIT_GAS", 0)); recipes.add(new ChemRecipe(42, "CIRCUIT_5", 250)
recipes.add(new ChemRecipe("TEL", 0)); .inputItems(
recipes.add(new ChemRecipe("GASOLINE", 0)); new ComparableStack(ModItems.circuit_gold),
recipes.add(new ChemRecipe("FRACKSOL", 0)); new ComparableStack(ModItems.wire_schrabidium, 4),
recipes.add(new ChemRecipe("DUCRETE", 0)); new OreDictStack(DIAMOND.dust()),
new OreDictStack(DESH.ingot()))
.inputFluids(new FluidStack(Fluids.ACID, 800), new FluidStack(Fluids.MERCURY, 200))
.outputItems(new ItemStack(ModItems.circuit_schrabidium)));
recipes.add(new ChemRecipe(43, "POLYMER", 100)
.inputItems(
new OreDictStack(COAL.dust(), 2),
new OreDictStack(F.dust()))
.inputFluids(new FluidStack(Fluids.PETROLEUM, 600))
.outputItems(new ItemStack(ModItems.ingot_polymer)));
//44, formerly deuterium
//45, formerly steam
recipes.add(new ChemRecipe(46, "YELLOWCAKE", 250)
.inputItems(
new OreDictStack(U.billet(), 2), //TODO: that's 12 nuggets right there, check if those numbers match up
new OreDictStack(S.dust(), 2))
.inputFluids(new FluidStack(Fluids.ACID, 500))
.outputItems(new ItemStack(ModItems.powder_yellowcake)));
recipes.add(new ChemRecipe(47, "UF6", 100)
.inputItems(
new ComparableStack(ModItems.powder_yellowcake),
new OreDictStack(F.dust(), 4))
.inputFluids(new FluidStack(Fluids.WATER, 1000))
.outputItems(new ItemStack(ModItems.sulfur, 2))
.outputFluids(new FluidStack(Fluids.UF6, 1200)));
recipes.add(new ChemRecipe(48, "PUF6", 150)
.inputItems(
new OreDictStack(PU.dust()),
new OreDictStack(F.dust(), 3))
.inputFluids(new FluidStack(Fluids.WATER, 1000))
.outputFluids(new FluidStack(Fluids.PUF6, 900)));
recipes.add(new ChemRecipe(49, "SAS3", 200)
.inputItems(
new OreDictStack(SA326.dust()),
new OreDictStack(S.dust(), 2))
.inputFluids(new FluidStack(Fluids.ACID, 2000))
.outputFluids(new FluidStack(Fluids.SAS3, 1000)));
recipes.add(new ChemRecipe(50, "DYN_SCHRAB", 1200)
.inputItems(
new ComparableStack(ModItems.dynosphere_desh_charged, 3),
new OreDictStack(U.ingot()),
new ComparableStack(ModItems.catalyst_clay, 8))
.outputItems(
new ItemStack(ModItems.ingot_schrabidium),
new ItemStack(ModItems.powder_desh),
new ItemStack(ModItems.powder_desh_mix))
.outputFluids(new FluidStack(Fluids.WATZ, 50)));
recipes.add(new ChemRecipe(51, "DYN_EUPH", 3600)
.inputItems(
new ComparableStack(ModItems.dynosphere_schrabidium_charged, 1),
new OreDictStack(PU.ingot()),
new ComparableStack(ModItems.catalyst_clay, 16),
new OreDictStack(EUPH.ingot()))
.outputItems(
new ItemStack(ModItems.nugget_euphemium, 12),
new ItemStack(ModItems.powder_schrabidium, 4),
new ItemStack(ModItems.powder_power, 4))
.outputFluids(new FluidStack(Fluids.WATZ, 100)));
recipes.add(new ChemRecipe(52, "DYN_DNT", 6000)
.inputItems(
new ComparableStack(ModItems.dynosphere_euphemium_charged, 2),
new ComparableStack(ModItems.powder_spark_mix),
new ComparableStack(ModItems.ingot_starmetal),
new ComparableStack(ModItems.catalyst_clay, 32))
.outputItems(
new ItemStack(ModItems.ingot_dineutronium),
new ItemStack(ModItems.powder_euphemium, 8),
new ItemStack(ModItems.powder_nitan_mix, 8))
.outputFluids(new FluidStack(Fluids.WATZ, 150)));
recipes.add(new ChemRecipe(53, "CORDITE", 40)
.inputItems(
new OreDictStack(KNO.dust(), 2),
new OreDictStack(KEY_PLANKS),
new ComparableStack(Items.sugar))
.inputFluids(new FluidStack(Fluids.HEATINGOIL, 200))
.outputItems(new ItemStack(ModItems.cordite, 4)));
recipes.add(new ChemRecipe(54, "KEVLAR", 40)
.inputItems(
new OreDictStack(KNO.dust(), 2),
new ComparableStack(Items.brick),
new OreDictStack(COAL.dust()))
.inputFluids(new FluidStack(Fluids.PETROLEUM, 100))
.outputItems(new ItemStack(ModItems.plate_kevlar, 4)));
recipes.add(new ChemRecipe(55, "CONCRETE", 100)
.inputItems(
new ComparableStack(Blocks.gravel, 8),
new ComparableStack(Blocks.sand, 8))
.inputFluids(new FluidStack(Fluids.WATER, 2000))
.outputItems(new ItemStack(ModBlocks.concrete_smooth, 16)));
recipes.add(new ChemRecipe(56, "CONCRETE_ASBESTOS", 100)
.inputItems(
new ComparableStack(Blocks.gravel, 2),
new ComparableStack(Blocks.sand, 2),
new OreDictStack(ASBESTOS.ingot(), 4))
.inputFluids(new FluidStack(Fluids.WATER, 2000))
.outputItems(new ItemStack(ModBlocks.concrete_asbestos, 16)));
recipes.add(new ChemRecipe(79, "DUCRETE", 150)
.inputItems(
new ComparableStack(Blocks.sand, 8),
new OreDictStack(U238.billet(), 2),
new ComparableStack(Items.clay_ball, 4))
.inputFluids(new FluidStack(Fluids.WATER, 2000))
.outputItems(new ItemStack(ModBlocks.ducrete_smooth, 8)));
recipes.add(new ChemRecipe(57, "SOLID_FUEL", 200)
.inputItems(
new ComparableStack(ModItems.solid_fuel, 2),
new OreDictStack(KNO.dust()),
new OreDictStack(REDSTONE.dust()))
.inputFluids(new FluidStack(Fluids.PETROLEUM, 200))
.outputItems(new ItemStack(ModItems.rocket_fuel, 4)));
recipes.add(new ChemRecipe(58, "ELECTROLYSIS", 150)
.inputFluids(new FluidStack(Fluids.WATER, 8000))
.outputFluids(
new FluidStack(Fluids.HYDROGEN, 800),
new FluidStack(Fluids.OXYGEN, 800)));
recipes.add(new ChemRecipe(59, "XENON", 300)
.inputFluids(new FluidStack(Fluids.NONE, 0))
.outputFluids(new FluidStack(Fluids.XENON, 50)));
recipes.add(new ChemRecipe(60, "XENON_OXY", 20)
.inputFluids(new FluidStack(Fluids.OXYGEN, 250))
.outputFluids(new FluidStack(Fluids.XENON, 50)));
recipes.add(new ChemRecipe(61, "SATURN", 60)
.inputItems(
new ComparableStack(ModItems.powder_dura_steel),
new OreDictStack(P_RED.dust()))
.inputFluids(
new FluidStack(Fluids.ACID, 100),
new FluidStack(Fluids.MERCURY, 50))
.outputItems(new ItemStack(ModItems.ingot_saturnite, 2)));
recipes.add(new ChemRecipe(62, "BALEFIRE", 100)
.inputItems(new ComparableStack(ModItems.egg_balefire_shard))
.inputFluids(new FluidStack(Fluids.KEROSENE, 6000))
.outputItems(new ItemStack(ModItems.powder_balefire))
.outputFluids(new FluidStack(Fluids.BALEFIRE, 8000)));
recipes.add(new ChemRecipe(63, "SCHRABIDIC", 100)
.inputItems(new ComparableStack(ModItems.pellet_charged))
.inputFluids(
new FluidStack(Fluids.SAS3, 8000),
new FluidStack(Fluids.ACID, 6000))
.outputFluids(new FluidStack(Fluids.SCHRABIDIC, 16000)));
recipes.add(new ChemRecipe(64, "SCHRABIDATE", 150)
.inputItems(new OreDictStack(IRON.dust()))
.inputFluids(new FluidStack(Fluids.SCHRABIDIC, 250))
.outputItems(new ItemStack(ModItems.powder_schrabidate)));
recipes.add(new ChemRecipe(65, "COLTAN_CLEANING", 60)
.inputItems(
new OreDictStack(COLTAN.dust(), 2),
new OreDictStack(COAL.dust()))
.inputFluids(
new FluidStack(Fluids.ACID, 250),
new FluidStack(Fluids.HYDROGEN, 500))
.outputItems(
new ItemStack(ModItems.powder_coltan),
new ItemStack(ModItems.powder_niobium),
new ItemStack(ModItems.dust))
.outputFluids(new FluidStack(Fluids.WATER, 500)));
recipes.add(new ChemRecipe(66, "COLTAN_PAIN", 120)
.inputItems(
new ComparableStack(ModItems.powder_coltan),
new OreDictStack(F.dust()))
.inputFluids(
new FluidStack(Fluids.GAS, 1000),
new FluidStack(Fluids.OXYGEN, 500))
.outputFluids(new FluidStack(Fluids.PAIN, 1000)));
recipes.add(new ChemRecipe(67, "COLTAN_CRYSTAL", 80)
.inputFluids(
new FluidStack(Fluids.PAIN, 1000),
new FluidStack(Fluids.ACID, 500))
.outputItems(
new ItemStack(ModItems.gem_tantalium),
new ItemStack(ModItems.dust, 3))
.outputFluids(new FluidStack(Fluids.WATER, 250)));
recipes.add(new ChemRecipe(68, "VIT_LIQUID", 100));
recipes.add(new ChemRecipe(69, "VIT_GAS", 100));
recipes.add(new ChemRecipe(70, "TEL", 40));
recipes.add(new ChemRecipe(71, "GASOLINE", 40));
recipes.add(new ChemRecipe(72, "FRACKSOL", 20));
recipes.add(new ChemRecipe(73, "HELIUM3", 200));
recipes.add(new ChemRecipe(74, "OSMIRIDIUM_DEATH", 240));
recipes.add(new ChemRecipe(75, "ETHANOL", 50));
recipes.add(new ChemRecipe(76, "METH", 30));
recipes.add(new ChemRecipe(77, "CO2", 60));
recipes.add(new ChemRecipe(78, "HEAVY_ELECTROLYSIS", 150));
} }
public static void registerFuelProcessing() { public static void registerFuelProcessing() {
recipes.add(new ChemRecipe("FP_HEAVYOIL", 50) recipes.add(new ChemRecipe(0, "FP_HEAVYOIL", 50)
.inputFluids(new FluidStack(1000, Fluids.HEAVYOIL)) .inputFluids(new FluidStack(1000, Fluids.HEAVYOIL))
.outputFluids( .outputFluids(
new FluidStack(RefineryRecipes.heavy_frac_bitu * 10, Fluids.BITUMEN), new FluidStack(RefineryRecipes.heavy_frac_bitu * 10, Fluids.BITUMEN),
new FluidStack(RefineryRecipes.heavy_frac_smear * 10, Fluids.SMEAR) new FluidStack(RefineryRecipes.heavy_frac_smear * 10, Fluids.SMEAR)
)); ));
recipes.add(new ChemRecipe("FP_SMEAR", 50) recipes.add(new ChemRecipe(1, "FP_SMEAR", 50)
.inputFluids(new FluidStack(1000, Fluids.SMEAR)) .inputFluids(new FluidStack(1000, Fluids.SMEAR))
.outputFluids( .outputFluids(
new FluidStack(RefineryRecipes.smear_frac_heat * 10, Fluids.HEATINGOIL), new FluidStack(RefineryRecipes.smear_frac_heat * 10, Fluids.HEATINGOIL),
new FluidStack(RefineryRecipes.smear_frac_lube * 10, Fluids.LUBRICANT) new FluidStack(RefineryRecipes.smear_frac_lube * 10, Fluids.LUBRICANT)
)); ));
recipes.add(new ChemRecipe("FP_NAPHTHA", 50) recipes.add(new ChemRecipe(2, "FP_NAPHTHA", 50)
.inputFluids(new FluidStack(1000, Fluids.NAPHTHA)) .inputFluids(new FluidStack(1000, Fluids.NAPHTHA))
.outputFluids( .outputFluids(
new FluidStack(RefineryRecipes.napht_frac_heat * 10, Fluids.HEATINGOIL), new FluidStack(RefineryRecipes.napht_frac_heat * 10, Fluids.HEATINGOIL),
new FluidStack(RefineryRecipes.napht_frac_diesel * 10, Fluids.DIESEL) new FluidStack(RefineryRecipes.napht_frac_diesel * 10, Fluids.DIESEL)
)); ));
recipes.add(new ChemRecipe("FP_LIGHTOIL", 50) recipes.add(new ChemRecipe(3, "FP_LIGHTOIL", 50)
.inputFluids(new FluidStack(1000, Fluids.LIGHTOIL)) .inputFluids(new FluidStack(1000, Fluids.LIGHTOIL))
.outputFluids( .outputFluids(
new FluidStack(RefineryRecipes.light_frac_diesel * 10, Fluids.DIESEL), new FluidStack(RefineryRecipes.light_frac_diesel * 10, Fluids.DIESEL),
new FluidStack(RefineryRecipes.light_frac_kero * 10, Fluids.KEROSENE) new FluidStack(RefineryRecipes.light_frac_kero * 10, Fluids.KEROSENE)
)); ));
recipes.add(new ChemRecipe("FR_REOIL", 30) recipes.add(new ChemRecipe(4, "FR_REOIL", 30)
.inputFluids(new FluidStack(1000, Fluids.SMEAR)) .inputFluids(new FluidStack(1000, Fluids.SMEAR))
.outputFluids(new FluidStack(800, Fluids.RECLAIMED))); .outputFluids(new FluidStack(800, Fluids.RECLAIMED)));
recipes.add(new ChemRecipe("FR_PETROIL", 30) recipes.add(new ChemRecipe(5, "FR_PETROIL", 30)
.inputFluids( .inputFluids(
new FluidStack(800, Fluids.RECLAIMED), new FluidStack(800, Fluids.RECLAIMED),
new FluidStack(200, Fluids.LUBRICANT)) new FluidStack(200, Fluids.LUBRICANT))
.outputFluids(new FluidStack(1000, Fluids.PETROIL))); .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() { public static void registerOtherOil() {
recipes.add(new ChemRecipe("BP_BIOGAS", 200) recipes.add(new ChemRecipe(31, "BP_BIOGAS", 200)
.inputItems(new ComparableStack(ModItems.biomass, 16)) .inputItems(new ComparableStack(ModItems.biomass, 16))
.outputFluids(new FluidStack(4000, Fluids.BIOGAS))); .outputFluids(new FluidStack(4000, Fluids.BIOGAS)));
recipes.add(new ChemRecipe("BP_BIOFUEL", 100) recipes.add(new ChemRecipe(32, "BP_BIOFUEL", 100)
.inputFluids(new FluidStack(2000, Fluids.BIOGAS)) .inputFluids(new FluidStack(2000, Fluids.BIOGAS))
.outputFluids(new FluidStack(1000, Fluids.BIOFUEL))); .outputFluids(new FluidStack(1000, Fluids.BIOFUEL)));
recipes.add(new ChemRecipe("LPG", 100) recipes.add(new ChemRecipe(33, "LPG", 100)
.inputFluids(new FluidStack(2000, Fluids.PETROLEUM)) .inputFluids(new FluidStack(2000, Fluids.PETROLEUM))
.outputFluids(new FluidStack(1000, Fluids.LPG))); .outputFluids(new FluidStack(1000, Fluids.LPG)));
recipes.add(new ChemRecipe("OIL_SAND", 200) recipes.add(new ChemRecipe(34, "OIL_SAND", 200)
.inputItems(new ComparableStack(ModBlocks.ore_oil_sand, 16), new OreDictStack(ANY_TAR.any(), 1)) .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)) .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))); .outputFluids(new FluidStack(1000, Fluids.BITUMEN)));
recipes.add(new ChemRecipe("ASPHALT", 100) recipes.add(new ChemRecipe(35, "ASPHALT", 100)
.inputItems(new ComparableStack(Blocks.gravel, 2), new ComparableStack(Blocks.sand, 6)) .inputItems(new ComparableStack(Blocks.gravel, 2), new ComparableStack(Blocks.sand, 6))
.inputFluids(new FluidStack(1000, Fluids.BITUMEN)) .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))); .outputItems(new ItemStack(ModBlocks.asphalt, 16)));
} }
public static class ChemRecipe { public static class ChemRecipe {
private int id;
public String name; public String name;
private AStack[] inputs; private AStack[] inputs;
private FluidStack[] inputFluids; private FluidStack[] inputFluids;
@ -233,7 +321,8 @@ public class ChemplantRecipes {
private FluidStack[] outputFluids; private FluidStack[] outputFluids;
private int duration; private int duration;
public ChemRecipe(String name, int duration) { public ChemRecipe(int index, String name, int duration) {
this.id = index;
this.name = name; this.name = name;
this.duration = duration; this.duration = duration;
@ -241,6 +330,12 @@ public class ChemplantRecipes {
this.outputs = new ItemStack[4]; this.outputs = new ItemStack[4];
this.inputFluids = new FluidStack[2]; this.inputFluids = new FluidStack[2];
this.outputFluids = new FluidStack[2]; this.outputFluids = new FluidStack[2];
if(!indexMapping.containsKey(id)) {
indexMapping.put(id, this);
} else {
throw new IllegalStateException("Chemical plant recipe " + name + " has been registered with duplicate id " + id + " used by " + indexMapping.get(id).name + "!");
}
} }
public ChemRecipe inputItems(AStack... in) { public ChemRecipe inputItems(AStack... in) {
@ -262,5 +357,13 @@ public class ChemplantRecipes {
for(int i = 0; i < out.length; i++) this.outputFluids[i] = out[i]; for(int i = 0; i < out.length; i++) this.outputFluids[i] = out[i];
return this; return this;
} }
public int getId() {
return this.id;
}
public int getDuration() {
return this.duration;
}
} }
} }

View File

@ -30,7 +30,7 @@ public class ItemChemistryTemplate extends Item {
//SF - Solid Fuel Production //SF - Solid Fuel Production
//BP - Biofuel Production //BP - Biofuel Production
FP_HEAVYOIL, FP_HEAVYOIL, //0
FP_SMEAR, FP_SMEAR,
FP_NAPHTHA, FP_NAPHTHA,
FP_LIGHTOIL, FP_LIGHTOIL,
@ -40,7 +40,7 @@ public class ItemChemistryTemplate extends Item {
FC_I_NAPHTHA(true), FC_I_NAPHTHA(true),
FC_GAS_PETROLEUM(true), FC_GAS_PETROLEUM(true),
FC_DIESEL_KEROSENE(true), FC_DIESEL_KEROSENE(true),
FC_KEROSENE_PETROLEUM(true), FC_KEROSENE_PETROLEUM(true), //10
CC_OIL(true), CC_OIL(true),
CC_I(true), CC_I(true),
CC_HEATING(true), CC_HEATING(true),
@ -50,7 +50,7 @@ public class ItemChemistryTemplate extends Item {
SF_HEAVYOIL(true), SF_HEAVYOIL(true),
SF_SMEAR(true), SF_SMEAR(true),
SF_HEATINGOIL(true), SF_HEATINGOIL(true),
SF_RECLAIMED(true), SF_RECLAIMED(true), //20
SF_PETROIL(true), SF_PETROIL(true),
SF_LUBRICANT(true), SF_LUBRICANT(true),
SF_NAPHTHA(true), SF_NAPHTHA(true),
@ -60,7 +60,7 @@ public class ItemChemistryTemplate extends Item {
SF_GAS(true), SF_GAS(true),
SF_PETROLEUM(true), SF_PETROLEUM(true),
SF_BIOGAS(true), SF_BIOGAS(true),
SF_BIOFUEL(true), SF_BIOFUEL(true), //30
BP_BIOGAS, BP_BIOGAS,
BP_BIOFUEL, BP_BIOFUEL,
LPG, LPG,
@ -70,7 +70,7 @@ public class ItemChemistryTemplate extends Item {
CRYOGEL, CRYOGEL,
DESH, DESH,
NITAN, NITAN,
PEROXIDE, PEROXIDE, //40
CIRCUIT_4, CIRCUIT_4,
CIRCUIT_5, CIRCUIT_5,
POLYMER, POLYMER,
@ -80,7 +80,7 @@ public class ItemChemistryTemplate extends Item {
UF6, UF6,
PUF6, PUF6,
SAS3, SAS3,
DYN_SCHRAB, DYN_SCHRAB, //50
DYN_EUPH, DYN_EUPH,
DYN_DNT, DYN_DNT,
CORDITE, CORDITE,
@ -90,7 +90,7 @@ public class ItemChemistryTemplate extends Item {
SOLID_FUEL, SOLID_FUEL,
ELECTROLYSIS, ELECTROLYSIS,
XENON, XENON,
XENON_OXY, XENON_OXY, //60
SATURN, SATURN,
BALEFIRE, BALEFIRE,
SCHRABIDIC, SCHRABIDIC,
@ -100,7 +100,7 @@ public class ItemChemistryTemplate extends Item {
COLTAN_CRYSTAL, COLTAN_CRYSTAL,
VIT_LIQUID, VIT_LIQUID,
VIT_GAS, VIT_GAS,
TEL, TEL, //70
GASOLINE, GASOLINE,
FRACKSOL, FRACKSOL,
HELIUM3, HELIUM3,

View File

@ -984,6 +984,9 @@ public class MainRegistry {
SchistStratum schist = new SchistStratum(); SchistStratum schist = new SchistStratum();
MinecraftForge.EVENT_BUS.register(schist); //DecorateBiomeEvent.Pre MinecraftForge.EVENT_BUS.register(schist); //DecorateBiomeEvent.Pre
OreDictManager oreMan = new OreDictManager();
MinecraftForge.EVENT_BUS.register(oreMan); //OreRegisterEvent
PacketDispatcher.registerPackets(); PacketDispatcher.registerPackets();
ChunkRadiationManager radiationSystem = new ChunkRadiationManager(); ChunkRadiationManager radiationSystem = new ChunkRadiationManager();