create weather controller and daynight controller
This commit is contained in:
35
core/daynight/godrays.gd
Normal file
35
core/daynight/godrays.gd
Normal file
@@ -0,0 +1,35 @@
|
||||
extends MeshInstance3D
|
||||
|
||||
@export_group("Animation")
|
||||
@export var life_time: float = 8.0
|
||||
@export var fade_in_time: float = 4.0
|
||||
@export var max_base_alpha: float = 1.0
|
||||
|
||||
func _ready():
|
||||
var mat = get_active_material(0).duplicate()
|
||||
set_surface_override_material(0, mat)
|
||||
|
||||
#add_to_group("camere")
|
||||
|
||||
#set alpha to 0 before first frame to avoid "pop"
|
||||
mat.set_shader_parameter("base_alpha", 0.0)
|
||||
|
||||
animate_godray(mat)
|
||||
|
||||
func animate_godray(mat: ShaderMaterial):
|
||||
var tween_alpha = create_tween()
|
||||
tween_alpha.tween_property(mat, "shader_parameter/base_alpha", max_base_alpha, fade_in_time).from(0.0)
|
||||
|
||||
var tween_intensity = create_tween()
|
||||
#tween from 1.0 to 2.0
|
||||
tween_intensity.tween_property(mat, "shader_parameter/intensity_multiplier", 0.2, life_time * 0.3).from(1.0)
|
||||
#tween to 0.5
|
||||
tween_intensity.tween_property(mat, "shader_parameter/intensity_multiplier", 0.5, life_time * 0.3)
|
||||
#tween to 0.0
|
||||
tween_intensity.tween_property(mat, "shader_parameter/intensity_multiplier", 0.0, life_time * 0.4)
|
||||
|
||||
tween_intensity.tween_callback(queue_free)
|
||||
|
||||
var tween_edge = create_tween()
|
||||
tween_edge.tween_property(mat, "shader_parameter/edge_fade_power", 0.5, life_time * 0.5).from(2.0)
|
||||
tween_edge.tween_property(mat, "shader_parameter/edge_fade_power", 2.0, life_time * 0.5)
|
||||
Reference in New Issue
Block a user