Package crazypants.enderio.conduit.gui.item

Source Code of crazypants.enderio.conduit.gui.item.PacketModItemFilter

package crazypants.enderio.conduit.gui.item;

import io.netty.buffer.ByteBuf;

import java.util.List;

import net.minecraft.item.ItemStack;
import net.minecraftforge.common.util.ForgeDirection;
import cpw.mods.fml.common.network.ByteBufUtils;
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.conduit.item.IItemConduit;
import crazypants.enderio.conduit.item.ItemConduitNetwork;
import crazypants.enderio.conduit.item.NetworkedInventory;
import crazypants.enderio.conduit.item.filter.ExistingItemFilter;
import crazypants.enderio.conduit.item.filter.ModItemFilter;
import crazypants.enderio.conduit.packet.AbstractConduitPacket;
import crazypants.enderio.conduit.packet.ConTypeEnum;

public class PacketModItemFilter extends AbstractConduitPacket<IItemConduit> implements IMessageHandler<PacketModItemFilter, IMessage> {

  private ForgeDirection dir; 
  private boolean isInput;
  private int index;
  private String name;

  public PacketModItemFilter() {   
  }
 
  public PacketModItemFilter(IItemConduit con, ForgeDirection dir, boolean isInput, int index, String name) {
    super(con.getBundle().getEntity(), ConTypeEnum.ITEM);
    this.dir = dir;
    this.isInput= isInput;
    this.index = index;
    this.name = name;
  }
 
  @Override
  public void fromBytes(ByteBuf buf) {
    super.fromBytes(buf);
    dir = ForgeDirection.values()[buf.readShort()];
    isInput = buf.readBoolean();
    index = buf.readInt();  
    boolean isNull = buf.readBoolean();
    if(isNull) {
      name = null;
    } else {
      name = ByteBufUtils.readUTF8String(buf);
    }
  }

  @Override
  public void toBytes(ByteBuf buf) {
    super.toBytes(buf);
    buf.writeShort(dir.ordinal());
    buf.writeBoolean(isInput);
    buf.writeInt(index);
    buf.writeBoolean(name == null);
    if(name != null) {
      ByteBufUtils.writeUTF8String(buf, name);
    }
  }

  @Override
  public IMessage onMessage(PacketModItemFilter message, MessageContext ctx) {
    IItemConduit conduit = message.getTileCasted(ctx);
    if(conduit == null) {
      return null;
    }
    ModItemFilter filter;
    if(message.isInput) {
      filter = (ModItemFilter)conduit.getInputFilter(message.dir)
    } else {
      filter = (ModItemFilter)conduit.getOutputFilter(message.dir);
    }
   
    filter.setMod(message.index, message.name);
   
    if(message.isInput) {
      conduit.setInputFilter(message.dir, filter)
    } else {
      conduit.setOutputFilter(message.dir, filter);
    }
   
    return null;
  }
}
TOP

Related Classes of crazypants.enderio.conduit.gui.item.PacketModItemFilter

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.