From c015e5cee8c58cfc9af812c26092a83740d7c41c Mon Sep 17 00:00:00 2001 From: "m.cirafisi" Date: Tue, 30 Jun 2026 22:48:47 +0200 Subject: [PATCH] fix --- core/daynight/day_night_controller.gd | 29 ++++++++++++--- core/daynight/environment_manager.gd | 2 +- core/daynight/weather_controller.gd | 36 ++++++++++++++----- .../photo_mode/managers/collection_manager.gd | 1 + 4 files changed, 53 insertions(+), 15 deletions(-) diff --git a/core/daynight/day_night_controller.gd b/core/daynight/day_night_controller.gd index c4d4170..6189fe7 100644 --- a/core/daynight/day_night_controller.gd +++ b/core/daynight/day_night_controller.gd @@ -90,11 +90,30 @@ func _time_option_changed(index: int) -> void: _time_tween = create_tween() - # Always move forward in time for a natural transition - if target_time < current_time: - target_time += 1.0 - - _time_tween.tween_method(set_time, current_time, target_time, time_transition_duration) + var start_time = current_time + + # Gestione logica lineare: Notte(0.0) - Mattina(0.25) - Giorno(0.45) - Tramonto(0.8) - Notte(1.0) + # Per evitare di attraversare fasi intermedie opposte, forziamo il percorso su questo segmento. + + if index == TIME_OPTION_NIGHT: + # Da Mattina a Notte -> andiamo a 0.0. Dal Giorno in poi -> andiamo a 1.0. + if start_time < environment_config.day: + target_time = 0.0 + else: + target_time = 1.0 + else: + # Se partiamo da Notte (valori vicini a 0.0 o 1.0) + if start_time < 0.1 or start_time > 0.9: + if index == TIME_OPTION_SUNRISE: + # Per andare a Mattina, partiamo dal lato 0.0 + if start_time > 0.9: + start_time -= 1.0 + else: + # Per andare a Giorno o Tramonto, partiamo dal lato 1.0 + if start_time < 0.1: + start_time += 1.0 + + _time_tween.tween_method(set_time, start_time, target_time, time_transition_duration) func _on_set_day_time(value: float) -> void: set_time(value) diff --git a/core/daynight/environment_manager.gd b/core/daynight/environment_manager.gd index 069d247..2febf56 100644 --- a/core/daynight/environment_manager.gd +++ b/core/daynight/environment_manager.gd @@ -251,7 +251,7 @@ func select_day_time(normalized_time: float) -> void: if normalized_time < environment_config.sunrise: #Sunrise: night → morning - day_time = 3.0 - (normalized_time / environment_config.sunrise) * 2.0 # 3.0 → 1.0 + day_time = 3.0 + (normalized_time / environment_config.sunrise) * 1.0 # 3.0 → 4.0 elif normalized_time < environment_config.day: #Morning: morning → afternoon var t: float = (normalized_time - environment_config.sunrise) / (environment_config.day - environment_config.sunrise) diff --git a/core/daynight/weather_controller.gd b/core/daynight/weather_controller.gd index 68a4b79..4c485a2 100644 --- a/core/daynight/weather_controller.gd +++ b/core/daynight/weather_controller.gd @@ -170,7 +170,7 @@ func _process(delta: float) -> void: base_grad_intensity = lerp(environment_config.grad_intensity_morning, environment_config.grad_intensity_afternoon, t) base_water_color = environment_config.water_color_morning.lerp(environment_config.water_color_afternoon, t) base_rotation_sun = environment_config.sun_rotation_morning.lerp(environment_config.sun_rotation_afternoon, t) - else: + elif day_time <= 3.0: var t = day_time - 2.0 base_tint = environment_config.afternoon_color.lerp(environment_config.night_color, t) base_sky_top = environment_config.sky_top_afternoon.lerp(environment_config.sky_top_night, t) @@ -184,6 +184,20 @@ func _process(delta: float) -> void: base_grad_intensity = lerp(environment_config.grad_intensity_afternoon, environment_config.grad_intensity_night, t) base_water_color = environment_config.water_color_afternoon.lerp(environment_config.water_color_night, t) base_rotation_sun = environment_config.sun_rotation_afternoon.lerp(environment_config.sun_rotation_night, t) + else: + var t = day_time - 3.0 + base_tint = environment_config.night_color.lerp(environment_config.morning_color, t) + base_sky_top = environment_config.sky_top_night.lerp(environment_config.sky_top_morning, t) + base_sky_horizon = environment_config.sky_horizon_night.lerp(environment_config.sky_horizon_morning, t) + base_fog_color = environment_config.fog_color_night.lerp(environment_config.fog_color_morning, t) + base_fog_density = lerp(environment_config.fog_density_night, environment_config.fog_density_morning, t) + base_bloom = lerp(environment_config.glow_night, environment_config.glow_morning, t) + base_exposure = lerp(environment_config.exposure_night, environment_config.exposure_morning, t) + base_grad_top = environment_config.grad_top_night.lerp(environment_config.grad_top_morning, t) + base_grad_bot = environment_config.grad_bot_night.lerp(environment_config.grad_bot_morning, t) + base_grad_intensity = lerp(environment_config.grad_intensity_night, environment_config.grad_intensity_morning, t) + base_water_color = environment_config.water_color_night.lerp(environment_config.water_color_morning, t) + base_rotation_sun = environment_config.sun_rotation_night.lerp(environment_config.sun_rotation_morning, t) var weather_color = environment_config.rain_mode_color if is_storm: @@ -312,26 +326,30 @@ func create_sound_players(): func _get_rain_day_color() -> Color: if day_time <= 2.0: return environment_config.rain_morning_color.lerp(environment_config.rain_afternoon_color, day_time - 1.0) - - return environment_config.rain_afternoon_color.lerp(environment_config.rain_night_color, day_time - 2.0) + elif day_time <= 3.0: + return environment_config.rain_afternoon_color.lerp(environment_config.rain_night_color, day_time - 2.0) + return environment_config.rain_night_color.lerp(environment_config.rain_morning_color, day_time - 3.0) func _get_storm_day_color() -> Color: if day_time <= 2.0: return environment_config.storm_morning_color.lerp(environment_config.storm_afternoon_color, day_time - 1.0) - - return environment_config.storm_afternoon_color.lerp(environment_config.storm_night_color, day_time - 2.0) + elif day_time <= 3.0: + return environment_config.storm_afternoon_color.lerp(environment_config.storm_night_color, day_time - 2.0) + return environment_config.storm_night_color.lerp(environment_config.storm_morning_color, day_time - 3.0) func _get_rain_day_exposure() -> float: if day_time <= 2.0: return lerp(environment_config.rain_exposure_morning, environment_config.rain_exposure_afternoon, day_time - 1.0) - - return lerp(environment_config.rain_exposure_afternoon, environment_config.rain_exposure_night, day_time - 2.0) + elif day_time <= 3.0: + return lerp(environment_config.rain_exposure_afternoon, environment_config.rain_exposure_night, day_time - 2.0) + return lerp(environment_config.rain_exposure_night, environment_config.rain_exposure_morning, day_time - 3.0) func _get_storm_day_exposure() -> float: if day_time <= 2.0: return lerp(environment_config.storm_exposure_morning, environment_config.storm_exposure_afternoon, day_time - 1.0) - - return lerp(environment_config.storm_exposure_afternoon, environment_config.storm_exposure_night, day_time - 2.0) + elif day_time <= 3.0: + return lerp(environment_config.storm_exposure_afternoon, environment_config.storm_exposure_night, day_time - 2.0) + return lerp(environment_config.storm_exposure_night, environment_config.storm_exposure_morning, day_time - 3.0) #region camera func _set_camera(curr_camera: Camera3D): diff --git a/core/photo_mode/managers/collection_manager.gd b/core/photo_mode/managers/collection_manager.gd index 06d262c..3bc7e3c 100644 --- a/core/photo_mode/managers/collection_manager.gd +++ b/core/photo_mode/managers/collection_manager.gd @@ -2,6 +2,7 @@ extends Node signal on_collectible_unlocked(collectible_id: StringName) signal on_photo_saved(filePath: String) +@warning_ignore("unused_signal") signal on_photo_preview_ready(image: Image) @export var collectibles_library: CollectibleLibrary