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; } }
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; } }
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; } }