Пример #1
0
        protected override void InitGrid()
        {
            VectorPoint rectDimensions = Dimensions;

            switch (shape)
            {
            case Shape.Rectangle:
                base.Grid = FlatHexGrid <TileCell> .Rectangle(rectDimensions.X, rectDimensions.Y);

                break;

            case Shape.Parallelogram:
                base.Grid = FlatHexGrid <TileCell> .Parallelogram(rectDimensions.X, rectDimensions.Y);

                break;

            case Shape.FatRectangle:
                base.Grid = FlatHexGrid <TileCell> .FatRectangle(rectDimensions.X, rectDimensions.Y);

                break;

            case Shape.ThinRectangle:
                base.Grid = FlatHexGrid <TileCell> .ThinRectangle(rectDimensions.X, rectDimensions.Y);

                break;

            case Shape.Hexagon:
                base.Grid = FlatHexGrid <TileCell> .Hexagon(Size);

                break;

            case Shape.LeftTriangle:
                base.Grid = FlatHexGrid <TileCell> .LeftTriangle(Size);

                break;

            case Shape.RightTriangle:
                base.Grid = FlatHexGrid <TileCell> .RightTriangle(Size);

                break;

            case Shape.Diamond:
                base.Grid = FlatHexGrid <TileCell> .Diamond(Size);

                break;

            case Shape.Single:
                base.Grid = FlatHexGrid <TileCell> .Single();

                break;

            case Shape.Custom:
                var shapeBuilder = GetComponent <CustomGridBuilder>();
                base.Grid = shapeBuilder.MakeGrid <TileCell, FlatHexPoint>();
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
Пример #2
0
        private static PointyHexPoint StraightRectPointToSkewRectPoint(VectorPoint straight)
        {
            int y = 2 * straight.Y;
            int x = straight.X - straight.Y;

            return(new PointyHexPoint(x, y));
        }
Пример #3
0
        protected override void InitGrid()
        {
            VectorPoint rectDimensions = Dimensions;

            switch (shape)
            {
            case Shape.Rectangle:
                base.Grid = PointyHexGrid <TileCell> .Rectangle(rectDimensions.X, rectDimensions.Y);

                break;

            case Shape.Parallelogram:
                base.Grid = PointyHexGrid <TileCell> .Parallelogram(rectDimensions.X, rectDimensions.Y);

                break;

            case Shape.FatRectangle:
                base.Grid = PointyHexGrid <TileCell> .FatRectangle(rectDimensions.X, rectDimensions.Y);

                break;

            case Shape.ThinRectangle:
                base.Grid = PointyHexGrid <TileCell> .ThinRectangle(rectDimensions.X, rectDimensions.Y);

                break;

            case Shape.Hexagon:
                base.Grid = PointyHexGrid <TileCell> .Hexagon(Size);

                break;

            case Shape.UpTriangle:
                base.Grid = PointyHexGrid <TileCell> .UpTriangle(Size);

                break;

            case Shape.DownTriangle:
                base.Grid = PointyHexGrid <TileCell> .DownTriangle(Size);

                break;

            case Shape.Diamond:
                base.Grid = PointyHexGrid <TileCell> .Diamond(Size);

                break;

            case Shape.Single:
                base.Grid = PointyHexGrid <TileCell> .Single();

                break;

            case Shape.Custom:
                base.Grid = GetCustomGrid();
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
Пример #4
0
 public PolarPointyBrickMap(Vector2 center, float innerRadius, float outerRadius, VectorPoint sectorsAndBands)
     : base(Vector2.one)
 {
     Center          = center;
     InnerRadius     = innerRadius;
     OuterRadius     = outerRadius;
     SectorsAndBands = sectorsAndBands;
     sectorAngleRad  = (2f * Mathf.PI) / SectorsAndBands.X;
     SectorAngle     = 360f / SectorsAndBands.X;
 }
Пример #5
0
        protected override void InitGrid()
        {
            VectorPoint rectDimensions = Dimensions;

            switch (shape)
            {
            case Shape.Rectangle:
                base.Grid = RectGrid <MeshCell> .Rectangle(rectDimensions.X, rectDimensions.Y);

                break;

            case Shape.Parallelogram:
                base.Grid = RectGrid <MeshCell> .Parallelogram(rectDimensions.X, rectDimensions.Y);

                break;

            case Shape.CheckerBoard:
                base.Grid = RectGrid <MeshCell> .CheckerBoard(rectDimensions.X, rectDimensions.Y);

                break;

            case Shape.Circle:
                base.Grid = RectGrid <MeshCell> .BeginShape().Circle(size).EndShape();

                break;

            case Shape.Custom:
                base.Grid = GetCustomGrid();
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            switch (neighborSetup)
            {
            case RectNeighborType.Main:
                ((RectGrid <MeshCell>)base.Grid).SetNeighborsMain();
                break;

            case RectNeighborType.Diagonals:
                ((RectGrid <MeshCell>)base.Grid).SetNeighborsDiagonals();
                break;

            case RectNeighborType.MainAndDiagonals:
                ((RectGrid <MeshCell>)base.Grid).SetNeighborsMainAndDiagonals();
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
Пример #6
0
        protected override void InitGrid()
        {
            VectorPoint rectDimensions = Dimensions;

            switch (shape)
            {
            case Shape.Rectangle:
                base.Grid = FlatTriGrid <TileCell> .Rectangle(rectDimensions.X, rectDimensions.Y);

                break;

            case Shape.Parallelogram:
                base.Grid = FlatTriGrid <TileCell> .ParallelogramXY(rectDimensions.X, rectDimensions.Y);

                break;

            case Shape.UpTriangle:
                base.Grid = FlatTriGrid <TileCell> .UpTriangle(size);

                break;

            case Shape.DownTriangle:
                base.Grid = FlatTriGrid <TileCell> .DownTriangle(size);

                break;

            case Shape.Hexagon:
                base.Grid = FlatTriGrid <TileCell> .Hexagon(size);

                break;

            case Shape.Star:
                base.Grid = FlatTriGrid <TileCell> .Star(size);

                break;

            case Shape.Single:
                base.Grid = FlatTriGrid <TileCell> .Single();

                break;

            case Shape.SingleGroup:
                base.Grid = FlatTriGrid <TileCell> .SingleGroup();

                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
Пример #7
0
        protected override void InitGrid()
        {
            VectorPoint rectDimensions = Dimensions;

            switch (shape)
            {
            case Shape.Rectangle:
                base.Grid = DiamondGrid <TileCell> .Rectangle(rectDimensions.X, rectDimensions.Y);

                break;

            case Shape.Parallelogram:
                base.Grid = DiamondGrid <TileCell> .Parallelogram(rectDimensions.X, rectDimensions.Y);

                break;

            case Shape.FatRectangle:
                base.Grid = DiamondGrid <TileCell> .FatRectangle(rectDimensions.X, rectDimensions.Y);

                break;

            case Shape.ThinRectangle:
                base.Grid = DiamondGrid <TileCell> .ThinRectangle(rectDimensions.X, rectDimensions.Y);

                break;

            case Shape.Diamond:
                base.Grid = DiamondGrid <TileCell> .Diamond(Size);

                break;

            case Shape.Single:
                base.Grid = DiamondGrid <TileCell> .Single();

                break;

            case Shape.Custom:
                var shapeBuilder = GetComponent <CustomGridBuilder>();
                base.Grid = shapeBuilder.MakeGrid <TileCell, DiamondPoint>();
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            switch (neighborSetup)
            {
            case RectNeighborType.Main:
                ((DiamondGrid <TileCell>)base.Grid).SetNeighborsMain();
                break;

            case RectNeighborType.Diagonals:
                ((DiamondGrid <TileCell>)base.Grid).SetNeighborsDiagonals();
                break;

            case RectNeighborType.MainAndDiagonals:
                ((DiamondGrid <TileCell>)base.Grid).SetNeighborsMainAndDiagonals();
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
Пример #8
0
        protected override void InitGrid()
        {
            VectorPoint rectDimensions = Dimensions;

            switch (shape)
            {
            case Shape.Rectangle:
                base.Grid = PointyTriGrid <TileCell> .Rectangle(rectDimensions.X, rectDimensions.Y);

                break;

            case Shape.Parallelogram:
                base.Grid = PointyTriGrid <TileCell> .ParallelogramXY(rectDimensions.X, rectDimensions.Y);

                break;

            case Shape.ThinRectangle:
                base.Grid = PointyTriGrid <TileCell> .ThinRectangle(rectDimensions.X, rectDimensions.Y);

                break;

            case Shape.FatRectangle:
                base.Grid = PointyTriGrid <TileCell> .FatRectangle(rectDimensions.X, rectDimensions.Y);

                break;

            case Shape.LeftTriangle:
                base.Grid = PointyTriGrid <TileCell> .LeftTriangle(size);

                break;

            case Shape.RightTriangle:
                base.Grid = PointyTriGrid <TileCell> .RightTriangle(size);

                break;

            case Shape.Hexagon:
                base.Grid = PointyTriGrid <TileCell> .Hexagon(size);

                break;

            case Shape.Star:
                base.Grid = PointyTriGrid <TileCell> .Star(size);

                break;

            case Shape.Single:
                base.Grid = PointyTriGrid <TileCell> .Single();

                break;

            case Shape.SingleGroup:
                base.Grid = PointyTriGrid <TileCell> .SingleGroup();

                break;

            case Shape.Custom:
                base.Grid = GetCustomGrid();
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
Пример #9
0
 public InspectableVectorPoint(VectorPoint point)
 {
     x = point.X;
     y = point.Y;
 }
Пример #10
0
 public static Vector2 HadamardDiv(this Vector2 thisVector, VectorPoint otherVector)
 {
     return(new Vector2(thisVector.x / otherVector.X, thisVector.y / otherVector.Y));
 }
Пример #11
0
 public static Vector2 HadamardMul(this Vector2 thisVector, VectorPoint otherVector)
 {
     return(new Vector2(thisVector.x * otherVector.X, thisVector.y * otherVector.Y));
 }
Пример #12
0
 /// <summary>
 /// Constructs a new DiamondPoint with the same coordinates as the given VectorPoint.
 /// </summary>
 private DiamondPoint(VectorPoint vector)
 {
     x = vector.X;
     y = vector.Y;
 }
Пример #13
0
 /// <summary>
 /// Constructs a new FlatHexPoint with the same coordinates as the given VectorPoint.
 /// </summary>
 private FlatHexPoint(VectorPoint vector)
 {
     x = vector.X;
     y = vector.Y;
 }
Пример #14
0
 /// <summary>
 /// Constructs a new PointyHexPoint with the same coordinates as the given VectorPoint.
 /// </summary>
 private PointyHexPoint(VectorPoint vector)
 {
     x = vector.X;
     y = vector.Y;
 }
Пример #15
0
 /// <summary>
 /// Constructs a new RectPoint with the same coordinates as the given VectorPoint.
 /// </summary>
 private RectPoint(VectorPoint vector)
 {
     x = vector.X;
     y = vector.Y;
 }