Exemplo n.º 1
0
        public void CreateTileData()
        {
            Vector3 center  = MapSizeData.center;
            Vector3 extents = MapSizeData.extents;
            Vector3IntEqualityComparer vector3IntEqualityComparer = new Vector3IntEqualityComparer();

            TilesByPosition = new Dictionary <Vector3Int, Tile <T> >(vector3IntEqualityComparer);
            Tiles           = new Tile <T> [TileIndexByPosition.Count];
            float minX = center.x - extents.x;
            float maxX = center.x + extents.x;
            float minZ = center.z - extents.z;
            float maxZ = center.z + extents.z;

            foreach (var kvp in TileIndexByPosition)
            {
                Vector2  normalizedPosition = HexConverter.TileCoordToNormalizedPosition(kvp.Key, minX, maxX, minZ, maxZ);
                Tile <T> tile = new Tile <T>(kvp.Key, kvp.Value, normalizedPosition);
                TilesByPosition.Add(kvp.Key, tile);
                Tiles[tile.Index] = tile;
            }
        }
Exemplo n.º 2
0
        public void CreateCornerData() 
        {
            Vector3 center = MapSizeData.center;
            Vector3 extents = MapSizeData.extents;
            Vector3IntEqualityComparer vector3IntEqualityComparer = new Vector3IntEqualityComparer();

            float minX = center.x - extents.x;
            float maxX = center.x + extents.x;
            float minZ = center.z - extents.z;
            float maxZ = center.z + extents.z;

            CornersByPosition = new Dictionary<Vector3Int, Corner<C>>(vector3IntEqualityComparer);
            Corners = new Corner<C>[CornerIndexByPosition.Count];

            foreach (var kvp in CornerIndexByPosition)
            {
                Vector2 normalizedPosition = HexConverter.CornerCoordToNormalizedPosition(kvp.Key, minX, maxX, minZ, maxZ);
                Corner<C> corner = new Corner<C>(kvp.Key, kvp.Value, normalizedPosition);
                CornersByPosition.Add(kvp.Key, corner);
                Corners[corner.Index] = corner;
            }
        }
Exemplo n.º 3
0
        public void CreateEdgeData()
        {
            Vector3 center  = MapSizeData.center;
            Vector3 extents = MapSizeData.extents;
            Vector3IntEqualityComparer vector3IntEqualityComparer = new Vector3IntEqualityComparer();

            float minX = center.x - extents.x;
            float maxX = center.x + extents.x;
            float minZ = center.z - extents.z;
            float maxZ = center.z + extents.z;

            EdgesByPosition = new Dictionary <Vector3Int, Edge <E> >(vector3IntEqualityComparer);
            Edges           = new Edge <E> [EdgeIndexByPosition.Count];

            foreach (var kvp in EdgeIndexByPosition)
            {
                Vector2  normalizedPosition = HexConverter.TileCoordToNormalizedPosition(kvp.Key, minX, maxX, minZ, maxZ);
                Edge <E> edge = new Edge <E>(kvp.Key, kvp.Value, normalizedPosition);
                EdgesByPosition.Add(kvp.Key, edge);
                Edges[edge.Index] = edge;
            }
        }