public void applyPathSettings(PathNavigateGround navigator) { navigator.setCanSwim(canSwim); navigator.setBreakDoors(canBreakDoors); }
/** * sets or removes EntityAIBreakDoor task */ public void setBreakDoorsAItask(boolean enabled) { ((PathNavigateGround) this.getNavigator()).setBreakDoors(enabled); if (enabled) { this.tasks.addTask(1, this.breakDoor); } else { this.tasks.removeTask(this.breakDoor); } }
/** * sets or removes EntityAIBreakDoor task */ public void setBreakDoorsAItask(boolean enabled) { ((PathNavigateGround) this.getNavigator()).setBreakDoors(enabled); if (enabled) { this.tasks.addTask(1, this.aiBreakDoor); } else { this.tasks.removeTask(this.aiBreakDoor); } }
PathNavigateGround pathnavigateground = (PathNavigateGround) this.theEntity.getNavigator(); boolean flag = pathnavigateground.getEnterDoors(); pathnavigateground.setBreakDoors(false); this.entityPathNavigate = pathnavigateground.getPathToPos(this.doorInfo.getDoorBlockPos()); pathnavigateground.setBreakDoors(flag); } else { pathnavigateground.setBreakDoors(false); this.entityPathNavigate = this.theEntity.getNavigator().getPathToXYZ(vec3d.x, vec3d.y, vec3d.z); pathnavigateground.setBreakDoors(flag);
@Override protected void initEntityAI() { ((PathNavigateGround) getNavigator()).setEnterDoors(true); ((PathNavigateGround) getNavigator()).setBreakDoors(true); tasks.addTask(0, new EntityAISwimming(this)); tasks.addTask(1, new EntityAITalkingTo(this)); tasks.addTask(1, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); tasks.addTask(4, new EntityAIOpenDoor(this, true)); tasks.addTask(6, new EntityAIWander(this, 0.5D)); tasks.addTask(9, new EntityAIWatchClosest(this, EntityPlayer.class, 3.0F, 1.0F)); tasks.addTask(9, new EntityAIWatchClosest(this, EntityNPC.class, 5.0F, 0.02F)); } }
@Override protected void initEntityAI() { ((PathNavigateGround) getNavigator()).setEnterDoors(true); ((PathNavigateGround) getNavigator()).setBreakDoors(true); tasks.addTask(0, new EntityAISwimming(this)); tasks.addTask(1, new EntityAITalkingTo(this)); tasks.addTask(1, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); tasks.addTask(4, new EntityAIOpenDoor(this, true)); pathing = new EntityAIPathing(this); tasks.addTask(5, pathing); tasks.addTask(6, new EntityAISchedule(this)); tasks.addTask(9, new EntityAIWatchClosest(this, EntityPlayer.class, 3.0F, 1.0F)); tasks.addTask(9, new EntityAIWatchClosest(this, EntityNPC.class, 5.0F, 0.02F)); }
/** * Make a new instance. * @param world The world. */ public ControlledZombie(World world) { super(world); addPotionEffect(new PotionEffect(MobEffects.NAUSEA, 2000, 0)); ((PathNavigateGround)this.getNavigator()).setBreakDoors(true); this.tasks.addTask(0, new EntityAISwimming(this)); this.tasks.addTask(2, new EntityAIMoveTowardsTarget(this, 0.9D, 64.0F)); this.tasks.addTask(5, new EntityAIMoveTowardsRestriction(this, 1.0D)); this.tasks.addTask(6, new EntityAIMoveThroughVillage(this, 1.0D, false)); this.tasks.addTask(7, new EntityAIWander(this, 1.0D)); this.tasks.addTask(8, new EntityAILookIdle(this)); this.targetTasks.addTask(1, new EntityAIHurtByTarget(this, true)); this.targetTasks.addTask(2, new EntityAIAttackMelee(this, 1.2D, true)); this.setSize(0.6F, 1.8F); }
@Override protected void initEntityAI() { super.initEntityAI(); if (world.getDifficulty() == EnumDifficulty.HARD) { //Only break doors on hard difficulty this.tasks.addTask(1, new EntityAIBreakDoor(this)); ((PathNavigateGround) this.getNavigator()).setBreakDoors(true); } this.tasks.addTask(2, new VampireAIRestrictSun(this)); this.tasks.addTask(3, new VampireAIFleeSun(this, 0.9, false)); this.tasks.addTask(3, new VampireAIFleeGarlic(this, 0.9, false)); this.tasks.addTask(4, new EntityAIAttackMeleeNoSun(this, 1.0, false)); this.tasks.addTask(8, new EntityAIWander(this, 0.9, 25)); this.tasks.addTask(9, new EntityAIWatchClosest(this, EntityPlayer.class, 13F)); this.tasks.addTask(10, new EntityAIWatchClosest(this, EntityHunterBase.class, 17F)); this.tasks.addTask(11, new EntityAILookIdle(this)); this.targetTasks.addTask(3, new EntityAIHurtByTarget(this, false)); this.targetTasks.addTask(4, new EntityAINearestAttackableTarget<>(this, EntityPlayer.class, 5, true, false, VampirismAPI.factionRegistry().getPredicate(getFaction(), true, false, true, false, null))); this.targetTasks.addTask(5, new EntityAINearestAttackableTarget<>(this, EntityCreature.class, 5, true, false, VampirismAPI.factionRegistry().getPredicate(getFaction(), false, true, false, false, null))); }
@Override protected void initEntityAI() { super.initEntityAI(); if (world.getDifficulty() == EnumDifficulty.HARD) { //Only break doors on hard difficulty this.tasks.addTask(1, new EntityAIBreakDoor(this)); ((PathNavigateGround) this.getNavigator()).setBreakDoors(true); } this.tasks.addTask(2, new EntityAIAvoidEntity<>(this, EntityCreature.class, VampirismAPI.factionRegistry().getPredicate(getFaction(), false, true, false, false, VReference.HUNTER_FACTION), 10, 1.0, 1.1)); this.tasks.addTask(2, new VampireAIRestrictSun(this)); this.tasks.addTask(3, new VampireAIFleeSun(this, 0.9, false)); this.tasks.addTask(3, new VampireAIFleeGarlic(this, 0.9, false)); this.tasks.addTask(4, new EntityAIAttackMeleeNoSun(this, 1.0, false)); this.tasks.addTask(5, new VampireAIBiteNearbyEntity(this)); this.tasks.addTask(6, new VampireAIFollowAdvanced(this, 1.0)); this.tasks.addTask(7, new VampireAIMoveToBiteable(this, 0.75)); this.tasks.addTask(8, new EntityAIMoveThroughVillageCustom(this, 0.6, true, 600)); this.tasks.addTask(9, new EntityAIWander(this, 0.7)); this.tasks.addTask(10, new EntityAIWatchClosest(this, EntityPlayer.class, 20F, 0.6F)); this.tasks.addTask(10, new EntityAIWatchClosest(this, EntityHunterBase.class, 17F)); this.tasks.addTask(10, new EntityAILookIdle(this)); this.targetTasks.addTask(3, new EntityAIHurtByTarget(this, false)); this.targetTasks.addTask(4, new EntityAINearestAttackableTarget<>(this, EntityPlayer.class, 5, true, false, VampirismAPI.factionRegistry().getPredicate(getFaction(), true, false, true, false, null))); this.targetTasks.addTask(5, new EntityAINearestAttackableTarget<>(this, EntityCreature.class, 5, true, false, VampirismAPI.factionRegistry().getPredicate(getFaction(), false, true, false, false, null)));//TODO maybe make them not attack hunters, although it looks interesting }