summaryrefslogtreecommitdiffstats
path: root/src/main/java/net/minecraft/server/EntityCreeper.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/minecraft/server/EntityCreeper.java')
-rw-r--r--src/main/java/net/minecraft/server/EntityCreeper.java228
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));
- }
-}