feat: finishing touches

This commit is contained in:
Sara 2025-06-17 02:52:26 +02:00
parent cebae80b5c
commit 6d4a961423
39 changed files with 4028 additions and 2162 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

View file

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b0s8ie05x430t"
path.s3tc="res://.godot/imported/water_albedo.png-d07098f12467bba0e47f29381854daf9.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://materials/water_albedo.png"
dest_files=["res://.godot/imported/water_albedo.png-d07098f12467bba0e47f29381854daf9.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
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=0

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 MiB

View file

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bwhpeufw6ajnb"
path.s3tc="res://.godot/imported/water_normal.png-c219368caeb27a75b46a8c9459c925d1.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://materials/water_normal.png"
dest_files=["res://.godot/imported/water_normal.png-c219368caeb27a75b46a8c9459c925d1.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=1
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=1
roughness/src_normal="res://materials/water_normal.png"
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=0

View file

@ -4,8 +4,9 @@
[resource]
resource_name = "leaves"
transparency = 4
transparency = 2
alpha_scissor_threshold = 0.5
alpha_antialiasing_mode = 0
cull_mode = 2
shading_mode = 2
specular_mode = 2
albedo_texture = ExtResource("1_5c4eu")

View file

@ -33,6 +33,12 @@ animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
_subresources={
"materials": {
"leaves": {
"use_external/enabled": true,
"use_external/path": "uid://bx0x66slifwki"
}
},
"nodes": {
"PATH:Cube": {
"mesh_instance/cast_shadow": 0,

Binary file not shown.

Binary file not shown.

View file

@ -9,7 +9,7 @@ func _on_body_entered(body: Node3D) -> void:
if body.is_class(\"PlayerBody\"):
body.can_bash = true
queue_free()
GameUI.get_singleton().display_message(\"Bash through obstacles by pressing (X) during a split-step\")
GameUI.get_singleton().display_message(\"Bash through obstacles by pressing [img height=\\\"100\\\"]uid://baw7deolvkudx[/img] and [img height=\\\"100\\\"]uid://cfy8lgh61hsxg[/img] simultaneously\")
(body as PlayerBody).save_checkpoint()
func _physics_process(delta):

View file

@ -6,8 +6,8 @@
script/source = "extends Node3D
func _on_area_3d_body_entered(body: Node3D) -> void:
print(\"Body entered \", body.get_path())
if body.is_class(\"PlayerBody\") and body.get_node(\"PlayerStateMachine\").get_current_state() == \"BashState\":
body.emit_signal(\"obstacle_broken\")
queue_free()
"

View file

@ -1,29 +1,190 @@
[gd_scene load_steps=3 format=3 uid="uid://c6p8iu3mpsbwv"]
[gd_scene load_steps=5 format=3 uid="uid://c6p8iu3mpsbwv"]
[ext_resource type="PackedScene" uid="uid://dqjurq1nq1fle" path="res://objects/tre.tscn" id="1_g0g6w"]
[ext_resource type="PackedScene" uid="uid://bwdsh1pco7bf1" path="res://models/props/vines.blend" id="2_iqt14"]
[sub_resource type="GDScript" id="GDScript_g0g6w"]
script/source = "extends Node3D
[sub_resource type="Animation" id="Animation_g0g6w"]
resource_name = "game_over"
tracks/0/type = "position_3d"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Tree2")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = PackedFloat32Array(0, 1, -7.26657, -8.656, -1.63025, 1, 1, -5.437, -4, -2.488)
tracks/1/type = "rotation_3d"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Tree2")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = PackedFloat32Array(0, 1, 0.288312, 0.538113, 0.762333, 0.214846, 1, 1, 0, 0, 0, 1)
tracks/2/type = "scale_3d"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Tree2")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = PackedFloat32Array(0, 1, 0.1, 0.1, 0.1, 1, 1, 1, 1, 1)
tracks/3/type = "position_3d"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Tree")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = PackedFloat32Array(0, 1, -4.11348, -8.44742, -5.51347, 1, 1, -2.123, -4, -6.727)
tracks/4/type = "rotation_3d"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("Tree")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = PackedFloat32Array(0, 1, -0.792182, 0.104192, 0.254308, 0.544903, 1, 1, 0, 0, 0, 1)
tracks/5/type = "scale_3d"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("Tree")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = PackedFloat32Array(0, 1, 0.190917, 0.190917, 0.190917, 1, 1, 1, 1, 1)
tracks/6/type = "position_3d"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("Tree4")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = PackedFloat32Array(0, 1, 6.3913, -5.60759, -1.16465, 1, 1, 5.118, -4, -1.293)
tracks/7/type = "rotation_3d"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("Tree4")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = PackedFloat32Array(0, 1, 0.885791, 0.349205, 0.171122, -0.253273, 1, 1, 0, -0.70826, 0, 0.705952)
tracks/8/type = "scale_3d"
tracks/8/imported = false
tracks/8/enabled = true
tracks/8/path = NodePath("Tree4")
tracks/8/interp = 1
tracks/8/loop_wrap = true
tracks/8/keys = PackedFloat32Array(0, 1, 0.150617, 0.150617, 0.150617, 1, 1, 1, 1, 1)
tracks/9/type = "position_3d"
tracks/9/imported = false
tracks/9/enabled = true
tracks/9/path = NodePath("Tree3")
tracks/9/interp = 1
tracks/9/loop_wrap = true
tracks/9/keys = PackedFloat32Array(0, 1, 2.23542, -9.87989, -1.31789, 1, 1, 1.325, -4, -6.535)
tracks/10/type = "rotation_3d"
tracks/10/imported = false
tracks/10/enabled = true
tracks/10/path = NodePath("Tree3")
tracks/10/interp = 1
tracks/10/loop_wrap = true
tracks/10/keys = PackedFloat32Array(0, 1, 0.906533, 0.0410827, 0.307121, -0.286683, 1, 1, 0, 0, 0, 1)
tracks/11/type = "scale_3d"
tracks/11/imported = false
tracks/11/enabled = true
tracks/11/path = NodePath("Tree3")
tracks/11/interp = 1
tracks/11/loop_wrap = true
tracks/11/keys = PackedFloat32Array(0, 1, 0.13533, 0.13533, 0.13533, 1, 1, 1, 1, 1)
tracks/12/type = "position_3d"
tracks/12/imported = false
tracks/12/enabled = true
tracks/12/path = NodePath("vines")
tracks/12/interp = 1
tracks/12/loop_wrap = true
tracks/12/keys = PackedFloat32Array(0, 1, -3.84568, -5.77872, -3.44804, 1, 1, -2.085, -1, -2.146)
tracks/13/type = "rotation_3d"
tracks/13/imported = false
tracks/13/enabled = true
tracks/13/path = NodePath("vines")
tracks/13/interp = 1
tracks/13/loop_wrap = true
tracks/13/keys = PackedFloat32Array(0, 1, 0.815395, -0.170462, -0.424158, -0.355194, 1, 1, 0, 0.455312, 0, 0.890332)
tracks/14/type = "scale_3d"
tracks/14/imported = false
tracks/14/enabled = true
tracks/14/path = NodePath("vines")
tracks/14/interp = 1
tracks/14/loop_wrap = true
tracks/14/keys = PackedFloat32Array(0, 1, 0.244831, 0.244831, 0.244831, 1, 1, 1.5, 1.5, 1.5)
tracks/15/type = "position_3d"
tracks/15/imported = false
tracks/15/enabled = true
tracks/15/path = NodePath("vines2")
tracks/15/interp = 1
tracks/15/loop_wrap = true
tracks/15/keys = PackedFloat32Array(0, 1, -0.180626, -8.10766, -4.2077, 1, 1, -0.028, -1, -2.888)
tracks/16/type = "rotation_3d"
tracks/16/imported = false
tracks/16/enabled = true
tracks/16/path = NodePath("vines2")
tracks/16/interp = 1
tracks/16/loop_wrap = true
tracks/16/keys = PackedFloat32Array(0, 1, 0.95634, 0, 0, -0.292255, 1, 1, 0, 0, 0, 1)
tracks/17/type = "scale_3d"
tracks/17/imported = false
tracks/17/enabled = true
tracks/17/path = NodePath("vines2")
tracks/17/interp = 1
tracks/17/loop_wrap = true
tracks/17/keys = PackedFloat32Array(0, 1, 0.262036, 0.262036, 0.262036, 1, 1, 1.5, 1.5, 1.5)
tracks/18/type = "position_3d"
tracks/18/imported = false
tracks/18/enabled = true
tracks/18/path = NodePath("vines3")
tracks/18/interp = 1
tracks/18/loop_wrap = true
tracks/18/keys = PackedFloat32Array(0, 1, 3.39978, -5.91485, -1.31423, 1, 1, 2.925, -1, -1.503)
tracks/19/type = "rotation_3d"
tracks/19/imported = false
tracks/19/enabled = true
tracks/19/path = NodePath("vines3")
tracks/19/interp = 1
tracks/19/loop_wrap = true
tracks/19/keys = PackedFloat32Array(0, 1, 0.801512, 0.216846, 0.34856, -0.434812, 1, 1, 0, -0.423211, 0, 0.906031)
tracks/20/type = "scale_3d"
tracks/20/imported = false
tracks/20/enabled = true
tracks/20/path = NodePath("vines3")
tracks/20/interp = 1
tracks/20/loop_wrap = true
tracks/20/keys = PackedFloat32Array(0, 1, 0.182257, 0.182257, 0.182257, 1, 1, 1.5, 1.5, 1.5)
@export var camera : Camera3D
@export var trees : Array[Node3D]
[sub_resource type="AnimationLibrary" id="AnimationLibrary_iqt14"]
_data = {
&"game_over": SubResource("Animation_g0g6w")
}
func _process(delta: float):
pass
"
[node name="GameOverEffect" type="GameOverEffect"]
[node name="GameOverEffect" type="Node3D" node_paths=PackedStringArray("trees")]
script = SubResource("GDScript_g0g6w")
trees = [NodePath("Tree"), NodePath("Tree3"), NodePath("Tree4"), NodePath("Tree2")]
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
callback_mode_process = 0
libraries = {
&"": SubResource("AnimationLibrary_iqt14")
}
autoplay = "game_over"
speed_scale = 0.0
[node name="Tree" parent="." instance=ExtResource("1_g0g6w")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.38125, 0, -6.61966)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.123, -4, -6.727)
[node name="Tree3" parent="." instance=ExtResource("1_g0g6w")]
transform = Transform3D(-0.398413, 0, -0.917206, 0, 1, 0, 0.917206, 0, -0.398413, 2.8449, 0, -4.31524)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.325, -4, -6.535)
[node name="Tree4" parent="." instance=ExtResource("1_g0g6w")]
transform = Transform3D(-0.00326398, 0, -0.999995, 0, 1, 0, 0.999995, 0, -0.00326398, 5.11824, 0, -1.29329)
transform = Transform3D(-0.00326411, 0, -0.999995, 0, 1, 0, 0.999995, 0, -0.00326411, 5.118, -4, -1.293)
[node name="Tree2" parent="." instance=ExtResource("1_g0g6w")]
transform = Transform3D(-0.487951, 0, 0.872871, 0, 1, 0, -0.872871, 0, -0.487951, -5.43739, 1.90735e-06, -2.48827)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.437, -4, -2.488)
[node name="vines" parent="." instance=ExtResource("2_iqt14")]
transform = Transform3D(0.878073, 0, 1.21614, 0, 1.5, 0, -1.21614, 0, 0.878073, -2.085, -1, -2.146)
[node name="vines2" parent="." instance=ExtResource("2_iqt14")]
transform = Transform3D(1.5, 0, 0, 0, 1.5, 0, 0, 0, 1.5, -0.028, -1, -2.888)
[node name="vines3" parent="." instance=ExtResource("2_iqt14")]
transform = Transform3D(0.962677, 0, -1.15033, 0, 1.5, 0, 1.15033, 0, 0.962677, 2.925, -1, -1.503)

View file

@ -9,7 +9,7 @@ func _on_body_entered(body: Node3D) -> void:
if body.is_class(\"PlayerBody\"):
body.can_jump = true
queue_free()
GameUI.get_singleton().display_message(\"Jump by pressing (A) during a split-step\")
GameUI.get_singleton().display_message(\"Jump by pressing [img height=\\\"100\\\"]uid://baw7deolvkudx[/img] and [img height=\\\"100\\\"]uid://d1kw2owusg8fn[/img] simultaneously\")
(body as PlayerBody).save_checkpoint()
func _physics_process(delta):

2031
project/objects/level.tscn Normal file

File diff suppressed because it is too large Load diff

View file

@ -1,8 +1,9 @@
[gd_scene load_steps=6 format=3 uid="uid://dcgsrdacswacl"]
[gd_scene load_steps=7 format=3 uid="uid://dcgsrdacswacl"]
[ext_resource type="PackedScene" uid="uid://cl7a4q5m73vlw" path="res://models/player/character.blend" id="1_eqqp1"]
[ext_resource type="PackedScene" uid="uid://clspx5suh5ywx" path="res://models/player/bash_attack.blend" id="2_uxov2"]
[ext_resource type="PackedScene" uid="uid://dy4yl1paa8whs" path="res://ui/ui.tscn" id="2_ykyjo"]
[ext_resource type="PackedScene" uid="uid://cdyr4yad84cp2" path="res://models/pickups/twirly.blend" id="3_nmc1l"]
[ext_resource type="PackedScene" uid="uid://c6p8iu3mpsbwv" path="res://objects/game_over_effect.tscn" id="4_nmc1l"]
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_bxedw"]
radius = 0.339355
@ -33,11 +34,15 @@ collision_mask = 3
wall_min_slide_angle = 0.785398
floor_max_angle = 0.460767
floor_snap_length = 0.35
acceleration = 15.0
target_speed = 25.0
split_step_time = 0.35
split_step_stop_time = 0.34
jump_impulse = Vector2(0.9, 5)
stopping_deceleration = 40.0
start_speed = 10.0
acceleration = 13.0
split_step_time = 0.3
split_step_stop_time = 0.25
bash_speed = 75.0
bash_time = 0.4
extra_bash_time = 0.2
jump_impulse = Vector2(0.7, 5)
[node name="PlayerStateMachine" type="PlayerStateMachine" parent="."]
unique_name_in_owner = true
@ -51,8 +56,8 @@ transform = Transform3D(-1, -6.18173e-08, -6.18173e-08, -6.71313e-08, 0.99594, 0
fov = 100.0
script = SubResource("GDScript_eqqp1")
dist = 1.75
pivot_height = 2.0
look_target_height = 1.5
pivot_height = 2.1
look_target_height = 2.2
[node name="character" parent="." instance=ExtResource("1_eqqp1")]
unique_name_in_owner = true
@ -61,6 +66,15 @@ unique_name_in_owner = true
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 6.60846e-09, 1.19557, 0.0755919)
visible = false
[node name="CanvasLayer" parent="." instance=ExtResource("2_ykyjo")]
[node name="jump_effect" type="Node3D" parent="character"]
visible = false
[node name="twirly" parent="character/jump_effect" instance=ExtResource("3_nmc1l")]
transform = Transform3D(0.321382, -0.0898554, 0.0472911, -0.0208723, 0.0951608, 0.322654, -0.099372, -0.310592, 0.085175, -0.190964, 1.56847, 0.0617094)
[node name="twirly2" parent="character/jump_effect" instance=ExtResource("3_nmc1l")]
transform = Transform3D(-0.225283, 0.241709, -0.0664951, -0.11224, -0.0173125, 0.317332, 0.224158, 0.234252, 0.0920642, 0.165191, 1.56847, 0.0617094)
[node name="GameOverEffect" parent="." instance=ExtResource("4_nmc1l")]
[editable path="character"]

View file

@ -17,13 +17,47 @@ config/icon="res://icon.svg"
[display]
window/size/viewport_width=1440
window/size/viewport_height=810
window/size/resizable=false
window/size/mode=3
window/vsync/vsync_mode=0
[input]
ui_accept={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194309,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194310,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"key_label":0,"unicode":32,"location":0,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":0,"pressure":0.0,"pressed":true,"script":null)
]
}
ui_left={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194319,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":13,"pressure":0.0,"pressed":false,"script":null)
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":-1.0,"script":null)
]
}
ui_right={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194321,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":14,"pressure":0.0,"pressed":false,"script":null)
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":1.0,"script":null)
]
}
ui_up={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194320,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":11,"pressure":0.0,"pressed":false,"script":null)
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":1,"axis_value":-1.0,"script":null)
]
}
ui_down={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194322,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":12,"pressure":0.0,"pressed":false,"script":null)
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":1,"axis_value":1.0,"script":null)
]
}
move_left={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":97,"location":0,"echo":false,"script":null)
@ -63,6 +97,7 @@ jump={
bash={
"deadzone": 0.2,
"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":2,"pressure":0.0,"pressed":true,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":67,"key_label":0,"unicode":99,"location":0,"echo":false,"script":null)
]
}

View file

@ -1,12 +1,65 @@
[gd_scene load_steps=2 format=3 uid="uid://cnau7sr4mu3gf"]
[gd_scene load_steps=9 format=3 uid="uid://cnau7sr4mu3gf"]
[ext_resource type="PackedScene" uid="uid://d0w3tum281vei" path="res://objects/level.tscn" id="1_l6cm7"]
[ext_resource type="Texture2D" uid="uid://qxwsryrw0ny4" path="res://rendering/kloppenheim_06_4k.exr" id="2_ekxnf"]
[ext_resource type="Texture2D" uid="uid://pa0il6ab7wn5" path="res://ui/title.svg" id="3_bqqt6"]
[sub_resource type="PanoramaSkyMaterial" id="PanoramaSkyMaterial_bqqt6"]
panorama = ExtResource("2_ekxnf")
energy_multiplier = 0.25
[sub_resource type="Sky" id="Sky_x4b8f"]
sky_material = SubResource("PanoramaSkyMaterial_bqqt6")
[sub_resource type="Environment" id="Environment_wu84c"]
background_mode = 2
background_energy_multiplier = 1.84
sky = SubResource("Sky_x4b8f")
ambient_light_source = 3
ssao_radius = 16.0
glow_enabled = true
fog_enabled = true
fog_mode = 1
fog_light_color = Color(0.272901, 0.471156, 0.543814, 1)
fog_light_energy = 2.98
fog_sun_scatter = 0.28
fog_density = 0.0105
fog_sky_affect = 0.0
fog_depth_curve = 1.07178
[sub_resource type="GDScript" id="GDScript_vue75"]
script/source = "extends Button
func _ready():
self.grab_focus()
preload(\"res://scenes/valley.tscn\")
func _on_button_up() -> void:
self.get_tree().change_scene_to_file(\"res://scenes/valley.tscn\")
"
[sub_resource type="GDScript" id="GDScript_ekxnf"]
script/source = "extends HBoxContainer
@onready var container := $\"../../../SubViewportContainer\"
func _ready():
updated_scale()
func updated_scale():
ValleyRoot.set_render_factor(container.stretch_shrink)
$Label.text = \"%.2fx\" % (1.0/container.stretch_shrink)
func _on_lower_pressed() -> void:
container.stretch_shrink += 1
updated_scale()
func _on_increase_pressed() -> void:
container.stretch_shrink -= 1
updated_scale()
"
[node name="MainMenu" type="Control"]
layout_mode = 3
anchors_preset = 15
@ -15,19 +68,105 @@ anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Button" type="Button" parent="."]
[node name="SubViewportContainer" type="SubViewportContainer" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = 722.0
offset_top = 400.0
offset_right = -721.0
offset_bottom = -399.0
grow_horizontal = 2
grow_vertical = 2
theme_override_font_sizes/font_size = 200
stretch = true
[node name="SubViewport" type="SubViewport" parent="SubViewportContainer"]
handle_input_locally = false
size = Vector2i(1152, 648)
render_target_update_mode = 4
[node name="Node3D" type="Node3D" parent="SubViewportContainer/SubViewport"]
[node name="Level" parent="SubViewportContainer/SubViewport/Node3D" instance=ExtResource("1_l6cm7")]
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="SubViewportContainer/SubViewport/Node3D"]
transform = Transform3D(-0.881476, -0.298896, -0.365596, 7.45058e-09, -0.774194, 0.632949, -0.472228, 0.557929, 0.682434, 0, 2.39942, 0)
light_energy = 1.972
shadow_enabled = true
shadow_opacity = 0.55
shadow_blur = 0.973
directional_shadow_split_1 = 0.039
directional_shadow_split_2 = 0.091
directional_shadow_split_3 = 0.17
directional_shadow_max_distance = 1063.4
[node name="WorldEnvironment" type="WorldEnvironment" parent="SubViewportContainer/SubViewport/Node3D"]
environment = SubResource("Environment_wu84c")
[node name="Camera3D" type="Camera3D" parent="SubViewportContainer/SubViewport/Node3D"]
transform = Transform3D(-0.672263, 0.223072, 0.705904, -3.00783e-08, 0.953523, -0.301321, -0.740312, -0.202567, -0.641018, 311.829, 46.925, 423.07)
[node name="PanelContainer" type="PanelContainer" parent="."]
layout_mode = 1
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_top = -163.0
offset_right = 316.0
grow_vertical = 0
[node name="VBoxContainer" type="VBoxContainer" parent="PanelContainer"]
layout_mode = 2
[node name="Button" type="Button" parent="PanelContainer/VBoxContainer"]
layout_mode = 2
focus_neighbor_bottom = NodePath("../Resolution/Lower")
theme_override_font_sizes/font_size = 50
text = "Start"
script = SubResource("GDScript_vue75")
[connection signal="button_up" from="Button" to="Button" method="_on_button_up"]
[node name="Label2" type="Label" parent="PanelContainer/VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 25
text = "Resolution"
[node name="Resolution" type="HBoxContainer" parent="PanelContainer/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
script = SubResource("GDScript_ekxnf")
[node name="Lower" type="Button" parent="PanelContainer/VBoxContainer/Resolution"]
layout_mode = 2
focus_neighbor_top = NodePath("../../Button")
focus_neighbor_right = NodePath("../Increase")
theme_override_font_sizes/font_size = 25
text = "<"
[node name="Label" type="Label" parent="PanelContainer/VBoxContainer/Resolution"]
layout_mode = 2
size_flags_horizontal = 3
theme_override_font_sizes/font_size = 25
text = "1x"
horizontal_alignment = 1
[node name="Increase" type="Button" parent="PanelContainer/VBoxContainer/Resolution"]
layout_mode = 2
focus_neighbor_left = NodePath("../Lower")
focus_neighbor_top = NodePath("../../Button")
theme_override_font_sizes/font_size = 25
text = ">"
[node name="TextureRect" type="TextureRect" parent="."]
layout_mode = 1
anchors_preset = 13
anchor_left = 0.5
anchor_right = 0.5
anchor_bottom = 1.0
offset_left = -430.0
offset_right = 430.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("3_bqqt6")
expand_mode = 2
stretch_mode = 4
[connection signal="button_up" from="PanelContainer/VBoxContainer/Button" to="PanelContainer/VBoxContainer/Button" method="_on_button_up"]
[connection signal="pressed" from="PanelContainer/VBoxContainer/Resolution/Lower" to="PanelContainer/VBoxContainer/Resolution" method="_on_lower_pressed"]
[connection signal="pressed" from="PanelContainer/VBoxContainer/Resolution/Increase" to="PanelContainer/VBoxContainer/Resolution" method="_on_increase_pressed"]

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,6 @@
<svg width="64" height="64" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs/>
<g>
<path stroke="none" fill="#FFFFFF" d="M51.5 28.45 Q50 27 48 27 45.95 27 44.5 28.45 43 29.95 43 32 43 34 44.5 35.45 L44.5 35.5 Q45.95 37 48 37 50 37 51.45 35.5 L51.5 35.45 Q53 34 53 32 53 29.95 51.5 28.5 L51.5 28.45 M40 16 Q40 19.25 37.6 21.6 35.25 24 32 24 28.7 24 26.35 21.6 24 19.25 24 16 24 12.7 26.35 10.35 28.7 8 32 8 35.25 8 37.6 10.35 40 12.7 40 16 M56 32 Q56 35.25 53.6 37.6 51.25 40 48 40 44.7 40 42.35 37.6 40 35.25 40 32 40 28.7 42.35 26.35 44.7 24 48 24 51.25 24 53.6 26.35 56 28.7 56 32 M28.5 19.5 Q29.95 21 32 21 34 21 35.45 19.5 L35.5 19.45 Q37 18 37 16 37 13.95 35.5 12.5 L35.5 12.45 Q34 11 32 11 29.95 11 28.5 12.45 27 13.95 27 16 27 18 28.5 19.45 L28.5 19.5 M12.5 28.45 Q11 29.95 11 32 11 34 12.5 35.45 L12.5 35.5 Q13.95 37 16 37 18 37 19.45 35.5 L19.5 35.45 Q21 34 21 32 21 29.95 19.5 28.5 L19.5 28.45 Q18 27 16 27 13.95 27 12.5 28.45 M40 48 Q40 51.25 37.6 53.6 35.25 56 32 56 28.7 56 26.35 53.6 24 51.25 24 48 24 44.7 26.35 42.35 28.7 40 32 40 35.25 40 37.6 42.35 40 44.7 40 48 M24 32 Q24 35.25 21.6 37.6 19.25 40 16 40 12.7 40 10.35 37.6 8 35.25 8 32 8 28.7 10.35 26.35 12.7 24 16 24 19.25 24 21.6 26.35 24 28.7 24 32"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View file

@ -0,0 +1,37 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d1kw2owusg8fn"
path="res://.godot/imported/switch_buttons_down_outline.svg-1a3fd03e9583baf36775de11555aa585.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://ui/switch_buttons_down_outline.svg"
dest_files=["res://.godot/imported/switch_buttons_down_outline.svg-1a3fd03e9583baf36775de11555aa585.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

View file

@ -0,0 +1,6 @@
<svg width="64" height="64" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs/>
<g>
<path stroke="none" fill="#FFFFFF" d="M44.5 28.5 Q43 29.95 43 32 43 34 44.5 35.45 L44.55 35.5 Q46 37 48 37 50.05 37 51.5 35.5 L51.55 35.5 Q53 34 53 32 53 29.95 51.55 28.5 50.05 27 48 27 46 27 44.55 28.5 L44.5 28.5 M32 24 Q28.75 24 26.4 21.6 24 19.25 24 16 24 12.7 26.4 10.35 28.75 8 32 8 35.3 8 37.65 10.35 40 12.7 40 16 40 19.25 37.65 21.6 35.3 24 32 24 M48 40 Q44.75 40 42.4 37.6 40 35.25 40 32 40 28.7 42.4 26.35 44.75 24 48 24 51.3 24 53.65 26.35 56 28.7 56 32 56 35.25 53.65 37.6 51.3 40 48 40 M35.55 12.5 Q34.05 11 32 11 30 11 28.55 12.5 L28.5 12.5 Q27 13.95 27 16 27 18 28.5 19.45 L28.55 19.5 Q30 21 32 21 34.05 21 35.5 19.5 L35.55 19.5 Q37 18 37 16 37 13.95 35.55 12.5 M16 40 Q12.75 40 10.4 37.6 8 35.25 8 32 8 28.7 10.4 26.35 12.75 24 16 24 19.3 24 21.65 26.35 24 28.7 24 32 24 35.25 21.65 37.6 19.3 40 16 40 M35.55 51.5 Q37 50 37 48 37 45.95 35.55 44.5 34.05 43 32 43 30 43 28.55 44.5 L28.5 44.5 Q27 45.95 27 48 27 50 28.5 51.45 L28.55 51.5 Q30 53 32 53 34.05 53 35.5 51.5 L35.55 51.5 M32 56 Q28.75 56 26.4 53.6 24 51.25 24 48 24 44.7 26.4 42.35 28.75 40 32 40 35.3 40 37.65 42.35 40 44.7 40 48 40 51.25 37.65 53.6 35.3 56 32 56"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View file

@ -0,0 +1,37 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cfy8lgh61hsxg"
path="res://.godot/imported/switch_buttons_left_outline.svg-85d33baaf9585cc38f3af0151be2d4e3.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://ui/switch_buttons_left_outline.svg"
dest_files=["res://.godot/imported/switch_buttons_left_outline.svg-85d33baaf9585cc38f3af0151be2d4e3.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

339
project/ui/title.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 49 KiB

View file

@ -0,0 +1,37 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://pa0il6ab7wn5"
path="res://.godot/imported/title.svg-121a9f6119771c07da42669f5b9da685.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://ui/title.svg"
dest_files=["res://.godot/imported/title.svg-121a9f6119771c07da42669f5b9da685.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

View file

@ -40,11 +40,14 @@ expand_mode = 2
[node name="MessageLabel" type="RichTextLabel" parent="."]
unique_name_in_owner = true
anchors_preset = 10
anchors_preset = 15
anchor_right = 1.0
offset_bottom = 195.0
anchor_bottom = 1.0
offset_top = 317.0
grow_horizontal = 2
theme_override_font_sizes/normal_font_size = 60
grow_vertical = 2
theme_override_font_sizes/normal_font_size = 74
bbcode_enabled = true
text = "Good Luck!"
horizontal_alignment = 1
vertical_alignment = 1

View file

@ -0,0 +1,6 @@
<svg width="64" height="64" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs/>
<g>
<path stroke="none" fill="#FFFFFF" d="M40 39 L33 39 33 26 40 26 Q41.6 26 42.8 27.2 44 28.4 44 30 44 31.45 43.1 32.5 44 33.6 44 35 44 36.65 42.8 37.8 41.6 39 40 39 M40 31 Q40.45 31 40.7 30.7 L41 30 40.7 29.3 Q40.45 29 40 29 L36 29 36 31 40 31 M16 16 L40 16 Q46.6 16 51.3 20.7 56 25.4 56 32 L56 40 Q56 48 48 48 L16 48 Q8 48 8 40 L8 24 Q8 16 16 16 M40 36 Q40.45 36 40.7 35.7 L41 35 40.7 34.3 Q40.45 34 40 34 L36 34 36 36 40 36 M16 19 Q11 19 11 24 L11 40 Q11 45 16 45 L48 45 Q53 45 53 40 L53 32 Q53 26.65 49.2 22.85 45.35 19 40 19 L16 19 M22 33 L25.05 33 Q25.85 33 26.4 32.4 27 31.85 27 31 27 30.15 26.4 29.55 25.85 29 25 29 L22 29 22 33 M25 36 L22 36 22 39 19 39 19 26 25 26 Q27.05 26 28.5 27.45 30 28.95 30 31 30 33.05 28.5 34.5 L30 39 27 39 26 36 26 35.9 25 36"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 903 B

View file

@ -0,0 +1,37 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://baw7deolvkudx"
path="res://.godot/imported/xbox_rb_outline.svg-5702c48c2cdbf439e00a2a3dd66bfe94.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://ui/xbox_rb_outline.svg"
dest_files=["res://.godot/imported/xbox_rb_outline.svg-5702c48c2cdbf439e00a2a3dd66bfe94.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false