use of com.minecolonies.api.entity.pathfinding.PathResult in project minecolonies by Minecolonies.
the class EntityAIWorkLumberjack method findTree.
/**
* Search for a tree.
*
* @return LUMBERJACK_GATHERING if job was canceled.
*/
private IAIState findTree() {
final BuildingLumberjack building = getOwnBuilding();
worker.getCitizenData().setVisibleStatus(SEARCH);
if (pathResult != null && pathResult.isComputing()) {
return getState();
}
if (pathResult == null) {
if (building.shouldRestrict()) {
final BlockPos startPos = building.getStartRestriction();
final BlockPos endPos = building.getEndRestriction();
pathResult = worker.getNavigation().moveToTree(startPos, endPos, 1.0D, building.getModuleMatching(ItemListModule.class, m -> m.getId().equals(SAPLINGS_LIST)).getList(), building.getSetting(BuildingLumberjack.DYNAMIC_TREES_SIZE).getValue(), worker.getCitizenColonyHandler().getColony());
} else {
pathResult = worker.getNavigation().moveToTree(SEARCH_RANGE + searchIncrement, 1.0D, building.getModuleMatching(ItemListModule.class, m -> m.getId().equals(SAPLINGS_LIST)).getList(), building.getSetting(BuildingLumberjack.DYNAMIC_TREES_SIZE).getValue(), worker.getCitizenColonyHandler().getColony());
}
return getState();
}
if (pathResult.isDone()) {
return setNewTree(building);
}
// None of the above yielded a result, report no trees found.
return LUMBERJACK_NO_TREES_FOUND;
}
use of com.minecolonies.api.entity.pathfinding.PathResult in project minecolonies by Minecolonies.
the class DruidCombatAI method moveInAttackPosition.
@Override
protected PathResult moveInAttackPosition(final LivingEntity target) {
if (BlockPosUtil.getDistanceSquared(target.blockPosition(), user.blockPosition()) <= 4.0) {
final PathJobMoveAwayFromLocation job = new PathJobMoveAwayFromLocation(user.level, AbstractPathJob.prepareStart(target), target.blockPosition(), 12, (int) user.getAttribute(Attributes.FOLLOW_RANGE).getValue(), user);
final PathResult pathResult = ((MinecoloniesAdvancedPathNavigate) user.getNavigation()).setPathJob(job, null, getCombatMovementSpeed(), true);
job.setPathingOptions(combatPathingOptions);
return pathResult;
} else if (BlockPosUtil.getDistance2D(target.blockPosition(), user.blockPosition()) >= 20) {
final PathJobMoveToLocation job = new PathJobMoveToLocation(user.level, AbstractPathJob.prepareStart(user), target.blockPosition(), 200, user);
final PathResult pathResult = ((MinecoloniesAdvancedPathNavigate) user.getNavigation()).setPathJob(job, null, getCombatMovementSpeed(), true);
job.setPathingOptions(combatPathingOptions);
return pathResult;
}
final PathJobCanSee job = new PathJobCanSee(user, target, user.level, ((AbstractBuildingGuards) user.getCitizenData().getWorkBuilding()).getGuardPos(), 40);
final PathResult pathResult = ((MinecoloniesAdvancedPathNavigate) user.getNavigation()).setPathJob(job, null, getCombatMovementSpeed(), true);
job.setPathingOptions(combatPathingOptions);
return pathResult;
}
use of com.minecolonies.api.entity.pathfinding.PathResult in project minecolonies by ldtteam.
the class EntityAIWorkLumberjack method findTree.
/**
* Search for a tree.
*
* @return LUMBERJACK_GATHERING if job was canceled.
*/
private IAIState findTree() {
final BuildingLumberjack building = getOwnBuilding();
worker.getCitizenData().setVisibleStatus(SEARCH);
if (pathResult != null && pathResult.isComputing()) {
return getState();
}
if (pathResult == null) {
if (building.shouldRestrict()) {
final BlockPos startPos = building.getStartRestriction();
final BlockPos endPos = building.getEndRestriction();
pathResult = worker.getNavigation().moveToTree(startPos, endPos, 1.0D, building.getModuleMatching(ItemListModule.class, m -> m.getId().equals(SAPLINGS_LIST)).getList(), building.getSetting(BuildingLumberjack.DYNAMIC_TREES_SIZE).getValue(), worker.getCitizenColonyHandler().getColony());
} else {
pathResult = worker.getNavigation().moveToTree(SEARCH_RANGE + searchIncrement, 1.0D, building.getModuleMatching(ItemListModule.class, m -> m.getId().equals(SAPLINGS_LIST)).getList(), building.getSetting(BuildingLumberjack.DYNAMIC_TREES_SIZE).getValue(), worker.getCitizenColonyHandler().getColony());
}
return getState();
}
if (pathResult.isDone()) {
return setNewTree(building);
}
// None of the above yielded a result, report no trees found.
return LUMBERJACK_NO_TREES_FOUND;
}
use of com.minecolonies.api.entity.pathfinding.PathResult in project minecolonies by ldtteam.
the class RangerCombatAI method moveInAttackPosition.
@Override
protected PathResult moveInAttackPosition(final LivingEntity target) {
if (BlockPosUtil.getDistanceSquared(target.blockPosition(), user.blockPosition()) <= 4.0) {
final PathJobMoveAwayFromLocation job = new PathJobMoveAwayFromLocation(user.level, AbstractPathJob.prepareStart(target), target.blockPosition(), (int) 7.0, (int) user.getAttribute(Attributes.FOLLOW_RANGE).getValue(), user);
final PathResult pathResult = ((MinecoloniesAdvancedPathNavigate) user.getNavigation()).setPathJob(job, null, getCombatMovementSpeed(), true);
job.setPathingOptions(combatPathingOptions);
return pathResult;
} else if (BlockPosUtil.getDistance2D(target.blockPosition(), user.blockPosition()) >= 20) {
final PathJobMoveToLocation job = new PathJobMoveToLocation(user.level, AbstractPathJob.prepareStart(user), target.blockPosition(), 200, user);
final PathResult pathResult = ((MinecoloniesAdvancedPathNavigate) user.getNavigation()).setPathJob(job, null, getCombatMovementSpeed(), true);
job.setPathingOptions(combatPathingOptions);
return pathResult;
}
final PathJobCanSee job = new PathJobCanSee(user, target, user.level, ((AbstractBuildingGuards) user.getCitizenData().getWorkBuilding()).getGuardPos(), 40);
final PathResult pathResult = ((MinecoloniesAdvancedPathNavigate) user.getNavigation()).setPathJob(job, null, getCombatMovementSpeed(), true);
job.setPathingOptions(combatPathingOptions);
return pathResult;
}
use of com.minecolonies.api.entity.pathfinding.PathResult in project minecolonies by Minecolonies.
the class RangerCombatAI method moveInAttackPosition.
@Override
protected PathResult moveInAttackPosition(final LivingEntity target) {
if (BlockPosUtil.getDistanceSquared(target.blockPosition(), user.blockPosition()) <= 4.0) {
final PathJobMoveAwayFromLocation job = new PathJobMoveAwayFromLocation(user.level, AbstractPathJob.prepareStart(target), target.blockPosition(), (int) 7.0, (int) user.getAttribute(Attributes.FOLLOW_RANGE).getValue(), user);
final PathResult pathResult = ((MinecoloniesAdvancedPathNavigate) user.getNavigation()).setPathJob(job, null, getCombatMovementSpeed(), true);
job.setPathingOptions(combatPathingOptions);
return pathResult;
} else if (BlockPosUtil.getDistance2D(target.blockPosition(), user.blockPosition()) >= 20) {
final PathJobMoveToLocation job = new PathJobMoveToLocation(user.level, AbstractPathJob.prepareStart(user), target.blockPosition(), 200, user);
final PathResult pathResult = ((MinecoloniesAdvancedPathNavigate) user.getNavigation()).setPathJob(job, null, getCombatMovementSpeed(), true);
job.setPathingOptions(combatPathingOptions);
return pathResult;
}
final PathJobCanSee job = new PathJobCanSee(user, target, user.level, ((AbstractBuildingGuards) user.getCitizenData().getWorkBuilding()).getGuardPos(), 40);
final PathResult pathResult = ((MinecoloniesAdvancedPathNavigate) user.getNavigation()).setPathJob(job, null, getCombatMovementSpeed(), true);
job.setPathingOptions(combatPathingOptions);
return pathResult;
}
Aggregations