All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.minecraft.server.EntityEndermite Maven / Gradle / Ivy

The newest version!
package net.minecraft.server;

import org.bukkit.entity.Endermite;
import org.jetbrains.annotations.NotNull;

public class EntityEndermite extends EntityMonster {

  private int a = 0;
  private boolean b = false;

  public EntityEndermite(World world) {
    super(world);
    this.b_ = 3;
    this.setSize(0.4F, 0.3F);
    this.goalSelector.a(1, new PathfinderGoalFloat(this));
    this.goalSelector.a(2, new PathfinderGoalMeleeAttack(this, EntityHuman.class, 1.0D, false));
    this.goalSelector.a(3, new PathfinderGoalRandomStroll(this, 1.0D));
    this.goalSelector.a(7, new PathfinderGoalLookAtPlayer(this, EntityHuman.class, 8.0F));
    this.goalSelector.a(8, new PathfinderGoalRandomLookaround(this));
    this.targetSelector.a(1, new PathfinderGoalHurtByTarget(this, true));
    this.targetSelector.a(2, new PathfinderGoalNearestAttackableTarget(this, EntityHuman.class, true));
  }

  @NotNull
  @Override
  public Endermite getEntity() {
    return (Endermite) super.getEntity();
  }

  public float getHeadHeight() {
    return 0.1F;
  }

  protected void initAttributes() {
    super.initAttributes();
    this.getAttributeInstance(GenericAttributes.maxHealth).setValue(8.0D);
    this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).setValue(0.25D);
    this.getAttributeInstance(GenericAttributes.ATTACK_DAMAGE).setValue(2.0D);
  }

  protected boolean s_() {
    return false;
  }

  protected String z() {
    return "mob.silverfish.say";
  }

  protected String bo() {
    return "mob.silverfish.hit";
  }

  protected String bp() {
    return "mob.silverfish.kill";
  }

  protected void a(BlockPosition blockposition, Block block) {
    this.makeSound("mob.silverfish.step", 0.15F, 1.0F);
  }

  protected Item getLoot() {
    return null;
  }

  public void a(NBTTagCompound nbttagcompound) {
    super.a(nbttagcompound);
    this.a = nbttagcompound.getInt("Lifetime");
    this.b = nbttagcompound.getBoolean("PlayerSpawned");
  }

  public void b(NBTTagCompound nbttagcompound) {
    super.b(nbttagcompound);
    nbttagcompound.setInt("Lifetime", this.a);
    nbttagcompound.setBoolean("PlayerSpawned", this.b);
  }

  public void t_() {
    this.aI = this.yaw;
    super.t_();
  }

  public boolean n() {
    return this.b;
  }

  public void a(boolean flag) {
    this.b = flag;
  }

  public void m() {
    super.m();
    if (this.world.isClientSide) {
      for (int i = 0; i < 2; ++i) {
        this.world.addParticle(EnumParticle.PORTAL, this.locX + (this.random.nextDouble() - 0.5D) * (double) this.width, this.locY + this.random.nextDouble() * (double) this.length, this.locZ + (this.random.nextDouble() - 0.5D) * (double) this.width, (this.random.nextDouble() - 0.5D) * 2.0D, -this.random.nextDouble(), (this.random.nextDouble() - 0.5D) * 2.0D);
      }
    } else {
      if (!this.isPersistent()) {
        ++this.a;
      }

      if (this.a >= 2400) {
        this.die();
      }
    }

  }

  protected boolean n_() {
    return true;
  }

  public boolean bR() {
    if (super.bR()) {
      EntityHuman entityhuman = this.world.findNearbyPlayer(this, 5.0D);

      return entityhuman == null;
    } else {
      return false;
    }
  }

  public EnumMonsterType getMonsterType() {
    return EnumMonsterType.ARTHROPOD;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy