use of forestry.storage.inventory.ItemInventoryBackpack in project ForestryMC by ForestryMC.
the class ItemBackpack method tryStowing.
public static void tryStowing(EntityPlayer player, ItemStack backpackStack, ItemStack stack) {
if (getMode(backpackStack) == BackpackMode.LOCKED) {
return;
}
ItemBackpack backpack = (ItemBackpack) backpackStack.getItem();
ItemInventory inventory = new ItemInventoryBackpack(player, backpack.getBackpackSize(), backpackStack);
if (MinecraftForge.EVENT_BUS.post(new BackpackStowEvent(player, backpack.getDefinition(), inventory, stack))) {
return;
}
if (stack.isEmpty()) {
return;
}
IItemHandler itemHandler = inventory.getItemHandler();
ItemHandlerInventoryManipulator manipulator = new ItemHandlerInventoryManipulator(itemHandler);
ItemStack remainder = manipulator.addStack(stack);
stack.setCount(remainder == null ? 0 : remainder.getCount());
}
use of forestry.storage.inventory.ItemInventoryBackpack in project ForestryMC by ForestryMC.
the class ItemBackpack method evaluateTileHit.
private boolean evaluateTileHit(ItemStack stack, EntityPlayer player, World world, BlockPos pos, EnumFacing side) {
// Shift right-clicking on an inventory tile will attempt to transfer
// items contained in the backpack
IItemHandler inventory = getInventoryHit(world, pos, side);
// Process only inventories
if (inventory != null) {
// Must have inventory slots
if (inventory.getSlots() <= 0) {
return true;
}
if (!world.isRemote) {
// Create our own backpack inventory
ItemInventoryBackpack backpackInventory = new ItemInventoryBackpack(player, getBackpackSize(), stack);
BackpackMode mode = getMode(stack);
if (mode == BackpackMode.RECEIVE) {
receiveFromChest(backpackInventory, inventory);
} else {
transferToChest(backpackInventory, inventory);
}
}
return true;
}
return false;
}
use of forestry.storage.inventory.ItemInventoryBackpack in project ForestryMC by ForestryMC.
the class ResupplyHandler method resupply.
@Override
public void resupply(EntityPlayer player) {
// Do not attempt resupplying if this backpack is already opened.
if (!(player.openContainer instanceof ContainerPlayer)) {
return;
}
for (ItemStack backpack : getBackpacks(player.inventory)) {
if (ItemBackpack.getMode(backpack) == BackpackMode.RESUPPLY) {
// Load their inventory
ItemBackpack backpackItem = (ItemBackpack) backpack.getItem();
ItemInventory backpackInventory = new ItemInventoryBackpack(player, backpackItem.getBackpackSize(), backpack);
Event event = new BackpackResupplyEvent(player, backpackItem.getDefinition(), backpackInventory);
if (!MinecraftForge.EVENT_BUS.post(event)) {
for (int i = 0; i < backpackInventory.getSizeInventory(); i++) {
ItemStack itemStack = backpackInventory.getStackInSlot(i);
if (topOffPlayerInventory(player, itemStack)) {
backpackInventory.setInventorySlotContents(i, itemStack);
break;
}
}
}
}
}
}
Aggregations