public static void AddCube(List <Vector3> vertices, List <int> triangles, List <Vector2> uvs, Position3D tileMapIndex) { var tilePositionInChunk = MapPositionUtil.GetPositionInChunk(tileMapIndex); var tilePositionRelativeToChunk = new Vector3(tilePositionInChunk.x * Tile.TileSize.x, tilePositionInChunk.y * Tile.TileSize.y, tilePositionInChunk.z * Tile.TileSize.z); var tile = Map.Instance.GetTile(tileMapIndex); if (Map.Instance.IsTransparent(tileMapIndex.getPositionPlusY(1))) { CubeGenerator.AddSquareFaceYPositive(vertices, triangles, uvs, tilePositionRelativeToChunk, Tile.TileSize, tile.TileType.TextureTileOffset); } if (Map.Instance.IsTransparent(tileMapIndex.getPositionPlusY(-1))) { CubeGenerator.AddSquareFaceYNegative(vertices, triangles, uvs, tilePositionRelativeToChunk, Tile.TileSize, tile.TileType.TextureTileOffset); } if (Map.Instance.IsTransparent(tileMapIndex.getPositionPlusZ(-1))) { CubeGenerator.AddSquareFaceZNegative(vertices, triangles, uvs, tilePositionRelativeToChunk, Tile.TileSize, tile.TileType.TextureTileOffset); } if (Map.Instance.IsTransparent(tileMapIndex.getPositionPlusZ(1))) { CubeGenerator.AddSquareFaceZPositive(vertices, triangles, uvs, tilePositionRelativeToChunk, Tile.TileSize, tile.TileType.TextureTileOffset); } if (Map.Instance.IsTransparent(tileMapIndex.getPositionPlusX(-1))) { CubeGenerator.AddSquareFaceXNegative(vertices, triangles, uvs, tilePositionRelativeToChunk, Tile.TileSize, tile.TileType.TextureTileOffset); } if (Map.Instance.IsTransparent(tileMapIndex.getPositionPlusX(1))) { CubeGenerator.AddSquareFaceXPositive(vertices, triangles, uvs, tilePositionRelativeToChunk, Tile.TileSize, tile.TileType.TextureTileOffset); } }