summaryrefslogtreecommitdiffstats
path: root/src/main/java/net/minecraft/server/EntityAgeable.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/minecraft/server/EntityAgeable.java')
-rw-r--r--src/main/java/net/minecraft/server/EntityAgeable.java53
1 files changed, 41 insertions, 12 deletions
diff --git a/src/main/java/net/minecraft/server/EntityAgeable.java b/src/main/java/net/minecraft/server/EntityAgeable.java
index 845a9023..fdc9167a 100644
--- a/src/main/java/net/minecraft/server/EntityAgeable.java
+++ b/src/main/java/net/minecraft/server/EntityAgeable.java
@@ -1,6 +1,9 @@
package net.minecraft.server;
public abstract class EntityAgeable extends EntityCreature {
+
+ private float d = -1.0F;
+ private float e;
public boolean ageLocked = false; // CraftBukkit
public EntityAgeable(World world) {
@@ -9,7 +12,7 @@ public abstract class EntityAgeable extends EntityCreature {
public abstract EntityAgeable createChild(EntityAgeable entityageable);
- public boolean a(EntityHuman entityhuman) {
+ public boolean a_(EntityHuman entityhuman) {
ItemStack itemstack = entityhuman.inventory.getItemInHand();
if (itemstack != null && itemstack.id == Item.MONSTER_EGG.id && !this.world.isStatic) {
@@ -22,9 +25,13 @@ public abstract class EntityAgeable extends EntityCreature {
entityageable.setAge(-24000);
entityageable.setPositionRotation(this.locX, this.locY, this.locZ, 0.0F, 0.0F);
this.world.addEntity(entityageable, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.SPAWNER_EGG); // CraftBukkit
+ if (itemstack.hasName()) {
+ entityageable.setCustomName(itemstack.getName());
+ }
+
if (!entityhuman.abilities.canInstantlyBuild) {
--itemstack.count;
- if (itemstack.count == 0) { // CraftBukkit - allow less than 0 stacks as "infinit"
+ if (itemstack.count == 0) { // CraftBukkit - allow less than 0 stacks as "infinite"
entityhuman.inventory.setItem(entityhuman.inventory.itemInHandIndex, (ItemStack) null);
}
}
@@ -32,7 +39,7 @@ public abstract class EntityAgeable extends EntityCreature {
}
}
- return super.a(entityhuman);
+ return super.a_(entityhuman);
}
protected void a() {
@@ -46,6 +53,7 @@ public abstract class EntityAgeable extends EntityCreature {
public void setAge(int i) {
this.datawatcher.watch(12, Integer.valueOf(i));
+ this.a(this.isBaby());
}
public void b(NBTTagCompound nbttagcompound) {
@@ -62,19 +70,40 @@ public abstract class EntityAgeable extends EntityCreature {
public void c() {
super.c();
- int i = this.getAge();
-
- if (ageLocked) return; // CraftBukkit
- if (i < 0) {
- ++i;
- this.setAge(i);
- } else if (i > 0) {
- --i;
- this.setAge(i);
+ if (this.world.isStatic || this.ageLocked) { // CraftBukkit
+ this.a(this.isBaby());
+ } else {
+ int i = this.getAge();
+
+ if (i < 0) {
+ ++i;
+ this.setAge(i);
+ } else if (i > 0) {
+ --i;
+ this.setAge(i);
+ }
}
}
public boolean isBaby() {
return this.getAge() < 0;
}
+
+ public void a(boolean flag) {
+ this.j(flag ? 0.5F : 1.0F);
+ }
+
+ protected final void a(float f, float f1) {
+ boolean flag = this.d > 0.0F;
+
+ this.d = f;
+ this.e = f1;
+ if (!flag) {
+ this.j(1.0F);
+ }
+ }
+
+ private void j(float f) {
+ super.a(this.d * f, this.e * f);
+ }
}