Exemplo n.º 1
0
        private void CreatePath(IMapNodeViewModel targetNode)
        {
            var actor      = PlayerState.ActiveActor.Actor;
            var startNode  = actor.Node;
            var finishNode = targetNode.Node;
            var map        = _player.SectorNode.Sector.Map;

            Path.Clear();

            if (!map.IsPositionAvailableFor(finishNode, actor))
            {
                return;
            }

            var context = new ActorPathFindingContext(actor, map, finishNode);

            var astar       = new AStar(context, startNode, finishNode);
            var resultState = astar.Run();

            if (resultState != State.GoalFound)
            {
                return;
            }

            RememberFoundPath(astar);
        }
Exemplo n.º 2
0
        private void CreatePath()
        {
            var context = new ActorPathFindingContext(Actor, _map, TargetNode);

            var startNode  = Actor.Node;
            var finishNode = TargetNode;

            _path.Clear();

            _map.FindPath(startNode, finishNode, context, _path);
        }