/** * Looks for anything, that can hold items (like chests, furnaces, etc.) one block above the given * hopper. */ public static IInventory getInventoryAboveHopper(Hopper par0Hopper) { return getInventoryAtLocation( par0Hopper.getWorldObj(), par0Hopper.getXPos(), par0Hopper.getYPos() + 1.0D, par0Hopper.getZPos()); }
/** Sucks one item into the given hopper from an inventory or EntityItem above it. */ public static boolean suckItemsIntoHopper(Hopper par0Hopper) { IInventory iinventory = getInventoryAboveHopper(par0Hopper); if (iinventory != null) { byte b0 = 0; if (iinventory instanceof ISidedInventory && b0 > -1) { ISidedInventory isidedinventory = (ISidedInventory) iinventory; int[] aint = isidedinventory.getAccessibleSlotsFromSide(b0); for (int i = 0; i < aint.length; ++i) { if (insertStackFromInventory(par0Hopper, iinventory, aint[i], b0)) { return true; } } } else { int j = iinventory.getSizeInventory(); for (int k = 0; k < j; ++k) { if (insertStackFromInventory(par0Hopper, iinventory, k, b0)) { return true; } } } } else { EntityItem entityitem = getEntityAbove( par0Hopper.getWorldObj(), par0Hopper.getXPos(), par0Hopper.getYPos() + 1.0D, par0Hopper.getZPos()); if (entityitem != null) { return insertStackFromEntity(par0Hopper, entityitem); } } return false; }