public void ReplaceTilesTest()
        {
            BasicMap newMap = new BasicMap(8, 8, 1, Distance.MANHATTAN);

            for (int i = 0; i < 8; i++)
            {
                newMap.SetTerrain(_factory.Generic(new Coord(i, i), i));
            }

            newMap.ReplaceTiles(_map, new Coord(0, 0));

            for (int i = 0; i < _map.Width; i++)
            {
                for (int j = 0; j < _map.Height; j++)
                {
                    BasicTerrain t1 = _map.GetTerrain <BasicTerrain>(new Coord(i, j));
                    BasicTerrain t2 = newMap.GetTerrain <BasicTerrain>(new Coord(i, j));
                    Assert.AreEqual(t1.Glyph, t2.Glyph);
                }
            }
        }
        public void ForXForYTest()
        {
            BasicMap map     = new BasicMap(25, 25, 1, Distance.EUCLIDEAN);
            int      counter = 0;

            map.ForXForY((point) =>
            {
                map.SetTerrain(_factory.Generic(point, counter));
                counter++;
            });
            counter = 0;
            for (int i = 0; i < map.Width; i++)
            {
                for (int j = 0; j < map.Height; j++)
                {
                    BasicTerrain t = map.GetTerrain <BasicTerrain>(new Coord(i, j));
                    Assert.AreEqual(counter, t.Glyph);
                    counter++;
                }
            }
        }
Exemple #3
0
        public static BasicMap SwapXy(this BasicMap m)
        {
            BasicMap map = new BasicMap(m.Width, m.Height, 1, Distance.MANHATTAN);

            for (int i = 0; i < m.Width; i++)
            {
                for (int j = 0; j < m.Height; j++)
                {
                    Coord        original = new Coord(j, i);
                    Coord        target   = new Coord(i, j);
                    BasicTerrain t        = m.GetTerrain <BasicTerrain>(original);
                    if (t != null)
                    {
                        t = _factory.Copy(t, target);
                        map.SetTerrain(t);
                    }
                }
            }

            return(map);
        }
Exemple #4
0
        public static BasicMap ReverseVertical(this BasicMap m)
        {
            BasicMap map = new BasicMap(m.Width, m.Height, 1, Distance.MANHATTAN);

            for (int i = 0; i < m.Width; i++)
            {
                for (int j = 0; j < m.Height; j++)
                {
                    Coord        source = new Coord(i, j);
                    Coord        target = new Coord(i, m.Height - 1 - j);
                    BasicTerrain t      = m.GetTerrain <BasicTerrain>(source);
                    if (t != null)
                    {
                        t = _factory.Copy(t, target);
                        map.SetTerrain(t);
                    }
                }
            }

            return(map);
        }
Exemple #5
0
 public static void Add(this BasicMap m, BasicMap map, Coord origin)
 {
     if (m.Width < map.Width + origin.X && m.Height < map.Height + origin.X)
     {
         throw new ArgumentOutOfRangeException(nameof(origin));
     }
     for (int i = 0; i < map.Width; i++)
     {
         for (int j = 0; j < map.Height; j++)
         {
             Coord        target = new Coord(i + origin.X, j + origin.Y);
             BasicTerrain t1     = (BasicTerrain)map.GetTerrain(new Coord(i, j));
             BasicTerrain t2     = (BasicTerrain)m.GetTerrain(new Coord(i, j));
             if (t1 != null && t2 == null && m.Contains(target))
             {
                 t1 = _factory.Copy(t1, target);
                 m.SetTerrain(t1);
             }
         }
     }
 }
        public void AddTest()
        {
            BasicMap largeMap = new BasicMap(18, 18, 1, Distance.MANHATTAN);

            largeMap.Add(_map);
            for (int i = 0; i < _map.Width; i++)
            {
                for (int j = 0; j < _map.Height; j++)
                {
                    BasicTerrain t1 = _map.GetTerrain <BasicTerrain>(new Coord(i, j));
                    BasicTerrain t2 = largeMap.GetTerrain <BasicTerrain>(new Coord(i, j));
                    Assert.AreEqual(t1.Glyph, t2.Glyph);
                }
            }
            BasicMap map = new BasicMap(8, 8, 2, Distance.MANHATTAN);

            map.Add(_map);
            for (int i = 0; i < _map.Width; i++)
            {
                for (int j = 0; j < _map.Height; j++)
                {
                    BasicTerrain t1 = _map.GetTerrain <BasicTerrain>(new Coord(i, j));
                    BasicTerrain t2 = map.GetTerrain <BasicTerrain>(new Coord(i, j));
                    Assert.AreEqual(t1.Glyph, t2.Glyph);
                }
            }

            for (int i = 0; i < map.Width; i++)
            {
                for (int j = 0; j < map.Height; j++)
                {
                    BasicTerrain t1 = _map.GetTerrain <BasicTerrain>(new Coord(i, j));
                    BasicTerrain t2 = map.GetTerrain <BasicTerrain>(new Coord(i, j));
                    Assert.AreEqual(t1.Glyph, t2.Glyph);
                }
            }
        }
Exemple #7
0
        public static BasicMap Subsection(this BasicMap m, Coord start, Coord stop)
        {
            int      xDiff = stop.X - start.X;
            int      yDiff = stop.Y - start.Y;
            BasicMap map   = new BasicMap(xDiff, yDiff, Enum.GetNames(typeof(MapLayer)).Length, Distance.MANHATTAN);

            for (int i = start.X; i < stop.X + 1; i++)
            {
                for (int j = start.Y; j < stop.Y + 1; j++)
                {
                    BasicTerrain t = m.GetTerrain <BasicTerrain>(new Coord(i, j));
                    if (t != null)
                    {
                        Coord c = new Coord(i - start.X, j - start.Y);
                        t = _factory.Copy(t, c);
                        if (map.Contains(c))
                        {
                            map.SetTerrain(t);
                        }
                    }
                }
            }
            return(map);
        }
        public void SubsectionTest()
        {
            Coord    start   = new Coord(4, 3);
            Coord    stop    = new Coord(6, 7);
            BasicMap miniMap = _map.Subsection(start, stop);

            for (int i = 0; i < miniMap.Width; i++)
            {
                for (int j = 0; j < miniMap.Height; j++)
                {
                    Assert.AreEqual(miniMap.GetTerrain <BasicTerrain>(i, j).Glyph, _map.GetTerrain <BasicTerrain>(start.X + i, start.Y + j).Glyph);
                }
            }
        }