Remove tile entities when a block is removed.

This commit is contained in:
Tahg 2012-02-02 07:54:51 -05:00 committed by EvilSeph
parent 8b5289d431
commit 2dba592dc4

View File

@ -311,8 +311,11 @@ public class Chunk {
if (l1 != 0) { if (l1 != 0) {
if (!this.world.isStatic) { if (!this.world.isStatic) {
Block.byId[l1].remove(this.world, i2, j, j2); Block.byId[l1].remove(this.world, i2, j, j2);
} else if (Block.byId[l1] instanceof BlockContainer && l1 != l) { // CraftBukkit start - delete tile entities for removed blocks
this.world.n(i2, j, j2); if (Block.byId[l1] instanceof BlockContainer) {
this.world.n(i2, j, j2);
}
// CraftBukkit end
} }
} }
@ -384,6 +387,11 @@ public class Chunk {
this.b[i << this.world.heightBitsPlusFour | k << this.world.heightBits | j] = (byte) (b0 & 255); this.b[i << this.world.heightBitsPlusFour | k << this.world.heightBits | j] = (byte) (b0 & 255);
if (k1 != 0) { if (k1 != 0) {
Block.byId[k1].remove(this.world, l1, j, i2); Block.byId[k1].remove(this.world, l1, j, i2);
// CraftBukkit start - delete tile entities for removed blocks
if (Block.byId[k1] instanceof BlockContainer) {
this.world.n(l1, j, i2);
}
// CraftBukkit end
} }
this.g.a(i, j, k, 0); this.g.a(i, j, k, 0);