Updated bird AI
This commit is contained in:
parent
7279aee3dc
commit
c71f0ee49d
|
@ -657,8 +657,8 @@ public class BiomeDecoratorBOP extends BiomeDecorator
|
||||||
koruPerChunk = 0;
|
koruPerChunk = 0;
|
||||||
waspHivesPerChunk = 0;
|
waspHivesPerChunk = 0;
|
||||||
rootsPerChunk = 9;
|
rootsPerChunk = 9;
|
||||||
stalagmitesPerChunk = 3;
|
stalagmitesPerChunk = 5;
|
||||||
stalactitesPerChunk = 6;
|
stalactitesPerChunk = 10;
|
||||||
generateLakes = true;
|
generateLakes = true;
|
||||||
generateAsh = false;
|
generateAsh = false;
|
||||||
generateMycelium = false;
|
generateMycelium = false;
|
||||||
|
|
|
@ -27,9 +27,9 @@ public class EntityBird extends EntityFlyingMob
|
||||||
|
|
||||||
if (d3 < 1.0D || d3 > 3600.0D)
|
if (d3 < 1.0D || d3 > 3600.0D)
|
||||||
{
|
{
|
||||||
this.waypointX = this.posX + (double)((this.rand.nextFloat() * 2.0F - 1.0F) * 4.0F);
|
this.waypointX = this.posX + (double)((this.rand.nextFloat() * 8.0F - 4.0F) * 6.0F);
|
||||||
this.waypointY = this.posY + (double)((this.rand.nextFloat() * 2.0F - 1.0F) * 4.0F);
|
this.waypointY = this.posY + (double)((this.rand.nextFloat() * 2.0F - 1.0F) * 6.0F);
|
||||||
this.waypointZ = this.posZ + (double)((this.rand.nextFloat() * 2.0F - 1.0F) * 4.0F);
|
this.waypointZ = this.posZ + (double)((this.rand.nextFloat() * 8.0F - 4.0F) * 6.0F);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.courseChangeCooldown-- <= 0)
|
if (this.courseChangeCooldown-- <= 0)
|
||||||
|
|
|
@ -0,0 +1,95 @@
|
||||||
|
package biomesoplenty.entities;
|
||||||
|
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.entity.EntityLiving;
|
||||||
|
import net.minecraft.util.MathHelper;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
|
public class EntityFlyingCreature extends EntityLiving
|
||||||
|
{
|
||||||
|
public EntityFlyingCreature(World par1World)
|
||||||
|
{
|
||||||
|
super(par1World);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void fall(float par1) {}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void updateFallState(double par1, boolean par3) {}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void moveEntityWithHeading(float par1, float par2)
|
||||||
|
{
|
||||||
|
if (this.isInWater())
|
||||||
|
{
|
||||||
|
this.moveFlying(par1, par2, 0.02F);
|
||||||
|
this.moveEntity(this.motionX, this.motionY, this.motionZ);
|
||||||
|
this.motionX *= 0.800000011920929D;
|
||||||
|
this.motionY *= 0.800000011920929D;
|
||||||
|
this.motionZ *= 0.800000011920929D;
|
||||||
|
}
|
||||||
|
else if (this.handleLavaMovement())
|
||||||
|
{
|
||||||
|
this.moveFlying(par1, par2, 0.02F);
|
||||||
|
this.moveEntity(this.motionX, this.motionY, this.motionZ);
|
||||||
|
this.motionX *= 0.5D;
|
||||||
|
this.motionY *= 0.5D;
|
||||||
|
this.motionZ *= 0.5D;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
float f2 = 0.91F;
|
||||||
|
|
||||||
|
if (this.onGround)
|
||||||
|
{
|
||||||
|
f2 = 0.54600006F;
|
||||||
|
int i = this.worldObj.getBlockId(MathHelper.floor_double(this.posX), MathHelper.floor_double(this.boundingBox.minY) - 1, MathHelper.floor_double(this.posZ));
|
||||||
|
|
||||||
|
if (i > 0)
|
||||||
|
{
|
||||||
|
f2 = Block.blocksList[i].slipperiness * 0.91F;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
float f3 = 0.16277136F / (f2 * f2 * f2);
|
||||||
|
this.moveFlying(par1, par2, this.onGround ? 0.1F * f3 : 0.02F);
|
||||||
|
f2 = 0.91F;
|
||||||
|
|
||||||
|
if (this.onGround)
|
||||||
|
{
|
||||||
|
f2 = 0.54600006F;
|
||||||
|
int j = this.worldObj.getBlockId(MathHelper.floor_double(this.posX), MathHelper.floor_double(this.boundingBox.minY) - 1, MathHelper.floor_double(this.posZ));
|
||||||
|
|
||||||
|
if (j > 0)
|
||||||
|
{
|
||||||
|
f2 = Block.blocksList[j].slipperiness * 0.91F;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.moveEntity(this.motionX, this.motionY, this.motionZ);
|
||||||
|
this.motionX *= (double)f2;
|
||||||
|
this.motionY *= (double)f2;
|
||||||
|
this.motionZ *= (double)f2;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.prevLimbSwingAmount = this.limbSwingAmount;
|
||||||
|
double d0 = this.posX - this.prevPosX;
|
||||||
|
double d1 = this.posZ - this.prevPosZ;
|
||||||
|
float f4 = MathHelper.sqrt_double(d0 * d0 + d1 * d1) * 4.0F;
|
||||||
|
|
||||||
|
if (f4 > 1.0F)
|
||||||
|
{
|
||||||
|
f4 = 1.0F;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.limbSwingAmount += (f4 - this.limbSwingAmount) * 0.4F;
|
||||||
|
this.limbSwing += this.limbSwingAmount;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isOnLadder()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
Binary file not shown.
Before Width: | Height: | Size: 382 B After Width: | Height: | Size: 273 B |
Binary file not shown.
Before Width: | Height: | Size: 389 B After Width: | Height: | Size: 281 B |
Loading…
Reference in New Issue