seasons 🔗
Smooth biome-driven seasons for VoxeLibre/Luanti.
Status 🔗
Prototype: seasonal foliage, spring flowers, and weather snow-bias hooks are active.
Current Features 🔗
- 20-day year by default (configurable).
- Biome-driven continuous state:
thermalmoisturedthermal_dt
- Oak leaves only (
mcl_core:leaves) with variant nodes:seasons:oak_leaves_springmcl_core:leaves(summer)seasons:oak_leaves_fall_redseasons:oak_leaves_fall_yellowseasons:oak_leaves_winter
- Grass block (
mcl_core:dirt_with_grass) with variant nodes:seasons:dirt_with_grass_springmcl_core:dirt_with_grass(summer/fall)seasons:dirt_with_grass_winter
- Epoch-based updates for slow seasonal progression (configurable days per epoch).
- LBM on block load updates leaves only when their stored epoch is stale.
- Periodic player-proximate leaf/grass updates run continuously with budgeted batches.
- Leaf background sweeper gradually catches up loaded far-away areas.
- Spring flower controller (temperate biomes only):
- spawns in spring, thins in summer, drops near zero in fall
- excludes Nether/End and beach/ocean biome variants
- only manages flowers placed by this mod
- Flower dormancy controller (non-managed small flowers + ferns):
- swaps flowers to dormant winter stumps in winter
- restores original flowers in spring
- uses gradual budgeted updates and LBM-on-load correction
- uses a cold-sensitive target so true winter temperatures drive near-full dormancy
- Seasonal weather framework (lightweight):
- wraps VoxeLibre
mcl_weather.has_snow(pos)with seasonal bias - winter-biased snow probability from biome data + season state
- preserves original snow rules and only adds extra snow-possible cases
- seasonally tunes weather transition weights:
- shorter clear-weather durations in winter
- stronger
none->snowandrain->snowrouting in winter - weather events still end via normal VoxeLibre durations/transitions
- wraps VoxeLibre
- Seasonal melt controller:
- gradually melts snow + ice in spring
- deterministic summer clear in non-permanent snow biomes
- deterministic spring clear once melt pressure passes configured threshold
- LBM-on-load correction for stale unloaded chunks
- background sweeper for loaded far-away areas
Commands 🔗
/seasons_state- Show current phase, derived season, biome and state values at your position.
/seasons_set_day <day_float>- Set virtual seasons day (days since world start, fractional allowed).
/seasons_set_season <spring|summer|fall|winter>- Jump to a season midpoint in the current year cycle.
/seasons_force_update [budget]- Immediately apply seasonal foliage updates around your player.
/seasons_flowers_state- Show biome eligibility and current flower target density at your position.
/seasons_force_flowers [budget]- Immediately run spring-flower spawn/decay around your player.
/seasons_force_flower_dormancy [budget]- Immediately run seasonal dormancy swaps around your player.
/seasons_flower_dormancy_state [radius]- Show local dormancy debug counts (
target,thermal_target, active/dormant totals).
- Show local dormancy debug counts (
/seasons_weather_state- Show
winterness,onset,snow_possible, and final snow-bias chance at your position.
- Show
/seasons_force_melt [budget]- Immediately run seasonal snow/ice melt updates around your player.
/seasons_melt_state- Show melt runtime config values (debug/tuning).
Main Files 🔗
init.luaconfig.luamodel.luabiome_profiles.luacompat_voxelibre.luatexture_plan.lualeaf_nodes.lualeaf_update.luaflowers_plan.luaflowers_update.luaflower_dormancy.luaweather_plan.luaweather_voxelibre.luaweather_weights.luasnow_melt.luacommands.luasettingtypes.txtmod.conf
License 🔗
LICENSE(GPL-3.0-or-later)LICENSE.mdsummarydocs/LICENSING.mdmedia policy