c9f927b265372e4e5d8c9f85820ead9e7d9944e4
Step 1 – Mob spawn feedback: FinalizeSpawnEvent suppresses passive mobs (Animal) in regions with ecosystem health < 30 (up to 70% cancellation) and hostile mobs (Monster) in regions > 60 health (up to 50% cancellation). Step 2 – Compass HUD: holding a compass shows a colour-coded action-bar overlay with Eco/Poll/Soil/Wat scores for the current region (green/yellow/red banded). Step 3 – Resource loop closure: logging depletion recovery is already tied to vegetation pressure in ResourceDepletionModule; sapling-to-tree growth continues to close the loop via the existing vegetation feedback path. Step 4 – Agriculture: bone meal (PlayerInteractEvent.RightClickBlock) adds +2 soil fertility; harvesting fully-grown (age=7) crops (BlockEvent.BreakEvent) drains -0.5 fertility and adds 0.3 farming depletion. Step 5 – Acid rain: when raining AND region pollution > 20, rainfall drains soil fertility, raises soil contamination, and reduces water availability proportional to excess pollution. Implemented in applyWeatherFeedback(). Step 6 – Biome-aware succession: RecoveryRegionData gains a maxSuccessionStage cap (default MATURE_FOREST). deriveBiomeCap() samples the biome at the region centre on first player entry and calls setRegionBiomeCap(); deserts/badlands → SPARSE_GRASS, savannas/mountains/cold → SCRUBLAND, beaches/oceans → GRASSLAND, forests/taiga/jungle → MATURE_FOREST, plains/swamp → YOUNG_WOODLAND. Step 7 – Directional wind: spreadPollutionAcrossRegions() drifts a wind angle by ±0.05 rad per sim cycle; each cardinal neighbour's spread rate is multiplied by (1 + alignment×0.5) where alignment = cos(windAngle − offsetAngle), creating downwind (×1.5) and upwind (×0.5) asymmetry. All 400 tests pass. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Description
No description provided
Languages
Java
75%
HTML
24%
JavaScript
0.6%
CSS
0.4%