From 02c4b119a35e308ee93c990fdc8c6093df9f3381 Mon Sep 17 00:00:00 2001 From: Bernhard Bonigl Date: Mon, 8 Sep 2014 17:48:33 +0200 Subject: [PATCH] Add a Smeltery-API for smeltery fuel --- .../tconstruct/library/crafting/Smeltery.java | 44 +++++++++++++++++-- 1 file changed, 40 insertions(+), 4 deletions(-) diff --git a/src/main/java/tconstruct/library/crafting/Smeltery.java b/src/main/java/tconstruct/library/crafting/Smeltery.java index 63b6b9fa152..2f3d75e5607 100644 --- a/src/main/java/tconstruct/library/crafting/Smeltery.java +++ b/src/main/java/tconstruct/library/crafting/Smeltery.java @@ -1,15 +1,13 @@ package tconstruct.library.crafting; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import mantle.utils.ItemMetaWrapper; import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.oredict.OreDictionary; @@ -22,6 +20,44 @@ public class Smeltery private final Map temperatureList = new HashMap(); private final Map renderIndex = new HashMap(); private final List alloys = new ArrayList(); + private final Map smelteryFuels = new HashMap(); // fluid -> [power, duration] + + /** + * Add a new fluid as a valid Smeltery fuel. + * @param fluid The fluid. + * @param power The temperature of the fluid. This also influences the melting speed. Lava is 1000. + * @param duration How long one "portion" of liquid fuels the smeltery. Lava is 10. + */ + public static void addSmelteryFuel(Fluid fluid, int power, int duration) + { + instance.smelteryFuels.put(fluid, new Integer[] {power, duration}); + } + + /** + * Returns true if the liquid is a valid smeltery fuel. + */ + public static boolean isSmelteryFuel(Fluid fluid) + { + return instance.smelteryFuels.containsKey(fluid); + } + + /** + * Returns the power of a smeltery fuel or 0 if it's not a fuel. + */ + public static int getFuelPower(Fluid fluid) + { + Integer[] power = instance.smelteryFuels.get(fluid); + return power == null ? 0 : power[0]; + } + + /** + * Returns the duration of a smeltery fuel or 0 if it's not a fuel. + */ + public static int getFuelDuration(Fluid fluid) + { + Integer[] power = instance.smelteryFuels.get(fluid); + return power == null ? 0 : power[1]; + } /** * Adds mappings between an itemstack and an output liquid Example: