Added unificated recipe entries & Some fixes of Blast furnance

This commit is contained in:
TheDarkDnKTv 2021-02-25 06:04:06 +02:00
parent cc0540fff7
commit 0b59e42926
12 changed files with 253 additions and 49 deletions

View file

@ -3,6 +3,8 @@ package gregtechmod.api.recipe;
import java.util.ArrayList;
import java.util.List;
import gregtechmod.api.enums.Materials;
import gregtechmod.api.enums.OrePrefixes;
import gregtechmod.api.util.GT_Utility;
import net.minecraft.item.ItemStack;
@ -104,6 +106,13 @@ public abstract class RecipeFactory<F extends RecipeFactory<F>> {
public abstract RecipeFactory<F> inputs(ItemStack...stacks);
public abstract RecipeFactory<F> input(OrePrefixes prefix, Materials material, int count);
public RecipeFactory<F> input(OrePrefixes prefix, Materials material) {
this.input(prefix, material, 1);
return this;
}
public RecipeFactory<F> input(String oreDict) {
return this.input(oreDict, 1);
}

View file

@ -34,8 +34,10 @@ public class GT_Container_BlastFurnace extends GT_ContainerMetaTile_Machine {
super.detectAndSendChanges();
if (mTileEntity.isClientSide() || mTileEntity.getMetaTileEntity() == null) return;
mMachine = ((GT_MetaTileEntity_BlastFurnace)mTileEntity.getMetaTileEntity()).mMachine;
mProgress = ((GT_MetaTileEntity_BlastFurnace)mTileEntity.getMetaTileEntity()).getProgresstime();
mMaxProgress = ((GT_MetaTileEntity_BlastFurnace)mTileEntity.getMetaTileEntity()).maxProgresstime();
// mProgress = ((GT_MetaTileEntity_BlastFurnace)mTileEntity.getMetaTileEntity()).getProgresstime();
// mMaxProgress = ((GT_MetaTileEntity_BlastFurnace)mTileEntity.getMetaTileEntity()).maxProgresstime();
mProgress = 0;
mMaxProgress = 0;
mProgressScale = Math.max(0, Math.min(20, (mProgress>0?1:0) + (mProgress * 20) / (mMaxProgress<1?1:mMaxProgress)));
mHeatCapacity = ((GT_MetaTileEntity_BlastFurnace)mTileEntity.getMetaTileEntity()).mHeatCapacity;

View file

@ -2,6 +2,7 @@ package gregtechmod.common.recipe;
import gregtechmod.api.recipe.RecipeMap;
import gregtechmod.api.util.GT_ModHandler;
import gregtechmod.common.recipe.factory.BlastFurnanceRecipeFactory;
import gregtechmod.common.recipe.factory.GeneratorRecipeFactory;
import gregtechmod.common.recipe.factory.SimpleRecipeFactory;
import gregtechmod.common.recipe.maps.FurnanceRecipeMap;
@ -17,27 +18,27 @@ import gregtechmod.common.recipe.maps.ScannerRecipeMap;
*
*/
public class RecipeMaps {
public static final RecipeMap<SimpleRecipeFactory> FUSION_REACTOR = new RecipeMap<>(0, 0, 0, 0, 2, 2, 1, 1, new SimpleRecipeFactory());
public static final RecipeMap<SimpleRecipeFactory> CENTRIFUGE = new RecipeMap<>(0, 2, 1, 4, 0, 1, 0, 0, new SimpleRecipeFactory());
public static final RecipeMap<SimpleRecipeFactory> ELECTROLYZER = new RecipeMap<>(0, 2, 1, 4, 0, 1, 0, 0, new SimpleRecipeFactory());
public static final RecipeMap<SimpleRecipeFactory> GRINDER = new RecipeMap<>(1, 2, 1, 4, new SimpleRecipeFactory()); // TODO multiblocks!
public static final RecipeMap<SimpleRecipeFactory> BLAST_FURNANCE = new RecipeMap<>(1, 2, 1, 2, new SimpleRecipeFactory()); //
public static final RecipeMap<SimpleRecipeFactory> IMPLOSION_COMPRESSOR = new RecipeMap<>(1, 2, 1, 2, new SimpleRecipeFactory()); //
public static final RecipeMap<SimpleRecipeFactory> SAWMILL = new RecipeMap<>(1, 2, 1, 3, new SimpleRecipeFactory()); //
public static final RecipeMap<SimpleRecipeFactory> VACUUM_FREEZER = new RecipeMap<>(1, 1, 1, 1, new SimpleRecipeFactory()); // -----------------
public static final RecipeMap<SimpleRecipeFactory> CHEMICAL = new RecipeMap<>(1, 2, 1, 1, new SimpleRecipeFactory());
public static final RecipeMap<SimpleRecipeFactory> DISTILLATION = new RecipeMap<>(1, 2, 1, 4, new SimpleRecipeFactory());
public static final RecipeMap<SimpleRecipeFactory> WIREMILL = new RecipeMap<>(1, 2, 1, 2, new SimpleRecipeFactory());
public static final RecipeMap<SimpleRecipeFactory> BENDING = new RecipeMap<>(1, 2, 1, 2, new SimpleRecipeFactory());
public static final RecipeMap<SimpleRecipeFactory> ALLOY_SMELTING = new RecipeMap<>(1, 2, 1, 2, new SimpleRecipeFactory());
public static final RecipeMap<SimpleRecipeFactory> ASSEMBLING = new RecipeMap<>(1, 2, 1, 2, new SimpleRecipeFactory());
public static final RecipeMap<SimpleRecipeFactory> CANINNING = new RecipeMap<>(1, 2, 1, 2, new SimpleRecipeFactory());
public static final RecipeMap<SimpleRecipeFactory> LATHE = new RecipeMap<>(1, 2, 1, 2, new SimpleRecipeFactory());
public static final RecipeMap<SimpleRecipeFactory> CUTTING = new RecipeMap<>(1, 2, 1, 2, new SimpleRecipeFactory());
public static final RecipeMap<SimpleRecipeFactory> EXTRUDING = new RecipeMap<>(1, 2, 1, 2, new SimpleRecipeFactory());
public static final RecipeMap<SimpleRecipeFactory> HAMMER = new RecipeMap<>(1, 2, 1, 2, new SimpleRecipeFactory()); // TODO generate recipes according on code in Bronze hamerrer
public static final RecipeMapPrinter PRINTER = new RecipeMapPrinter(1, 3, 1, 2);
public static final PulverizerRecipeMap PULVERIZING = new PulverizerRecipeMap(1, 2, 1, 4);
public static final RecipeMap<SimpleRecipeFactory> FUSION_REACTOR = new RecipeMap<>(0, 0, 0, 0, 2, 2, 1, 1, new SimpleRecipeFactory());
public static final RecipeMap<SimpleRecipeFactory> CENTRIFUGE = new RecipeMap<>(0, 2, 1, 4, 0, 1, 0, 0, new SimpleRecipeFactory());
public static final RecipeMap<SimpleRecipeFactory> ELECTROLYZER = new RecipeMap<>(0, 2, 1, 4, 0, 1, 0, 0, new SimpleRecipeFactory());
public static final RecipeMap<SimpleRecipeFactory> GRINDER = new RecipeMap<>(1, 2, 1, 4, new SimpleRecipeFactory()); // TODO multiblocks!
public static final RecipeMap<BlastFurnanceRecipeFactory> BLAST_FURNANCE = new RecipeMap<>(1, 2, 1, 2, new BlastFurnanceRecipeFactory()); //
public static final RecipeMap<SimpleRecipeFactory> IMPLOSION_COMPRESSOR= new RecipeMap<>(1, 2, 1, 2, new SimpleRecipeFactory()); //
public static final RecipeMap<SimpleRecipeFactory> SAWMILL = new RecipeMap<>(1, 2, 1, 3, new SimpleRecipeFactory()); //
public static final RecipeMap<SimpleRecipeFactory> VACUUM_FREEZER = new RecipeMap<>(1, 1, 1, 1, new SimpleRecipeFactory()); // -----------------
public static final RecipeMap<SimpleRecipeFactory> CHEMICAL = new RecipeMap<>(1, 2, 1, 1, new SimpleRecipeFactory());
public static final RecipeMap<SimpleRecipeFactory> DISTILLATION = new RecipeMap<>(1, 2, 1, 4, new SimpleRecipeFactory());
public static final RecipeMap<SimpleRecipeFactory> WIREMILL = new RecipeMap<>(1, 2, 1, 2, new SimpleRecipeFactory());
public static final RecipeMap<SimpleRecipeFactory> BENDING = new RecipeMap<>(1, 2, 1, 2, new SimpleRecipeFactory());
public static final RecipeMap<SimpleRecipeFactory> ALLOY_SMELTING = new RecipeMap<>(1, 2, 1, 2, new SimpleRecipeFactory());
public static final RecipeMap<SimpleRecipeFactory> ASSEMBLING = new RecipeMap<>(1, 2, 1, 2, new SimpleRecipeFactory());
public static final RecipeMap<SimpleRecipeFactory> CANINNING = new RecipeMap<>(1, 2, 1, 2, new SimpleRecipeFactory());
public static final RecipeMap<SimpleRecipeFactory> LATHE = new RecipeMap<>(1, 2, 1, 2, new SimpleRecipeFactory());
public static final RecipeMap<SimpleRecipeFactory> CUTTING = new RecipeMap<>(1, 2, 1, 2, new SimpleRecipeFactory());
public static final RecipeMap<SimpleRecipeFactory> EXTRUDING = new RecipeMap<>(1, 2, 1, 2, new SimpleRecipeFactory());
public static final RecipeMap<SimpleRecipeFactory> HAMMER = new RecipeMap<>(1, 2, 1, 2, new SimpleRecipeFactory()); // TODO generate recipes according on code in Bronze hamerrer
public static final RecipeMapPrinter PRINTER = new RecipeMapPrinter(1, 3, 1, 2);
public static final PulverizerRecipeMap PULVERIZING = new PulverizerRecipeMap(1, 2, 1, 4);
public static final RecipeMap<GeneratorRecipeFactory> DIESEL_FUELS = new RecipeMap<>(0, 1, 0, 1, 1, 1, 0, 0, new GeneratorRecipeFactory()); // TODO generators recipemaps
public static final RecipeMap<GeneratorRecipeFactory> TURBINE_FUELS = new RecipeMap<>(0, 1, 0, 1, 1, 1, 0, 0, new GeneratorRecipeFactory());

View file

@ -0,0 +1,59 @@
package gregtechmod.common.recipe;
import java.util.List;
import gregtechmod.api.enums.Materials;
import gregtechmod.api.enums.OrePrefixes;
import gregtechmod.api.recipe.Ingredient;
import gregtechmod.api.util.GT_OreDictUnificator;
import gregtechmod.api.util.GT_Utility;
import net.minecraft.item.ItemStack;
import net.minecraftforge.oredict.OreDictionary;
/**
* @author TheDarkDnKTv
*
*/
public class UnifierRecipeEntry implements Ingredient {
private final OrePrefixes prefix;
private final Materials material;
private final int count;
public UnifierRecipeEntry(OrePrefixes prefix, Materials material) {
this(prefix, material, 1);
}
public UnifierRecipeEntry(OrePrefixes prefix, Materials material, int count) {
if (prefix == null || material == null)
throw new IllegalArgumentException("Prefix: " + prefix + ", material: " + material);
if (!OreDictionary.doesOreNameExist(prefix.get(material)))
throw new IllegalArgumentException("OrePrefix & Materials combination returns null item!");
this.prefix = prefix;
this.material = material;
this.count = count;
}
@Override
public boolean match(ItemStack input) {
// GT_OreDictUnificator. // FIXME Fix oredict unificator
return false;
}
@Override
public List<ItemStack> getVariants() {
List<ItemStack> copies = GT_Utility.copy(GT_OreDictUnificator.getOres(prefix, material));
for (ItemStack stack : copies) stack.stackSize = count;
return copies;
}
@Override
public int getCount() {
return count;
}
@Override
public boolean isWildcard() {
return false;
}
}

View file

@ -0,0 +1,112 @@
package gregtechmod.common.recipe.factory;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import gregtechmod.api.GregTech_API;
import gregtechmod.api.enums.Materials;
import gregtechmod.api.enums.OrePrefixes;
import gregtechmod.api.recipe.Recipe;
import gregtechmod.api.recipe.RecipeFactory;
import gregtechmod.api.recipe.RecipeMap;
import gregtechmod.api.util.GT_RecipeException;
import gregtechmod.common.recipe.ChancedStack;
import gregtechmod.common.recipe.RecipeEntry;
import gregtechmod.common.recipe.UnifierRecipeEntry;
import gregtechmod.common.recipe.RecipeEntry.Match;
import net.minecraft.item.ItemStack;
/**
* @author TheDarkDnKTv
*
*/
public class BlastFurnanceRecipeFactory extends RecipeFactory<BlastFurnanceRecipeFactory> {
private int minTemp = -1;
public BlastFurnanceRecipeFactory() {}
public BlastFurnanceRecipeFactory(RecipeMap<BlastFurnanceRecipeFactory> map) {
super(map);
}
public BlastFurnanceRecipeFactory minTemperature(int value) {
if (minTemp >= 0)
throw new GT_RecipeException("Can not set temperature twice!");
if (value <= 0)
errors.append(" - Blast temperature should be grather than zero!\n");
this.minTemp = value;
return this;
}
@Override
protected void reset() {
super.reset();
minTemp = -1;
}
@Override
public BlastFurnanceRecipeFactory nonConsumable(ItemStack stack) {
super.input(RecipeEntry.singleton(stack, 0, Match.DAMAGE));
return this;
}
@Override
public BlastFurnanceRecipeFactory input(ItemStack stack, boolean checkDamage, boolean checkNBT) {
@SuppressWarnings("serial")
List<Match> vals = new ArrayList<Match>() {{
if (checkDamage && (stack != null && stack.getItemDamage() != GregTech_API.ITEM_WILDCARD_DAMAGE)) add(Match.DAMAGE);
if (checkNBT) add(Match.NBT);
}};
super.input(RecipeEntry.singleton(stack, vals.toArray(new Match[0])));
return this;
}
@Override
public BlastFurnanceRecipeFactory input(OrePrefixes prefix, Materials material, int count) {
if (count < 0) errors.append("- Count less than ZERO!!!");
inputItems.add(new UnifierRecipeEntry(prefix, material, count));
return this;
}
@Override
public BlastFurnanceRecipeFactory inputs(ItemStack... stacks) {
for (ItemStack stack : stacks)
this.input(stack);
return this;
}
@Override
public BlastFurnanceRecipeFactory input(String oreDict, int amount) {
if (amount < 0) errors.append("- Count less than ZERO!!!");
super.input(RecipeEntry.oreDict(oreDict, amount, Match.DAMAGE));
return this;
}
@Override
public BlastFurnanceRecipeFactory chanced(ItemStack stack, int chance) {
super.chanced(new ChancedStack(stack.copy(), chance));
return this;
}
@Override
public Recipe build() {
if (EUt < 0) errors.append(" - EU/t was not set!\n");
if (duration <= 0) errors.append(" - Duration was not set!\n");
if (minTemp < 0) errors.append(" - Blast temperature was not set!\n");
if (inputItems.isEmpty() &&
inputFluids.isEmpty()) errors.append(" - Input of recipe shall not be empty!\n");
if (outputItems.isEmpty() &&
chancedOutput.isEmpty() &&
outputFluids.isEmpty()) errors.append(" - Output of recipe shall not be empty!");
if (errors.length() == 0) {
Recipe recipe = new Recipe(startEU, EUt, duration, shaped, inputItems, outputItems, chancedOutput, inputFluids, outputFluids, Collections.singletonMap("minTemp", Integer.valueOf(minTemp)));
reset();
return recipe;
} throw new GT_RecipeException(errors.toString());
}
}

View file

@ -1,9 +1,12 @@
package gregtechmod.common.recipe.factory;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import gregtechmod.api.GregTech_API;
import gregtechmod.api.enums.Materials;
import gregtechmod.api.enums.OrePrefixes;
import gregtechmod.api.recipe.Recipe;
import gregtechmod.api.recipe.RecipeFactory;
import gregtechmod.api.recipe.RecipeMap;
@ -11,6 +14,7 @@ import gregtechmod.api.util.GT_RecipeException;
import gregtechmod.common.recipe.ChancedStack;
import gregtechmod.common.recipe.RecipeEntry;
import gregtechmod.common.recipe.RecipeEntry.Match;
import gregtechmod.common.recipe.UnifierRecipeEntry;
import net.minecraft.item.ItemStack;
/**
@ -45,7 +49,14 @@ public class GeneratorRecipeFactory extends RecipeFactory<GeneratorRecipeFactory
super.input(RecipeEntry.singleton(stack, vals.toArray(new Match[0])));
return this;
}
@Override
public GeneratorRecipeFactory input(OrePrefixes prefix, Materials material, int count) {
if (count < 0) errors.append("- Count less than ZERO!!!");
this.inputItems.add(new UnifierRecipeEntry(prefix, material, count));
return this;
}
@Override
public GeneratorRecipeFactory inputs(ItemStack... stacks) {
for (ItemStack stack : stacks)
@ -55,6 +66,7 @@ public class GeneratorRecipeFactory extends RecipeFactory<GeneratorRecipeFactory
@Override
public GeneratorRecipeFactory input(String oreDict, int amount) {
if (amount < 0) errors.append("- Count less than ZERO!!!");
super.input(RecipeEntry.oreDict(oreDict, amount, Match.DAMAGE));
return this;
}
@ -72,8 +84,8 @@ public class GeneratorRecipeFactory extends RecipeFactory<GeneratorRecipeFactory
if (inputItems.isEmpty() &&
inputFluids.isEmpty()) errors.append(" - Input of recipe shall not be empty!\n");
if (errors.length() == 0) {
Recipe recipe = new Recipe(startEU, EUt, duration, shaped, inputItems, outputItems, chancedOutput, inputFluids, outputFluids);
super.reset();
Recipe recipe = new Recipe(startEU, EUt, duration, shaped, inputItems, outputItems, chancedOutput, inputFluids, outputFluids, Collections.emptyMap());
reset();
return recipe;
} throw new GT_RecipeException(errors.toString());
}

View file

@ -1,9 +1,12 @@
package gregtechmod.common.recipe.factory;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import gregtechmod.api.GregTech_API;
import gregtechmod.api.enums.Materials;
import gregtechmod.api.enums.OrePrefixes;
import gregtechmod.api.recipe.Recipe;
import gregtechmod.api.recipe.RecipeFactory;
import gregtechmod.api.recipe.RecipeMap;
@ -11,7 +14,7 @@ import gregtechmod.api.util.GT_RecipeException;
import gregtechmod.common.recipe.ChancedStack;
import gregtechmod.common.recipe.RecipeEntry;
import gregtechmod.common.recipe.RecipeEntry.Match;
import gregtechmod.common.recipe.UnifierRecipeEntry;
import net.minecraft.item.ItemStack;
@ -57,10 +60,18 @@ public class SimpleRecipeFactory extends RecipeFactory<SimpleRecipeFactory> {
@Override
public SimpleRecipeFactory input(String oreDict, int amount) {
if (amount < 0) errors.append("- Count less than ZERO!!!");
super.input(RecipeEntry.oreDict(oreDict, amount, Match.DAMAGE));
return this;
}
@Override
public SimpleRecipeFactory input(OrePrefixes prefix, Materials material, int count) {
if (count < 0) errors.append("- Count less than ZERO!!!");
inputItems.add(new UnifierRecipeEntry(prefix, material, count));
return this;
}
@Override
public SimpleRecipeFactory chanced(ItemStack stack, int chance) {
super.chanced(new ChancedStack(stack.copy(), chance));
@ -77,8 +88,8 @@ public class SimpleRecipeFactory extends RecipeFactory<SimpleRecipeFactory> {
chancedOutput.isEmpty() &&
outputFluids.isEmpty()) errors.append(" - Output of recipe shall not be empty!");
if (errors.length() == 0) {
Recipe recipe = new Recipe(startEU, EUt, duration, shaped, inputItems, outputItems, chancedOutput, inputFluids, outputFluids);
super.reset();
Recipe recipe = new Recipe(startEU, EUt, duration, shaped, inputItems, outputItems, chancedOutput, inputFluids, outputFluids, Collections.emptyMap());
reset();
return recipe;
} throw new GT_RecipeException(errors.toString());
}

View file

@ -44,8 +44,6 @@ public class GT_MetaTileEntity_BlastFurnace extends MetaTileEntity {
@Override public int maxSteamStore() {return maxEUStore();}
@Override public int getInvSize() {return 4;}
@Override public boolean isAccessAllowed(EntityPlayer aPlayer) {return true;}
@Override public int getProgresstime() {return mProgresstime;}
@Override public int maxProgresstime() {return mMaxProgresstime;}
@Override public int increaseProgress(int aProgress) {mProgresstime += aProgress; return mMaxProgresstime-mProgresstime;}
@Override

View file

@ -37,8 +37,8 @@ public class GT_MetaTileEntity_Boiler_Bronze extends GT_MetaTileEntity_BasicTank
@Override public boolean isAccessAllowed(EntityPlayer aPlayer) {return true;}
@Override public boolean isValidSlot(int aIndex) {return true;}
@Override public int getInvSize() {return 4;}
@Override public int getProgresstime() {return mTemperature;}
@Override public int maxProgresstime() {return 500;}
// @Override public int getProgresstime() {return mTemperature;} // TODO maybe needed somewhere
// @Override public int maxProgresstime() {return 500;}
@Override public void onRightclick(EntityPlayer aPlayer) {
if (aPlayer != null) {

View file

@ -37,8 +37,8 @@ public class GT_MetaTileEntity_Boiler_Steel extends GT_MetaTileEntity_BasicTank
@Override public boolean isAccessAllowed(EntityPlayer aPlayer) {return true;}
@Override public boolean isValidSlot(int aIndex) {return true;}
@Override public int getInvSize() {return 4;}
@Override public int getProgresstime() {return mTemperature;}
@Override public int maxProgresstime() {return 1000;}
// @Override public int getProgresstime() {return mTemperature;} // TODO maybe needed somewhere
// @Override public int maxProgresstime() {return 1000;}
@Override public void onRightclick(EntityPlayer aPlayer) {
if (aPlayer != null) {

View file

@ -104,17 +104,17 @@ public class GT_MachineRecipeLoader implements Runnable
GT_ModHandler.addPulverisationRecipe(new ItemStack(Items.flint, 1), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Flint, 4L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Flint, 1L), 40, true);
GT_ModHandler.addPulverisationRecipe(new ItemStack(Blocks.wool, 1, 32767), new ItemStack(Items.string, 2), new ItemStack(Items.string, 1), 50, false);
// TODO add custom recipe builder
// GregTech_API.sRecipeAdder.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 2L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 2L), 500, 120, 1000);
// GregTech_API.sRecipeAdder.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.ShadowIron, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 2L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.ShadowSteel, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 2L), 500, 120, 1100);
// GregTech_API.sRecipeAdder.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.MeteoricIron, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 2L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.MeteoricSteel, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 2L), 500, 120, 1200);
// GregTech_API.sRecipeAdder.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Tungsten, 1L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1L), GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.TungstenSteel, 2L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 4L), 500, 500, 3000);
// GregTech_API.sRecipeAdder.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ilmenite, 2L), null, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Titanium, 1L), 800, 120, 1700);
// GregTech_API.sRecipeAdder.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Ilmenite, 2L), null, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Titanium, 1L), 640, 120, 1700);
// GregTech_API.sRecipeAdder.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Galena, 2L), null, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Silver, 1L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Lead, 1L), 400, 120, 1500);
// GregTech_API.sRecipeAdder.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Galena, 2L), null, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Silver, 1L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Lead, 1L), 320, 120, 1500);
// GregTech_API.sRecipeAdder.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Magnetite, 2L), null, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 2L), 400, 120, 1000);
// GregTech_API.sRecipeAdder.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Magnetite, 2L), null, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 2L), 320, 120, 1000);
RecipeMaps.BLAST_FURNANCE.factory().minTemperature(1000).EUt(120).duration(500).input(OrePrefixes.ingot, Materials.Iron).input(OrePrefixes.gem, Materials.Coal, 2).outputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 2L)).buildAndRegister();
RecipeMaps.BLAST_FURNANCE.factory().minTemperature(1100).EUt(120).duration(500).input(OrePrefixes.ingot, Materials.ShadowIron, 1).input(OrePrefixes.gem, Materials.Coal, 2).outputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.ShadowSteel, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 2L)).buildAndRegister();
RecipeMaps.BLAST_FURNANCE.factory().minTemperature(1200).EUt(120).duration(500).input(OrePrefixes.ingot, Materials.MeteoricIron, 1).input(OrePrefixes.gem, Materials.Coal, 2).outputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.MeteoricSteel, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 2L)).buildAndRegister();
RecipeMaps.BLAST_FURNANCE.factory().minTemperature(3000).EUt(500).duration(500).input(OrePrefixes.ingot, Materials.Tungsten).input(OrePrefixes.ingot, Materials.Steel).outputs(GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.TungstenSteel, 2L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 4L)).buildAndRegister();
RecipeMaps.BLAST_FURNANCE.factory().minTemperature(1700).EUt(120).duration(800).input(OrePrefixes.dust, Materials.Ilmenite, 2).outputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Titanium, 1L)).buildAndRegister();
// RecipeMaps.BLAST_FURNANCE.factory().minTemperature(1700).EUt(120).duration(640).input(OrePrefixes.gem, Materials.Ilmenite, 2).outputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Titanium, 1L)).buildAndRegister();
RecipeMaps.BLAST_FURNANCE.factory().minTemperature(1500).EUt(120).duration(400).input(OrePrefixes.dust, Materials.Galena, 2).outputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Silver, 1L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Lead, 1L)).buildAndRegister();
// RecipeMaps.BLAST_FURNANCE.factory().minTemperature(1500).EUt(120).duration(320).input(OrePrefixes.gem, Materials.Galena, 2).outputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Silver, 1L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Lead, 1L)).buildAndRegister();
RecipeMaps.BLAST_FURNANCE.factory().minTemperature(1000).EUt(120).duration(400).input(OrePrefixes.dust, Materials.Magnetite, 2).outputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 2)).buildAndRegister();
// RecipeMaps.BLAST_FURNANCE.factory().minTemperature(1000).EUt(120).duration(320).input(OrePrefixes.gem, Materials.Magnetite, 2).outputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 2)).buildAndRegister();
RecipeMaps.CANINNING.factory().EUt(2).duration( 100).inputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Mercury , 1), GT_Items.Battery_Hull_LV.get(1)).outputs(GT_Items.Battery_SU_LV_Mercury .getWithCharge(1, Integer.MAX_VALUE), GT_Items.Cell_Empty.get( 1)).buildAndRegister();
RecipeMaps.CANINNING.factory().EUt(2).duration( 400).inputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.SulfuricAcid , 4), GT_Items.Battery_Hull_MV.get(1)).outputs(GT_Items.Battery_SU_MV_SulfuricAcid .getWithCharge(1, Integer.MAX_VALUE), GT_Items.Cell_Empty.get( 4)).buildAndRegister();
RecipeMaps.CANINNING.factory().EUt(2).duration( 400).inputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Mercury , 4), GT_Items.Battery_Hull_MV.get(1)).outputs(GT_Items.Battery_SU_MV_Mercury .getWithCharge(1, Integer.MAX_VALUE), GT_Items.Cell_Empty.get( 4)).buildAndRegister();

View file

@ -20,11 +20,11 @@ import net.minecraft.util.StatCollector;
public class BlastRecipeHandler extends GT_RecipeHandler {
public class CachedBlastRecipe extends CachedGT_Recipe {
public int mStartEU;
public int minTemp;
public CachedBlastRecipe(Recipe aRecipe) {
super(aRecipe);
mStartEU = aRecipe.getEUtoStart();
minTemp = ((Integer)aRecipe.getMeta("minTemp")).intValue();
}
@Override
@ -87,7 +87,7 @@ public class BlastRecipeHandler extends GT_RecipeHandler {
drawText(30, 80, I18n.format("nei.extras.eu_total", GT_Utility.parseNumberToString(time * ((CachedBlastRecipe)arecipes.get(recipe)).mEUt)), 0xFF000000, false);
drawText(30, 90, I18n.format("nei.extras.time", GT_Utility.parseNumberToString(time * 1.0D / 20.0D)), 0xFF000000, false);
drawText(30,100, I18n.format("nei.extras.eut", GT_Utility.parseNumberToString(((CachedBlastRecipe)arecipes.get(recipe)).mEUt)), 0xFF000000, false);
drawText(30,110, I18n.format("nei.blast_furnance.info", GT_Utility.parseNumberToString(((CachedBlastRecipe)arecipes.get(recipe)).mStartEU)), 0xFF000000, false);
drawText(30,110, I18n.format("nei.blast_furnance.info", GT_Utility.parseNumberToString(((CachedBlastRecipe)arecipes.get(recipe)).minTemp)), 0xFF000000, false);
}
}