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
123
124
125
126
|
package ihl.processing.metallurgy;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import ic2.core.ContainerBase;
import ic2.core.IC2;
import ic2.core.item.tool.HandHeldInventory;
import ic2.core.util.StackUtil;
public class CrucibleInventory extends HandHeldInventory {
ItemStack thisItemStack;
IInventory inventoryContainer;
public CrucibleInventory(EntityPlayer player, ItemStack stack) {
super(player, stack, 1);
thisItemStack = stack;
inventoryContainer = player.inventory;
}
public CrucibleInventory(IInventory inventoryContainer1, ItemStack stack) {
super(null, stack, 1);
thisItemStack = stack;
inventoryContainer = inventoryContainer1;
}
@Override
@SideOnly(Side.CLIENT)
public GuiScreen getGui(EntityPlayer player, boolean arg1) {
return new CrucibleGui(new CrucibleContainer(player, this));
}
@Override
public ContainerBase<?> getGuiContainer(EntityPlayer player) {
return new CrucibleContainer(player, this);
}
@Override
public String getInventoryName() {
return "crucible";
}
@Override
public boolean hasCustomInventoryName() {
return false;
}
@Override
public boolean isItemValidForSlot(int arg0, ItemStack stack) {
return true;
}
@Override
public int getInventoryStackLimit() {
return 6;
}
@Override
public void save() {
if (IC2.platform.isSimulating()) {
NBTTagCompound nbtTagCompound = StackUtil.getOrCreateNbtData(this.thisItemStack);
for (int nbtTagList = 0; nbtTagList < this.getSizeInventory(); ++nbtTagList) {
if (this.inventory[nbtTagList] != null) {
NBTTagCompound i = StackUtil.getOrCreateNbtData(this.inventory[nbtTagList]);
if (nbtTagCompound.getInteger("uid") == i.getInteger("uid")) {
this.thisItemStack.stackSize = 1;
this.inventory[nbtTagList] = null;
break;
}
}
}
NBTTagList var7 = new NBTTagList();
int var8;
for (var8 = 0; var8 < this.inventory.length; ++var8) {
if (this.inventory[var8] != null) {
NBTTagCompound itemStackSlot = new NBTTagCompound();
itemStackSlot.setByte("Slot", (byte) var8);
this.inventory[var8].writeToNBT(itemStackSlot);
var7.appendTag(itemStackSlot);
}
}
nbtTagCompound.setTag("Items", var7);
for (var8 = -1; var8 < inventoryContainer.getSizeInventory(); ++var8) {
ItemStack var9 = null;
if (var8 == -1 && inventoryContainer instanceof InventoryPlayer) {
var9 = ((InventoryPlayer) inventoryContainer).getItemStack();
} else if (var8 >= 0) {
var9 = inventoryContainer.getStackInSlot(var8);
}
if (var9 != null) {
NBTTagCompound nbtTagCompoundSlot = var9.getTagCompound();
if (nbtTagCompoundSlot != null
&& nbtTagCompound.getInteger("uid") == nbtTagCompoundSlot.getInteger("uid")) {
this.thisItemStack.stackSize = 1;
if (var8 == -1 && inventoryContainer instanceof InventoryPlayer) {
((InventoryPlayer) inventoryContainer).setItemStack(this.thisItemStack);
} else {
inventoryContainer.setInventorySlotContents(var8, this.thisItemStack);
}
break;
}
}
}
}
}
}
|