Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.TheGoldCrayon.Daemonology.entities;
- import net.minecraft.block.Block;
- import net.minecraft.entity.EnumCreatureAttribute;
- import net.minecraft.entity.SharedMonsterAttributes;
- import net.minecraft.entity.ai.EntityAIAttackOnCollide;
- import net.minecraft.entity.ai.EntityAIHurtByTarget;
- import net.minecraft.entity.ai.EntityAILookIdle;
- import net.minecraft.entity.ai.EntityAIMoveThroughVillage;
- import net.minecraft.entity.ai.EntityAIMoveTowardsRestriction;
- import net.minecraft.entity.ai.EntityAINearestAttackableTarget;
- import net.minecraft.entity.ai.EntityAISwimming;
- import net.minecraft.entity.ai.EntityAIWander;
- import net.minecraft.entity.ai.EntityAIWatchClosest;
- import net.minecraft.entity.monster.EntityIronGolem;
- import net.minecraft.entity.monster.EntityMob;
- import net.minecraft.entity.monster.EntityPigZombie;
- import net.minecraft.entity.passive.EntityVillager;
- import net.minecraft.entity.player.EntityPlayer;
- import net.minecraft.init.Items;
- import net.minecraft.item.Item;
- import net.minecraft.pathfinding.PathNavigateGround;
- import net.minecraft.util.BlockPos;
- import net.minecraft.world.World;
- public class EntityDjinn extends EntityMob
- {
- public EntityDjinn(World worldIn)
- {
- super(worldIn);
- ((PathNavigateGround)this.getNavigator()).setBreakDoors(false);
- this.tasks.addTask(0, new EntityAISwimming(this));
- this.tasks.addTask(2, new EntityAIAttackOnCollide(this, EntityPlayer.class, 1.0D, false));
- this.tasks.addTask(5, new EntityAIMoveTowardsRestriction(this, 1.0D));
- this.tasks.addTask(7, new EntityAIWander(this, 1.0D));
- this.tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F));
- this.tasks.addTask(8, new EntityAILookIdle(this));
- this.applyEntityAI();
- }
- protected void applyEntityAI()
- {
- this.tasks.addTask(4, new EntityAIAttackOnCollide(this, EntityVillager.class, 1.0D, true));
- this.tasks.addTask(4, new EntityAIAttackOnCollide(this, EntityIronGolem.class, 1.0D, true));
- this.tasks.addTask(6, new EntityAIMoveThroughVillage(this, 1.0D, false));
- this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityPlayer.class, true));
- this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityVillager.class, false));
- this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityIronGolem.class, true));
- }
- protected void applyEntityAttributes()
- {
- super.applyEntityAttributes();
- this.getEntityAttribute(SharedMonsterAttributes.followRange).setBaseValue(35.0D);
- this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.23000000417232513D);
- this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(3.0D);
- }
- protected int getExperiencePoints(EntityPlayer player)
- {
- return super.getExperiencePoints(player);
- }
- protected String getLivingSound()
- {
- return "mob.zombie.say";
- }
- protected String getHurtSound()
- {
- return "mob.zombie.hurt";
- }
- protected String getDeathSound()
- {
- return "mob.zombie.death";
- }
- protected void playStepSound(BlockPos pos, Block blockIn)
- {
- this.playSound("mob.zombie.step", 0.15F, 1.0F);
- }
- public EnumCreatureAttribute getCreatureAttribute()
- {
- return EnumCreatureAttribute.UNDEFINED;
- }
- protected Item getDropItem()
- {
- return Items.rotten_flesh;
- }
- protected void addRandomDrop()
- {
- switch (this.rand.nextInt(3))
- {
- case 0:
- this.dropItem(Items.iron_ingot, 1);
- break;
- case 1:
- this.dropItem(Items.carrot, 1);
- break;
- case 2:
- this.dropItem(Items.potato, 1);
- }
- }
- public float getEyeHeight()
- {
- float f = 1.74F;
- return f;
- }
- public boolean getCanSpawnHere()
- {
- return super.getCanSpawnHere();
- }
- }
Add Comment
Please, Sign In to add comment