package net.minecraft.tileentity; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; public class TileEntityNote extends TileEntity { /** Note to play */ public byte note = 0; /** stores the latest redstone state */ public boolean previousRedstoneState = false; /** * Writes a tile entity to NBT. */ public void writeToNBT(NBTTagCompound par1NBTTagCompound) { super.writeToNBT(par1NBTTagCompound); par1NBTTagCompound.setByte("note", this.note); } /** * Reads a tile entity from NBT. */ public void readFromNBT(NBTTagCompound par1NBTTagCompound) { super.readFromNBT(par1NBTTagCompound); this.note = par1NBTTagCompound.getByte("note"); if (this.note < 0) { this.note = 0; } if (this.note > 24) { this.note = 24; } } /** * change pitch by -> (currentPitch + 1) % 25 */ public void changePitch() { this.note = (byte)((this.note + 1) % 25); this.onInventoryChanged(); } /** * plays the stored note */ public void triggerNote(World par1World, int par2, int par3, int par4) { if (par1World.getBlockMaterial(par2, par3 + 1, par4) == Material.air) { Material var5 = par1World.getBlockMaterial(par2, par3 - 1, par4); byte var6 = 0; if (var5 == Material.rock) { var6 = 1; } if (var5 == Material.sand) { var6 = 2; } if (var5 == Material.glass) { var6 = 3; } if (var5 == Material.wood) { var6 = 4; } par1World.addBlockEvent(par2, par3, par4, Block.music.blockID, var6, this.note); } } }