package com.hbm.entity.mob; import java.util.List; import net.minecraft.entity.EntityCreature; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.EntityAILookIdle; import net.minecraft.entity.ai.EntityAISwimming; import net.minecraft.entity.ai.EntityAIWander; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.world.World; public class EntityGhost extends EntityCreature { public EntityGhost(World world) { super(world); this.tasks.addTask(0, new EntityAISwimming(this)); this.tasks.addTask(1, new EntityAIWander(this, 1.0D)); this.tasks.addTask(2, new EntityAILookIdle(this)); this.renderDistanceWeight *= 10; } @Override protected void applyEntityAttributes() { super.applyEntityAttributes(); this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(8.0D); this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.2D); } @Override public void onUpdate() { super.onUpdate(); if(!worldObj.isRemote) { double despawnRange = 50; List players = worldObj.getEntitiesWithinAABB(EntityPlayer.class, this.boundingBox.expand(despawnRange, despawnRange, despawnRange)); if(!players.isEmpty()) this.setDead(); } } @Override public void setHealth(float health) { super.setHealth(this.getMaxHealth()); } @Override public boolean isEntityInvulnerable() { return true; } }