shader_type canvas_item;
render_mode blend_mul;

// Colori esposti nell'Inspector
uniform vec4 color_mattina : source_color = vec4(1.0, 0.9, 0.8, 1.0);
uniform vec4 color_pomeriggio : source_color = vec4(1.0, 0.6, 0.2, 1.0);
uniform vec4 color_notte : source_color = vec4(0.1, 0.1, 0.3, 1.0);

// Parametro fluido: 1.0 = Mattina, 2.0 = Pomeriggio, 3.0 = Notte
uniform float tempo_giorno : hint_range(1.0, 3.0) = 1.0;

void fragment() {
    vec4 tex_color = texture(TEXTURE, UV);
    vec4 final_tint;

    if (tempo_giorno <= 2.0) {
        // Transizione tra Mattina (1.0) e Pomeriggio (2.0)
        // mix(A, B, t) dove t va da 0 a 1
        float t = tempo_giorno - 1.0; 
        final_tint = mix(color_mattina, color_pomeriggio, t);
    } else {
        // Transizione tra Pomeriggio (2.0) e Notte (3.0)
        float t = tempo_giorno - 2.0;
        final_tint = mix(color_pomeriggio, color_notte, t);
    }

    // Applica il colore finale con blend_mul (moltiplicazione)
    COLOR = tex_color * final_tint;
}