using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
|
namespace RichCreator.Utility.PathFindings
|
{
|
public class PathNode
|
{
|
public PathNode(bool isWall, Point2 position)
|
{
|
this.isWall = isWall;
|
this.position = position;
|
}
|
|
public readonly Point2 position;
|
|
public bool isWall { get; set; }
|
|
public PathNode parent { get; set; }
|
|
public int gCost { get; set; }
|
|
public int hCost { get; set; }
|
|
public int fCost
|
{
|
get
|
{
|
return gCost + hCost;
|
}
|
}
|
|
public override bool Equals(object obj)
|
{
|
PathNode node = obj as PathNode;
|
return node.isWall == this.isWall && node.gCost == this.gCost && node.hCost == this.hCost && node.parent == this.parent && this.position == node.position;
|
}
|
|
public override int GetHashCode()
|
{
|
return gCost ^ (hCost * 128) + position.GetHashCode();
|
}
|
|
public static bool operator ==(PathNode a, PathNode b)
|
{
|
return a.Equals(b);
|
}
|
|
public static bool operator !=(PathNode a, PathNode b)
|
{
|
return !a.Equals(b);
|
}
|
}
|
}
|