package com.cricketcraft.chisel.network.message.base; import io.netty.buffer.ByteBuf; import net.minecraft.block.Block; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import com.cricketcraft.chisel.Chisel; import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.MessageContext; import cpw.mods.fml.relauncher.Side; public abstract class MessageCoords implements IMessage { public int x, y, z; protected MessageCoords() { ; } protected MessageCoords(int x, int y, int z) { this.x = x; this.y = y; this.z = z; } protected MessageCoords(TileEntity te) { this(te.xCoord, te.yCoord, te.zCoord); } @Override public void toBytes(ByteBuf buf) { buf.writeInt(x); buf.writeInt(y); buf.writeInt(z); } @Override public void fromBytes(ByteBuf buf) { this.x = buf.readInt(); this.y = buf.readInt(); this.z = buf.readInt(); } protected Block getBlock(MessageContext ctx) { return getWorld(ctx).getBlock(x, y, z); } protected TileEntity getTileEntity(MessageContext ctx) { return getWorld(ctx).getTileEntity(x, y, z); } protected World getWorld(MessageContext ctx) { if (ctx.side == Side.CLIENT) { return Chisel.proxy.getClientWorld(); } else { return ctx.getServerHandler().playerEntity.worldObj; } } }