Search in sources :

Example 6 with Goal

use of net.minecraft.entity.ai.goal.Goal in project Champions by TheIllusiveC4.

the class MoltenAffix method onSpawn.

@Override
public void onSpawn(IChampion champion) {
    LivingEntity livingEntity = champion.getLivingEntity();
    livingEntity.addPotionEffect(new EffectInstance(Effects.FIRE_RESISTANCE, 40, 0, true, false));
    if (livingEntity instanceof MobEntity) {
        MobEntity mobEntity = (MobEntity) livingEntity;
        mobEntity.setPathPriority(PathNodeType.WATER, -1.0F);
        mobEntity.setPathPriority(PathNodeType.LAVA, 8.0F);
        mobEntity.setPathPriority(PathNodeType.DANGER_FIRE, 0.0F);
        mobEntity.setPathPriority(PathNodeType.DAMAGE_FIRE, 0.0F);
        try {
            @SuppressWarnings("unchecked") Set<PrioritizedGoal> goals = (Set<PrioritizedGoal>) GOALS.get(mobEntity.goalSelector);
            Iterator<PrioritizedGoal> iter = goals.iterator();
            while (iter.hasNext()) {
                PrioritizedGoal goal = iter.next();
                Goal baseGoal = goal.getGoal();
                if (baseGoal instanceof FleeSunGoal || baseGoal instanceof RestrictSunGoal) {
                    iter.remove();
                }
            }
        } catch (Exception e) {
            Champions.LOGGER.error("Error accessing goals!");
        }
        if (mobEntity.getNavigator() instanceof GroundPathNavigator) {
            ((GroundPathNavigator) mobEntity.getNavigator()).setAvoidSun(false);
        }
    }
}
Also used : Set(java.util.Set) FleeSunGoal(net.minecraft.entity.ai.goal.FleeSunGoal) LivingEntity(net.minecraft.entity.LivingEntity) Goal(net.minecraft.entity.ai.goal.Goal) RestrictSunGoal(net.minecraft.entity.ai.goal.RestrictSunGoal) FleeSunGoal(net.minecraft.entity.ai.goal.FleeSunGoal) PrioritizedGoal(net.minecraft.entity.ai.goal.PrioritizedGoal) RestrictSunGoal(net.minecraft.entity.ai.goal.RestrictSunGoal) GroundPathNavigator(net.minecraft.pathfinding.GroundPathNavigator) PrioritizedGoal(net.minecraft.entity.ai.goal.PrioritizedGoal) EffectInstance(net.minecraft.potion.EffectInstance) MobEntity(net.minecraft.entity.MobEntity)

Aggregations

Goal (net.minecraft.entity.ai.goal.Goal)6 PrioritizedGoal (net.minecraft.entity.ai.goal.PrioritizedGoal)5 Map (java.util.Map)2 Set (java.util.Set)2 LivingEntity (net.minecraft.entity.LivingEntity)2 MobEntity (net.minecraft.entity.MobEntity)2 Overwrite (org.spongepowered.asm.mixin.Overwrite)2 ImmutableSet (com.google.common.collect.ImmutableSet)1 Sets (com.google.common.collect.Sets)1 AgriCraft (com.infinityraider.agricraft.AgriCraft)1 AgriApi (com.infinityraider.agricraft.api.v1.AgriApi)1 IAgriCrop (com.infinityraider.agricraft.api.v1.crop.IAgriCrop)1 AgriCropEvent (com.infinityraider.agricraft.api.v1.event.AgriCropEvent)1 com.infinityraider.agricraft.api.v1.genetics (com.infinityraider.agricraft.api.v1.genetics)1 IAgriPlant (com.infinityraider.agricraft.api.v1.plant.IAgriPlant)1 CapabilityEatCropGoal (com.infinityraider.agricraft.capability.CapabilityEatCropGoal)1 AgriGenePair (com.infinityraider.agricraft.impl.v1.genetics.AgriGenePair)1 AgriNBT (com.infinityraider.agricraft.reference.AgriNBT)1 EntityHelper (com.infinityraider.infinitylib.utility.EntityHelper)1 List (java.util.List)1