@Override public void collide(Entity inEntity) { if (this.getRemoteEntity() == null) { super.collide(inEntity); return; } if (((RemoteBaseEntity) this.m_remoteEntity).onCollide(inEntity.getBukkitEntity())) super.collide(inEntity); }
@Override public void g(double x, double y, double z) { if (this.m_remoteEntity == null) { super.g(x, y, z); return; } Vector vector = ((RemoteBaseEntity) this.m_remoteEntity).onPush(x, y, z); if (vector != null) super.g(vector.getX(), vector.getY(), vector.getZ()); }
/** * Used for easily adding entity-dependent animations. The second and third float params here are * the same second and third as in the setRotationAngles method. */ public void setLivingAnimations( EntityLivingBase par1EntityLivingBase, float par2, float par3, float par4) { EntityWither var5 = (EntityWither) par1EntityLivingBase; for (int var6 = 1; var6 < 3; ++var6) { this.field_82904_b[var6].rotateAngleY = (var5.func_82207_a(var6 - 1) - par1EntityLivingBase.renderYawOffset) / (180F / (float) Math.PI); this.field_82904_b[var6].rotateAngleX = var5.func_82210_r(var6 - 1) / (180F / (float) Math.PI); } }
@Override public void e(float inXMotion, float inZMotion) { float[] motion = new float[] {inXMotion, inZMotion, 0}; if (this.m_remoteEntity.getMind().hasBehaviour("Ride")) ((RideBehavior) this.m_remoteEntity.getMind().getBehaviour("Ride")).ride(motion); super.e(motion[0], motion[1]); this.motY = motion[2]; }
/** This method attempts to create a wither at the given location and skull */ public void makeWither( World par1World, int par2, int par3, int par4, TileEntitySkull par5TileEntitySkull) { if (par5TileEntitySkull.func_82117_a() == 1 && par3 >= 2 && par1World.difficultySetting > 0) { int var6 = Block.slowSand.blockID; int var7; EntityWither var8; int var9; for (var7 = -2; var7 <= 0; ++var7) { if (par1World.getBlockId(par2, par3 - 1, par4 + var7) == var6 && par1World.getBlockId(par2, par3 - 1, par4 + var7 + 1) == var6 && par1World.getBlockId(par2, par3 - 2, par4 + var7 + 1) == var6 && par1World.getBlockId(par2, par3 - 1, par4 + var7 + 2) == var6 && this.func_82528_d(par1World, par2, par3, par4 + var7, 1) && this.func_82528_d(par1World, par2, par3, par4 + var7 + 1, 1) && this.func_82528_d(par1World, par2, par3, par4 + var7 + 2, 1)) { par1World.setBlockMetadata(par2, par3, par4 + var7, 8); par1World.setBlockMetadata(par2, par3, par4 + var7 + 1, 8); par1World.setBlockMetadata(par2, par3, par4 + var7 + 2, 8); par1World.setBlock(par2, par3, par4 + var7, 0); par1World.setBlock(par2, par3, par4 + var7 + 1, 0); par1World.setBlock(par2, par3, par4 + var7 + 2, 0); par1World.setBlock(par2, par3 - 1, par4 + var7, 0); par1World.setBlock(par2, par3 - 1, par4 + var7 + 1, 0); par1World.setBlock(par2, par3 - 1, par4 + var7 + 2, 0); par1World.setBlock(par2, par3 - 2, par4 + var7 + 1, 0); if (!par1World.isRemote) { var8 = new EntityWither(par1World); var8.setLocationAndAngles( (double) par2 + 0.5D, (double) par3 - 1.45D, (double) (par4 + var7) + 1.5D, 90.0F, 0.0F); var8.renderYawOffset = 90.0F; var8.func_82206_m(); par1World.spawnEntityInWorld(var8); } for (var9 = 0; var9 < 120; ++var9) { par1World.spawnParticle( "snowballpoof", (double) par2 + par1World.rand.nextDouble(), (double) (par3 - 2) + par1World.rand.nextDouble() * 3.9D, (double) (par4 + var7 + 1) + par1World.rand.nextDouble(), 0.0D, 0.0D, 0.0D); } par1World.notifyBlockChange(par2, par3, par4 + var7, 0); par1World.notifyBlockChange(par2, par3, par4 + var7 + 1, 0); par1World.notifyBlockChange(par2, par3, par4 + var7 + 2, 0); par1World.notifyBlockChange(par2, par3 - 1, par4 + var7, 0); par1World.notifyBlockChange(par2, par3 - 1, par4 + var7 + 1, 0); par1World.notifyBlockChange(par2, par3 - 1, par4 + var7 + 2, 0); par1World.notifyBlockChange(par2, par3 - 2, par4 + var7 + 1, 0); return; } } for (var7 = -2; var7 <= 0; ++var7) { if (par1World.getBlockId(par2 + var7, par3 - 1, par4) == var6 && par1World.getBlockId(par2 + var7 + 1, par3 - 1, par4) == var6 && par1World.getBlockId(par2 + var7 + 1, par3 - 2, par4) == var6 && par1World.getBlockId(par2 + var7 + 2, par3 - 1, par4) == var6 && this.func_82528_d(par1World, par2 + var7, par3, par4, 1) && this.func_82528_d(par1World, par2 + var7 + 1, par3, par4, 1) && this.func_82528_d(par1World, par2 + var7 + 2, par3, par4, 1)) { par1World.setBlockMetadata(par2 + var7, par3, par4, 8); par1World.setBlockMetadata(par2 + var7 + 1, par3, par4, 8); par1World.setBlockMetadata(par2 + var7 + 2, par3, par4, 8); par1World.setBlock(par2 + var7, par3, par4, 0); par1World.setBlock(par2 + var7 + 1, par3, par4, 0); par1World.setBlock(par2 + var7 + 2, par3, par4, 0); par1World.setBlock(par2 + var7, par3 - 1, par4, 0); par1World.setBlock(par2 + var7 + 1, par3 - 1, par4, 0); par1World.setBlock(par2 + var7 + 2, par3 - 1, par4, 0); par1World.setBlock(par2 + var7 + 1, par3 - 2, par4, 0); if (!par1World.isRemote) { var8 = new EntityWither(par1World); var8.setLocationAndAngles( (double) (par2 + var7) + 1.5D, (double) par3 - 1.45D, (double) par4 + 0.5D, 0.0F, 0.0F); var8.func_82206_m(); par1World.spawnEntityInWorld(var8); } for (var9 = 0; var9 < 120; ++var9) { par1World.spawnParticle( "snowballpoof", (double) (par2 + var7 + 1) + par1World.rand.nextDouble(), (double) (par3 - 2) + par1World.rand.nextDouble() * 3.9D, (double) par4 + par1World.rand.nextDouble(), 0.0D, 0.0D, 0.0D); } par1World.notifyBlockChange(par2 + var7, par3, par4, 0); par1World.notifyBlockChange(par2 + var7 + 1, par3, par4, 0); par1World.notifyBlockChange(par2 + var7 + 2, par3, par4, 0); par1World.notifyBlockChange(par2 + var7, par3 - 1, par4, 0); par1World.notifyBlockChange(par2 + var7 + 1, par3 - 1, par4, 0); par1World.notifyBlockChange(par2 + var7 + 2, par3 - 1, par4, 0); par1World.notifyBlockChange(par2 + var7 + 1, par3 - 2, par4, 0); return; } } } }
@Override public void move(double d0, double d1, double d2) { if (this.m_remoteEntity != null && this.m_remoteEntity.isStationary()) return; super.move(d0, d1, d2); }
@Override public void l_() { super.l_(); if (this.getRemoteEntity() != null) this.getRemoteEntity().getMind().tick(); }
@Override public void die(DamageSource damagesource) { ((RemoteBaseEntity) this.m_remoteEntity).onDeath(); super.die(damagesource); }