Added ItemStack sensitive burn time hook.
This commit is contained in:
parent
0abb4e289a
commit
57b277c9d7
5 changed files with 81 additions and 8 deletions
|
@ -323,6 +323,20 @@ public class ForgeHooks
|
|||
}
|
||||
static LinkedList<ISaveEventHandler> saveHandlers = new LinkedList<ISaveEventHandler>();
|
||||
|
||||
public static int getItemBurnTime(ItemStack stack)
|
||||
{
|
||||
for (IFuelHandler handler : fuelHandlers)
|
||||
{
|
||||
int ret = handler.getItemBurnTime(stack);
|
||||
if (ret > 0)
|
||||
{
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
static LinkedList<IFuelHandler> fuelHandlers = new LinkedList<IFuelHandler>();
|
||||
|
||||
// Plant Management
|
||||
// ------------------------------------------------------------
|
||||
static class ProbableItem
|
||||
|
|
16
forge/forge_common/net/minecraft/src/forge/IFuelHandler.java
Normal file
16
forge/forge_common/net/minecraft/src/forge/IFuelHandler.java
Normal file
|
@ -0,0 +1,16 @@
|
|||
/**
|
||||
* This software is provided under the terms of the Minecraft Forge Public
|
||||
* License v1.0.
|
||||
*/
|
||||
|
||||
package net.minecraft.src.forge;
|
||||
|
||||
import net.minecraft.src.ItemStack;
|
||||
|
||||
public interface IFuelHandler
|
||||
{
|
||||
/** Called when a furnace gains fuel to get its burn time.
|
||||
* @return fuel burn time in ticks or 0 to continue processing
|
||||
*/
|
||||
public int getItemBurnTime(ItemStack stack);
|
||||
}
|
|
@ -138,6 +138,15 @@ public class MinecraftForge
|
|||
ForgeHooks.saveHandlers.add(handler);
|
||||
}
|
||||
|
||||
/**
|
||||
* Register a new Fuel handler
|
||||
* @param handler The handler to be registered
|
||||
*/
|
||||
public static void registerFuelHandler(IFuelHandler handler)
|
||||
{
|
||||
ForgeHooks.fuelHandlers.add(handler);
|
||||
}
|
||||
|
||||
/**
|
||||
* This is not supposed to be called outside of Minecraft internals.
|
||||
*/
|
||||
|
|
|
@ -1,16 +1,17 @@
|
|||
--- ../src_base/minecraft/net/minecraft/src/TileEntityFurnace.java 0000-00-00 00:00:00.000000000 -0000
|
||||
+++ ../src_work/minecraft/net/minecraft/src/TileEntityFurnace.java 0000-00-00 00:00:00.000000000 -0000
|
||||
@@ -1,6 +1,8 @@
|
||||
@@ -1,6 +1,9 @@
|
||||
package net.minecraft.src;
|
||||
|
||||
-public class TileEntityFurnace extends TileEntity implements IInventory
|
||||
+import net.minecraft.src.forge.ForgeHooks;
|
||||
+import net.minecraft.src.forge.ISidedInventory;
|
||||
+
|
||||
+public class TileEntityFurnace extends TileEntity implements IInventory, ISidedInventory
|
||||
{
|
||||
/**
|
||||
* The ItemStacks that hold the items currently being used in the furnace
|
||||
@@ -279,8 +281,12 @@
|
||||
@@ -279,8 +282,12 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -25,7 +26,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
@@ -291,13 +297,13 @@
|
||||
@@ -291,13 +298,13 @@
|
||||
{
|
||||
if (this.canSmelt())
|
||||
{
|
||||
|
@ -41,7 +42,23 @@
|
|||
{
|
||||
this.furnaceItemStacks[2].stackSize += var1.stackSize;
|
||||
}
|
||||
@@ -351,4 +357,18 @@
|
||||
@@ -331,7 +338,14 @@
|
||||
else
|
||||
{
|
||||
int var1 = par1ItemStack.getItem().shiftedIndex;
|
||||
- return var1 < 256 && Block.blocksList[var1].blockMaterial == Material.wood ? 300 : (var1 == Item.stick.shiftedIndex ? 100 : (var1 == Item.coal.shiftedIndex ? 1600 : (var1 == Item.bucketLava.shiftedIndex ? 20000 : (var1 == Block.sapling.blockID ? 100 : (var1 == Item.blazeRod.shiftedIndex ? 2400 : ModLoader.addAllFuel(par1ItemStack.itemID, par1ItemStack.getItemDamage()))))));
|
||||
+ if (var1 < 256 && Block.blocksList[var1].blockMaterial == Material.wood) return 300;
|
||||
+ if (var1 == Item.stick.shiftedIndex) return 100;
|
||||
+ if (var1 == Item.coal.shiftedIndex) return 1600;
|
||||
+ if (var1 == Item.bucketLava.shiftedIndex) return 20000;
|
||||
+ if (var1 == Block.sapling.blockID) return 100;
|
||||
+ if (var1 == Item.blazeRod.shiftedIndex) return 2400;
|
||||
+ int ret = ForgeHooks.getItemBurnTime(par1ItemStack);
|
||||
+ return (ret > 0 ? ret : ModLoader.addAllFuel(par1ItemStack.itemID, par1ItemStack.getItemDamage()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -351,4 +365,18 @@
|
||||
public void openChest() {}
|
||||
|
||||
public void closeChest() {}
|
||||
|
|
|
@ -1,17 +1,18 @@
|
|||
--- ../src_base/minecraft_server/net/minecraft/src/TileEntityFurnace.java 0000-00-00 00:00:00.000000000 -0000
|
||||
+++ ../src_work/minecraft_server/net/minecraft/src/TileEntityFurnace.java 0000-00-00 00:00:00.000000000 -0000
|
||||
@@ -2,7 +2,9 @@
|
||||
@@ -2,7 +2,10 @@
|
||||
|
||||
import cpw.mods.fml.server.FMLServerHandler;
|
||||
|
||||
-public class TileEntityFurnace extends TileEntity implements IInventory
|
||||
+import net.minecraft.src.forge.ForgeHooks;
|
||||
+import net.minecraft.src.forge.ISidedInventory;
|
||||
+
|
||||
+public class TileEntityFurnace extends TileEntity implements IInventory, ISidedInventory
|
||||
{
|
||||
/**
|
||||
* The ItemStacks that hold the items currently being used in the furnace
|
||||
@@ -251,8 +253,12 @@
|
||||
@@ -251,8 +254,12 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -26,7 +27,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
@@ -263,13 +269,13 @@
|
||||
@@ -263,13 +270,13 @@
|
||||
{
|
||||
if (this.canSmelt())
|
||||
{
|
||||
|
@ -42,7 +43,23 @@
|
|||
{
|
||||
++this.furnaceItemStacks[2].stackSize;
|
||||
}
|
||||
@@ -316,4 +322,18 @@
|
||||
@@ -296,7 +303,14 @@
|
||||
else
|
||||
{
|
||||
int var1 = par1ItemStack.getItem().shiftedIndex;
|
||||
- return var1 < 256 && Block.blocksList[var1].blockMaterial == Material.wood ? 300 : (var1 == Item.stick.shiftedIndex ? 100 : (var1 == Item.coal.shiftedIndex ? 1600 : (var1 == Item.bucketLava.shiftedIndex ? 20000 : (var1 == Block.sapling.blockID ? 100 : (var1 == Item.blazeRod.shiftedIndex ? 2400 : FMLServerHandler.instance().fuelLookup(var1, par1ItemStack.getItemDamage()))))));
|
||||
+ if (var1 < 256 && Block.blocksList[var1].blockMaterial == Material.wood) return 300;
|
||||
+ if (var1 == Item.stick.shiftedIndex) return 100;
|
||||
+ if (var1 == Item.coal.shiftedIndex) return 1600;
|
||||
+ if (var1 == Item.bucketLava.shiftedIndex) return 20000;
|
||||
+ if (var1 == Block.sapling.blockID) return 100;
|
||||
+ if (var1 == Item.blazeRod.shiftedIndex) return 2400;
|
||||
+ int ret = ForgeHooks.getItemBurnTime(par1ItemStack);
|
||||
+ return (ret > 0 ? ret : FMLServerHandler.instance().fuelLookup(var1, par1ItemStack.getItemDamage()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -316,4 +330,18 @@
|
||||
public void openChest() {}
|
||||
|
||||
public void closeChest() {}
|
||||
|
|
Loading…
Reference in a new issue