M1c: weather, snap building, shelter, beds and regrowth
- Seeded weather (clear/cloudy/rain/storm, snow and blizzards on cold days and above the snowline), lightning, synthesised rain/wind/thunder sound - Rain/snow particles stopped by roofs; wet ground, settled snow and wind via global shader uniforms - Snap-together wood floor, wall, door, roof and gable with structural support, collapse and X to dismantle - Shelter detection: dry under a roof, warmer and Rested inside with a fire; rain burns an uncovered campfire faster - Bed sets the spawn point and lets you sleep through the night - Trees, boulders and ground pickups regrow; timers saved - Grass cleared under floors; shorter HUD hint - New test_weather_building suite (62 checks) and tests/run_all.sh, which also fails on script errors
This commit is contained in:
@@ -5,6 +5,22 @@
|
||||
|
||||
uniform sampler2D noise_tex : filter_linear_mipmap, repeat_enable;
|
||||
|
||||
// Set every frame by weather_fx.gd (declared in project.godot [shader_globals]).
|
||||
global uniform float weather_wet; // 0..1 rain-soaked ground
|
||||
global uniform float weather_snow; // 0..1 settled snow
|
||||
global uniform float weather_wind; // wind multiplier, ~1 on a calm day
|
||||
|
||||
// Wet surfaces: darker and glossier.
|
||||
vec3 wet_albedo(vec3 c, float wet) {
|
||||
return c * (1.0 - 0.35 * wet);
|
||||
}
|
||||
|
||||
// Settled snow on upward-facing surfaces, patchy where it's thin.
|
||||
float snow_mask(float up, float patch) {
|
||||
float s = weather_snow * 1.25 - (1.0 - patch) * 0.45;
|
||||
return clamp(s, 0.0, 1.0) * smoothstep(0.55, 0.85, up);
|
||||
}
|
||||
|
||||
float nz(vec2 p) {
|
||||
return texture(noise_tex, p).r;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user