feat(core): add cave-generation and fog tuning to Configuration

This commit is contained in:
2026-06-01 15:14:22 +02:00
parent d1c8c22705
commit 8166c25ba6
2 changed files with 34 additions and 0 deletions

View File

@@ -23,4 +23,18 @@ public sealed class Configuration
public int WindowHeight { get; set; } = 720;
public int? Seed { get; set; } = null;
// -- Cave generation tuning --
public float CaveNoiseFrequency { get; set; } = 0.03f;
public float CaveNoiseThreshold { get; set; } = -0.3f;
public int WormCellSize { get; set; } = 64;
public int WormSpawnProbabilityPermille { get; set; } = 300;
public int WormMaxLength { get; set; } = 80;
public float WormMinRadius { get; set; } = 1.5f;
public float WormMaxRadius { get; set; } = 3.5f;
// -- Cave lighting (fog-distance darkness) --
public float CaveDarkStartY { get; set; } = 72f; // WorldConstants.SeaLevel + 8
public float CaveDarkEndY { get; set; } = 32f; // WorldConstants.SeaLevel - 32
public float CaveMinBrightness { get; set; } = 0.15f;
}

View File

@@ -54,4 +54,24 @@ public class ConfigurationTests
Assert.Equal(800, c2.WindowWidth);
Assert.Equal(600, c2.WindowHeight);
}
[Fact]
public void Defaults_HaveCaveTuningConstants()
{
var c = new Configuration();
// Algorithm
Assert.Equal(0.03f, c.CaveNoiseFrequency);
Assert.Equal(-0.3f, c.CaveNoiseThreshold);
Assert.Equal(64, c.WormCellSize);
Assert.Equal(300, c.WormSpawnProbabilityPermille);
Assert.Equal(80, c.WormMaxLength);
Assert.Equal(1.5f, c.WormMinRadius);
Assert.Equal(3.5f, c.WormMaxRadius);
// Lighting (fog)
Assert.Equal(72f, c.CaveDarkStartY); // SeaLevel (64) + 8
Assert.Equal(32f, c.CaveDarkEndY); // SeaLevel (64) - 32
Assert.Equal(0.15f, c.CaveMinBrightness);
}
}