feat: add cold coastal biome variants#642
Conversation
📋 SummaryLinked Issues: Closes #628 Issue Verification: The PR fully implements the requirements of #628 by adding Frozen Ocean, Cold Ocean, Stony Shore, Snowy Beach, and Frozen River biomes with complete registry entries, selector logic, transition rules, surface handling, decorations, and unit tests. This PR adds five cold coastal biome variants to the data-driven biome system. It wires them through the registry, selectors, edge detector, surface builder, overworld generator, and decoration registry. It also adds targeted unit tests for registry identity, selector behavior, and frozen surface placement. The changes are additive, well-scoped, and follow existing codebase patterns. Overall quality is good, with one critical runtime safety issue in the LOD module. 🔴 Critical Issues (Must Fix - Blocks Merge)[CRITICAL] .frozen_ocean => 0x9FCBE0,
.cold_ocean => 0x295C99,
.stony_shore => 0x7A7D78,
.snowy_beach => 0xE5EEF2,
.frozen_river => 0xA8D2E8,
|
| Principle | Score | Notes |
|---|---|---|
| Single Responsibility | 8/10 | Each file handles one aspect (registry, selector, surface, LOD); changes are well-scoped. |
| Open/Closed | 9/10 | New biomes plug into the data-driven registry without modifying core selection algorithms. |
| Liskov Substitution | 9/10 | New biomes follow the same structural patterns as existing ones; no behavior breakage. |
| Interface Segregation | 8/10 | Existing RHI/world interfaces unchanged; biome system uses focused abstractions. |
| Dependency Inversion | 8/10 | Selection depends on registry definitions, not hardcoded logic. |
| Average | 8.4 |
🎯 Final Assessment
Overall Confidence Score: 75%
How to interpret: Minor concerns, mostly ready with some fixes.
Confidence Breakdown:
- Code Quality: 85% (clean, idiomatic Zig; follows existing patterns)
- Completeness: 80% (all major systems wired except LOD colors)
- Risk Level: 40% (additive changes; low regression risk)
- Test Coverage: 75% (good unit tests for registry, selector, surface builder)
Merge Readiness:
- All critical issues resolved
- SOLID average score >= 6.0
- Overall confidence >= 60%
- No security concerns
- Tests present and passing (if applicable)
Verdict:
MERGE WITH FIXES
The missing LOD biome colors are a one-line-per-biome fix that must be added before merge. Once resolved, this PR is ready.
Machine Readable Verdict
{
"reviewed_sha": "8e9c6d9a681e452c588d364637f2ca98b0ec75c4",
"critical_issues": 1,
"high_priority_issues": 0,
"medium_priority_issues": 0,
"overall_confidence_score": 75,
"recommendation": "MERGE WITH FIXES"
}
📋 SummaryLinked Issues: Closes #628 Issue Verification: The PR fully implements the requirements of #628 by adding Frozen Ocean, Cold Ocean, Stony Shore, Snowy Beach, and Frozen River biomes with complete registry entries, selector logic, transition rules, surface handling, decorations, LOD/minimap colors, and unit tests. This PR adds five cold coastal biome variants to the data-driven biome system. It wires them through the registry, selectors, edge detector, surface builder, overworld generator, decoration registry, and LOD color provider. It also adds targeted unit tests for registry identity, selector behavior, and frozen surface placement. The changes are additive, well-scoped, and follow existing codebase patterns. 🔴 Critical Issues (Must Fix - Blocks Merge)✅ All previously reported critical issues have been resolved. The missing LOD biome colors for the five new biomes were added to
|
| Principle | Score | Notes |
|---|---|---|
| Single Responsibility | 9/10 | Each file handles one aspect (registry, selector, surface, LOD); changes are well-scoped. |
| Open/Closed | 9/10 | New biomes plug into the data-driven registry without modifying core selection algorithms. |
| Liskov Substitution | 9/10 | New biomes follow the same structural patterns as existing ones; no behavior breakage. |
| Interface Segregation | 9/10 | Existing RHI/world interfaces unchanged; biome system uses focused abstractions. |
| Dependency Inversion | 8/10 | Selection depends on registry definitions, not hardcoded logic. |
| Average | 8.8 |
🎯 Final Assessment
Overall Confidence Score: 92%
How to interpret: High confidence, ready to merge or with trivial fixes.
Confidence Breakdown:
- Code Quality: 90% (clean, idiomatic Zig; follows existing patterns)
- Completeness: 95% (all major systems wired correctly)
- Risk Level: 15% (additive changes; very low regression risk)
- Test Coverage: 90% (good unit tests for registry, selector, surface builder)
Merge Readiness:
- All critical issues resolved
- SOLID average score >= 6.0
- Overall confidence >= 60%
- No security concerns
- Tests present and passing (if applicable)
Verdict:
MERGE
The previously reported critical LOD color issue has been fixed. All tests pass. The remaining low-priority item is a pre-existing inconsistency identical to the .river pattern. This PR is ready to merge.
Machine Readable Verdict
{
"reviewed_sha": "b58a9a42abbde34d2beb13ca264d77e4d5bcd7ac",
"critical_issues": 0,
"high_priority_issues": 0,
"medium_priority_issues": 0,
"overall_confidence_score": 92,
"recommendation": "MERGE"
}

Summary
Verification
nix develop --command zig fmt src/ modules/nix develop --command zig build testnix develop --command zig build -Doptimize=ReleaseFastRuntime Sanity
nix develop --command zig build run -Dskip-present -Dauto-world=normal -Dstartup-diagnostic-seconds=5timed out after 60s while only showing shader compilation output.nix develop --command zig build run -Dskip-present -Dsmoke-testtimed out after 60s while only showing shader compilation output.Closes #628.