Package mekanism.common.network

Source Code of mekanism.common.network.PacketTileEntity$TileEntityMessage

package mekanism.common.network;

import java.util.ArrayList;

import mekanism.api.Coord4D;
import mekanism.common.ITileNetwork;
import mekanism.common.PacketHandler;
import mekanism.common.network.PacketTileEntity.TileEntityMessage;

import net.minecraft.tileentity.TileEntity;
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 io.netty.buffer.ByteBuf;

public class PacketTileEntity implements IMessageHandler<TileEntityMessage, IMessage>
{
  @Override
  public IMessage onMessage(TileEntityMessage message, MessageContext context)
  {
    TileEntity tileEntity = message.coord4D.getTileEntity(PacketHandler.getPlayer(context).worldObj);
   
    if(tileEntity instanceof ITileNetwork)
    {
      try {
        ((ITileNetwork)tileEntity).handlePacketData(message.storedBuffer);
      } catch(Exception e) {
        e.printStackTrace();
      }
     
      message.storedBuffer.release();
    }
   
    return null;
  }
 
  public static class TileEntityMessage implements IMessage
  {
    public Coord4D coord4D;
 
    public ArrayList parameters;
   
    public ByteBuf storedBuffer = null;
   
    public TileEntityMessage() {}
 
    public TileEntityMessage(Coord4D coord, ArrayList params)
    {
      coord4D = coord;
      parameters = params;
    }
 
    @Override
    public void toBytes(ByteBuf dataStream)
    {
      dataStream.writeInt(coord4D.xCoord);
      dataStream.writeInt(coord4D.yCoord);
      dataStream.writeInt(coord4D.zCoord);
      dataStream.writeInt(coord4D.dimensionId);
 
      PacketHandler.encode(new Object[] {parameters}, dataStream);
    }
 
    @Override
    public void fromBytes(ByteBuf dataStream)
    {
      coord4D = new Coord4D(dataStream.readInt(), dataStream.readInt(), dataStream.readInt(), dataStream.readInt());
     
      storedBuffer = dataStream.copy();
    }
  }
}
TOP

Related Classes of mekanism.common.network.PacketTileEntity$TileEntityMessage

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.