TheGoldCrayon

EntityDjinn

Apr 2nd, 2016
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.09 KB | None | 0 0
  1. package com.TheGoldCrayon.Daemonology.entities;
  2.  
  3. import net.minecraft.block.Block;
  4. import net.minecraft.entity.EnumCreatureAttribute;
  5. import net.minecraft.entity.SharedMonsterAttributes;
  6. import net.minecraft.entity.ai.EntityAIAttackOnCollide;
  7. import net.minecraft.entity.ai.EntityAIHurtByTarget;
  8. import net.minecraft.entity.ai.EntityAILookIdle;
  9. import net.minecraft.entity.ai.EntityAIMoveThroughVillage;
  10. import net.minecraft.entity.ai.EntityAIMoveTowardsRestriction;
  11. import net.minecraft.entity.ai.EntityAINearestAttackableTarget;
  12. import net.minecraft.entity.ai.EntityAISwimming;
  13. import net.minecraft.entity.ai.EntityAIWander;
  14. import net.minecraft.entity.ai.EntityAIWatchClosest;
  15. import net.minecraft.entity.monster.EntityIronGolem;
  16. import net.minecraft.entity.monster.EntityMob;
  17. import net.minecraft.entity.monster.EntityPigZombie;
  18. import net.minecraft.entity.passive.EntityVillager;
  19. import net.minecraft.entity.player.EntityPlayer;
  20. import net.minecraft.init.Items;
  21. import net.minecraft.item.Item;
  22. import net.minecraft.pathfinding.PathNavigateGround;
  23. import net.minecraft.util.BlockPos;
  24. import net.minecraft.world.World;
  25.  
  26. public class EntityDjinn extends EntityMob
  27. {
  28.  
  29.     public EntityDjinn(World worldIn)
  30.     {
  31.         super(worldIn);
  32.         ((PathNavigateGround)this.getNavigator()).setBreakDoors(false);
  33.         this.tasks.addTask(0, new EntityAISwimming(this));
  34.         this.tasks.addTask(2, new EntityAIAttackOnCollide(this, EntityPlayer.class, 1.0D, false));
  35.         this.tasks.addTask(5, new EntityAIMoveTowardsRestriction(this, 1.0D));
  36.         this.tasks.addTask(7, new EntityAIWander(this, 1.0D));
  37.         this.tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F));
  38.         this.tasks.addTask(8, new EntityAILookIdle(this));
  39.         this.applyEntityAI();
  40.     }
  41.  
  42.     protected void applyEntityAI()
  43.     {
  44.         this.tasks.addTask(4, new EntityAIAttackOnCollide(this, EntityVillager.class, 1.0D, true));
  45.         this.tasks.addTask(4, new EntityAIAttackOnCollide(this, EntityIronGolem.class, 1.0D, true));
  46.         this.tasks.addTask(6, new EntityAIMoveThroughVillage(this, 1.0D, false));
  47.         this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityPlayer.class, true));
  48.         this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityVillager.class, false));
  49.         this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityIronGolem.class, true));
  50.     }
  51.    
  52.     protected void applyEntityAttributes()
  53.     {
  54.         super.applyEntityAttributes();
  55.         this.getEntityAttribute(SharedMonsterAttributes.followRange).setBaseValue(35.0D);
  56.         this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.23000000417232513D);
  57.         this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(3.0D);
  58.     }
  59.  
  60.     protected int getExperiencePoints(EntityPlayer player)
  61.     {
  62.         return super.getExperiencePoints(player);
  63.     }
  64.    
  65.     protected String getLivingSound()
  66.     {
  67.         return "mob.zombie.say";
  68.     }
  69.    
  70.     protected String getHurtSound()
  71.     {
  72.         return "mob.zombie.hurt";
  73.     }
  74.    
  75.     protected String getDeathSound()
  76.     {
  77.         return "mob.zombie.death";
  78.     }
  79.  
  80.     protected void playStepSound(BlockPos pos, Block blockIn)
  81.     {
  82.         this.playSound("mob.zombie.step", 0.15F, 1.0F);
  83.     }
  84.    
  85.     public EnumCreatureAttribute getCreatureAttribute()
  86.     {
  87.         return EnumCreatureAttribute.UNDEFINED;
  88.     }
  89.    
  90.     protected Item getDropItem()
  91.     {
  92.         return Items.rotten_flesh;
  93.     }
  94.    
  95.     protected void addRandomDrop()
  96.     {
  97.         switch (this.rand.nextInt(3))
  98.         {
  99.             case 0:
  100.                 this.dropItem(Items.iron_ingot, 1);
  101.                 break;
  102.             case 1:
  103.                 this.dropItem(Items.carrot, 1);
  104.                 break;
  105.             case 2:
  106.                 this.dropItem(Items.potato, 1);
  107.         }
  108.     }
  109.    
  110.     public float getEyeHeight()
  111.     {
  112.         float f = 1.74F;
  113.         return f;
  114.     }
  115.    
  116.     public boolean getCanSpawnHere()
  117.     {
  118.         return super.getCanSpawnHere();
  119.     }
  120.    
  121.    
  122. }
Add Comment
Please, Sign In to add comment