manage color and exposure during rain e storm; remove wind from rice; disable fireflies on rain, snow or storm; remove key for fireworks test; add hero to railway_pool; manage train windows
This commit is contained in:
@@ -58,19 +58,19 @@ script = ExtResource("2_0bmh1")
|
||||
north = true
|
||||
south = true
|
||||
|
||||
[node name="Argini_003" parent="." index="0" unique_id=1178813592]
|
||||
[node name="Argini_003" parent="." index="0" unique_id=509439881]
|
||||
surface_material_override/0 = ExtResource("3_c4jie")
|
||||
|
||||
[node name="Grass_005" parent="." index="1" unique_id=1427965126 groups=["weather_vegetables_node", "wind_node"]]
|
||||
[node name="Grass_005" parent="." index="1" unique_id=188609017 groups=["weather_vegetables_node", "wind_node"]]
|
||||
surface_material_override/0 = ExtResource("3_c4jie")
|
||||
|
||||
[node name="MSH_Staccioanta_1_002" parent="." index="2" unique_id=562234307]
|
||||
[node name="MSH_Staccioanta_1_002" parent="." index="2" unique_id=746941179]
|
||||
surface_material_override/0 = ExtResource("4_lr7xw")
|
||||
|
||||
[node name="Strada_004" parent="." index="3" unique_id=387203009 groups=["weather_node"]]
|
||||
[node name="Strada_004" parent="." index="3" unique_id=604168900 groups=["weather_node"]]
|
||||
surface_material_override/0 = ExtResource("5_5jc2f")
|
||||
|
||||
[node name="Water_004" parent="." index="4" unique_id=1258756459]
|
||||
[node name="Water_004" parent="." index="4" unique_id=244513747]
|
||||
surface_material_override/0 = ExtResource("6_0bmh1")
|
||||
|
||||
[node name="grass" type="Node3D" parent="." index="5" unique_id=1540226859 groups=["weather_vegetables_node", "wind_node"]]
|
||||
@@ -104,7 +104,7 @@ material_override = ExtResource("10_tbcfd")
|
||||
cast_shadow = 0
|
||||
multimesh = SubResource("MultiMesh_e417f")
|
||||
|
||||
[node name="rice" type="Node3D" parent="." index="6" unique_id=1524870522 groups=["weather_vegetables_node", "wind_node"]]
|
||||
[node name="rice" type="Node3D" parent="." index="6" unique_id=1524870522 groups=["weather_vegetables_node"]]
|
||||
visible = false
|
||||
|
||||
[node name="rice_plane" type="MeshInstance3D" parent="rice" index="0" unique_id=629743434]
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
[ext_resource type="Material" uid="uid://jygb1hcokks5" path="res://tgcc/chunk/prop/grass/grass_bank.tres" id="6_cxqsi"]
|
||||
[ext_resource type="Material" uid="uid://fnjxocmx16b7" path="res://tgcc/chunk/prop/grass/grass_chunk.tres" id="7_vkypx"]
|
||||
[ext_resource type="Material" uid="uid://0x17mj2v807r" path="res://tgcc/chunk/prop/grass/grass_chunk_weeds2.tres" id="8_k7yf4"]
|
||||
[ext_resource type="ArrayMesh" uid="uid://doophefr873pt" path="res://tgcc/chunk/prop/tree/bambù/Bambu.res" id="11_fy14c"]
|
||||
[ext_resource type="ArrayMesh" uid="uid://bg5rfu7tyl3p8" path="res://tgcc/chunk/prop/tree/bambù/Bambu.res" id="11_fy14c"]
|
||||
[ext_resource type="PackedScene" uid="uid://d12t04rs47jq3" path="res://tgcc/chunk/prop/tree/tree_01/tree_01.tscn" id="12_fqf4n"]
|
||||
[ext_resource type="Script" uid="uid://cp1pb5dnuojg3" path="res://tgcc/chunk/prop/tree/bambù/bambu.gd" id="12_s2jc4"]
|
||||
|
||||
@@ -60,20 +60,20 @@ script = ExtResource("2_vkypx")
|
||||
river_north = true
|
||||
river_south = true
|
||||
|
||||
[node name="Argini_011" parent="." index="0" unique_id=895986402]
|
||||
[node name="Argini_011" parent="." index="0" unique_id=1103166467]
|
||||
surface_material_override/0 = ExtResource("2_mic04")
|
||||
surface_material_override/1 = ExtResource("2_mic04")
|
||||
|
||||
[node name="Grass_019" parent="." index="1" unique_id=1784106582]
|
||||
[node name="Grass_019" parent="." index="1" unique_id=163702648]
|
||||
surface_material_override/0 = ExtResource("2_mic04")
|
||||
|
||||
[node name="Water_012" parent="." index="2" unique_id=1865739867]
|
||||
[node name="Water_012" parent="." index="2" unique_id=183333409]
|
||||
surface_material_override/0 = ExtResource("3_5p1m2")
|
||||
|
||||
[node name="Water_F_015" parent="." index="3" unique_id=147107428]
|
||||
[node name="Water_F_015" parent="." index="3" unique_id=1691016237]
|
||||
surface_material_override/0 = ExtResource("4_532mt")
|
||||
|
||||
[node name="rice" type="Node3D" parent="." index="4" unique_id=1336289627 groups=["weather_vegetables_node", "wind_node"]]
|
||||
[node name="rice" type="Node3D" parent="." index="4" unique_id=1336289627 groups=["weather_vegetables_node"]]
|
||||
transform = Transform3D(-1, 0, 8.742278e-08, 0, 1, 0, -8.742278e-08, 0, -1, 21.006079, 0, 0)
|
||||
|
||||
[node name="rice_plane" type="MeshInstance3D" parent="rice" index="0" unique_id=1744988640]
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
[ext_resource type="Material" uid="uid://o31kp0jm07q3" path="res://tgcc/chunk/material/rocks.tres" id="5_pj7tp"]
|
||||
[ext_resource type="Material" uid="uid://d4vsl672lwv7" path="res://tgcc/chunk/material/rocks2.tres" id="6_5hjh1"]
|
||||
[ext_resource type="Shader" uid="uid://d0ch5ofrgf7y6" path="res://core/daynight/trunk_shader.gdshader" id="8_d3e7a"]
|
||||
[ext_resource type="Script" uid="uid://5frq4qrokiy2" path="res://tgcc/train/train_glass_emission.gd" id="9_4qk3b"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_fuy7x"]
|
||||
render_priority = 0
|
||||
@@ -31,17 +32,18 @@ shader_parameter/emission_color = Color(0.3875077, 0.16205889, 0.035861596, 1)
|
||||
shader_parameter/emission_energy = 12.00000057
|
||||
|
||||
[node name="Treno" unique_id=1182090923 instance=ExtResource("1_33mei")]
|
||||
script = ExtResource("9_4qk3b")
|
||||
|
||||
[node name="Finestrini" parent="." index="0" unique_id=1797001001]
|
||||
[node name="Finestrini" parent="." index="0" unique_id=271431519]
|
||||
surface_material_override/0 = ExtResource("2_bks4l")
|
||||
surface_material_override/1 = ExtResource("3_sgpgi")
|
||||
surface_material_override/2 = ExtResource("4_gua5y")
|
||||
|
||||
[node name="Ruote" parent="." index="1" unique_id=226016697]
|
||||
[node name="Ruote" parent="." index="1" unique_id=1570760095]
|
||||
surface_material_override/0 = ExtResource("5_pj7tp")
|
||||
surface_material_override/1 = ExtResource("4_gua5y")
|
||||
|
||||
[node name="Train" parent="." index="2" unique_id=1876679965]
|
||||
[node name="Train" parent="." index="2" unique_id=301191703]
|
||||
surface_material_override/0 = ExtResource("6_5hjh1")
|
||||
surface_material_override/1 = ExtResource("2_5yo4e")
|
||||
surface_material_override/2 = ExtResource("2_bks4l")
|
||||
|
||||
100
tgcc/train/train_glass_emission.gd
Normal file
100
tgcc/train/train_glass_emission.gd
Normal file
@@ -0,0 +1,100 @@
|
||||
## Updates the train window emission during the day/night cycle.
|
||||
extends Node3D
|
||||
|
||||
@export_group("Windows")
|
||||
@export var glass_surface_index: int = 1
|
||||
@export var morning_emissive_intensity: float = 0.0
|
||||
@export var night_emissive_intensity: float = 8.0
|
||||
|
||||
var _glass_material: ShaderMaterial
|
||||
var _sunrise_time: float = 0.0
|
||||
var _night_time: float = 0.0
|
||||
|
||||
@onready var _finestrini: MeshInstance3D = $Finestrini
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
var environment_manager: EnvironmentManagerRoot = _get_environment_manager()
|
||||
if environment_manager == null or environment_manager.environment_config == null:
|
||||
return
|
||||
|
||||
_sunrise_time = environment_manager.environment_config.sunrise
|
||||
_night_time = environment_manager.environment_config.night
|
||||
|
||||
if _finestrini != null:
|
||||
_glass_material = _finestrini.get_surface_override_material(glass_surface_index) as ShaderMaterial
|
||||
|
||||
_apply_emissive_intensity(_get_current_normalized_time())
|
||||
|
||||
if not UIEvents.day_time_changed.is_connected(_on_day_time_changed):
|
||||
UIEvents.day_time_changed.connect(_on_day_time_changed)
|
||||
|
||||
|
||||
func _exit_tree() -> void:
|
||||
if UIEvents.day_time_changed.is_connected(_on_day_time_changed):
|
||||
UIEvents.day_time_changed.disconnect(_on_day_time_changed)
|
||||
|
||||
|
||||
func _get_current_normalized_time() -> float:
|
||||
var environment_manager: EnvironmentManagerRoot = _get_environment_manager()
|
||||
if environment_manager == null:
|
||||
return _sunrise_time
|
||||
|
||||
if environment_manager.day_night_controller != null:
|
||||
return environment_manager.day_night_controller.current_time
|
||||
|
||||
if environment_manager.environment_config != null:
|
||||
return environment_manager.environment_config.start_time
|
||||
|
||||
return _sunrise_time
|
||||
|
||||
|
||||
func _get_environment_manager() -> EnvironmentManagerRoot:
|
||||
var current_scene: Node = get_tree().current_scene
|
||||
if current_scene == null:
|
||||
return null
|
||||
|
||||
for child in current_scene.get_children():
|
||||
var environment_manager := child as EnvironmentManagerRoot
|
||||
if environment_manager != null:
|
||||
return environment_manager
|
||||
|
||||
return null
|
||||
|
||||
|
||||
func _apply_emissive_intensity(normalized_time: float) -> void:
|
||||
if _glass_material == null:
|
||||
return
|
||||
|
||||
_glass_material.set_shader_parameter(
|
||||
"intensita_emissiva",
|
||||
_calculate_emissive_intensity(normalized_time)
|
||||
)
|
||||
|
||||
|
||||
func _calculate_emissive_intensity(normalized_time: float) -> float:
|
||||
var wrapped_time: float = wrapf(normalized_time, 0.0, 1.0)
|
||||
var sunrise_time: float = clampf(_sunrise_time, 0.0, 1.0)
|
||||
var night_time: float = clampf(_night_time, sunrise_time, 1.0)
|
||||
|
||||
if sunrise_time > 0.0 and wrapped_time < sunrise_time:
|
||||
var night_to_morning_t: float = wrapped_time / sunrise_time
|
||||
return lerpf(
|
||||
night_emissive_intensity,
|
||||
morning_emissive_intensity,
|
||||
night_to_morning_t
|
||||
)
|
||||
|
||||
if is_equal_approx(night_time, sunrise_time):
|
||||
return morning_emissive_intensity
|
||||
|
||||
var morning_to_night_t: float = inverse_lerp(sunrise_time, night_time, wrapped_time)
|
||||
return lerpf(
|
||||
morning_emissive_intensity,
|
||||
night_emissive_intensity,
|
||||
clampf(morning_to_night_t, 0.0, 1.0)
|
||||
)
|
||||
|
||||
|
||||
func _on_day_time_changed(value: float, _time_string: String) -> void:
|
||||
_apply_emissive_intensity(value)
|
||||
1
tgcc/train/train_glass_emission.gd.uid
Normal file
1
tgcc/train/train_glass_emission.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://5frq4qrokiy2
|
||||
Reference in New Issue
Block a user