Files
fps_project_1/scripts/realtime_day_night_cycle.gd

18 lines
617 B
GDScript

extends Node3D
@onready var sun: DirectionalLight3D = $Sun
@export var sun_energy_over_time : Curve
func _ready() -> void:
var sun_details = sun_angle_from_time()
sun.rotation.x = sun_details["angle"]
sun.light_energy = sun_details["energy"]
func sun_angle_from_time():
var time_dict = Time.get_time_dict_from_system()
var current_time = float(time_dict["hour"]) + (float(time_dict["minute"]) / 60)
print("current time: ", current_time)
var angle : float = deg_to_rad((current_time/24.0) * 360.0 + 90.0)
var energy = sun_energy_over_time.sample(current_time)
return {"angle" : angle, "energy" : energy}