summaryrefslogtreecommitdiffstats
path: root/src/main/java/net/minecraft/server/TileEntityFurnace.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/minecraft/server/TileEntityFurnace.java')
-rw-r--r--src/main/java/net/minecraft/server/TileEntityFurnace.java66
1 files changed, 34 insertions, 32 deletions
diff --git a/src/main/java/net/minecraft/server/TileEntityFurnace.java b/src/main/java/net/minecraft/server/TileEntityFurnace.java
index 945969a3..8f8771cc 100644
--- a/src/main/java/net/minecraft/server/TileEntityFurnace.java
+++ b/src/main/java/net/minecraft/server/TileEntityFurnace.java
@@ -21,7 +21,7 @@ public class TileEntityFurnace extends TileEntity implements IWorldInventory {
public int cookTime;
private String o;
- // CraftBukkit start
+ // CraftBukkit start - add fields and methods
private int lastTick = MinecraftServer.currentTick;
private int maxStack = MAX_STACK;
public List<HumanEntity> transaction = new java.util.ArrayList<HumanEntity>();
@@ -183,49 +183,51 @@ public class TileEntityFurnace extends TileEntity implements IWorldInventory {
// CraftBukkit end
if (this.burnTime > 0) {
- this.burnTime -= elapsedTicks; // CraftBukkit
+ this.burnTime -= elapsedTicks; // CraftBukkit - use elapsedTicks in place of constant
}
if (!this.world.isStatic) {
- // CraftBukkit start - Handle multiple elapsed ticks
- if (this.burnTime <= 0 && this.canBurn() && this.items[1] != null) { // CraftBukkit - == to <=
- CraftItemStack fuel = CraftItemStack.asCraftMirror(this.items[1]);
+ if (this.burnTime != 0 || this.items[1] != null && this.items[0] != null) {
+ // CraftBukkit start - Handle multiple elapsed ticks
+ if (this.burnTime <= 0 && this.canBurn()) { // CraftBukkit - == to <=
+ CraftItemStack fuel = CraftItemStack.asCraftMirror(this.items[1]);
- FurnaceBurnEvent furnaceBurnEvent = new FurnaceBurnEvent(this.world.getWorld().getBlockAt(this.x, this.y, this.z), fuel, fuelTime(this.items[1]));
- this.world.getServer().getPluginManager().callEvent(furnaceBurnEvent);
+ FurnaceBurnEvent furnaceBurnEvent = new FurnaceBurnEvent(this.world.getWorld().getBlockAt(this.x, this.y, this.z), fuel, fuelTime(this.items[1]));
+ this.world.getServer().getPluginManager().callEvent(furnaceBurnEvent);
- if (furnaceBurnEvent.isCancelled()) {
- return;
- }
+ if (furnaceBurnEvent.isCancelled()) {
+ return;
+ }
- this.ticksForCurrentFuel = furnaceBurnEvent.getBurnTime();
- this.burnTime += this.ticksForCurrentFuel;
- if (this.burnTime > 0 && furnaceBurnEvent.isBurning()) {
- // CraftBukkit end
- flag1 = true;
- if (this.items[1] != null) {
- --this.items[1].count;
- if (this.items[1].count == 0) {
- Item item = this.items[1].getItem().t();
-
- this.items[1] = item != null ? new ItemStack(item) : null;
+ this.ticksForCurrentFuel = furnaceBurnEvent.getBurnTime();
+ this.burnTime += this.ticksForCurrentFuel;
+ if (this.burnTime > 0 && furnaceBurnEvent.isBurning()) {
+ // CraftBukkit end
+ flag1 = true;
+ if (this.items[1] != null) {
+ --this.items[1].count;
+ if (this.items[1].count == 0) {
+ Item item = this.items[1].getItem().t();
+
+ this.items[1] = item != null ? new ItemStack(item) : null;
+ }
}
}
}
- }
- /* CraftBukkit start - Moved up
- if (this.isBurning() && this.canBurn()) {
- ++this.cookTime;
- if (this.cookTime == 200) {
+ /* CraftBukkit start - Moved up
+ if (this.isBurning() && this.canBurn()) {
+ ++this.cookTime;
+ if (this.cookTime == 200) {
+ this.cookTime = 0;
+ this.burn();
+ flag1 = true;
+ }
+ } else {
this.cookTime = 0;
- this.burn();
- flag1 = true;
}
- } else {
- this.cookTime = 0;
+ */
}
- // CraftBukkit end */
if (flag != this.burnTime > 0) {
flag1 = true;
@@ -253,7 +255,7 @@ public class TileEntityFurnace extends TileEntity implements IWorldInventory {
if (this.canBurn()) {
ItemStack itemstack = RecipesFurnace.getInstance().getResult(this.items[0]);
- // CraftBukkit start
+ // CraftBukkit start - fire FurnaceSmeltEvent
CraftItemStack source = CraftItemStack.asCraftMirror(this.items[0]);
org.bukkit.inventory.ItemStack result = CraftItemStack.asBukkitCopy(itemstack);