Example #1
0
        public Chunk.Data Generate(Vector2DInt inPosition)
        {
            Chunk.Data newChunkData = new Chunk.Data();

            newChunkData.SetTiles(_tileMapGenerator.Generate(inPosition, _noiseGenerator.Generate(inPosition)).tiles);

            return(newChunkData);
        }
Example #2
0
            public Output Generate(Chunk.Data inChunkData)
            {
                Output newOutput = new Output(_vertices, _triangles);

                newOutput.uv2 = GenerateUV2(inChunkData);

                return(newOutput);
            }
Example #3
0
    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);
    }
Example #4
0
    // 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);
    }
Example #5
0
        // 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);
        }
Example #6
0
        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);
        }
Example #7
0
        // 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);
        }
Example #8
0
            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);
            }
Example #9
0
 public void RegenerateChunkView(Chunk.Data inChunkData, Chunk.View inChunkView)
 {
     _chunkViewGenerator.RegenerateChunkUV2(inChunkData, inChunkView);
 }
Example #10
0
 public void RegenerateChunkUV2(Chunk.Data inChunkData, Chunk.View inChunkView)
 {
     inChunkView.mesh.uv2 = _meshGenerator.GenerateUV2(inChunkData);
 }