public PathGraph(CellLayer <CellInfo> cellInfo, IMobileInfo mobileInfo, IActor actor, IWorld world, bool checkForBlocked) { this.cellInfo = cellInfo; World = world; this.mobileInfo = mobileInfo; Actor = actor; LaneBias = 1; checkConditions = checkForBlocked ? CellConditions.TransientActors : CellConditions.None; }
public static IPathSearch FromPoints(IWorld world, IMobileInfo mi, IActor self, IEnumerable <CPos> froms, CPos target, bool checkForBlocked) { var graph = new PathGraph(CellInfoLayerManager.Instance.NewLayer(world.Map), mi, self, world, checkForBlocked); var search = new PathSearch(graph) { heuristic = DefaultEstimator(target) }; foreach (var sl in froms.Where(sl => world.Map.Contains(sl))) { search.AddInitialCell(sl); } return(search); }
public static IPathSearch FromPoint(IWorld world, IMobileInfo mi, IActor self, CPos from, CPos target, bool checkForBlocked) { var graph = new PathGraph(CellInfoLayerManager.Instance.NewLayer(world.Map), mi, self, world, checkForBlocked); var search = new PathSearch(graph) { heuristic = DefaultEstimator(target) }; if (world.Map.Contains(from)) { search.AddInitialCell(from); } return(search); }
public static IPathSearch Search(IWorld world, IMobileInfo mi, IActor self, bool checkForBlocked) { var graph = new PathGraph(CellInfoLayerManager.Instance.NewLayer(world.Map), mi, self, world, checkForBlocked); return(new PathSearch(graph)); }