diff options
Diffstat (limited to 'src/Java/gtPlusPlus/core')
-rw-r--r-- | src/Java/gtPlusPlus/core/handler/BurnableFuelHandler.java | 39 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/item/ModItems.java | 2 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/item/base/BaseItemBurnable.java | 35 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/lib/CORE.java | 6 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/array/Triplet.java | 6 |
5 files changed, 66 insertions, 22 deletions
diff --git a/src/Java/gtPlusPlus/core/handler/BurnableFuelHandler.java b/src/Java/gtPlusPlus/core/handler/BurnableFuelHandler.java new file mode 100644 index 0000000000..a488cd5838 --- /dev/null +++ b/src/Java/gtPlusPlus/core/handler/BurnableFuelHandler.java @@ -0,0 +1,39 @@ +package gtPlusPlus.core.handler; + +import cpw.mods.fml.common.IFuelHandler; +import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.core.util.Utils; +import gtPlusPlus.core.util.array.Pair; +import gtPlusPlus.core.util.item.ItemUtils; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +public class BurnableFuelHandler implements IFuelHandler{ + + @Override + public int getBurnTime(ItemStack aStack) { + String Modid = ItemUtils.getModId(aStack); + //Iterate over my burnables. + for (Pair<Integer, ItemStack> temp : CORE.burnables) { + + int aStackID = Item.getIdFromItem(aStack.getItem()); + int burnID = Item.getIdFromItem(temp.getValue().getItem()); + //Utils.LOG_INFO("[Fuel Handler] ["+(aStackID == burnID)+"] Trying to look for a burnvalue for "+aStack.getDisplayName()+" | "+Modid+" | aStackID="+aStackID+" | burnID="+burnID); + if (aStackID == burnID){ + Utils.LOG_INFO("[Fuel Handler] match found!"); + int burn = temp.getKey(); + ItemStack fuel = temp.getValue(); + ItemStack testItem = ItemUtils.getSimpleStack(fuel, aStack.stackSize); + + if (aStack.isItemEqual(testItem)){ + Utils.LOG_INFO("[Fuel Handler] Found "+fuel.getDisplayName()+" with a burntime of "+burn); + return burn; + } + } + } + + //If it's not my fuel, return 0. + return 0; + } + +} diff --git a/src/Java/gtPlusPlus/core/item/ModItems.java b/src/Java/gtPlusPlus/core/item/ModItems.java index 2d1c38c83d..045e2b492c 100644 --- a/src/Java/gtPlusPlus/core/item/ModItems.java +++ b/src/Java/gtPlusPlus/core/item/ModItems.java @@ -235,7 +235,7 @@ public final class ModItems { //Register Hydrogen Blobs first, so we can replace old helium blobs. - itemCoalCoke = new BaseItemBurnable("itemCoalCoke", "Coking Coal", tabMisc, 64, 0, "Used for metallurgy.", "gemCoalCoke", 3200).setTextureName(CORE.MODID + ":itemCoalCoke"); + itemCoalCoke = new BaseItemBurnable("itemCoalCoke", "Coking Coal", tabMisc, 64, 0, "Used for metallurgy.", "gemCoalCoke", 3200, 0).setTextureName(CORE.MODID + ":itemCoalCoke"); //Register Hydrogen Blobs first, so we can replace old helium blobs. itemHydrogenBlob = new CoreItem("itemHydrogenBlob", "Mysterious Hydrogen Blob", tabMisc).setTextureName(CORE.MODID + ":itemHeliumBlob"); diff --git a/src/Java/gtPlusPlus/core/item/base/BaseItemBurnable.java b/src/Java/gtPlusPlus/core/item/base/BaseItemBurnable.java index 6f27bfda2f..42aadfa91d 100644 --- a/src/Java/gtPlusPlus/core/item/base/BaseItemBurnable.java +++ b/src/Java/gtPlusPlus/core/item/base/BaseItemBurnable.java @@ -1,38 +1,43 @@ package gtPlusPlus.core.item.base; -import cpw.mods.fml.common.IFuelHandler; import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.core.util.array.Pair; import gtPlusPlus.core.util.item.ItemUtils; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.ItemStack; -public class BaseItemBurnable extends CoreItem implements IFuelHandler{ - - final int burnTime; +public class BaseItemBurnable extends CoreItem { + + protected final int meta; public BaseItemBurnable(String unlocalizedName, String displayName, CreativeTabs creativeTab, - int stackSize, int maxDmg, String description, String oredictName, int burnTime) { + int stackSize, int maxDmg, String description, String oredictName, int burnTime, int meta) { super(unlocalizedName, creativeTab, stackSize, maxDmg, description); - this.burnTime = burnTime; this.itemName = displayName; - + this.meta = meta; if (!oredictName.equals("") || oredictName != null){ registerOrdictionary(oredictName); } - registerFuel(); - } - - @Override - public int getBurnTime(ItemStack fuel) { - return this.burnTime; + registerFuel(burnTime); + } - public void registerFuel(){ - CORE.burnables.add(this); + public void registerFuel(int burn){ + CORE.burnables.add(new Pair<Integer, ItemStack>(burn, ItemUtils.getSimpleStack(this, 1))); } public void registerOrdictionary(String name){ ItemUtils.addItemToOreDictionary(ItemUtils.getSimpleStack(this), name); } + @Override + public int getDamage(ItemStack stack) { + return this.meta; + } + + @Override + public boolean showDurabilityBar(ItemStack stack) { + return false; + } + } diff --git a/src/Java/gtPlusPlus/core/lib/CORE.java b/src/Java/gtPlusPlus/core/lib/CORE.java index 683209b4ab..245872af66 100644 --- a/src/Java/gtPlusPlus/core/lib/CORE.java +++ b/src/Java/gtPlusPlus/core/lib/CORE.java @@ -2,9 +2,9 @@ package gtPlusPlus.core.lib; import java.util.*; -import cpw.mods.fml.common.IFuelHandler; import gregtech.api.GregTech_API; import gtPlusPlus.core.util.Utils; +import gtPlusPlus.core.util.array.Pair; import gtPlusPlus.core.util.geo.GeoUtils; import gtPlusPlus.core.util.gregtech.recipehandlers.GregtechRecipe; import gtPlusPlus.core.util.networking.NetworkUtils; @@ -13,7 +13,7 @@ import gtPlusPlus.xmod.gregtech.api.interfaces.internal.IGregtech_RecipeAdder; import gtPlusPlus.xmod.gregtech.api.objects.XSTR; import gtPlusPlus.xmod.gregtech.common.Meta_GT_Proxy; import gtPlusPlus.xmod.gregtech.common.tileentities.automation.GT_MetaTileEntity_TesseractGenerator; -import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; import net.minecraftforge.common.config.Configuration; @@ -40,7 +40,7 @@ public class CORE { public static final int GREG_FIRST_ID = 760; public static Map PlayerCache; public static final String[] VOLTAGES = {"ULV","LV","MV","HV","EV","IV","LuV","ZPM","UV","MAX"}; - public static List<IFuelHandler> burnables = new ArrayList<IFuelHandler>(); + public static List<Pair<Integer, ItemStack>> burnables = new ArrayList<Pair<Integer, ItemStack>>(); public static final boolean MAIN_GREGTECH_5U_EXPERIMENTAL_FORK = Meta_GT_Proxy.areWeUsingGregtech5uExperimental(); public static final int GREGTECH_API_VERSION = GregTech_API.VERSION; public static IGregtech_RecipeAdder RA; diff --git a/src/Java/gtPlusPlus/core/util/array/Triplet.java b/src/Java/gtPlusPlus/core/util/array/Triplet.java index 2130491d5b..01f836ae72 100644 --- a/src/Java/gtPlusPlus/core/util/array/Triplet.java +++ b/src/Java/gtPlusPlus/core/util/array/Triplet.java @@ -12,15 +12,15 @@ public class Triplet<K,V,C> { this.count = value2; } - final public K getKey(){ + final public K getValue_1(){ return this.key; } - final public V getValue(){ + final public V getValue_2(){ return this.value; } - final public C getSecondValue(){ + final public C getValue_3(){ return this.count; } |