Example #1
0
    public static Vector3 ConvertToWorldCoords(AxialCoords localCoords)
    {
        float x = (localCoords.X + localCoords.Z * 0.5f - localCoords.Z / 2) * (HexDimensions.InnerRadius * 2f);
        float z = localCoords.Z * (HexDimensions.OuterRadius * 1.5f);

        return(new Vector3(x, 0f, z));
    }
Example #2
0
    private void GenerateMap(HexMap.Data data)
    {
        Vector3 coords    = data.Origin;
        float   rowOffset = HexDimensions.InnerRadius + HexDimensions.BridgeWidth;

        for (int row = 0; row < data.Rows; row++)
        {
            for (int col = 0; col < data.Columns; col++)
            {
                //AxialCoords hexCoords = new AxialCoords(col-row/2, row);
                AxialCoords hexCoords = AxialCoords.ConvertToAxialCoords(row, col);
                HexCell     cell      = new HexCell(hexCoords, this.GetElevation(coords));
                this.MapData.Cells.Add(coords, cell);

                coords = new Vector3(
                    coords.x + HexDimensions.HorizontalSpacing + HexDimensions.BridgeWidth,
                    coords.y,
                    coords.z
                    );
            }

            coords = new Vector3(
                //(row + 1) * rowOffset,
                (row + 1) % 2 == 0 ? data.Origin.x : rowOffset + data.Origin.x,
                coords.y,
                coords.z + HexDimensions.VerticalSpacing + HexDimensions.BridgeWidth

                );
        }
    }
Example #3
0
 public static Vector3 ConvertToCubeCoords(AxialCoords axialCoords)
 {
     return(new Vector3(
                axialCoords.X,
                axialCoords.Y,
                axialCoords.Z
                ));
 }
Example #4
0
        private static OffsetCoords ConvertAxialToOffset(AxialCoords axialCoords)
        {
            var q = axialCoords.Q;
            var r = axialCoords.R;

            var x = q + (r / 2);
            var y = r;

            return(new OffsetCoords(x, y));
        }
Example #5
0
 public AxialCoords GetNeighborLocalPosition(Vector3 neighborCoords)
 {
     return(this.Coords + AxialCoords.ConvertToAxialCoords(neighborCoords));
 }
Example #6
0
    public Vector3 GetNeighborWorldPosition(Vector3 neighborCoords)
    {
        AxialCoords localPosition = this.Coords + AxialCoords.ConvertToAxialCoords(neighborCoords);

        return(AxialCoords.ConvertToWorldCoords(localPosition + AxialCoords.ConvertToAxialCoords(neighborCoords)));
    }
Example #7
0
 public HexCell(AxialCoords coords, int elevation)
 {
     this.Coords    = coords;
     this.Elevation = elevation;
 }