package sourcecoded.quantum.entity;
import net.minecraft.block.Block;
import net.minecraft.entity.passive.EntityAmbientCreature;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
public class EntityArmorRevenge extends EntityAmbientCreature {
//TODO this
public EntityArmorRevenge(World theWorld) {
super(theWorld);
setSize(1F, 1F);
}
protected void fall(float distance) {
}
protected void updateFallState(double fallForCurrentTick, boolean landed) {
}
public boolean isOnLadder() { //Prevents slowdown in ladder blocks
return false;
}
protected boolean canDespawn() {
return false;
}
@Override
public void moveEntityWithHeading(float strafe, float forward) { //Flight mechanics
if (isInWater()) {
moveFlying(strafe, forward, 0.02F);
moveEntity(motionX, motionY, motionZ);
motionX *= 0.8D;
motionY *= 0.8D;
motionZ *= 0.8D;
} else if (handleLavaMovement()) {
moveFlying(strafe, forward, 0.02F);
moveEntity(motionX, motionY, motionZ);
motionX *= 0.5D;
motionY *= 0.5D;
motionZ *= 0.5D;
} else {
float speed = 0.91F;
if (onGround) {
speed = 0.5F;
Block block = worldObj.getBlock(MathHelper.floor_double(posX), MathHelper.floor_double(boundingBox.minY) - 1, MathHelper.floor_double(posZ));
speed = block.slipperiness * 0.91F;
}
float f3 = 0.16F / (speed * speed * speed);
moveFlying(strafe, forward, onGround ? 0.1F * f3 : 0.02F);
speed = 0.91F;
if (onGround) {
speed = 0.54600006F;
Block block = worldObj.getBlock(MathHelper.floor_double(posX), MathHelper.floor_double(boundingBox.minY) - 1, MathHelper.floor_double(posZ));
speed = block.slipperiness * 0.91F;
}
moveEntity(motionX, motionY, motionZ);
motionX *= speed;
motionY *= speed;
motionZ *= speed;
}
}
}