public class OEntityItem extends OEntity {
public OItemStack a;
private int e;
public int b = 0;
public int c;
private int f = 5;
public float d = (float) (Math.random() * 3.141592653589793D * 2.0D);
public OEntityItem(OWorld paramOWorld, double paramDouble1, double paramDouble2, double paramDouble3, OItemStack paramOItemStack) {
super(paramOWorld);
b(0.25F, 0.25F);
bc = (be / 2.0F);
a(paramDouble1, paramDouble2, paramDouble3);
a = paramOItemStack;
aQ = (float) (Math.random() * 360.0D);
aN = (float) (Math.random() * 0.2000000029802322D - 0.1000000014901161D);
aO = 0.2000000029802322D;
aP = (float) (Math.random() * 0.2000000029802322D - 0.1000000014901161D);
}
@Override
protected boolean l() {
return false;
}
public OEntityItem(OWorld paramOWorld) {
super(paramOWorld);
b(0.25F, 0.25F);
bc = (be / 2.0F);
}
@Override
protected void a() {
}
private long lastcall = System.currentTimeMillis();
private static int floor(double d) { int rt = (int) d; return rt > d ? rt-1 : rt; }
@Override
public void f_() {
super.f_();
if (c > 0) {
c -= floor((lastcall - System.currentTimeMillis())/50);
lastcall = System.currentTimeMillis();
}
aH = aK;
aI = aL;
aJ = aM;
aO -= 0.03999999910593033D;
if (aG.c(OMathHelper.b(aK), OMathHelper.b(aL), OMathHelper.b(aM)) == OMaterial.g) {
aO = 0.2000000029802322D;
aN = ((bq.nextFloat() - bq.nextFloat()) * 0.2F);
aP = ((bq.nextFloat() - bq.nextFloat()) * 0.2F);
aG.a(this, "random.fizz", 0.4F, 2.0F + bq.nextFloat() * 0.4F);
}
g(aK, aL, aM);
c(aN, aO, aP);
float f1 = 0.98F;
if (aV) {
f1 = 0.5880001F;
int i = aG.a(OMathHelper.b(aK), OMathHelper.b(aU.b) - 1, OMathHelper.b(aM));
if (i > 0)
f1 = OBlock.m[i].bx * 0.98F;
}
aN *= f1;
aO *= 0.9800000190734863D;
aP *= f1;
if (aV)
aO *= -0.5D;
e += 1;
b += 1;
if (b >= 6000)
D();
}
@Override
public boolean g_() {
return aG.a(aU, OMaterial.f, this);
}
private boolean g(double paramDouble1, double paramDouble2, double paramDouble3) {
int i = OMathHelper.b(paramDouble1);
int j = OMathHelper.b(paramDouble2);
int k = OMathHelper.b(paramDouble3);
double d1 = paramDouble1 - i;
double d2 = paramDouble2 - j;
double d3 = paramDouble3 - k;
if (OBlock.o[aG.a(i, j, k)] != false) {
int m = OBlock.o[aG.a(i - 1, j, k)] == false ? 1 : 0;
int n = OBlock.o[aG.a(i + 1, j, k)] == false ? 1 : 0;
int i1 = OBlock.o[aG.a(i, j - 1, k)] == false ? 1 : 0;
int i2 = OBlock.o[aG.a(i, j + 1, k)] == false ? 1 : 0;
int i3 = OBlock.o[aG.a(i, j, k - 1)] == false ? 1 : 0;
int i4 = OBlock.o[aG.a(i, j, k + 1)] == false ? 1 : 0;
int i5 = -1;
double d4 = 9999.0D;
if ((m != 0) && (d1 < d4)) {
d4 = d1;
i5 = 0;
}
if ((n != 0) && (1.0D - d1 < d4)) {
d4 = 1.0D - d1;
i5 = 1;
}
if ((i1 != 0) && (d2 < d4)) {
d4 = d2;
i5 = 2;
}
if ((i2 != 0) && (1.0D - d2 < d4)) {
d4 = 1.0D - d2;
i5 = 3;
}
if ((i3 != 0) && (d3 < d4)) {
d4 = d3;
i5 = 4;
}
if ((i4 != 0) && (1.0D - d3 < d4)) {
d4 = 1.0D - d3;
i5 = 5;
}
float f1 = bq.nextFloat() * 0.2F + 0.1F;
if (i5 == 0)
aN = (-f1);
if (i5 == 1)
aN = f1;
if (i5 == 2)
aO = (-f1);
if (i5 == 3)
aO = f1;
if (i5 == 4)
aP = (-f1);
if (i5 == 5)
aP = f1;
}
return false;
}
@Override
protected void a(int paramInt) {
a((OEntity)null, paramInt);
}
@Override
public boolean a(OEntity paramOEntity, int paramInt) {
W();
f -= paramInt;
if (f <= 0)
D();
return false;
}
@Override
public void a(ONBTTagCompound paramONBTTagCompound) {
paramONBTTagCompound.a("Health", (short) (byte) f);
paramONBTTagCompound.a("Age", (short) b);
paramONBTTagCompound.a("Item", a.a(new ONBTTagCompound()));
}
@Override
public void b(ONBTTagCompound paramONBTTagCompound) {
f = (paramONBTTagCompound.d("Health") & 0xFF);
b = paramONBTTagCompound.d("Age");
ONBTTagCompound localONBTTagCompound = paramONBTTagCompound.k("Item");
a = new OItemStack(localONBTTagCompound);
}
@Override
public void b(OEntityPlayer paramOEntityPlayer) {
if (aG.t)
return;
int i = a.a;
if ((c == 0) && (paramOEntityPlayer.i.a(a))) {
// hMod: allow item pickups
Item item = new Item(a.c, i);
if (!(Boolean) etc.getLoader().callHook(PluginLoader.Hook.ITEM_PICK_UP, ((OEntityPlayerMP) paramOEntityPlayer).getPlayer(), item)) {
aG.a(this, "random.pop", 0.2F, ((bq.nextFloat() - bq.nextFloat()) * 0.7F + 1.0F) * 2.0F);
paramOEntityPlayer.b(this, i);
D();
}
}
}
}