aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/multitileentity/interfaces/IMultiBlockInventory.java
blob: 4df5a11cc0f18404299f7f84fe634bd32c77c281 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package gregtech.api.multitileentity.interfaces;

import gregtech.api.multitileentity.multiblock.base.MultiBlockPart;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;

public interface IMultiBlockInventory {
    boolean hasInventoryBeenModified        (MultiBlockPart aPart);
    boolean isValidSlot                     (MultiBlockPart aPart, int aIndex);
    boolean addStackToSlot                  (MultiBlockPart aPart, int aIndex, ItemStack aStack);
    boolean addStackToSlot                  (MultiBlockPart aPart, int aIndex, ItemStack aStack, int aAmount);
    int[] getAccessibleSlotsFromSide        (MultiBlockPart aPart, byte aSide);
    boolean canInsertItem                   (MultiBlockPart aPart, int aSlot, ItemStack aStack, byte aSide);
    boolean canExtractItem                  (MultiBlockPart aPart, int aSlot, ItemStack aStack, byte aSide);
    int getSizeInventory                    (MultiBlockPart aPart);
    ItemStack getStackInSlot                (MultiBlockPart aPart, int aSlot);
    ItemStack decrStackSize                 (MultiBlockPart aPart, int aSlot, int aDecrement);
    ItemStack getStackInSlotOnClosing       (MultiBlockPart aPart, int aSlot);
    void setInventorySlotContents           (MultiBlockPart aPart, int aSlot, ItemStack aStack);
    String getInventoryName                 (MultiBlockPart aPart);
    boolean hasCustomInventoryName          (MultiBlockPart aPart);
    int getInventoryStackLimit              (MultiBlockPart aPart);
    void markDirty                          (MultiBlockPart aPart);
    boolean isUseableByPlayer               (MultiBlockPart aPart, EntityPlayer aPlayer);
    void openInventory                      (MultiBlockPart aPart);
    void closeInventory                     (MultiBlockPart aPart);
    boolean isItemValidForSlot              (MultiBlockPart aPart, int aSlot, ItemStack aStack);
}