コード例 #1
0
        private void SingleLayerCalculationStart(BaseLayer layer)
        {
            switch (layer.LayerType)
            {
            // Elevation Layers
            case Layer.Height:
                HeightLayer heightLayer = layer as HeightLayer;
                heightLayer.StartHeight(TerrainSize, TerrainHeights);
                break;

            case Layer.Slope:
                SlopeLayer slopeLayer = layer as SlopeLayer;
                slopeLayer.StartSlope(TerrainSize, TerrainHeights);
                break;

            case Layer.Island:
                IslandLayer islandLayer = layer as IslandLayer;
                islandLayer.StartIsland(TerrainSize, TerrainHeights);
                break;

            case Layer.OpenSimplex:
                OpenSimplexNoiseLayer OSNLayer = layer as OpenSimplexNoiseLayer;
                OSNLayer.StartOpenSimplexNoise(TerrainSize, TerrainHeights);
                break;

            case Layer.CellNoise:
                CellNoiseLayer CellNoiseLayer = layer as CellNoiseLayer;
                CellNoiseLayer.StartCellNoise(TerrainSize, TerrainHeights);
                break;

            // Erosion Layers
            case Layer.Hydraulic:
                HydraulicErosionLayer hydraulicErosionLayer = layer as HydraulicErosionLayer;
                hydraulicErosionLayer.StartErosion(TerrainSize, TerrainHeights);
                break;

            // Colorization Layers
            case Layer.DetailColorization:
                DetailColorizationLayer detailColorizationLayer = layer as DetailColorizationLayer;
                detailColorizationLayer.StartColorization(TerrainSize, TerrainHeights);
                break;

            case Layer.HeightColorization:
                HeightColorizationLayer heightColorizationLayer = layer as HeightColorizationLayer;
                heightColorizationLayer.StartColorization(TerrainSize, TerrainHeights, PreviousTerrainColors);
                break;
            }
        }