add rain puddle

This commit is contained in:
2026-03-31 23:59:04 +02:00
parent b05abd395f
commit 0be4b503e2
6 changed files with 94 additions and 40 deletions

View File

@@ -25,6 +25,8 @@ var timer_next_lightning: float = 0.0
var is_raining: bool = false
var rain_intensity: float = 0.0
var rain_tween: Tween
var puddle_tween: Tween
var puddle_amount: float = 0.0
var snow_tween: Tween
var snow_particles_tween: Tween
@@ -81,6 +83,10 @@ func _ready() -> void:
func _process(delta: float) -> void:
_follow_camera()
var is_night = day_time >= 2.5
if particles_fireflies:
particles_fireflies.emitting = thereare_fireflies and is_night
var base_tint: Color
var base_sky_top: Color
@@ -228,8 +234,9 @@ func _follow_camera() -> void:
func toggle_fireflies(value: bool):
thereare_fireflies = value
var is_night = day_time >= 2.5
if particles_fireflies:
particles_fireflies.emitting = thereare_fireflies
particles_fireflies.emitting = thereare_fireflies and is_night
#disable fireflies and set default values and materials
func set_fireflies():
@@ -390,6 +397,11 @@ func set_rain():
if particles_rain:
particles_rain.visible = true
particles_rain.emitting = false
RenderingServer.global_shader_parameter_set("global_rain_puddle_amount", 0.0)
func set_puddle_amount(value: float):
puddle_amount = value
RenderingServer.global_shader_parameter_set("global_rain_puddle_amount", value)
func toggle_rain(value: bool):
is_raining = value
@@ -403,17 +415,24 @@ func toggle_rain(value: bool):
if rain_tween and rain_tween.is_valid():
rain_tween.kill()
if puddle_tween and puddle_tween.is_valid():
puddle_tween.kill()
if is_raining:
particles_rain.amount_ratio = 0.0
particles_rain.emitting = true
rain_tween = create_tween()
rain_tween.tween_property(particles_rain, "amount_ratio", 1.0, environment_config.rain_fade_time)
puddle_tween = create_tween()
puddle_tween.tween_method(set_puddle_amount, puddle_amount, 1.0, environment_config.puddle_form_time)
else:
rain_tween = create_tween()
rain_tween.tween_property(particles_rain, "amount_ratio", 0.0, environment_config.rain_fade_time)
rain_tween.tween_callback(func():
particles_rain.emitting = false
trigger_after_rain())
puddle_tween = create_tween()
puddle_tween.tween_method(set_puddle_amount, puddle_amount, 0.0, environment_config.puddle_dry_time)
func trigger_morning() -> void:
spawn_single_godray()