diff options
author | EvilSeph <evilseph@unaligned.org> | 2011-04-25 19:47:25 -0400 |
---|---|---|
committer | EvilSeph <evilseph@unaligned.org> | 2011-04-25 19:47:25 -0400 |
commit | d2a4c510b39bebfcaca328cb67ef6432bc9fd985 (patch) | |
tree | 8cc0aec1f0c9f79c2bd1260f31cee237c5122e6c /src/main/java/net/minecraft/server/EntityPig.java | |
parent | 1d0a6d56b7169a2123256811fabe634fb43c58d8 (diff) | |
download | craftbukkit-d2a4c510b39bebfcaca328cb67ef6432bc9fd985.tar craftbukkit-d2a4c510b39bebfcaca328cb67ef6432bc9fd985.tar.gz craftbukkit-d2a4c510b39bebfcaca328cb67ef6432bc9fd985.tar.lz craftbukkit-d2a4c510b39bebfcaca328cb67ef6432bc9fd985.tar.xz craftbukkit-d2a4c510b39bebfcaca328cb67ef6432bc9fd985.zip |
Added events related to weather in 1.5. Thanks wizjany!
Diffstat (limited to 'src/main/java/net/minecraft/server/EntityPig.java')
-rw-r--r-- | src/main/java/net/minecraft/server/EntityPig.java | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/src/main/java/net/minecraft/server/EntityPig.java b/src/main/java/net/minecraft/server/EntityPig.java new file mode 100644 index 00000000..54d93869 --- /dev/null +++ b/src/main/java/net/minecraft/server/EntityPig.java @@ -0,0 +1,95 @@ +package net.minecraft.server; + +//CraftBukkit start +import org.bukkit.craftbukkit.CraftServer; +import org.bukkit.craftbukkit.event.CraftEventFactory; +import org.bukkit.event.entity.EntityCombustEvent; +import org.bukkit.event.entity.PigZapEvent; +// CraftBukkit end + +public class EntityPig extends EntityAnimal { + + public EntityPig(World world) { + super(world); + this.texture = "/mob/pig.png"; + this.b(0.9F, 0.9F); + } + + protected void b() { + this.datawatcher.a(16, Byte.valueOf((byte) 0)); + } + + public void b(NBTTagCompound nbttagcompound) { + super.b(nbttagcompound); + nbttagcompound.a("Saddle", this.x()); + } + + public void a(NBTTagCompound nbttagcompound) { + super.a(nbttagcompound); + this.a(nbttagcompound.m("Saddle")); + } + + protected String g() { + return "mob.pig"; + } + + protected String h() { + return "mob.pig"; + } + + protected String i() { + return "mob.pigdeath"; + } + + public boolean a(EntityHuman entityhuman) { + if (this.x() && !this.world.isStatic + && (this.passenger == null || this.passenger == entityhuman)) { + entityhuman.mount(this); + return true; + } else { + return false; + } + } + + protected int j() { + return this.fireTicks > 0 ? Item.GRILLED_PORK.id : Item.PORK.id; + } + + public boolean x() { + 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)); + } + } + + public void a(EntityWeatherStorm entityweatherstorm) { + EntityPigZombie entitypigzombie = new EntityPigZombie(this.world); + entitypigzombie.setPositionRotation(this.locX, this.locY, this.locZ, + this.yaw, this.pitch); + + // CraftBukkit start + CraftServer server = ((WorldServer) this.world).getServer(); + org.bukkit.entity.Entity entity = this.getBukkitEntity(); + + PigZapEvent event = new PigZapEvent(entity, entityweatherstorm.getBukkitEntity(), entitypigzombie.getBukkitEntity()); + server.getPluginManager().callEvent(event); + + if (!event.isCancelled()) { + this.world.addEntity(entitypigzombie); + this.die(); + } + // CraftBukkit end + } + + protected void a(float f) { + super.a(f); + if (f > 5.0F && this.passenger instanceof EntityHuman) { + ((EntityHuman) this.passenger).a((Statistic) AchievementList.u); + } + } +} |