Applied-Energistics-2-tiler.../core/features/registries/entries/BasicCellHandler.java

79 lines
2.2 KiB
Java

package appeng.core.features.registries.entries;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import appeng.api.implementations.tiles.IChestOrDrive;
import appeng.api.storage.ICellHandler;
import appeng.api.storage.ICellInventory;
import appeng.api.storage.ICellInventoryHandler;
import appeng.api.storage.IMEInventory;
import appeng.api.storage.IMEInventoryHandler;
import appeng.api.storage.ISaveProvider;
import appeng.api.storage.StorageChannel;
import appeng.client.texture.ExtraBlockTextures;
import appeng.core.sync.GuiBridge;
import appeng.me.storage.CellInventory;
import appeng.me.storage.CellInventoryHandler;
import appeng.tile.AEBaseTile;
import appeng.util.Platform;
public class BasicCellHandler implements ICellHandler
{
@Override
public boolean isCell(ItemStack is)
{
return CellInventory.isCell( is );
}
@Override
public IMEInventoryHandler getCellInventory(ItemStack is, ISaveProvider container, StorageChannel channel)
{
if ( channel == StorageChannel.ITEMS )
return CellInventory.getCell( is, container );
return null;
}
@Override
public IIcon getTopTexture_Dark()
{
return ExtraBlockTextures.BlockMEChestItems_Dark.getIcon();
}
@Override
public IIcon getTopTexture_Light()
{
return ExtraBlockTextures.BlockMEChestItems_Light.getIcon();
}
@Override
public IIcon getTopTexture_Medium()
{
return ExtraBlockTextures.BlockMEChestItems_Medium.getIcon();
}
@Override
public void openChestGui(EntityPlayer player, IChestOrDrive chest, ICellHandler cellHandler, IMEInventoryHandler inv, ItemStack is, StorageChannel chan)
{
Platform.openGUI( player, (AEBaseTile) chest, chest.getUp(), GuiBridge.GUI_ME );
}
@Override
public int getStatusForCell(ItemStack is, IMEInventory handler)
{
if ( handler instanceof CellInventoryHandler )
{
CellInventoryHandler ci = (CellInventoryHandler) handler;
return ci.getCellInv().getStatusForCell();
}
return 0;
}
@Override
public double cellIdleDrain(ItemStack is, IMEInventory handler)
{
ICellInventory inv = ((ICellInventoryHandler) handler).getCellInv();
return inv.getIdleDrain();
}
}