2020-08-09 17:46:58 +02:00
|
|
|
package mod.acgaming.spackenmobs.entities;
|
|
|
|
import java.util.Set;
|
|
|
|
|
|
|
|
import com.google.common.collect.Sets;
|
|
|
|
|
|
|
|
import mod.acgaming.spackenmobs.Spackenmobs;
|
2020-08-12 20:48:39 +02:00
|
|
|
import mod.acgaming.spackenmobs.items.ModItems;
|
|
|
|
import net.minecraft.entity.Entity;
|
2020-08-09 17:46:58 +02:00
|
|
|
import net.minecraft.entity.EntityAgeable;
|
|
|
|
import net.minecraft.entity.ai.EntityAIFollowParent;
|
|
|
|
import net.minecraft.entity.ai.EntityAILookIdle;
|
|
|
|
import net.minecraft.entity.ai.EntityAIMate;
|
|
|
|
import net.minecraft.entity.ai.EntityAIPanic;
|
|
|
|
import net.minecraft.entity.ai.EntityAISwimming;
|
|
|
|
import net.minecraft.entity.ai.EntityAITempt;
|
|
|
|
import net.minecraft.entity.ai.EntityAIWanderAvoidWater;
|
|
|
|
import net.minecraft.entity.ai.EntityAIWatchClosest;
|
|
|
|
import net.minecraft.entity.passive.EntityPig;
|
|
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
|
|
import net.minecraft.item.Item;
|
|
|
|
import net.minecraft.item.ItemStack;
|
|
|
|
import net.minecraft.util.DamageSource;
|
|
|
|
import net.minecraft.util.SoundEvent;
|
|
|
|
import net.minecraft.world.World;
|
|
|
|
|
|
|
|
public class EntityJens extends EntityPig
|
|
|
|
{
|
2020-08-12 20:48:39 +02:00
|
|
|
private static final Set<Item> TEMPTATION_ITEMS = Sets.newHashSet(ModItems.RAM);
|
2020-08-09 17:46:58 +02:00
|
|
|
|
|
|
|
public EntityJens(World worldIn)
|
|
|
|
{
|
|
|
|
super(worldIn);
|
2020-08-12 20:48:39 +02:00
|
|
|
setSize(0.6F, 2.2F);
|
2020-08-09 17:46:58 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
protected void initEntityAI()
|
|
|
|
{
|
|
|
|
this.tasks.addTask(0, new EntityAISwimming(this));
|
|
|
|
this.tasks.addTask(1, new EntityAIPanic(this, 1.25D));
|
|
|
|
this.tasks.addTask(3, new EntityAIMate(this, 1.0D));
|
2020-08-12 20:48:39 +02:00
|
|
|
this.tasks.addTask(4, new EntityAITempt(this, 1.2D, ModItems.RAM_ON_A_STICK, false));
|
2020-08-09 17:46:58 +02:00
|
|
|
this.tasks.addTask(4, new EntityAITempt(this, 1.2D, false, TEMPTATION_ITEMS));
|
|
|
|
this.tasks.addTask(5, new EntityAIFollowParent(this, 1.1D));
|
|
|
|
this.tasks.addTask(6, new EntityAIWanderAvoidWater(this, 1.0D));
|
|
|
|
this.tasks.addTask(7, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F));
|
|
|
|
this.tasks.addTask(8, new EntityAILookIdle(this));
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean isBreedingItem(ItemStack stack)
|
|
|
|
{
|
|
|
|
return TEMPTATION_ITEMS.contains(stack.getItem());
|
|
|
|
}
|
|
|
|
|
2020-08-12 20:48:39 +02:00
|
|
|
public boolean canBeSteered()
|
|
|
|
{
|
|
|
|
Entity entity = this.getControllingPassenger();
|
|
|
|
|
|
|
|
if (!(entity instanceof EntityPlayer))
|
|
|
|
{
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
EntityPlayer entityplayer = (EntityPlayer)entity;
|
|
|
|
return entityplayer.getHeldItemMainhand().getItem() == ModItems.RAM_ON_A_STICK || entityplayer.getHeldItemOffhand().getItem() == ModItems.RAM_ON_A_STICK;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-08-09 17:46:58 +02:00
|
|
|
public EntityJens createChild(EntityAgeable ageable)
|
|
|
|
{
|
|
|
|
return new EntityJens(this.world);
|
|
|
|
}
|
|
|
|
|
|
|
|
protected SoundEvent getAmbientSound()
|
|
|
|
{
|
|
|
|
return Spackenmobs.ENTITY_JENS_AMBIENT;
|
|
|
|
}
|
|
|
|
|
|
|
|
protected SoundEvent getHurtSound(DamageSource damageSourceIn)
|
|
|
|
{
|
|
|
|
return Spackenmobs.ENTITY_JENS_HURT;
|
|
|
|
}
|
|
|
|
|
|
|
|
protected SoundEvent getDeathSound()
|
|
|
|
{
|
|
|
|
return Spackenmobs.ENTITY_JENS_DEATH;
|
|
|
|
}
|
|
|
|
}
|