internal override void SetStratum(CoordinateInfo coordinateInfo) { float noiseValue2D = PerlinNoise.PerlinNoise2D(Map.Seed - 1, coordinateInfo.position.x * 0.03f, coordinateInfo.position.y * 0.03f); noiseValue2D = (noiseValue2D + 0.8f) * 0.5f; int coverCount = (int)(noiseValue2D * Chunk.HalfHeight * 0.5f); for (int y = 2 * Chunk.HalfHeight - 1; y > -1; y--) { float density = GetDensity(coordinateInfo, y); if (density > 0) { if (coverCount > 0) { coordinateInfo.SetBlock(y, Snow.blockName); coverCount--; } else { coordinateInfo.SetBlock(y, Stone.blockName); } } else { SetWater(coordinateInfo, y); } } }
protected void SetWater(CoordinateInfo coordinateInfo, int y) { if (y < Map.SeaLevel) { if (coordinateInfo.GetTemperature(y) < 0) { coordinateInfo.SetBlock(y, Ice.blockName); } else { coordinateInfo.SetBlock(y, Water.blockName); } } }