Reworked getEntity; Hi instanceof, bay 16 classes

This commit is contained in:
Erik Broes 2011-01-30 16:15:17 +01:00
parent 75ba9a0f25
commit b2a0c5a2ae
32 changed files with 85 additions and 1797 deletions

12
src/main/java/net/minecraft/server/Entity.java Normal file → Executable file
View file

@ -115,12 +115,7 @@ public abstract class Entity {
this.a(0.0D, 0.0D, 0.0D);
this.datawatcher.a(0, Byte.valueOf((byte) 0));
this.a();
// CraftBukkit start
bukkitEntity = null;
}
protected org.bukkit.entity.Entity bukkitEntity;
// CraftBukkit end
protected abstract void a();
@ -954,8 +949,13 @@ public abstract class Entity {
setPassengerOf(entity);
}
protected org.bukkit.entity.Entity bukkitEntity;
public org.bukkit.entity.Entity getBukkitEntity(){
return this.bukkitEntity;
if (bukkitEntity == null) {
bukkitEntity = org.bukkit.craftbukkit.entity.CraftEntity.getEntity(((WorldServer) this.world).getServer(), this);
}
return bukkitEntity;
}
public void setPassengerOf(Entity entity) {

View file

@ -1,42 +0,0 @@
package net.minecraft.server;
// CraftBukkit start
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.entity.CraftAnimals;
// CraftBukkit end
public abstract class EntityAnimal extends EntityCreature implements IAnimal {
public EntityAnimal(World world) {
super(world);
// CraftBukkit start
CraftServer server = ((WorldServer) this.world).getServer();
this.bukkitEntity = new CraftAnimals(server, this);
// CraftBukkit end
}
protected float a(int i, int j, int k) {
return this.world.getTypeId(i, j - 1, k) == Block.GRASS.id ? 10.0F : this.world.l(i, j, k) - 0.5F;
}
public void a(NBTTagCompound nbttagcompound) {
super.a(nbttagcompound);
}
public void b(NBTTagCompound nbttagcompound) {
super.b(nbttagcompound);
}
public boolean b() {
int i = MathHelper.b(this.locX);
int j = MathHelper.b(this.boundingBox.b);
int k = MathHelper.b(this.locZ);
return this.world.getTypeId(i, j - 1, k) == Block.GRASS.id && this.world.j(i, j, k) > 8 && super.b();
}
public int c() {
return 120;
}
}

11
src/main/java/net/minecraft/server/EntityArrow.java Normal file → Executable file
View file

@ -25,24 +25,17 @@ public class EntityArrow extends Entity {
public EntityArrow(World world) {
super(world);
this.a(0.5F, 0.5F);
// CraftBukkit start
CraftServer server = ((WorldServer) this.world).getServer();
this.bukkitEntity = new CraftArrow(server, this);
// CraftBukkit end
}
public EntityArrow(World world, double d0, double d1, double d2) {
this(world); // CraftBukkit super->this so we assign the entity
super(world);
this.a(0.5F, 0.5F);
this.a(d0, d1, d2);
this.height = 0.0F;
}
public EntityArrow(World world, EntityLiving entityliving) {
this(world); // CraftBukkit super->this so we assign the entity
super(world);
this.b = entityliving;
this.a(0.5F, 0.5F);
this.c(entityliving.locX, entityliving.locY + (double) entityliving.w(), entityliving.locZ, entityliving.yaw, entityliving.pitch);

7
src/main/java/net/minecraft/server/EntityBoat.java Normal file → Executable file
View file

@ -6,7 +6,6 @@ import java.util.List;
import org.bukkit.Location;
import org.bukkit.craftbukkit.entity.CraftBoat;
import org.bukkit.craftbukkit.entity.CraftEntity;
import org.bukkit.craftbukkit.CraftMappable;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.CraftWorld;
import org.bukkit.entity.Vehicle;
@ -65,12 +64,6 @@ public class EntityBoat extends Entity {
this.a(1.5F, 0.6F);
this.height = this.width / 2.0F;
this.M = false;
// CraftBukkit start
handleCreation(world);
CraftServer server = ((WorldServer) this.world).getServer();
this.bukkitEntity = new CraftBoat(server, this);
// CraftBukkit end
}
protected void a() {}

View file

@ -1,86 +0,0 @@
package net.minecraft.server;
// CraftBukkit start
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.entity.CraftChicken;
// CraftBukkit end
public class EntityChicken extends EntityAnimal {
public boolean a = false;
public float b = 0.0F;
public float c = 0.0F;
public float f;
public float ak;
public float al = 1.0F;
public int am;
public EntityChicken(World world) {
super(world);
this.texture = "/mob/chicken.png";
this.a(0.3F, 0.4F);
this.health = 4;
this.am = this.random.nextInt(6000) + 6000;
// CraftBukkit start
CraftServer server = ((WorldServer) this.world).getServer();
this.bukkitEntity = new CraftChicken(server, this);
// CraftBukkit end
}
public void o() {
super.o();
this.ak = this.b;
this.f = this.c;
this.c = (float) ((double) this.c + (double) (this.onGround ? -1 : 4) * 0.3D);
if (this.c < 0.0F) {
this.c = 0.0F;
}
if (this.c > 1.0F) {
this.c = 1.0F;
}
if (!this.onGround && this.al < 1.0F) {
this.al = 1.0F;
}
this.al = (float) ((double) this.al * 0.9D);
if (!this.onGround && this.motY < 0.0D) {
this.motY *= 0.6D;
}
this.b += this.al * 2.0F;
if (!this.world.isStatic && --this.am <= 0) {
this.world.a(this, "mob.chickenplop", 1.0F, (this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 1.0F);
this.a(Item.EGG.id, 1);
this.am = this.random.nextInt(6000) + 6000;
}
}
protected void a(float f) {}
public void a(NBTTagCompound nbttagcompound) {
super.a(nbttagcompound);
}
public void b(NBTTagCompound nbttagcompound) {
super.b(nbttagcompound);
}
protected String e() {
return "mob.chicken";
}
protected String f() {
return "mob.chickenhurt";
}
protected String g() {
return "mob.chickenhurt";
}
protected int h() {
return Item.FEATHER.id;
}
}

View file

@ -1,59 +0,0 @@
package net.minecraft.server;
// CraftBukkit start
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.entity.CraftCow;
// CraftBukkit end
public class EntityCow extends EntityAnimal {
public EntityCow(World world) {
super(world);
this.texture = "/mob/cow.png";
this.a(0.9F, 1.3F);
// CraftBukkit start
CraftServer server = ((WorldServer) this.world).getServer();
this.bukkitEntity = new CraftCow(server, this);
// CraftBukkit end
}
public void a(NBTTagCompound nbttagcompound) {
super.a(nbttagcompound);
}
public void b(NBTTagCompound nbttagcompound) {
super.b(nbttagcompound);
}
protected String e() {
return "mob.cow";
}
protected String f() {
return "mob.cowhurt";
}
protected String g() {
return "mob.cowhurt";
}
protected float i() {
return 0.4F;
}
protected int h() {
return Item.LEATHER.id;
}
public boolean a(EntityHuman entityhuman) {
ItemStack itemstack = entityhuman.inventory.e();
if (itemstack != null && itemstack.id == Item.BUCKET.id) {
entityhuman.inventory.a(entityhuman.inventory.c, new ItemStack(Item.MILK_BUCKET));
return true;
} else {
return false;
}
}
}

View file

@ -1,110 +0,0 @@
package net.minecraft.server;
// CraftBukkit start
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.entity.CraftCreeper;
// CraftBukkit end
public class EntityCreeper extends EntityMonster {
int a;
int b;
public EntityCreeper(World world) {
super(world);
this.texture = "/mob/creeper.png";
// CraftBukkit start
CraftServer server = ((WorldServer) this.world).getServer();
this.bukkitEntity = new CraftCreeper(server, this);
// CraftBukkit end
}
protected void a() {
super.a();
this.datawatcher.a(16, Byte.valueOf((byte) -1));
}
public void a(NBTTagCompound nbttagcompound) {
super.a(nbttagcompound);
}
public void b(NBTTagCompound nbttagcompound) {
super.b(nbttagcompound);
}
public void b_() {
this.b = this.a;
if (this.world.isStatic) {
int i = this.K();
if (i > 0 && this.a == 0) {
this.world.a(this, "random.fuse", 1.0F, 0.5F);
}
this.a += i;
if (this.a < 0) {
this.a = 0;
}
if (this.a >= 30) {
this.a = 30;
}
}
super.b_();
}
protected String f() {
return "mob.creeper";
}
protected String g() {
return "mob.creeperdeath";
}
public void f(Entity entity) {
super.f(entity);
if (entity instanceof EntitySkeleton) {
this.a(Item.GOLD_RECORD.id + this.random.nextInt(2), 1);
}
}
protected void a(Entity entity, float f) {
int i = this.K();
if ((i > 0 || f >= 3.0F) && (i <= 0 || f >= 7.0F)) {
this.a(-1);
--this.a;
if (this.a < 0) {
this.a = 0;
}
} else {
if (this.a == 0) {
this.world.a(this, "random.fuse", 1.0F, 0.5F);
}
this.a(1);
++this.a;
if (this.a >= 30) {
this.world.a(this, this.locX, this.locY, this.locZ, 3.0F);
this.q();
}
this.e = true;
}
}
protected int h() {
return Item.SULPHUR.id;
}
private int K() {
return this.datawatcher.a(16);
}
private void a(int i) {
this.datawatcher.b(16, Byte.valueOf((byte) i));
}
}

12
src/main/java/net/minecraft/server/EntityEgg.java Normal file → Executable file
View file

@ -6,7 +6,6 @@ import java.util.List;
import org.bukkit.entity.Egg;
import org.bukkit.entity.MobType;
import org.bukkit.entity.Player;
import org.bukkit.craftbukkit.entity.CraftEgg;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.event.Event.Type;
import org.bukkit.event.entity.EntityDamageByProjectileEvent;
@ -30,18 +29,12 @@ public class EntityEgg extends Entity {
public EntityEgg(World world) {
super(world);
this.a(0.25F, 0.25F);
// CraftBukkit start
CraftServer server = ((WorldServer) this.world).getServer();
this.bukkitEntity = new CraftEgg(server, this);
// CraftBukkit end
}
protected void a() {}
public EntityEgg(World world, EntityLiving entityliving) {
this(world); // CraftBukkit super->this so we assign the entity
super(world);
this.ak = entityliving;
this.a(0.25F, 0.25F);
this.c(entityliving.locX, entityliving.locY + (double) entityliving.w(), entityliving.locZ, entityliving.yaw, entityliving.pitch);
@ -59,8 +52,7 @@ public class EntityEgg extends Entity {
}
public EntityEgg(World world, double d0, double d1, double d2) {
this(world); // CraftBukkit super->this so we assign the entity
super(world);
this.al = 0;
this.a(0.25F, 0.25F);
this.a(d0, d1, d2);

View file

@ -1,88 +0,0 @@
package net.minecraft.server;
// CraftBukkit start
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.entity.CraftFallingSand;
// CraftBukkit end
public class EntityFallingSand extends Entity {
public int a;
public int b = 0;
public EntityFallingSand(World world) {
super(world);
// CraftBukkit start
CraftServer server = ((WorldServer) this.world).getServer();
this.bukkitEntity = new CraftFallingSand(server, this);
// CraftBukkit end
}
public EntityFallingSand(World world, double d0, double d1, double d2, int i) {
this(world); // CraftBukkit super->this so we assign the entity
this.a = i;
this.i = true;
this.a(0.98F, 0.98F);
this.height = this.width / 2.0F;
this.a(d0, d1, d2);
this.motX = 0.0D;
this.motY = 0.0D;
this.motZ = 0.0D;
this.M = false;
this.lastX = d0;
this.lastY = d1;
this.lastZ = d2;
}
protected void a() {}
public boolean c_() {
return !this.dead;
}
public void b_() {
if (this.a == 0) {
this.q();
} else {
this.lastX = this.locX;
this.lastY = this.locY;
this.lastZ = this.locZ;
++this.b;
this.motY -= 0.03999999910593033D;
this.c(this.motX, this.motY, this.motZ);
this.motX *= 0.9800000190734863D;
this.motY *= 0.9800000190734863D;
this.motZ *= 0.9800000190734863D;
int i = MathHelper.b(this.locX);
int j = MathHelper.b(this.locY);
int k = MathHelper.b(this.locZ);
if (this.world.getTypeId(i, j, k) == this.a) {
this.world.e(i, j, k, 0);
}
if (this.onGround) {
this.motX *= 0.699999988079071D;
this.motZ *= 0.699999988079071D;
this.motY *= -0.5D;
this.q();
if ((!this.world.a(this.a, i, j, k, true) || !this.world.e(i, j, k, this.a)) && !this.world.isStatic) {
this.a(this.a, 1);
}
} else if (this.b > 100 && !this.world.isStatic) {
this.a(this.a, 1);
this.q();
}
}
}
protected void a(NBTTagCompound nbttagcompound) {
nbttagcompound.a("Tile", (byte) this.a);
}
protected void b(NBTTagCompound nbttagcompound) {
this.a = nbttagcompound.b("Tile") & 255;
}
}

9
src/main/java/net/minecraft/server/EntityFireball.java Normal file → Executable file
View file

@ -3,7 +3,6 @@ package net.minecraft.server;
import java.util.List;
// CraftBukkit start
import org.bukkit.craftbukkit.entity.CraftFireball;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.event.entity.EntityDamageByProjectileEvent;
import org.bukkit.event.entity.EntityDamageEvent;
@ -28,18 +27,12 @@ public class EntityFireball extends Entity {
public EntityFireball(World world) {
super(world);
this.a(1.0F, 1.0F);
// CraftBukkit start
CraftServer server = ((WorldServer) this.world).getServer();
this.bukkitEntity = new CraftFireball(server, this);
// CraftBukkit end
}
protected void a() {}
public EntityFireball(World world, EntityLiving entityliving, double d0, double d1, double d2) {
this(world); // CraftBukkit super->this so we assign the entity
super(world);
this.an = entityliving;
this.a(1.0F, 1.0F);
this.c(entityliving.locX, entityliving.locY, entityliving.locZ, entityliving.yaw, entityliving.pitch);

9
src/main/java/net/minecraft/server/EntityFish.java Normal file → Executable file
View file

@ -3,7 +3,6 @@ package net.minecraft.server;
import java.util.List;
// CraftBukkit start
import org.bukkit.craftbukkit.entity.CraftFish;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.event.entity.EntityDamageByProjectileEvent;
import org.bukkit.event.entity.EntityDamageEvent;
@ -33,18 +32,12 @@ public class EntityFish extends Entity {
public EntityFish(World world) {
super(world);
this.a(0.25F, 0.25F);
//CraftBukkit start
CraftServer server = ((WorldServer) this.world).getServer();
this.bukkitEntity = new CraftFish(server, this);
//CraftBukkit end
}
protected void a() {}
public EntityFish(World world, EntityHuman entityhuman) {
this(world); // CraftBukkit super->this so we assign the entity
super(world);
this.b = entityhuman;
this.b.hookedFish = this;
this.a(0.25F, 0.25F);

View file

@ -1,81 +0,0 @@
package net.minecraft.server;
// CraftBukkit start
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.entity.CraftFlying;
// CraftBukkit end
public class EntityFlying extends EntityLiving {
public EntityFlying(World world) {
super(world);
// CraftBukkit start
CraftServer server = ((WorldServer) this.world).getServer();
this.bukkitEntity = new CraftFlying(server, this);
// CraftBukkit end
}
protected void a(float f) {}
public void c(float f, float f1) {
if (this.v()) {
this.a(f, f1, 0.02F);
this.c(this.motX, this.motY, this.motZ);
this.motX *= 0.800000011920929D;
this.motY *= 0.800000011920929D;
this.motZ *= 0.800000011920929D;
} else if (this.x()) {
this.a(f, f1, 0.02F);
this.c(this.motX, this.motY, this.motZ);
this.motX *= 0.5D;
this.motY *= 0.5D;
this.motZ *= 0.5D;
} else {
float f2 = 0.91F;
if (this.onGround) {
f2 = 0.54600006F;
int i = this.world.getTypeId(MathHelper.b(this.locX), MathHelper.b(this.boundingBox.b) - 1, MathHelper.b(this.locZ));
if (i > 0) {
f2 = Block.byId[i].frictionFactor * 0.91F;
}
}
float f3 = 0.16277136F / (f2 * f2 * f2);
this.a(f, f1, this.onGround ? 0.1F * f3 : 0.02F);
f2 = 0.91F;
if (this.onGround) {
f2 = 0.54600006F;
int j = this.world.getTypeId(MathHelper.b(this.locX), MathHelper.b(this.boundingBox.b) - 1, MathHelper.b(this.locZ));
if (j > 0) {
f2 = Block.byId[j].frictionFactor * 0.91F;
}
}
this.c(this.motX, this.motY, this.motZ);
this.motX *= (double) f2;
this.motY *= (double) f2;
this.motZ *= (double) f2;
}
this.bl = this.bm;
double d0 = this.locX - this.lastX;
double d1 = this.locZ - this.lastZ;
float f4 = MathHelper.a(d0 * d0 + d1 * d1) * 4.0F;
if (f4 > 1.0F) {
f4 = 1.0F;
}
this.bm += (f4 - this.bm) * 0.4F;
this.bn += this.bm;
}
public boolean m() {
return false;
}
}

View file

@ -1,154 +0,0 @@
package net.minecraft.server;
// CraftBukkit start
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.entity.CraftGhast;
// CraftBukkit end
public class EntityGhast extends EntityFlying implements IMonster {
public int a = 0;
public double b;
public double c;
public double d;
private Entity ak = null;
private int al = 0;
public int e = 0;
public int f = 0;
public EntityGhast(World world) {
super(world);
this.texture = "/mob/ghast.png";
this.a(4.0F, 4.0F);
this.ae = true;
// CraftBukkit start
CraftServer server = ((WorldServer) this.world).getServer();
this.bukkitEntity = new CraftGhast(server, this);
// CraftBukkit end
}
protected void d() {
if (this.world.k == 0) {
this.q();
}
this.e = this.f;
double d0 = this.b - this.locX;
double d1 = this.c - this.locY;
double d2 = this.d - this.locZ;
double d3 = (double) MathHelper.a(d0 * d0 + d1 * d1 + d2 * d2);
if (d3 < 1.0D || d3 > 60.0D) {
this.b = this.locX + (double) ((this.random.nextFloat() * 2.0F - 1.0F) * 16.0F);
this.c = this.locY + (double) ((this.random.nextFloat() * 2.0F - 1.0F) * 16.0F);
this.d = this.locZ + (double) ((this.random.nextFloat() * 2.0F - 1.0F) * 16.0F);
}
if (this.a-- <= 0) {
this.a += this.random.nextInt(5) + 2;
if (this.a(this.b, this.c, this.d, d3)) {
this.motX += d0 / d3 * 0.1D;
this.motY += d1 / d3 * 0.1D;
this.motZ += d2 / d3 * 0.1D;
} else {
this.b = this.locX;
this.c = this.locY;
this.d = this.locZ;
}
}
if (this.ak != null && this.ak.dead) {
this.ak = null;
}
if (this.ak == null || this.al-- <= 0) {
this.ak = this.world.a(this, 100.0D);
if (this.ak != null) {
this.al = 20;
}
}
double d4 = 64.0D;
if (this.ak != null && this.ak.b((Entity) this) < d4 * d4) {
double d5 = this.ak.locX - this.locX;
double d6 = this.ak.boundingBox.b + (double) (this.ak.width / 2.0F) - (this.locY + (double) (this.width / 2.0F));
double d7 = this.ak.locZ - this.locZ;
this.aI = this.yaw = -((float) Math.atan2(d5, d7)) * 180.0F / 3.1415927F;
if (this.i(this.ak)) {
if (this.f == 10) {
this.world.a(this, "mob.ghast.charge", this.i(), (this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 1.0F);
}
++this.f;
if (this.f == 20) {
this.world.a(this, "mob.ghast.fireball", this.i(), (this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 1.0F);
EntityFireball entityfireball = new EntityFireball(this.world, this, d5, d6, d7);
double d8 = 4.0D;
Vec3D vec3d = this.c(1.0F);
entityfireball.locX = this.locX + vec3d.a * d8;
entityfireball.locY = this.locY + (double) (this.width / 2.0F) + 0.5D;
entityfireball.locZ = this.locZ + vec3d.c * d8;
this.world.a((Entity) entityfireball);
this.f = -40;
}
} else if (this.f > 0) {
--this.f;
}
} else {
this.aI = this.yaw = -((float) Math.atan2(this.motX, this.motZ)) * 180.0F / 3.1415927F;
if (this.f > 0) {
--this.f;
}
}
this.texture = this.f > 10 ? "/mob/ghast_fire.png" : "/mob/ghast.png";
}
private boolean a(double d0, double d1, double d2, double d3) {
double d4 = (this.b - this.locX) / d3;
double d5 = (this.c - this.locY) / d3;
double d6 = (this.d - this.locZ) / d3;
AxisAlignedBB axisalignedbb = this.boundingBox.b();
for (int i = 1; (double) i < d3; ++i) {
axisalignedbb.d(d4, d5, d6);
if (this.world.a((Entity) this, axisalignedbb).size() > 0) {
return false;
}
}
return true;
}
protected String e() {
return "mob.ghast.moan";
}
protected String f() {
return "mob.ghast.scream";
}
protected String g() {
return "mob.ghast.death";
}
protected int h() {
return Item.SULPHUR.id;
}
protected float i() {
return 10.0F;
}
public boolean b() {
return this.random.nextInt(20) == 0 && super.b() && this.world.k > 0;
}
public int j() {
return 1;
}
}

View file

@ -1,28 +0,0 @@
package net.minecraft.server;
// CraftBukkit start
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.entity.CraftGiant;
// CraftBukkit stop
public class EntityGiantZombie extends EntityMonster {
public EntityGiantZombie(World world) {
super(world);
this.texture = "/mob/zombie.png";
this.bC = 0.5F;
this.c = 50;
this.health *= 10;
this.height *= 6.0F;
this.a(this.length * 6.0F, this.width * 6.0F);
// CraftBukkit start
CraftServer server = ((WorldServer) this.world).getServer();
this.bukkitEntity = new CraftGiant(server, this);
// CraftBukkit end
}
protected float a(int i, int j, int k) {
return this.world.l(i, j, k) - 0.5F;
}
}

6
src/main/java/net/minecraft/server/EntityHuman.java Normal file → Executable file
View file

@ -3,7 +3,6 @@ package net.minecraft.server;
import java.util.List;
// CraftBukkit start
import org.bukkit.craftbukkit.entity.CraftHumanEntity;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.event.entity.EntityDamageEvent;
@ -43,11 +42,6 @@ public abstract class EntityHuman extends EntityLiving {
this.aR = 180.0F;
this.maxFireTicks = 20;
this.texture = "/mob/char.png";
// CraftBukkit start
CraftServer server = ((WorldServer) this.world).getServer();
this.bukkitEntity = new CraftHumanEntity(server, this);
// CraftBukkit end
}
public void b_() {

View file

@ -1,208 +0,0 @@
package net.minecraft.server;
// CraftBukkit start
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.entity.CraftItem;
// CraftBukkit end
public class EntityItem extends Entity {
public ItemStack a;
private int e;
public int b = 0;
public int c;
private int f = 5;
public float d = (float) (Math.random() * 3.141592653589793D * 2.0D);
public EntityItem(World world, double d0, double d1, double d2, ItemStack itemstack) {
super(world);
this.a(0.25F, 0.25F);
this.height = this.width / 2.0F;
this.a(d0, d1, d2);
this.a = itemstack;
this.yaw = (float) (Math.random() * 360.0D);
this.motX = (double) ((float) (Math.random() * 0.20000000298023224D - 0.10000000149011612D));
this.motY = 0.20000000298023224D;
this.motZ = (double) ((float) (Math.random() * 0.20000000298023224D - 0.10000000149011612D));
this.M = false;
}
public EntityItem(World world) {
super(world);
this.a(0.25F, 0.25F);
this.height = this.width / 2.0F;
// CraftBukkit start
CraftServer server = ((WorldServer) this.world).getServer();
this.bukkitEntity = new CraftItem(server, this);
// CraftBukkit end
}
protected void a() {}
public void b_() {
super.b_();
if (this.c > 0) {
--this.c;
}
this.lastX = this.locX;
this.lastY = this.locY;
this.lastZ = this.locZ;
this.motY -= 0.03999999910593033D;
if (this.world.getMaterial(MathHelper.b(this.locX), MathHelper.b(this.locY), MathHelper.b(this.locZ)) == Material.LAVA) {
this.motY = 0.20000000298023224D;
this.motX = (double) ((this.random.nextFloat() - this.random.nextFloat()) * 0.2F);
this.motZ = (double) ((this.random.nextFloat() - this.random.nextFloat()) * 0.2F);
this.world.a(this, "random.fizz", 0.4F, 2.0F + this.random.nextFloat() * 0.4F);
}
this.g(this.locX, this.locY, this.locZ);
this.c(this.motX, this.motY, this.motZ);
float f = 0.98F;
if (this.onGround) {
f = 0.58800006F;
int i = this.world.getTypeId(MathHelper.b(this.locX), MathHelper.b(this.boundingBox.b) - 1, MathHelper.b(this.locZ));
if (i > 0) {
f = Block.byId[i].frictionFactor * 0.98F;
}
}
this.motX *= (double) f;
this.motY *= 0.9800000190734863D;
this.motZ *= (double) f;
if (this.onGround) {
this.motY *= -0.5D;
}
++this.e;
++this.b;
if (this.b >= 6000) {
this.q();
}
}
public boolean v() {
return this.world.a(this.boundingBox, Material.WATER, this);
}
private boolean g(double d0, double d1, double d2) {
int i = MathHelper.b(d0);
int j = MathHelper.b(d1);
int k = MathHelper.b(d2);
double d3 = d0 - (double) i;
double d4 = d1 - (double) j;
double d5 = d2 - (double) k;
if (Block.o[this.world.getTypeId(i, j, k)]) {
boolean flag = !Block.o[this.world.getTypeId(i - 1, j, k)];
boolean flag1 = !Block.o[this.world.getTypeId(i + 1, j, k)];
boolean flag2 = !Block.o[this.world.getTypeId(i, j - 1, k)];
boolean flag3 = !Block.o[this.world.getTypeId(i, j + 1, k)];
boolean flag4 = !Block.o[this.world.getTypeId(i, j, k - 1)];
boolean flag5 = !Block.o[this.world.getTypeId(i, j, k + 1)];
byte b0 = -1;
double d6 = 9999.0D;
if (flag && d3 < d6) {
d6 = d3;
b0 = 0;
}
if (flag1 && 1.0D - d3 < d6) {
d6 = 1.0D - d3;
b0 = 1;
}
if (flag2 && d4 < d6) {
d6 = d4;
b0 = 2;
}
if (flag3 && 1.0D - d4 < d6) {
d6 = 1.0D - d4;
b0 = 3;
}
if (flag4 && d5 < d6) {
d6 = d5;
b0 = 4;
}
if (flag5 && 1.0D - d5 < d6) {
d6 = 1.0D - d5;
b0 = 5;
}
float f = this.random.nextFloat() * 0.2F + 0.1F;
if (b0 == 0) {
this.motX = (double) (-f);
}
if (b0 == 1) {
this.motX = (double) f;
}
if (b0 == 2) {
this.motY = (double) (-f);
}
if (b0 == 3) {
this.motY = (double) f;
}
if (b0 == 4) {
this.motZ = (double) (-f);
}
if (b0 == 5) {
this.motZ = (double) f;
}
}
return false;
}
protected void b(int i) {
this.a((Entity) null, i);
}
public boolean a(Entity entity, int i) {
this.y();
this.f -= i;
if (this.f <= 0) {
this.q();
}
return false;
}
public void a(NBTTagCompound nbttagcompound) {
nbttagcompound.a("Health", (short) ((byte) this.f));
nbttagcompound.a("Age", (short) this.b);
nbttagcompound.a("Item", this.a.a(new NBTTagCompound()));
}
public void b(NBTTagCompound nbttagcompound) {
this.f = nbttagcompound.c("Health") & 255;
this.b = nbttagcompound.c("Age");
NBTTagCompound nbttagcompound1 = nbttagcompound.j("Item");
this.a = new ItemStack(nbttagcompound1);
}
public void b(EntityHuman entityhuman) {
if (!this.world.isStatic) {
int i = this.a.count;
if (this.c == 0 && entityhuman.inventory.a(this.a)) {
this.world.a(this, "random.pop", 0.2F, ((this.random.nextFloat() - this.random.nextFloat()) * 0.7F + 1.0F) * 2.0F);
entityhuman.c(this, i);
this.q();
}
}
}
}

6
src/main/java/net/minecraft/server/EntityLiving.java Normal file → Executable file
View file

@ -4,7 +4,6 @@ import java.util.List;
// CraftBukkit start
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.entity.CraftLivingEntity;
import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
// CraftBukkit end
@ -73,11 +72,6 @@ public abstract class EntityLiving extends Entity {
this.aG = (float) Math.random() * 12398.0F;
this.yaw = (float) (Math.random() * 3.1415927410125732D * 2.0D);
this.S = 0.5F;
// CraftBukkit start
CraftServer server = ((WorldServer) this.world).getServer();
this.bukkitEntity = new CraftLivingEntity(server, this);
// CraftBukkit end
}
protected void a() {}

6
src/main/java/net/minecraft/server/EntityMonster.java Normal file → Executable file
View file

@ -1,7 +1,6 @@
package net.minecraft.server;
// CraftBukkit start
import org.bukkit.craftbukkit.entity.CraftMonster;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.entity.CraftEntity;
@ -19,11 +18,6 @@ public class EntityMonster extends EntityCreature implements IMonster {
public EntityMonster(World world) {
super(world);
this.health = 20;
// CraftBukkit start
CraftServer server = ((WorldServer) this.world).getServer();
this.bukkitEntity = new CraftMonster(server, this);
// CraftBukkit end
}
public void o() {

View file

@ -1,238 +0,0 @@
package net.minecraft.server;
import java.util.ArrayList;
import java.util.List;
// CraftBukkit start
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.entity.CraftPainting;
// CraftBukkit end
public class EntityPainting extends Entity {
private int f;
public int a;
public int b;
public int c;
public int d;
public EnumArt e;
public EntityPainting(World world) {
super(world);
this.f = 0;
this.a = 0;
this.height = 0.0F;
this.a(0.5F, 0.5F);
// CraftBukkit start
CraftServer server = ((WorldServer) this.world).getServer();
this.bukkitEntity = new CraftPainting(server, this);
// CraftBukkit end
}
public EntityPainting(World world, int i, int j, int k, int l) {
this(world);
this.b = i;
this.c = j;
this.d = k;
ArrayList arraylist = new ArrayList();
EnumArt[] aenumart = EnumArt.values();
int i1 = aenumart.length;
for (int j1 = 0; j1 < i1; ++j1) {
EnumArt enumart = aenumart[j1];
this.e = enumart;
this.a(l);
if (this.d()) {
arraylist.add(enumart);
}
}
if (arraylist.size() > 0) {
this.e = (EnumArt) arraylist.get(this.random.nextInt(arraylist.size()));
}
this.a(l);
}
protected void a() {}
public void a(int i) {
this.a = i;
this.lastYaw = this.yaw = (float) (i * 90);
float f = (float) this.e.A;
float f1 = (float) this.e.B;
float f2 = (float) this.e.A;
if (i != 0 && i != 2) {
f = 0.5F;
} else {
f2 = 0.5F;
}
f /= 32.0F;
f1 /= 32.0F;
f2 /= 32.0F;
float f3 = (float) this.b + 0.5F;
float f4 = (float) this.c + 0.5F;
float f5 = (float) this.d + 0.5F;
float f6 = 0.5625F;
if (i == 0) {
f5 -= f6;
}
if (i == 1) {
f3 -= f6;
}
if (i == 2) {
f5 += f6;
}
if (i == 3) {
f3 += f6;
}
if (i == 0) {
f3 -= this.d(this.e.A);
}
if (i == 1) {
f5 += this.d(this.e.A);
}
if (i == 2) {
f3 += this.d(this.e.A);
}
if (i == 3) {
f5 -= this.d(this.e.A);
}
f4 += this.d(this.e.B);
this.a((double) f3, (double) f4, (double) f5);
float f7 = -0.00625F;
this.boundingBox.c((double) (f3 - f - f7), (double) (f4 - f1 - f7), (double) (f5 - f2 - f7), (double) (f3 + f + f7), (double) (f4 + f1 + f7), (double) (f5 + f2 + f7));
}
private float d(int i) {
return i == 32 ? 0.5F : (i == 64 ? 0.5F : 0.0F);
}
public void b_() {
if (this.f++ == 100 && !this.world.isStatic) {
this.f = 0;
if (!this.d()) {
this.q();
this.world.a((Entity) (new EntityItem(this.world, this.locX, this.locY, this.locZ, new ItemStack(Item.PAINTING))));
}
}
}
public boolean d() {
if (this.world.a((Entity) this, this.boundingBox).size() > 0) {
return false;
} else {
int i = this.e.A / 16;
int j = this.e.B / 16;
int k = this.b;
int l = this.c;
int i1 = this.d;
if (this.a == 0) {
k = MathHelper.b(this.locX - (double) ((float) this.e.A / 32.0F));
}
if (this.a == 1) {
i1 = MathHelper.b(this.locZ - (double) ((float) this.e.A / 32.0F));
}
if (this.a == 2) {
k = MathHelper.b(this.locX - (double) ((float) this.e.A / 32.0F));
}
if (this.a == 3) {
i1 = MathHelper.b(this.locZ - (double) ((float) this.e.A / 32.0F));
}
l = MathHelper.b(this.locY - (double) ((float) this.e.B / 32.0F));
int j1;
for (int k1 = 0; k1 < i; ++k1) {
for (j1 = 0; j1 < j; ++j1) {
Material material;
if (this.a != 0 && this.a != 2) {
material = this.world.getMaterial(this.b, l + j1, i1 + k1);
} else {
material = this.world.getMaterial(k + k1, l + j1, this.d);
}
if (!material.isBuildable()) {
return false;
}
}
}
List list = this.world.b((Entity) this, this.boundingBox);
for (j1 = 0; j1 < list.size(); ++j1) {
if (list.get(j1) instanceof EntityPainting) {
return false;
}
}
return true;
}
}
public boolean c_() {
return true;
}
public boolean a(Entity entity, int i) {
if (!this.dead && !this.world.isStatic) {
this.q();
this.y();
this.world.a((Entity) (new EntityItem(this.world, this.locX, this.locY, this.locZ, new ItemStack(Item.PAINTING))));
}
return true;
}
public void a(NBTTagCompound nbttagcompound) {
nbttagcompound.a("Dir", (byte) this.a);
nbttagcompound.a("Motive", this.e.z);
nbttagcompound.a("TileX", this.b);
nbttagcompound.a("TileY", this.c);
nbttagcompound.a("TileZ", this.d);
}
public void b(NBTTagCompound nbttagcompound) {
this.a = nbttagcompound.b("Dir");
this.b = nbttagcompound.d("TileX");
this.c = nbttagcompound.d("TileY");
this.d = nbttagcompound.d("TileZ");
String s = nbttagcompound.h("Motive");
EnumArt[] aenumart = EnumArt.values();
int i = aenumart.length;
for (int j = 0; j < i; ++j) {
EnumArt enumart = aenumart[j];
if (enumart.z.equals(s)) {
this.e = enumart;
}
}
if (this.e == null) {
this.e = EnumArt.KEBAB;
}
this.a(this.a);
}
}

View file

@ -1,71 +0,0 @@
package net.minecraft.server;
// CraftBukkit start
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.entity.CraftPig;
// CraftBukkit end
public class EntityPig extends EntityAnimal {
public EntityPig(World world) {
super(world);
this.texture = "/mob/pig.png";
this.a(0.9F, 0.9F);
// CraftBukkit start
CraftServer server = ((WorldServer) this.world).getServer();
this.bukkitEntity = new CraftPig(server, this);
// CraftBukkit end
}
protected void a() {
this.datawatcher.a(16, Byte.valueOf((byte) 0));
}
public void a(NBTTagCompound nbttagcompound) {
super.a(nbttagcompound);
nbttagcompound.a("Saddle", this.K());
}
public void b(NBTTagCompound nbttagcompound) {
super.b(nbttagcompound);
this.a(nbttagcompound.l("Saddle"));
}
protected String e() {
return "mob.pig";
}
protected String f() {
return "mob.pig";
}
protected String g() {
return "mob.pigdeath";
}
public boolean a(EntityHuman entityhuman) {
if (this.K() && !this.world.isStatic && (this.passenger == null || this.passenger == entityhuman)) {
entityhuman.e(this);
return true;
} else {
return false;
}
}
protected int h() {
return Item.PORK.id;
}
public boolean K() {
return (this.datawatcher.a(16) & 1) != 0;
}
public void a(boolean flag) {
if (flag) {
this.datawatcher.b(16, Byte.valueOf((byte) 1));
} else {
this.datawatcher.b(16, Byte.valueOf((byte) 0));
}
}
}

View file

@ -5,7 +5,6 @@ import java.util.List;
// CraftBukkit start
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.entity.CraftEntity;
import org.bukkit.craftbukkit.entity.CraftPigZombie;
import org.bukkit.event.entity.EntityTargetEvent;
import org.bukkit.event.entity.EntityTargetEvent.TargetReason;
// CraftBukkit end
@ -22,11 +21,6 @@ public class EntityPigZombie extends EntityZombie {
this.bC = 0.5F;
this.c = 5;
this.ae = true;
// CraftBukkit start
CraftServer server = ((WorldServer) this.world).getServer();
this.bukkitEntity = new CraftPigZombie(server, this);
// CraftBukkit end
}
public void b_() {

10
src/main/java/net/minecraft/server/EntityPlayer.java Normal file → Executable file
View file

@ -5,11 +5,6 @@ import java.util.LinkedList;
import java.util.List;
import java.util.Set;
// CraftBukkit start
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.entity.CraftPlayer;
// CraftBukkit end
public class EntityPlayer extends EntityHuman implements ICrafting {
public NetServerHandler a;
@ -45,11 +40,6 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
this.name = s;
this.c = iteminworldmanager;
this.height = 0.0F;
// CraftBukkit start
CraftServer server = ((WorldServer) this.world).getServer();
this.bukkitEntity = new CraftPlayer(server, this);
// CraftBukkit end
}
public void l() {

View file

@ -1,100 +0,0 @@
package net.minecraft.server;
import java.util.Random;
// CraftBukkit start
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.entity.CraftSheep;
// CraftBukkit end
public class EntitySheep extends EntityAnimal {
public static final float[][] a = new float[][] { { 1.0F, 1.0F, 1.0F}, { 0.95F, 0.7F, 0.2F}, { 0.9F, 0.5F, 0.85F}, { 0.6F, 0.7F, 0.95F}, { 0.9F, 0.9F, 0.2F}, { 0.5F, 0.8F, 0.1F}, { 0.95F, 0.7F, 0.8F}, { 0.3F, 0.3F, 0.3F}, { 0.6F, 0.6F, 0.6F}, { 0.3F, 0.6F, 0.7F}, { 0.7F, 0.4F, 0.9F}, { 0.2F, 0.4F, 0.8F}, { 0.5F, 0.4F, 0.3F}, { 0.4F, 0.5F, 0.2F}, { 0.8F, 0.3F, 0.3F}, { 0.1F, 0.1F, 0.1F}};
public EntitySheep(World world) {
super(world);
this.texture = "/mob/sheep.png";
this.a(0.9F, 1.3F);
// CraftBukkit start
CraftServer server = ((WorldServer) this.world).getServer();
this.bukkitEntity = new CraftSheep(server, this);
// CraftBukkit end
}
protected void a() {
super.a();
this.datawatcher.a(16, new Byte((byte) 0));
}
public boolean a(Entity entity, int i) {
if (!this.world.isStatic && !this.f_() && entity instanceof EntityLiving) {
this.a(true);
int j = 1 + this.random.nextInt(3);
for (int k = 0; k < j; ++k) {
EntityItem entityitem = this.a(new ItemStack(Block.WOOL.id, 1, this.e_()), 1.0F);
entityitem.motY += (double) (this.random.nextFloat() * 0.05F);
entityitem.motX += (double) ((this.random.nextFloat() - this.random.nextFloat()) * 0.1F);
entityitem.motZ += (double) ((this.random.nextFloat() - this.random.nextFloat()) * 0.1F);
}
}
return super.a(entity, i);
}
public void a(NBTTagCompound nbttagcompound) {
super.a(nbttagcompound);
nbttagcompound.a("Sheared", this.f_());
nbttagcompound.a("Color", (byte) this.e_());
}
public void b(NBTTagCompound nbttagcompound) {
super.b(nbttagcompound);
this.a(nbttagcompound.l("Sheared"));
this.a(nbttagcompound.b("Color"));
}
protected String e() {
return "mob.sheep";
}
protected String f() {
return "mob.sheep";
}
protected String g() {
return "mob.sheep";
}
public int e_() {
return this.datawatcher.a(16) & 15;
}
public void a(int i) {
byte b0 = this.datawatcher.a(16);
this.datawatcher.b(16, Byte.valueOf((byte) (b0 & 240 | i & 15)));
}
public boolean f_() {
return (this.datawatcher.a(16) & 16) != 0;
}
public void a(boolean flag) {
byte b0 = this.datawatcher.a(16);
if (flag) {
this.datawatcher.b(16, Byte.valueOf((byte) (b0 | 16)));
} else {
this.datawatcher.b(16, Byte.valueOf((byte) (b0 & -17)));
}
}
public static int a(Random random) {
int i = random.nextInt(100);
return i < 5 ? 15 : (i < 10 ? 7 : (i < 15 ? 8 : 0));
}
}

6
src/main/java/net/minecraft/server/EntitySkeleton.java Normal file → Executable file
View file

@ -1,7 +1,6 @@
package net.minecraft.server;
// CraftBukkit start
import org.bukkit.craftbukkit.entity.CraftSkeleton;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.event.Event.Type;
import org.bukkit.event.entity.EntityCombustEvent;
@ -14,11 +13,6 @@ public class EntitySkeleton extends EntityMonster {
public EntitySkeleton(World world) {
super(world);
this.texture = "/mob/skeleton.png";
// CraftBukkit start
CraftServer server = ((WorldServer) this.world).getServer();
this.bukkitEntity = new CraftSkeleton(server, this);
// CraftBukkit end
}
protected String e() {

View file

@ -1,144 +0,0 @@
package net.minecraft.server;
// CraftBukkit start
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.entity.CraftSlime;
// CraftBukkit stop
public class EntitySlime extends EntityLiving implements IMonster {
public float a;
public float b;
private int d = 0;
public int c = 1;
public EntitySlime(World world) {
super(world);
this.texture = "/mob/slime.png";
this.c = 1 << this.random.nextInt(3);
this.height = 0.0F;
this.d = this.random.nextInt(20) + 10;
this.a(this.c);
// CraftBukkit start
CraftServer server = ((WorldServer) this.world).getServer();
this.bukkitEntity = new CraftSlime(server, this);
// CraftBukkit end
}
public void a(int i) {
this.c = i;
this.a(0.6F * (float) i, 0.6F * (float) i);
this.health = i * i;
this.a(this.locX, this.locY, this.locZ);
}
public void a(NBTTagCompound nbttagcompound) {
super.a(nbttagcompound);
nbttagcompound.a("Size", this.c - 1);
}
public void b(NBTTagCompound nbttagcompound) {
super.b(nbttagcompound);
this.c = nbttagcompound.d("Size") + 1;
}
public void b_() {
this.b = this.a;
boolean flag = this.onGround;
super.b_();
if (this.onGround && !flag) {
for (int i = 0; i < this.c * 8; ++i) {
float f = this.random.nextFloat() * 3.1415927F * 2.0F;
float f1 = this.random.nextFloat() * 0.5F + 0.5F;
float f2 = MathHelper.a(f) * (float) this.c * 0.5F * f1;
float f3 = MathHelper.b(f) * (float) this.c * 0.5F * f1;
this.world.a("slime", this.locX + (double) f2, this.boundingBox.b, this.locZ + (double) f3, 0.0D, 0.0D, 0.0D);
}
if (this.c > 2) {
this.world.a(this, "mob.slime", this.i(), ((this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 1.0F) / 0.8F);
}
this.a = -0.5F;
}
this.a *= 0.6F;
}
protected void d() {
EntityHuman entityhuman = this.world.a(this, 16.0D);
if (entityhuman != null) {
this.b(entityhuman, 10.0F);
}
if (this.onGround && this.d-- <= 0) {
this.d = this.random.nextInt(20) + 10;
if (entityhuman != null) {
this.d /= 3;
}
this.bA = true;
if (this.c > 1) {
this.world.a(this, "mob.slime", this.i(), ((this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 1.0F) * 0.8F);
}
this.a = 1.0F;
this.bx = 1.0F - this.random.nextFloat() * 2.0F;
this.by = (float) (1 * this.c);
} else {
this.bA = false;
if (this.onGround) {
this.bx = this.by = 0.0F;
}
}
}
public void q() {
if (this.c > 1 && this.health == 0) {
for (int i = 0; i < 4; ++i) {
float f = ((float) (i % 2) - 0.5F) * (float) this.c / 4.0F;
float f1 = ((float) (i / 2) - 0.5F) * (float) this.c / 4.0F;
EntitySlime entityslime = new EntitySlime(this.world);
entityslime.a(this.c / 2);
entityslime.c(this.locX + (double) f, this.locY + 0.5D, this.locZ + (double) f1, this.random.nextFloat() * 360.0F, 0.0F);
this.world.a((Entity) entityslime);
}
}
super.q();
}
public void b(EntityHuman entityhuman) {
// CraftBukkit - add cast to Entity VVVVVVVV
if (this.c > 1 && this.i(entityhuman) && (double) this.a((Entity) entityhuman) < 0.6D * (double) this.c && entityhuman.a(this, this.c)) {
this.world.a(this, "mob.slimeattack", 1.0F, (this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 1.0F);
}
}
protected String f() {
return "mob.slime";
}
protected String g() {
return "mob.slime";
}
protected int h() {
return this.c == 1 ? Item.SLIME_BALL.id : 0;
}
public boolean b() {
Chunk chunk = this.world.b(MathHelper.b(this.locX), MathHelper.b(this.locZ));
return (this.c == 1 || this.world.k > 0) && this.random.nextInt(10) == 0 && chunk.a(987234911L).nextInt(10) == 0 && this.locY < 16.0D;
}
protected float i() {
return 0.6F;
}
}

12
src/main/java/net/minecraft/server/EntitySnowball.java Normal file → Executable file
View file

@ -4,7 +4,6 @@ import java.util.List;
// CraftBukkit start
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.entity.CraftSnowball;
import org.bukkit.event.entity.EntityDamageByProjectileEvent;
import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
@ -25,18 +24,12 @@ public class EntitySnowball extends Entity {
public EntitySnowball(World world) {
super(world);
this.a(0.25F, 0.25F);
// CraftBukkit start
CraftServer server = ((WorldServer) this.world).getServer();
this.bukkitEntity = new CraftSnowball(server, this);
// CraftBukkit end
}
protected void a() {}
public EntitySnowball(World world, EntityLiving entityliving) {
this(world); // CraftBukkit super->this so we assign the entity
super(world);
this.ak = entityliving;
this.a(0.25F, 0.25F);
this.c(entityliving.locX, entityliving.locY + (double) entityliving.w(), entityliving.locZ, entityliving.yaw, entityliving.pitch);
@ -54,8 +47,7 @@ public class EntitySnowball extends Entity {
}
public EntitySnowball(World world, double d0, double d1, double d2) {
this(world); // CraftBukkit super->this so we assign the entity
super(world);
this.al = 0;
this.a(0.25F, 0.25F);
this.a(d0, d1, d2);

6
src/main/java/net/minecraft/server/EntitySpider.java Normal file → Executable file
View file

@ -3,7 +3,6 @@ package net.minecraft.server;
// CraftBukkit start
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.entity.CraftEntity;
import org.bukkit.craftbukkit.entity.CraftSpider;
import org.bukkit.event.entity.EntityTargetEvent;
import org.bukkit.event.entity.EntityTargetEvent.TargetReason;
// CraftBukkit stop
@ -15,11 +14,6 @@ public class EntitySpider extends EntityMonster {
this.texture = "/mob/spider.png";
this.a(1.4F, 0.9F);
this.bC = 0.8F;
// CraftBukkit start
CraftServer server = ((WorldServer) this.world).getServer();
this.bukkitEntity = new CraftSpider(server, this);
// CraftBukkit end
}
public double k() {

View file

@ -1,157 +0,0 @@
package net.minecraft.server;
// CraftBukkit start
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.entity.CraftSquid;
// CraftBukkit stop
public class EntitySquid extends EntityWaterAnimal {
public float a = 0.0F;
public float b = 0.0F;
public float c = 0.0F;
public float f = 0.0F;
public float ak = 0.0F;
public float al = 0.0F;
public float am = 0.0F;
public float an = 0.0F;
private float ao = 0.0F;
private float ap = 0.0F;
private float aq = 0.0F;
private float ar = 0.0F;
private float as = 0.0F;
private float at = 0.0F;
public EntitySquid(World world) {
super(world);
this.texture = "/mob/squid.png";
this.a(0.95F, 0.95F);
this.ap = 1.0F / (this.random.nextFloat() + 1.0F) * 0.2F;
// CraftBukkit start
CraftServer server = ((WorldServer) this.world).getServer();
this.bukkitEntity = new CraftSquid(server, this);
// CraftBukkit end
}
public void a(NBTTagCompound nbttagcompound) {
super.a(nbttagcompound);
}
public void b(NBTTagCompound nbttagcompound) {
super.b(nbttagcompound);
}
protected String e() {
return null;
}
protected String f() {
return null;
}
protected String g() {
return null;
}
protected float i() {
return 0.4F;
}
protected int h() {
return 0;
}
protected void g_() {
int i = this.random.nextInt(3) + 1;
for (int j = 0; j < i; ++j) {
this.a(new ItemStack(Item.INK_SACK, 1, 0), 0.0F);
}
}
public boolean a(EntityHuman entityhuman) {
ItemStack itemstack = entityhuman.inventory.e();
if (itemstack != null && itemstack.id == Item.BUCKET.id) {
entityhuman.inventory.a(entityhuman.inventory.c, new ItemStack(Item.MILK_BUCKET));
return true;
} else {
return false;
}
}
public boolean v() {
return this.world.a(this.boundingBox.b(0.0D, -0.6000000238418579D, 0.0D), Material.WATER, this);
}
public void o() {
super.o();
this.b = this.a;
this.f = this.c;
this.al = this.ak;
this.an = this.am;
this.ak += this.ap;
if (this.ak > 6.2831855F) {
this.ak -= 6.2831855F;
if (this.random.nextInt(10) == 0) {
this.ap = 1.0F / (this.random.nextFloat() + 1.0F) * 0.2F;
}
}
if (this.v()) {
float f;
if (this.ak < 3.1415927F) {
f = this.ak / 3.1415927F;
this.am = MathHelper.a(f * f * 3.1415927F) * 3.1415927F * 0.25F;
if ((double) f > 0.75D) {
this.ao = 1.0F;
this.aq = 1.0F;
} else {
this.aq *= 0.8F;
}
} else {
this.am = 0.0F;
this.ao *= 0.9F;
this.aq *= 0.99F;
}
if (!this.aW) {
this.motX = (double) (this.ar * this.ao);
this.motY = (double) (this.as * this.ao);
this.motZ = (double) (this.at * this.ao);
}
f = MathHelper.a(this.motX * this.motX + this.motZ * this.motZ);
this.aI += (-((float) Math.atan2(this.motX, this.motZ)) * 180.0F / 3.1415927F - this.aI) * 0.1F;
this.yaw = this.aI;
this.c += 3.1415927F * this.aq * 1.5F;
this.a += (-((float) Math.atan2((double) f, this.motY)) * 180.0F / 3.1415927F - this.a) * 0.1F;
} else {
this.am = MathHelper.e(MathHelper.a(this.ak)) * 3.1415927F * 0.25F;
if (!this.aW) {
this.motX = 0.0D;
this.motY -= 0.08D;
this.motY *= 0.9800000190734863D;
this.motZ = 0.0D;
}
this.a = (float) ((double) this.a + (double) (-90.0F - this.a) * 0.02D);
}
}
public void c(float f, float f1) {
this.c(this.motX, this.motY, this.motZ);
}
protected void d() {
if (this.random.nextInt(50) == 0 || !this.ab || this.ar == 0.0F && this.as == 0.0F && this.at == 0.0F) {
float f = this.random.nextFloat() * 3.1415927F * 2.0F;
this.ar = MathHelper.b(f) * 0.2F;
this.as = -0.1F + this.random.nextFloat() * 0.2F;
this.at = MathHelper.a(f) * 0.2F;
}
}
}

View file

@ -1,82 +0,0 @@
package net.minecraft.server;
// CraftBukkit start
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.entity.CraftTNTPrimed;
// CraftBukkit stop
public class EntityTNTPrimed extends Entity {
public int a;
public EntityTNTPrimed(World world) {
super(world);
this.a = 0;
this.i = true;
this.a(0.98F, 0.98F);
this.height = this.width / 2.0F;
// CraftBukkit start
CraftServer server = ((WorldServer) this.world).getServer();
this.bukkitEntity = new CraftTNTPrimed(server, this);
// CraftBukkit end
}
public EntityTNTPrimed(World world, double d0, double d1, double d2) {
this(world);
this.a(d0, d1, d2);
float f = (float) (Math.random() * 3.1415927410125732D * 2.0D);
this.motX = (double) (-MathHelper.a(f * 3.1415927F / 180.0F) * 0.02F);
this.motY = 0.20000000298023224D;
this.motZ = (double) (-MathHelper.b(f * 3.1415927F / 180.0F) * 0.02F);
this.M = false;
this.a = 80;
this.lastX = d0;
this.lastY = d1;
this.lastZ = d2;
}
protected void a() {}
public boolean c_() {
return !this.dead;
}
public void b_() {
this.lastX = this.locX;
this.lastY = this.locY;
this.lastZ = this.locZ;
this.motY -= 0.03999999910593033D;
this.c(this.motX, this.motY, this.motZ);
this.motX *= 0.9800000190734863D;
this.motY *= 0.9800000190734863D;
this.motZ *= 0.9800000190734863D;
if (this.onGround) {
this.motX *= 0.699999988079071D;
this.motZ *= 0.699999988079071D;
this.motY *= -0.5D;
}
if (this.a-- <= 0) {
this.q();
this.d();
} else {
this.world.a("smoke", this.locX, this.locY + 0.5D, this.locZ, 0.0D, 0.0D, 0.0D);
}
}
private void d() {
float f = 4.0F;
this.world.a((Entity) null, this.locX, this.locY, this.locZ, f);
}
protected void a(NBTTagCompound nbttagcompound) {
nbttagcompound.a("Fuse", (byte) this.a);
}
protected void b(NBTTagCompound nbttagcompound) {
this.a = nbttagcompound.b("Fuse");
}
}

View file

@ -1,38 +0,0 @@
package net.minecraft.server;
// CraftBukkit start
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.entity.CraftWaterMob;
// CraftBukkit stop
public class EntityWaterAnimal extends EntityCreature implements IAnimal {
public EntityWaterAnimal(World world) {
super(world);
// CraftBukkit start
CraftServer server = ((WorldServer) this.world).getServer();
this.bukkitEntity = new CraftWaterMob(server, this);
// CraftBukkit end
}
public boolean d_() {
return true;
}
public void a(NBTTagCompound nbttagcompound) {
super.a(nbttagcompound);
}
public void b(NBTTagCompound nbttagcompound) {
super.b(nbttagcompound);
}
public boolean b() {
return this.world.a(this.boundingBox);
}
public int c() {
return 120;
}
}

6
src/main/java/net/minecraft/server/EntityZombie.java Normal file → Executable file
View file

@ -1,7 +1,6 @@
package net.minecraft.server;
// CraftBukkit start
import org.bukkit.craftbukkit.entity.CraftZombie;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.event.Event.Type;
import org.bukkit.event.entity.EntityCombustEvent;
@ -14,11 +13,6 @@ public class EntityZombie extends EntityMonster {
this.texture = "/mob/zombie.png";
this.bC = 0.5F;
this.c = 5;
// CraftBukkit start
CraftServer server = ((WorldServer) this.world).getServer();
this.bukkitEntity = new CraftZombie(server, this);
// CraftBukkit end
}
public void o() {

View file

@ -1,6 +1,6 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.server.Entity;
import net.minecraft.server.*;
import net.minecraft.server.WorldServer;
import org.bukkit.Location;
import org.bukkit.World;
@ -16,6 +16,76 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
this.entity = entity;
}
public static CraftEntity getEntity( CraftServer server, Entity entity) {
/**
* Order is *EXTREMELY* important -- keep it right! =D
*/
if (entity instanceof EntityLiving) {
// Players
if (entity instanceof EntityHuman) {
if (entity instanceof EntityPlayer) { return new CraftPlayer( server, (EntityPlayer) entity); }
else { return new CraftHumanEntity( server, (EntityHuman) entity); }
}
else if (entity instanceof EntityCreature) {
// Animals
if (entity instanceof EntityAnimal) {
if (entity instanceof EntityChicken) { return new CraftChicken( server, (EntityChicken) entity); }
else if (entity instanceof EntityCow) { return new CraftCow( server, (EntityCow) entity); }
else if (entity instanceof EntityPig) { return new CraftPig( server, (EntityPig) entity); }
else if (entity instanceof EntitySheep) { return new CraftSheep( server, (EntitySheep) entity); }
else { return new CraftAnimals( server, (EntityAnimal) entity); }
}
// Monsters
else if (entity instanceof EntityMonster) {
if (entity instanceof EntityZombie) {
if (entity instanceof EntityPigZombie) { return new CraftPigZombie( server, (EntityPigZombie) entity); }
else { return new CraftZombie( server, (EntityZombie) entity); }
}
else if (entity instanceof EntityCreeper) { return new CraftCreeper( server, (EntityCreeper) entity); }
else if (entity instanceof EntityGiantZombie) { return new CraftGiant( server, (EntityGiantZombie) entity); }
else if (entity instanceof EntitySkeleton) { return new CraftSkeleton( server, (EntitySkeleton) entity); }
else if (entity instanceof EntitySpider) { return new CraftSpider( server, (EntitySpider) entity); }
else if (entity instanceof EntitySlime) { return new CraftSlime( server, (EntitySlime) entity); }
else { return new CraftMonster( server, (EntityMonster) entity); }
}
// Water Animals
else if (entity instanceof EntityWaterAnimal) {
if (entity instanceof EntitySquid) { return new CraftSquid( server, (EntitySquid) entity); }
else { return new CraftWaterMob( server, (EntityWaterAnimal) entity); }
}
else { return new CraftCreature( server, (EntityCreature) entity); }
}
// Flying
else if (entity instanceof EntityFlying) {
if (entity instanceof EntityGhast) { return new CraftGhast( server, (EntityGhast) entity); }
else { return new CraftFlying( server, (EntityFlying) entity); }
}
else { return new CraftLivingEntity(server, (EntityLiving) entity); }
}
else if (entity instanceof EntityArrow) { return new CraftArrow( server, (EntityArrow) entity); }
else if (entity instanceof EntityBoat) { return new CraftBoat( server, (EntityBoat) entity); }
else if (entity instanceof EntityEgg) { return new CraftEgg( server, (EntityEgg) entity); }
else if (entity instanceof EntityFallingSand) { return new CraftFallingSand( server, (EntityFallingSand) entity); }
else if (entity instanceof EntityFireball) { return new CraftFireball( server, (EntityFireball) entity); }
else if (entity instanceof EntityFish) { return new CraftFish( server, (EntityFish) entity); }
else if (entity instanceof EntityItem) { return new CraftItem( server, (EntityItem) entity); }
else if (entity instanceof EntityMinecart) {
EntityMinecart mc = (EntityMinecart) entity;
if (mc.d == CraftMinecart.Type.StorageMinecart.getId()) {
return new CraftStorageMinecart(server, mc);
} else if (mc.d == CraftMinecart.Type.PoweredMinecart.getId()) {
return new CraftPoweredMinecart(server, mc);
} else {
return new CraftMinecart(server, mc);
}
}
else if (entity instanceof EntityPainting) { return new CraftPainting( server, (EntityPainting) entity); }
else if (entity instanceof EntitySnowball) { return new CraftSnowball( server, (EntitySnowball) entity); }
else if (entity instanceof EntityTNTPrimed) { return new CraftTNTPrimed( server, (EntityTNTPrimed) entity); }
else throw new IllegalArgumentException( "Unknown entity" );
}
public Location getLocation() {
return new Location(getWorld(), entity.locX, entity.locY, entity.locZ, entity.yaw, entity.pitch);
}