Java 类net.minecraft.entity.EntityCreature 实例源码
项目:Uranium
文件:ActivationRange.java
/**
* Initializes an entities type on construction to specify what group this
* entity is in for activation ranges.
*
* @param entity
* @return group id
*/
public static byte initializeEntityActivationType(Entity entity)
{
Chunk chunk = null;
// Cauldron start - account for entities that dont extend EntityMob, EntityAmbientCreature, EntityCreature
if ( entity instanceof EntityMob || entity instanceof EntitySlime || entity.isCreatureType(EnumCreatureType.monster, false)) // Cauldron - account for entities that dont extend EntityMob
{
return 1; // Monster
} else if ( entity instanceof EntityCreature || entity instanceof EntityAmbientCreature || entity.isCreatureType(EnumCreatureType.creature, false)
|| entity.isCreatureType(EnumCreatureType.waterCreature, false) || entity.isCreatureType(EnumCreatureType.ambient, false))
{
return 2; // Animal
// Cauldron end
} else
{
return 3; // Misc
}
}
项目:NemesisSystem
文件:DeathHandler.java
@SubscribeEvent
public void onDrops(LivingDropsEvent event) {
World world = event.getEntity().getEntityWorld();
if (world.isRemote || !(event.getEntity() instanceof EntityCreature)) {
return;
}
if (event.getSource() == null || event.getSource().getTrueSource() == null){
return;
}
if (!(event.getSource().getTrueSource() instanceof EntityPlayer)) {
return;
}
if (event.getEntity().getTags().contains(NemesisSystem.TAG_NEMESIS)) {
handleNemesisDrops(event.getDrops(), (EntityCreature) event.getEntity());
}
}
项目:NemesisSystem
文件:SpawnHandler.java
private void buffMobInAroundNemeses(World world, EntityCreature entity) {
if (!(entity instanceof EntityMob)) {
return;
}
if (entity.getTags().contains(NemesisSystem.TAG_BUFF_MOB_REINFORCEMENT)) {
return;
}
List<NemesisEntry> nemeses = NemesisRegistryProvider.get(world).list();
sortByHighestLevel(nemeses);
for (NemesisEntry nemesis : nemeses) {
if (buffEntity(entity, nemesis)) {
return;
}
}
}
项目:NemesisSystem
文件:DeathHandler.java
private static void handleNemesisDeath(EntityCreature nemesisEntity, Entity attacker) {
NemesisEntry nemesis = NemesisUtil.loadNemesisFromEntity(nemesisEntity);
if (nemesis == null) {
return;
}
if (attacker == null || !(attacker instanceof EntityLivingBase)) {
return;
}
NemesisActions.demote(nemesisEntity.world, nemesis, attacker.getName());
NemesisUtil.findNemesisBodyGuards(nemesisEntity.world, nemesis.getId(), nemesisEntity.getPosition())
.forEach((EntityCreature guard) -> {
guard.setAttackTarget(null);
guard.getTags().add(TAG_RONIN);
});
}
项目:BaseClient
文件:EntityAIFindEntityNearest.java
public EntityAIFindEntityNearest(EntityLiving p_i45884_1_, Class <? extends EntityLivingBase > p_i45884_2_)
{
this.field_179442_b = p_i45884_1_;
this.field_179439_f = p_i45884_2_;
if (p_i45884_1_ instanceof EntityCreature)
{
field_179444_a.warn("Use NearestAttackableTargetGoal.class for PathfinerMob mobs!");
}
this.field_179443_c = new Predicate<EntityLivingBase>()
{
public boolean apply(EntityLivingBase p_apply_1_)
{
double d0 = EntityAIFindEntityNearest.this.func_179438_f();
if (p_apply_1_.isSneaking())
{
d0 *= 0.800000011920929D;
}
return p_apply_1_.isInvisible() ? false : ((double)p_apply_1_.getDistanceToEntity(EntityAIFindEntityNearest.this.field_179442_b) > d0 ? false : EntityAITarget.isSuitableTarget(EntityAIFindEntityNearest.this.field_179442_b, p_apply_1_, false, true));
}
};
this.field_179440_d = new EntityAINearestAttackableTarget.Sorter(p_i45884_1_);
}
项目:NemesisSystem
文件:DeathHandler.java
@SubscribeEvent
public void onDeath(LivingDeathEvent event) {
World world = event.getEntity().getEntityWorld();
if (world.isRemote) {
return;
}
Entity slayer = event.getSource().getTrueSource();
if (event.getEntity() instanceof EntityPlayer && slayer instanceof EntityCreature) {
handlePlayerDeath((EntityPlayer) event.getEntity(), (EntityCreature) slayer);
return;
}
if (!(event.getEntity() instanceof EntityCreature)) {
return;
}
if (event.getEntity().getTags().contains(NemesisSystem.TAG_NEMESIS)) {
handleNemesisDeath((EntityCreature) event.getEntity(), slayer);
}
}
项目:CustomWorldGen
文件:EntityAIHurtByTarget.java
protected void alertOthers()
{
double d0 = this.getTargetDistance();
for (EntityCreature entitycreature : this.taskOwner.worldObj.getEntitiesWithinAABB(this.taskOwner.getClass(), (new AxisAlignedBB(this.taskOwner.posX, this.taskOwner.posY, this.taskOwner.posZ, this.taskOwner.posX + 1.0D, this.taskOwner.posY + 1.0D, this.taskOwner.posZ + 1.0D)).expand(d0, 10.0D, d0)))
{
if (this.taskOwner != entitycreature && entitycreature.getAttackTarget() == null && (!(this.taskOwner instanceof EntityTameable) || ((EntityTameable)this.taskOwner).getOwner() == ((EntityTameable)entitycreature).getOwner()) && !entitycreature.isOnSameTeam(this.taskOwner.getAITarget()))
{
boolean flag = false;
for (Class<?> oclass : this.targetClasses)
{
if (entitycreature.getClass() == oclass)
{
flag = true;
break;
}
}
if (!flag)
{
this.setEntityAttackTarget(entitycreature, this.taskOwner.getAITarget());
}
}
}
}
项目:CustomWorldGen
文件:EntityAIFindEntityNearest.java
public EntityAIFindEntityNearest(EntityLiving mobIn, Class <? extends EntityLivingBase > p_i45884_2_)
{
this.mob = mobIn;
this.classToCheck = p_i45884_2_;
if (mobIn instanceof EntityCreature)
{
LOGGER.warn("Use NearestAttackableTargetGoal.class for PathfinerMob mobs!");
}
this.predicate = new Predicate<EntityLivingBase>()
{
public boolean apply(@Nullable EntityLivingBase p_apply_1_)
{
double d0 = EntityAIFindEntityNearest.this.getFollowRange();
if (p_apply_1_.isSneaking())
{
d0 *= 0.800000011920929D;
}
return p_apply_1_.isInvisible() ? false : ((double)p_apply_1_.getDistanceToEntity(EntityAIFindEntityNearest.this.mob) > d0 ? false : EntityAITarget.isSuitableTarget(EntityAIFindEntityNearest.this.mob, p_apply_1_, false, true));
}
};
this.sorter = new EntityAINearestAttackableTarget.Sorter(mobIn);
}
项目:BaseClient
文件:EntityAIMoveThroughVillage.java
public EntityAIMoveThroughVillage(EntityCreature theEntityIn, double movementSpeedIn, boolean isNocturnalIn)
{
this.theEntity = theEntityIn;
this.movementSpeed = movementSpeedIn;
this.isNocturnal = isNocturnalIn;
this.setMutexBits(1);
if (!(theEntityIn.getNavigator() instanceof PathNavigateGround))
{
throw new IllegalArgumentException("Unsupported mob for MoveThroughVillageGoal");
}
}
项目:Backmemed
文件:EntityAIMoveToBlock.java
public EntityAIMoveToBlock(EntityCreature creature, double speedIn, int length)
{
this.theEntity = creature;
this.movementSpeed = speedIn;
this.searchLength = length;
this.setMutexBits(5);
}
项目:NemesisSystem
文件:AttackHandler.java
@SubscribeEvent
public void onAttacked(LivingHurtEvent event) {
World world = event.getEntity().getEntityWorld();
if (world.isRemote || !(event.getEntity() instanceof EntityCreature)) {
return;
}
if (event.getEntity().getTags().contains(NemesisSystem.TAG_NEMESIS)) {
orderGuardsToAttackAggressor((EntityCreature) event.getEntity(), event.getSource().getTrueSource());
}
}
项目:BaseClient
文件:EntityAIWander.java
public EntityAIWander(EntityCreature creatureIn, double speedIn, int chance)
{
this.entity = creatureIn;
this.speed = speedIn;
this.executionChance = chance;
this.setMutexBits(1);
}
项目:Uranium
文件:CraftCreature.java
public void setTarget(LivingEntity target) {
EntityCreature entity = getHandle();
if (target == null) {
entity.entityToAttack = null;
} else if (target instanceof CraftLivingEntity) {
entity.entityToAttack = ((CraftLivingEntity) target).getHandle();
entity.pathToEntity = entity.worldObj.getPathEntityToEntity(entity, entity.entityToAttack, 16.0F, true, false, false, true);
}
}
项目:CustomWorldGen
文件:EntityAIAttackMelee.java
public EntityAIAttackMelee(EntityCreature creature, double speedIn, boolean useLongMemory)
{
this.attacker = creature;
this.worldObj = creature.worldObj;
this.speedTowardsTarget = speedIn;
this.longMemory = useLongMemory;
this.setMutexBits(3);
}
项目:BaseClient
文件:EntityAIFleeSun.java
public EntityAIFleeSun(EntityCreature theCreatureIn, double movementSpeedIn)
{
this.theCreature = theCreatureIn;
this.movementSpeed = movementSpeedIn;
this.theWorld = theCreatureIn.worldObj;
this.setMutexBits(1);
}
项目:Backmemed
文件:RandomPositionGenerator.java
@Nullable
/**
* finds a random target within par1(x,z) and par2 (y) blocks
*/
public static Vec3d findRandomTarget(EntityCreature entitycreatureIn, int xz, int y)
{
return findRandomTargetBlock(entitycreatureIn, xz, y, (Vec3d)null);
}
项目:Infernum
文件:EntityPigZombieMage.java
protected void setEntityAttackTarget(EntityCreature creatureIn, EntityLivingBase entityLivingBaseIn) {
super.setEntityAttackTarget(creatureIn, entityLivingBaseIn);
if (creatureIn instanceof EntityPigZombieMage) {
((EntityPigZombieMage) creatureIn).becomeAngryAt(entityLivingBaseIn);
}
}
项目:Backmemed
文件:RandomPositionGenerator.java
@Nullable
/**
* searches 10 blocks at random in a within par1(x,z) and par2 (y) distance, ignores those not in the direction of
* par3Vec3, then points to the tile for which creature.getBlockPathWeight returns the highest number
*/
private static Vec3d findRandomTargetBlock(EntityCreature entitycreatureIn, int xz, int y, @Nullable Vec3d targetVec3)
{
return func_191379_a(entitycreatureIn, xz, y, targetVec3, true);
}
项目:BaseClient
文件:EntityAIMoveTowardsTarget.java
public EntityAIMoveTowardsTarget(EntityCreature creature, double speedIn, float targetMaxDistance)
{
this.theEntity = creature;
this.speed = speedIn;
this.maxTargetDistance = targetMaxDistance;
this.setMutexBits(1);
}
项目:DecompiledMinecraft
文件:EntityAITempt.java
public EntityAITempt(EntityCreature temptedEntityIn, double speedIn, Item temptItemIn, boolean scaredByPlayerMovementIn)
{
this.temptedEntity = temptedEntityIn;
this.speed = speedIn;
this.temptItem = temptItemIn;
this.scaredByPlayerMovement = scaredByPlayerMovementIn;
this.setMutexBits(3);
if (!(temptedEntityIn.getNavigator() instanceof PathNavigateGround))
{
throw new IllegalArgumentException("Unsupported mob type for TemptGoal");
}
}
项目:DecompiledMinecraft
文件:EntityAIRestrictOpenDoor.java
public EntityAIRestrictOpenDoor(EntityCreature creatureIn)
{
this.entityObj = creatureIn;
if (!(creatureIn.getNavigator() instanceof PathNavigateGround))
{
throw new IllegalArgumentException("Unsupported mob type for RestrictOpenDoorGoal");
}
}
项目:DecompiledMinecraft
文件:EntityAIMoveToBlock.java
public EntityAIMoveToBlock(EntityCreature creature, double speedIn, int length)
{
this.theEntity = creature;
this.movementSpeed = speedIn;
this.searchLength = length;
this.setMutexBits(5);
}
项目:CustomWorldGen
文件:EntityAIWander.java
public EntityAIWander(EntityCreature creatureIn, double speedIn, int chance)
{
this.entity = creatureIn;
this.speed = speedIn;
this.executionChance = chance;
this.setMutexBits(1);
}
项目:DecompiledMinecraft
文件:EntityAIAttackOnCollide.java
public EntityAIAttackOnCollide(EntityCreature creature, double speedIn, boolean useLongMemory)
{
this.attacker = creature;
this.worldObj = creature.worldObj;
this.speedTowardsTarget = speedIn;
this.longMemory = useLongMemory;
this.setMutexBits(3);
}
项目:CustomWorldGen
文件:EntitySkeleton.java
/**
* Handles updating while being ridden by an entity
*/
public void updateRidden()
{
super.updateRidden();
if (this.getRidingEntity() instanceof EntityCreature)
{
EntityCreature entitycreature = (EntityCreature)this.getRidingEntity();
this.renderYawOffset = entitycreature.renderYawOffset;
}
}
项目:DecompiledMinecraft
文件:EntityAIHurtByTarget.java
public EntityAIHurtByTarget(EntityCreature creatureIn, boolean entityCallsForHelpIn, Class... targetClassesIn)
{
super(creatureIn, false);
this.entityCallsForHelp = entityCallsForHelpIn;
this.targetClasses = targetClassesIn;
this.setMutexBits(1);
}
项目:DecompiledMinecraft
文件:EntityAIFleeSun.java
public EntityAIFleeSun(EntityCreature theCreatureIn, double movementSpeedIn)
{
this.theCreature = theCreatureIn;
this.movementSpeed = movementSpeedIn;
this.theWorld = theCreatureIn.worldObj;
this.setMutexBits(1);
}
项目:DecompiledMinecraft
文件:EntityAIWander.java
public EntityAIWander(EntityCreature creatureIn, double speedIn, int chance)
{
this.entity = creatureIn;
this.speed = speedIn;
this.executionChance = chance;
this.setMutexBits(1);
}
项目:NemesisSystem
文件:UpdateHandler.java
private void flee(EntityCreature bodyGuard) {
bodyGuard.removeTag(NemesisSystem.TAG_BODY_GUARD);
bodyGuard.setAttackTarget(null);
dropItemsInHands(bodyGuard);
BehaviorApi.setFollowSpeed(bodyGuard, 2);
int distance = 1000;
int degrees = bodyGuard.getRNG().nextInt(360);
int x = distance * (int) Math.round(Math.cos(Math.toRadians(degrees)));
int z = distance * (int) Math.round(Math.sin(Math.toRadians(degrees)));
BlockPos from = bodyGuard.getPosition();
BlockPos to = new BlockPos(from.getX() + x, from.getY(), from.getZ() + z);
bodyGuard.setHomePosAndDistance(to, 50);
}
项目:NemesisSystem
文件:NemesisEntityDisplay.java
private EntityCreature createEntity(NemesisEntry nemesis) {
try {
return SpawnApi.getEntityFromString(mc.world, nemesis.getMob());
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
项目:DecompiledMinecraft
文件:EntitySkeleton.java
/**
* Handles updating while being ridden by an entity
*/
public void updateRidden()
{
super.updateRidden();
if (this.ridingEntity instanceof EntityCreature)
{
EntityCreature entitycreature = (EntityCreature)this.ridingEntity;
this.renderYawOffset = entitycreature.renderYawOffset;
}
}
项目:DecompiledMinecraft
文件:EntityAIRestrictOpenDoor.java
public EntityAIRestrictOpenDoor(EntityCreature creatureIn)
{
this.entityObj = creatureIn;
if (!(creatureIn.getNavigator() instanceof PathNavigateGround))
{
throw new IllegalArgumentException("Unsupported mob type for RestrictOpenDoorGoal");
}
}
项目:CustomWorldGen
文件:EntityAITarget.java
public EntityAITarget(EntityCreature creature, boolean checkSight, boolean onlyNearby)
{
this.unseenMemoryTicks = 60;
this.taskOwner = creature;
this.shouldCheckSight = checkSight;
this.nearbyOnly = onlyNearby;
}
项目:CustomWorldGen
文件:EntityAIFleeSun.java
public EntityAIFleeSun(EntityCreature theCreatureIn, double movementSpeedIn)
{
this.theCreature = theCreatureIn;
this.movementSpeed = movementSpeedIn;
this.theWorld = theCreatureIn.worldObj;
this.setMutexBits(1);
}
项目:Backmemed
文件:EntityAIMoveTowardsTarget.java
public EntityAIMoveTowardsTarget(EntityCreature creature, double speedIn, float targetMaxDistance)
{
this.theEntity = creature;
this.speed = speedIn;
this.maxTargetDistance = targetMaxDistance;
this.setMutexBits(1);
}
项目:Backmemed
文件:EntityAITarget.java
public EntityAITarget(EntityCreature creature, boolean checkSight, boolean onlyNearby)
{
this.unseenMemoryTicks = 60;
this.taskOwner = creature;
this.shouldCheckSight = checkSight;
this.nearbyOnly = onlyNearby;
}
项目:BaseClient
文件:EntityAIAttackOnCollide.java
public EntityAIAttackOnCollide(EntityCreature creature, double speedIn, boolean useLongMemory)
{
this.attacker = creature;
this.worldObj = creature.worldObj;
this.speedTowardsTarget = speedIn;
this.longMemory = useLongMemory;
this.setMutexBits(3);
}
项目:NemesisSystem
文件:NemesisUtil.java
public static List<EntityCreature> findNemesisBodyGuards(World world, UUID id, BlockPos position) {
int distance = 100;
return world.getEntitiesWithinAABB(EntityCreature.class, nearByBox(position, distance),
(EntityCreature searchEntity) -> isBodyGuard(searchEntity, id)
);
}
项目:NemesisSystem
文件:SpawnHandler.java
private static void nemesisAnnounceEffects(EntityCreature nemesisEntity) {
World world = nemesisEntity.world;
if (canSeeSky(nemesisEntity)) {
world.addWeatherEffect(new EntityLightningBolt(nemesisEntity.world, nemesisEntity.posX, nemesisEntity.posY, nemesisEntity.posZ, true));
}
// TODO sound horn
}
项目:DecompiledMinecraft
文件:EntityAIMoveThroughVillage.java
public EntityAIMoveThroughVillage(EntityCreature theEntityIn, double movementSpeedIn, boolean isNocturnalIn)
{
this.theEntity = theEntityIn;
this.movementSpeed = movementSpeedIn;
this.isNocturnal = isNocturnalIn;
this.setMutexBits(1);
if (!(theEntityIn.getNavigator() instanceof PathNavigateGround))
{
throw new IllegalArgumentException("Unsupported mob for MoveThroughVillageGoal");
}
}