Package net.citizensnpcs.api.ai
Interface Navigator
- All Known Implementing Classes:
CitizensNavigator
public interface Navigator
Represents the pathfinding AI of an
NPC
. The navigator can path towards a single target at a time.-
Method Summary
Modifier and TypeMethodDescriptionvoid
Cancels any running navigation towards a target.void
cancelNavigation
(CancelReason reason) Cancels any running navigation towards a target with a specificCancelReason
.boolean
canNavigateTo
(Location dest) boolean
canNavigateTo
(Location dest, NavigatorParameters params) Returns whether the NPC can navigate to the given destination with the navigator parameters.Returns theNavigatorParameters
local to this navigator.Returns the currentEntityTarget
of the navigator, if any.Returns theNavigatorParameters
local to any current target execution.getNPC()
boolean
boolean
isPaused()
void
setPaused
(boolean paused) Sets whether the navigator is paused and shouldn't process the path for now.void
setStraightLineTarget
(Entity target, boolean aggressive) Sets the current navigation to an entity target.void
setStraightLineTarget
(Location target) Sets the current navigation to aLocation
destination.void
Sets the current navigation using a list ofVector
s which will be moved between sequentially using the Citizens movement logic without pathfinding.void
setTarget
(Function<NavigatorParameters, PathStrategy> strategy) Sets the current navigation to the specified strategy.void
Sets the current navigation to an entity target.void
Sets the current navigation to aLocation
destination.
-
Method Details
-
getDefaultParameters
NavigatorParameters getDefaultParameters()Returns theNavigatorParameters
local to this navigator. These parameters are copied to local target parameters when a new target is started.- Returns:
- The default parameters
- See Also:
-
getEntityTarget
EntityTarget getEntityTarget()Returns the currentEntityTarget
of the navigator, if any. May return null.- Returns:
- The current entity target
-
getLocalParameters
NavigatorParameters getLocalParameters()Returns theNavigatorParameters
local to any current target execution. These are updated independently of the default parameters.- Returns:
- The local parameters
- See Also:
-
getNPC
NPC getNPC()- Returns:
- The
NPC
attached to this navigator
-
getPathStrategy
PathStrategy getPathStrategy()- Returns:
- The current
PathStrategy
or null if the navigator is not pathfinding
-
getTargetAsLocation
Location getTargetAsLocation()Returns the currentLocation
being navigated towards - this is not necessarily permanent and may change, for example when pathing towards a movingEntity
. May return null.- Returns:
- The target location
-
getTargetType
TargetType getTargetType()- Returns:
- The current
TargetType
of the navigator
-
isPaused
boolean isPaused()- Returns:
- Whether the navigator is currently paused
-
setPaused
void setPaused(boolean paused) Sets whether the navigator is paused and shouldn't process the path for now.- Parameters:
paused
- Whether the navigator should be paused or not
-
setStraightLineTarget
Sets the current navigation to an entity target. The NPC will walk towards them in a straight line without pathfinding.- Parameters:
target
- TheEntity
to walk towardsaggressive
- Whether to attack the target when close enough
-
setStraightLineTarget
Sets the current navigation to aLocation
destination. The NPC will walk straight towards it without pathfinding.- Parameters:
target
- The destination
-
setTarget
Sets the current navigation to an entity target.- Parameters:
target
- TheEntity
to path towardsaggressive
- Whether to attack the target when close enough
-
setTarget
Sets the current navigation to the specified strategy.- Parameters:
strategy
-
-
setTarget
Sets the current navigation using a list ofVector
s which will be moved between sequentially using the Citizens movement logic without pathfinding.- Parameters:
path
- The path
-
setTarget
Sets the current navigation to aLocation
destination.- Parameters:
target
- The destination