public IMap<TPoint> AlignBottomRight(IGridSpace<TPoint> grid)
		{
			return
				AlignRight(grid)
					.WithWindow(window)
					.AlignBottom(grid);
		}
		public IMap<TPoint> AlignTopLeft(IGridSpace<TPoint> grid)
		{
			return
				AlignLeft(grid)
					.WithWindow(window)
					.AlignTop(grid);
		}
		public IMap<TPoint> AlignMiddleCenter(IGridSpace<TPoint> grid)
		{
			return
				AlignCenter(grid)
					.WithWindow(window)
					.AlignMiddle(grid);
		}
Exemple #4
0
 public IMap <TPoint> AlignTopRight(IGridSpace <TPoint> grid)
 {
     return
         (AlignRight(grid)
          .WithWindow(window)
          .AlignTop(grid));
 }
		public IMap<TPoint> AlignMiddleRight(IGridSpace<TPoint> grid)
		{
			return
				AlignMiddle(grid)
					.WithWindow(window)
					.AlignRight(grid);
		}
Exemple #6
0
 public IMap <TPoint> AlignBottomLeft(IGridSpace <TPoint> grid)
 {
     return
         (AlignLeft(grid)
          .WithWindow(window)
          .AlignBottom(grid));
 }
Exemple #7
0
        public IMap <TPoint> AlignTop(IGridSpace <TPoint> grid)
        {
            var gridSize       = leftMap.CalcGridDimensions(grid);
            var anchorPosition = leftMap.CalcBottomLeft(grid);

            return(TranslateY(window.y + window.height - gridSize.y - anchorPosition.y + leftMap.GetAnchorTranslation().y));
        }
Exemple #8
0
        public Vector2 CalcAnchorDimensions(IGridSpace <TPoint> grid)
        {
            if (!grid.Any())
            {
                return(Vector2.zero);
            }
            var rawGrid       = grid.Select(point => InverseGridPointTransform(point));
            var rawGridAsList = rawGrid as IList <TPoint> ?? rawGrid.ToList();
            var firstPoint    = rawGridAsList.First();

            var worldPoint = GridToWorld(firstPoint);

            var minX = worldPoint.x;
            var maxX = worldPoint.x;
            var minY = worldPoint.y;
            var maxY = worldPoint.y;

            foreach (var point in rawGridAsList.ButFirst())
            {
                worldPoint = GridToWorld(point);

                minX = Mathf.Min(minX, worldPoint.x);
                maxX = Mathf.Max(maxX, worldPoint.x);
                minY = Mathf.Min(minY, worldPoint.y);
                maxY = Mathf.Max(maxY, worldPoint.y);
            }

            var width  = maxX - minX;
            var height = maxY - minY;

            return(new Vector2(width, height));
        }
Exemple #9
0
 public ArchimedeanSpiralMap(Vector2 cellDimensions, IGridSpace <LinePoint> grid)
     : base(cellDimensions)
 {
     lookUpWorld = grid.Select(p => this[p]).ToArray();
     lookUpGrid  = grid.ToArray();
     notInGrid   = grid.Last().Translate(LinePoint.Right);
 }
Exemple #10
0
		public IMap<TPoint> AlignBottomCenter(IGridSpace<TPoint> grid)
		{
			return
				AlignCenter(grid)
					.WithWindow(window)
					.AlignBottom(grid);
		}
Exemple #11
0
 public IMap <TPoint> AlignTopCenter(IGridSpace <TPoint> grid)
 {
     return
         (AlignCenter(grid)
          .WithWindow(window)
          .AlignTop(grid));
 }
Exemple #12
0
        virtual public Vector2 CalcBottomLeft(IGridSpace <TPoint> grid)
        {
            if (!grid.Any())
            {
                return(Vector2.zero);
            }

            var rawGrid       = grid.Select(point => InverseGridPointTransform(point));
            var rawGridAsList = rawGrid as IList <TPoint> ?? rawGrid.ToList();
            var firstPoint    = rawGridAsList.First();

            var halfCellDimensions = GetCellDimensions(firstPoint) / 2;
            var worldPoint         = GridToWorld(firstPoint);

            var minX = worldPoint.x - halfCellDimensions.x;
            var minY = worldPoint.y - halfCellDimensions.y;

            foreach (var point in rawGridAsList.ButFirst())
            {
                halfCellDimensions = GetCellDimensions(point) / 2;
                worldPoint         = GridToWorld(point);

                minX = Mathf.Min(minX, worldPoint.x - halfCellDimensions.x);
                minY = Mathf.Min(minY, worldPoint.y - halfCellDimensions.y);
            }

            return(new Vector2(minX, minY));
        }
Exemple #13
0
        public IMap <TPoint> AlignRight(IGridSpace <TPoint> grid)
        {
            var gridSize       = leftMap.CalcGridDimensions(grid);
            var anchorPosition = leftMap.CalcBottomLeft(grid);

            return(TranslateX(window.x + window.width - gridSize.x - anchorPosition.x + leftMap.GetAnchorTranslation().x));
        }
Exemple #14
0
 public IMap <TPoint> AlignMiddleLeft(IGridSpace <TPoint> grid)
 {
     return
         (AlignMiddle(grid)
          .WithWindow(window)
          .AlignLeft(grid));
 }
Exemple #15
0
        public IMap <TPoint> AlignMiddle(IGridSpace <TPoint> grid)
        {
            var gridSize       = leftMap.CalcGridDimensions(grid);
            var anchorPosition = leftMap.CalcBottomLeft(grid);
            var offsetY        = window.y + (window.height - gridSize.y) / 2 - anchorPosition.y + leftMap.GetAnchorTranslation().y;

            return(TranslateY(offsetY));
        }
Exemple #16
0
		public ImageMap(Rect imageRect, IGridSpace<TPoint> grid, IMap<TPoint> map)
		{
			this.imageRect = imageRect;
			this.map = map;

			gridDimensions = map.CalcGridDimensions(grid);
			anchorPoint = map.GetAnchorTranslation();
		}
Exemple #17
0
 public static GridType GetGridType(this IGridSpace space)
 {
     if (space == null)
     {
         return(GridType.NULL);
     }
     return(space.Type);
 }
Exemple #18
0
        public IMap <TPoint> AlignCenter(IGridSpace <TPoint> grid)
        {
            var gridSize       = leftMap.CalcGridDimensions(grid);
            var anchorPosition = leftMap.CalcBottomLeft(grid);

            var offsetX = window.x + (window.width - gridSize.x) / 2 - anchorPosition.x + leftMap.GetAnchorTranslation().x;

            return(TranslateX(offsetX));
        }
Exemple #19
0
 public void Initialize()
 {
     _levels = new Level[_maxLevels];
     ArrayExt.Converters[typeof(GridType)]  = (b) => { return(GridTypeEnum.Convert((GridType)b)); };
     ArrayExt.Converters[typeof(GridSpace)] = (b) =>
     {
         GridSpace s = b as GridSpace;
         if (s == null)
         {
             return(GridTypeEnum.Convert(GridType.NULL));
         }
         return(GridTypeEnum.Convert(s.Type));
     };
     ArrayExt.Converters[typeof(GenSpace)] = (b) =>
     {
         GenSpace s = b as GenSpace;
         if (s == null)
         {
             return(GridTypeEnum.Convert(GridType.NULL));
         }
         return(s.GetChar());
     };
     ArrayExt.Converters[typeof(IGridSpace)] = (b) =>
     {
         IGridSpace s = b as IGridSpace;
         if (s == null)
         {
             return(GridTypeEnum.Convert(GridType.NULL));
         }
         if (s is GenSpace)
         {
             return(((GenSpace)s).GetChar());
         }
         return(GridTypeEnum.Convert(s.Type));
     };
     if (Seed == -1)
     {
         Seed = Probability.Rand.Next();
     }
     System.Random rand = new System.Random(Seed);
     for (int i = 0; i < _maxLevels; i++)
     {
         _levelSeeds[i] = rand.Next();
     }
     LevelBuilder.Initialize();
     foreach (IInitializable init in this.FindAllDerivedObjects <IInitializable>())
     {
         init.Init();
     }
     #region DEBUG
     if (BigBoss.Debug.logging(Logs.LevelGenMain))
     {
         BigBoss.Debug.w(Logs.LevelGenMain, "Random seed int: " + Seed);
     }
     #endregion
 }
Exemple #20
0
        public IMap <TPoint> Stretch(IGridSpace <TPoint> grid)
        {
            var gridDimensions = CalcGridDimensions(grid);
            var anchorPoint    = GetAnchorTranslation();

            return
                (Translate(-anchorPoint)
                 .Scale((window.width / gridDimensions.x), (window.height / gridDimensions.y))
                 .Translate(window.xMin, window.yMin));
        }
Exemple #21
0
 public override Vector2 CalcGridDimensions(IGridSpace <PointyHexPoint> grid)
 {
     return(new Vector2(2 * OuterRadius, 2 * OuterRadius));
 }
Exemple #22
0
 public static IMap <TPoint> AlignMiddelLeft <TPoint>(WindowedMap <TPoint> map, IGridSpace <TPoint> grid)
     where TPoint : IGridPoint <TPoint>
 {
     return(map.AlignMiddleLeft(grid));
 }
Exemple #23
0
 public static IMap <TPoint> AlignMiddelCenter <TPoint>(this WindowedMap <TPoint> map, IGridSpace <TPoint> grid)
     where TPoint : IGridPoint <TPoint>
 {
     return(map.AlignMiddleCenter(grid));
 }
Exemple #24
0
 public override Vector2 CalcBottomLeft(IGridSpace <PointyHexPoint> grid)
 {
     return(Center - new Vector2(OuterRadius, OuterRadius));
 }
Exemple #25
0
        public IMap <TPoint> AlignBottom(IGridSpace <TPoint> grid)
        {
            var anchorPosition = leftMap.CalcBottomLeft(grid);

            return(TranslateY(window.y - anchorPosition.y + leftMap.GetAnchorTranslation().y));
        }
Exemple #26
0
        public IMap <TPoint> AlignLeft(IGridSpace <TPoint> grid)
        {
            var anchorPosition = leftMap.CalcBottomLeft(grid);

            return(TranslateX(window.x - anchorPosition.x + leftMap.GetAnchorTranslation().x));
        }