diff options
Diffstat (limited to 'src/main/java/net/minecraft/server/EntityWolf.java')
-rw-r--r-- | src/main/java/net/minecraft/server/EntityWolf.java | 200 |
1 files changed, 104 insertions, 96 deletions
diff --git a/src/main/java/net/minecraft/server/EntityWolf.java b/src/main/java/net/minecraft/server/EntityWolf.java index 688fe2ca..2c1f7d1c 100644 --- a/src/main/java/net/minecraft/server/EntityWolf.java +++ b/src/main/java/net/minecraft/server/EntityWolf.java @@ -2,27 +2,26 @@ package net.minecraft.server; public class EntityWolf extends EntityTameableAnimal { - private boolean b = false; - private float c; - private float g; + private float e; + private float f; + private boolean g; private boolean h; - private boolean i; + private float i; private float j; - private float k; public EntityWolf(World world) { super(world); this.texture = "/mob/wolf.png"; - this.b(0.6F, 0.8F); - this.bb = 0.3F; - this.al().a(true); + this.a(0.6F, 0.8F); + this.bw = 0.3F; + this.getNavigation().a(true); this.goalSelector.a(1, new PathfinderGoalFloat(this)); - this.goalSelector.a(2, this.a); + this.goalSelector.a(2, this.d); this.goalSelector.a(3, new PathfinderGoalLeapAtTarget(this, 0.4F)); - this.goalSelector.a(4, new PathfinderGoalMeleeAttack(this, this.bb, true)); - this.goalSelector.a(5, new PathfinderGoalFollowOwner(this, this.bb, 10.0F, 2.0F)); - this.goalSelector.a(6, new PathfinderGoalBreed(this, this.bb)); - this.goalSelector.a(7, new PathfinderGoalRandomStroll(this, this.bb)); + this.goalSelector.a(4, new PathfinderGoalMeleeAttack(this, this.bw, true)); + this.goalSelector.a(5, new PathfinderGoalFollowOwner(this, this.bw, 10.0F, 2.0F)); + this.goalSelector.a(6, new PathfinderGoalBreed(this, this.bw)); + this.goalSelector.a(7, new PathfinderGoalRandomStroll(this, this.bw)); this.goalSelector.a(8, new PathfinderGoalBeg(this, 8.0F)); this.goalSelector.a(9, new PathfinderGoalLookAtPlayer(this, EntityHuman.class, 8.0F)); this.goalSelector.a(9, new PathfinderGoalRandomLookaround(this)); @@ -32,7 +31,7 @@ public class EntityWolf extends EntityTameableAnimal { this.targetSelector.a(4, new PathfinderGoalRandomTargetNonTamed(this, EntitySheep.class, 16.0F, 200, false)); } - public boolean c_() { + public boolean aV() { return true; } @@ -43,7 +42,7 @@ public class EntityWolf extends EntityTameableAnimal { } } - protected void g() { + protected void bd() { this.datawatcher.watch(18, Integer.valueOf(this.getHealth())); } @@ -51,12 +50,13 @@ public class EntityWolf extends EntityTameableAnimal { return this.isTamed() ? 20 : 8; } - protected void b() { - super.b(); + protected void a() { + super.a(); this.datawatcher.a(18, new Integer(this.getHealth())); + this.datawatcher.a(19, new Byte((byte) 0)); } - protected boolean g_() { + protected boolean e_() { return false; } @@ -70,23 +70,23 @@ public class EntityWolf extends EntityTameableAnimal { this.setAngry(nbttagcompound.getBoolean("Angry")); } - protected boolean n() { + protected boolean ba() { return this.isAngry(); } - protected String i() { + protected String aQ() { 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 j() { + protected String aR() { return "mob.wolf.hurt"; } - protected String k() { + protected String aS() { return "mob.wolf.death"; } - protected float p() { + protected float aP() { return 0.4F; } @@ -94,51 +94,51 @@ public class EntityWolf extends EntityTameableAnimal { return -1; } - public void e() { - super.e(); - if (!this.world.isStatic && this.h && !this.i && !this.H() && this.onGround) { - this.i = true; + public void d() { + super.d(); + if (!this.world.isStatic && this.g && !this.h && !this.l() && this.onGround) { + this.h = true; + this.i = 0.0F; this.j = 0.0F; - this.k = 0.0F; this.world.broadcastEntityEffect(this, (byte) 8); } } - public void F_() { - super.F_(); - this.g = this.c; - if (this.b) { - this.c += (1.0F - this.c) * 0.4F; + public void h_() { + super.h_(); + this.f = this.e; + if (this.bv()) { + this.e += (1.0F - this.e) * 0.4F; } else { - this.c += (0.0F - this.c) * 0.4F; + this.e += (0.0F - this.e) * 0.4F; } - if (this.b) { - this.bc = 10; + if (this.bv()) { + this.bx = 10; } - if (this.aT()) { - this.h = true; - this.i = false; + if (this.G()) { + this.g = true; + this.h = false; + this.i = 0.0F; this.j = 0.0F; - this.k = 0.0F; - } else if ((this.h || this.i) && this.i) { - if (this.j == 0.0F) { - this.world.makeSound(this, "mob.wolf.shake", this.p(), (this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 1.0F); + } else if ((this.g || this.h) && this.h) { + if (this.i == 0.0F) { + this.world.makeSound(this, "mob.wolf.shake", this.aP(), (this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 1.0F); } - this.k = this.j; - this.j += 0.05F; - if (this.k >= 2.0F) { + this.j = this.i; + this.i += 0.05F; + if (this.j >= 2.0F) { + this.g = false; this.h = false; - this.i = false; - this.k = 0.0F; this.j = 0.0F; + this.i = 0.0F; } - if (this.j > 0.4F) { + if (this.i > 0.4F) { float f = (float) this.boundingBox.b; - int i = (int) (MathHelper.sin((this.j - 0.4F) * 3.1415927F) * 7.0F); + 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; @@ -154,14 +154,14 @@ public class EntityWolf extends EntityTameableAnimal { return this.length * 0.8F; } - public int D() { - return this.isSitting() ? 20 : super.D(); + public int bf() { + return this.isSitting() ? 20 : super.bf(); } public boolean damageEntity(DamageSource damagesource, int i) { Entity entity = damagesource.getEntity(); - this.a.a(false); + this.d.a(false); if (entity != null && !(entity instanceof EntityHuman) && !(entity instanceof EntityArrow)) { i = (i + 1) / 2; } @@ -169,49 +169,20 @@ public class EntityWolf extends EntityTameableAnimal { return super.damageEntity(damagesource, i); } - public boolean a(Entity entity) { + public boolean k(Entity entity) { int i = this.isTamed() ? 4 : 2; return entity.damageEntity(DamageSource.mobAttack(this), i); } - public boolean b(EntityHuman entityhuman) { + public boolean c(EntityHuman entityhuman) { ItemStack itemstack = entityhuman.inventory.getItemInHand(); - if (!this.isTamed()) { - if (itemstack != null && itemstack.id == Item.BONE.id && !this.isAngry()) { - if (!entityhuman.abilities.canInstantlyBuild) { - --itemstack.count; - } - - if (itemstack.count <= 0) { - entityhuman.inventory.setItem(entityhuman.inventory.itemInHandIndex, (ItemStack) null); - } - - if (!this.world.isStatic) { - // CraftBukkit - added event call and isCancelled check. - if (this.random.nextInt(3) == 0 && !org.bukkit.craftbukkit.event.CraftEventFactory.callEntityTameEvent(this, entityhuman).isCancelled()) { - this.setTamed(true); - this.setPathEntity((PathEntity) null); - this.b((EntityLiving) null); - this.a.a(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 (this.isTamed()) { if (itemstack != null && Item.byId[itemstack.id] instanceof ItemFood) { ItemFood itemfood = (ItemFood) Item.byId[itemstack.id]; - if (itemfood.q() && this.datawatcher.getInt(18) < 20) { + if (itemfood.h() && this.datawatcher.getInt(18) < 20) { if (!entityhuman.abilities.canInstantlyBuild) { --itemstack.count; } @@ -225,21 +196,48 @@ public class EntityWolf extends EntityTameableAnimal { } } - if (entityhuman.name.equalsIgnoreCase(this.getOwnerName()) && !this.world.isStatic && !this.a(itemstack)) { - this.a.a(!this.isSitting()); - this.aZ = false; + if (entityhuman.name.equalsIgnoreCase(this.getOwnerName()) && !this.world.isStatic && !this.b(itemstack)) { + this.d.a(!this.isSitting()); + this.bu = false; this.setPathEntity((PathEntity) null); } + } else if (itemstack != null && itemstack.id == Item.BONE.id && !this.isAngry()) { + if (!entityhuman.abilities.canInstantlyBuild) { + --itemstack.count; + } + + if (itemstack.count <= 0) { + entityhuman.inventory.setItem(entityhuman.inventory.itemInHandIndex, (ItemStack) null); + } + + if (!this.world.isStatic) { + // CraftBukkit - added event call and isCancelled check. + if (this.random.nextInt(3) == 0 && !org.bukkit.craftbukkit.event.CraftEventFactory.callEntityTameEvent(this, entityhuman).isCancelled()) { + this.setTamed(true); + this.setPathEntity((PathEntity) null); + this.b((EntityLiving) null); + this.d.a(true); + this.setHealth(20); + this.setOwnerName(entityhuman.name); + this.e(true); + this.world.broadcastEntityEffect(this, (byte) 7); + } else { + this.e(false); + this.world.broadcastEntityEffect(this, (byte) 6); + } + } + + return true; } - return super.b(entityhuman); + return super.c(entityhuman); } - public boolean a(ItemStack itemstack) { - return itemstack == null ? false : (!(Item.byId[itemstack.id] instanceof ItemFood) ? false : ((ItemFood) Item.byId[itemstack.id]).q()); + public boolean b(ItemStack itemstack) { + return itemstack == null ? false : (!(Item.byId[itemstack.id] instanceof ItemFood) ? false : ((ItemFood) Item.byId[itemstack.id]).h()); } - public int q() { + public int bl() { return 8; } @@ -265,8 +263,14 @@ public class EntityWolf extends EntityTameableAnimal { return entitywolf; } - public void e(boolean flag) { - this.b = flag; + public void i(boolean flag) { + byte b0 = this.datawatcher.getByte(19); + + if (flag) { + this.datawatcher.watch(19, Byte.valueOf((byte) 1)); + } else { + this.datawatcher.watch(19, Byte.valueOf((byte) 0)); + } } public boolean mate(EntityAnimal entityanimal) { @@ -279,7 +283,11 @@ public class EntityWolf extends EntityTameableAnimal { } else { EntityWolf entitywolf = (EntityWolf) entityanimal; - return !entitywolf.isTamed() ? false : (entitywolf.isSitting() ? false : this.r_() && entitywolf.r_()); + return !entitywolf.isTamed() ? false : (entitywolf.isSitting() ? false : this.s() && entitywolf.s()); } } + + public boolean bv() { + return this.datawatcher.getByte(19) == 1; + } } |