-
Notifications
You must be signed in to change notification settings - Fork 497
/
InventoryWrapper.java
122 lines (99 loc) · 3.18 KB
/
InventoryWrapper.java
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com
* <p/>
* BuildCraft is distributed under the terms of the Minecraft Mod Public License 1.0, or MMPL. Please check the contents
* of the license located in http://www.mod-buildcraft.com/MMPL-1.0.txt */
package buildcraft.core.lib.inventory;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.ISidedInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IChatComponent;
public abstract class InventoryWrapper implements ISidedInventory {
IInventory inventory;
public InventoryWrapper(IInventory inventory) {
this.inventory = inventory;
}
/* DIRECT MAPPING */
@Override
public int getSizeInventory() {
return inventory.getSizeInventory();
}
@Override
public ItemStack getStackInSlot(int slotIndex) {
return inventory.getStackInSlot(slotIndex);
}
@Override
public ItemStack decrStackSize(int slotIndex, int amount) {
return inventory.decrStackSize(slotIndex, amount);
}
@Override
public ItemStack removeStackFromSlot(int slotIndex) {
return inventory.removeStackFromSlot(slotIndex);
}
@Override
public void setInventorySlotContents(int slotIndex, ItemStack itemstack) {
inventory.setInventorySlotContents(slotIndex, itemstack);
}
@Override
public int getInventoryStackLimit() {
return inventory.getInventoryStackLimit();
}
@Override
public void markDirty() {
inventory.markDirty();
}
@Override
public boolean isUseableByPlayer(EntityPlayer entityplayer) {
return inventory.isUseableByPlayer(entityplayer);
}
@Override
public void openInventory(EntityPlayer player) {
inventory.openInventory(player);
}
@Override
public void closeInventory(EntityPlayer player) {
inventory.closeInventory(player);
}
@Override
public boolean isItemValidForSlot(int slotIndex, ItemStack itemstack) {
return inventory.isItemValidForSlot(slotIndex, itemstack);
}
@Override
public boolean hasCustomName() {
return inventory.hasCustomName();
}
@Override
public int getField(int id) {
return inventory.getField(id);
}
@Override
public void setField(int id, int value) {
inventory.setField(id, value);
}
@Override
public int getFieldCount() {
return inventory.getFieldCount();
}
@Override
public void clear() {
inventory.clear();
}
@Override
public String getName() {
return inventory.getName();
}
@Override
public IChatComponent getDisplayName() {
return inventory.getDisplayName();
}
/* STATIC HELPER */
public static ISidedInventory getWrappedInventory(Object inventory) {
if (inventory instanceof ISidedInventory) {
return (ISidedInventory) inventory;
} else if (inventory instanceof IInventory) {
return new InventoryWrapperSimple(InvUtils.getInventory((IInventory) inventory));
} else {
return null;
}
}
}