day night cycle tweaking
This commit is contained in:
@@ -1,17 +1,38 @@
|
||||
@tool
|
||||
extends Node3D
|
||||
|
||||
@onready var sun: DirectionalLight3D = $Sun
|
||||
@export var sun_color : GradientTexture1D
|
||||
@export var realtime : bool = false
|
||||
@export var set_time = 17.0
|
||||
@export var north_offset : float
|
||||
@export var sun_energy_over_time : Curve
|
||||
|
||||
@onready var sun: DirectionalLight3D = $Sun
|
||||
|
||||
func _ready() -> void:
|
||||
change_sun()
|
||||
|
||||
func change_sun():
|
||||
var sun_details = sun_angle_from_time()
|
||||
sun.rotation.x = sun_details["angle"]
|
||||
sun.rotation.y = north_offset
|
||||
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 current_time
|
||||
if realtime:
|
||||
current_time = float(time_dict["hour"]) + (float(time_dict["minute"]) / 60)
|
||||
else:
|
||||
current_time = set_time
|
||||
|
||||
var angle : float = deg_to_rad((current_time/24.0) * 360.0 + 90.0)
|
||||
var energy = sun_energy_over_time.sample(current_time)
|
||||
|
||||
print("current time: ", current_time)
|
||||
print("Sun angle : ",rad_to_deg(angle))
|
||||
|
||||
return {"angle" : angle, "energy" : energy}
|
||||
|
||||
func _on_property_list_changed() -> void:
|
||||
change_sun()
|
||||
|
||||
Reference in New Issue
Block a user