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