public class OInventoryPlayer implements OIInventory, Container<OItemStack> {
public OItemStack[] a = new OItemStack[36];
public OItemStack[] b = new OItemStack[4];
public int c = 0;
public OEntityPlayer d;
private OItemStack f;
public boolean e = false;
private String name = "Inventory";
public OInventoryPlayer(OEntityPlayer paramOEntityPlayer) {
d = paramOEntityPlayer;
}
public OItemStack[] getContents() {
return a;
}
public void setContents(OItemStack[] values) {
a = values;
}
public OItemStack getContentsAt(int index) {
return c_(index);
}
public void setContentsAt(int index, OItemStack value) {
a(index, value);
}
public int getContentsSize() {
return q_();
}
public String getName() {
return name;
}
public void setName(String value) {
name = value;
}
public OItemStack b() {
if ((c < 9) && (c >= 0))
return a[c];
return null;
}
public static int e() {
return 9;
}
private int d(int paramInt) {
for (int i = 0; i < a.length; i++)
if ((a[i] != null) && (a[i].c == paramInt))
return i;
return -1;
}
private int c(OItemStack paramOItemStack) {
for (int i = 0; i < a.length; i++)
if ((a[i] != null) && (a[i].c == paramOItemStack.c) && (a[i].c()) && (a[i].a < a[i].b()) && (a[i].a < r_()) && ((!a[i].e()) || (a[i].h() == paramOItemStack.h())))
return i;
return -1;
}
private int k() {
for (int i = 0; i < a.length; i++)
if (a[i] == null)
return i;
return -1;
}
private int d(OItemStack paramOItemStack) {
int i = paramOItemStack.c;
int j = paramOItemStack.a;
int k = c(paramOItemStack);
if (k < 0)
k = k();
if (k < 0)
return j;
if (a[k] == null)
a[k] = new OItemStack(i, 0, paramOItemStack.h());
int m = j;
if (m > a[k].b() - a[k].a)
m = a[k].b() - a[k].a;
if (m > r_() - a[k].a)
m = r_() - a[k].a;
if (m == 0)
return j;
j -= m;
a[k].a += m;
a[k].b = 5;
return j;
}
public void f() {
for (int i = 0; i < a.length; i++) {
if ((a[i] == null) || (a[i].b <= 0))
continue;
a[i].b -= 1;
}
}
public boolean b(int paramInt) {
int i = d(paramInt);
if (i < 0)
return false;
if (--a[i].a <= 0)
a[i] = null;
return true;
}
public boolean a(OItemStack paramOItemStack) {
if (!paramOItemStack.f()) {
paramOItemStack.a = d(paramOItemStack);
if (paramOItemStack.a == 0)
return true;
}
int i = k();
if (i >= 0) {
a[i] = paramOItemStack;
a[i].b = 5;
return true;
}
return false;
}
public OItemStack a(int paramInt1, int paramInt2) {
OItemStack[] arrayOfOItemStack = a;
if (paramInt1 >= a.length) {
arrayOfOItemStack = b;
paramInt1 -= a.length;
}
if (arrayOfOItemStack[paramInt1] != null) {
if (arrayOfOItemStack[paramInt1].a <= paramInt2) {
OItemStack localOItemStack = arrayOfOItemStack[paramInt1];
arrayOfOItemStack[paramInt1] = null;
return localOItemStack;
}
OItemStack localOItemStack = arrayOfOItemStack[paramInt1].a(paramInt2);
if (arrayOfOItemStack[paramInt1].a == 0)
arrayOfOItemStack[paramInt1] = null;
return localOItemStack;
}
return null;
}
public void a(int paramInt, OItemStack paramOItemStack) {
OItemStack[] arrayOfOItemStack = a;
if (paramInt >= arrayOfOItemStack.length) {
paramInt -= arrayOfOItemStack.length;
arrayOfOItemStack = b;
}
arrayOfOItemStack[paramInt] = paramOItemStack;
}
public float a(OBlock paramOBlock) {
float f1 = 1.0F;
if (a[c] != null)
f1 *= a[c].a(paramOBlock);
return f1;
}
public ONBTTagList a(ONBTTagList paramONBTTagList) {
ONBTTagCompound localONBTTagCompound;
for (int i = 0; i < a.length; i++)
if (a[i] != null) {
localONBTTagCompound = new ONBTTagCompound();
localONBTTagCompound.a("Slot", (byte) i);
a[i].a(localONBTTagCompound);
paramONBTTagList.a(localONBTTagCompound);
}
for (int i = 0; i < b.length; i++)
if (b[i] != null) {
localONBTTagCompound = new ONBTTagCompound();
localONBTTagCompound.a("Slot", (byte) (i + 100));
b[i].a(localONBTTagCompound);
paramONBTTagList.a(localONBTTagCompound);
}
return paramONBTTagList;
}
public void b(ONBTTagList paramONBTTagList) {
a = new OItemStack[36];
b = new OItemStack[4];
for (int i = 0; i < paramONBTTagList.c(); i++) {
ONBTTagCompound localONBTTagCompound = (ONBTTagCompound) paramONBTTagList.a(i);
int j = localONBTTagCompound.c("Slot") & 0xFF;
OItemStack localOItemStack = new OItemStack(localONBTTagCompound);
if (localOItemStack.a() != null) {
if ((j >= 0) && (j < a.length))
a[j] = localOItemStack;
if ((j < 100) || (j >= b.length + 100))
continue;
b[(j - 100)] = localOItemStack;
}
}
}
public int q_() {
return a.length + 4;
}
public OItemStack c_(int paramInt) {
OItemStack[] arrayOfOItemStack = a;
if (paramInt >= arrayOfOItemStack.length) {
paramInt -= arrayOfOItemStack.length;
arrayOfOItemStack = b;
}
return arrayOfOItemStack[paramInt];
}
public String c() {
return "Inventory";
}
public int r_() {
return 64;
}
public int a(OEntity paramOEntity) {
OItemStack localOItemStack = c_(c);
if (localOItemStack != null)
return localOItemStack.a(paramOEntity);
return 1;
}
public boolean b(OBlock paramOBlock) {
if ((paramOBlock.bw != OMaterial.d) && (paramOBlock.bw != OMaterial.e) && (paramOBlock.bw != OMaterial.t) && (paramOBlock.bw != OMaterial.s))
return true;
OItemStack localOItemStack = c_(c);
if (localOItemStack != null)
return localOItemStack.b(paramOBlock);
return false;
}
public int g() {
int i = 0;
int j = 0;
int k = 0;
for (OItemStack element : b)
if ((element != null) && ((element.a() instanceof OItemArmor))) {
int n = element.i();
int i1 = element.g();
int i2 = n - i1;
j += i2;
k += n;
int i3 = ((OItemArmor) element.a()).bj;
i += i3;
}
if (k == 0)
return 0;
return (i - 1) * j / k + 1;
}
public void c(int paramInt) {
for (int i = 0; i < b.length; i++)
if ((b[i] != null) && ((b[i].a() instanceof OItemArmor))) {
b[i].a(paramInt, d);
if (b[i].a == 0) {
b[i].a(d);
b[i] = null;
}
}
}
public void h() {
for (int i = 0; i < a.length; i++)
if (a[i] != null) {
d.a(a[i], true);
a[i] = null;
}
for (int i = 0; i < b.length; i++)
if (b[i] != null) {
d.a(b[i], true);
b[i] = null;
}
}
public void i() {
e = true;
}
public void b(OItemStack paramOItemStack) {
f = paramOItemStack;
d.a(paramOItemStack);
}
public OItemStack j() {
return f;
}
public boolean a_(OEntityPlayer paramOEntityPlayer) {
if (d.bb)
return false;
return paramOEntityPlayer.g(d) <= 64.0D;
}
}