Added a Recipe Map for Primitive Blast Furnaces

The Recipe Map is not yet in use.
This commit is contained in:
Johannes Gäßler 2017-06-10 11:05:27 +02:00
parent 6d15192990
commit 7982374b38
5 changed files with 71 additions and 1 deletions

View file

@ -10,6 +10,7 @@ import gregtech.api.interfaces.ISubTagContainer;
import gregtech.api.objects.GT_FluidStack;
import gregtech.api.objects.MaterialStack;
import gregtech.api.util.GT_ModHandler;
import gregtech.api.util.GT_OreDictUnificator;
import gregtech.api.util.GT_Utility;
import gregtech.loaders.materialprocessing.ProcessingConfig;
import gregtech.loaders.materialprocessing.ProcessingModSupport;
@ -1888,4 +1889,29 @@ public class Materials implements IColorModulationContainer, ISubTagContainer {
}
public static volatile int VERSION = 509;
public ItemStack getCells(int amount){
return GT_OreDictUnificator.get(OrePrefixes.cell, this, amount);
}
public ItemStack getDust(int amount){
return GT_OreDictUnificator.get(OrePrefixes.dust, this, amount);
}
public ItemStack getDustSmall(int amount){
return GT_OreDictUnificator.get(OrePrefixes.dustSmall, this, amount);
}
public ItemStack getDustTiny(int amount){
return GT_OreDictUnificator.get(OrePrefixes.dustTiny, this, amount);
}
public ItemStack getGems(int amount){
return GT_OreDictUnificator.get(OrePrefixes.gem, this, amount);
}
public ItemStack getIngots(int amount){
return GT_OreDictUnificator.get(OrePrefixes.ingot, this, amount);
}
}

View file

@ -146,6 +146,18 @@ public interface IGT_RecipeAdder {
*/
public boolean addBlastRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput1, ItemStack aOutput2, int aDuration, int aEUt, int aLevel);
/**
* Adds a Blast Furnace Recipe
*
* @param aInput1 must be != null if aInput2 == null
* @param aInput2 must be != null if aInput1 == null
* @param aCoalAmount must be > 0
* @param aOutput1 must be != null if aOutput2 == null
* @param aOutput2 must be != null if aOutput1 == null
* @param aDuration must be > 0
*/
public boolean addPrimitiveBlastRecipe(ItemStack aInput1, ItemStack aInput2, int aCoalAmount, ItemStack aOutput1, ItemStack aOutput2, int aDuration);
/**
* Adds a Canning Machine Recipe
*

View file

@ -517,6 +517,7 @@ public class GT_Recipe implements Comparable<GT_Recipe> {
public static final GT_Recipe_Map sCentrifugeRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(1000), "gt.recipe.centrifuge", "Centrifuge", null, RES_PATH_GUI + "basicmachines/Centrifuge", 2, 6, 0, 0, 1, E, 1, E, true, true);
public static final GT_Recipe_Map sElectrolyzerRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(200), "gt.recipe.electrolyzer", "Electrolyzer", null, RES_PATH_GUI + "basicmachines/Electrolyzer", 2, 6, 0, 0, 1, E, 1, E, true, true);
public static final GT_Recipe_Map sBlastRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(500), "gt.recipe.blastfurnace", "Blast Furnace", null, RES_PATH_GUI + "basicmachines/Default", 2, 2, 1, 0, 1, "Heat Capacity: ", 1, " K", false, true);
public static final GT_Recipe_Map sPrimitiveBlastRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(500), "gt.recipe.primitiveblastfurnace", "Primitive Blast Furnace", null, RES_PATH_GUI + "basicmachines/Default", 3, 3, 1, 0, 1, E, 1, E, false, true);
public static final GT_Recipe_Map sImplosionRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(50), "gt.recipe.implosioncompressor", "Implosion Compressor", null, RES_PATH_GUI + "basicmachines/Default", 2, 2, 2, 0, 1, E, 1, E, true, true);
public static final GT_Recipe_Map sVacuumRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(100), "gt.recipe.vacuumfreezer", "Vacuum Freezer", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 1, 0, 1, E, 1, E, true, true);
public static final GT_Recipe_Map sChemicalRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(100), "gt.recipe.chemicalreactor", "Chemical Reactor", null, RES_PATH_GUI + "basicmachines/ChemicalReactor", 2, 1, 1, 0, 1, E, 1, E, true, true);

View file

@ -1,5 +1,6 @@
package gregtech.common;
import cpw.mods.fml.common.Loader;
import gregtech.GT_Mod;
import gregtech.api.GregTech_API;
import gregtech.api.enums.ItemList;
@ -10,6 +11,7 @@ import gregtech.api.util.GT_ModHandler;
import gregtech.api.util.GT_OreDictUnificator;
import gregtech.api.util.GT_Recipe;
import gregtech.api.util.GT_Recipe.GT_Recipe_AssemblyLine;
import mods.railcraft.common.items.RailcraftToolItems;
import gregtech.api.util.GT_Utility;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
@ -122,6 +124,26 @@ public class GT_RecipeAdder
return true;
}
public boolean addPrimitiveBlastRecipe(ItemStack aInput1, ItemStack aInput2, int aCoalAmount, ItemStack aOutput1, ItemStack aOutput2, int aDuration) {
if ((aInput1 == null && aInput2 == null) || (aOutput1 == null && aOutput2 == null)) {
return false;
}
if (aCoalAmount <= 0) {
return false;
}
if ((aDuration = GregTech_API.sRecipeFile.get("primitiveblastfurnace", aInput1, aDuration)) <= 0) {
return false;
}
ItemStack[] coalStacks = new ItemStack[]{Materials.Coal.getGems(aCoalAmount), Materials.Coal.getDust(aCoalAmount), Materials.Charcoal.getGems(aCoalAmount), Materials.Charcoal.getDust(aCoalAmount)};
for (ItemStack coalStack : coalStacks) {
GT_Recipe.GT_Recipe_Map.sPrimitiveBlastRecipes.addRecipe(true, new ItemStack[]{aInput1, aInput2, coalStack}, new ItemStack[]{aOutput1, aOutput2, Materials.Ash.getDustTiny(aCoalAmount)}, null, null, null, null, aDuration, 0, 0);
}
if (Loader.isModLoaded("Railcraft")) {
GT_Recipe.GT_Recipe_Map.sPrimitiveBlastRecipes.addRecipe(true, new ItemStack[]{aInput1, aInput2, RailcraftToolItems.getCoalCoke(aCoalAmount / 2)}, new ItemStack[]{aOutput1, aOutput2, Materials.Ash.getDustTiny(aCoalAmount / 2)}, null, null, null, null, aDuration * 2 / 3, 0, 0);
}
return true;
}
public boolean addCannerRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, ItemStack aOutput2, int aDuration, int aEUt) {
if ((aInput1 == null) || (aOutput1 == null)) {
return false;

View file

@ -1639,9 +1639,10 @@ if(Loader.isModLoaded("Railcraft")){
addProcess(tCrop, Materials.Emerald, 100, true);
addProcess(tCrop, Materials.Beryllium, 100, false);
addPrimitiveBlastFurnaceRecipes();
}
public void addProcess(ItemStack tCrop, Materials aMaterial, int chance, boolean aMainOutput) {
public void addProcess(ItemStack tCrop, Materials aMaterial, int chance, boolean aMainOutput) {
if(tCrop==null||aMaterial==null||GT_OreDictUnificator.get(OrePrefixes.crushed, aMaterial,1)==null)return;
if (GT_Mod.gregtechproxy.mNerfedCrops) {
GT_Values.RA.addChemicalRecipe(GT_Utility.copyAmount(9, tCrop), GT_OreDictUnificator.get(OrePrefixes.crushed, aMaterial, 1), Materials.Water.getFluid(1000), aMaterial.mOreByProducts.isEmpty() ? null : aMaterial.mOreByProducts.get(0).getMolten(144), GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aMaterial, 4), 96, 24);
@ -2532,4 +2533,12 @@ if(Loader.isModLoaded("Railcraft")){
if(!(FluidRegistry.getFluid("potion."+aName+".long")==null||FluidRegistry.getFluid("potion."+aName+".long.splash")==null))
GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gunpowder, 1L), null, null, null, new FluidStack(FluidRegistry.getFluid("potion."+aName+".long"),750), new FluidStack(FluidRegistry.getFluid("potion."+aName+".long.splash"),750), null, 200, 24);
}
private void addPrimitiveBlastFurnaceRecipes() {
GT_Values.RA.addPrimitiveBlastRecipe(Materials.Iron.getIngots(1), GT_Values.NI, 4, Materials.Steel.getIngots(1), GT_Values.NI, 7200);
GT_Values.RA.addPrimitiveBlastRecipe(Materials.Iron.getDust(1), GT_Values.NI, 4, Materials.Steel.getIngots(1), GT_Values.NI, 7200);
GT_Values.RA.addPrimitiveBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.block, Materials.Iron, 1), GT_Values.NI, 36, Materials.Steel.getIngots(9), GT_Values.NI, 7200);
GT_Values.RA.addPrimitiveBlastRecipe(Materials.Steel.getDust(1), GT_Values.NI, 2, Materials.Steel.getIngots(1), GT_Values.NI, 7200);
}
}