diff options
Diffstat (limited to 'src/main/java/net/minecraft/server/EntityCreeper.java')
-rw-r--r-- | src/main/java/net/minecraft/server/EntityCreeper.java | 228 |
1 files changed, 0 insertions, 228 deletions
diff --git a/src/main/java/net/minecraft/server/EntityCreeper.java b/src/main/java/net/minecraft/server/EntityCreeper.java deleted file mode 100644 index a8162c75..00000000 --- a/src/main/java/net/minecraft/server/EntityCreeper.java +++ /dev/null @@ -1,228 +0,0 @@ -package net.minecraft.server; - -// CraftBukkit start -import org.bukkit.craftbukkit.event.CraftEventFactory; -import org.bukkit.event.entity.ExplosionPrimeEvent; -// CraftBukkit end - -public class EntityCreeper extends EntityMonster { - - private int bp; - private int fuseTicks; - private int maxFuseTicks = 30; - private int explosionRadius = 3; - private int record = -1; // CraftBukkit - - public EntityCreeper(World world) { - super(world); - this.goalSelector.a(1, new PathfinderGoalFloat(this)); - this.goalSelector.a(2, new PathfinderGoalSwell(this)); - this.goalSelector.a(3, new PathfinderGoalAvoidPlayer(this, EntityOcelot.class, 6.0F, 1.0D, 1.2D)); - this.goalSelector.a(4, new PathfinderGoalMeleeAttack(this, 1.0D, false)); - this.goalSelector.a(5, new PathfinderGoalRandomStroll(this, 0.8D)); - this.goalSelector.a(6, new PathfinderGoalLookAtPlayer(this, EntityHuman.class, 8.0F)); - this.goalSelector.a(6, new PathfinderGoalRandomLookaround(this)); - this.targetSelector.a(1, new PathfinderGoalNearestAttackableTarget(this, EntityHuman.class, 0, true)); - this.targetSelector.a(2, new PathfinderGoalHurtByTarget(this, false)); - } - - protected void aD() { - super.aD(); - this.getAttributeInstance(GenericAttributes.d).setValue(0.25D); - } - - public boolean bk() { - return true; - } - - public int ax() { - return this.getGoalTarget() == null ? 3 : 3 + (int) (this.getHealth() - 1.0F); - } - - protected void b(float f) { - super.b(f); - this.fuseTicks = (int) ((float) this.fuseTicks + f * 1.5F); - if (this.fuseTicks > this.maxFuseTicks - 5) { - this.fuseTicks = this.maxFuseTicks - 5; - } - } - - protected void c() { - super.c(); - this.datawatcher.a(16, Byte.valueOf((byte) -1)); - this.datawatcher.a(17, Byte.valueOf((byte) 0)); - this.datawatcher.a(18, Byte.valueOf((byte) 0)); - } - - public void b(NBTTagCompound nbttagcompound) { - super.b(nbttagcompound); - if (this.datawatcher.getByte(17) == 1) { - nbttagcompound.setBoolean("powered", true); - } - - nbttagcompound.setShort("Fuse", (short) this.maxFuseTicks); - nbttagcompound.setByte("ExplosionRadius", (byte) this.explosionRadius); - nbttagcompound.setBoolean("ignited", this.cc()); - } - - public void a(NBTTagCompound nbttagcompound) { - super.a(nbttagcompound); - this.datawatcher.watch(17, Byte.valueOf((byte) (nbttagcompound.getBoolean("powered") ? 1 : 0))); - if (nbttagcompound.hasKeyOfType("Fuse", 99)) { - this.maxFuseTicks = nbttagcompound.getShort("Fuse"); - } - - if (nbttagcompound.hasKeyOfType("ExplosionRadius", 99)) { - this.explosionRadius = nbttagcompound.getByte("ExplosionRadius"); - } - - if (nbttagcompound.getBoolean("ignited")) { - this.cd(); - } - } - - public void h() { - if (this.isAlive()) { - this.bp = this.fuseTicks; - if (this.cc()) { - this.a(1); - } - - int i = this.cb(); - - if (i > 0 && this.fuseTicks == 0) { - this.makeSound("creeper.primed", 1.0F, 0.5F); - } - - this.fuseTicks += i; - if (this.fuseTicks < 0) { - this.fuseTicks = 0; - } - - if (this.fuseTicks >= this.maxFuseTicks) { - this.fuseTicks = this.maxFuseTicks; - this.ce(); - } - } - - super.h(); - } - - protected String aT() { - return "mob.creeper.say"; - } - - protected String aU() { - return "mob.creeper.death"; - } - - public void die(DamageSource damagesource) { - // super.die(damagesource); // CraftBukkit - Moved to end - if (damagesource.getEntity() instanceof EntitySkeleton) { - int i = Item.getId(Items.RECORD_1); - int j = Item.getId(Items.RECORD_12); - int k = i + this.random.nextInt(j - i + 1); - - // CraftBukkit start - Store record for now, drop in dropDeathLoot - // this.a(Item.getById(k), 1); - this.record = k; - // CraftBukkit end - } - - super.die(damagesource); // CraftBukkit - Moved from above - } - - // CraftBukkit start - Whole method - protected void dropDeathLoot(boolean flag, int i) { - super.dropDeathLoot(flag, i); - - // Drop a music disc? - if (this.record != -1) { - this.a(Item.getById(this.record), 1); - this.record = -1; - } - } - // CraftBukkit end - - public boolean n(Entity entity) { - return true; - } - - public boolean isPowered() { - return this.datawatcher.getByte(17) == 1; - } - - protected Item getLoot() { - return Items.SULPHUR; - } - - public int cb() { - return this.datawatcher.getByte(16); - } - - public void a(int i) { - this.datawatcher.watch(16, Byte.valueOf((byte) i)); - } - - public void a(EntityLightning entitylightning) { - super.a(entitylightning); - // CraftBukkit start - if (CraftEventFactory.callCreeperPowerEvent(this, entitylightning, org.bukkit.event.entity.CreeperPowerEvent.PowerCause.LIGHTNING).isCancelled()) { - return; - } - - this.setPowered(true); - } - - public void setPowered(boolean powered) { - if (!powered) { - this.datawatcher.watch(17, Byte.valueOf((byte) 0)); - } else { - this.datawatcher.watch(17, Byte.valueOf((byte) 1)); - } - // CraftBukkit end - } - - protected boolean a(EntityHuman entityhuman) { - ItemStack itemstack = entityhuman.inventory.getItemInHand(); - - if (itemstack != null && itemstack.getItem() == Items.FLINT_AND_STEEL) { - this.world.makeSound(this.locX + 0.5D, this.locY + 0.5D, this.locZ + 0.5D, "fire.ignite", 1.0F, this.random.nextFloat() * 0.4F + 0.8F); - entityhuman.ba(); - if (!this.world.isStatic) { - this.cd(); - itemstack.damage(1, entityhuman); - return true; - } - } - - return super.a(entityhuman); - } - - private void ce() { - if (!this.world.isStatic) { - boolean flag = this.world.getGameRules().getBoolean("mobGriefing"); - - // CraftBukkit start - float radius = this.isPowered() ? 6.0F : 3.0F; - - ExplosionPrimeEvent event = new ExplosionPrimeEvent(this.getBukkitEntity(), radius, false); - this.world.getServer().getPluginManager().callEvent(event); - if (!event.isCancelled()) { - this.world.createExplosion(this, this.locX, this.locY, this.locZ, event.getRadius(), event.getFire(), flag); - this.die(); - } else { - this.fuseTicks = 0; - } - // CraftBukkit end - } - } - - public boolean cc() { - return this.datawatcher.getByte(18) != 0; - } - - public void cd() { - this.datawatcher.watch(18, Byte.valueOf((byte) 1)); - } -} |