Skip to content

Commit 903a9a0

Browse files
committed
skydome controls
1 parent c0b240a commit 903a9a0

3 files changed

Lines changed: 152 additions & 29 deletions

File tree

demo/demo_scenery_loading.tscn

Lines changed: 31 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
[ext_resource type="Script" uid="uid://m0t4e4uurpbc" path="res://addons/libmaszyna/scenery/maszyna_scenery.gd" id="3_fraxg"]
88
[ext_resource type="PackedScene" uid="uid://cggqb75a8w8r" path="res://addons/debug_menu/debug_menu.tscn" id="4_f81ma"]
99
[ext_resource type="Shader" uid="uid://ck1w2pkpwin11" path="res://addons/gnd_skydome/filmic_procedural_sky.gdshader" id="4_uccxj"]
10-
[ext_resource type="Script" uid="uid://pw1ljvn4g7cy" path="res://addons/gnd_skydome/SunShaftsCompositorEffect.gd" id="5_uccxj"]
10+
[ext_resource type="PackedScene" uid="uid://bbq6b2v2678h0" path="res://hud/user_settings_panel.tscn" id="9_4xg7h"]
1111

1212
[sub_resource type="FastNoiseLite" id="FastNoiseLite_uccxj"]
1313
seed = 10
@@ -57,8 +57,8 @@ shader_parameter/stars_energy = 2.0
5757
shader_parameter/stars_size_min = 0.01
5858
shader_parameter/stars_size_max = 0.03
5959
shader_parameter/stars_edge_softness = 0.25
60-
shader_parameter/gi_tint = Color(0.34744364, 0.4860088, 0.7754261, 1)
61-
shader_parameter/gi_energy_multiplier = 2.0125084146134036
60+
shader_parameter/gi_tint = Color(0.61416656, 0.64159715, 0.73097223, 1)
61+
shader_parameter/gi_energy_multiplier = 1.5300419517291963
6262
shader_parameter/sun_color = Color(1, 0.98, 0.9, 1)
6363
shader_parameter/sun_disk_size = 0.04
6464
shader_parameter/sun_disk_softness = 0.6
@@ -92,18 +92,18 @@ shader_parameter/cloud_shadow_color = Color(0.7213096, 0.75538087, 0.82624775, 1
9292
shader_parameter/cloud_forward_scatter = 1.5
9393
shader_parameter/cloud_backscatter = 0.39
9494
shader_parameter/sun_cloud_occlusion = 0.59416
95-
shader_parameter/custom_sun_dir = Vector3(-0.8586799, -0.03844324, -0.51106846)
96-
shader_parameter/custom_moon_dir = Vector3(0.4125069, 0.21591161, 0.8849973)
97-
shader_parameter/celestial_matrix = Basis(-0.6195282, -0.5045718, 0.6013253, 0, 0.76604444, 0.6427876, -0.7849744, 0.398225, -0.4745861)
95+
shader_parameter/custom_sun_dir = Vector3(-0.9376499, 0.1148826, -0.32804677)
96+
shader_parameter/custom_moon_dir = Vector3(0.6055511, 0.13233627, 0.784726)
97+
shader_parameter/celestial_matrix = Basis(-0.93084043, -0.23489125, 0.2799325, 0, 0.76604444, 0.6427876, -0.36542594, 0.59833264, -0.71306515)
9898
shader_parameter/rendered_day_of_year = 129.0
99-
shader_parameter/rendered_time_of_day = 19.72400000000016
99+
shader_parameter/rendered_time_of_day = 18.714444444444325
100100
shader_parameter/observer_latitude_deg = 50.0
101-
shader_parameter/cloud_time = 18550.344
101+
shader_parameter/cloud_time = 18544.286666666667
102102
shader_parameter/cloud_wind_direction = Vector2(0.9363292, 0.35112345)
103103
shader_parameter/cloud_wind_speed = 1.0
104-
shader_parameter/cloud_motion_time = 1345992.7680000009
104+
shader_parameter/cloud_motion_time = 1345556.64
105105
shader_parameter/cloud_motion_scale = 0.12
106-
shader_parameter/cloud_evolution_time = 448664.2560000003
106+
shader_parameter/cloud_evolution_time = 448518.88
107107
shader_parameter/cloud_evolution_strength = 0.18
108108
shader_parameter/cloud_evolution_scale = 0.018
109109

@@ -113,8 +113,8 @@ sky_material = SubResource("ShaderMaterial_2mlfg")
113113
[sub_resource type="Environment" id="Environment_nd35h"]
114114
background_mode = 2
115115
sky = SubResource("Sky_72ctq")
116-
ambient_light_color = Color(0.3008219, 0.31226274, 0.3230078, 1)
117-
ambient_light_energy = 1.2650267
116+
ambient_light_color = Color(0.5703473, 0.55488217, 0.5004598, 1)
117+
ambient_light_energy = 1.8520861
118118
tonemap_mode = 4
119119
tonemap_white = 6.44
120120
tonemap_agx_white = 9.19
@@ -126,19 +126,19 @@ sdfgi_enabled = true
126126
glow_enabled = true
127127
glow_bloom = 0.2
128128
fog_enabled = true
129-
fog_light_color = Color(0.6311693, 0.43603623, 0.3480004, 1)
130-
fog_density = 0.038941726
129+
fog_light_color = Color(0.8814727, 0.5939068, 0.4391886, 1)
130+
fog_density = 0.01893751
131131
fog_aerial_perspective = 1.0
132-
fog_sky_affect = 0.6402694
133-
fog_depth_begin = 7.931831
134-
fog_depth_end = 547.44366
132+
fog_sky_affect = 0.35131958
133+
fog_depth_begin = 15.044441
134+
fog_depth_end = 814.16656
135135
volumetric_fog_enabled = true
136-
volumetric_fog_density = 0.037958767
137-
volumetric_fog_albedo = Color(0.58959824, 0.47441214, 0.42453235, 1)
138-
volumetric_fog_length = 13.279824
136+
volumetric_fog_density = 0.016176399
137+
volumetric_fog_albedo = Color(0.7542916, 0.5789621, 0.47829604, 1)
138+
volumetric_fog_length = 10.168057
139139
volumetric_fog_detail_spread = 2.0490615
140-
volumetric_fog_ambient_inject = 0.40581638
141-
volumetric_fog_sky_affect = 0.48114347
140+
volumetric_fog_ambient_inject = 0.19021538
141+
volumetric_fog_sky_affect = 0.49225694
142142
adjustment_enabled = true
143143
adjustment_contrast = 1.02
144144

@@ -153,13 +153,17 @@ auto_exposure_max_sensitivity = 500.0
153153
[node name="DemoSceneryLoading" type="Node3D" unique_id=1784067886]
154154
script = ExtResource("1_nk4av")
155155

156+
[node name="UserSettingsPanel" parent="." unique_id=1798306963 instance=ExtResource("9_4xg7h")]
157+
offset_bottom = 659.0
158+
skydome_path = NodePath("../Skydome")
159+
156160
[node name="Skydome" type="Node" parent="." unique_id=1594806670]
157161
script = ExtResource("2_nd35h")
158162
directional_light_path = NodePath("../DirectionalLight3D")
159163
world_environment_path = NodePath("../WorldEnvironment")
160164
use_system_time = true
161165
day_of_year = 129
162-
time_of_day = 19.724
166+
time_of_day = 18.714444444444442
163167
day_light_energy = 4.0
164168
day_light_color = Color(0.97154576, 0.9127411, 0.77206504, 1)
165169
day_fog_distance_begin = 20.0
@@ -192,16 +196,16 @@ moon_color = Color(0.8602561, 0.8906728, 0.9238627, 1)
192196
moon_glow_strength = 0.099
193197
moon_eclipse_size = 0.355
194198
moon_glow_size = 0.865
195-
moon_phase_debug = 0.3962693306242233
199+
moon_phase_debug = 0.3948448533192863
196200
metadata/_custom_type_script = "uid://blkilnimp0sck"
197201

198202
[node name="Player" parent="." unique_id=1819896729 instance=ExtResource("2_f81ma")]
199203
transform = Transform3D(-0.543175, 0, 0.83962, 0, 1, 0, -0.83962, 0, -0.543175, 21.04, 1.959, -18.089)
200204

201205
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="." unique_id=1934821577]
202-
transform = Transform3D(0.9063761, -0.091216564, 0.4125069, 0, 0.97641295, 0.21591161, -0.4224718, -0.19569713, 0.8849973, 5.83027, -6.14961, 0)
203-
light_color = Color(0.50584126, 0.5531878, 0.6066819, 1)
204-
light_energy = 0.23081493
206+
transform = Transform3D(-0.33023322, 0.10843762, -0.9376499, 0, 0.9933791, 0.1148826, 0.94389933, 0.037938055, -0.32804677, 5.83027, -6.14961, 0)
207+
light_color = Color(0.8619047, 0.50805885, 0.32707316, 1)
208+
light_energy = 4.0
205209
light_indirect_energy = 3.0
206210
light_volumetric_fog_energy = 4.197
207211
light_angular_distance = 0.18867494
@@ -221,7 +225,6 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.1461792, 5.782898, -0.9614
221225
script = ExtResource("3_fraxg")
222226
use_cache = true
223227
filename = "td.scn"
224-
autoload = false
225228
metadata/_custom_type_script = "uid://m0t4e4uurpbc"
226229

227230
[node name="CanvasLayer" parent="." unique_id=28357571 instance=ExtResource("4_f81ma")]

demo/hud/user_settings_panel.gd

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,29 @@
11
extends PanelContainer
22

3+
@export_node_path("Skydome") var skydome_path: NodePath
34

5+
@onready var _time_section: VBoxContainer = $VBoxContainer/TimeSection
6+
@onready var _day_of_year_slider: HSlider = $VBoxContainer/TimeSection/DayOfYearRow/DayOfYearSlider
7+
@onready var _day_of_year_value: Label = $VBoxContainer/TimeSection/DayOfYearRow/DayOfYearValue
8+
@onready var _time_of_day_slider: HSlider = $VBoxContainer/TimeSection/TimeOfDayRow/TimeOfDaySlider
9+
@onready var _time_of_day_value: Label = $VBoxContainer/TimeSection/TimeOfDayRow/TimeOfDayValue
10+
11+
12+
# Called when the node enters the scene tree for the first time.
413
func _ready() -> void:
514
_auto_user_settings_visibility()
615
UserSettings.game_dir_changed.connect(_on_gamedir_changed)
716
UserSettings.config_changed.connect(_update_render_settings)
817
UserSettings.setting_changed.connect(_on_user_setting_changed)
18+
_day_of_year_slider.value_changed.connect(_on_day_of_year_changed)
19+
_time_of_day_slider.value_changed.connect(_on_time_of_day_changed)
20+
_sync_time_controls()
921
_update_render_settings()
1022

23+
# Called every frame. 'delta' is the elapsed time since the previous frame.
24+
func _process(delta: float) -> void:
25+
pass
26+
1127

1228
func _input(event):
1329
if event.is_action_pressed("ui_cancel"):
@@ -60,3 +76,57 @@ func _reload_all_models():
6076
func _on_visibility_changed() -> void:
6177
var game_dir = UserSettings.get_maszyna_game_dir()
6278
$VBoxContainer/GameDirNotSet.visible = not game_dir or FileAccess.file_exists(game_dir)
79+
_sync_time_controls()
80+
81+
82+
func _get_skydome() -> Skydome:
83+
if skydome_path.is_empty():
84+
return null
85+
86+
var node: Node = get_node_or_null(skydome_path)
87+
if node is Skydome:
88+
return node as Skydome
89+
90+
return null
91+
92+
93+
func _sync_time_controls() -> void:
94+
var skydome: Skydome = _get_skydome()
95+
if skydome == null:
96+
return
97+
98+
_day_of_year_slider.set_value_no_signal(skydome.day_of_year)
99+
_time_of_day_slider.set_value_no_signal(skydome.time_of_day)
100+
_day_of_year_value.text = str(skydome.day_of_year)
101+
_time_of_day_value.text = _format_time_of_day(skydome.time_of_day)
102+
103+
104+
func _on_day_of_year_changed(value: float) -> void:
105+
var skydome: Skydome = _get_skydome()
106+
if skydome == null:
107+
return
108+
109+
skydome.use_system_time = false
110+
skydome.day_of_year = int(round(value))
111+
_day_of_year_value.text = str(skydome.day_of_year)
112+
113+
114+
func _on_time_of_day_changed(value: float) -> void:
115+
var skydome: Skydome = _get_skydome()
116+
if skydome == null:
117+
return
118+
119+
skydome.use_system_time = false
120+
skydome.time_of_day = value
121+
_time_of_day_value.text = _format_time_of_day(skydome.time_of_day)
122+
123+
124+
func _format_time_of_day(value: float) -> String:
125+
var total_minutes: int = int(round(value * 60.0))
126+
var hours: int = total_minutes / 60
127+
var minutes: int = total_minutes % 60
128+
if hours >= 24 and minutes == 0:
129+
return "24:00"
130+
if hours >= 24:
131+
hours = 0
132+
return "%02d:%02d" % [hours, minutes]

demo/hud/user_settings_panel.tscn

Lines changed: 51 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
[ext_resource type="Script" uid="uid://ddxg6048u2fs4" path="res://hud/user_settings_panel.gd" id="1_r6syw"]
55

66
[node name="UserSettingsPanel" type="PanelContainer" unique_id=1798306963]
7-
visible = false
87
anchors_preset = 5
98
anchor_left = 0.5
109
anchor_right = 0.5
@@ -30,4 +29,55 @@ horizontal_alignment = 1
3029
[node name="Maszyna Settings" parent="VBoxContainer" unique_id=1678337651 instance=ExtResource("1_755qg")]
3130
layout_mode = 2
3231

32+
[node name="TimeSection" type="VBoxContainer" parent="VBoxContainer" unique_id=288699114]
33+
layout_mode = 2
34+
35+
[node name="TimeLabel" type="Label" parent="VBoxContainer/TimeSection" unique_id=1009494270]
36+
layout_mode = 2
37+
text = "Time"
38+
39+
[node name="DayOfYearRow" type="HBoxContainer" parent="VBoxContainer/TimeSection" unique_id=533499477]
40+
layout_mode = 2
41+
42+
[node name="DayOfYearLabel" type="Label" parent="VBoxContainer/TimeSection/DayOfYearRow" unique_id=709424515]
43+
layout_mode = 2
44+
size_flags_horizontal = 3
45+
text = "Day of year"
46+
47+
[node name="DayOfYearSlider" type="HSlider" parent="VBoxContainer/TimeSection/DayOfYearRow" unique_id=1176655547]
48+
custom_minimum_size = Vector2(220, 0)
49+
layout_mode = 2
50+
size_flags_horizontal = 3
51+
min_value = 1.0
52+
max_value = 365.0
53+
value = 180.0
54+
55+
[node name="DayOfYearValue" type="Label" parent="VBoxContainer/TimeSection/DayOfYearRow" unique_id=1781116861]
56+
custom_minimum_size = Vector2(48, 0)
57+
layout_mode = 2
58+
text = "180"
59+
horizontal_alignment = 2
60+
61+
[node name="TimeOfDayRow" type="HBoxContainer" parent="VBoxContainer/TimeSection" unique_id=2081434544]
62+
layout_mode = 2
63+
64+
[node name="TimeOfDayLabel" type="Label" parent="VBoxContainer/TimeSection/TimeOfDayRow" unique_id=1803114617]
65+
layout_mode = 2
66+
size_flags_horizontal = 3
67+
text = "Time of day"
68+
69+
[node name="TimeOfDaySlider" type="HSlider" parent="VBoxContainer/TimeSection/TimeOfDayRow" unique_id=869168014]
70+
custom_minimum_size = Vector2(220, 0)
71+
layout_mode = 2
72+
size_flags_horizontal = 3
73+
max_value = 24.0
74+
step = 0.25
75+
value = 12.0
76+
77+
[node name="TimeOfDayValue" type="Label" parent="VBoxContainer/TimeSection/TimeOfDayRow" unique_id=474437604]
78+
custom_minimum_size = Vector2(48, 0)
79+
layout_mode = 2
80+
text = "12:00"
81+
horizontal_alignment = 2
82+
3383
[connection signal="visibility_changed" from="." to="." method="_on_visibility_changed"]

0 commit comments

Comments
 (0)