private void SetupRainfallNoise() { float freqMultiplier = WorldGenStep_Terrain.FreqMultiplier; ModuleBase input = new Perlin(0.014999999664723873 * freqMultiplier, 2.0, 0.5, 6, Rand.Range(0, 2147483647), QualityMode.High); input = new ScaleBias(0.5, 0.5, input); NoiseDebugUI.StorePlanetNoise(input, "basePerlin"); SimpleCurve simpleCurve = new SimpleCurve(); simpleCurve.Add(0f, 1.12f, true); simpleCurve.Add(25f, 0.94f, true); simpleCurve.Add(45f, 0.7f, true); simpleCurve.Add(70f, 0.3f, true); simpleCurve.Add(80f, 0.05f, true); simpleCurve.Add(90f, 0.05f, true); ModuleBase moduleBase = new AbsLatitudeCurve(simpleCurve, 100f); NoiseDebugUI.StorePlanetNoise(moduleBase, "latCurve"); this.noiseRainfall = new Multiply(input, moduleBase); float num = 0.000222222225f; float num2 = (float)(-500.0 * num); ModuleBase input2 = new ScaleBias((double)num, (double)num2, this.noiseElevation); input2 = new ScaleBias(-1.0, 1.0, input2); input2 = new Clamp(0.0, 1.0, input2); NoiseDebugUI.StorePlanetNoise(input2, "elevationRainfallEffect"); this.noiseRainfall = new Multiply(this.noiseRainfall, input2); Func <double, double> processor = delegate(double val) { if (val < 0.0) { val = 0.0; } if (val < 0.12) { val = (val + 0.12) / 2.0; if (val < 0.03) { val = (val + 0.03) / 2.0; } } return(val); }; this.noiseRainfall = new Arbitrary(this.noiseRainfall, processor); this.noiseRainfall = new Power(this.noiseRainfall, new Const(1.5)); this.noiseRainfall = new Clamp(0.0, 999.0, this.noiseRainfall); NoiseDebugUI.StorePlanetNoise(this.noiseRainfall, "noiseRainfall before mm"); this.noiseRainfall = new ScaleBias(4000.0, 0.0, this.noiseRainfall); SimpleCurve rainfallCurve = Find.World.info.overallRainfall.GetRainfallCurve(); if (rainfallCurve != null) { this.noiseRainfall = new CurveSimple(this.noiseRainfall, rainfallCurve); } }
private void SetupRainfallNoise() { float freqMultiplier = FreqMultiplier; ModuleBase input = new Perlin(0.015f * freqMultiplier, 2.0, 0.5, 6, Rand.Range(0, int.MaxValue), QualityMode.High); input = new ScaleBias(0.5, 0.5, input); ModuleBase moduleBase = new AbsLatitudeCurve(SimpleCurveRainfall, 100f); noiseRainfall = new Multiply(input, moduleBase); float num = 0.000222222225f; float num2 = -500f * num; ModuleBase input2 = new ScaleBias(num, num2, noiseElevation); input2 = new ScaleBias(-1.0, 1.0, input2); input2 = new Clamp(0.0, 1.0, input2); noiseRainfall = new Multiply(noiseRainfall, input2); Func <double, double> processor = delegate(double val) { if (val < 0.0) { val = 0.0; } if (val < 0.12) { val = (val + 0.12) / 2.0; if (val < 0.03) { val = (val + 0.03) / 2.0; } } return(val); }; noiseRainfall = new Arbitrary(noiseRainfall, processor); noiseRainfall = new Power(noiseRainfall, new Const(1.5)); noiseRainfall = new Clamp(0.0, 999.0, noiseRainfall); noiseRainfall = new ScaleBias(4000.0, 0.0, noiseRainfall); SimpleCurve rainfallCurve = Find.World.info.overallRainfall.GetRainfallCurve(); if (rainfallCurve != null) { noiseRainfall = new CurveSimple(noiseRainfall, rainfallCurve); } }
private void SetupRainfallNoise() { float freqMultiplier = FreqMultiplier; ModuleBase input = new Perlin(0.015f * freqMultiplier, 2.0, 0.5, 6, Rand.Range(0, int.MaxValue), QualityMode.High); input = new ScaleBias(0.5, 0.5, input); NoiseDebugUI.StorePlanetNoise(input, "basePerlin"); ModuleBase moduleBase = new AbsLatitudeCurve(new SimpleCurve { { 0f, 1.12f }, { 25f, 0.94f }, { 45f, 0.7f }, { 70f, 0.3f }, { 80f, 0.05f }, { 90f, 0.05f } }, 100f); NoiseDebugUI.StorePlanetNoise(moduleBase, "latCurve"); noiseRainfall = new Multiply(input, moduleBase); float num = 0.000222222225f; float num2 = -500f * num; ModuleBase input2 = new ScaleBias(num, num2, noiseElevation); input2 = new ScaleBias(-1.0, 1.0, input2); input2 = new Clamp(0.0, 1.0, input2); NoiseDebugUI.StorePlanetNoise(input2, "elevationRainfallEffect"); noiseRainfall = new Multiply(noiseRainfall, input2); Func <double, double> processor = delegate(double val) { if (val < 0.0) { val = 0.0; } if (val < 0.12) { val = (val + 0.12) / 2.0; if (val < 0.03) { val = (val + 0.03) / 2.0; } } return(val); }; noiseRainfall = new Arbitrary(noiseRainfall, processor); noiseRainfall = new Power(noiseRainfall, new Const(1.5)); noiseRainfall = new Clamp(0.0, 999.0, noiseRainfall); NoiseDebugUI.StorePlanetNoise(noiseRainfall, "noiseRainfall before mm"); noiseRainfall = new ScaleBias(4000.0, 0.0, noiseRainfall); SimpleCurve rainfallCurve = Find.World.info.overallRainfall.GetRainfallCurve(); if (rainfallCurve != null) { noiseRainfall = new CurveSimple(noiseRainfall, rainfallCurve); } }