Commits
md_5 authored f87cd1a53d8
1 - | --- ../work/decompile-c2c33c10/net/minecraft/server/TileEntityFurnace.java 2015-05-21 17:23:15.279886524 +1000 |
2 - | +++ src/main/java/net/minecraft/server/TileEntityFurnace.java 2015-05-21 17:23:15.283886599 +1000 |
1 + | --- ../work/decompile-c2c33c10/net/minecraft/server/TileEntityFurnace.java 2015-05-21 19:02:24.117651149 +1000 |
2 + | +++ src/main/java/net/minecraft/server/TileEntityFurnace.java 2015-05-21 19:02:24.117651149 +1000 |
3 3 | |
4 4 | package net.minecraft.server; |
5 5 | |
6 6 | +// CraftBukkit start |
7 7 | +import java.util.List; |
8 8 | + |
9 9 | +import org.bukkit.craftbukkit.inventory.CraftItemStack; |
10 10 | +import org.bukkit.entity.HumanEntity; |
11 11 | +import org.bukkit.event.inventory.FurnaceBurnEvent; |
12 12 | +import org.bukkit.event.inventory.FurnaceSmeltEvent; |
63 63 | - return 64; |
64 64 | + return maxStack; // CraftBukkit |
65 65 | } |
66 66 | |
67 67 | public boolean isBurning() { |
68 68 | |
69 69 | } |
70 70 | |
71 71 | public void c() { |
72 72 | - boolean flag = this.isBurning(); |
73 - | + boolean flag = (this.w() == Blocks.LIT_FURNACE); // CraftBukkit - SPIGOT-844 - Check if furnace block is lit using the block instead of burn time |
73 + | + boolean flag = (this.w() == Blocks.LIT_FURNACE); // CraftBukkit - SPIGOT-844 - Check if furnace block is lit using the block instead of burn time // PAIL: Rename |
74 74 | boolean flag1 = false; |
75 75 | |
76 76 | + // CraftBukkit start - Use wall time instead of ticks for cooking |
77 77 | + int elapsedTicks = MinecraftServer.currentTick - this.lastTick; |
78 78 | + this.lastTick = MinecraftServer.currentTick; |
79 79 | + |
80 80 | + // CraftBukkit - moved from below |
81 81 | + if (this.isBurning() && this.canBurn()) { |
82 82 | + this.cookTime += elapsedTicks; |
83 83 | + if (this.cookTime >= this.cookTimeTotal) { |
123 123 | if (this.items[1] != null) { |
124 124 | --this.items[1].count; |
125 125 | |
126 126 | } |
127 127 | } |
128 128 | |
129 129 | + /* CraftBukkit start - Moved up |
130 130 | if (this.isBurning() && this.canBurn()) { |
131 131 | ++this.cookTime; |
132 132 | if (this.cookTime == this.cookTimeTotal) { |
133 - | |
133 + | |
134 134 | } else { |
135 135 | this.cookTime = 0; |
136 136 | } |
137 137 | + */ |
138 138 | } |
139 139 | |
140 140 | if (flag != this.isBurning()) { |
141 - | |
141 + | flag1 = true; |
142 + | BlockFurnace.a(this.isBurning(), this.world, this.position); |
143 + | + this.E(); // CraftBukkit - Invalidate tile entity's cached block type // PAIL: Rename |
144 + | } |
145 + | } |
146 + | |
147 + | |
142 148 | } else { |
143 149 | ItemStack itemstack = RecipesFurnace.getInstance().getResult(this.items[0]); |
144 150 | |
145 151 | - return itemstack == null ? false : (this.items[2] == null ? true : (!this.items[2].doMaterialsMatch(itemstack) ? false : (this.items[2].count < this.getMaxStackSize() && this.items[2].count < this.items[2].getMaxStackSize() ? true : this.items[2].count < itemstack.getMaxStackSize()))); |
146 152 | + // CraftBukkit - consider resultant count instead of current count |
147 153 | + return itemstack == null ? false : (this.items[2] == null ? true : (!this.items[2].doMaterialsMatch(itemstack) ? false : (this.items[2].count + itemstack.count <= this.getMaxStackSize() && this.items[2].count < this.items[2].getMaxStackSize() ? true : this.items[2].count + itemstack.count <= itemstack.getMaxStackSize()))); |
148 154 | } |
149 155 | } |
150 156 | |
151 - | |
157 + | |
152 158 | if (this.canBurn()) { |
153 159 | ItemStack itemstack = RecipesFurnace.getInstance().getResult(this.items[0]); |
154 160 | |
155 161 | + // CraftBukkit start - fire FurnaceSmeltEvent |
156 162 | + CraftItemStack source = CraftItemStack.asCraftMirror(this.items[0]); |
157 163 | + org.bukkit.inventory.ItemStack result = CraftItemStack.asBukkitCopy(itemstack); |
158 164 | + |
159 165 | + FurnaceSmeltEvent furnaceSmeltEvent = new FurnaceSmeltEvent(this.world.getWorld().getBlockAt(position.getX(), position.getY(), position.getZ()), source, result); |
160 166 | + this.world.getServer().getPluginManager().callEvent(furnaceSmeltEvent); |
161 167 | + |