Package mekanism.common.network

Source Code of mekanism.common.network.PacketRobit$RobitMessage

package mekanism.common.network;

import mekanism.common.Mekanism;
import mekanism.common.PacketHandler;
import mekanism.common.entity.EntityRobit;
import mekanism.common.network.PacketRobit.RobitMessage;

import net.minecraft.entity.player.EntityPlayer;
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 PacketRobit implements IMessageHandler<RobitMessage, IMessage>
{
  @Override
  public IMessage onMessage(RobitMessage message, MessageContext context)
  {
    EntityPlayer player = PacketHandler.getPlayer(context);
   
    if(message.activeType == RobitPacketType.GUI)
    {
      if(message.guiType == 0)
      {
        player.openGui(Mekanism.instance, 21, player.worldObj, message.entityId, 0, 0);
      }
      else if(message.guiType == 1)
      {
        player.openGui(Mekanism.instance, 22, player.worldObj, message.entityId, 0, 0);
      }
      else if(message.guiType == 2)
      {
        player.openGui(Mekanism.instance, 23, player.worldObj, message.entityId, 0, 0);
      }
      else if(message.guiType == 3)
      {
        player.openGui(Mekanism.instance, 24, player.worldObj, message.entityId, 0, 0);
      }
      else if(message.guiType == 4)
      {
        player.openGui(Mekanism.instance, 25, player.worldObj, message.entityId, 0, 0);
      }
    }
    else if(message.activeType == RobitPacketType.FOLLOW)
    {
      EntityRobit robit = (EntityRobit)player.worldObj.getEntityByID(message.entityId);

      if(robit != null)
      {
        robit.setFollowing(!robit.getFollowing());
      }
    }
    else if(message.activeType == RobitPacketType.NAME)
    {
      EntityRobit robit = (EntityRobit)player.worldObj.getEntityByID(message.entityId);

      if(robit != null)
      {
        robit.setName(message.name);
      }
    }
    else if(message.activeType == RobitPacketType.GO_HOME)
    {
      EntityRobit robit = (EntityRobit)player.worldObj.getEntityByID(message.entityId);

      if(robit != null)
      {
        robit.goHome();
      }
    }
    else if(message.activeType == RobitPacketType.DROP_PICKUP)
    {
      EntityRobit robit = (EntityRobit)player.worldObj.getEntityByID(message.entityId);

      if(robit != null)
      {
        robit.setDropPickup(!robit.getDropPickup());
      }
    }
   
    return null;
  }
 
  public static class RobitMessage implements IMessage
  {
    public RobitPacketType activeType;
 
    public int guiType;
    public int entityId;
 
    public String name;
   
    public RobitMessage() {}
 
    public RobitMessage(RobitPacketType type, int i1, int i2, String s)
    {
      activeType = type;
 
      switch(activeType)
      {
        case GUI:
          guiType = i1;
          entityId = i2;
          break;
        case FOLLOW:
          entityId = i1;
          break;
        case NAME:
          name = s;
          entityId = i1;
          break;
        case GO_HOME:
          entityId = i1;
          break;
        case DROP_PICKUP:
          entityId = i1;
          break;
      }
    }
 
    @Override
    public void toBytes(ByteBuf dataStream)
    {
      dataStream.writeInt(activeType.ordinal());
 
      switch(activeType)
      {
        case GUI:
          dataStream.writeInt(guiType);
          dataStream.writeInt(entityId);
          break;
        case FOLLOW:
          dataStream.writeInt(entityId);
          break;
        case NAME:
          PacketHandler.writeString(dataStream, name);
          dataStream.writeInt(entityId);
          break;
        case GO_HOME:
          dataStream.writeInt(entityId);
          break;
        case DROP_PICKUP:
          dataStream.writeInt(entityId);
          break;
      }
    }
 
    @Override
    public void fromBytes(ByteBuf dataStream)
    {
      activeType = RobitPacketType.values()[dataStream.readInt()];
 
      if(activeType == RobitPacketType.GUI)
      {
        guiType = dataStream.readInt();
        entityId = dataStream.readInt();
      }
      else if(activeType == RobitPacketType.FOLLOW)
      {
        entityId = dataStream.readInt();
      }
      else if(activeType == RobitPacketType.NAME)
      {
        name = PacketHandler.readString(dataStream);
        entityId = dataStream.readInt();
      }
      else if(activeType == RobitPacketType.GO_HOME)
      {
        entityId = dataStream.readInt();
      }
      else if(activeType == RobitPacketType.DROP_PICKUP)
      {
        entityId = dataStream.readInt();
      }
    }
  }
 
  public static enum RobitPacketType
  {
    GUI,
    FOLLOW,
    NAME,
    GO_HOME,
    DROP_PICKUP;
  }
}
TOP

Related Classes of mekanism.common.network.PacketRobit$RobitMessage

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.