package com.cricketcraft.chisel.network.message; import io.netty.buffer.ByteBuf; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import com.cricketcraft.chisel.Chisel; import com.cricketcraft.chisel.api.carving.ICarvingVariation; import com.cricketcraft.chisel.client.GeneralChiselClient; import com.cricketcraft.chisel.item.chisel.ItemChisel; import com.cricketcraft.chisel.network.message.base.MessageCoords; import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; public class MessageChiselSound extends MessageCoords { public MessageChiselSound() { super(); } private int block; private byte meta; private boolean breakChisel; public MessageChiselSound(int x, int y, int z, ICarvingVariation v, boolean breakChisel) { super(x, y, z); this.block = Block.getIdFromBlock(v.getBlock()); this.meta = (byte) v.getBlockMeta(); this.breakChisel = breakChisel; } @Override public void toBytes(ByteBuf buf) { super.toBytes(buf); buf.writeInt(block); buf.writeByte(meta); buf.writeBoolean(breakChisel); } @Override public void fromBytes(ByteBuf buf) { super.fromBytes(buf); block = buf.readInt(); meta = buf.readByte(); breakChisel = buf.readBoolean(); } public static class Handler implements IMessageHandler<MessageChiselSound, IMessage> { @Override public IMessage onMessage(MessageChiselSound message, MessageContext ctx) { String sound = ItemChisel.carving.getVariationSound(Block.getBlockById(message.block), message.meta); GeneralChiselClient.spawnChiselEffect(message.x, message.y, message.z, sound); if (message.breakChisel) { EntityPlayer player = Chisel.proxy.getClientPlayer(); player.renderBrokenItemStack(player.getCurrentEquippedItem()); } return null; } } }