Professional Documents
Culture Documents
extends DirectionalLight
var day_quadrant = 0;
var curr_tick = 0;
var rot_speed = 0;
var curr_color;
onready var sky : WorldEnvironment;
func _rotate_light(delta):
rotate_x(-rot_speed*delta)
func _set_light_color():
var mix = abs(sin(rotation.x))
match day_quadrant:
0:
curr_color = lerp(dawn, midday, mix)
# print ("Dawn ", mix)
1:
curr_color = lerp(evening, midday, mix)
# print ("Midday ", mix)
2:
curr_color = lerp(evening, night, mix)
# print ("Evening ", mix)
3:
curr_color = lerp(dawn, night, mix)
# print ("Night ", mix)
light_color = curr_color
func _set_sky_adjustments():
if sky == null:
return;
if sky.environment.background_mode == Environment.BG_COLOR:
sky.environment.background_color = lerp(sky_color, curr_color, 0.45)
sky.environment.ambient_light_color = sky.environment.background_color
if sky.environment.fog_enabled == true:
sky.environment.fog_color = sky.environment.background_color
func _ready():
rot_speed = (2.0 * PI) / day_cycle;
rotation.x = 0.0
rotation.y = 0.0
rotation.z = 0.0
curr_color = dawn
light_color = curr_color
day_quadrant = 0
curr_tick = 0
sky = $Sky;
if sky.environment.background_mode == Environment.BG_COLOR:
sky.environment.background_color = sky_color;
func _process(delta):
_rotate_light(delta)
_set_light_color()
_set_sky_adjustments()
curr_tick += delta;