11 Commits

Author SHA1 Message Date
Matteo Sonaglioni
4d169b3a2d fix human color 2026-06-30 17:02:08 +02:00
Matteo Sonaglioni
4b46448f74 fix farmer dress 2026-06-29 21:22:00 +02:00
Matteo Sonaglioni
0d49071724 fix color - optimization shadow - color animals 2026-06-29 18:14:59 +02:00
d0d052f65b polish 8 2026-06-29 13:33:30 +00:00
67a99051bd update save mode 2026-06-29 15:23:44 +02:00
fb848a9848 add new transaction and add splash screen 2026-06-29 14:59:58 +02:00
bc30a169dc fix stats manager 2026-06-29 10:48:58 +02:00
f5576959b7 add achievement for train change 2026-06-29 10:21:56 +02:00
b8ab8f4971 Merge pull request 'add whistle to train' (#38) from whitleandstats into main
Reviewed-on: #38
2026-06-29 08:20:37 +00:00
22653d62bc fix train_selector 2026-06-29 10:20:11 +02:00
6a2a2d2e8a add whistle to train 2026-06-29 08:35:14 +02:00
93 changed files with 1144 additions and 298 deletions

View File

@@ -5,6 +5,28 @@
[ext_resource type="PackedScene" uid="uid://4y4tffc723lg" path="res://core/ai/agents/fox/Fox_rig.fbx" id="2_xaafp"]
[ext_resource type="Script" uid="uid://bngfthvt04ivv" path="res://core/ai/framework/patrol_state.gd" id="3_d1sp2"]
[ext_resource type="Script" uid="uid://b5y4u0itec8g1" path="res://core/ai/framework/run_state.gd" id="4_d1sp2"]
[ext_resource type="Shader" uid="uid://d0ch5ofrgf7y6" path="res://core/daynight/trunk_shader.gdshader" id="6_oqxvo"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_4pdxi"]
render_priority = 0
shader = ExtResource("6_oqxvo")
shader_parameter/albedo_color = Color(0.5408599, 0.27705142, 0.12841594, 1)
shader_parameter/use_texture = true
shader_parameter/uv_scale = Vector2(3, 3)
shader_parameter/palette_shift_y = 0.0
shader_parameter/gradient_start_y = 0.0
shader_parameter/gradient_end_y = 1.5
shader_parameter/light_steps = 3.0
shader_parameter/step_softness = 0.1
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6
shader_parameter/use_ghibli_glint = true
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
shader_parameter/glint_intensity = 1.0
shader_parameter/glint_sharpness = 32.0
shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0
[node name="AiFox" unique_id=1228675528 node_paths=PackedStringArray("anim_player") instance=ExtResource("1_m3efo")]
navigation_layers = 4
@@ -61,4 +83,7 @@ bones/26/rotation = Quaternion(-3.3980676e-05, -0.00016874354, 0.9618461, -0.273
bones/27/rotation = Quaternion(-1.9324155e-08, 4.5031282e-08, -0.47071794, 0.8822838)
bones/28/rotation = Quaternion(4.549153e-05, -8.8271285e-05, 0.5290293, 0.84860367)
[node name="fox" parent="Fox_rig/Rig_Fox/Skeleton3D" index="0" unique_id=2042924802]
surface_material_override/1 = SubResource("ShaderMaterial_4pdxi")
[editable path="Fox_rig"]

View File

@@ -4,6 +4,50 @@
[ext_resource type="PackedScene" uid="uid://cumnmnbdjbgas" path="res://core/ai/agents/goat/Goat_rig.fbx" id="2_oxwbf"]
[ext_resource type="Script" uid="uid://d3hy70ec8vqo5" path="res://core/ai/framework/run_animation_state.gd" id="2_ucoix"]
[ext_resource type="Script" uid="uid://bngfthvt04ivv" path="res://core/ai/framework/patrol_state.gd" id="3_lqqd8"]
[ext_resource type="Shader" uid="uid://d0ch5ofrgf7y6" path="res://core/daynight/trunk_shader.gdshader" id="5_lqqd8"]
[ext_resource type="Material" uid="uid://cn20mp8ep3yxu" path="res://tgcc/chunk/material/wires.tres" id="6_xcxu7"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_xcxu7"]
render_priority = 0
shader = ExtResource("5_lqqd8")
shader_parameter/albedo_color = Color(0.46774077, 0.51844496, 0.510305, 1)
shader_parameter/use_texture = true
shader_parameter/uv_scale = Vector2(3, 3)
shader_parameter/palette_shift_y = 0.0
shader_parameter/gradient_start_y = 0.0
shader_parameter/gradient_end_y = 1.5
shader_parameter/light_steps = 3.0
shader_parameter/step_softness = 0.1
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6
shader_parameter/use_ghibli_glint = true
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
shader_parameter/glint_intensity = 1.0
shader_parameter/glint_sharpness = 32.0
shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0
[sub_resource type="ShaderMaterial" id="ShaderMaterial_lqqd8"]
render_priority = 0
shader = ExtResource("5_lqqd8")
shader_parameter/albedo_color = Color(0.49370736, 0.43829006, 0.29924837, 1)
shader_parameter/use_texture = true
shader_parameter/uv_scale = Vector2(3, 3)
shader_parameter/palette_shift_y = 0.0
shader_parameter/gradient_start_y = 0.0
shader_parameter/gradient_end_y = 1.5
shader_parameter/light_steps = 3.0
shader_parameter/step_softness = 0.1
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6
shader_parameter/use_ghibli_glint = true
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
shader_parameter/glint_intensity = 1.0
shader_parameter/glint_sharpness = 32.0
shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0
[node name="AiGoat" unique_id=1228675528 node_paths=PackedStringArray("anim_player") instance=ExtResource("1_f7hhh")]
anim_player = NodePath("Goat_rig/AnimationPlayer")
@@ -28,7 +72,7 @@ exit_on_action_finished = true
[node name="Goat_rig" parent="." index="3" unique_id=1336829719 instance=ExtResource("2_oxwbf")]
[node name="Skeleton3D" parent="Goat_rig/Rig_Goat" parent_id_path=PackedInt32Array(1336829719, 123281310) index="0" unique_id=1526518923]
[node name="Skeleton3D" parent="Goat_rig/Rig_Goat" parent_id_path=PackedInt32Array(1336829719, 1679574624) index="0" unique_id=1406072579]
bones/1/position = Vector3(-8.352713e-09, 0.36986786, 0.8951362)
bones/1/rotation = Quaternion(0.1276911, -0.695482, -0.12769035, 0.69548184)
bones/2/rotation = Quaternion(-8.7811394e-08, -9.458198e-08, -0.5904155, 0.80709946)
@@ -51,4 +95,10 @@ bones/26/rotation = Quaternion(2.713829e-07, 8.5825764e-07, 0.9653876, -0.260819
bones/27/rotation = Quaternion(-3.8362674e-07, 5.6200027e-09, -0.3680436, 0.92980856)
bones/28/rotation = Quaternion(-0.00015313082, -7.842175e-05, 0.45790914, 0.888999)
[node name="Goat" parent="Goat_rig/Rig_Goat/Skeleton3D" index="0" unique_id=1545212389]
surface_material_override/0 = SubResource("ShaderMaterial_xcxu7")
surface_material_override/1 = SubResource("ShaderMaterial_lqqd8")
surface_material_override/2 = ExtResource("6_xcxu7")
surface_material_override/3 = ExtResource("6_xcxu7")
[editable path="Goat_rig"]

Binary file not shown.

View File

@@ -3,6 +3,31 @@
[ext_resource type="PackedScene" uid="uid://mvh2v6v72stt" path="res://core/ai/agents/human/ai_human.tscn" id="1_l2y7m"]
[ext_resource type="Script" uid="uid://bngfthvt04ivv" path="res://core/ai/framework/patrol_state.gd" id="3_2oda6"]
[ext_resource type="Script" uid="uid://d3hy70ec8vqo5" path="res://core/ai/framework/run_animation_state.gd" id="4_2oda6"]
[ext_resource type="Shader" uid="uid://d0ch5ofrgf7y6" path="res://core/daynight/trunk_shader.gdshader" id="6_ejkex"]
[ext_resource type="Texture2D" uid="uid://jn4seoee6vtw" path="res://tgcc/chunk/prop/house/main_texture.png" id="7_ax7ee"]
[ext_resource type="Material" uid="uid://b2lg2y1k7grmo" path="res://tgcc/chunk/prop/tree/trunk.tres" id="9_gownw"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_gownw"]
render_priority = 0
shader = ExtResource("6_ejkex")
shader_parameter/albedo_color = Color(1, 1, 1, 1)
shader_parameter/albedo_texture = ExtResource("7_ax7ee")
shader_parameter/use_texture = true
shader_parameter/uv_scale = Vector2(1, 1)
shader_parameter/palette_shift_y = 0.0
shader_parameter/gradient_start_y = 0.0
shader_parameter/gradient_end_y = 10.0
shader_parameter/light_steps = 3.0
shader_parameter/step_softness = 0.1
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6
shader_parameter/use_ghibli_glint = true
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
shader_parameter/glint_intensity = 0.446000021185
shader_parameter/glint_sharpness = 7.000000285
shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0
[node name="AiFarmer" unique_id=1228675528 instance=ExtResource("1_l2y7m")]
navigation_layers = 2
@@ -71,4 +96,27 @@ bones/53/rotation = Quaternion(-0.25056988, -0.06629382, 0.018621337, 0.96564656
bones/54/rotation = Quaternion(0.549743, -0.041815143, -0.046032935, 0.83301574)
bones/55/rotation = Quaternion(0.3627838, -0.05369254, 0.01255593, 0.9302406)
[node name="hat_001" parent="Farmer1/BaseMesh/Skeleton3D" parent_id_path=PackedInt32Array(925374995, 224377346) index="1" unique_id=1950307793]
surface_material_override/0 = SubResource("ShaderMaterial_gownw")
[node name="pants" parent="Farmer1/BaseMesh/Skeleton3D" parent_id_path=PackedInt32Array(925374995, 224377346) index="2" unique_id=1080342530]
surface_material_override/0 = ExtResource("9_gownw")
[node name="shirt2" parent="Farmer1/BaseMesh/Skeleton3D" parent_id_path=PackedInt32Array(925374995, 224377346) index="3" unique_id=1846653994]
surface_material_override/0 = ExtResource("9_gownw")
surface_material_override/1 = ExtResource("9_gownw")
surface_material_override/2 = ExtResource("9_gownw")
[node name="pants" parent="Farmer2/BaseMesh/Skeleton3D" parent_id_path=PackedInt32Array(1239853450, 1824387143) index="1" unique_id=1777820543]
surface_material_override/0 = ExtResource("9_gownw")
[node name="shirt1" parent="Farmer2/BaseMesh/Skeleton3D" parent_id_path=PackedInt32Array(1239853450, 1824387143) index="2" unique_id=1243989703]
surface_material_override/0 = ExtResource("9_gownw")
surface_material_override/1 = ExtResource("9_gownw")
[node name="DressHuman" parent="." index="6" unique_id=107727715]
colors = Array[Color]([Color(0.8, 0.45490196, 0.32156864, 1), Color(0.84797, 0.6868576, 0.24382448, 1), Color(0.4862745, 0.60784316, 0.6901961, 1), Color(0.24718326, 0.3552445, 0.23638204, 1), Color(0.34000763, 0.32978323, 0.29223797, 1)])
[editable path="BaseMesh"]
[editable path="Farmer1"]
[editable path="Farmer2"]

View File

@@ -7,8 +7,13 @@
[ext_resource type="Animation" uid="uid://oq22ilhxjejj" path="res://core/ai/agents/human/idle.res" id="4_cuxdk"]
[ext_resource type="Animation" uid="uid://6xnsf8x7nmsl" path="res://core/ai/agents/human/walking.res" id="6_cuxdk"]
[ext_resource type="PackedScene" uid="uid://b3j2dbcqwodx1" path="res://core/ai/agents/human/Farmer1.fbx" id="7_hguxe"]
[ext_resource type="Material" uid="uid://blqelpjvdv23j" path="res://tgcc/chunk/material/grassflat_chunk.tres" id="8_362f3"]
[ext_resource type="PackedScene" uid="uid://c5x3ycaxixpxy" path="res://core/ai/agents/human/Farmer2.fbx" id="8_ke7sb"]
[ext_resource type="Script" uid="uid://dauqq8cqmwrqh" path="res://core/ai/agents/human/dress_human.gd" id="9_2tpdi"]
[ext_resource type="Material" uid="uid://b4luvp3fi0p43" path="res://tgcc/chunk/material/railway_chunk.tres" id="9_12auf"]
[ext_resource type="Shader" uid="uid://d0ch5ofrgf7y6" path="res://core/daynight/trunk_shader.gdshader" id="10_3t1a4"]
[ext_resource type="Texture2D" uid="uid://jn4seoee6vtw" path="res://tgcc/chunk/prop/house/main_texture.png" id="11_o6vi4"]
[ext_resource type="Material" uid="uid://wkegx4a21x7u" path="res://tgcc/chunk/prop/fence/fences.tres" id="11_v2pkc"]
[sub_resource type="AnimationLibrary" id="AnimationLibrary_8kg0q"]
_data = {
@@ -18,6 +23,28 @@ _data = {
&"walking": ExtResource("6_cuxdk")
}
[sub_resource type="ShaderMaterial" id="ShaderMaterial_vuqrb"]
render_priority = 0
shader = ExtResource("10_3t1a4")
shader_parameter/albedo_color = Color(1, 1, 1, 1)
shader_parameter/albedo_texture = ExtResource("11_o6vi4")
shader_parameter/use_texture = true
shader_parameter/uv_scale = Vector2(1, 1)
shader_parameter/palette_shift_y = 0.0
shader_parameter/gradient_start_y = 0.0
shader_parameter/gradient_end_y = 10.0
shader_parameter/light_steps = 3.0
shader_parameter/step_softness = 0.1
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6
shader_parameter/use_ghibli_glint = false
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
shader_parameter/glint_intensity = 2.000000095
shader_parameter/glint_sharpness = 7.000000285
shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0
[sub_resource type="AnimationLibrary" id="AnimationLibrary_ke7sb"]
_data = {
&"gathering": ExtResource("3_8kg0q"),
@@ -26,6 +53,28 @@ _data = {
&"walking": ExtResource("6_cuxdk")
}
[sub_resource type="ShaderMaterial" id="ShaderMaterial_v2pkc"]
render_priority = 0
shader = ExtResource("10_3t1a4")
shader_parameter/albedo_color = Color(1, 1, 1, 1)
shader_parameter/albedo_texture = ExtResource("11_o6vi4")
shader_parameter/use_texture = true
shader_parameter/uv_scale = Vector2(1, 1)
shader_parameter/palette_shift_y = 0.0
shader_parameter/gradient_start_y = 0.0
shader_parameter/gradient_end_y = 10.0
shader_parameter/light_steps = 3.0
shader_parameter/step_softness = 0.1
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6
shader_parameter/use_ghibli_glint = false
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
shader_parameter/glint_intensity = 2.000000095
shader_parameter/glint_sharpness = 7.000000285
shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0
[sub_resource type="AnimationLibrary" id="AnimationLibrary_2tpdi"]
_data = {
&"gathering": ExtResource("3_8kg0q"),
@@ -40,7 +89,7 @@ anim_player = NodePath("BaseMesh/AnimationPlayer")
[node name="BaseMesh" parent="." index="3" unique_id=1846171523 instance=ExtResource("3_ef4cu")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.9, 0)
[node name="Skeleton3D" parent="BaseMesh/BaseMesh" parent_id_path=PackedInt32Array(1846171523, 2032005240) index="0" unique_id=1876883359]
[node name="Skeleton3D" parent="BaseMesh/BaseMesh" parent_id_path=PackedInt32Array(1846171523, 1363988051) index="0" unique_id=1848874512]
bones/0/position = Vector3(-0.0024333135, 0.9952637, 6.9276895e-05)
bones/0/rotation = Quaternion(-0.0049152793, -0.050206795, -0.026513178, 0.99837476)
bones/1/rotation = Quaternion(-0.025209453, 0.006135946, 0.009180705, 0.9996213)
@@ -83,14 +132,14 @@ bones/53/rotation = Quaternion(-0.10502596, -0.00032293255, 0.008123855, 0.99443
bones/54/rotation = Quaternion(0.51151097, 0.066536464, -0.07767137, 0.8531686)
bones/55/rotation = Quaternion(0.3453064, -0.067497015, 0.02391528, 0.93575406)
[node name="AnimationPlayer" parent="BaseMesh" index="1" unique_id=226905852]
[node name="AnimationPlayer" parent="BaseMesh" index="1" unique_id=930749540]
libraries/custom = SubResource("AnimationLibrary_8kg0q")
[node name="Farmer1" parent="." index="4" unique_id=925374995 instance=ExtResource("7_hguxe")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.9, 0)
visible = false
[node name="Skeleton3D" parent="Farmer1/BaseMesh" parent_id_path=PackedInt32Array(925374995, 35893719) index="0" unique_id=264693097]
[node name="Skeleton3D" parent="Farmer1/BaseMesh" parent_id_path=PackedInt32Array(925374995, 1608049295) index="0" unique_id=224377346]
bones/0/position = Vector3(0.00060560287, 0.9719096, 0.007789615)
bones/0/rotation = Quaternion(-0.03158553, -0.024531638, -0.086598895, 0.9954402)
bones/1/rotation = Quaternion(-0.068302006, -0.011589706, 0.088431515, 0.99367017)
@@ -133,14 +182,31 @@ bones/53/rotation = Quaternion(-0.20515193, 0.049833227, 0.0071537, 0.9774345)
bones/54/rotation = Quaternion(0.55275166, -0.049315806, -0.007871797, 0.8318483)
bones/55/rotation = Quaternion(0.326561, -0.058840513, 0.019667907, 0.9431378)
[node name="AnimationPlayer" parent="Farmer1" index="1" unique_id=1795570086]
[node name="Cesto" parent="Farmer1/BaseMesh/Skeleton3D" index="0" unique_id=1473592366]
surface_material_override/0 = ExtResource("8_362f3")
surface_material_override/1 = ExtResource("9_12auf")
surface_material_override/2 = ExtResource("9_12auf")
[node name="hat_001" parent="Farmer1/BaseMesh/Skeleton3D" index="1" unique_id=1950307793]
surface_material_override/0 = SubResource("ShaderMaterial_vuqrb")
surface_material_override/1 = ExtResource("11_v2pkc")
[node name="pants" parent="Farmer1/BaseMesh/Skeleton3D" index="2" unique_id=1080342530]
surface_material_override/0 = ExtResource("11_v2pkc")
[node name="shirt2" parent="Farmer1/BaseMesh/Skeleton3D" index="3" unique_id=1846653994]
surface_material_override/0 = ExtResource("11_v2pkc")
surface_material_override/1 = ExtResource("11_v2pkc")
surface_material_override/2 = ExtResource("11_v2pkc")
[node name="AnimationPlayer" parent="Farmer1" index="1" unique_id=2137081705]
libraries/custom = SubResource("AnimationLibrary_ke7sb")
[node name="Farmer2" parent="." index="5" unique_id=1239853450 instance=ExtResource("8_ke7sb")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.9, 0)
visible = false
[node name="Skeleton3D" parent="Farmer2/BaseMesh" parent_id_path=PackedInt32Array(1239853450, 2123768022) index="0" unique_id=1560566445]
[node name="Skeleton3D" parent="Farmer2/BaseMesh" parent_id_path=PackedInt32Array(1239853450, 2068119799) index="0" unique_id=1824387143]
bones/0/position = Vector3(0.00060560287, 0.9719096, 0.007789615)
bones/0/rotation = Quaternion(-0.03158553, -0.024531638, -0.086598895, 0.9954402)
bones/1/rotation = Quaternion(-0.068302006, -0.011589706, 0.088431515, 0.99367017)
@@ -183,13 +249,24 @@ bones/53/rotation = Quaternion(-0.20515193, 0.049833227, 0.0071537, 0.9774345)
bones/54/rotation = Quaternion(0.55275166, -0.049315806, -0.007871797, 0.8318483)
bones/55/rotation = Quaternion(0.326561, -0.058840513, 0.019667907, 0.9431378)
[node name="AnimationPlayer" parent="Farmer2" index="1" unique_id=916643412]
[node name="hat_001" parent="Farmer2/BaseMesh/Skeleton3D" index="0" unique_id=1838787788]
surface_material_override/0 = SubResource("ShaderMaterial_v2pkc")
surface_material_override/1 = ExtResource("11_v2pkc")
[node name="pants" parent="Farmer2/BaseMesh/Skeleton3D" index="1" unique_id=1777820543]
surface_material_override/0 = ExtResource("11_v2pkc")
[node name="shirt1" parent="Farmer2/BaseMesh/Skeleton3D" index="2" unique_id=1243989703]
surface_material_override/0 = ExtResource("11_v2pkc")
surface_material_override/1 = ExtResource("11_v2pkc")
[node name="AnimationPlayer" parent="Farmer2" index="1" unique_id=995025267]
libraries/custom = SubResource("AnimationLibrary_2tpdi")
[node name="DressHuman" type="Node3D" parent="." index="6" unique_id=107727715 node_paths=PackedStringArray("farmers", "main_anim_player")]
script = ExtResource("9_2tpdi")
farmers = [NodePath("../Farmer1"), NodePath("../Farmer2")]
colors = Array[Color]([Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(1, 0, 0, 1), Color(0, 1, 0, 1), Color(0, 0, 1, 1)])
colors = Array[Color]([Color(0.4089676, 0.23789883, 0.083061926, 1), Color(0.4862745, 0.60784316, 0.6901961, 1), Color(0.3529412, 0.41960785, 0.32941177, 1), Color(0.31533447, 0.3330399, 0.29725653, 1)])
main_anim_player = NodePath("../BaseMesh/AnimationPlayer")
[editable path="BaseMesh"]

View File

@@ -4,6 +4,71 @@
[ext_resource type="Script" uid="uid://d3hy70ec8vqo5" path="res://core/ai/framework/run_animation_state.gd" id="2_euyvm"]
[ext_resource type="PackedScene" uid="uid://dg6eq5bjdv77x" path="res://core/ai/agents/wagyu/Wagyu_rig.fbx" id="2_kinfw"]
[ext_resource type="Script" uid="uid://bngfthvt04ivv" path="res://core/ai/framework/patrol_state.gd" id="3_stslt"]
[ext_resource type="Shader" uid="uid://d0ch5ofrgf7y6" path="res://core/daynight/trunk_shader.gdshader" id="5_stslt"]
[ext_resource type="Material" uid="uid://cn20mp8ep3yxu" path="res://tgcc/chunk/material/wires.tres" id="7_qxgon"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_jndo6"]
render_priority = 0
shader = ExtResource("5_stslt")
shader_parameter/albedo_color = Color(0.3003036, 0.13408488, 0.037156556, 1)
shader_parameter/use_texture = true
shader_parameter/uv_scale = Vector2(3, 3)
shader_parameter/palette_shift_y = 0.0
shader_parameter/gradient_start_y = 0.0
shader_parameter/gradient_end_y = 1.5
shader_parameter/light_steps = 3.0
shader_parameter/step_softness = 0.1
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6
shader_parameter/use_ghibli_glint = true
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
shader_parameter/glint_intensity = 1.0
shader_parameter/glint_sharpness = 32.0
shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0
[sub_resource type="ShaderMaterial" id="ShaderMaterial_ffprj"]
render_priority = 0
shader = ExtResource("5_stslt")
shader_parameter/albedo_color = Color(0.8936267, 0.48305064, 0.25341055, 1)
shader_parameter/use_texture = true
shader_parameter/uv_scale = Vector2(3, 3)
shader_parameter/palette_shift_y = 0.0
shader_parameter/gradient_start_y = 0.0
shader_parameter/gradient_end_y = 1.5
shader_parameter/light_steps = 3.0
shader_parameter/step_softness = 0.1
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6
shader_parameter/use_ghibli_glint = true
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
shader_parameter/glint_intensity = 1.0
shader_parameter/glint_sharpness = 32.0
shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0
[sub_resource type="ShaderMaterial" id="ShaderMaterial_4po7g"]
render_priority = 0
shader = ExtResource("5_stslt")
shader_parameter/albedo_color = Color(0.91262335, 0.6514041, 0.37075257, 1)
shader_parameter/use_texture = true
shader_parameter/uv_scale = Vector2(3, 3)
shader_parameter/palette_shift_y = 0.0
shader_parameter/gradient_start_y = 0.0
shader_parameter/gradient_end_y = 1.5
shader_parameter/light_steps = 3.0
shader_parameter/step_softness = 0.1
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6
shader_parameter/use_ghibli_glint = true
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
shader_parameter/glint_intensity = 1.0
shader_parameter/glint_sharpness = 32.0
shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0
[node name="AiWagyu" unique_id=1228675528 node_paths=PackedStringArray("anim_player") instance=ExtResource("1_01jto")]
anim_player = NodePath("Wagyu_rig/AnimationPlayer")
@@ -28,7 +93,7 @@ exit_on_action_finished = true
[node name="Wagyu_rig" parent="." index="3" unique_id=434062845 instance=ExtResource("2_kinfw")]
[node name="Skeleton3D" parent="Wagyu_rig/Rig_wagyu" parent_id_path=PackedInt32Array(434062845, 984050088) index="0" unique_id=1381831503]
[node name="Skeleton3D" parent="Wagyu_rig/Rig_wagyu" parent_id_path=PackedInt32Array(434062845, 1389976890) index="0" unique_id=1274413548]
bones/1/position = Vector3(3.0605813e-06, 0.93198204, 1.5827273)
bones/1/rotation = Quaternion(0.12769, -0.69548225, -0.12769146, 0.6954816)
bones/2/rotation = Quaternion(-7.474808e-08, -1.0355375e-07, -0.5904155, 0.80709946)
@@ -51,4 +116,10 @@ bones/26/rotation = Quaternion(3.2779312e-07, 1.2327837e-06, 0.9652686, -0.26125
bones/27/rotation = Quaternion(-6.191086e-07, -2.305114e-07, -0.36804327, 0.9298087)
bones/28/rotation = Quaternion(-0.0001528551, -7.8230434e-05, 0.45790893, 0.8889991)
[node name="Wagyu" parent="Wagyu_rig/Rig_wagyu/Skeleton3D" index="0" unique_id=2005444162]
surface_material_override/0 = SubResource("ShaderMaterial_jndo6")
surface_material_override/1 = SubResource("ShaderMaterial_ffprj")
surface_material_override/2 = ExtResource("7_qxgon")
surface_material_override/3 = SubResource("ShaderMaterial_4po7g")
[editable path="Wagyu_rig"]

View File

@@ -1,7 +1,7 @@
extends Path3D
const STEAM_DISTANCE_STAT: String = "stat_distance_km"
const STEAM_DISTANCE_KM_PER_UNIT: float = 1#0.001
const DISTANCE_KM_PER_UNIT: float = 0.001
@export_group("Train")
##train speed
@@ -396,13 +396,13 @@ func _track_steam_distance(distance_units: float) -> void:
return
# Always track the global distance in our save file (for UI and persistency)
GameState.save_data.total_distance_km += distance_units * STEAM_DISTANCE_KM_PER_UNIT
GameState.save_data.total_distance_km += distance_units * DISTANCE_KM_PER_UNIT
# Steam specific logic
if not SteamManager.is_on_steam:
return
_pending_steam_distance_km += distance_units * STEAM_DISTANCE_KM_PER_UNIT
_pending_steam_distance_km += distance_units * DISTANCE_KM_PER_UNIT
var whole_km: int = int(floor(_pending_steam_distance_km))
if whole_km <= 0:
return

View File

@@ -1,5 +1,5 @@
shader_type spatial;
render_mode blend_mix, depth_draw_opaque, cull_disabled;
render_mode blend_mix, depth_draw_opaque, cull_disabled, shadows_disabled;
//Wire color
uniform vec4 albedo_color : source_color = vec4(0.1, 0.1, 0.1, 1.0);

View File

@@ -5,3 +5,4 @@
[resource]
render_priority = 0
shader = ExtResource("1_6saq1")
shader_parameter/albedo_color = Color(0.1, 0.1, 0.1, 1)

View File

@@ -35,6 +35,8 @@ func _set_selected_color(index: int, material_index: int) -> void:
else:
color_pickers[i].deselect()
AchievementManager.is_unlocked("ACH_CHANGE_TRAIN_COLOR")
func _on_color_selected(selected_color_picker: TrainColorPicker, material_index: int) -> void:
var color_pickers = color_pickers_1 if material_index == 0 else color_pickers_2
for i in range(color_pickers.size()):

View File

@@ -68,36 +68,37 @@ alignment = 1
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 4
color = Color(0.7432059, 0.5684909, 1, 1)
color = Color(0.72156864, 0.3529412, 0.32156864, 1)
[node name="ColorPicker2" parent="TextureRect/MarginContainer/HBoxContainer" unique_id=584054476 instance=ExtResource("3_i2rs1")]
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 4
color = Color(0.47657922, 0.8792635, 0.8823829, 1)
color = Color(0.83137256, 0.61960787, 0.3254902, 1)
[node name="ColorPicker3" parent="TextureRect/MarginContainer/HBoxContainer" unique_id=889429149 instance=ExtResource("3_i2rs1")]
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 4
color = Color(0.54004896, 0.5516501, 0.45533067, 1)
color = Color(0.35686275, 0.54901963, 0.5803922, 1)
[node name="ColorPicker4" parent="TextureRect/MarginContainer/HBoxContainer" unique_id=466686411 instance=ExtResource("3_i2rs1")]
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 4
color = Color(0.40863404, 1, 0.47657922, 1)
color = Color(0.43137255, 0.52156866, 0.40784314, 1)
[node name="ColorPicker5" parent="TextureRect/MarginContainer/HBoxContainer" unique_id=675841518 instance=ExtResource("3_i2rs1")]
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 4
color = Color(1, 0, 0, 1)
color = Color(0.5568628, 0.49803922, 0.65882355, 1)
[node name="ColorPicker6" parent="TextureRect/MarginContainer/HBoxContainer" unique_id=1698412911 instance=ExtResource("3_i2rs1")]
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 4
color = Color(0.32156864, 0.43137255, 0.49019608, 1)
[node name="TextureRect2" type="TextureRect" parent="." unique_id=1180760395]
layout_mode = 2
@@ -123,13 +124,13 @@ alignment = 1
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 4
color = Color(0.7432059, 0.5684909, 1, 1)
color = Color(0.92156863, 0.7529412, 0.40784314, 1)
[node name="ColorPicker8" parent="TextureRect2/MarginContainer/HBoxContainer2" unique_id=396324135 instance=ExtResource("3_i2rs1")]
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 4
color = Color(0.47657922, 0.8792635, 0.8823829, 1)
color = Color(0.9529412, 0.91764706, 0.827451, 1)
[node name="ColorPicker9" parent="TextureRect2/MarginContainer/HBoxContainer2" unique_id=1233950004 instance=ExtResource("3_i2rs1")]
unique_name_in_owner = true
@@ -141,19 +142,20 @@ color = Color(0.54004896, 0.5516501, 0.45533067, 1)
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 4
color = Color(0.40863404, 1, 0.47657922, 1)
color = Color(0.33591065, 0.42461705, 0.38732395, 1)
[node name="ColorPicker11" parent="TextureRect2/MarginContainer/HBoxContainer2" unique_id=831493295 instance=ExtResource("3_i2rs1")]
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 4
color = Color(1, 0, 0, 1)
color = Color(0.44940293, 0.7807106, 0.89803255, 1)
[node name="ColorPicker12" parent="TextureRect2/MarginContainer/HBoxContainer2" unique_id=170636843 instance=ExtResource("3_i2rs1")]
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 4
color = Color(0.9098039, 0.6, 0.5529412, 1)
[node name="ContainerTween" parent="." unique_id=160227524 node_paths=PackedStringArray("targets") instance=ExtResource("10_i2rs1")]
unique_name_in_owner = true
targets = [NodePath(""), NodePath("../TextureRect/MarginContainer/HBoxContainer/ColorPicker1"), NodePath("../TextureRect/MarginContainer/HBoxContainer/ColorPicker2"), NodePath("../TextureRect/MarginContainer/HBoxContainer/ColorPicker3"), NodePath("../TextureRect/MarginContainer/HBoxContainer/ColorPicker4"), NodePath("../TextureRect/MarginContainer/HBoxContainer/ColorPicker5"), NodePath("../TextureRect/MarginContainer/HBoxContainer/ColorPicker6"), NodePath("")]
targets = [null, NodePath("../TextureRect/MarginContainer/HBoxContainer/ColorPicker1"), NodePath("../TextureRect/MarginContainer/HBoxContainer/ColorPicker2"), NodePath("../TextureRect/MarginContainer/HBoxContainer/ColorPicker3"), NodePath("../TextureRect/MarginContainer/HBoxContainer/ColorPicker4"), NodePath("../TextureRect/MarginContainer/HBoxContainer/ColorPicker5"), NodePath("../TextureRect/MarginContainer/HBoxContainer/ColorPicker6"), null]

View File

@@ -9,10 +9,10 @@ func _ready() -> void:
deselect()
disable()
func set_option_text(text: String) -> void:
func set_option_text(_text: String) -> void:
if label == null:
label = $%Label
label.text = text
label.text = _text
func select() -> void:
if checkbox == null:

View File

@@ -22,6 +22,7 @@ signal on_photo_taken_finished
signal on_photo_mode_black_screen_disappeared
const SAVE_PATH: String = "user://savegame.json"
const SAVE_PASSWORD: String = "jmpgames_megapwd"
var save_data: SaveGameData = SaveGameData.new()
var is_loaded: bool = false
@@ -39,7 +40,7 @@ func apply_video_settings() -> void:
get_viewport().use_taa = save_data.anti_aliasing
var msaa_mode = Viewport.MSAA_2X if save_data.anti_aliasing else Viewport.MSAA_DISABLED
get_viewport().msaa_3d = msaa_mode
get_viewport().msaa_2d = msaa_mode
get_viewport().msaa_2d = Viewport.MSAA_DISABLED
func apply_train_colors() -> void:
if not save_data.train_color_1.is_empty():
@@ -64,33 +65,68 @@ func apply_train_colors() -> void:
DisplayServer.window_set_size(Vector2i(save_data.resolution_x, save_data.resolution_y))
# Optional: center the window if resized
var screen_center = DisplayServer.screen_get_position() + DisplayServer.screen_get_size() / 2
var window_size = DisplayServer.window_get_size()
DisplayServer.window_set_position(screen_center - window_size / 2)
func save_game() -> void:
var save_file = FileAccess.open(SAVE_PATH, FileAccess.WRITE)
var json_string = JSON.stringify(save_data.to_dictionary())
save_file.store_line(json_string)
var screen_position: Vector2i = DisplayServer.screen_get_position()
var screen_size: Vector2i = DisplayServer.screen_get_size()
var window_size: Vector2i = DisplayServer.window_get_size()
var screen_center := screen_position + Vector2i(
floori(float(screen_size.x) / 2.0),
floori(float(screen_size.y) / 2.0)
)
var window_half_size := Vector2i(
floori(float(window_size.x) / 2.0),
floori(float(window_size.y) / 2.0)
)
DisplayServer.window_set_position(screen_center - window_half_size)
#encrypted file + binary serialization (standard)
func load_game() -> void:
if not FileAccess.file_exists(SAVE_PATH):
save_data = SaveGameData.new()
is_loaded = true
return
var file = FileAccess.open(SAVE_PATH, FileAccess.READ)
var json_string = file.get_as_text()
var json = JSON.new()
var parse_result = json.parse(json_string)
var file := FileAccess.open_encrypted_with_pass(SAVE_PATH, FileAccess.READ, SAVE_PASSWORD)
save_data = SaveGameData.new()
if parse_result == OK and json.data is Dictionary:
save_data = SaveGameData.from_dictionary(json.data)
if file != null:
var data = file.get_var()
file.close()
if data is Dictionary:
save_data = SaveGameData.from_dictionary(data)
#if file == null the key or the file is corrupted -> start with new data
is_loaded = true
func save_game() -> void:
var file := FileAccess.open_encrypted_with_pass(SAVE_PATH, FileAccess.WRITE, SAVE_PASSWORD)
if file == null:
push_error("Salvataggio fallito: %s" % FileAccess.get_open_error())
return
file.store_var(save_data.to_dictionary()) # binario, non JSON
file.close()
#JSon Version
#func save_game() -> void:
#var save_file = FileAccess.open(SAVE_PATH, FileAccess.WRITE)
#var json_string = JSON.stringify(save_data.to_dictionary())
#save_file.store_line(json_string)
#
#func load_game() -> void:
#if not FileAccess.file_exists(SAVE_PATH):
#save_data = SaveGameData.new()
#is_loaded = true
#return
#
#var file = FileAccess.open(SAVE_PATH, FileAccess.READ)
#var json_string = file.get_as_text()
#
#var json = JSON.new()
#var parse_result = json.parse(json_string)
#
#save_data = SaveGameData.new()
#if parse_result == OK and json.data is Dictionary:
#save_data = SaveGameData.from_dictionary(json.data)
#
#is_loaded = true
func pause_game() -> void:
get_tree().paused = true

View File

@@ -1,6 +1,5 @@
extends Control
@onready var game_menu: Control = $%GameMenu
@onready var game_menu_panel: Control = $%GameMenuPanel
@onready var menu_icon_button: Button = $%MenuIconButton
@@ -43,10 +42,12 @@ func _ready() -> void:
choo_choo_button.pressed.connect(_on_choo_choo_button_pressed)
resume_button.pressed.connect(_on_resume_button_pressed)
func _process(delta: float) -> void:
func _process(_delta: float) -> void:
if time_label and dist_label and GameState.is_loaded:
var time = GameState.save_data.total_time_played_seconds
@warning_ignore("integer_division")
var hours = int(time) / 3600
@warning_ignore("integer_division")
var minutes = (int(time) % 3600) / 60
var seconds = int(time) % 60
time_label.text = "Travel Time: %02d:%02d:%02d" % [hours, minutes, seconds]
@@ -112,6 +113,8 @@ func _on_weather_row_on_option_changed(data: String) -> void:
pick_random_weather()
_:
pass
AchievementManager.is_unlocked("ACH_CHANGE_METEO")
func pick_random_weather() -> void:
var valid_buttons = []
@@ -189,6 +192,8 @@ func _on_photo_taken_finished() -> void:
await tween.finished
photo_mode_black_screen.hide()
GameState.on_photo_mode_black_screen_disappeared.emit()
StatsManager.add_int("stat_photo_number", 1)
StatsManager.store()
func _on_choo_choo_button_pressed() -> void:
#play sfx

View File

@@ -0,0 +1,70 @@
## Updates total elapsed time and train distance labels.
class_name TotalStatsDisplay
extends Node
const RAILS_SCRIPT = preload("res://core/biome_generator/rails.gd")
const SECONDS_PER_MINUTE: int = 60
const MINUTES_PER_HOUR: int = 60
const HOURS_PER_DAY: int = 24
#DISTANCE_KM_PER_UNIT is taken from rails.gd constant
@export var time_label_path: NodePath
@export var distance_label_path: NodePath
@export var rail_path: NodePath
var _elapsed_seconds: float = 0.0
var _total_distance_km: float = 0.0
var _last_train_progress: float = -1.0
@onready var _time_label: Label = get_node_or_null(time_label_path) as Label
@onready var _distance_label: Label = get_node_or_null(distance_label_path) as Label
@onready var _rail_path: Path3D = get_node_or_null(rail_path) as Path3D
func _ready() -> void:
_update_time_label()
_update_distance_label()
func _process(delta: float) -> void:
_elapsed_seconds += delta
_update_total_distance()
_update_time_label()
_update_distance_label()
func _update_total_distance() -> void:
if _rail_path == null or _rail_path.curve == null:
return
var current_train_progress: float = float(_rail_path.get("train_progress"))
if _last_train_progress < 0.0:
_last_train_progress = current_train_progress
return
var total_length: float = _rail_path.curve.get_baked_length()
if total_length <= 0.0:
return
var progress_delta: float = absf(current_train_progress - _last_train_progress)
var wrapped_progress_delta: float = minf(progress_delta, total_length - progress_delta)
_total_distance_km += wrapped_progress_delta * RAILS_SCRIPT.DISTANCE_KM_PER_UNIT
_last_train_progress = current_train_progress
func _update_time_label() -> void:
if _time_label == null:
return
var total_minutes: int = int(floor(_elapsed_seconds / SECONDS_PER_MINUTE))
var days: int = floori(float(total_minutes) / float(MINUTES_PER_HOUR * HOURS_PER_DAY))
var hours: int = floori(float(total_minutes) / float(MINUTES_PER_HOUR)) % HOURS_PER_DAY
var minutes: int = total_minutes % MINUTES_PER_HOUR
_time_label.text = "Time %dd %02dh %02dm" % [days, hours, minutes]
func _update_distance_label() -> void:
if _distance_label == null:
return
_distance_label.text = "Distance %.1f km" % _total_distance_km

View File

@@ -0,0 +1 @@
uid://c2usnexa5x7pg

View File

@@ -1,6 +1,6 @@
class_name SceneConfig
extends Resource
enum SceneName { MAIN_MENU, GAME }
enum SceneName { MAIN_MENU, GAME, SPLASH_SCREEN }
@export var scenes: Dictionary[SceneName, PackedScene]

View File

@@ -3,11 +3,13 @@
[ext_resource type="PackedScene" uid="uid://btcpge7cj2041" path="res://core/main_menu/main_menu.tscn" id="1_72aup"]
[ext_resource type="Script" uid="uid://bbgyhmb8a17i7" path="res://core/scene_manager/scene_config.gd" id="1_km45g"]
[ext_resource type="PackedScene" uid="uid://vjf4bdxd8saj" path="res://tgcc/main_scene.tscn" id="2_prsyo"]
[ext_resource type="PackedScene" uid="uid://ri5kxx4mipo" path="res://core/splash_screen/splash_screen.tscn" id="3_aasbo"]
[resource]
script = ExtResource("1_km45g")
scenes = Dictionary[int, PackedScene]({
0: ExtResource("1_72aup"),
1: ExtResource("2_prsyo")
1: ExtResource("2_prsyo"),
2: ExtResource("3_aasbo")
})
metadata/_custom_type_script = "uid://bbgyhmb8a17i7"

View File

@@ -4,41 +4,91 @@ extends CanvasLayer
@onready var color_rect = $ColorRect
@onready var loading_screen = $LoadingScreen
@export var transition_duration: float = 1
const SHADER_PATH := "res://core/transition.gdshader"
func _ready() -> void:
color_rect.color.a = 0.0
color_rect.mouse_filter = Control.MOUSE_FILTER_IGNORE
loading_screen.hide()
_build_material()
_update_resolution()
get_viewport().size_changed.connect(_update_resolution)
_set_factor(0.0)
color_rect.visible = false
func change_scene(scene_enum: SceneConfig.SceneName) -> void:
func _build_material() -> void:
var mat := ShaderMaterial.new()
mat.shader = load(SHADER_PATH)
#directional gradient: botto-left-> black; top-right -> white
var g := Gradient.new()
g.set_color(0, Color.BLACK)
g.set_color(1, Color.WHITE)
var grad_tex := GradientTexture2D.new()
grad_tex.gradient = g
grad_tex.fill = GradientTexture2D.FILL_LINEAR
grad_tex.fill_from = Vector2(0.0, 1.0) # bottom-left
grad_tex.fill_to = Vector2(1.0, 0.0) # top-right
grad_tex.width = 256
grad_tex.height = 256
#shape: sphere (white at the center, black around)
var sg := Gradient.new()
sg.set_color(0, Color.WHITE)
sg.set_color(1, Color.BLACK)
var shape_tex := GradientTexture2D.new()
shape_tex.gradient = sg
shape_tex.fill = GradientTexture2D.FILL_RADIAL
shape_tex.fill_from = Vector2(0.5, 0.5) # center
shape_tex.fill_to = Vector2(0.5, 0.0) # ray
shape_tex.width = 64
shape_tex.height = 64
mat.set_shader_parameter("base_color", Color.BLACK)
mat.set_shader_parameter("gradient_texture", grad_tex)
mat.set_shader_parameter("gradient_fixed", false)
mat.set_shader_parameter("shape_texture", shape_tex)
mat.set_shader_parameter("shape_tiling", 16.0)
mat.set_shader_parameter("shape_rotation", 0.0)
mat.set_shader_parameter("shape_scroll", Vector2.ZERO)
mat.set_shader_parameter("shape_feathering", 0.05)
mat.set_shader_parameter("shape_treshold", 1.0) # >=1 -> full at the end of the transation
mat.set_shader_parameter("width", 0.5)
color_rect.material = mat
func _update_resolution() -> void:
var s := get_viewport().get_visible_rect().size
color_rect.material.set_shader_parameter("node_resolution", s)
func _set_factor(v: float) -> void:
color_rect.material.set_shader_parameter("factor", v)
func cover(duration := 0.5) -> void:
color_rect.visible = true
var t := create_tween()
t.tween_method(_set_factor, 0.0, 1.0, duration)
await t.finished
func reveal(duration := 0.5) -> void:
var t := create_tween()
t.tween_method(_set_factor, 1.0, 0.0, duration)
await t.finished
color_rect.visible = false
func change_scene(scene_enum: SceneConfig.SceneName) -> void:
if not config or not config.scenes.has(scene_enum):
return
var target_scene: PackedScene = config.scenes[scene_enum]
color_rect.mouse_filter = Control.MOUSE_FILTER_STOP
loading_screen.visible = true
var tween_in = create_tween()
tween_in.tween_property(color_rect, "color:a", 1.0, transition_duration)
await tween_in.finished
loading_screen.show()
await get_tree().process_frame
await cover(transition_duration)
get_tree().change_scene_to_packed(target_scene)
await reveal(transition_duration)
loading_screen.hide()
var tween_out = create_tween()
tween_out.tween_property(color_rect, "color:a", 0.0, transition_duration)
await tween_out.finished
loading_screen.visible = false
color_rect.mouse_filter = Control.MOUSE_FILTER_IGNORE
func quit_game() -> void:
color_rect.mouse_filter = Control.MOUSE_FILTER_STOP
var tween = create_tween()
tween.tween_property(color_rect, "color:a", 1.0, transition_duration)
await tween.finished
get_tree().quit()

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dp3qxncy8u184"
path="res://.godot/imported/jmp_logo.png-c6094efb2c4c429c25ff79b5a4cee21c.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/splash_screen/jmp_logo.png"
dest_files=["res://.godot/imported/jmp_logo.png-c6094efb2c4c429c25ff79b5a4cee21c.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View File

@@ -0,0 +1,8 @@
extends Control
@export var main_menu_scene: PackedScene
@export var display_time: float = 3.0
func _ready() -> void:
await get_tree().create_timer(display_time).timeout
SceneManager.change_scene(SceneConfig.SceneName.MAIN_MENU)

View File

@@ -0,0 +1 @@
uid://ckj2pcoxi5j3

View File

@@ -0,0 +1,18 @@
[gd_scene format=3 uid="uid://ri5kxx4mipo"]
[ext_resource type="Script" uid="uid://ckj2pcoxi5j3" path="res://core/splash_screen/splash_screen.gd" id="1_elsnp"]
[ext_resource type="Texture2D" uid="uid://dp3qxncy8u184" path="res://core/splash_screen/jmp_logo.png" id="1_jkpgl"]
[node name="Control" type="Control" unique_id=163470013]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_elsnp")
[node name="JMPLogo" type="Sprite2D" parent="." unique_id=1244888940]
position = Vector2(980.99994, 556)
scale = Vector2(0.37799045, 0.37799042)
texture = ExtResource("1_jkpgl")

View File

@@ -4,23 +4,22 @@ extends Node
#if you have an error setting achievements or stats in debug mode remember to open your steam client
#with jmp games account or another account who bought this game. If error persist try to clos and reopen steam client.
const KNOWN := [
"ACH_DISTANCE_100",
"ACH_DISTANCE_200",
"ACH_10_PHOTOS",
"ACH_CHANGE_METEO",
"ACH_CHANGE_TRAIN_COLOR",
]
#how it works:
#func _on_player_won() -> void:
# Achievements.unlock("ACH_DISTANCE_100") #unlock the achievement at first win
# AchievementManager.unlock("ACH_DISTANCE_100") #unlock the achievement at first win
#func _on_match_finished(coins_collected: int) -> void:
#update stats
#...
#check thresholds and unlock achievements
# if Stats.get_int("stat_distance_km") >= 100:
# Achievements.unlock("ACH_DISTANCE_100")
# if Stats.get_int("stat_distance_km") >= 200:
# Achievements.unlock("ACH_DISTANCE_200")
# if StatsManager.get_int("stat_distance_km") >= 100:
# AchievementManager.unlock("ACH_DISTANCE_100")
# if StatsManager.get_int("stat_distance_km") >= 200:
# AchievementManager.unlock("ACH_DISTANCE_200")
signal unlocked(api_name: String)

View File

@@ -7,7 +7,7 @@ extends Node
#if you have an error setting achievements or stats in debug mode remember to open your steam client
#with jmp games account or another account who bought this game. If error persist try to clos and reopen steam client.
const KNOWN := [
"stat_games_played",
"stat_time_played",
"stat_distance_km",
"stat_stop_number",
"stat_photo_number",
@@ -16,11 +16,11 @@ const KNOWN := [
#how it works:
#func _on_match_finished(score: int) -> void:
# Stats.add_int("stat_games_played", 1)
# Stats.set_int("stat_total_score", Stats.get_int("stat_total_score") + score)
# Stats.store() #only one push at the end of the game
# if Stats.get_int("stat_games_played") >= 10:
# Achievements.unlock("ACH_PLAY_10_GAMES") #it call storeStats()
# StatsManager.add_int("stat_time_played", 1)
# StatsManager.set_int("stat_total_score", StatsManager.get_int("stat_total_score") + score)
# StatsManager.store() #only one push at the end of the game
# if StatsManager.get_int("stat_time_played") >= 10:
# AchievementManager.unlock("ACH_PLAY_10_HOURS") #it call storeStats()
func _ready() -> void:
@@ -64,8 +64,8 @@ func store() -> void:
#Development only: reset stats
func reset_all(include_achievements: bool = false) -> void:
Steam.resetAllStats(include_achievements)
Steam.storeStats()
if !Steam.resetAllStats(include_achievements):
push_error("resetAllStats failed")
func _on_stats_stored(_game: int, result: int) -> void:
if !result:

57
core/transition.gdshader Normal file
View File

@@ -0,0 +1,57 @@
shader_type canvas_item;
uniform vec4 base_color : source_color;
uniform vec2 node_resolution;
uniform float factor : hint_range(0.0, 1.0, 0.01) = 0.54;
uniform float width = 0.4;
group_uniforms gradient;
uniform sampler2D gradient_texture;
uniform bool gradient_fixed = false;
group_uniforms shape;
uniform sampler2D shape_texture;
uniform float shape_tiling = 32.0;
uniform float shape_rotation = 0.0;
uniform vec2 shape_scroll = vec2(0.0);
uniform float shape_feathering : hint_range(0.0, 1.0, 0.01) = 0.00;
uniform float shape_treshold : hint_range(0.0, 2.0, 0.01) = 1.0;
float gradient(vec2 uv, vec2 fixed_uv, bool fixed){
float value = 0.0;
if(fixed){
value = texture(gradient_texture, fixed_uv).r;
} else {
value = texture(gradient_texture, uv).r;
}
return value;
}
vec2 rotate(vec2 uv, vec2 pivot, float angle)
{
mat2 rotation = mat2(vec2(sin(angle), -cos(angle)),
vec2(cos(angle), sin(angle)));
uv -= pivot;
uv = uv * rotation;
uv += pivot;
return uv;
}
void fragment() {
float progress = mix(-width, 1.0, factor);
float aspect = node_resolution.y / node_resolution.x;
vec2 aspect_uv = ((UV-vec2(0.0,0.5)) * vec2(1.0, aspect))+vec2(0.0,0.5);
float value = clamp((gradient(UV, aspect_uv, gradient_fixed) - progress) / (width), 0.0, 1.0);
vec2 tiled_uv = rotate(mod((aspect_uv + vec2(TIME)*shape_scroll) * shape_tiling, 1.0), vec2(0.5), radians(shape_rotation));
float shape_value = 1.0 - texture(shape_texture, tiled_uv).r;
shape_value = mix(shape_feathering * 0.5, 1.0 - shape_feathering * 0.5, shape_value);
float shaped_gradient = smoothstep(value - (shape_feathering * 0.5), value + (shape_feathering * 0.5), shape_treshold - shape_value);
COLOR.rgb = base_color.rgb;
COLOR.a = shaped_gradient;
}

View File

@@ -0,0 +1 @@
uid://ovrd5ydp8p0q

View File

@@ -43,3 +43,7 @@ signal day_time_changed(value: float, time_string: String)
signal time_option_item_changed(index: int)
@warning_ignore("unused_signal")
signal day_time_option_changed(index: int)
#train signals
@warning_ignore("unused_signal")
signal toot_toot()

View File

@@ -1,6 +1,6 @@
extends Node3D
func _input(event):
if event is InputEventKey and event.pressed:
if event.keycode == KEY_ESCAPE:
get_tree().quit()
#func _input(event):
#if event is InputEventKey and event.pressed:
#if event.keycode == KEY_ESCAPE:
#get_tree().quit()

View File

@@ -107,3 +107,9 @@ func _on_fog_toggled(toggled_on: bool) -> void:
func _on_update_rails_pressed() -> void:
UIEvents.update_rail_chunks.emit()
func _on_toot_toot_pressed() -> void:
UIEvents.toot_toot.emit()
func _on_reset_stats_ach_pressed() -> void:
StatsManager.reset_all(true)

View File

@@ -1,6 +1,6 @@
extends Node3D
func _input(event):
if event is InputEventKey and event.pressed:
if event.keycode == KEY_ESCAPE:
get_tree().quit()
#func _input(event):
#if event is InputEventKey and event.pressed:
#if event.keycode == KEY_ESCAPE:
#get_tree().quit()

View File

@@ -11,7 +11,7 @@ config_version=5
[application]
config/name="tgcc"
run/main_scene="uid://vjf4bdxd8saj"
run/main_scene="uid://ri5kxx4mipo"
config/features=PackedStringArray("4.6", "Forward Plus")
run/max_fps=60
config/icon="uid://bfar1kk3pgq8f"

View File

@@ -91,6 +91,7 @@ est = true
south = true
[node name="Cavi_005" parent="." index="0" unique_id=1310790518]
cast_shadow = 0
surface_material_override/0 = ExtResource("2_03ljn")
surface_material_override/1 = ExtResource("2_03ljn")
@@ -112,6 +113,7 @@ surface_material_override/0 = ExtResource("4_l2gd7")
surface_material_override/1 = ExtResource("5_2d7r4")
[node name="Lanterne_006" parent="." index="6" unique_id=2038837947]
cast_shadow = 0
surface_material_override/0 = ExtResource("5_2d7r4")
surface_material_override/1 = ExtResource("4_l2gd7")

View File

@@ -94,6 +94,7 @@ est = true
south = true
[node name="Cavi_012" parent="." index="0" unique_id=499052446]
cast_shadow = 0
surface_material_override/0 = ExtResource("2_jytqw")
surface_material_override/1 = ExtResource("2_jytqw")
@@ -115,6 +116,7 @@ surface_material_override/0 = ExtResource("4_fxi6n")
surface_material_override/1 = ExtResource("5_554b4")
[node name="Lanterne_012" parent="." index="6" unique_id=1936861637]
cast_shadow = 0
surface_material_override/0 = ExtResource("5_554b4")
surface_material_override/1 = ExtResource("4_fxi6n")

View File

@@ -82,6 +82,7 @@ script = ExtResource("2_8n3i8")
west = true
[node name="Cavi_006" parent="." index="1" unique_id=14990543]
cast_shadow = 0
surface_material_override/0 = ExtResource("2_7usw4")
surface_material_override/1 = ExtResource("2_7usw4")
@@ -102,6 +103,7 @@ surface_material_override/0 = ExtResource("5_cu284")
surface_material_override/1 = ExtResource("6_b0a1l")
[node name="Lanterne_007" parent="." index="7" unique_id=1615340934]
cast_shadow = 0
surface_material_override/0 = ExtResource("6_b0a1l")
surface_material_override/1 = ExtResource("5_cu284")

View File

@@ -122,6 +122,7 @@ south = true
surface_material_override/0 = ExtResource("3_7ldxj")
[node name="Cavi_004" parent="." index="1" unique_id=253539518]
cast_shadow = 0
surface_material_override/0 = ExtResource("4_t6n0s")
surface_material_override/1 = ExtResource("4_t6n0s")
@@ -147,6 +148,7 @@ surface_material_override/0 = ExtResource("5_i3as5")
surface_material_override/1 = ExtResource("6_w6gyr")
[node name="Lanterne_002" parent="." index="7" unique_id=174576336]
cast_shadow = 0
surface_material_override/0 = ExtResource("6_w6gyr")
surface_material_override/1 = ExtResource("5_i3as5")

View File

@@ -107,57 +107,59 @@ buffer = PackedFloat32Array(-1.345079, -104.836205, -4.582536e-06, -1.52, 0, -5.
script = ExtResource("2_i2sew")
west = true
[node name="Argini_004" parent="." index="0" unique_id=1858205185]
[node name="Argini_004" parent="." index="0" unique_id=2092471339]
surface_material_override/0 = ExtResource("3_xbvfl")
[node name="Cart_001" parent="." index="1" unique_id=1835353896]
[node name="Cart_001" parent="." index="1" unique_id=1302373818]
surface_material_override/0 = ExtResource("4_oq3ud")
surface_material_override/1 = ExtResource("5_x8oai")
surface_material_override/2 = ExtResource("6_int6c")
[node name="Cavi_007" parent="." index="2" unique_id=994450170]
[node name="Cavi_007" parent="." index="2" unique_id=891974148]
cast_shadow = 0
surface_material_override/0 = ExtResource("5_x8oai")
surface_material_override/1 = ExtResource("5_x8oai")
[node name="Cortile_002" parent="." index="3" unique_id=267016892 groups=["weather_node"]]
[node name="Cortile_002" parent="." index="3" unique_id=1440977285 groups=["weather_node"]]
surface_material_override/0 = ExtResource("6_int6c")
[node name="Flower_005" parent="." index="4" unique_id=1549966189 groups=["weather_node", "wind_node"]]
[node name="Flower_005" parent="." index="4" unique_id=1151898243 groups=["weather_node", "wind_node"]]
visible = false
[node name="FlowerG_003" parent="." index="5" unique_id=65871813 groups=["weather_node", "wind_node"]]
[node name="FlowerG_003" parent="." index="5" unique_id=1421252949 groups=["weather_node", "wind_node"]]
visible = false
[node name="Grass_008" parent="." index="6" unique_id=1853173495]
[node name="Grass_008" parent="." index="6" unique_id=565930716]
surface_material_override/0 = ExtResource("3_xbvfl")
[node name="House_M_3" parent="." index="7" unique_id=155596536 groups=["weather_node"]]
[node name="House_M_3" parent="." index="7" unique_id=1248182939 groups=["weather_node"]]
[node name="House_M_3|Cube_212|Dupli|" parent="House_M_3" index="0" unique_id=1321014561]
[node name="House_M_3|Cube_212|Dupli|" parent="House_M_3" index="0" unique_id=1251663089]
surface_material_override/0 = ExtResource("7_wdcqm")
surface_material_override/1 = ExtResource("8_lfxig")
[node name="Lanterne_003" parent="." index="8" unique_id=595596056]
[node name="Lanterne_003" parent="." index="8" unique_id=913131637]
cast_shadow = 0
surface_material_override/0 = ExtResource("8_lfxig")
surface_material_override/1 = ExtResource("7_wdcqm")
[node name="MSH_Staccioanta_1_005" parent="." index="9" unique_id=1042751383]
[node name="MSH_Staccioanta_1_005" parent="." index="9" unique_id=615838630]
surface_material_override/0 = ExtResource("9_rfrug")
[node name="PaliLuci_002" parent="." index="10" unique_id=1504995410]
[node name="PaliLuci_002" parent="." index="10" unique_id=1928143564]
surface_material_override/0 = ExtResource("4_oq3ud")
surface_material_override/1 = ExtResource("4_oq3ud")
[node name="Panchina_002" parent="." index="11" unique_id=876085859 groups=["weather_node"]]
[node name="Panchina_002" parent="." index="11" unique_id=1561611835 groups=["weather_node"]]
surface_material_override/0 = ExtResource("9_rfrug")
[node name="Strada_006" parent="." index="12" unique_id=76888486 groups=["weather_node"]]
[node name="Strada_006" parent="." index="12" unique_id=1433458432 groups=["weather_node"]]
surface_material_override/0 = ExtResource("6_int6c")
[node name="Water_005" parent="." index="13" unique_id=425747200]
[node name="Water_005" parent="." index="13" unique_id=689760906]
surface_material_override/0 = ExtResource("10_hfpir")
[node name="WoodPile_003" parent="." index="14" unique_id=1314797412 groups=["weather_node"]]
[node name="WoodPile_003" parent="." index="14" unique_id=363736169 groups=["weather_node"]]
surface_material_override/0 = ExtResource("4_oq3ud")
surface_material_override/1 = ExtResource("11_x7fjv")
surface_material_override/2 = ExtResource("5_x8oai")

View File

@@ -134,6 +134,7 @@ surface_material_override/0 = ExtResource("3_sa8j3")
[node name="Cart_003" parent="." index="2" unique_id=502294431 groups=["weather_node"]]
[node name="Cavi_008" parent="." index="3" unique_id=703264924]
cast_shadow = 0
surface_material_override/0 = ExtResource("4_wx70f")
surface_material_override/1 = ExtResource("4_wx70f")
@@ -159,6 +160,7 @@ surface_material_override/0 = ExtResource("7_pj11p")
surface_material_override/1 = ExtResource("8_4mu8m")
[node name="Lanterne_008" parent="." index="10" unique_id=1036407616]
cast_shadow = 0
surface_material_override/0 = ExtResource("8_4mu8m")
surface_material_override/1 = ExtResource("7_pj11p")

View File

@@ -126,6 +126,7 @@ connection_left = [NodePath("PaloLuce/sx")]
connection_right = [NodePath("PaloLuce/dx")]
[node name="Cavi_001" parent="." index="0" unique_id=1776585264]
cast_shadow = 0
surface_material_override/0 = ExtResource("2_skxxm")
[node name="Cube_227" parent="." index="1" unique_id=2133644431 groups=["weather_node"]]
@@ -154,6 +155,7 @@ surface_material_override/0 = ExtResource("6_333a0")
surface_material_override/1 = ExtResource("4_w66q1")
[node name="Lanterne_001" parent="." index="7" unique_id=267697647]
cast_shadow = 0
surface_material_override/0 = ExtResource("4_w66q1")
surface_material_override/1 = ExtResource("6_333a0")

View File

@@ -128,6 +128,7 @@ south = true
surface_material_override/0 = ExtResource("2_jaet5")
[node name="Cavi_004" parent="." index="1" unique_id=253539518]
cast_shadow = 0
surface_material_override/0 = ExtResource("3_k52wx")
surface_material_override/1 = ExtResource("3_k52wx")
@@ -153,6 +154,7 @@ surface_material_override/0 = ExtResource("4_yg4ko")
surface_material_override/1 = ExtResource("5_yk001")
[node name="Lanterne_002" parent="." index="7" unique_id=174576336]
cast_shadow = 0
surface_material_override/0 = ExtResource("5_yk001")
surface_material_override/1 = ExtResource("4_yg4ko")

View File

@@ -115,6 +115,7 @@ south = true
west = true
[node name="Cavi_003" parent="." index="0" unique_id=1683040552]
cast_shadow = 0
surface_material_override/0 = ExtResource("2_k6fna")
surface_material_override/1 = ExtResource("2_k6fna")
@@ -155,6 +156,7 @@ surface_material_override/0 = ExtResource("5_wbwk3")
surface_material_override/1 = ExtResource("6_b82gs")
[node name="Lanterne_004" parent="." index="9" unique_id=1013830129]
cast_shadow = 0
surface_material_override/0 = ExtResource("6_b82gs")
surface_material_override/1 = ExtResource("5_wbwk3")

View File

@@ -125,6 +125,7 @@ surface_material_override/1 = ExtResource("4_nugyy")
surface_material_override/2 = ExtResource("5_ygc8c")
[node name="Cavi_007" parent="." index="2" unique_id=891974148]
cast_shadow = 0
surface_material_override/0 = ExtResource("4_nugyy")
surface_material_override/1 = ExtResource("4_nugyy")
@@ -147,6 +148,7 @@ surface_material_override/0 = ExtResource("6_pjysl")
surface_material_override/1 = ExtResource("7_0r8cm")
[node name="Lanterne_003" parent="." index="8" unique_id=913131637]
cast_shadow = 0
surface_material_override/0 = ExtResource("7_0r8cm")
surface_material_override/1 = ExtResource("6_pjysl")
@@ -154,6 +156,7 @@ surface_material_override/1 = ExtResource("6_pjysl")
surface_material_override/0 = ExtResource("8_hmdr4")
[node name="PaliLuci_002" parent="." index="10" unique_id=1928143564]
cast_shadow = 0
surface_material_override/0 = ExtResource("3_aj7xj")
surface_material_override/1 = ExtResource("3_aj7xj")

View File

@@ -95,6 +95,7 @@ north = true
south = true
[node name="Cavi_002" parent="." index="0" unique_id=2030323465]
cast_shadow = 0
surface_material_override/0 = ExtResource("2_hs7hq")
[node name="Cortile_001" parent="." index="1" unique_id=1906526451 groups=["RoadNav", "weather_node"]]
@@ -131,6 +132,7 @@ surface_material_override/0 = ExtResource("5_3muqp")
surface_material_override/1 = ExtResource("6_m86t6")
[node name="Lanterne_005" parent="." index="8" unique_id=528610915]
cast_shadow = 0
surface_material_override/0 = ExtResource("6_m86t6")
surface_material_override/1 = ExtResource("5_3muqp")

View File

@@ -74,13 +74,6 @@ instance_count = 27
mesh = ExtResource("23_4e4me")
buffer = PackedFloat32Array(-0.06664866, -5.194634, -2.2706466e-07, -0.2425, 0, -3.0246346e-07, 6.9195576, 0, -5.194634, 0.06664866, 2.9133056e-09, -2.9575, -1.1421599, -4.4487686, -1.9446185e-07, 0.2425, 0, -3.2404853e-07, 7.4133663, 0, -4.4487686, 1.1421599, 4.9925397e-08, -2.9575, -0.046814755, 4.874615, 2.1307619e-07, -0.2425, 0, -3.1915494e-07, 7.3014135, 0, 4.874615, 0.046814755, 2.046338e-09, -2.5025, -2.237415, 4.8654275, 2.1267459e-07, 0.2425, 0, -3.2826165e-07, 7.509751, 0, 4.8654275, 2.237415, 9.7800516e-08, -2.5025, 2.552968, 3.664362, 1.6017435e-07, -0.2425, 0, -3.6221567e-07, 8.286529, 0, 3.664362, -2.552968, -1.1159378e-07, -2.0475, 1.8105153, 4.50349, 1.968538e-07, 0.2425, 0, -2.628582e-07, 6.013495, 0, 4.50349, -1.8105153, -7.9140136e-08, -2.0475, -1.9527054, 4.725312, 2.0654996e-07, -0.2425, 0, -3.321968e-07, 7.599777, 0, 4.725312, 1.9527054, 8.535547e-08, -1.5925, -4.520556, 1.8626103, 8.1417284e-08, 0.2425, 0, -2.7255854e-07, 6.2354126, 0, 1.8626103, 4.520556, 1.9759977e-07, -1.5925, -1.5101467, 5.1146483, 2.2356838e-07, -0.2425, 0, -3.674509e-07, 8.406297, 0, 5.1146483, 1.5101467, 6.6010614e-08, -1.1375, -0.39667818, 5.0150795, 2.1921609e-07, 0.2425, 0, -3.5219875e-07, 8.057368, 0, 5.0150795, 0.39667818, 1.7339353e-08, -1.1375, 4.910238, 2.163411, 9.456569e-08, -0.2425, 0, -2.2457701e-07, 5.137723, 0, 2.163411, -4.910238, -2.1463332e-07, -0.6825, -4.515354, 0.7853641, 3.4329354e-08, 0.2425, 0, -2.379107e-07, 5.4427624, 0, 0.7853641, 4.515354, 1.973724e-07, -0.6825, -4.518371, -1.6865913, -7.372324e-08, -0.2425, 0, -2.4742545e-07, 5.6604347, 0, -1.6865913, 4.518371, 1.9750428e-07, -0.2275, 1.1408135, -5.1769686, -2.2629249e-07, 0.2425, 0, -3.66561e-07, 8.385939, 0, -5.1769686, -1.1408135, -4.986654e-08, -0.2275, 3.315373, 3.248334, 1.4198919e-07, -0.2425, 0, -3.418649e-07, 7.820957, 0, 3.248334, -3.315373, -1.4491955e-07, 0.2275, 4.424317, -2.0163426, -8.8137135e-08, 0.2425, 0, -3.3949976e-07, 7.7668495, 0, -2.0163426, -4.424317, -1.9339303e-07, 0.2275, 4.644195, -1.1235999, -4.911411e-08, -0.2425, 0, -3.2845583e-07, 7.5141935, 0, -1.1235999, -4.644195, -2.0300422e-07, 0.6825, -5.0032973, 0.9244527, 4.0409113e-08, 0.2425, 0, -3.625047e-07, 8.29314, 0, 0.9244527, 5.0032973, 2.1870108e-07, 0.6825, -3.8264813, 3.711105, 1.6221756e-07, -0.2425, 0, -2.903106e-07, 6.641532, 0, 3.711105, 3.8264813, 1.6726081e-07, 1.1375, -5.329773, -0.18204457, -7.9574205e-09, 0.2425, 0, -2.888753e-07, 6.6086965, 0, -0.18204457, 5.329773, 2.3297177e-07, 1.1375, -2.5650833, -4.3976808, -1.9222873e-07, -0.2425, 0, -3.212945e-07, 7.3503613, 0, -4.3976808, 2.5650833, 1.1212335e-07, 1.5925, -2.5395496, -3.9127095, -1.7102997e-07, 0.2425, 0, -3.4615263e-07, 7.9190493, 0, -3.9127095, 2.5395496, 1.1100724e-07, 1.5925, 3.0145772, -3.716389, -1.6244852e-07, -0.2425, 0, -2.9848255e-07, 6.828485, 0, -3.716389, -3.0145772, -1.3177136e-07, 2.0475, 2.23483, 4.2739015, 1.8681817e-07, 0.2425, 0, -3.0729115e-07, 7.030002, 0, 4.2739015, -2.23483, -9.768752e-08, 2.0475, -2.2681458, -4.1759634, -1.8253716e-07, -0.2425, 0, -2.7874702e-07, 6.3769884, 0, -4.1759634, 2.2681458, 9.9143804e-08, 2.5025, 1.8609717, 4.9811106, 2.1773126e-07, 0.2425, 0, -3.8023688e-07, 8.698806, 0, 4.9811106, -1.8609717, -8.1345654e-08, 2.5025, 4.8748484, -0.49008697, -2.1422382e-08, -0.2425, 0, -2.3368244e-07, 5.346031, 0, -0.49008697, -4.8748484, -2.130864e-07, 2.9575)
[sub_resource type="NavigationMesh" id="NavigationMesh_2ts68"]
vertices = PackedVector3Array(8.984741, 0.25012434, -0.014038086, 9.234741, 0.25012434, -1.0140381, -18.015259, 0.25012434, -18.014038, 17.984741, 0.25012434, 17.985962, 10.984741, 0.25012434, 1.2359619, 9.234741, 0.25012434, 1.2359619, 10.984741, 0.25012434, -1.0140381, 17.984741, 0.25012434, -18.014038, -18.015259, 0.25012434, 17.985962, 11.234741, 0.25012434, 0.23596191)
polygons = [PackedInt32Array(2, 1, 0), PackedInt32Array(5, 4, 3), PackedInt32Array(7, 6, 1), PackedInt32Array(5, 8, 0), PackedInt32Array(0, 8, 2), PackedInt32Array(5, 3, 8), PackedInt32Array(1, 2, 7), PackedInt32Array(3, 4, 9), PackedInt32Array(6, 7, 9), PackedInt32Array(9, 7, 3)]
border_size = 2.0
[sub_resource type="PlaneMesh" id="PlaneMesh_14bbt"]
[node name="chunk_river_cross_2" unique_id=1083596819 instance=ExtResource("1_kqoel")]
script = ExtResource("2_m5b5r")
est = true
@@ -88,46 +81,48 @@ west = true
river_north = true
river_south = true
[node name="Argini_017" parent="." index="0" unique_id=1278311052]
[node name="Argini_017" parent="." index="0" unique_id=379197264]
surface_material_override/0 = ExtResource("2_relur")
[node name="Cavi_010" parent="." index="1" unique_id=815947441]
[node name="Cavi_010" parent="." index="1" unique_id=1716469554]
cast_shadow = 0
surface_material_override/0 = ExtResource("3_ik0ps")
surface_material_override/1 = ExtResource("3_ik0ps")
[node name="Flower_024" parent="." index="2" unique_id=526609525]
[node name="Flower_024" parent="." index="2" unique_id=1343917198]
visible = false
[node name="FlowerG_022" parent="." index="3" unique_id=932915098]
[node name="FlowerG_022" parent="." index="3" unique_id=602062578]
visible = false
[node name="Grass_022" parent="." index="4" unique_id=888360582]
[node name="Grass_022" parent="." index="4" unique_id=4617116]
surface_material_override/0 = ExtResource("2_relur")
[node name="House_C_1_014" parent="." index="5" unique_id=1429631271 groups=["weather_node"]]
[node name="House_C_1_014" parent="." index="5" unique_id=390752776 groups=["weather_node"]]
[node name="House_C_1_014|Cube_023|Dupli|" parent="House_C_1_014" index="0" unique_id=1595448890]
[node name="House_C_1_014|Cube_023|Dupli|" parent="House_C_1_014" index="0" unique_id=906156044]
surface_material_override/0 = ExtResource("4_u3ks6")
surface_material_override/1 = ExtResource("5_g7xh4")
[node name="Lanterne_010" parent="." index="6" unique_id=626116821]
[node name="Lanterne_010" parent="." index="6" unique_id=787933242]
cast_shadow = 0
surface_material_override/0 = ExtResource("5_g7xh4")
surface_material_override/1 = ExtResource("4_u3ks6")
[node name="MSH_Staccioanta_1_018" parent="." index="7" unique_id=1313624035]
[node name="MSH_Staccioanta_1_018" parent="." index="7" unique_id=935916972]
surface_material_override/0 = ExtResource("6_vsnhu")
[node name="PaliLuci_008" parent="." index="8" unique_id=156211542]
[node name="PaliLuci_008" parent="." index="8" unique_id=185114022]
surface_material_override/0 = ExtResource("7_5lc14")
surface_material_override/1 = ExtResource("7_5lc14")
[node name="Strada_009" parent="." index="9" unique_id=876439490 groups=["weather_node"]]
[node name="Strada_009" parent="." index="9" unique_id=86944054 groups=["weather_node"]]
surface_material_override/0 = ExtResource("8_17keh")
[node name="Water_F_016" parent="." index="10" unique_id=1528601289]
[node name="Water_F_016" parent="." index="10" unique_id=1050702492]
surface_material_override/0 = ExtResource("9_t63l0")
[node name="bridge_002" parent="." index="11" unique_id=1594090056 groups=["weather_node"]]
[node name="bridge_002" parent="." index="11" unique_id=1852524138 groups=["weather_node"]]
surface_material_override/0 = ExtResource("5_g7xh4")
surface_material_override/1 = ExtResource("10_0k2sy")
surface_material_override/2 = ExtResource("7_5lc14")

View File

@@ -129,6 +129,7 @@ surface_material_override/0 = ExtResource("3_oqr18")
[node name="Cart_003" parent="." index="2" unique_id=502294431 groups=["weather_node"]]
[node name="Cavi_008" parent="." index="3" unique_id=703264924]
cast_shadow = 0
surface_material_override/0 = ExtResource("4_h5fgh")
surface_material_override/1 = ExtResource("4_h5fgh")
@@ -154,6 +155,7 @@ surface_material_override/0 = ExtResource("7_h5fgh")
surface_material_override/1 = ExtResource("8_5r0cx")
[node name="Lanterne_008" parent="." index="10" unique_id=1036407616]
cast_shadow = 0
surface_material_override/0 = ExtResource("8_5r0cx")
surface_material_override/1 = ExtResource("7_h5fgh")

View File

@@ -118,6 +118,7 @@ surface_material_override/0 = ExtResource("2_07njl")
transform = Transform3D(-2.105941, -1.3013108, -3.4868522, -7.450568e-08, -0.6470466, 24.148098, -1.3472161, 2.0341828, 5.450573, 1.1636996, 0.0010174388, 2.48663)
[node name="Cavi_011" parent="." index="2" unique_id=1762214686]
cast_shadow = 0
surface_material_override/0 = ExtResource("3_6i64l")
surface_material_override/1 = ExtResource("3_6i64l")
@@ -143,6 +144,7 @@ surface_material_override/0 = ExtResource("6_q0cqc")
surface_material_override/1 = ExtResource("7_homdn")
[node name="Lanterne_011" parent="." index="9" unique_id=1863672392]
cast_shadow = 0
surface_material_override/0 = ExtResource("7_homdn")
surface_material_override/1 = ExtResource("6_q0cqc")

View File

@@ -97,6 +97,7 @@ river_west = true
surface_material_override/0 = ExtResource("2_js6cw")
[node name="Cavi_009" parent="." index="1" unique_id=1198442543]
cast_shadow = 0
surface_material_override/0 = ExtResource("3_8s23f")
surface_material_override/1 = ExtResource("3_8s23f")
@@ -125,6 +126,7 @@ surface_material_override/0 = ExtResource("5_471jd")
surface_material_override/1 = ExtResource("6_wwyrs")
[node name="Lanterne_009" parent="." index="8" unique_id=1890448184]
cast_shadow = 0
surface_material_override/0 = ExtResource("6_wwyrs")
surface_material_override/1 = ExtResource("5_471jd")

View File

@@ -93,7 +93,7 @@ buffer = PackedFloat32Array(0.47619614, -0.45174405, 0.755755, -9.176909, 0.8665
[node name="chunk_river_straight_3" unique_id=280774482 instance=ExtResource("1_x5ly2")]
script = ExtResource("2_wgwv3")
uniqueness = 2
uniqueness = 1
river_north = true
river_south = true

View File

@@ -120,6 +120,7 @@ south = true
surface_material_override/0 = ExtResource("3_5r6du")
[node name="Cavi_004" parent="." index="1" unique_id=253539518]
cast_shadow = 0
surface_material_override/0 = ExtResource("4_wjmsg")
surface_material_override/1 = ExtResource("4_wjmsg")
@@ -145,6 +146,7 @@ surface_material_override/0 = ExtResource("5_v716w")
surface_material_override/1 = ExtResource("6_7dsci")
[node name="Lanterne_002" parent="." index="7" unique_id=174576336]
cast_shadow = 0
surface_material_override/0 = ExtResource("6_7dsci")
surface_material_override/1 = ExtResource("5_v716w")

View File

@@ -121,6 +121,7 @@ surface_material_override/1 = ExtResource("5_alwkb")
surface_material_override/2 = ExtResource("6_4dlfc")
[node name="Cavi_007" parent="." index="2" unique_id=891974148]
cast_shadow = 0
surface_material_override/0 = ExtResource("5_alwkb")
surface_material_override/1 = ExtResource("5_alwkb")
@@ -143,6 +144,7 @@ surface_material_override/0 = ExtResource("7_wqpl2")
surface_material_override/1 = ExtResource("8_7d05e")
[node name="Lanterne_003" parent="." index="8" unique_id=913131637]
cast_shadow = 0
surface_material_override/0 = ExtResource("8_7d05e")
surface_material_override/1 = ExtResource("7_wqpl2")

View File

@@ -52,6 +52,7 @@ shader_parameter/uv_scale = Vector2(1, 1)
shader_parameter/palette_shift_y = 0.0
shader_parameter/gradient_start_y = 0.0
shader_parameter/gradient_end_y = 10.0
shader_parameter/receive_shadows = true
shader_parameter/light_steps = 3.0
shader_parameter/step_softness = 0.1
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
@@ -73,6 +74,7 @@ shader_parameter/uv_scale = Vector2(1, 1)
shader_parameter/palette_shift_y = 0.0
shader_parameter/gradient_start_y = 0.0
shader_parameter/gradient_end_y = 10.0
shader_parameter/receive_shadows = true
shader_parameter/light_steps = 3.0
shader_parameter/step_softness = 0.1
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
@@ -94,6 +96,7 @@ shader_parameter/uv_scale = Vector2(3, 3)
shader_parameter/palette_shift_y = 0.0
shader_parameter/gradient_start_y = 0.0
shader_parameter/gradient_end_y = 1.5
shader_parameter/receive_shadows = true
shader_parameter/light_steps = 3.0
shader_parameter/step_softness = 0.1
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
@@ -115,6 +118,7 @@ shader_parameter/uv_scale = Vector2(1, 1)
shader_parameter/palette_shift_y = 0.0
shader_parameter/gradient_start_y = 0.0
shader_parameter/gradient_end_y = 10.0
shader_parameter/receive_shadows = true
shader_parameter/light_steps = 3.0
shader_parameter/step_softness = 0.1
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)

View File

@@ -116,6 +116,7 @@ surface_material_override/0 = ExtResource("3_5jrf3")
[node name="Cart_003" parent="." index="2" unique_id=502294431 groups=["weather_node"]]
[node name="Cavi_008" parent="." index="3" unique_id=703264924]
cast_shadow = 0
surface_material_override/0 = ExtResource("4_lewme")
surface_material_override/1 = ExtResource("4_lewme")
@@ -141,6 +142,7 @@ surface_material_override/0 = ExtResource("7_x0gto")
surface_material_override/1 = ExtResource("8_yipn6")
[node name="Lanterne_008" parent="." index="10" unique_id=1036407616]
cast_shadow = 0
surface_material_override/0 = ExtResource("8_yipn6")
surface_material_override/1 = ExtResource("7_x0gto")

View File

@@ -1,9 +1,29 @@
[gd_scene format=3 uid="uid://cqsp8pai6vw22"]
[ext_resource type="PackedScene" uid="uid://cg7uflsb2i6ne" path="res://tgcc/chunk/prop/climax/Climax1.fbx" id="1_nwuw7"]
[ext_resource type="Material" uid="uid://d4vsl672lwv7" path="res://tgcc/chunk/material/rocks2.tres" id="2_4fwq4"]
[ext_resource type="Shader" uid="uid://d0ch5ofrgf7y6" path="res://core/daynight/trunk_shader.gdshader" id="2_nhw2c"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_nhw2c"]
render_priority = 0
shader = ExtResource("2_nhw2c")
shader_parameter/albedo_color = Color(0.40753567, 0.4204052, 0.40753093, 1)
shader_parameter/use_texture = true
shader_parameter/uv_scale = Vector2(1, 1)
shader_parameter/palette_shift_y = 0.0
shader_parameter/gradient_start_y = 0.0
shader_parameter/gradient_end_y = 10.0
shader_parameter/light_steps = 3.0
shader_parameter/step_softness = 0.1
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6
shader_parameter/use_ghibli_glint = true
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
shader_parameter/glint_intensity = 1.0
shader_parameter/glint_sharpness = 32.0
shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0
[sub_resource type="ShaderMaterial" id="ShaderMaterial_iswk2"]
render_priority = 0
shader = ExtResource("2_nhw2c")
@@ -92,10 +112,12 @@ shader_parameter/emission_energy = 0.0
transform = Transform3D(-1, 0, 8.742278e-08, 0, 1, 0, -8.742278e-08, 0, -1, 0, 0, 0)
[node name="Climax1" parent="." index="0" unique_id=767839486]
surface_material_override/0 = ExtResource("2_4fwq4")
cast_shadow = 0
surface_material_override/0 = SubResource("ShaderMaterial_nhw2c")
surface_material_override/1 = SubResource("ShaderMaterial_iswk2")
surface_material_override/2 = SubResource("ShaderMaterial_4fwq4")
surface_material_override/3 = SubResource("ShaderMaterial_mkhd8")
[node name="Wood" parent="." index="1" unique_id=733616168]
cast_shadow = 0
surface_material_override/0 = SubResource("ShaderMaterial_omht8")

View File

@@ -72,10 +72,12 @@ shader_parameter/emission_energy = 0.0
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 0, 0, 0)
[node name="Climax2" parent="." index="0" unique_id=1222631639]
cast_shadow = 0
surface_material_override/0 = ExtResource("2_k5n4y")
surface_material_override/1 = SubResource("ShaderMaterial_pmph7")
surface_material_override/2 = SubResource("ShaderMaterial_mg6bi")
surface_material_override/3 = SubResource("ShaderMaterial_pmvmt")
[node name="wallsupport" parent="." index="1" unique_id=1089897955]
cast_shadow = 0
surface_material_override/0 = ExtResource("2_1wkfs")

View File

@@ -8,6 +8,7 @@
[node name="Lantern_1" unique_id=234210577 instance=ExtResource("1_od3ry")]
[node name="Lantern_1" parent="." index="0" unique_id=242917286]
cast_shadow = 0
surface_material_override/0 = ExtResource("2_yca86")
surface_material_override/1 = ExtResource("3_bgphm")
surface_material_override/2 = ExtResource("2_c3i51")

View File

@@ -8,6 +8,7 @@
[node name="Lantern_2" unique_id=396452378 instance=ExtResource("1_7qetm")]
[node name="Lantern_2" parent="." index="0" unique_id=751426330]
cast_shadow = 0
surface_material_override/0 = ExtResource("2_hfyng")
surface_material_override/1 = ExtResource("3_i7wyp")
surface_material_override/2 = ExtResource("4_pvatg")

View File

@@ -10,6 +10,7 @@
[node name="PostBox2" parent="." index="0" unique_id=1093802546]
transform = Transform3D(-100.000015, -8.742278e-06, -1.0421607e-12, 0, -1.1920929e-05, 100.00001, -8.742279e-06, 100.00001, 1.1920929e-05, 0.0034273267, 0, 0)
cast_shadow = 0
surface_material_override/0 = ExtResource("2_nqx3y")
surface_material_override/1 = ExtResource("3_h3l20")
surface_material_override/2 = ExtResource("4_6yksj")

View File

@@ -10,6 +10,7 @@
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 0, 0, 0)
[node name="PostBox3" parent="." index="0" unique_id=521490239]
cast_shadow = 0
surface_material_override/0 = ExtResource("2_wt0a4")
surface_material_override/1 = ExtResource("3_kpvej")
surface_material_override/2 = ExtResource("4_guowb")

View File

@@ -30,6 +30,7 @@ shader_parameter/emission_energy = 0.0
[node name="scarecrow" unique_id=1320042610 instance=ExtResource("1_eiqqr")]
[node name="hat" parent="." index="0" unique_id=169232380]
cast_shadow = 0
surface_material_override/0 = ExtResource("2_l1pb7")
surface_material_override/1 = ExtResource("3_hl52d")
@@ -37,7 +38,9 @@ surface_material_override/1 = ExtResource("3_hl52d")
surface_material_override/0 = ExtResource("2_l1pb7")
[node name="shirt" parent="." index="2" unique_id=1648916125]
cast_shadow = 0
surface_material_override/0 = SubResource("ShaderMaterial_l1pb7")
[node name="wood" parent="." index="3" unique_id=1178426919]
cast_shadow = 0
surface_material_override/0 = ExtResource("5_t6s1p")

View File

@@ -30,14 +30,18 @@ shader_parameter/emission_energy = 0.0
[node name="scarecrow" unique_id=1320042610 instance=ExtResource("1_3l5dj")]
[node name="hat" parent="." index="0" unique_id=169232380]
cast_shadow = 0
surface_material_override/0 = ExtResource("2_awm4v")
surface_material_override/1 = ExtResource("3_6a0pt")
[node name="head" parent="." index="1" unique_id=1765991055]
cast_shadow = 0
surface_material_override/0 = ExtResource("2_awm4v")
[node name="shirt" parent="." index="2" unique_id=1648916125]
cast_shadow = 0
surface_material_override/0 = SubResource("ShaderMaterial_awm4v")
[node name="wood" parent="." index="3" unique_id=1178426919]
cast_shadow = 0
surface_material_override/0 = ExtResource("5_rkpjx")

View File

@@ -9,9 +9,11 @@
[node name="Sign1" unique_id=1834444523 instance=ExtResource("1_uiait")]
[node name="Palo" parent="." index="0" unique_id=1343636993]
cast_shadow = 0
surface_material_override/0 = ExtResource("2_311s2")
[node name="Sign1" parent="." index="1" unique_id=1606116753]
cast_shadow = 0
surface_material_override/0 = ExtResource("1_311s2")
surface_material_override/1 = ExtResource("2_kuo45")

View File

@@ -9,9 +9,11 @@
[node name="Sign2" unique_id=1775868648 instance=ExtResource("1_foxwv")]
[node name="Palo" parent="." index="0" unique_id=2105240381]
cast_shadow = 0
surface_material_override/0 = ExtResource("2_ldbd1")
[node name="Sign2" parent="." index="1" unique_id=1599460138]
cast_shadow = 0
surface_material_override/0 = ExtResource("3_ih3ah")
surface_material_override/1 = ExtResource("3_ldbd1")

View File

@@ -29,9 +29,11 @@ shader_parameter/emission_energy = 0.0
[node name="Sign3" unique_id=1791763653 instance=ExtResource("1_0swcb")]
[node name="Palo" parent="." index="0" unique_id=187251359]
cast_shadow = 0
surface_material_override/0 = ExtResource("2_ihmyx")
[node name="Sign3" parent="." index="1" unique_id=1217663822]
cast_shadow = 0
surface_material_override/0 = SubResource("ShaderMaterial_lyxmq")
[node name="Decal" type="Decal" parent="." index="2" unique_id=99877708]

View File

@@ -51,9 +51,11 @@ shader_parameter/emission_energy = 0.0
[node name="Sign4" unique_id=69144836 instance=ExtResource("1_5srs1")]
[node name="Palo" parent="." index="0" unique_id=1362652374]
cast_shadow = 0
surface_material_override/0 = ExtResource("2_04o4q")
[node name="Sign4" parent="." index="1" unique_id=770574735]
cast_shadow = 0
surface_material_override/0 = SubResource("ShaderMaterial_04o4q")
surface_material_override/2 = SubResource("ShaderMaterial_ff30h")

View File

@@ -183,20 +183,24 @@ shader_parameter/wind_frequency = 0.0
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.055491745, -0.3023088)
[node name="TendaNoren_001" parent="." index="0" unique_id=509936580]
cast_shadow = 0
surface_material_override/0 = ExtResource("2_jslaf")
surface_material_override/1 = SubResource("ShaderMaterial_cmmaj")
[node name="TendaNoren_002" parent="." index="1" unique_id=697331723]
transform = Transform3D(-99.981384, 2.301005e-07, -1.9302231, 1.9302231, 1.1918706e-05, -99.98137, 2.2585682e-20, -100, -1.1920927e-05, -0.021122659, 0.5018954, 0.004296713)
cast_shadow = 0
surface_material_override/0 = ExtResource("4_sky3l")
[node name="TendaNoren_003" type="MeshInstance3D" parent="." index="2" unique_id=2069885175]
transform = Transform3D(100, 0, 0, 0, -1.1920929e-05, 99.99999, 0, -99.99999, -1.1920929e-05, 0.5492964, 0.6978685, 0.004296713)
cast_shadow = 0
mesh = SubResource("ArrayMesh_4q4hw")
surface_material_override/0 = ExtResource("2_jslaf")
surface_material_override/1 = SubResource("ShaderMaterial_cmmaj")
[node name="TendaNoren_004" type="MeshInstance3D" parent="." index="3" unique_id=1139137711]
transform = Transform3D(-99.84835, -6.563026e-07, 5.505466, -5.505466, 1.1902847e-05, -99.848335, 1.9938704e-20, -100, -1.1920927e-05, 0.5492964, 0.5018954, 0.004296713)
cast_shadow = 0
mesh = SubResource("ArrayMesh_8l8x3")
surface_material_override/0 = SubResource("ShaderMaterial_s46u4")

View File

@@ -241,20 +241,24 @@ shader_parameter/wind_frequency = 0.0
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.055491745, -0.3023088)
[node name="TendaNoren_001" parent="." index="0" unique_id=509936580]
cast_shadow = 0
surface_material_override/0 = ExtResource("2_prrb5")
surface_material_override/1 = SubResource("ShaderMaterial_4jlum")
[node name="TendaNoren_002" parent="." index="1" unique_id=697331723]
transform = Transform3D(-99.981384, 2.301005e-07, -1.9302231, 1.9302231, 1.1918706e-05, -99.98137, 2.2585682e-20, -100, -1.1920927e-05, -0.021122659, 0.5018954, 0.004296713)
cast_shadow = 0
surface_material_override/0 = SubResource("ShaderMaterial_beveb")
[node name="TendaNoren_003" type="MeshInstance3D" parent="." index="2" unique_id=2069885175]
transform = Transform3D(100, 0, 0, 0, -1.1920929e-05, 99.99999, 0, -99.99999, -1.1920929e-05, 0.5492964, 0.6978685, 0.004296713)
cast_shadow = 0
mesh = SubResource("ArrayMesh_4q4hw")
surface_material_override/0 = ExtResource("2_prrb5")
surface_material_override/1 = SubResource("ShaderMaterial_cmmaj")
[node name="TendaNoren_004" type="MeshInstance3D" parent="." index="3" unique_id=1139137711]
transform = Transform3D(-99.84835, -6.563026e-07, 5.505466, -5.505466, 1.1902847e-05, -99.848335, 1.9938704e-20, -100, -1.1920927e-05, 0.5492964, 0.5018954, 0.004296713)
cast_shadow = 0
mesh = SubResource("ArrayMesh_8l8x3")
surface_material_override/0 = SubResource("ShaderMaterial_s46u4")

View File

@@ -239,20 +239,24 @@ shader_parameter/wind_frequency = 0.0
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.055491745, -0.3023088)
[node name="TendaNoren_001" parent="." index="0" unique_id=509936580]
cast_shadow = 0
surface_material_override/0 = ExtResource("2_clsvi")
surface_material_override/1 = SubResource("ShaderMaterial_7hvl5")
[node name="TendaNoren_002" parent="." index="1" unique_id=697331723]
transform = Transform3D(-99.981384, 2.301005e-07, -1.9302231, 1.9302231, 1.1918706e-05, -99.98137, 2.2585682e-20, -100, -1.1920927e-05, -0.021122659, 0.5018954, 0.004296713)
cast_shadow = 0
surface_material_override/0 = SubResource("ShaderMaterial_csgpj")
[node name="TendaNoren_003" type="MeshInstance3D" parent="." index="2" unique_id=2069885175]
transform = Transform3D(100, 0, 0, 0, -1.1920929e-05, 99.99999, 0, -99.99999, -1.1920929e-05, 0.5492964, 0.6978685, 0.004296713)
cast_shadow = 0
mesh = SubResource("ArrayMesh_4q4hw")
surface_material_override/0 = ExtResource("2_clsvi")
surface_material_override/1 = SubResource("ShaderMaterial_cmmaj")
[node name="TendaNoren_004" type="MeshInstance3D" parent="." index="3" unique_id=1139137711]
transform = Transform3D(-99.84835, -6.563026e-07, 5.505466, -5.505466, 1.1902847e-05, -99.848335, 1.9938704e-20, -100, -1.1920927e-05, 0.5492964, 0.5018954, 0.004296713)
cast_shadow = 0
mesh = SubResource("ArrayMesh_8l8x3")
surface_material_override/0 = SubResource("ShaderMaterial_s46u4")

View File

@@ -30,6 +30,7 @@ shader_parameter/emission_energy = 0.0
[node name="Vase1" unique_id=705516693 instance=ExtResource("1_2nnxq")]
[node name="Vase1" parent="." index="0" unique_id=1062691616]
cast_shadow = 0
surface_material_override/0 = ExtResource("2_5bse5")
surface_material_override/1 = SubResource("ShaderMaterial_syc55")
surface_material_override/2 = ExtResource("3_syc55")

View File

@@ -8,6 +8,7 @@
[node name="Vase2" unique_id=888035065 instance=ExtResource("1_jybje")]
[node name="Vase2" parent="." index="0" unique_id=860182924]
cast_shadow = 0
surface_material_override/0 = ExtResource("2_28b2e")
surface_material_override/1 = ExtResource("2_bul1p")

View File

@@ -73,6 +73,7 @@ shader_parameter/snow_visibility = 1.0
[node name="Vase3" unique_id=1886668319 instance=ExtResource("1_au8wv")]
[node name="Vase3" parent="." index="0" unique_id=887285637]
cast_shadow = 0
surface_material_override/0 = SubResource("ShaderMaterial_gtvrg")
surface_material_override/1 = SubResource("ShaderMaterial_txxea")
surface_material_override/2 = ExtResource("3_4vmwj")

View File

@@ -50,6 +50,7 @@ shader_parameter/emission_energy = 0.0
[node name="Vase4" unique_id=237410267 instance=ExtResource("1_he3fe")]
[node name="Vase4" parent="." index="0" unique_id=1131282545]
cast_shadow = 0
surface_material_override/0 = SubResource("ShaderMaterial_kx8wq")
surface_material_override/1 = ExtResource("3_s4spc")
surface_material_override/2 = SubResource("ShaderMaterial_pehvo")

View File

@@ -30,6 +30,7 @@ shader_parameter/emission_energy = 0.0
[node name="Vase5" unique_id=400744767 instance=ExtResource("1_yejtb")]
[node name="Vase5" parent="." index="0" unique_id=1230199627]
cast_shadow = 0
surface_material_override/0 = SubResource("ShaderMaterial_3n5yd")
surface_material_override/1 = ExtResource("2_3n5yd")

View File

@@ -71,6 +71,7 @@ shader_parameter/emission_energy = 0.0
script = ExtResource("2_oh5ty")
[node name="WindDecoration" parent="." index="0" unique_id=13037063]
cast_shadow = 0
surface_material_override/0 = SubResource("ShaderMaterial_oh5ty")
surface_material_override/1 = SubResource("ShaderMaterial_6ddyx")
surface_material_override/2 = SubResource("ShaderMaterial_iiryi")

File diff suppressed because one or more lines are too long

View File

@@ -51,6 +51,7 @@ script = ExtResource("2_nebt2")
chunk_type = 2
[node name="BézierCurve_003" parent="." index="0" unique_id=826544595]
cast_shadow = 0
surface_material_override/0 = ExtResource("2_ain0v")
surface_material_override/1 = ExtResource("3_nebt2")
@@ -141,7 +142,7 @@ transform = Transform3D(1.258351, 0, -1.1430457, 0, 1.7000003, 0, 1.1430457, 0,
transform = Transform3D(-0.63049877, 0, -1.5787565, 0, 1.7000003, 0, 1.5787565, 0, -0.63049877, 1.6563647, 0, -20.839624)
[node name="TreeTest9" parent="Tree" index="6" unique_id=420234479 instance=ExtResource("11_v2rwj")]
transform = Transform3D(-0.9698234, 0, 1.3962246, 0, 1.7000003, 0, -1.3962246, 0, -0.9698234, 3.059004, 1.0377102, -15.41362)
transform = Transform3D(-0.9698234, 0, 1.3962246, 0, 1.7000003, 0, -1.3962246, 0, -0.9698234, 3.059004, 0.33528543, -15.41362)
[node name="TreeTest10" parent="Tree" index="7" unique_id=137335071 instance=ExtResource("11_v2rwj")]
transform = Transform3D(-0.9698234, 0, 1.3962246, 0, 1.7000003, 0, -1.3962246, 0, -0.9698234, -1.3601644, 0, -11.998806)
@@ -210,7 +211,7 @@ transform = Transform3D(-0.9698234, 0, 1.3962246, 0, 1.7000003, 0, -1.3962246, 0
transform = Transform3D(1.258351, 0, -1.1430457, 0, 1.7000003, 0, 1.1430457, 0, 1.258351, 22.729897, 0, 12.53483)
[node name="TreeTest32" parent="Tree" index="29" unique_id=1822163652 instance=ExtResource("11_v2rwj")]
transform = Transform3D(-0.63049877, 0, -1.5787565, 0, 1.7000003, 0, 1.5787565, 0, -0.63049877, 17.45154, 0.67123985, 13.199238)
transform = Transform3D(-0.63049877, 0, -1.5787565, 0, 1.7000003, 0, 1.5787565, 0, -0.63049877, 17.45154, 0.26787472, 13.199238)
[node name="TreeTest33" parent="Tree" index="30" unique_id=1187385713 instance=ExtResource("11_v2rwj")]
transform = Transform3D(-0.9698234, 0, 1.3962246, 0, 1.7000003, 0, -1.3962246, 0, -0.9698234, 18.85418, 0.62711143, 18.625242)
@@ -276,7 +277,7 @@ transform = Transform3D(1.6596266, 0, -0.36829472, 0, 1.7000004, 0, 0.36829472,
transform = Transform3D(1.4339567, 0, 0.9131093, 0, 1.7000002, 0, -0.9131093, 0, 1.4339567, -11.416958, -0.034111023, 24.64993)
[node name="TreeTest22" parent="Tree" index="51" unique_id=504561169 instance=ExtResource("11_v2rwj")]
transform = Transform3D(-1.6730486, 0, 0.30151117, 0, 1.7000005, 0, -0.30151117, 0, -1.6730486, -22.988789, 0.678772, 3.902561)
transform = Transform3D(-1.6730486, 0, 0.30151117, 0, 1.7000005, 0, -0.30151117, 0, -1.6730486, -22.988789, 0.23934507, 3.902561)
[node name="Flower2" type="Node3D" parent="." index="6" unique_id=913717123]

View File

@@ -42,14 +42,15 @@ size = Vector3(20, 10, 20)
script = ExtResource("2_ebdep")
chunk_type = 2
[node name="BézierCurve_003" parent="." index="0" unique_id=1781451152]
[node name="BézierCurve_003" parent="." index="0" unique_id=826544595]
cast_shadow = 0
surface_material_override/0 = ExtResource("3_w2mr5")
surface_material_override/1 = ExtResource("4_dvcfy")
[node name="Chunk_003" parent="." index="1" unique_id=1865350450 groups=["weather_node"]]
[node name="Chunk_003" parent="." index="1" unique_id=1420860029 groups=["weather_node"]]
surface_material_override/0 = ExtResource("5_265s3")
[node name="Chunk_006" parent="." index="2" unique_id=368472604]
[node name="Chunk_006" parent="." index="2" unique_id=1552766286]
transform = Transform3D(100, 0, 0, 0, -1.1920929e-05, 99.99999, 0, -99.99999, -1.1920929e-05, -0.00945282, 0.018836021, -0.0016670227)
surface_material_override/0 = ExtResource("6_6fhvw")

View File

@@ -51,6 +51,7 @@ script = ExtResource("2_gojrq")
chunk_type = 2
[node name="BézierCurve_003" parent="." index="0" unique_id=826544595]
cast_shadow = 0
surface_material_override/0 = ExtResource("3_7xauo")
surface_material_override/1 = ExtResource("4_1k7gw")

View File

@@ -53,6 +53,7 @@ script = ExtResource("2_xioug")
chunk_type = 2
[node name="BézierCurve_003" parent="." index="0" unique_id=826544595]
cast_shadow = 0
surface_material_override/0 = ExtResource("3_3okyp")
surface_material_override/1 = ExtResource("4_0uit7")

View File

@@ -103,6 +103,7 @@ surface_material_override/0 = ExtResource("5_8ksjv")
surface_material_override/0 = ExtResource("6_sj02q")
[node name="Cube_032" parent="." index="4" unique_id=1626136650]
cast_shadow = 0
surface_material_override/0 = ExtResource("4_s80ad")
surface_material_override/1 = ExtResource("7_xcjcb")

View File

@@ -50,6 +50,7 @@ surface_material_override/0 = ExtResource("2_5cqaj")
surface_material_override/0 = ExtResource("2_1yd65")
[node name="Cube_159" parent="." index="2" unique_id=1552861257 groups=["weather_node"]]
cast_shadow = 0
surface_material_override/0 = ExtResource("3_dldiy")
surface_material_override/1 = ExtResource("4_5cqaj")

View File

@@ -59,6 +59,7 @@ surface_material_override/0 = ExtResource("4_3rloo")
surface_material_override/0 = ExtResource("2_0isiu")
[node name="Cube_039" parent="." index="3" unique_id=375449614]
cast_shadow = 0
surface_material_override/0 = ExtResource("5_3rloo")
surface_material_override/1 = ExtResource("5_1vb6v")

View File

@@ -87,6 +87,7 @@ surface_material_override/0 = ExtResource("2_8phya")
surface_material_override/0 = ExtResource("1_qvm1w")
[node name="Cube_208" parent="." index="4" unique_id=1570594921]
cast_shadow = 0
surface_material_override/0 = ExtResource("3_dhwnf")
surface_material_override/1 = ExtResource("4_7h65j")

View File

@@ -570,7 +570,7 @@ rail_path = NodePath("../rail")
railway_pool = SubResource("Resource_jrt8d")
biome_list = Array[ExtResource("15_3blen")]([SubResource("Resource_n3osn")])
entity_pool = ExtResource("78_xg6nk")
entity_spawn_probability = 1.0
entity_spawn_probability = 0.0
max_entities_per_chunk = 5
eye_line = 8
lamppost_max_wire_distance = 0.0

View File

@@ -65,6 +65,7 @@
[ext_resource type="PackedScene" uid="uid://bei7fscn77p1p" path="res://core/main_scene_ui/main_scene_ui.tscn" id="49_exdk1"]
[ext_resource type="PackedScene" uid="uid://vni5kjalum6d" path="res://core/photo_mode/runtime/photo_mode_controller.tscn" id="50_57hhv"]
[ext_resource type="PackedScene" uid="uid://bujym3ai10i7q" path="res://tgcc/chunk/countryside/scene/tea/chunk_country_tea_corner_01.tscn" id="51_lxncq"]
[ext_resource type="Script" uid="uid://c2usnexa5x7pg" path="res://core/main_scene_ui/total_stats_display.gd" id="51_totals"]
[ext_resource type="PackedScene" uid="uid://bdfosig4g14vt" path="res://tgcc/chunk/countryside/scene/tea/chunk_country_tea_corner_02.tscn" id="52_317hq"]
[ext_resource type="PackedScene" uid="uid://ffblnqib7fry" path="res://tgcc/chunk/countryside/scene/tea/chunk_country_tea_cross_3_01.tscn" id="53_0ur37"]
[ext_resource type="PackedScene" uid="uid://b785qpoxbrovj" path="res://tgcc/chunk/countryside/scene/tea/chunk_country_tea_cross_3_02.tscn" id="54_vbb0s"]
@@ -188,9 +189,9 @@ data = PackedByteArray("//vQZAAOhpd2PgtGR7JsJPfgYSYSJ6387g9rgIGKF+EZgxxoAM4TYIWm
[sub_resource type="Curve3D" id="Curve3D_ndco5"]
closed = true
bake_interval = 50.0
bake_interval = 30.0
_data = {
"points": PackedVector3Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 120, 0, 0, 0, 0, 0, 0, -4.372, 0, 140, 0, 0, 0, 0, 0, 0, -20.963, 0, 160, 0, 0, 0, 0, 0, 0, -40.62518, 0, 168.52754, 0, 0, 0, 0, 0, 0, -60, 0, 170, 0, 0, 0, 0, 0, 0, -80, 0, 170, 0, 0, 0, 0, 0, 0, -100, 0, 170, 0, 0, 0, 0, 0, 0, -120.42937, 0, 171.50279, 0, 0, 0, 0, 0, 0, -141.41747, 7.6293945e-06, 180.5982, 0, 0, 0, 0, 0, 0, -155.77005, 7.6293945e-06, 198.35184, 0, 0, 0, 0, 0, 0, -160.14105, 7.6293945e-06, 219.80951, 0, 0, 0, 0, 0, 0, -163.99007, 7.6293945e-06, 239.36005, 0, 0, 0, 0, 0, 0, -175.77509, 7.6293945e-06, 256.16028, 0, 0, 0, 0, 0, 0, -195.62283, 7.6293945e-06, 267.46912, 0, 0, 0, 0, 0, 0, -219.9999, 7.6293945e-06, 270.11758, 0, 0, 0, 0, 0, 0, -240, 0, 270.118, 0, 0, 0, 0, 0, 0, -260, 0, 270.118, 0, 0, 0, 0, 0, 0, -275.19666, 7.6293945e-06, 270.55228, 0, 0, 0, 0, 0, 0, -294.2925, 7.6293945e-06, 276.05307, 0, 0, 0, 0, 0, 0, -307.19006, 7.6293945e-06, 286.9095, 0, 0, 0, 0, 0, 0, -317.32443, 7.6293945e-06, 303.14682, 0, 0, 0, 0, 0, 0, -320, 0, 320, 0, 0, 0, 0, 0, 0, -320, 0, 340, 0, 0, 0, 0, 0, 0, -320, 0, 360, 0, 0, 0, 0, 0, 0, -320, 0, 380, 0, 0, 0, 0, 0, 0, -316.78876, 7.6293945e-06, 396.91193, 0, 0, 0, 0, 0, 0, -307.68207, 7.6293945e-06, 412.70596, 0, 0, 0, 0, 0, 0, -291.08273, 7.6293945e-06, 424.7491, 0, 0, 0, 0, 0, 0, -270, 0, 429.994, 0, 0, 0, 0, 0, 0, -250, 0, 429.994, 0, 0, 0, 0, 0, 0, -229.90146, 7.6293945e-06, 433.90823, 0, 0, 0, 0, 0, 0, -217.15442, 7.6293945e-06, 442.98242, 0, 0, 0, 0, 0, 0, -204.60803, 7.6293945e-06, 459.93704, 0, 0, 0, 0, 0, 0, -200, 0, 480, 0, 0, 0, 0, 0, 0, -200, 0, 500, 0, 0, 0, 0, 0, 0, -195.5338, 7.6293945e-06, 520.0368, 0, 0, 0, 0, 0, 0, -184.9173, 7.6293945e-06, 535.07776, 0, 0, 0, 0, 0, 0, -170.36423, 7.6293945e-06, 545.0799, 0, 0, 0, 0, 0, 0, -150.56184, 0, 549.8127, 0, 0, 0, 0, 0, 0, -130, 0, 550, 0, 0, 0, 0, 0, 0, -110, 0, 550, 0, 0, 0, 0, 0, 0, -90, 0, 550, 0, 0, 0, 0, 0, 0, -70, 0, 550, 0, 0, 0, 0, 0, 0, -50, 0, 550, 0, 0, 0, 0, 0, 0, -29.862535, 7.6293945e-06, 545.3371, 0, 0, 0, 0, 0, 0, -13.215244, 7.6293945e-06, 533.0626, 0, 0, 0, 0, 0, 0, -4.098665, 7.6293945e-06, 519.6814, 0, 0, 0, 0, 0, 0, -0.048213482, 7.6293945e-06, 500.107, 0, 0, 0, 0, 0, 0, 3.7920675, 7.6293945e-06, 480.64902, 0, 0, 0, 0, 0, 0, 13.513225, 7.6293945e-06, 465.9133, 0, 0, 0, 0, 0, 0, 29.76715, 7.6293945e-06, 454.41486, 0, 0, 0, 0, 0, 0, 49.711926, 7.6293945e-06, 450.12488, 0, 0, 0, 0, 0, 0, 70, 0, 450, 0, 0, 0, 0, 0, 0, 90, 0, 450, 0, 0, 0, 0, 0, 0, 110.055405, 7.6293945e-06, 445.42627, 0, 0, 0, 0, 0, 0, 126.975784, 7.6293945e-06, 432.8683, 0, 0, 0, 0, 0, 0, 136.95703, 7.6293945e-06, 417.5506, 0, 0, 0, 0, 0, 0, 140, 0, 400, 0, 0, 0, 0, 0, 0, 140, 0, 380, 0, 0, 0, 0, 0, 0, 140, 0, 360, 0, 0, 0, 0, 0, 0, 140, 0, 340, 0, 0, 0, 0, 0, 0, 140, 0, 320, 0, 0, 0, 0, 0, 0, 140, 0, 300, 0, 0, 0, 0, 0, 0, 140, 0, 280, 0, 0, 0, 0, 0, 0, 140, 0, 260, 0, 0, 0, 0, 0, 0, 140, 0, 240, 0, 0, 0, 0, 0, 0, 140, 0, 220, 0, 0, 0, 0, 0, 0, 140, 0, 200, 0, 0, 0, 0, 0, 0, 140, 0, 180, 0, 0, 0, 0, 0, 0, 140, 0, 160, 0, 0, 0, 0, 0, 0, 140, 0, 140, 0, 0, 0, 0, 0, 0, 140, 0, 120, 0, 0, 0, 0, 0, 0, 140, 0, 100, 0, 0, 0, 0, 0, 0, 140, 0, 80, 0, 0, 0, 0, 0, 0, 140, 0, 60, 0, 0, 0, 0, 0, 0, 140, 0, 40, 0, 0, 0, 0, 0, 0, 140, 0, 20, 0, 0, 0, 0, 0, 0, 140, 0, 0, 0, 0, 0, 0, 0, 0, 136.2151, 7.6293945e-06, -18.930761, 0, 0, 0, 0, 0, 0, 124.47424, 7.6293945e-06, -35.771675, 0, 0, 0, 0, 0, 0, 109.556854, 7.6293945e-06, -45.911987, 0, 0, 0, 0, 0, 0, 90, 0, -50, 0, 0, 0, 0, 0, 0, 70, 0, -50, 0, 0, 0, 0, 0, 0, 50, 0, -50, 0, 0, 0, 0, 0, 0, 30.626865, 7.6293945e-06, -46.35706, 0, 0, 0, 0, 0, 0, 14.519331, 7.6293945e-06, -35.468895, 0, 0, 0, 0, 0, 0, 3.52941, 7.6293945e-06, -19.590664),
"points": PackedVector3Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 120, 0, 0, 0, 0, 0, 0, -4.372, 0, 140, 0, 0, 0, 0, 0, 0, -20.963, 0, 160, 0, 0, 0, 0, 0, 0, -40.62518, 0, 168.52754, 0, 0, 0, 0, 0, 0, -60, 0, 170, 0, 0, 0, 0, 0, 0, -80, 0, 170, 0, 0, 0, 0, 0, 0, -100, 0, 170, 0, 0, 0, 0, 0, 0, -120.42937, 0, 171.50279, 0, 0, 0, 0, 0, 0, -141.41747, 7.6293945e-06, 180.5982, 0, 0, 0, 0, 0, 0, -155.25493, 7.6293945e-06, 199.082, 0, 0, 0, 0, 0, 0, -159.74689, 7.6293945e-06, 219.73068, 0, 0, 0, 0, 0, 0, -163.99007, 7.6293945e-06, 239.36005, 0, 0, 0, 0, 0, 0, -175.77509, 7.6293945e-06, 256.16028, 0, 0, 0, 0, 0, 0, -195.62283, 7.6293945e-06, 267.46912, 0, 0, 0, 0, 0, 0, -219.9999, 7.6293945e-06, 270.11758, 0, 0, 0, 0, 0, 0, -240, 0, 270.118, 0, 0, 0, 0, 0, 0, -260, 0, 270.118, 0, 0, 0, 0, 0, 0, -275.19666, 7.6293945e-06, 270.55228, 0, 0, 0, 0, 0, 0, -294.2925, 7.6293945e-06, 276.05307, 0, 0, 0, 0, 0, 0, -307.19006, 7.6293945e-06, 286.9095, 0, 0, 0, 0, 0, 0, -317.32443, 7.6293945e-06, 303.14682, 0, 0, 0, 0, 0, 0, -320, 0, 320, 0, 0, 0, 0, 0, 0, -320, 0, 340, 0, 0, 0, 0, 0, 0, -320, 0, 360, 0, 0, 0, 0, 0, 0, -320, 0, 380, 0, 0, 0, 0, 0, 0, -316.78876, 7.6293945e-06, 396.91193, 0, 0, 0, 0, 0, 0, -307.68207, 7.6293945e-06, 412.70596, 0, 0, 0, 0, 0, 0, -291.08273, 7.6293945e-06, 424.7491, 0, 0, 0, 0, 0, 0, -270, 0, 429.994, 0, 0, 0, 0, 0, 0, -250, 0, 429.994, 0, 0, 0, 0, 0, 0, -229.90146, 7.6293945e-06, 433.90823, 0, 0, 0, 0, 0, 0, -217.15442, 7.6293945e-06, 442.98242, 0, 0, 0, 0, 0, 0, -204.60803, 7.6293945e-06, 459.93704, 0, 0, 0, 0, 0, 0, -200, 0, 480, 0, 0, 0, 0, 0, 0, -200, 0, 500, 0, 0, 0, 0, 0, 0, -195.5338, 7.6293945e-06, 520.0368, 0, 0, 0, 0, 0, 0, -184.9173, 7.6293945e-06, 535.07776, 0, 0, 0, 0, 0, 0, -170.36423, 7.6293945e-06, 545.0799, 0, 0, 0, 0, 0, 0, -150.56184, 0, 549.8127, 0, 0, 0, 0, 0, 0, -130, 0, 550, 0, 0, 0, 0, 0, 0, -110, 0, 550, 0, 0, 0, 0, 0, 0, -90, 0, 550, 0, 0, 0, 0, 0, 0, -70, 0, 550, 0, 0, 0, 0, 0, 0, -50, 0, 550, 0, 0, 0, 0, 0, 0, -29.862535, 7.6293945e-06, 545.3371, 0, 0, 0, 0, 0, 0, -13.215244, 7.6293945e-06, 533.0626, 0, 0, 0, 0, 0, 0, -4.098665, 7.6293945e-06, 519.6814, 0, 0, 0, 0, 0, 0, -0.048213482, 7.6293945e-06, 500.107, 0, 0, 0, 0, 0, 0, 3.7920675, 7.6293945e-06, 480.64902, 0, 0, 0, 0, 0, 0, 13.513225, 7.6293945e-06, 465.9133, 0, 0, 0, 0, 0, 0, 29.76715, 7.6293945e-06, 454.41486, 0, 0, 0, 0, 0, 0, 49.711926, 7.6293945e-06, 450.12488, 0, 0, 0, 0, 0, 0, 70, 0, 450, 0, 0, 0, 0, 0, 0, 90, 0, 450, 0, 0, 0, 0, 0, 0, 110.055405, 7.6293945e-06, 445.42627, 0, 0, 0, 0, 0, 0, 126.975784, 7.6293945e-06, 432.8683, 0, 0, 0, 0, 0, 0, 136.95703, 7.6293945e-06, 417.5506, 0, 0, 0, 0, 0, 0, 140, 0, 400, 0, 0, 0, 0, 0, 0, 140, 0, 380, 0, 0, 0, 0, 0, 0, 140, 0, 360, 0, 0, 0, 0, 0, 0, 140, 0, 340, 0, 0, 0, 0, 0, 0, 140, 0, 320, 0, 0, 0, 0, 0, 0, 140, 0, 300, 0, 0, 0, 0, 0, 0, 140, 0, 280, 0, 0, 0, 0, 0, 0, 140, 0, 260, 0, 0, 0, 0, 0, 0, 140, 0, 240, 0, 0, 0, 0, 0, 0, 140, 0, 220, 0, 0, 0, 0, 0, 0, 140, 0, 200, 0, 0, 0, 0, 0, 0, 140, 0, 180, 0, 0, 0, 0, 0, 0, 140, 0, 160, 0, 0, 0, 0, 0, 0, 140, 0, 140, 0, 0, 0, 0, 0, 0, 140, 0, 120, 0, 0, 0, 0, 0, 0, 140, 0, 100, 0, 0, 0, 0, 0, 0, 140, 0, 80, 0, 0, 0, 0, 0, 0, 140, 0, 60, 0, 0, 0, 0, 0, 0, 140, 0, 40, 0, 0, 0, 0, 0, 0, 140, 0, 20, 0, 0, 0, 0, 0, 0, 140, 0, 0, 0, 0, 0, 0, 0, 0, 136.2151, 7.6293945e-06, -18.930761, 0, 0, 0, 0, 0, 0, 124.47424, 7.6293945e-06, -35.771675, 0, 0, 0, 0, 0, 0, 109.556854, 7.6293945e-06, -45.911987, 0, 0, 0, 0, 0, 0, 90, 0, -50, 0, 0, 0, 0, 0, 0, 70, 0, -50, 0, 0, 0, 0, 0, 0, 50, 0, -50, 0, 0, 0, 0, 0, 0, 30.626865, 7.6293945e-06, -46.35706, 0, 0, 0, 0, 0, 0, 14.519331, 7.6293945e-06, -35.468895, 0, 0, 0, 0, 0, 0, 3.52941, 7.6293945e-06, -19.590664),
"tilts": PackedFloat32Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
}
point_count = 93
@@ -206,8 +207,7 @@ compositor = SubResource("Compositor_mb5yv")
rail_path = NodePath("../rail")
biome_list = Array[ExtResource("6_jfe74")]([SubResource("Resource_3qrd0")])
entity_pool = ExtResource("34_a2cst")
entity_spawn_probability = 1.0
max_entities_per_chunk = 5
max_entities_per_chunk = 6
eye_line = 4
[node name="Terrain" type="MeshInstance3D" parent="." unique_id=219178561]
@@ -223,6 +223,11 @@ transform = Transform3D(0.57785755, -0.57709646, 0.5770964, 0, 0.7071067, 0.7071
rotation_target = NodePath("../pivot")
iso_camera = NodePath("../camera_iso")
[node name="MainSceneUi" parent="cameras" unique_id=1359391222 instance=ExtResource("49_exdk1")]
offset_left = 3.0
offset_right = 3.0
mouse_filter = 2
[node name="DayNight" parent="." unique_id=1611939731 node_paths=PackedStringArray("camera_pivot") instance=ExtResource("36_qwsp8")]
camera_pivot = NodePath("../cameras")
thunder_sounds = Array[AudioStream]([SubResource("AudioStreamMP3_ra0ar"), SubResource("AudioStreamMP3_j8mxr"), ExtResource("37_pdfkp"), ExtResource("38_fpbvh"), ExtResource("39_hxtdl")])
@@ -250,22 +255,13 @@ wagon_pool = ExtResource("46_exdk1")
wagon_count = 5
wagon_gap = 0.8
wagon_spacing_scale = 0.9
rail_distance = 1.0
cameras = NodePath("../cameras")
basic_swing = 0.2
sleepers_distance = 1.6
sleepers_model = ExtResource("46_lbmv2")
fireworks_scene = ExtResource("47_q7p65")
[node name="Marker3D" type="Marker3D" parent="rail" unique_id=1460318018]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.7581053, -1.6046681, 59.658325)
[node name="Marker3D2" type="Marker3D" parent="rail" unique_id=131965864]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 127.14737, 0, 169.44846)
[node name="Marker3D3" type="Marker3D" parent="rail" unique_id=492991547]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -91.191925, 0, 539.03174)
[node name="Marker3D4" type="Marker3D" parent="rail" unique_id=1550097358]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -312.19193, 0, 349.03174)
[node name="Control" type="Control" parent="." unique_id=630650980]
visible = false
layout_mode = 3
@@ -353,6 +349,29 @@ theme_override_colors/font_hover_pressed_color = Color(1, 1, 1, 1)
theme_override_colors/font_outline_color = Color(1, 1, 1, 1)
text = "Storm"
[node name="TotalDistance" type="Label" parent="Control" unique_id=1735753299]
layout_mode = 0
offset_left = 277.0
offset_top = 31.0
offset_right = 611.0
offset_bottom = 54.0
theme_override_colors/font_color = Color(1, 1, 1, 1)
theme_override_colors/font_outline_color = Color(1, 1, 1, 1)
text = "Distance 0 km"
[node name="TotalTime" type="Label" parent="Control" unique_id=1065776479]
layout_mode = 0
offset_left = 276.0
offset_top = 13.0
offset_right = 610.0
offset_bottom = 36.0
theme_override_colors/font_color = Color(1, 1, 1, 1)
theme_override_colors/font_outline_color = Color(1, 1, 1, 1)
text = "Time 00:00"
[node name="TotalStatsDisplay" type="Node" parent="Control" unique_id=1147065793]
script = ExtResource("51_totals")
[node name="DayTimeLabel" type="Label" parent="Control" unique_id=1124935856]
layout_mode = 0
offset_left = 13.0
@@ -484,6 +503,34 @@ theme_override_colors/font_hover_pressed_color = Color(1, 1, 1, 1)
theme_override_colors/font_outline_color = Color(1, 1, 1, 1)
text = "Fog"
[node name="ResetStatsAch" type="Button" parent="Control" unique_id=960673125]
layout_mode = 0
offset_left = 12.0
offset_top = 425.0
offset_right = 195.0
offset_bottom = 456.0
theme_override_colors/font_color = Color(1, 1, 1, 1)
theme_override_colors/font_focus_color = Color(1, 1, 1, 1)
theme_override_colors/font_pressed_color = Color(1, 1, 1, 1)
theme_override_colors/font_hover_color = Color(1, 1, 1, 1)
theme_override_colors/font_hover_pressed_color = Color(1, 1, 1, 1)
theme_override_colors/font_outline_color = Color(1, 1, 1, 1)
text = "Reset Stats & Ach."
[node name="TootToot" type="Button" parent="Control" unique_id=2047151132]
layout_mode = 0
offset_left = 12.0
offset_top = 388.0
offset_right = 195.0
offset_bottom = 419.0
theme_override_colors/font_color = Color(1, 1, 1, 1)
theme_override_colors/font_focus_color = Color(1, 1, 1, 1)
theme_override_colors/font_pressed_color = Color(1, 1, 1, 1)
theme_override_colors/font_hover_color = Color(1, 1, 1, 1)
theme_override_colors/font_hover_pressed_color = Color(1, 1, 1, 1)
theme_override_colors/font_outline_color = Color(1, 1, 1, 1)
text = "Toot Toot"
[node name="UpdateRails" type="Button" parent="Control" unique_id=267134156]
layout_mode = 0
offset_left = 12.0
@@ -498,9 +545,6 @@ theme_override_colors/font_hover_pressed_color = Color(1, 1, 1, 1)
theme_override_colors/font_outline_color = Color(1, 1, 1, 1)
text = "Update Rails"
[node name="MainSceneUi" parent="." unique_id=1359391222 instance=ExtResource("49_exdk1")]
mouse_filter = 2
[connection signal="toggled" from="Control/Snow" to="Control" method="_on_snow_toggled"]
[connection signal="toggled" from="Control/Rain" to="Control" method="_on_rain_toggled"]
[connection signal="toggled" from="Control/Wind" to="Control" method="_on_wind_toggled"]
@@ -515,6 +559,8 @@ mouse_filter = 2
[connection signal="toggled" from="Control/Shadows" to="Control" method="_on_shadows_toggled"]
[connection signal="pressed" from="Control/RandomWeather" to="Control" method="_on_random_weather_pressed"]
[connection signal="toggled" from="Control/Fog" to="Control" method="_on_fog_toggled"]
[connection signal="pressed" from="Control/ResetStatsAch" to="Control" method="_on_reset_stats_ach_pressed"]
[connection signal="pressed" from="Control/TootToot" to="Control" method="_on_toot_toot_pressed"]
[connection signal="pressed" from="Control/UpdateRails" to="Control" method="_on_update_rails_pressed"]
[editable path="cameras"]

Binary file not shown.

View File

@@ -0,0 +1,19 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
uid="uid://dc6si4i1wgtg1"
path="res://.godot/imported/train_whistle.mp3-7c9ba844b982f1e2dc8f87df905de652.mp3str"
[deps]
source_file="res://tgcc/train/sounds/train_whistle.mp3"
dest_files=["res://.godot/imported/train_whistle.mp3-7c9ba844b982f1e2dc8f87df905de652.mp3str"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

Binary file not shown.

View File

@@ -0,0 +1,19 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
uid="uid://cr7evvbfp33ra"
path="res://.godot/imported/train_whistle2.mp3-fa64a19fd0b0cdce9722553ae5dff242.mp3str"
[deps]
source_file="res://tgcc/train/sounds/train_whistle2.mp3"
dest_files=["res://.godot/imported/train_whistle2.mp3-fa64a19fd0b0cdce9722553ae5dff242.mp3str"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

46
tgcc/train/train.gd Normal file
View File

@@ -0,0 +1,46 @@
extends Node3D
#const TRAIN_WHISTLE_STREAM: AudioStream = preload("res://tgcc/train/sounds/train_whistle.mp3")
const TRAIN_WHISTLE_STREAM: AudioStream = preload("res://tgcc/train/sounds/train_whistle2.mp3")
@export_group("Whistle")
@export var whistle_volume_db: float = 1.0
@export var whistle_unit_size: float = 90.0
@export var whistle_max_distance: float = 1200.0
var _whistle_player: AudioStreamPlayer3D
func _ready() -> void:
_create_whistle_player()
if not UIEvents.toot_toot.is_connected(_on_toot_toot):
UIEvents.toot_toot.connect(_on_toot_toot)
func _exit_tree() -> void:
if UIEvents.toot_toot.is_connected(_on_toot_toot):
UIEvents.toot_toot.disconnect(_on_toot_toot)
func _create_whistle_player() -> void:
_whistle_player = AudioStreamPlayer3D.new()
_whistle_player.name = "TrainWhistlePlayer"
_whistle_player.bus = &"SFX"
_whistle_player.volume_db = whistle_volume_db
_whistle_player.unit_size = whistle_unit_size
_whistle_player.max_distance = whistle_max_distance
_whistle_player.stream = TRAIN_WHISTLE_STREAM
add_child(_whistle_player)
func _on_toot_toot() -> void:
if _whistle_player == null:
return
print("stat_toottoot_number")
StatsManager.add_int("stat_toottoot_number", 1)
StatsManager.store()
_whistle_player.stop()
_whistle_player.play()

1
tgcc/train/train.gd.uid Normal file
View File

@@ -0,0 +1 @@
uid://c34qgl2afyhse

View File

@@ -7,7 +7,7 @@
[ext_resource type="Material" uid="uid://o31kp0jm07q3" path="res://tgcc/chunk/material/rocks.tres" id="5_pj7tp"]
[ext_resource type="Material" uid="uid://bsote67noubj2" path="res://tgcc/train/Color1_train.tres" id="7_sgpgi"]
[ext_resource type="Shader" uid="uid://d0ch5ofrgf7y6" path="res://core/daynight/trunk_shader.gdshader" id="8_eke0t"]
[ext_resource type="Script" uid="uid://5frq4qrokiy2" path="res://tgcc/train/train_glass_emission.gd" id="9_4qk3b"]
[ext_resource type="Script" path="res://tgcc/train/train.gd" id="9_4qk3b"]
[ext_resource type="Texture2D" uid="uid://j4m5wsf4magb" path="res://tgcc/chunk/material/decal/vending_decal.png" id="9_eke0t"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_p4ai0"]