Package crazypants.enderio.conduit.gui.item

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

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.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.packet.AbstractConduitPacket;
import crazypants.enderio.conduit.packet.ConTypeEnum;

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

  private ForgeDirection dir;
  private boolean isClear;
  private boolean isInput;

  public PacketExistingItemFilterSnapshot() {   
  }
 
  public PacketExistingItemFilterSnapshot(IItemConduit con, ForgeDirection dir, boolean isInput, boolean isClear) {
    super(con.getBundle().getEntity(), ConTypeEnum.ITEM);
    this.dir = dir;
    this.isInput= isInput;
    this.isClear = isClear;
  }
 
  @Override
  public void fromBytes(ByteBuf buf) {
    super.fromBytes(buf);
    dir = ForgeDirection.values()[buf.readShort()];
    isInput = buf.readBoolean();
    isClear = buf.readBoolean();  
  }

  @Override
  public void toBytes(ByteBuf buf) {
    super.toBytes(buf);
    buf.writeShort(dir.ordinal());
    buf.writeBoolean(isInput);
    buf.writeBoolean(isClear);   
  }

  @Override
  public PacketExistingItemFilterSnapshot onMessage(PacketExistingItemFilterSnapshot message, MessageContext ctx) {
    IItemConduit conduit = message.getTileCasted(ctx);
    if(conduit == null) {
      return null;
    }
    ExistingItemFilter filter;
    if(message.isInput) {
      filter = (ExistingItemFilter)conduit.getInputFilter(message.dir)
    } else {
      filter = (ExistingItemFilter)conduit.getOutputFilter(message.dir);
    }
   
    if(message.isClear) {     
      filter.setSnapshot((List<ItemStack>)null);
      System.out.println("PacketExistingItemFilterSnapshot.onMessage: Cleared snapshot");     
    } else {
      ItemConduitNetwork icn = (ItemConduitNetwork)conduit.getNetwork();   
      NetworkedInventory inv = icn.getInventory(conduit, message.dir);
      filter.setSnapshot(inv);       
    }
   
    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.PacketExistingItemFilterSnapshot

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.