summaryrefslogtreecommitdiffstats
path: root/src/main/java/net/minecraft/server/EntityWolf.java
diff options
context:
space:
mode:
authorNathan Adams <dinnerbone@dinnerbone.com>2012-03-01 10:49:23 +0000
committerNathan Adams <dinnerbone@dinnerbone.com>2012-03-01 14:38:31 +0000
commit543c4879fee3b7165764c5371d226c93fe3a657b (patch)
tree4fe9116464e1fe42a40dc3ba19b58234bd26f821 /src/main/java/net/minecraft/server/EntityWolf.java
parente9ca87000c1794715bc3fe0a7d1caaf809057635 (diff)
downloadcraftbukkit-543c4879fee3b7165764c5371d226c93fe3a657b.tar
craftbukkit-543c4879fee3b7165764c5371d226c93fe3a657b.tar.gz
craftbukkit-543c4879fee3b7165764c5371d226c93fe3a657b.tar.lz
craftbukkit-543c4879fee3b7165764c5371d226c93fe3a657b.tar.xz
craftbukkit-543c4879fee3b7165764c5371d226c93fe3a657b.zip
Updated CraftBukkit to 1.2
Diffstat (limited to 'src/main/java/net/minecraft/server/EntityWolf.java')
-rw-r--r--src/main/java/net/minecraft/server/EntityWolf.java487
1 files changed, 0 insertions, 487 deletions
diff --git a/src/main/java/net/minecraft/server/EntityWolf.java b/src/main/java/net/minecraft/server/EntityWolf.java
deleted file mode 100644
index be4607b4..00000000
--- a/src/main/java/net/minecraft/server/EntityWolf.java
+++ /dev/null
@@ -1,487 +0,0 @@
-package net.minecraft.server;
-
-import java.util.Iterator;
-import java.util.List;
-
-// CraftBukkit start
-import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.entity.CraftEntity;
-import org.bukkit.craftbukkit.event.CraftEventFactory;
-import org.bukkit.event.entity.EntityDamageByEntityEvent;
-import org.bukkit.event.entity.EntityDamageEvent;
-import org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason;
-import org.bukkit.event.entity.EntityTargetEvent;
-// CraftBukkit end
-
-public class EntityWolf extends EntityAnimal {
-
- private boolean a = false;
- private float b;
- private float c;
- private boolean g;
- private boolean h;
- private float i;
- private float j;
-
- public EntityWolf(World world) {
- super(world);
- this.texture = "/mob/wolf.png";
- this.b(0.8F, 0.8F);
- this.bb = 1.1F;
- }
-
- public int getMaxHealth() {
- return this.isTamed() ? 20 : 8;
- }
-
- protected void b() {
- super.b();
- this.datawatcher.a(16, Byte.valueOf((byte) 0));
- this.datawatcher.a(17, "");
- this.datawatcher.a(18, new Integer(this.getHealth()));
- }
-
- protected boolean g_() {
- return false;
- }
-
- public void b(NBTTagCompound nbttagcompound) {
- super.b(nbttagcompound);
- nbttagcompound.setBoolean("Angry", this.isAngry());
- nbttagcompound.setBoolean("Sitting", this.isSitting());
- if (this.getOwnerName() == null) {
- nbttagcompound.setString("Owner", "");
- } else {
- nbttagcompound.setString("Owner", this.getOwnerName());
- }
- }
-
- public void a(NBTTagCompound nbttagcompound) {
- super.a(nbttagcompound);
- this.setAngry(nbttagcompound.getBoolean("Angry"));
- this.setSitting(nbttagcompound.getBoolean("Sitting"));
- String s = nbttagcompound.getString("Owner");
-
- if (s.length() > 0) {
- this.setOwnerName(s);
- this.setTamed(true);
- }
- }
-
- protected boolean d_() {
- return this.isAngry();
- }
-
- protected String c_() {
- return this.isAngry() ? "mob.wolf.growl" : (this.random.nextInt(3) == 0 ? (this.isTamed() && this.datawatcher.getInt(18) < 10 ? "mob.wolf.whine" : "mob.wolf.panting") : "mob.wolf.bark");
- }
-
- protected String m() {
- return "mob.wolf.hurt";
- }
-
- protected String n() {
- return "mob.wolf.death";
- }
-
- protected float o() {
- return 0.4F;
- }
-
- protected int getLootId() {
- return -1;
- }
-
- protected void m_() {
- super.m_();
- if (!this.e && !this.E() && this.isTamed() && this.vehicle == null) {
- EntityHuman entityhuman = this.world.a(this.getOwnerName());
-
- if (entityhuman != null) {
- float f = entityhuman.h(this);
-
- if (f > 5.0F) {
- this.c(entityhuman, f);
- }
- } else if (!this.aK()) {
- this.setSitting(true);
- }
- } else if (this.target == null && !this.E() && !this.isTamed() && this.world.random.nextInt(100) == 0) {
- List list = this.world.a(EntitySheep.class, AxisAlignedBB.b(this.locX, this.locY, this.locZ, this.locX + 1.0D, this.locY + 1.0D, this.locZ + 1.0D).grow(16.0D, 4.0D, 16.0D));
-
- if (!list.isEmpty()) {
- // CraftBukkit start
- Entity entity = (Entity) list.get(this.world.random.nextInt(list.size()));
- org.bukkit.entity.Entity bukkitTarget = entity == null ? null : entity.getBukkitEntity();
-
- EntityTargetEvent event = new EntityTargetEvent(this.getBukkitEntity(), bukkitTarget, EntityTargetEvent.TargetReason.RANDOM_TARGET);
- this.world.getServer().getPluginManager().callEvent(event);
-
- if (!event.isCancelled() || event.getTarget() != null) {
- this.setTarget(entity);
- }
- // CraftBukkit end
- }
- }
-
- if (this.aK()) {
- this.setSitting(false);
- }
-
- if (!this.world.isStatic) {
- this.datawatcher.watch(18, Integer.valueOf(this.getHealth()));
- }
- }
-
- public void d() {
- super.d();
- this.a = false;
- if (this.aw() && !this.E() && !this.isAngry()) {
- Entity entity = this.ax();
-
- if (entity instanceof EntityHuman) {
- EntityHuman entityhuman = (EntityHuman) entity;
- ItemStack itemstack = entityhuman.inventory.getItemInHand();
-
- if (itemstack != null) {
- if (!this.isTamed() && itemstack.id == Item.BONE.id) {
- this.a = true;
- } else if (this.isTamed() && Item.byId[itemstack.id] instanceof ItemFood) {
- this.a = ((ItemFood) Item.byId[itemstack.id]).q();
- }
- }
- }
- }
-
- if (!this.world.isStatic && this.g && !this.h && !this.E() && this.onGround) {
- this.h = true;
- this.i = 0.0F;
- this.j = 0.0F;
- this.world.broadcastEntityEffect(this, (byte) 8);
- }
- }
-
- public void y_() {
- super.y_();
- this.c = this.b;
- if (this.a) {
- this.b += (1.0F - this.b) * 0.4F;
- } else {
- this.b += (0.0F - this.b) * 0.4F;
- }
-
- if (this.a) {
- this.bc = 10;
- }
-
- if (this.aJ()) {
- this.g = true;
- this.h = false;
- this.i = 0.0F;
- this.j = 0.0F;
- } else if ((this.g || this.h) && this.h) {
- if (this.i == 0.0F) {
- this.world.makeSound(this, "mob.wolf.shake", this.o(), (this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 1.0F);
- }
-
- this.j = this.i;
- this.i += 0.05F;
- if (this.j >= 2.0F) {
- this.g = false;
- this.h = false;
- this.j = 0.0F;
- this.i = 0.0F;
- }
-
- if (this.i > 0.4F) {
- float f = (float) this.boundingBox.b;
- int i = (int) (MathHelper.sin((this.i - 0.4F) * 3.1415927F) * 7.0F);
-
- for (int j = 0; j < i; ++j) {
- float f1 = (this.random.nextFloat() * 2.0F - 1.0F) * this.width * 0.5F;
- float f2 = (this.random.nextFloat() * 2.0F - 1.0F) * this.width * 0.5F;
-
- this.world.a("splash", this.locX + (double) f1, (double) (f + 0.8F), this.locZ + (double) f2, this.motX, this.motY, this.motZ);
- }
- }
- }
- }
-
- public float getHeadHeight() {
- return this.length * 0.8F;
- }
-
- public int x() {
- return this.isSitting() ? 20 : super.x();
- }
-
- private void c(Entity entity, float f) {
- PathEntity pathentity = this.world.findPath(this, entity, 16.0F);
-
- if (pathentity == null && f > 12.0F) {
- int i = MathHelper.floor(entity.locX) - 2;
- int j = MathHelper.floor(entity.locZ) - 2;
- int k = MathHelper.floor(entity.boundingBox.b);
-
- for (int l = 0; l <= 4; ++l) {
- for (int i1 = 0; i1 <= 4; ++i1) {
- if ((l < 1 || i1 < 1 || l > 3 || i1 > 3) && this.world.e(i + l, k - 1, j + i1) && !this.world.e(i + l, k, j + i1) && !this.world.e(i + l, k + 1, j + i1)) {
- this.setPositionRotation((double) ((float) (i + l) + 0.5F), (double) k, (double) ((float) (j + i1) + 0.5F), this.yaw, this.pitch);
- return;
- }
- }
- }
- } else {
- this.setPathEntity(pathentity);
- }
- }
-
- protected boolean v() {
- return this.isSitting() || this.h;
- }
-
- public boolean damageEntity(DamageSource damagesource, int i) {
- Entity entity = damagesource.getEntity();
-
- this.setSitting(false);
- if (entity != null && !(entity instanceof EntityHuman) && !(entity instanceof EntityArrow)) {
- i = (i + 1) / 2;
- }
-
- if (!super.damageEntity(damagesource, i)) {
- return false;
- } else {
- if (!this.isTamed() && !this.isAngry()) {
- if (entity instanceof EntityHuman) {
- // CraftBukkit start
- org.bukkit.entity.Entity bukkitTarget = entity == null ? null : entity.getBukkitEntity();
-
- EntityTargetEvent event = new EntityTargetEvent(this.getBukkitEntity(), bukkitTarget, EntityTargetEvent.TargetReason.TARGET_ATTACKED_ENTITY);
- this.world.getServer().getPluginManager().callEvent(event);
-
- if (!event.isCancelled()) {
- if (event.getTarget() == null) {
- this.target = null;
- } else {
- this.setAngry(true);
- this.target = ((CraftEntity) event.getTarget()).getHandle();
- }
- }
- // CraftBukkit end
- }
-
- if (entity instanceof EntityArrow && ((EntityArrow) entity).shooter != null) {
- entity = ((EntityArrow) entity).shooter;
- }
-
- if (entity instanceof EntityLiving) {
- List list = this.world.a(EntityWolf.class, AxisAlignedBB.b(this.locX, this.locY, this.locZ, this.locX + 1.0D, this.locY + 1.0D, this.locZ + 1.0D).grow(16.0D, 4.0D, 16.0D));
- Iterator iterator = list.iterator();
-
- while (iterator.hasNext()) {
- Entity entity1 = (Entity) iterator.next();
- EntityWolf entitywolf = (EntityWolf) entity1;
-
- if (!entitywolf.isTamed() && entitywolf.target == null) {
- // CraftBukkit start
- org.bukkit.entity.Entity bukkitTarget = entity == null ? null : entity.getBukkitEntity();
-
- EntityTargetEvent event = new EntityTargetEvent(this.getBukkitEntity(), bukkitTarget, EntityTargetEvent.TargetReason.TARGET_ATTACKED_ENTITY);
- this.world.getServer().getPluginManager().callEvent(event);
-
- if (!event.isCancelled()) {
- if (event.getTarget() == null) {
- this.target = null;
- } else {
- entitywolf.target = (Entity) entity;
- if (entity instanceof EntityHuman) {
- entitywolf.setAngry(true);
- }
- }
- }
- // CraftBukkit end
- }
- }
- }
- } else if (entity != this && entity != null) {
- if (this.isTamed() && entity instanceof EntityHuman && ((EntityHuman) entity).name.equalsIgnoreCase(this.getOwnerName())) {
- return true;
- }
-
- this.target = entity;
- }
-
- return true;
- }
- }
-
- protected Entity findTarget() {
- return this.isAngry() ? this.world.findNearbyPlayer(this, 16.0D) : null;
- }
-
- protected void a(Entity entity, float f) {
- if (f > 2.0F && f < 6.0F && this.random.nextInt(10) == 0) {
- if (this.onGround) {
- double d0 = entity.locX - this.locX;
- double d1 = entity.locZ - this.locZ;
- float f1 = MathHelper.sqrt(d0 * d0 + d1 * d1);
-
- this.motX = d0 / (double) f1 * 0.5D * 0.800000011920929D + this.motX * 0.20000000298023224D;
- this.motZ = d1 / (double) f1 * 0.5D * 0.800000011920929D + this.motZ * 0.20000000298023224D;
- this.motY = 0.4000000059604645D;
- }
- } else if ((double) f < 1.5D && entity.boundingBox.e > this.boundingBox.b && entity.boundingBox.b < this.boundingBox.e) {
- this.attackTicks = 20;
- byte b0 = 2;
-
- if (this.isTamed()) {
- b0 = 4;
- }
- // CraftBukkit start
- org.bukkit.entity.Entity damager = this.getBukkitEntity();
- org.bukkit.entity.Entity damagee = entity == null ? null : entity.getBukkitEntity();
-
- EntityDamageByEntityEvent event = new EntityDamageByEntityEvent(damager, damagee, EntityDamageEvent.DamageCause.ENTITY_ATTACK, b0);
- Bukkit.getPluginManager().callEvent(event);
-
- if (event.isCancelled()) {
- return;
- }
-
- entity.damageEntity(DamageSource.mobAttack(this), event.getDamage());
- // CraftBukkit end
- }
- }
-
- public boolean b(EntityHuman entityhuman) {
- ItemStack itemstack = entityhuman.inventory.getItemInHand();
-
- if (!this.isTamed()) {
- if (itemstack != null && itemstack.id == Item.BONE.id && !this.isAngry()) {
- --itemstack.count;
- if (itemstack.count <= 0) {
- entityhuman.inventory.setItem(entityhuman.inventory.itemInHandIndex, (ItemStack) null);
- }
-
- if (!this.world.isStatic) {
- // CraftBukkit start - added event call and isCancelled check.
- if (this.random.nextInt(3) == 0 && !CraftEventFactory.callEntityTameEvent(this, entityhuman).isCancelled()) {
- // CraftBukkit end
- this.setTamed(true);
- this.setPathEntity((PathEntity) null);
- this.setSitting(true);
- this.setHealth(20);
- this.setOwnerName(entityhuman.name);
- this.a(true);
- this.world.broadcastEntityEffect(this, (byte) 7);
- } else {
- this.a(false);
- this.world.broadcastEntityEffect(this, (byte) 6);
- }
- }
-
- return true;
- }
- } else {
- if (itemstack != null && Item.byId[itemstack.id] instanceof ItemFood) {
- ItemFood itemfood = (ItemFood) Item.byId[itemstack.id];
-
- if (itemfood.q() && this.datawatcher.getInt(18) < 20) {
- --itemstack.count;
- this.heal(itemfood.getNutrition(), RegainReason.EATING); // CraftBukkit
- if (itemstack.count <= 0) {
- entityhuman.inventory.setItem(entityhuman.inventory.itemInHandIndex, (ItemStack) null);
- }
-
- return true;
- }
- }
-
- if (entityhuman.name.equalsIgnoreCase(this.getOwnerName())) {
- if (!this.world.isStatic) {
- this.setSitting(!this.isSitting());
- this.aZ = false;
- this.setPathEntity((PathEntity) null);
- }
-
- return true;
- }
- }
-
- return super.b(entityhuman);
- }
-
- void a(boolean flag) {
- String s = "heart";
-
- if (!flag) {
- s = "smoke";
- }
-
- for (int i = 0; i < 7; ++i) {
- double d0 = this.random.nextGaussian() * 0.02D;
- double d1 = this.random.nextGaussian() * 0.02D;
- double d2 = this.random.nextGaussian() * 0.02D;
-
- this.world.a(s, this.locX + (double) (this.random.nextFloat() * this.width * 2.0F) - (double) this.width, this.locY + 0.5D + (double) (this.random.nextFloat() * this.length), this.locZ + (double) (this.random.nextFloat() * this.width * 2.0F) - (double) this.width, d0, d1, d2);
- }
- }
-
- public int p() {
- return 8;
- }
-
- public String getOwnerName() {
- return this.datawatcher.getString(17);
- }
-
- public void setOwnerName(String s) {
- this.datawatcher.watch(17, s);
- }
-
- public boolean isSitting() {
- return (this.datawatcher.getByte(16) & 1) != 0;
- }
-
- public void setSitting(boolean flag) {
- byte b0 = this.datawatcher.getByte(16);
-
- if (flag) {
- this.datawatcher.watch(16, Byte.valueOf((byte) (b0 | 1)));
- } else {
- this.datawatcher.watch(16, Byte.valueOf((byte) (b0 & -2)));
- }
- }
-
- public boolean isAngry() {
- return (this.datawatcher.getByte(16) & 2) != 0;
- }
-
- public void setAngry(boolean flag) {
- byte b0 = this.datawatcher.getByte(16);
-
- if (flag) {
- this.datawatcher.watch(16, Byte.valueOf((byte) (b0 | 2)));
- } else {
- this.datawatcher.watch(16, Byte.valueOf((byte) (b0 & -3)));
- }
- }
-
- public boolean isTamed() {
- return (this.datawatcher.getByte(16) & 4) != 0;
- }
-
- public void setTamed(boolean flag) {
- byte b0 = this.datawatcher.getByte(16);
-
- if (flag) {
- this.datawatcher.watch(16, Byte.valueOf((byte) (b0 | 4)));
- } else {
- this.datawatcher.watch(16, Byte.valueOf((byte) (b0 & -5)));
- }
- }
-
- protected EntityAnimal createChild(EntityAnimal entityanimal) {
- return new EntityWolf(this.world);
- }
-}