import java.util.List; public abstract class OEntityPlayer extends OEntityLiving { public OInventoryPlayer i = new OInventoryPlayer(this); public OCraftingInventoryCB j; public OCraftingInventoryCB k; public byte l = 0; public int m = 0; public float n; public float o; public boolean p = false; public int q = 0; public String r; public int s; public double t; public double u; public double v; public double w; public double x; public double y; private boolean a; private OChunkCoordinates b; private int c; public float z; public float A; private OChunkCoordinates d; private int e = 0; public OEntityFish B = null; // hMod start HumanEntity entity = new HumanEntity(this); // hMod end public OEntityPlayer(OWorld paramOWorld) { super(paramOWorld); j = new OCraftingInventoryPlayerCB(i, !paramOWorld.t); k = j; bc = 1.62F; OChunkCoordinates localOChunkCoordinates = paramOWorld.m(); c(localOChunkCoordinates.a + 0.5D, localOChunkCoordinates.b + 1, localOChunkCoordinates.c + 0.5D, 0.0F, 0.0F); W = 20; P = "humanoid"; O = 180.0F; bs = 20; M = "/mob/char.png"; } @Override protected void a() { super.a(); bz.a(16, (byte) 0); } @Override public void f_() { if (F()) { c += 1; if (c > 100) c = 100; if (!m()) a(true, true, false); else if ((!aG.t) && (aG.d())) a(false, true, true); } else if (c > 0) { c += 1; if (c >= 110) c = 0; } super.f_(); if ((!aG.t) && (k != null) && (!k.b(this))) { u(); k = j; } t = w; u = x; v = y; double d1 = aK - w; double d2 = aL - x; double d3 = aM - y; double d4 = 10.0D; if (d1 > d4) t = (w = aK); if (d3 > d4) v = (y = aM); if (d2 > d4) u = (x = aL); if (d1 < -d4) t = (w = aK); if (d3 < -d4) v = (y = aM); if (d2 < -d4) u = (x = aL); w += d1 * 0.25D; y += d3 * 0.25D; x += d2 * 0.25D; a(OStatList.j, 1); } @Override protected boolean p_() { return (W <= 0) || (F()); } protected void u() { k = j; } @Override public void o_() { super.o_(); n = o; o = 0.0F; } @Override protected void c_() { if (p) { q += 1; if (q == 8) { q = 0; p = false; } } else q = 0; V = (q / 8.0F); } @Override public void r() { // hMod: adjust 'healing over time' independent of // monster-spawn=true/false (nice notchup!) PluginLoader.HookResult autoHeal = etc.getInstance().autoHeal(); if ((aG.j == 0) && (autoHeal == PluginLoader.HookResult.DEFAULT_ACTION) || autoHeal == PluginLoader.HookResult.ALLOW_ACTION) if ((W < 20) && (br % 20 * 12 == 0)) b(1); i.f(); n = o; super.r(); float f1 = OMathHelper.a(aN * aN + aP * aP); float f2 = (float) Math.atan(-aO * 0.2000000029802322D) * 15.0F; if (f1 > 0.1F) f1 = 0.1F; if ((!aV) || (W <= 0)) f1 = 0.0F; if ((aV) || (W <= 0)) f2 = 0.0F; o += (f1 - o) * 0.4F; ae += (f2 - ae) * 0.8F; if (W > 0) { List localList = aG.b(this, aU.b(1.0D, 0.0D, 1.0D)); if (localList != null) for (int i1 = 0; i1 < localList.size(); i1++) { OEntity localOEntity = (OEntity) localList.get(i1); if (!localOEntity.bb) i(localOEntity); } } } private void i(OEntity paramOEntity) { paramOEntity.b(this); } @Override public void a(OEntity paramOEntity) { super.a(paramOEntity); b(0.2F, 0.2F); a(aK, aL, aM); aO = 0.1000000014901161D; if (r.equals("Notch")) a(new OItemStack(OItem.h, 1), true); i.h(); if (paramOEntity != null) { aN = (-OMathHelper.b((aa + aQ) * 3.141593F / 180.0F) * 0.1F); aP = (-OMathHelper.a((aa + aQ) * 3.141593F / 180.0F) * 0.1F); } else aN = (aP = 0.0D); bc = 0.1F; a(OStatList.u, 1); } @Override public void c(OEntity paramOEntity, int paramInt) { m += paramInt; if ((paramOEntity instanceof OEntityPlayer)) a(OStatList.w, 1); else a(OStatList.v, 1); } public void z() { a(i.a(i.c, 1), false); } public void b(OItemStack paramOItemStack) { a(paramOItemStack, false); } public void a(OItemStack paramOItemStack, boolean paramBoolean) { if (paramOItemStack == null) return; OEntityItem localOEntityItem = new OEntityItem(aG, aK, aL - 0.300000011920929D + q(), aM, paramOItemStack); localOEntityItem.c = 40; float f1 = 0.1F; float f2; if (paramBoolean) { f2 = bq.nextFloat() * 0.5F; float f3 = bq.nextFloat() * 3.141593F * 2.0F; localOEntityItem.aN = (-OMathHelper.a(f3) * f2); localOEntityItem.aP = (OMathHelper.b(f3) * f2); localOEntityItem.aO = 0.2000000029802322D; } else { f1 = 0.3F; localOEntityItem.aN = (-OMathHelper.a(aQ / 180.0F * 3.141593F) * OMathHelper.b(aR / 180.0F * 3.141593F) * f1); localOEntityItem.aP = (OMathHelper.b(aQ / 180.0F * 3.141593F) * OMathHelper.b(aR / 180.0F * 3.141593F) * f1); localOEntityItem.aO = (-OMathHelper.a(aR / 180.0F * 3.141593F) * f1 + 0.1F); f1 = 0.02F; f2 = bq.nextFloat() * 3.141593F * 2.0F; f1 *= bq.nextFloat(); localOEntityItem.aN += Math.cos(f2) * f1; localOEntityItem.aO += (bq.nextFloat() - bq.nextFloat()) * 0.1F; localOEntityItem.aP += Math.sin(f2) * f1; } if (!(Boolean) manager.callHook(PluginLoader.Hook.ITEM_DROP, ((OEntityPlayerMP) this).getPlayer(), new Item(paramOItemStack))){ a(localOEntityItem); a(OStatList.r, 1); // return the item to the inventory. }else i.a(paramOItemStack); } protected void a(OEntityItem paramOEntityItem) { aG.a(paramOEntityItem); } public float a(OBlock paramOBlock) { float f = i.a(paramOBlock); if (a(OMaterial.f)) f /= 5.0F; if (!aV) f /= 5.0F; return f; } public boolean b(OBlock paramOBlock) { return i.b(paramOBlock); } @Override public void b(ONBTTagCompound paramONBTTagCompound) { super.b(paramONBTTagCompound); ONBTTagList localONBTTagList = paramONBTTagCompound.l("Inventory"); i.b(localONBTTagList); s = paramONBTTagCompound.e("Dimension"); a = paramONBTTagCompound.m("Sleeping"); c = paramONBTTagCompound.d("SleepTimer"); if (a) { b = new OChunkCoordinates(OMathHelper.b(aK), OMathHelper.b(aL), OMathHelper.b(aM)); a(true, true, false); } if ((paramONBTTagCompound.b("SpawnX")) && (paramONBTTagCompound.b("SpawnY")) && (paramONBTTagCompound.b("SpawnZ"))) d = new OChunkCoordinates(paramONBTTagCompound.e("SpawnX"), paramONBTTagCompound.e("SpawnY"), paramONBTTagCompound.e("SpawnZ")); } @Override public void a(ONBTTagCompound paramONBTTagCompound) { super.a(paramONBTTagCompound); paramONBTTagCompound.a("Inventory", i.a(new ONBTTagList())); paramONBTTagCompound.a("Dimension", s); paramONBTTagCompound.a("Sleeping", a); paramONBTTagCompound.a("SleepTimer", (short) c); if (d != null) { paramONBTTagCompound.a("SpawnX", d.a); paramONBTTagCompound.a("SpawnY", d.b); paramONBTTagCompound.a("SpawnZ", d.c); } } public void a(OIInventory paramOIInventory) { } public void b(int paramInt1, int paramInt2, int paramInt3) { } public void b(OEntity paramOEntity, int paramInt) { } @Override public float q() { return 0.12F; } protected void l_() { bc = 1.62F; } @Override public boolean a(OEntity paramOEntity, int paramInt) { at = 0; if (W <= 0) return false; if (F()) a(true, true, false); if (((paramOEntity instanceof OEntityMobs)) || ((paramOEntity instanceof OEntityArrow))) { if (aG.j == 0) paramInt = 0; if (aG.j == 1) paramInt = paramInt / 3 + 1; if (aG.j == 3) paramInt = paramInt * 3 / 2; } if (paramInt == 0) return false; Object localObject = paramOEntity; if (((localObject instanceof OEntityArrow)) && (((OEntityArrow) localObject).b != null)) localObject = ((OEntityArrow) localObject).b; if ((localObject instanceof OEntityLiving)) a((OEntityLiving) localObject, false); a(OStatList.t, paramInt); return super.a(paramOEntity, paramInt); } protected void a(OEntityLiving paramOEntityLiving, boolean paramBoolean) { if (((paramOEntityLiving instanceof OEntityCreeper)) || ((paramOEntityLiving instanceof OEntityGhast))) return; if ((paramOEntityLiving instanceof OEntityWolf)) { OEntityWolf localObject = (OEntityWolf) paramOEntityLiving; if ((((OEntityWolf) localObject).y()) && (r.equals(((OEntityWolf) localObject).v()))) return; } Object localObject = aG.a(OEntityWolf.class, OAxisAlignedBB.b(aK, aL, aM, aK + 1.0D, aL + 1.0D, aM + 1.0D).b(16.0D, 4.0D, 16.0D)); for (OEntity localOEntity : (List<OEntity>) localObject) { OEntityWolf localOEntityWolf = (OEntityWolf) localOEntity; if ((localOEntityWolf.y()) && (localOEntityWolf.A() == null) && (r.equals(localOEntityWolf.v())) && ((!paramBoolean) || (!localOEntityWolf.w()))) { localOEntityWolf.b(false); localOEntityWolf.c(paramOEntityLiving); } } } @Override protected void c(int paramInt) { int i1 = 25 - i.g(); int i2 = paramInt * i1 + e; i.c(paramInt); paramInt = i2 / 25; e = (i2 % 25); super.c(paramInt); } public void a(OTileEntityFurnace paramOTileEntityFurnace) { } public void a(OTileEntityDispenser paramOTileEntityDispenser) { } public void a(OTileEntitySign paramOTileEntitySign) { } public void c(OEntity paramOEntity) { if (paramOEntity.a(this)) return; OItemStack localOItemStack = A(); if ((localOItemStack != null) && ((paramOEntity instanceof OEntityLiving))) { localOItemStack.a((OEntityLiving) paramOEntity); if (localOItemStack.a <= 0) { localOItemStack.a(this); B(); } } } public OItemStack A() { return i.b(); } public void B() { i.a(i.c, null); } @Override public double C() { return bc - 0.5F; } public void m_() { q = -1; p = true; } public void d(OEntity paramOEntity) { int i1 = i.a(paramOEntity); if (i1 > 0) { paramOEntity.a(this, i1); OItemStack localOItemStack = A(); if ((localOItemStack != null) && ((paramOEntity instanceof OEntityLiving))) { localOItemStack.a((OEntityLiving) paramOEntity); if (localOItemStack.a <= 0) { localOItemStack.a(this); B(); } } if ((paramOEntity instanceof OEntityLiving)) { if (paramOEntity.N()) a((OEntityLiving) paramOEntity, true); a(OStatList.s, i1); } } } public void a(OItemStack paramOItemStack) { } @Override public void D() { super.D(); j.a(this); if (k != null) k.a(this); } @Override public boolean E() { return (!a) && (super.E()); } public OEnumStatus a(int paramInt1, int paramInt2, int paramInt3) { if ((F()) || (!N())) return OEnumStatus.e; if (aG.m.c) return OEnumStatus.b; if (aG.d()) return OEnumStatus.c; if ((Math.abs(aK - paramInt1) > 3.0D) || (Math.abs(aL - paramInt2) > 2.0D) || (Math.abs(aM - paramInt3) > 3.0D)) return OEnumStatus.d; b(0.2F, 0.2F); bc = 0.2F; if (aG.f(paramInt1, paramInt2, paramInt3)) { int i1 = aG.b(paramInt1, paramInt2, paramInt3); int i2 = OBlockBed.c(i1); float f1 = 0.5F; float f2 = 0.5F; switch (i2) { case 0: f2 = 0.9F; break; case 2: f2 = 0.1F; break; case 1: f1 = 0.1F; break; case 3: f1 = 0.9F; } e(i2); a(paramInt1 + f1, paramInt2 + 0.9375F, paramInt3 + f2); } else a(paramInt1 + 0.5F, paramInt2 + 0.9375F, paramInt3 + 0.5F); a = true; c = 0; b = new OChunkCoordinates(paramInt1, paramInt2, paramInt3); aN = (aP = aO = 0.0D); if (!aG.t) aG.q(); return OEnumStatus.a; } private void e(int paramInt) { z = 0.0F; A = 0.0F; switch (paramInt) { case 0: A = -1.8F; break; case 2: A = 1.8F; break; case 1: z = 1.8F; break; case 3: z = -1.8F; } } public void a(boolean paramBoolean1, boolean paramBoolean2, boolean paramBoolean3) { b(0.6F, 1.8F); l_(); OChunkCoordinates localOChunkCoordinates1 = b; OChunkCoordinates localOChunkCoordinates2 = b; if ((localOChunkCoordinates1 != null) && (aG.a(localOChunkCoordinates1.a, localOChunkCoordinates1.b, localOChunkCoordinates1.c) == OBlock.S.bl)) { OBlockBed.a(aG, localOChunkCoordinates1.a, localOChunkCoordinates1.b, localOChunkCoordinates1.c, false); localOChunkCoordinates2 = OBlockBed.f(aG, localOChunkCoordinates1.a, localOChunkCoordinates1.b, localOChunkCoordinates1.c, 0); if (localOChunkCoordinates2 == null) localOChunkCoordinates2 = new OChunkCoordinates(localOChunkCoordinates1.a, localOChunkCoordinates1.b + 1, localOChunkCoordinates1.c); a(localOChunkCoordinates2.a + 0.5F, localOChunkCoordinates2.b + bc + 0.1F, localOChunkCoordinates2.c + 0.5F); } a = false; if ((!aG.t) && (paramBoolean2)) aG.q(); if (paramBoolean1) c = 0; else c = 100; if (paramBoolean3) a(b); } private boolean m() { return aG.a(b.a, b.b, b.c) == OBlock.S.bl; } public static OChunkCoordinates a(OWorld paramOWorld, OChunkCoordinates paramOChunkCoordinates) { OIChunkProvider localOIChunkProvider = paramOWorld.n(); localOIChunkProvider.c(paramOChunkCoordinates.a - 3 >> 4, paramOChunkCoordinates.c - 3 >> 4); localOIChunkProvider.c(paramOChunkCoordinates.a + 3 >> 4, paramOChunkCoordinates.c - 3 >> 4); localOIChunkProvider.c(paramOChunkCoordinates.a - 3 >> 4, paramOChunkCoordinates.c + 3 >> 4); localOIChunkProvider.c(paramOChunkCoordinates.a + 3 >> 4, paramOChunkCoordinates.c + 3 >> 4); if (paramOWorld.a(paramOChunkCoordinates.a, paramOChunkCoordinates.b, paramOChunkCoordinates.c) != OBlock.S.bl) return null; OChunkCoordinates localOChunkCoordinates = OBlockBed.f(paramOWorld, paramOChunkCoordinates.a, paramOChunkCoordinates.b, paramOChunkCoordinates.c, 0); return localOChunkCoordinates; } @Override public boolean F() { return a; } public boolean G() { return (a) && (c >= 100); } public void a(String paramString) { } public OChunkCoordinates H() { return d; } public void a(OChunkCoordinates paramOChunkCoordinates) { if (paramOChunkCoordinates != null) d = new OChunkCoordinates(paramOChunkCoordinates); else d = null; } public void a(OStatBasic paramOStatBasic, int paramInt) { } @Override protected void I() { super.I(); a(OStatList.q, 1); } @Override public void a(float paramFloat1, float paramFloat2) { double d1 = aK; double d2 = aL; double d3 = aM; super.a(paramFloat1, paramFloat2); g(aK - d1, aL - d2, aM - d3); } private void g(double paramDouble1, double paramDouble2, double paramDouble3) { int i1; if (a(OMaterial.f)) { i1 = Math.round(OMathHelper.a(paramDouble1 * paramDouble1 + paramDouble2 * paramDouble2 + paramDouble3 * paramDouble3) * 100.0F); if (i1 > 0) a(OStatList.p, i1); } else if (g_()) { i1 = Math.round(OMathHelper.a(paramDouble1 * paramDouble1 + paramDouble3 * paramDouble3) * 100.0F); if (i1 > 0) a(OStatList.l, i1); } else if (n()) { if (paramDouble2 > 0.0D) a(OStatList.n, (int) Math.round(paramDouble2 * 100.0D)); } else if (aV) { i1 = Math.round(OMathHelper.a(paramDouble1 * paramDouble1 + paramDouble3 * paramDouble3) * 100.0F); if (i1 > 0) a(OStatList.k, i1); } else { i1 = Math.round(OMathHelper.a(paramDouble1 * paramDouble1 + paramDouble3 * paramDouble3) * 100.0F); if (i1 > 25) a(OStatList.o, i1); } } @Override protected void a(float paramFloat) { if (paramFloat >= 2.0F) a(OStatList.m, (int) Math.round(paramFloat * 100.0D)); super.a(paramFloat); } public void J() { } }