/** * Spawns this mob with a rider * * @param rider */ public void spawn(LivingEntity rider) { OWorld world = entity.bi; // etc.getMCServer().a(0); entity.c(getX() + 0.5d, getY(), getZ() + 0.5d, getRotation(), 0f); world.b(entity); if (rider != null) { OEntityLiving mob2 = rider.getEntity(); mob2.c(getX(), getY(), getZ(), getRotation(), 0f); world.b(mob2); mob2.b(entity); } }
public void u() { if (am > 0) { double d1 = aL + (an - aL) / am; double d2 = aM + (ao - aM) / am; double d3 = aN + (ap - aN) / am; double d4 = aq - aR; while (d4 < -180.0D) d4 += 360.0D; while (d4 >= 180.0D) d4 -= 360.0D; aR = (float) (aR + d4 / am); aS = (float) (aS + (ar - aS) / am); am -= 1; a(d1, d2, d3); c(aR, aS); } if (A()) { ay = false; av = 0.0F; aw = 0.0F; ax = 0.0F; } else if (!U) c_(); boolean bool1 = Z(); boolean bool2 = aa(); if (ay) if (bool1) aP += 0.04D; else if (bool2) aP += 0.04D; else if (aW) L(); av *= 0.98F; aw *= 0.98F; ax *= 0.9F; a(av, aw); List localList = aH.b(this, aV.b(0.2D, 0.0D, 0.2D)); if ((localList != null) && (localList.size() > 0)) for (int i = 0; i < localList.size(); i++) { OEntity localOEntity = (OEntity) localList.get(i); if (!localOEntity.d_()) continue; localOEntity.h(this); } }
public void r() { if (al > 0) { double d1 = aK + (am - aK) / al; double d2 = aL + (an - aL) / al; double d3 = aM + (ao - aM) / al; double d4 = ap - aQ; while (d4 < -180.0D) d4 += 360.0D; while (d4 >= 180.0D) d4 -= 360.0D; aQ = (float) (aQ + d4 / al); aR = (float) (aR + (aq - aR) / al); al -= 1; a(d1, d2, d3); c(aQ, aR); } if (p_()) { ax = false; au = 0.0F; av = 0.0F; aw = 0.0F; } else if (!T) c_(); boolean bool1 = g_(); boolean bool2 = V(); if (ax) if (bool1) aO += 0.03999999910593033D; else if (bool2) aO += 0.03999999910593033D; else if (aV) I(); au *= 0.98F; av *= 0.98F; aw *= 0.9F; a(au, av); List localList = aG.b(this, aU.b(0.2000000029802322D, 0.0D, 0.2000000029802322D)); if ((localList != null) && (localList.size() > 0)) for (int i = 0; i < localList.size(); i++) { OEntity localOEntity = (OEntity) localList.get(i); if (!localOEntity.e_()) continue; localOEntity.h(this); } }
public void a(float paramFloat1, float paramFloat2) { if (Z()) { double d1 = aM; a(paramFloat1, paramFloat2, 0.02F); c(aO, aP, aQ); aO *= 0.8D; aP *= 0.8D; aQ *= 0.8D; aP -= 0.02D; if ((aX) && (b(aO, aP + 0.6D - aM + d1, aQ))) aP = 0.3D; } else if (aa()) { double d1 = aM; a(paramFloat1, paramFloat2, 0.02F); c(aO, aP, aQ); aO *= 0.5D; aP *= 0.5D; aQ *= 0.5D; aP -= 0.02D; if ((aX) && (b(aO, aP + 0.6000000238418579D - aM + d1, aQ))) aP = 0.300000011920929D; } else { float f1 = 0.91F; if (aW) { f1 = 0.546F; int i = aH.a(OMathHelper.b(aL), OMathHelper.b(aV.b) - 1, OMathHelper.b(aN)); if (i > 0) f1 = OBlock.m[i].bz * 0.91F; } float f2 = 0.1627714F / (f1 * f1 * f1); a(paramFloat1, paramFloat2, aW ? 0.1F * f2 : 0.02F); f1 = 0.91F; if (aW) { f1 = 0.546F; int j = aH.a(OMathHelper.b(aL), OMathHelper.b(aV.b) - 1, OMathHelper.b(aN)); if (j > 0) f1 = OBlock.m[j].bz * 0.91F; } if (p()) { bj = 0.0F; if (aP < -0.15D) aP = -0.15D; if ((ae()) && (aP < 0.0D)) aP = 0.0D; } c(aO, aP, aQ); if ((aX) && (p())) aP = 0.2D; aP -= 0.08D; aP *= 0.98D; aO *= f1; aQ *= f1; } aj = ak; double d1 = aL - aI; double d2 = aN - aK; float f3 = OMathHelper.a(d1 * d1 + d2 * d2) * 4.0F; if (f3 > 1.0F) f3 = 1.0F; ak += (f3 - ak) * 0.4F; al += ak; }
@Override public boolean a(OEntity paramOEntity, int paramInt) { if (aH.v) return false; au = 0; if (X <= 0) return false; ak = 1.5F; // CanaryMod damage entities. LivingEntity attacker = (paramOEntity != null && paramOEntity instanceof OEntityLiving) ? new LivingEntity((OEntityLiving) paramOEntity) : null; // CanaryMod attack by entity, but it might not do damage! if (attacker != null && (Boolean) manager.callHook(PluginLoader.Hook.ATTACK, attacker, entity, paramInt)) return false; int i = 1; if (bx > D / 2.0F) { if (paramInt <= at) return false; // CanaryMod: partial damage if (attacker != null && (Boolean) manager.callHook( PluginLoader.Hook.DAMAGE, PluginLoader.DamageType.ENTITY, attacker, entity, paramInt - at)) return false; c(paramInt - at); at = paramInt; i = 0; } else { // CanaryMod: full damage if (attacker != null && (Boolean) manager.callHook( PluginLoader.Hook.DAMAGE, PluginLoader.DamageType.ENTITY, attacker, entity, paramInt)) return false; at = paramInt; Y = X; bx = D; c(paramInt); Z = (aa = 10); } ab = 0.0F; if (i != 0) { // CanaryMod: forced cast to send 'damage animation'. aH.a(this, (byte) 2); ab(); if (paramOEntity != null) { double d1 = paramOEntity.aL - aL; double d2 = paramOEntity.aN - aN; while (d1 * d1 + d2 * d2 < 0.0001D) { d1 = (Math.random() - Math.random()) * 0.01D; d2 = (Math.random() - Math.random()) * 0.01D; } ab = ((float) (Math.atan2(d2, d1) * 180.0D / 3.141592741012573D) - aR); a(paramOEntity, paramInt, d1, d2); } else ab = ((int) (Math.random() * 2.0D) * 180); } if (X <= 0) { if (i != 0) aH.a(this, i(), k(), (br.nextFloat() - br.nextFloat()) * 0.2F + 1.0F); a(paramOEntity); } else if (i != 0) aH.a(this, h(), k(), (br.nextFloat() - br.nextFloat()) * 0.2F + 1.0F); return true; }
public void a(float paramFloat1, float paramFloat2) { if (g_()) { double d1 = aL; a(paramFloat1, paramFloat2, 0.02F); c(aN, aO, aP); aN *= 0.800000011920929D; aO *= 0.800000011920929D; aP *= 0.800000011920929D; aO -= 0.02D; if ((aW) && (b(aN, aO + 0.6000000238418579D - aL + d1, aP))) aO = 0.300000011920929D; } else if (V()) { double d1 = aL; a(paramFloat1, paramFloat2, 0.02F); c(aN, aO, aP); aN *= 0.5D; aO *= 0.5D; aP *= 0.5D; aO -= 0.02D; if ((aW) && (b(aN, aO + 0.6000000238418579D - aL + d1, aP))) aO = 0.300000011920929D; } else { float f1 = 0.91F; if (aV) { f1 = 0.5460001F; int i = aG.a(OMathHelper.b(aK), OMathHelper.b(aU.b) - 1, OMathHelper.b(aM)); if (i > 0) f1 = OBlock.m[i].bx * 0.91F; } float f2 = 0.1627714F / (f1 * f1 * f1); a(paramFloat1, paramFloat2, aV ? 0.1F * f2 : 0.02F); f1 = 0.91F; if (aV) { f1 = 0.5460001F; int j = aG.a(OMathHelper.b(aK), OMathHelper.b(aU.b) - 1, OMathHelper.b(aM)); if (j > 0) f1 = OBlock.m[j].bx * 0.91F; } if (n()) { bh = 0.0F; if (aO < -0.15D) aO = -0.15D; if ((Z()) && (aO < 0.0D)) aO = 0.0D; } c(aN, aO, aP); if ((aW) && (n())) aO = 0.2D; aO -= 0.08D; aO *= 0.9800000190734863D; aN *= f1; aP *= f1; } ai = aj; double d1 = aK - aH; double d2 = aM - aJ; float f3 = OMathHelper.a(d1 * d1 + d2 * d2) * 4.0F; if (f3 > 1.0F) f3 = 1.0F; aj += (f3 - aj) * 0.4F; ak += aj; }
@Override public boolean a(OEntity paramOEntity, int paramInt) { if (aG.t) return false; at = 0; if (W <= 0) return false; aj = 1.5F; // hMod damage entities. LivingEntity attacker = (paramOEntity != null && paramOEntity instanceof OEntityLiving) ? new LivingEntity((OEntityLiving) paramOEntity) : null; // hMod attack by entity, but it might not do damage! if (attacker != null && (Boolean) manager.callHook(PluginLoader.Hook.ATTACK, attacker, entity, paramInt)) return false; int i = 1; if (bw > C / 2.0F) { if (paramInt <= as) return false; // hMod: partial damage if (attacker != null && (Boolean) manager.callHook( PluginLoader.Hook.DAMAGE, PluginLoader.DamageType.ENTITY, attacker, entity, paramInt - as)) return false; c(paramInt - as); as = paramInt; i = 0; } else { // hMod: full damage if (attacker != null && (Boolean) manager.callHook( PluginLoader.Hook.DAMAGE, PluginLoader.DamageType.ENTITY, attacker, entity, paramInt)) return false; as = paramInt; X = W; bw = C; c(paramInt); Y = (Z = 10); } aa = 0.0F; if (i != 0) { // hMod: Forced cast to play Death Animations. aG.a(this, (byte) 2); W(); if (paramOEntity != null) { double d1 = paramOEntity.aK - aK; double d2 = paramOEntity.aM - aM; while (d1 * d1 + d2 * d2 < 0.0001D) { d1 = (Math.random() - Math.random()) * 0.01D; d2 = (Math.random() - Math.random()) * 0.01D; } aa = ((float) (Math.atan2(d2, d1) * 180.0D / 3.141592741012573D) - aQ); a(paramOEntity, paramInt, d1, d2); } else aa = ((int) (Math.random() * 2.0D) * 180); } if (W <= 0) { if (i != 0) aG.a(this, g(), i(), (bq.nextFloat() - bq.nextFloat()) * 0.2F + 1.0F); a(paramOEntity); } else if (i != 0) aG.a(this, f(), i(), (bq.nextFloat() - bq.nextFloat()) * 0.2F + 1.0F); return true; }