示例#1
0
        public void NavTable_Initialised_NullForBadLookup()
        {
            _nodeAMin.NeighbourRefs = new[] { _nodeBMin };

            var table = new NavTable(new List <NavRegion> {
                _regionA, _regionB
            });

            table.Initialise();

            var result = table.GetRegionRouteForPoints(_nodeAMin.Position, _nodeBMin.Position);

            Assert.IsNull(table.GetRegionRouteForPoints(_nodeAMin.Position, _nodeCMin.Position));
        }
示例#2
0
        public void NavTable_Initialised_CorrectLookupForSameRegionTraversal()
        {
            var table = new NavTable(new List <NavRegion> {
                _regionA, _regionB
            });

            table.Initialise();

            var result = table.GetRegionRouteForPoints(_nodeAMin.Position, _nodeAMax.Position);

            Assert.AreEqual(1, result.Count);
            Assert.AreSame(_regionA, result[0]);
        }
示例#3
0
        public void NavTable_Initialised_CorrectAdjacencyLookup()
        {
            _nodeAMin.NeighbourRefs = new[] { _nodeBMin };

            var table = new NavTable(new List <NavRegion> {
                _regionA, _regionB
            });

            table.Initialise();

            var result = table.GetRegionRouteForPoints(_nodeAMin.Position, _nodeBMin.Position);

            Assert.AreEqual(2, result.Count);
            Assert.AreSame(_regionA, result[0]);
            Assert.AreSame(_regionB, result[1]);
        }
示例#4
0
 public List <NavRegion> GetRegionPath(Vector2 start, Vector2 destination)
 {
     return(_navigationTable.GetRegionRouteForPoints(start, destination));
 }