Upstream Paper

This commit is contained in:
Sotr
2019-03-04 18:16:32 +08:00
commit cadd3f71c0
1106 changed files with 193757 additions and 0 deletions

View File

@@ -0,0 +1,111 @@
package net.minecraft.server;
// CraftBukkit start
import org.bukkit.event.entity.EntityUnleashEvent;
// CraftBukkit end
public abstract class EntityCreature extends EntityInsentient {
public org.bukkit.craftbukkit.entity.CraftCreature getBukkitCreature() { return (org.bukkit.craftbukkit.entity.CraftCreature) super.getBukkitEntity(); } // Paper
public BlockPosition movingTarget = null; public BlockPosition getMovingTarget() { return movingTarget; } // Paper
private BlockPosition a;
private float b;
protected EntityCreature(EntityTypes<?> entitytypes, World world) {
super(entitytypes, world);
this.a = BlockPosition.ZERO;
this.b = -1.0F;
}
public float a(BlockPosition blockposition) {
return this.a(blockposition, (IWorldReader) this.world);
}
public float a(BlockPosition blockposition, IWorldReader iworldreader) {
return 0.0F;
}
public boolean a(GeneratorAccess generatoraccess, boolean flag) {
return super.a(generatoraccess, flag) && this.a(new BlockPosition(this.locX, this.getBoundingBox().minY, this.locZ), (IWorldReader) generatoraccess) >= 0.0F;
}
public boolean dr() {
return !this.navigation.p();
}
public boolean ds() {
return this.f(new BlockPosition(this));
}
public boolean f(BlockPosition blockposition) {
return this.b == -1.0F ? true : this.a.n(blockposition) < (double) (this.b * this.b);
}
public void a(BlockPosition blockposition, int i) {
this.a = blockposition;
this.b = (float) i;
}
public BlockPosition dt() {
return this.a;
}
public float du() {
return this.b;
}
public void dv() {
this.b = -1.0F;
}
public boolean dw() {
return this.b != -1.0F;
}
protected void dl() {
super.dl();
if (this.isLeashed() && this.getLeashHolder() != null && this.getLeashHolder().world == this.world) {
Entity entity = this.getLeashHolder();
this.a(new BlockPosition((int) entity.locX, (int) entity.locY, (int) entity.locZ), 5);
float f = this.g(entity);
if (this instanceof EntityTameableAnimal && ((EntityTameableAnimal) this).isSitting()) {
if (f > 10.0F) {
this.world.getServer().getPluginManager().callEvent(new EntityUnleashEvent(this.getBukkitEntity(), EntityUnleashEvent.UnleashReason.DISTANCE)); // CraftBukkit
this.unleash(true, true);
}
return;
}
this.u(f);
if (f > 10.0F) {
this.world.getServer().getPluginManager().callEvent(new EntityUnleashEvent(this.getBukkitEntity(), EntityUnleashEvent.UnleashReason.DISTANCE)); // CraftBukkit
this.unleash(true, true);
this.goalSelector.c(1);
} else if (f > 6.0F) {
double d0 = (entity.locX - this.locX) / (double) f;
double d1 = (entity.locY - this.locY) / (double) f;
double d2 = (entity.locZ - this.locZ) / (double) f;
this.motX += d0 * Math.abs(d0) * 0.4D;
this.motY += d1 * Math.abs(d1) * 0.4D;
this.motZ += d2 * Math.abs(d2) * 0.4D;
} else {
this.goalSelector.d(1);
float f1 = 2.0F;
Vec3D vec3d = (new Vec3D(entity.locX - this.locX, entity.locY - this.locY, entity.locZ - this.locZ)).a().a((double) Math.max(f - 2.0F, 0.0F));
this.getNavigation().a(this.locX + vec3d.x, this.locY + vec3d.y, this.locZ + vec3d.z, this.dx());
}
}
}
protected double dx() {
return 1.0D;
}
protected void u(float f) {}
}