aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/multitileentity/interfaces/IMultiBlockInventory.java
blob: e095b739b72996efaa74c3cd9c2a57b0f35e0f21 (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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
package gregtech.api.multitileentity.interfaces;

import java.util.List;

import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;

import com.gtnewhorizons.modularui.api.forge.IItemHandlerModifiable;
import gregtech.api.multitileentity.multiblock.base.MultiBlockPart;

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);

    IItemHandlerModifiable getInventoryForGUI(MultiBlockPart aPart);

    List<String> getInventoryNames(MultiBlockPart aPart);

    List<String> getInventoryIDs(MultiBlockPart aPart);
}