123 lines
4.9 KiB
GDScript
123 lines
4.9 KiB
GDScript
class_name EnvironmentConfig
|
|
extends Resource
|
|
|
|
#Time duration in seconds for a day
|
|
@export_group("Day")
|
|
@export var day_duration: float = 120.0
|
|
|
|
@export_group("Directional Lights and Environment")
|
|
@export var morning_color: Color = Color(1.0, 0.9, 0.8, 1.0)
|
|
@export var afternoon_color: Color = Color(1.0, 0.6, 0.2, 1.0)
|
|
@export var night_color: Color = Color(0.1, 0.1, 0.3, 1.0)
|
|
|
|
@export_group("Sun Rotation")
|
|
@export var sun_rotation_morning: Vector3 = Vector3(-15.0, 45.0, 0.0)
|
|
@export var sun_rotation_afternoon: Vector3 = Vector3(-75.0, 10.0, 0.0)
|
|
@export var sun_rotation_night: Vector3 = Vector3(-35.0, -120.0, 0.0)
|
|
@export var night_light_energy: float = 0.3
|
|
|
|
@export_group("General Exposition")
|
|
@export var exposure_morning: float = 1.0
|
|
@export var exposure_afternoon: float = 0.95
|
|
@export var exposure_night: float = 0.4
|
|
|
|
@export_group("Sky Colors - Top")
|
|
@export var sky_top_morning: Color = Color(0.35, 0.65, 0.9, 1.0)
|
|
@export var sky_top_afternoon: Color = Color(0.7, 0.45, 0.2, 1.0)
|
|
@export var sky_top_night: Color = Color(0.05, 0.05, 0.15, 1.0)
|
|
|
|
@export_group("Sky Color - Horizon")
|
|
@export var sky_horizon_morning: Color = Color(0.75, 0.85, 0.95, 1.0)
|
|
@export var sky_horizon_afternoon: Color = Color(0.95, 0.65, 0.35, 1.0)
|
|
@export var sky_horizon_night: Color = Color(0.15, 0.1, 0.25, 1.0)
|
|
|
|
@export_subgroup("Gradient - Top")
|
|
@export var grad_top_morning: Color = Color(0.8, 0.4, 0.2, 1.0)
|
|
@export var grad_top_afternoon: Color = Color(0.2, 0.3, 0.5, 1.0)
|
|
@export var grad_top_night: Color = Color(0.05, 0.05, 0.1, 1.0)
|
|
|
|
@export_subgroup("Gradient - Bottom")
|
|
@export var grad_bot_morning: Color = Color(0.5, 0.2, 0.1, 1.0)
|
|
@export var grad_bot_afternoon: Color = Color(0.1, 0.15, 0.25, 1.0)
|
|
@export var grad_bot_night: Color = Color(0.01, 0.01, 0.05, 1.0)
|
|
|
|
@export_subgroup("Gradient Intensity")
|
|
@export var grad_intensity_morning: float = 0.5
|
|
@export var grad_intensity_afternoon: float = 0.3
|
|
@export var grad_intensity_night: float = 0.8
|
|
|
|
@export_group("Fog")
|
|
@export var fog_color_morning: Color = Color(0.75, 0.85, 0.95, 1.0)
|
|
@export var fog_color_afternoon: Color = Color(0.95, 0.65, 0.35, 1.0)
|
|
@export var fog_color_night: Color = Color(0.15, 0.1, 0.25, 1.0)
|
|
@export var fog_density_morning: float = 0.005
|
|
@export var fog_density_afternoon: float = 0.002
|
|
@export var fog_density_night: float = 0.015
|
|
|
|
@export_group("Glow")
|
|
@export var glow_morning: float = 1.2
|
|
@export var glow_afternoon: float = 0.8
|
|
@export var glow_night: float = 2.0
|
|
|
|
@export_group("Post Process")
|
|
@export var enable_fog_overlay: bool = false
|
|
@export var enable_dust: bool = true
|
|
@export var enable_blur: bool = true
|
|
@export var enable_environment_shadows: bool = true
|
|
|
|
@export_group("Environment Materials")
|
|
@export var material_fog: ShaderMaterial
|
|
@export var material_drops: StandardMaterial3D
|
|
@export var material_clouds: ShaderMaterial
|
|
|
|
@export_group("Rain")
|
|
@export var rain_mode_color: Color = Color(0.5, 0.6, 0.7, 1.0)
|
|
@export var rain_fade_time: float = 5.0
|
|
|
|
@export_group("Lightning and Thunders")
|
|
@export var lightning_min_time: float = 5.0
|
|
@export var lightning_max_time: float = 15.0
|
|
@export var lightning_color: Color = Color(1.0, 1.0, 0.8, 1.0)
|
|
@export var lightning_min: int = 1
|
|
@export var lightning_max: int = 3
|
|
@export var lightning_scale_min: float = 1.0
|
|
@export var lightning_scale_max: float = 3.0
|
|
@export var lightning_texture: String = "res://core/daynight/lighting_albedo.png"
|
|
@export var weather_event_interval: float = 8.0
|
|
|
|
@export_group("God Rays")
|
|
@export var godray_max_rain: int = 8
|
|
@export var godray_spawn_radius: float = 15.0
|
|
@export var godray_spawn_offset: Vector3 = Vector3(15.0, 5.0, -15.0)
|
|
@export var godray_rotation_degrees: Vector3 = Vector3(-45.0, 45.0, -30.0)
|
|
@export var godray_spawn_height: float = 5.0
|
|
@export var godray_scale: Vector3 = Vector3(2.0, 6.0, 2.0)
|
|
|
|
@export_group("Snow")
|
|
@export var snow_amount: float = 0.0
|
|
@export var snow_transaction_time: float = 10.0
|
|
@export var snow_fade_time: float = 5.0
|
|
@export var snow_threshold: float = 0.4
|
|
@export var snow_accumulation_speed: float = 0.02 #0.1 -> accumulation time 10secs; 0.05 -> accumulation time 20secs; realistic; 0.2 -> accumulation time 5secs;
|
|
@export var snow_melt_speed: float = 0.05
|
|
@export var snow_color: Color = Color(0.9, 0.95, 1.0)
|
|
@export var snow_mode_color: Color = Color(0.7, 0.75, 0.8, 1.0)
|
|
|
|
@export_group("Wind")
|
|
@export var wind_amount: int = 100
|
|
@export var wind_spawn_ray: float = 25.0
|
|
@export var wind_spawn_height: float = 5.0
|
|
@export var wind_direction: Vector2 = Vector2(0.5, 0.4)
|
|
@export var wind_speed: float = 0.2
|
|
@export var wind_scale: float = 0.025
|
|
@export var wind_strength: float = 0.6
|
|
@export var cloud_scale: float = 0.5
|
|
@export var cloud_speed: float = 0.05
|
|
@export_range(0.01, 1.0) var cloud_scale_envshadows_rate: float = 0.01
|
|
@export_range(0.01, 1.0) var cloud_speed_envshadows_rate: float = 0.5
|
|
|
|
@export_group("Fireflies")
|
|
@export var fireflies_amount: int = 60
|
|
@export var fireflies_spawn_ray: float = 20.0
|
|
@export var fireflies_spawn_height: float = 3.0
|