public Chunk.Data Generate(Vector2DInt inPosition) { Chunk.Data newChunkData = new Chunk.Data(); newChunkData.SetTiles(_tileMapGenerator.Generate(inPosition, _noiseGenerator.Generate(inPosition)).tiles); return(newChunkData); }
public Output Generate(Chunk.Data inChunkData) { Output newOutput = new Output(_vertices, _triangles); newOutput.uv2 = GenerateUV2(inChunkData); return(newOutput); }
public Chunk GenerateChunk(Vector2DInt inPosition) { Chunk.Data chunkData = _dataGenerator.Generate(inPosition); GameObject chunkView = _viewGenerator.Generate(inPosition, chunkData); Chunk newChunk = new Chunk(inPosition, chunkData, chunkView); return(newChunk); }
// External public Chunk GenerateChunk(Vector2DI inChunkPos) { Chunk.Data newChunkData = _chunkDataGenerator.Generate(inChunkPos); Chunk.View newChunkView = _chunkViewGenerator.Generate(inChunkPos, newChunkData); Chunk newChunk = new Chunk(newChunkData, newChunkView, _world); return(newChunk); }
// Exposed public Chunk.Data Generate(Vector2DI inChunkPos) { Chunk.Data newChunkData = new Chunk.Data(inChunkPos); NoiseGenerator.Output chunkNoiseData = _noiseGenerator.Generate(inChunkPos); TileMapGenerator.Output chunkTileMapData = _tileMapGenerator.Generate(inChunkPos, chunkNoiseData); newChunkData.SetTiles(chunkTileMapData.tiles); return(newChunkData); }
public GameObject Generate(Vector2DInt inPosition, Chunk.Data inChunkData) { GameObject newChunkView = new GameObject("Chunk"); MeshFilter meshFilter = newChunkView.AddComponent <MeshFilter>(); MeshRenderer meshRenderer = newChunkView.AddComponent <MeshRenderer>(); meshRenderer.material = _chunkMaterial; newChunkView.transform.position = new Vector3(inPosition.x, 0, inPosition.y) * Constants.TerrainGeneration.CHUNK_SIZE; MeshGenerator.Output meshData = _meshGenerator.Generate(inChunkData); ApplyMesh(meshFilter, meshData); return(newChunkView); }
// External public Chunk.View Generate(Vector2DI inPosition, Chunk.Data inChunkData) { GameObject newChunkGO = new GameObject("Chunk"); MeshFilter meshFilter = newChunkGO.AddComponent <MeshFilter>(); MeshRenderer meshRenderer = newChunkGO.AddComponent <MeshRenderer>(); meshRenderer.material = _chunkMaterial; newChunkGO.transform.position = new Vector3(inPosition.x, 0, inPosition.y); MeshGenerator.Output meshData = _meshGenerator.Generate(inChunkData); ApplyMesh(meshFilter, meshData); Chunk.View newChunkView = new Chunk.View(newChunkGO); return(newChunkView); }
Vector2[] GenerateUV2(Chunk.Data inChunkData) { Vector2[] newUV2s = new Vector2[_vertexCount]; int vertexID = 0; for (int y = 0; y < _chunkSize; y++) { for (int x = 0; x < _chunkSize; x++) { int tileTextureID = inChunkData.GetTile(new Vector2DInt(x, y)).terrain.data.textureID; newUV2s[vertexID + 0] = new Vector2(tileTextureID, tileTextureID); newUV2s[vertexID + 1] = new Vector2(tileTextureID, tileTextureID); newUV2s[vertexID + _vertexSize + 0] = new Vector2(tileTextureID, tileTextureID); newUV2s[vertexID + _vertexSize + 1] = new Vector2(tileTextureID, tileTextureID); vertexID += 2; } vertexID += _vertexSize; } return(newUV2s); }
public void RegenerateChunkView(Chunk.Data inChunkData, Chunk.View inChunkView) { _chunkViewGenerator.RegenerateChunkUV2(inChunkData, inChunkView); }
public void RegenerateChunkUV2(Chunk.Data inChunkData, Chunk.View inChunkView) { inChunkView.mesh.uv2 = _meshGenerator.GenerateUV2(inChunkData); }