Package appeng.me.storage

Source Code of appeng.me.storage.CreativeCellInventory

package appeng.me.storage;

import net.minecraft.item.ItemStack;
import appeng.api.AEApi;
import appeng.api.config.AccessRestriction;
import appeng.api.config.Actionable;
import appeng.api.networking.security.BaseActionSource;
import appeng.api.storage.IMEInventoryHandler;
import appeng.api.storage.StorageChannel;
import appeng.api.storage.data.IAEItemStack;
import appeng.api.storage.data.IItemList;
import appeng.items.contents.CellConfig;
import appeng.util.item.AEItemStack;

public class CreativeCellInventory implements IMEInventoryHandler<IAEItemStack>
{

  final IItemList<IAEItemStack> itemListCache = AEApi.instance().storage().createItemList();

  public static IMEInventoryHandler getCell(ItemStack o)
  {
    return new CellInventoryHandler( new CreativeCellInventory( o ) );
  }

  protected CreativeCellInventory(ItemStack o)
  {
    CellConfig cc = new CellConfig( o );
    for (ItemStack is : cc)
      if ( is != null )
      {
        IAEItemStack i = AEItemStack.create( is );
        i.setStackSize( Integer.MAX_VALUE );
        itemListCache.add( i );
      }
  }

  @Override
  public IAEItemStack injectItems(IAEItemStack input, Actionable mode, BaseActionSource src)
  {
    IAEItemStack local = itemListCache.findPrecise( input );
    if ( local == null )
      return input;

    return null;
  }

  @Override
  public IAEItemStack extractItems(IAEItemStack request, Actionable mode, BaseActionSource src)
  {
    IAEItemStack local = itemListCache.findPrecise( request );
    if ( local == null )
      return null;

    return request.copy();
  }

  @Override
  public IItemList<IAEItemStack> getAvailableItems(IItemList out)
  {
    for (IAEItemStack ais : itemListCache)
      out.add( ais );
    return out;
  }

  @Override
  public StorageChannel getChannel()
  {
    return StorageChannel.ITEMS;
  }

  @Override
  public AccessRestriction getAccess()
  {
    return AccessRestriction.READ_WRITE;
  }

  @Override
  public boolean isPrioritized(IAEItemStack input)
  {
    return itemListCache.findPrecise( input ) != null;
  }

  @Override
  public boolean canAccept(IAEItemStack input)
  {
    return itemListCache.findPrecise( input ) != null;
  }

  @Override
  public int getPriority()
  {
    return 0;
  }

  @Override
  public int getSlot()
  {
    return 0;
  }

  @Override
  public boolean validForPass(int i)
  {
    return true;
  }

}
TOP

Related Classes of appeng.me.storage.CreativeCellInventory

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.