diff --git a/src/main/java/net/minecraft/server/TileEntityNote.java b/src/main/java/net/minecraft/server/TileEntityNote.java new file mode 100644 index 0000000000..684bbc6dc7 --- /dev/null +++ b/src/main/java/net/minecraft/server/TileEntityNote.java @@ -0,0 +1,56 @@ +package net.minecraft.server; + +public class TileEntityNote extends TileEntity { + + public byte note = 0; + public boolean b = false; + + public TileEntityNote() {} + + public void b(NBTTagCompound nbttagcompound) { + super.b(nbttagcompound); + nbttagcompound.setByte("note", this.note); + } + + public void a(NBTTagCompound nbttagcompound) { + super.a(nbttagcompound); + this.note = nbttagcompound.getByte("note"); + if (this.note < 0) { + this.note = 0; + } + + if (this.note > 24) { + this.note = 24; + } + } + + public void c() { + this.note = (byte) ((this.note + 1) % 25); + this.update(); + } + + public void play(World world, int i, int j, int k) { + if (world.getMaterial(i, j + 1, k) == Material.AIR) { + Material material = world.getMaterial(i, j - 1, k); + byte b0 = 0; + + if (material == Material.STONE) { + b0 = 1; + } + + if (material == Material.SAND) { + b0 = 2; + } + + if (material == Material.SHATTERABLE) { + b0 = 3; + } + + if (material == Material.WOOD) { + b0 = 4; + } + + world.playNote(i, j, k, b0, this.note); + } + } +}