package crazypants.enderio.teleport.telepad; import io.netty.buffer.ByteBuf; import com.enderio.core.common.network.MessageTileEntity; import com.enderio.core.common.util.BlockCoord; import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; import crazypants.enderio.EnderIO; public class PacketUpdateCoords extends MessageTileEntity<TileTelePad> implements IMessageHandler<PacketUpdateCoords, IMessage>{ public PacketUpdateCoords() { super(); } private int targetX, targetY, targetZ, targetDim; public PacketUpdateCoords(TileTelePad te, int x, int y, int z, int targetDim) { super(te); this.targetX = x; this.targetY = y; this.targetZ = z; this.targetDim = targetDim; } public PacketUpdateCoords(TileTelePad te, BlockCoord bc, int targetDim) { this(te, bc.x, bc.y, bc.z, targetDim); } @Override public void toBytes(ByteBuf buf) { super.toBytes(buf); buf.writeInt(targetX); buf.writeInt(targetY); buf.writeInt(targetZ); buf.writeInt(targetDim); } @Override public void fromBytes(ByteBuf buf) { super.fromBytes(buf); targetX = buf.readInt(); targetY = buf.readInt(); targetZ = buf.readInt(); targetDim = buf.readInt(); } @Override public IMessage onMessage(PacketUpdateCoords message, MessageContext ctx) { TileTelePad te = message.getTileEntity(ctx.side.isClient() ? EnderIO.proxy.getClientWorld() : message.getWorld(ctx)); if(te != null) { te.setX(message.targetX); te.setY(message.targetY); te.setZ(message.targetZ); te.setTargetDim(message.targetDim); } return null; } }