AE2 First Commit, the dawn of 1.7 hast arrived.
This commit is contained in:
@@ -0,0 +1,118 @@
|
||||
package appeng.me.storage;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
import appeng.api.config.Actionable;
|
||||
import appeng.api.exceptions.AppEngException;
|
||||
import appeng.api.implementations.IStorageCell;
|
||||
import appeng.api.storage.IMEInventoryHandler;
|
||||
import appeng.api.storage.data.IAEItemStack;
|
||||
import appeng.util.Platform;
|
||||
import appeng.util.item.ItemList;
|
||||
|
||||
public class CreativeCellInventory extends CellInventory implements IStorageCell
|
||||
{
|
||||
|
||||
ItemList itemListCache;
|
||||
|
||||
public static IMEInventoryHandler getCell(ItemStack o)
|
||||
{
|
||||
try
|
||||
{
|
||||
return new CellInventoryHandler( new CreativeCellInventory( o ) );
|
||||
}
|
||||
catch (AppEngException e)
|
||||
{
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
protected CreativeCellInventory(ItemStack o) throws AppEngException {
|
||||
super( Platform.openNbtData( o ) );
|
||||
|
||||
if ( MAX_ITEM_TYPES > 63 )
|
||||
MAX_ITEM_TYPES = 63;
|
||||
if ( MAX_ITEM_TYPES < 1 )
|
||||
MAX_ITEM_TYPES = 1;
|
||||
|
||||
storedItems = tagCompound.getShort( ITEM_TYPE_TAG );
|
||||
storedItemCount = tagCompound.getInteger( ITEM_COUNT_TAG );
|
||||
cellItems = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isStorageCell(ItemStack i)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getBytes(ItemStack cellItem)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int BytePerType(ItemStack iscellItem)
|
||||
{
|
||||
return 8;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getTotalTypes(ItemStack cellItem)
|
||||
{
|
||||
return 63;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isBlackListed(ItemStack cellItem, IAEItemStack requsetedAddition)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean storableInStorageCell()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IAEItemStack injectItems(IAEItemStack input, Actionable mode)
|
||||
{
|
||||
IAEItemStack local = getCellItems().findPrecise( input );
|
||||
if ( local == null )
|
||||
return input;
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IAEItemStack extractItems(IAEItemStack request, Actionable mode)
|
||||
{
|
||||
IAEItemStack local = getCellItems().findPrecise( request );
|
||||
if ( local == null )
|
||||
return null;
|
||||
|
||||
return request.copy();
|
||||
}
|
||||
|
||||
@Override
|
||||
ItemList<IAEItemStack> getCellItems()
|
||||
{
|
||||
if ( itemListCache != null )
|
||||
return itemListCache;
|
||||
|
||||
ItemList list = new ItemList();
|
||||
CellInventoryHandler handler = new CellInventoryHandler( this );
|
||||
|
||||
for (IAEItemStack is : handler.myPartitionList.getItems())
|
||||
{
|
||||
IAEItemStack b = is.copy();
|
||||
b.setStackSize( Integer.MAX_VALUE );
|
||||
list.add( b );
|
||||
}
|
||||
|
||||
return itemListCache = list;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user