RogueSharp
Show / Hide Table of Contents

Class GoalMap

A class for assigning weights to every cell on the Map which can then be used for finding paths or building desire-driven AI

Inheritance
System.Object
GoalMap
Implements
IGoalMap
Inherited Members
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
System.Object.ReferenceEquals(System.Object, System.Object)
Namespace: RogueSharp
Assembly: RogueSharp.dll
Syntax
public class GoalMap : IGoalMap

Constructors

| Improve this Doc View Source

GoalMap(IMap)

Constructs a new instance of a GoalMap for the specified Map that will not consider diagonal movements to be valid.

Declaration
public GoalMap(IMap map)
Parameters
Type Name Description
IMap map

The Map that this GoalMap will be created for

Exceptions
Type Condition
System.ArgumentNullException

Thrown on null map

| Improve this Doc View Source

GoalMap(IMap, Boolean)

Constructs a new instance of a GoalMap for the specified Map that will consider diagonal movements to be valid if allowDiagonalMovement is set to true.

Declaration
public GoalMap(IMap map, bool allowDiagonalMovement)
Parameters
Type Name Description
IMap map

The Map that this GoalMap will be created for

System.Boolean allowDiagonalMovement

True if diagonal movements are allowed. False otherwise

Exceptions
Type Condition
System.ArgumentNullException

Thrown on null map

Methods

| Improve this Doc View Source

AddGoal(Int32, Int32, Int32)

Add a Goal at the specified location with the specified weight

Declaration
public void AddGoal(int x, int y, int weight)
Parameters
Type Name Description
System.Int32 x

X location of the Goal starting with 0 as the farthest left

System.Int32 y

Y location of the Goal starting with 0 as the top

System.Int32 weight

The priority of this goal with respect to other goals with lower numbers being a higher priority

| Improve this Doc View Source

AddObstacle(Int32, Int32)

Add an Obstacle at the specified location. Any paths found must not go through Obstacles

Declaration
public void AddObstacle(int x, int y)
Parameters
Type Name Description
System.Int32 x

X location of the Obstacle starting with 0 as the farthest left

System.Int32 y

Y location of the Obstacle starting with 0 as the top

| Improve this Doc View Source

AddObstacles(IEnumerable<Point>)

Add multiple obstacles from the specified enumeration of locations

Declaration
public void AddObstacles(IEnumerable<Point> obstacles)
Parameters
Type Name Description
System.Collections.Generic.IEnumerable<Point> obstacles

An enumeration of points representing X, Y locations of Obstacles to avoid when path-finding

| Improve this Doc View Source

ClearGoals()

Remove all goals from this GoalMap

Declaration
public void ClearGoals()
| Improve this Doc View Source

ClearObstacles()

Remove all Obstacles from this GoalMap

Declaration
public void ClearObstacles()
| Improve this Doc View Source

FindPath(Int32, Int32)

Returns a shortest Path representing an ordered List of Points from the specified location to the Goal determined to have the highest priority Distance to the goals and the weight of the goals are both used in determining the priority The path must not pass through any obstacles specified in this GoalMap instance

Declaration
public Path FindPath(int x, int y)
Parameters
Type Name Description
System.Int32 x

X location of the beginning of the path, starting with 0 as the farthest left

System.Int32 y

Y location of the beginning of the path, starting with 0 as the top

Returns
Type Description
Path

An ordered List of Points representing a shortest path from the specified location to the Goal determined to have the highest priority

Exceptions
Type Condition
PathNotFoundException

Thrown when there is not a path from the Source x,y to any Goal or a Goal is not set

| Improve this Doc View Source

FindPathAvoidingGoals(Int32, Int32)

Returns a Path representing an ordered list of Points from the specified location away from Goals specified in this GoalMap instance Distance to the goals and the weight of the goals are both used in determining the priority of avoiding the Goals The path must not pass through any Obstacles specified in this GoalMap instance

Declaration
public Path FindPathAvoidingGoals(int x, int y)
Parameters
Type Name Description
System.Int32 x

X location of the beginning of the path, starting with 0 as the farthest left

System.Int32 y

Y location of the beginning of the path, starting with 0 as the top

Returns
Type Description
Path

A Path representing ordered List of Points from the specified location away from Goals and avoiding Obstacles

Exceptions
Type Condition
PathNotFoundException

Thrown when there are no possible paths

| Improve this Doc View Source

FindPaths(Int32, Int32)

Returns a ReadOnlyCollection of Paths representing all of the shortest paths from the specified location to the Goal or Goals determined to have the highest priority This method is useful when there are multiple paths that would all work and we want to have some additional logic to pick one of the best paths The FindPath( int x, int y ) method in the GoalMap class uses this method and then chooses the first path.

Declaration
public ReadOnlyCollection<Path> FindPaths(int x, int y)
Parameters
Type Name Description
System.Int32 x

X location of the beginning of the path, starting with 0 as the farthest left

System.Int32 y

Y location of the beginning of the path, starting with 0 as the top

Returns
Type Description
System.Collections.ObjectModel.ReadOnlyCollection<Path>

A ReadOnlyCollection of Paths representing all of the shortest paths from the specified location to the Goal or Goals determined to have the highest priority

Exceptions
Type Condition
PathNotFoundException

Thrown when there is not a path from the Source x,y to any Goal or a Goal is not set

| Improve this Doc View Source

RemoveGoal(Int32, Int32)

Remove a Goal at the specified location

Declaration
public void RemoveGoal(int x, int y)
Parameters
Type Name Description
System.Int32 x

X location of the Goal starting with 0 as the farthest left

System.Int32 y

Y location of the Goal starting with 0 as the top

| Improve this Doc View Source

RemoveObstacle(Int32, Int32)

Remove an Obstacle at the specified location

Declaration
public void RemoveObstacle(int x, int y)
Parameters
Type Name Description
System.Int32 x

X location of the Obstacle starting with 0 as the farthest left

System.Int32 y

Y location of the Obstacle starting with 0 as the top

| Improve this Doc View Source

ToString()

Returns a string representation of the current GoalMap

Declaration
public override string ToString()
Returns
Type Description
System.String

A string representing the current GoalMap

Overrides
System.Object.ToString()
| Improve this Doc View Source

TryFindPath(Int32, Int32)

Returns a shortest Path representing an ordered List of Points from the specified location to the Goal determined to have the highest priority Distance to the goals and the weight of the goals are both used in determining the priority The path must not pass through any obstacles specified in this GoalMap instance null will be returned if a path cannot be found

Declaration
public Path TryFindPath(int x, int y)
Parameters
Type Name Description
System.Int32 x

X location of the beginning of the path, starting with 0 as the farthest left

System.Int32 y

Y location of the beginning of the path, starting with 0 as the top

Returns
Type Description
Path

An ordered List of Points representing a shortest path from the specified location to the Goal determined to have the highest priority. null is returned if a path cannot be found

| Improve this Doc View Source

TryFindPathAvoidingGoals(Int32, Int32)

Returns a Path representing an ordered list of Points from the specified location away from Goals specified in this GoalMap instance Distance to the goals and the weight of the goals are both used in determining the priority of avoiding the Goals The path must not pass through any Obstacles specified in this GoalMap instance Returns null if a Path is not found

Declaration
public Path TryFindPathAvoidingGoals(int x, int y)
Parameters
Type Name Description
System.Int32 x

X location of the beginning of the path, starting with 0 as the farthest left

System.Int32 y

Y location of the beginning of the path, starting with 0 as the top

Returns
Type Description
Path

A Path representing ordered List of Points from the specified location away from Goals and avoiding Obstacles. Returns null if a Path is not found

| Improve this Doc View Source

TryFindPaths(Int32, Int32)

Returns a ReadOnlyCollection of Paths representing all of the shortest paths from the specified location to the Goal or Goals determined to have the highest priority This method is useful when there are multiple paths that would all work and we want to have some additional logic to pick one of the best paths The FindPath( int x, int y ) method in the GoalMap class uses this method and then chooses the first path.

Declaration
public ReadOnlyCollection<Path> TryFindPaths(int x, int y)
Parameters
Type Name Description
System.Int32 x

X location of the beginning of the path, starting with 0 as the farthest left

System.Int32 y

Y location of the beginning of the path, starting with 0 as the top

Returns
Type Description
System.Collections.ObjectModel.ReadOnlyCollection<Path>

A ReadOnlyCollection of Paths representing all of the shortest paths from the specified location to the Goal or Goals determined to have the highest priority. Returns null if no path is found.

Implements

IGoalMap

See Also

Inspired by the article &quot;The Incredible Power of Dijkstra Maps on roguebasin
  • Improve this Doc
  • View Source
RogueSharp © 2014-2020 Faron Bracy
Back to top