Add water physics, river currents, volcanic system with lava & new land
Groundwater aquifer (valley springs): - Per-region subsurface water table recharges from rainfall + lateral seepage from uphill neighbours; valley floors (≥2 higher neighbours) develop springs - GROUND_SPRING_EMERGES places a permanent water source block at the lowest natural terrain point; vanilla fluid physics carries it downhill from there - Active springs feed riverFlowIntensity for erosion even without rain River current physics (real player forces): - Every 4 ticks, players in flowing water receive a velocity push via FluidState.getFlow() — the exact direction Minecraft's own rendering uses - Force scales with fluid level: level 7 (near source) = strong; level 1 = gentle Hydraulic erosion: - HYDRAULIC_EROSION fires whenever flow intensity is significant, rain-independent - Flowing water adjacent to stone/gravel/sand/dirt progressively softens it: stone→gravel→sand→air; river valleys widen over time Volcano lifecycle (DORMANT→BUILDING→ERUPTING→COOLING→FERTILE→DORMANT): - High-elevation regions (avg surface Y ≥ 85) registered as potentially volcanic - LAVA_FLOW places source blocks at summit; vanilla physics flows them downhill - ASH_DEPOSIT covers surrounding terrain with tuff/gravel; kills surface plants; ash clouds spread to adjacent regions with air pollution spike - COBBLESTONE_FORMS solidifies lava: lava+water→cobblestone, lava+air→basalt — creates permanent new terrain that did not exist before the eruption - FERTILE phase: soil fertility +30, contamination −20, rapid pollution decay - Volcanic ambience: fire crackling during eruption, deep rumble while building New commands: /lw events (active climate events), /lw volcanoes (lifecycle states) New ClimateEventType: VOLCANIC_ERUPTION New WorldEffectTypes: GROUND_SPRING_EMERGES, HYDRAULIC_EROSION, LAVA_FLOW, ASH_DEPOSIT, COBBLESTONE_FORMS Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -53,6 +53,11 @@ All effects are real block changes players can see:
|
||||
| Wildfire | Drought > 70, thunder > 0.5 | Fire placed on surface vegetation |
|
||||
| Water pools form | Rain + barren/sparse terrain | Water source blocks in surface depressions |
|
||||
| **River carve** | High accumulated water runoff | Water channels carved through natural terrain; gradually deepens |
|
||||
| **Ground spring** | Saturated aquifer in valley floor | Permanent water source placed; river flows downhill naturally |
|
||||
| **Hydraulic erosion** | Flowing water adjacent to rock | Stone → gravel → sand → air; valley walls slowly widen |
|
||||
| **Lava flow** | Volcanic eruption | Lava source blocks placed at summit; flows and reshapes terrain |
|
||||
| **Ash deposit** | Active eruption or nearby blast | Grass → tuff, soil → gravel; surface plants killed over wide area |
|
||||
| **Cobblestone forms** | Lava cooling | Lava + water → cobblestone; lava in air → basalt; new permanent land |
|
||||
| Pollution particles | Pollution > 10 | Smoke particles in degraded regions |
|
||||
|
||||
### Player Feedback — **Complete**
|
||||
@@ -126,13 +131,48 @@ Automatically triggered when regional conditions reach critical thresholds. All
|
||||
- Visible in the compass HUD next to the region coordinates
|
||||
- Full trend detail in `/lw atmosphere`
|
||||
|
||||
### River Erosion — **Complete**
|
||||
### Groundwater & Springs — **Complete**
|
||||
|
||||
- Every region tracks a subsurface aquifer level that recharges slowly from rainfall
|
||||
- Underground seepage: high-elevation neighbours drain laterally into the aquifer of lower regions (water flows underground even between sim cycles)
|
||||
- When the aquifer is saturated in a **valley floor** (≥2 higher neighbours), a `GROUND_SPRING_EMERGES` effect fires — a water source block is placed at the lowest natural terrain point
|
||||
- The spring flows downhill under Minecraft's own fluid physics, forming a permanent river without further simulation involvement
|
||||
- Active springs contribute to river erosion intensity even without rain
|
||||
|
||||
### River Erosion & Hydraulic Erosion — **Complete**
|
||||
|
||||
- Accumulated water runoff intensity tracked per region (flow from higher → lower elevation)
|
||||
- When flow intensity crosses the threshold (80 units), a `RIVER_CARVE` world effect fires
|
||||
- Block effect: water source placed on natural terrain (sand/dirt/gravel/grass); at high intensity the block below is also removed, deepening the channel
|
||||
- Block effect: water source placed on natural terrain; at high intensity the block below is removed (deepening channel)
|
||||
- **Hydraulic erosion** fires independently of rainfall whenever significant flow intensity is present: flowing water (level 1–7) adjacent to soft rock softens it — stone → gravel → sand → air — progressively widening river valleys
|
||||
- Rivers form gradually over many sim cycles — permanent terrain changes
|
||||
|
||||
### River Current Physics — **Complete** (real player forces)
|
||||
|
||||
- Every 4 ticks, all players standing in **flowing** water (level 1–7) receive a directional velocity push
|
||||
- Force direction: `FluidState.getFlow()` — the exact vector Minecraft already computes for its own flow rendering; currents always point the same way the water visually flows
|
||||
- Force magnitude: scales with flow level — level 7 (one block from a spring, fastest) pushes hard; level 1 (distant, slow lowland river) barely nudges
|
||||
- Mountain rivers are genuinely dangerous to wade against; lowland rivers are gentle enough to cross
|
||||
- Boats are naturally carried by vanilla water physics; swimming players and mobs now feel the additional push
|
||||
|
||||
### Volcanic System — **Complete** (new land formation)
|
||||
|
||||
Four-phase lifecycle per high-elevation region (average surface Y ≥ 85):
|
||||
|
||||
| Phase | What Happens |
|
||||
|-------|-------------|
|
||||
| **DORMANT** | Normal state; rare stochastic chance to awaken (~0.2% per check) |
|
||||
| **BUILDING** | Seismic venting — mild pollution spike; player broadcast warns of imminent eruption |
|
||||
| **ERUPTING** | `LAVA_FLOW` places source blocks at the summit; `ASH_DEPOSIT` covers surrounding terrain; ash clouds spread to adjacent regions; vegetation dies in the eruption zone; air pollution spikes; lasts ~40 sim cycles |
|
||||
| **COOLING** | `COBBLESTONE_FORMS` converts lava adjacent to water → cobblestone; lava in air → basalt; permanent new terrain created where none existed before |
|
||||
| **FERTILE** | Volcanic minerals boost soil fertility +30, contamination −20; pollution decays rapidly; succession cap can rise; then returns DORMANT |
|
||||
|
||||
Visible effects:
|
||||
- Lava flows downhill under vanilla physics, permanently reshaping terrain
|
||||
- Ash converts grass → tuff, loose soil → gravel; kills surface plants across a wide area
|
||||
- New cobblestone and basalt islands form where lava met water
|
||||
- Players in active eruption zones hear fire crackle ambience; building-phase rumble in BUILDING regions
|
||||
|
||||
### Tidal Simulation — **Complete** (physical blocks)
|
||||
|
||||
- Two tidal cycles per Minecraft day (24 000 ticks) using a sine wave
|
||||
@@ -210,6 +250,8 @@ All commands require permission level 2.
|
||||
| `/lw simulate <ticks>` | Force N simulation cycles on all active regions |
|
||||
| `/lw stats` | Simulation profiler statistics |
|
||||
| `/lw modules list` | List all registered modules and their enabled state |
|
||||
| `/lw events` | List all active climate events (drought/wildfire/flood/eruption) with epicentre, severity, affected regions |
|
||||
| `/lw volcanoes` | List all tracked volcanic regions and their current lifecycle phase |
|
||||
| `/lw demo degrade` | One-command demo: degrade current region to barren |
|
||||
| `/lw demo recover` | One-command demo: restore current region to mature forest |
|
||||
|
||||
@@ -291,13 +333,16 @@ LivingWorldMod (NeoForge event wiring)
|
||||
applySeasonalEffects() [soil/water/veg seasonal]
|
||||
applyClimateWarmingEffects() [drought pressure from CO₂]
|
||||
applyWaterRunoff() [elevation-based; river erosion]
|
||||
applyGroundwaterAndSprings() [aquifer recharge; valley springs]
|
||||
applyDynamicCapUpdate() [raise/lower succession ceiling]
|
||||
applySeedDispersal() [corridor-boosted recolonisation]
|
||||
recordHealthTrend() [↑↓→ trend tracking]
|
||||
applyClimateEvents() [drought/wildfire/flood events]
|
||||
applyVolcanicActivity() [volcano lifecycle; lava/ash/new land]
|
||||
|
||||
LivingWorldMod platform hooks:
|
||||
updateTidalEffects() [block-level tidal simulation]
|
||||
applyRiverCurrents() [player/entity velocity in flowing water]
|
||||
initializeRegionFromBiome() [biome-aware starting values]
|
||||
checkPlayerRegions() [HUD, effects, ambient sounds]
|
||||
scanAndRecordFurnaceActivity() [pollution from lit furnaces]
|
||||
@@ -320,7 +365,8 @@ Requires NeoForge 21.1.172 / Minecraft 1.21.1.
|
||||
## Planned / In Progress
|
||||
|
||||
- Full worldgen integration (custom biome distribution, terrain shaping beyond post-load modification)
|
||||
- `/lw events` command to list active climate events and their affected regions
|
||||
- Persistence for river flow intensity and accumulated seed rain across restarts
|
||||
- Persistence for river flow intensity, groundwater level, and volcanic state across restarts
|
||||
- Multiplayer region ownership / notification system
|
||||
- More succession stages (wetland, alpine, volcanic)
|
||||
- More succession stages (wetland, alpine, volcanic basalt plain)
|
||||
- Snowmelt rivers: winter snow accumulation releases as meltwater in spring
|
||||
- Player damage in active eruption zones (lava proximity heat)
|
||||
|
||||
Reference in New Issue
Block a user