diff --git a/prefabs/map_info_container.tscn b/prefabs/map_info_container.tscn index db3771d1..82cb61d5 100644 --- a/prefabs/map_info_container.tscn +++ b/prefabs/map_info_container.tscn @@ -33,19 +33,6 @@ corner_radius_top_right = 4 corner_radius_bottom_right = 4 corner_radius_bottom_left = 4 -[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_i21mh"] -content_margin_left = 2.0 -content_margin_top = 2.0 -content_margin_right = 2.0 -content_margin_bottom = 2.0 - -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_1m5pv"] -bg_color = Color(0, 0, 0, 0.3764706) -corner_radius_top_left = 4 -corner_radius_top_right = 4 -corner_radius_bottom_right = 4 -corner_radius_bottom_left = 4 - [sub_resource type="ShaderMaterial" id="ShaderMaterial_4d08m"] shader = ExtResource("2_nrche") shader_parameter/outline_color = Color(0.05, 0.05, 0.05, 1) @@ -70,6 +57,13 @@ corner_radius_top_right = 4 corner_radius_bottom_right = 4 corner_radius_bottom_left = 4 +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_1m5pv"] +bg_color = Color(0, 0, 0, 0.3764706) +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 + [sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_6xsea"] content_margin_left = 2.0 content_margin_top = 2.0 @@ -176,7 +170,7 @@ outline_color = Color(0, 0, 0, 1) shadow_size = 4 shadow_color = Color(0, 0, 0, 1) -[node name="MapInfoContainer" type="Panel" unique_id=150923669 node_paths=PackedStringArray("info", "dim", "coverBackground", "cover", "infoSubholder", "mainLabel", "extraLabel", "artistLink", "exportButton", "favoriteButton", "videoButton", "videoDialog", "copyButton", "copyDialog", "deleteButton", "actions", "preview", "speedHolder", "speedPresets", "playHolder", "startButton", "leaderboard", "lbScrollContainer", "lbContainer", "lbExpand", "lbHide")] +[node name="MapInfoContainer" type="Panel" unique_id=150923669 node_paths=PackedStringArray("info", "dim", "coverBackground", "cover", "mainLabel", "extraLabel", "artistLink", "exportButton", "favoriteButton", "videoButton", "videoDialog", "copyButton", "copyDialog", "deleteButton", "actions", "preview", "speedHolder", "speedPresets", "playHolder", "startButton", "leaderboard", "lbScrollContainer", "lbContainer", "lbExpand", "lbHide")] anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 @@ -188,19 +182,18 @@ theme_override_styles/panel = SubResource("StyleBoxEmpty_svokg") script = ExtResource("1_50xtp") info = NodePath("Info") dim = NodePath("Dim") -coverBackground = NodePath("Info/ScrollContainer/HBoxContainer/Background") -cover = NodePath("Info/ScrollContainer/HBoxContainer/Background/Cover") -infoSubholder = NodePath("Info/ScrollContainer/HBoxContainer") -mainLabel = NodePath("Info/ScrollContainer/HBoxContainer/Subholder/Main") -extraLabel = NodePath("Info/ScrollContainer/HBoxContainer/Subholder/Extra") -artistLink = NodePath("Info/ScrollContainer/HBoxContainer/Background/ArtistLink") -exportButton = NodePath("Info/ScrollContainer/HBoxContainer/Subholder/Buttons/Export") -favoriteButton = NodePath("Info/ScrollContainer/HBoxContainer/Subholder/Buttons/Favorite") -videoButton = NodePath("Info/ScrollContainer/HBoxContainer/Subholder/Buttons/Video") -videoDialog = NodePath("Info/ScrollContainer/HBoxContainer/Subholder/Buttons/Video/VideoDialog") -copyButton = NodePath("Info/ScrollContainer/HBoxContainer/Subholder/Buttons/Copy") -copyDialog = NodePath("Info/ScrollContainer/HBoxContainer/Subholder/Buttons/Copy/CopyDialog") -deleteButton = NodePath("Info/ScrollContainer/HBoxContainer/Subholder/Buttons/Delete") +coverBackground = NodePath("Info/Control/Background") +cover = NodePath("Info/Control/Background/Cover") +mainLabel = NodePath("Info/Control/infoControl/infoSubholder/Main") +extraLabel = NodePath("Info/Control/infoControl/infoSubholder/Extra") +artistLink = NodePath("Info/Control/Background/ArtistLink") +exportButton = NodePath("Info/Control/infoControl/infoSubholder/Buttons/Export") +favoriteButton = NodePath("Info/Control/infoControl/infoSubholder/Buttons/Favorite") +videoButton = NodePath("Info/Control/infoControl/infoSubholder/Buttons/Video") +videoDialog = NodePath("Info/Control/infoControl/infoSubholder/Buttons/Video/VideoDialog") +copyButton = NodePath("Info/Control/infoControl/infoSubholder/Buttons/Copy") +copyDialog = NodePath("Info/Control/infoControl/infoSubholder/Buttons/Copy/CopyDialog") +deleteButton = NodePath("Info/Control/infoControl/infoSubholder/Buttons/Delete") actions = NodePath("Actions") preview = NodePath("Actions/ScrollContainer/Holder/Preview/AspectRatioContainer/FlatPreview") speedHolder = NodePath("Actions/ScrollContainer/Holder/Speed") @@ -232,46 +225,57 @@ grow_horizontal = 2 grow_vertical = 2 theme_override_styles/panel = SubResource("StyleBoxFlat_1q06g") -[node name="ScrollContainer" type="ScrollContainer" parent="Info" unique_id=771327651] +[node name="Outline" type="Panel" parent="Info" unique_id=1992047374] +material = SubResource("ShaderMaterial_4d08m") +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +theme_override_styles/panel = SubResource("StyleBoxFlat_w0o2h") + +[node name="Control" type="Control" parent="Info" unique_id=358752342] +clip_contents = true layout_mode = 1 anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 -mouse_filter = 0 mouse_force_pass_scroll_events = false theme = ExtResource("4_4d08m") -theme_override_styles/panel = SubResource("StyleBoxEmpty_i21mh") - -[node name="HBoxContainer" type="HBoxContainer" parent="Info/ScrollContainer" unique_id=660353866] -custom_minimum_size = Vector2(0, 245) -layout_mode = 2 -size_flags_horizontal = 3 -size_flags_vertical = 3 -[node name="Background" type="TextureRect" parent="Info/ScrollContainer/HBoxContainer" unique_id=1995472053] +[node name="Background" type="TextureRect" parent="Info/Control" unique_id=1995472053] show_behind_parent = true -layout_mode = 2 +layout_mode = 1 +anchors_preset = -1 +anchor_right = 0.34800002 +anchor_bottom = 0.99300003 +offset_left = 2.0 +offset_top = 2.0 +offset_right = -0.34414673 +offset_bottom = -0.040008545 texture = ExtResource("3_ne4r3") expand_mode = 2 -stretch_mode = 4 -[node name="Cover" type="TextureRect" parent="Info/ScrollContainer/HBoxContainer/Background" unique_id=1954943621] +[node name="Cover" type="TextureRect" parent="Info/Control/Background" unique_id=1954943621] layout_mode = 1 anchors_preset = -1 -anchor_right = 1.0 -anchor_bottom = 1.0 -offset_left = 8.0 -offset_top = 8.0 -offset_right = -8.0 -offset_bottom = -8.0 +anchor_left = 0.029000001 +anchor_top = 0.029000001 +anchor_right = 0.9710001 +anchor_bottom = 0.9710001 +offset_left = -0.0040006638 +offset_top = -0.0040006638 +offset_right = 0.003967285 +offset_bottom = 0.003967285 grow_horizontal = 2 grow_vertical = 2 expand_mode = 1 -stretch_mode = 6 -[node name="ArtistLink" type="Button" parent="Info/ScrollContainer/HBoxContainer/Background" unique_id=752801089] +[node name="ArtistLink" type="Button" parent="Info/Control/Background" unique_id=752801089] layout_mode = 1 anchors_preset = -1 anchor_left = 0.5 @@ -290,7 +294,7 @@ flat = true alignment = 0 script = ExtResource("4_dccrs") -[node name="Panel" type="Panel" parent="Info/ScrollContainer/HBoxContainer/Background/ArtistLink" unique_id=194309589] +[node name="Panel" type="Panel" parent="Info/Control/Background/ArtistLink" unique_id=194309589] show_behind_parent = true layout_mode = 1 anchors_preset = 15 @@ -301,65 +305,96 @@ grow_vertical = 2 mouse_filter = 2 theme_override_styles/panel = SubResource("StyleBoxFlat_1m5pv") -[node name="CoverContainer" type="AspectRatioContainer" parent="Info/ScrollContainer/HBoxContainer" unique_id=1266967334] +[node name="CoverContainer" type="AspectRatioContainer" parent="Info/Control" unique_id=1266967334] visible = false -layout_mode = 2 +layout_mode = 0 +offset_left = 282.0 +offset_top = 2.0 +offset_right = 282.0 +offset_bottom = 278.0 alignment_horizontal = 0 -[node name="Subholder" type="Panel" parent="Info/ScrollContainer/HBoxContainer" unique_id=80746001] -layout_mode = 2 +[node name="infoControl" type="Control" parent="Info/Control" unique_id=1409035100] +layout_mode = 1 +anchor_left = 0.35300002 +anchor_right = 1.0 +anchor_bottom = 0.99300003 +offset_left = -0.34335327 +offset_right = -1.5853882 +offset_bottom = -0.040008545 +grow_horizontal = 0 + +[node name="infoSubholder" type="Panel" parent="Info/Control/infoControl" unique_id=80746001] +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.056 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = -0.078229904 +offset_right = -0.25408936 +grow_horizontal = 2 +grow_vertical = 2 size_flags_horizontal = 3 -[node name="Extra" type="RichTextLabel" parent="Info/ScrollContainer/HBoxContainer/Subholder" unique_id=469525934] +[node name="Extra" type="RichTextLabel" parent="Info/Control/infoControl/infoSubholder" unique_id=469525934] layout_mode = 1 anchors_preset = -1 +anchor_left = 0.019000001 +anchor_top = 0.572 anchor_right = 1.0 anchor_bottom = 1.0 -offset_left = 8.0 -offset_top = 138.0 -offset_right = -8.399963 -offset_bottom = -50.0 -grow_horizontal = 0 +offset_left = -0.08819294 +offset_top = -0.51600647 +offset_right = -8.0 +offset_bottom = -60.0 +grow_horizontal = 2 +grow_vertical = 2 theme = ExtResource("4_4d08m") theme_override_font_sizes/normal_font_size = 18 bbcode_enabled = true text = "[color=ffffff88]{0} -{1} notes -[color=ffffff44]{2}" +{1} notes" +fit_content = true +autowrap_mode = 2 horizontal_alignment = 2 vertical_alignment = 2 -[node name="Main" type="RichTextLabel" parent="Info/ScrollContainer/HBoxContainer/Subholder" unique_id=394044659] +[node name="Main" type="RichTextLabel" parent="Info/Control/infoControl/infoSubholder" unique_id=394044659] layout_mode = 1 anchors_preset = -1 -anchor_right = 1.0 -offset_left = 8.0 +anchor_left = 0.015000001 +anchor_right = 0.984 +anchor_bottom = 0.57600003 +offset_left = 0.21499968 offset_top = 6.0 -offset_right = -8.399963 -offset_bottom = 130.0 +offset_right = -0.09597778 +offset_bottom = -0.12800598 mouse_filter = 1 theme = ExtResource("4_4d08m") theme_override_constants/paragraph_separation = 4 bbcode_enabled = true text = "[outline_size=2][font_size=24]{0} -[color={1}]{2} [font_size=16][color=909096]by {3}" +[color={1}]{2} [font_size=16][color=909096] +by {3} +[font_size=12][color=ffffff44]{4}" -[node name="Buttons" type="HBoxContainer" parent="Info/ScrollContainer/HBoxContainer/Subholder" unique_id=1191092010] +[node name="Buttons" type="HBoxContainer" parent="Info/Control/infoControl/infoSubholder" unique_id=1191092010] custom_minimum_size = Vector2(0, 40) layout_mode = 1 anchors_preset = -1 -anchor_top = 1.0 -anchor_right = 1.0 -anchor_bottom = 1.0 -offset_left = 8.0 -offset_top = -46.0 -offset_right = -6.0 -offset_bottom = -6.0 +anchor_left = 0.016 +anchor_top = 0.906 +anchor_right = 0.98800004 +anchor_bottom = 0.97800004 +offset_left = 0.20531178 +offset_top = -19.868011 +offset_right = -0.1539917 +offset_bottom = 0.115997314 grow_horizontal = 0 grow_vertical = 0 alignment = 2 -[node name="Export" type="Button" parent="Info/ScrollContainer/HBoxContainer/Subholder/Buttons" unique_id=2033571562] +[node name="Export" type="Button" parent="Info/Control/infoControl/infoSubholder/Buttons" unique_id=2033571562] layout_mode = 2 tooltip_text = "Exports map into a .phxm file to share easily" focus_mode = 0 @@ -370,7 +405,7 @@ theme_override_constants/icon_max_width = 24 icon = ExtResource("5_g02bu") icon_alignment = 1 -[node name="Favorite" type="Button" parent="Info/ScrollContainer/HBoxContainer/Subholder/Buttons" unique_id=1022164792] +[node name="Favorite" type="Button" parent="Info/Control/infoControl/infoSubholder/Buttons" unique_id=1022164792] layout_mode = 2 tooltip_text = "Favorite" focus_mode = 0 @@ -381,7 +416,7 @@ theme_override_constants/icon_max_width = 24 icon = ExtResource("5_1m5pv") icon_alignment = 1 -[node name="Video" type="Button" parent="Info/ScrollContainer/HBoxContainer/Subholder/Buttons" unique_id=1985048325] +[node name="Video" type="Button" parent="Info/Control/infoControl/infoSubholder/Buttons" unique_id=1985048325] visible = false layout_mode = 2 tooltip_text = "Add Video" @@ -394,7 +429,7 @@ disabled = true icon = ExtResource("6_g02bu") icon_alignment = 1 -[node name="VideoDialog" type="FileDialog" parent="Info/ScrollContainer/HBoxContainer/Subholder/Buttons/Video" unique_id=72805866] +[node name="VideoDialog" type="FileDialog" parent="Info/Control/infoControl/infoSubholder/Buttons/Video" unique_id=72805866] oversampling_override = 1.0 title = "Open a File" position = Vector2i(0, 36) @@ -403,7 +438,7 @@ access = 2 filters = PackedStringArray("*.mp4") use_native_dialog = true -[node name="Copy" type="Button" parent="Info/ScrollContainer/HBoxContainer/Subholder/Buttons" unique_id=2053076461] +[node name="Copy" type="Button" parent="Info/Control/infoControl/infoSubholder/Buttons" unique_id=2053076461] visible = false layout_mode = 2 tooltip_text = "Copy" @@ -415,12 +450,12 @@ theme_override_constants/icon_max_width = 24 icon = ExtResource("7_oibm8") icon_alignment = 1 -[node name="CopyDialog" type="FileDialog" parent="Info/ScrollContainer/HBoxContainer/Subholder/Buttons/Copy" unique_id=1634895255] +[node name="CopyDialog" type="FileDialog" parent="Info/Control/infoControl/infoSubholder/Buttons/Copy" unique_id=1634895255] access = 2 filters = PackedStringArray("*.phxm") use_native_dialog = true -[node name="Delete" type="Button" parent="Info/ScrollContainer/HBoxContainer/Subholder/Buttons" unique_id=2015809903] +[node name="Delete" type="Button" parent="Info/Control/infoControl/infoSubholder/Buttons" unique_id=2015809903] layout_mode = 2 tooltip_text = "Delete" focus_mode = 0 @@ -431,17 +466,6 @@ theme_override_constants/icon_max_width = 24 icon = ExtResource("8_ssthb") icon_alignment = 1 -[node name="Outline" type="Panel" parent="Info" unique_id=1992047374] -material = SubResource("ShaderMaterial_4d08m") -layout_mode = 1 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -grow_horizontal = 2 -grow_vertical = 2 -mouse_filter = 2 -theme_override_styles/panel = SubResource("StyleBoxFlat_w0o2h") - [node name="Actions" type="Panel" parent="." unique_id=1101045169] clip_contents = true layout_mode = 1 @@ -533,7 +557,7 @@ offset_right = -8.0 offset_bottom = -8.0 grow_horizontal = 2 grow_vertical = 0 -tooltip_text = "Favorite" +tooltip_text = "Changes how the camera functions: Spin enables a first-person perspective, while Lock keeps the camera still" theme = ExtResource("4_4d08m") script = ExtResource("11_ne4r3") container = NodePath("ScrollContainer/VBoxContainer") @@ -665,6 +689,7 @@ grow_horizontal = 2 grow_vertical = 2 theme = ExtResource("4_4d08m") theme_override_styles/panel = SubResource("StyleBoxEmpty_6xsea") +vertical_scroll_mode = 0 [node name="Presets" type="HBoxContainer" parent="Actions/ScrollContainer/Holder/Speed/ScrollContainer" unique_id=163344429] layout_mode = 2 @@ -825,10 +850,11 @@ ticks_position = 3 layout_mode = 1 anchors_preset = -1 anchor_left = 0.1 -anchor_right = 0.9 -anchor_bottom = 0.75 -offset_top = 48.0 -offset_bottom = -24.0 +anchor_top = 0.21800001 +anchor_right = 0.90000004 +anchor_bottom = 0.64000005 +offset_top = 18.352 +offset_bottom = -9.040009 grow_horizontal = 2 grow_vertical = 2 focus_mode = 0 @@ -907,6 +933,8 @@ layout_mode = 1 anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 +offset_left = -3.0 +offset_right = -3.0 grow_horizontal = 2 grow_vertical = 2 mouse_filter = 2 diff --git a/scenes/game.tscn b/scenes/game.tscn index 1d706810..97ec2a45 100644 --- a/scenes/game.tscn +++ b/scenes/game.tscn @@ -44,7 +44,7 @@ [ext_resource type="Script" uid="uid://dlxxg2h4cl5hj" path="res://scripts/game/ui/PauseMenu.cs" id="38_8ool0"] [ext_resource type="Script" uid="uid://c24b7vefbxvbh" path="res://scripts/game/ui/PlaytestOverlay.cs" id="40_m4url"] -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_a6jk1"] +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_05nbr"] resource_name = "Material" transparency = 1 shading_mode = 0 @@ -52,10 +52,10 @@ albedo_texture = ExtResource("2_q78ea") texture_repeat = false [sub_resource type="QuadMesh" id="QuadMesh_aih2q"] -material = SubResource("StandardMaterial3D_a6jk1") +material = SubResource("StandardMaterial3D_05nbr") size = Vector2(4, 4) -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_lvhmj"] +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_0sl42"] transparency = 1 shading_mode = 0 disable_ambient_light = true @@ -66,7 +66,7 @@ texture_repeat = false distance_fade_min_distance = 1076.07 [sub_resource type="QuadMesh" id="QuadMesh_xij4d"] -material = SubResource("StandardMaterial3D_lvhmj") +material = SubResource("StandardMaterial3D_0sl42") size = Vector2(0.263, 0.263) [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ssr8x"] @@ -78,14 +78,14 @@ vertex_color_use_as_albedo = true vertex_color_is_srgb = true albedo_texture = ExtResource("13_6rhgc") -[sub_resource type="QuadMesh" id="QuadMesh_5p2n8"] +[sub_resource type="QuadMesh" id="QuadMesh_458eo"] [sub_resource type="MultiMesh" id="MultiMesh_e28va"] transform_format = 1 use_colors = true -mesh = SubResource("QuadMesh_5p2n8") +mesh = SubResource("QuadMesh_458eo") -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_05nbr"] +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_h3rex"] resource_name = "Material" transparency = 1 shading_mode = 0 @@ -93,18 +93,18 @@ albedo_texture = ExtResource("12_pr1ej") texture_repeat = false [sub_resource type="QuadMesh" id="QuadMesh_0sl42"] -material = SubResource("StandardMaterial3D_05nbr") +material = SubResource("StandardMaterial3D_h3rex") size = Vector2(4, 4) -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_rc4du"] +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_fedci"] transparency = 1 shading_mode = 0 albedo_texture = ExtResource("36_05nbr") [sub_resource type="QuadMesh" id="QuadMesh_oaba0"] -material = SubResource("StandardMaterial3D_rc4du") +material = SubResource("StandardMaterial3D_fedci") -[sub_resource type="ViewportTexture" id="ViewportTexture_pl11u"] +[sub_resource type="ViewportTexture" id="ViewportTexture_qkpxi"] viewport_path = NodePath("Runner/HUD/Health/HealthViewport") [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_4p8vu"] @@ -112,7 +112,7 @@ resource_local_to_scene = true transparency = 1 shading_mode = 0 disable_fog = true -albedo_texture = SubResource("ViewportTexture_pl11u") +albedo_texture = SubResource("ViewportTexture_qkpxi") texture_repeat = false [sub_resource type="QuadMesh" id="QuadMesh_b1hbo"] @@ -120,7 +120,7 @@ resource_local_to_scene = true material = SubResource("StandardMaterial3D_4p8vu") size = Vector2(10.88, 0.8) -[sub_resource type="ViewportTexture" id="ViewportTexture_sww3w"] +[sub_resource type="ViewportTexture" id="ViewportTexture_tel4y"] viewport_path = NodePath("Runner/HUD/PanelLeft/PanelLeftViewport") [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_nody0"] @@ -128,7 +128,7 @@ resource_local_to_scene = true transparency = 1 shading_mode = 0 disable_fog = true -albedo_texture = SubResource("ViewportTexture_sww3w") +albedo_texture = SubResource("ViewportTexture_tel4y") texture_repeat = false [sub_resource type="QuadMesh" id="QuadMesh_ssyve"] @@ -158,7 +158,7 @@ font_size = 50 font = ExtResource("21_05nbr") font_size = 50 -[sub_resource type="ViewportTexture" id="ViewportTexture_suyxu"] +[sub_resource type="ViewportTexture" id="ViewportTexture_5q0nq"] viewport_path = NodePath("Runner/HUD/PanelRight/PanelRightViewport") [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ro5ir"] @@ -166,7 +166,7 @@ resource_local_to_scene = true transparency = 1 shading_mode = 0 disable_fog = true -albedo_texture = SubResource("ViewportTexture_suyxu") +albedo_texture = SubResource("ViewportTexture_5q0nq") texture_repeat = false [sub_resource type="LabelSettings" id="LabelSettings_5bid2"] @@ -189,7 +189,7 @@ font_size = 50 [sub_resource type="ShaderMaterial" id="ShaderMaterial_gc8yu"] shader = ExtResource("14_3xchs") -[sub_resource type="ViewportTexture" id="ViewportTexture_bhx41"] +[sub_resource type="ViewportTexture" id="ViewportTexture_dgi5k"] viewport_path = NodePath("Runner/HUD/ProgressBar/ProgressBarViewport") [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_p1h21"] @@ -197,7 +197,7 @@ resource_local_to_scene = true transparency = 1 shading_mode = 0 disable_fog = true -albedo_texture = SubResource("ViewportTexture_bhx41") +albedo_texture = SubResource("ViewportTexture_dgi5k") texture_repeat = false [sub_resource type="QuadMesh" id="QuadMesh_7mook"] @@ -281,12 +281,13 @@ CursorManager = NodePath("CursorManager") UseGameSpace = true AddSpaceAsChild = true -[node name="CursorManager" type="Node" parent="." unique_id=862696440 node_paths=PackedStringArray("runner", "playerInputController", "replayManager", "cursorMesh", "camera")] +[node name="CursorManager" type="Node" parent="." unique_id=862696440 node_paths=PackedStringArray("runner", "playerInputController", "replayManager", "cursorMesh", "bufferCursor", "camera")] script = ExtResource("2_nepv3") runner = NodePath("../Runner") playerInputController = NodePath("../PlayerInputController") replayManager = NodePath("../ReplayManager") cursorMesh = NodePath("../Runner/HUD/Grid/Cursor") +bufferCursor = NodePath("../Runner/HUD/Grid/BufferCursor") camera = NodePath("../Runner/Camera3D") [node name="TrailRenderer" type="Node" parent="CursorManager" unique_id=2058712869 node_paths=PackedStringArray("cursor", "cursorTrail", "runner")] @@ -325,6 +326,12 @@ script = ExtResource("27_js0lu") mesh = SubResource("QuadMesh_xij4d") skeleton = NodePath("../../../..") +[node name="BufferCursor" type="MeshInstance3D" parent="Runner/HUD/Grid" unique_id=703771191] +visible = false +transparency = 1.0 +mesh = SubResource("QuadMesh_xij4d") +skeleton = NodePath("../../..") + [node name="CursorTrail" type="MultiMeshInstance3D" parent="Runner/HUD/Grid" unique_id=913051903] material_override = SubResource("StandardMaterial3D_ssr8x") multimesh = SubResource("MultiMesh_e28va") @@ -405,9 +412,9 @@ anchor_top = 0.65 anchor_right = 0.5 anchor_bottom = 0.65 offset_left = -128.0 -offset_top = -128.0 +offset_top = -166.25 offset_right = 128.0 -offset_bottom = 128.0 +offset_bottom = 89.75128 theme_override_styles/panel = SubResource("StyleBoxFlat_56f8v") [node name="Score" type="Label" parent="Runner/HUD/PanelLeft/PanelLeftViewport" unique_id=1330190508] @@ -416,10 +423,10 @@ anchor_left = 0.5 anchor_top = 0.35 anchor_right = 0.5 anchor_bottom = 0.35 -offset_left = -14.5 -offset_top = -28.5 -offset_right = 14.5 -offset_bottom = 28.5 +offset_left = -15.0 +offset_top = -34.5 +offset_right = 15.0 +offset_bottom = 34.500122 grow_horizontal = 2 grow_vertical = 2 theme = ExtResource("4_rvp5o") @@ -433,6 +440,10 @@ anchor_left = 0.5 anchor_top = 0.65 anchor_right = 0.5 anchor_bottom = 0.65 +offset_left = -28.5 +offset_top = -71.25 +offset_right = 28.5 +offset_bottom = -2.2499695 grow_horizontal = 2 grow_vertical = 2 theme = ExtResource("4_rvp5o") @@ -441,16 +452,15 @@ label_settings = SubResource("LabelSettings_pr1ej") horizontal_alignment = 1 [node name="ComboCount" type="Label" parent="Runner/HUD/PanelLeft/PanelLeftViewport" unique_id=531787894] -visible = false anchors_preset = -1 anchor_left = 0.5 anchor_top = 0.86 anchor_right = 0.5 anchor_bottom = 0.86 offset_left = -90.0 -offset_top = -18.0 +offset_top = -34.5 offset_right = 90.0 -offset_bottom = 18.0 +offset_bottom = 34.5 grow_horizontal = 2 grow_vertical = 2 text = "0" diff --git a/scenes/main.tscn b/scenes/main.tscn index 9609aac6..3be1164b 100644 --- a/scenes/main.tscn +++ b/scenes/main.tscn @@ -8,8 +8,29 @@ [ext_resource type="Texture2D" uid="uid://men3chmi3esy" path="res://textures/ui/add.png" id="6_ya4ey"] [ext_resource type="Shader" uid="uid://rngh60dyh10b" path="res://scripts/shaders/outline.gdshader" id="7_eb6dy"] [ext_resource type="Texture2D" uid="uid://3e1tjlr4m0wt" path="res://user/skins/default/game/cursor.png" id="8_85g3d"] +[ext_resource type="Texture2D" uid="uid://b3g4aw54n6bow" path="res://user/skins/default/game/grid.png" id="8_dgi5k"] +[ext_resource type="Script" uid="uid://nwvon7h1bvhc" path="res://scripts/ui/menu/SkinPreview/TitlePreview.cs" id="9_5q0nq"] [ext_resource type="Script" uid="uid://carutkgoqpr4e" path="res://scripts/ui/MenuCursor.cs" id="9_choun"] [ext_resource type="Script" uid="uid://bmq7ajx48l7ng" path="res://scripts/ui/FPSCounter.cs" id="10_choun"] +[ext_resource type="Script" uid="uid://bxshhmy8fg6nh" path="res://scripts/ui/menu/SkinPreview/PanelLeftPreview.cs" id="10_qkpxi"] +[ext_resource type="Texture2D" uid="uid://dw2gxd3m24h4m" path="res://user/skins/default/game/hits.png" id="11_kmb1v"] +[ext_resource type="Texture2D" uid="uid://ccdaf14yq65jf" path="res://user/skins/default/game/grid_guides.png" id="12_fuf3a"] +[ext_resource type="Texture2D" uid="uid://bc0w1ujoshiyk" path="res://user/skins/default/game/visibility_assist.png" id="13_pibwh"] +[ext_resource type="Texture2D" uid="uid://cxv6ey5xb6b0f" path="res://user/skins/default/game/health_background.png" id="15_5he1u"] +[ext_resource type="Script" uid="uid://cv27mk2qd18i2" path="res://scripts/ui/menu/SkinPreview/PanelRightPreview.cs" id="15_dgi5k"] +[ext_resource type="Texture2D" uid="uid://4x2vfpyjkri6" path="res://user/skins/default/game/health.png" id="16_5poiv"] +[ext_resource type="Texture2D" uid="uid://80bitp5weqrb" path="res://user/skins/default/game/panel_left_background.png" id="18_chjal"] +[ext_resource type="Shader" uid="uid://bx4888tau78tk" path="res://scripts/shaders/combo_progress.gdshader" id="19_cjqg0"] +[ext_resource type="Script" uid="uid://c3xaw5hps8bel" path="res://scripts/ui/menu/SkinPreview/ProgressBarPreview.cs" id="20_j8jky"] +[ext_resource type="FontFile" uid="uid://dhyog1pif7c5i" path="res://fonts/Nunito/Nunito-Bold.ttf" id="20_vchkt"] +[ext_resource type="FontFile" uid="uid://b0ru0lfde5a21" path="res://fonts/Nunito/Nunito-SemiBold.ttf" id="21_txyw0"] +[ext_resource type="Texture2D" uid="uid://diba7c3s8as4s" path="res://user/skins/default/game/panel_right_background.png" id="23_nvyfr"] +[ext_resource type="Script" uid="uid://cfavwgar504b0" path="res://scripts/ui/menu/SkinPreview/HealthBarPreview.cs" id="24_kmb1v"] +[ext_resource type="Texture2D" uid="uid://c3x2cp3tx4vqt" path="res://user/skins/default/game/misses.png" id="24_ty1g6"] +[ext_resource type="Shader" uid="uid://bp2sv5ynsubi2" path="res://scripts/shaders/alpha_gradient.gdshader" id="25_j2jfr"] +[ext_resource type="Script" uid="uid://c0of2i2mjcd3r" path="res://scripts/ui/menu/SkinPreview/GridPreview.cs" id="28_fuf3a"] +[ext_resource type="Texture2D" uid="uid://dmc5f6ajp8xv1" path="res://user/skins/default/game/progress_background.png" id="28_o7ddy"] +[ext_resource type="Texture2D" uid="uid://d3s17ehomjscd" path="res://user/skins/default/game/progress.png" id="29_0loja"] [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_1q06g"] bg_color = Color(0, 0, 0, 0.8784314) @@ -104,6 +125,187 @@ corner_radius_top_right = 4 corner_radius_bottom_right = 4 corner_radius_bottom_left = 4 +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_tel4y"] +bg_color = Color(0.16565639, 0.16565642, 0.16565639, 0.8784314) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(0, 0, 0, 0.6) +corner_radius_top_left = 12 +corner_radius_top_right = 12 +corner_radius_bottom_right = 12 +corner_radius_bottom_left = 12 + +[sub_resource type="ViewportTexture" id="ViewportTexture_152kg"] +viewport_path = NodePath("Settings/SkinPreviewPanel/SkinPreview/SubViewport/PanelLeft/PanelLeftViewport") + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_r4e17"] +resource_local_to_scene = true +transparency = 1 +shading_mode = 0 +disable_fog = true +albedo_texture = SubResource("ViewportTexture_152kg") +texture_repeat = false + +[sub_resource type="QuadMesh" id="QuadMesh_tel4y"] +size = Vector2(4, 10) + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_mlv25"] +shader = ExtResource("19_cjqg0") +shader_parameter/progress = 0.8870000421325 +shader_parameter/colour = Color(1, 1, 1, 1) +shader_parameter/background_colour = Color(0.155, 0.155, 0.155, 1) +shader_parameter/sides = 8 +shader_parameter/thickness = 3.0 +shader_parameter/size = 1.0 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_a82wo"] +bg_color = Color(0, 0, 0, 0) + +[sub_resource type="LabelSettings" id="LabelSettings_gdvew"] +font = ExtResource("20_vchkt") +font_size = 50 + +[sub_resource type="LabelSettings" id="LabelSettings_kjtvk"] +font = ExtResource("21_txyw0") +font_size = 50 + +[sub_resource type="LabelSettings" id="LabelSettings_xrs0c"] +font = ExtResource("21_txyw0") +font_size = 50 + +[sub_resource type="ViewportTexture" id="ViewportTexture_fp3uj"] +viewport_path = NodePath("Settings/SkinPreviewPanel/SkinPreview/SubViewport/PanelRight/PanelRightViewport") + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_j4bwh"] +resource_local_to_scene = true +transparency = 1 +shading_mode = 0 +disable_fog = true +albedo_texture = SubResource("ViewportTexture_fp3uj") +texture_repeat = false + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_qkpxi"] + +[sub_resource type="QuadMesh" id="QuadMesh_y57op"] +material = SubResource("StandardMaterial3D_qkpxi") +size = Vector2(4, 10) + +[sub_resource type="LabelSettings" id="LabelSettings_ksmap"] +font = ExtResource("21_txyw0") +font_size = 30 + +[sub_resource type="LabelSettings" id="LabelSettings_ygd8o"] +font = ExtResource("21_txyw0") +font_size = 30 + +[sub_resource type="LabelSettings" id="LabelSettings_2s0kr"] +font = ExtResource("21_txyw0") +font_size = 50 +font_color = Color(1, 1, 1, 0.768627) + +[sub_resource type="LabelSettings" id="LabelSettings_xaipn"] +font = ExtResource("21_txyw0") +font_size = 50 + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_ndrjj"] +shader = ExtResource("25_j2jfr") + +[sub_resource type="ViewportTexture" id="ViewportTexture_rc4du"] +viewport_path = NodePath("Settings/SkinPreviewPanel/SkinPreview/SubViewport/ProgressBar/ProgressBarViewport") + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_11yus"] +resource_local_to_scene = true +transparency = 1 +shading_mode = 0 +disable_fog = true +albedo_texture = SubResource("ViewportTexture_rc4du") +texture_repeat = false + +[sub_resource type="QuadMesh" id="QuadMesh_b6ruc"] +resource_local_to_scene = true +material = SubResource("StandardMaterial3D_11yus") +size = Vector2(10.88, 0.8) + +[sub_resource type="ViewportTexture" id="ViewportTexture_od4ux"] +viewport_path = NodePath("Settings/SkinPreviewPanel/SkinPreview/SubViewport/Health/HealthViewport") + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_xhfw6"] +resource_local_to_scene = true +transparency = 1 +shading_mode = 0 +disable_fog = true +albedo_texture = SubResource("ViewportTexture_od4ux") +texture_repeat = false + +[sub_resource type="QuadMesh" id="QuadMesh_1epgm"] +resource_local_to_scene = true +material = SubResource("StandardMaterial3D_xhfw6") +size = Vector2(10.88, 0.8) + +[sub_resource type="Environment" id="Environment_gdxgs"] + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_a6jk1"] +resource_name = "Material" +transparency = 1 +shading_mode = 0 +albedo_texture = ExtResource("8_dgi5k") +texture_repeat = false + +[sub_resource type="QuadMesh" id="QuadMesh_augu2"] +material = SubResource("StandardMaterial3D_a6jk1") +size = Vector2(4, 4) + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_lvhmj"] +transparency = 1 +shading_mode = 0 +disable_ambient_light = true +disable_fog = true +albedo_texture = ExtResource("8_85g3d") +texture_filter = 5 +texture_repeat = false +distance_fade_min_distance = 1076.07 + +[sub_resource type="QuadMesh" id="QuadMesh_tm6hj"] +material = SubResource("StandardMaterial3D_lvhmj") +size = Vector2(0.263, 0.263) + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_kf5aa"] +transparency = 1 +cull_mode = 2 +shading_mode = 0 +disable_fog = true +vertex_color_use_as_albedo = true +vertex_color_is_srgb = true +albedo_texture = ExtResource("11_kmb1v") + +[sub_resource type="QuadMesh" id="QuadMesh_5p2n8"] + +[sub_resource type="MultiMesh" id="MultiMesh_t5ykj"] +transform_format = 1 +use_colors = true +mesh = SubResource("QuadMesh_5p2n8") + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_05nbr"] +resource_name = "Material" +transparency = 1 +shading_mode = 0 +albedo_texture = ExtResource("12_fuf3a") +texture_repeat = false + +[sub_resource type="QuadMesh" id="QuadMesh_e755i"] +material = SubResource("StandardMaterial3D_05nbr") +size = Vector2(4, 4) + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_rc4du"] +transparency = 1 +shading_mode = 0 +albedo_texture = ExtResource("13_pibwh") + +[sub_resource type="QuadMesh" id="QuadMesh_ro3en"] +material = SubResource("StandardMaterial3D_rc4du") + [sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_o6xl0"] [sub_resource type="LabelSettings" id="LabelSettings_tipki"] @@ -160,8 +362,13 @@ layout_mode = 1 anchors_preset = -1 anchor_left = 0.25 anchor_top = 0.25 -anchor_right = 0.75 -anchor_bottom = 0.75 +anchor_right = 0.75000006 +anchor_bottom = 0.75000006 +offset_right = -6.1035156e-05 +offset_bottom = -6.1035156e-05 +grow_horizontal = 2 +grow_vertical = 2 +offset_transform_visual_only = false theme = ExtResource("3_tipki") theme_override_styles/panel = SubResource("StyleBoxFlat_1q06g") @@ -418,6 +625,30 @@ text = "SETTINGS" label_settings = SubResource("LabelSettings_osuri") vertical_alignment = 1 +[node name="RefreshSkinPreview" type="Button" parent="Settings/Holder/Header" unique_id=693048162] +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.27800003 +anchor_top = 0.15 +anchor_right = 0.48600003 +anchor_bottom = 0.9250001 +offset_left = 0.07998657 +offset_right = -0.040008545 +theme = ExtResource("3_tipki") +text = "Refresh Preview" + +[node name="ShowSkinPreview" type="Button" parent="Settings/Holder/Header" unique_id=558443082] +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.499 +anchor_top = 0.15 +anchor_right = 0.75500005 +anchor_bottom = 0.9250001 +offset_left = -0.1000061 +offset_right = -11.940033 +theme = ExtResource("3_tipki") +text = "Toggle Skin Preview" + [node name="Profiles" type="OptionButton" parent="Settings/Holder/Header" unique_id=716644348] layout_mode = 1 anchors_preset = -1 @@ -478,7 +709,7 @@ caret_blink = true [node name="Outline" type="Panel" parent="Settings/Holder" unique_id=1227163057] material = SubResource("ShaderMaterial_3poq1") layout_mode = 1 -anchors_preset = 15 +anchors_preset = -1 anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 @@ -499,6 +730,413 @@ file_mode = 2 access = 2 use_native_dialog = true +[node name="SkinPreviewPanel" type="Panel" parent="Settings" unique_id=499692920] +visible = false +modulate = Color(1, 1, 1, 0) +light_mask = 512 +visibility_layer = 512 +z_index = 1 +z_as_relative = false +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.55200005 +anchor_top = 0.279 +anchor_right = 0.919 +anchor_bottom = 0.72400004 +offset_left = -0.5600586 +offset_top = 0.11999512 +offset_right = 0.34692383 +offset_bottom = -0.2800293 +offset_transform_enabled = true +offset_transform_pivot_ratio = Vector2(1, 1) +offset_transform_visual_only = false +focus_behavior_recursive = 2 +theme_override_styles/panel = SubResource("StyleBoxFlat_tel4y") + +[node name="Label" type="Label" parent="Settings/SkinPreviewPanel" unique_id=742694072] +z_index = 3 +layout_mode = 1 +anchors_preset = 10 +anchor_right = 1.0 +offset_left = -1.0 +offset_top = -12.0 +offset_right = -1.0 +offset_bottom = 11.0 +grow_horizontal = 2 +text = "SKIN PREVIEW" +horizontal_alignment = 1 + +[node name="SkinPreview" type="SubViewportContainer" parent="Settings/SkinPreviewPanel" unique_id=2122293191] +z_index = 2 +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +stretch = true + +[node name="SubViewport" type="SubViewport" parent="Settings/SkinPreviewPanel/SkinPreview" unique_id=732895320] +own_world_3d = true +transparent_bg = true +handle_input_locally = false +msaa_3d = 1 +scaling_3d_scale = 1.5 +anisotropic_filtering_level = 1 +size = Vector2i(470, 320) +render_target_update_mode = 0 + +[node name="Combo" type="Node3D" parent="Settings/SkinPreviewPanel/SkinPreview/SubViewport" unique_id=385833504] + +[node name="Label" type="Label3D" parent="Settings/SkinPreviewPanel/SkinPreview/SubViewport/Combo" unique_id=372830576] +transform = Transform3D(7, 0, 0, 0, 6.89365, -1.21554, 0, 1.21554, 6.89365, 0, 3.5, -10) +pixel_size = 0.0025 +modulate = Color(1, 1, 1, 0) +outline_modulate = Color(1, 1, 1, 0.39215687) +text = "999" +font = ExtResource("5_choun") +font_size = 64 +outline_size = 4 + +[node name="Title" type="Node3D" parent="Settings/SkinPreviewPanel/SkinPreview/SubViewport" unique_id=840531691] +script = ExtResource("9_5q0nq") + +[node name="Label" type="Label3D" parent="Settings/SkinPreviewPanel/SkinPreview/SubViewport/Title" unique_id=2059982806] +transform = Transform3D(2, 0, 0, 0, 1.93185, -0.517638, 0, 0.517638, 1.93185, 0, 8.25, -10) +outline_modulate = Color(0, 0, 0, 0) +text = "N/A - N/A" +font = ExtResource("20_vchkt") +font_size = 64 +autowrap_mode = 3 +width = 2500.0 + +[node name="PanelLeft" type="MeshInstance3D" parent="Settings/SkinPreviewPanel/SkinPreview/SubViewport" unique_id=1497917243] +transform = Transform3D(0.984808, 0, 0.173648, 0, 0.99999994, 0, -0.173648, 0, 0.98480797, -7.5, 9.536743e-07, -9.000001) +material_override = SubResource("StandardMaterial3D_r4e17") +mesh = SubResource("QuadMesh_tel4y") +script = ExtResource("10_qkpxi") + +[node name="PanelLeftViewport" type="SubViewport" parent="Settings/SkinPreviewPanel/SkinPreview/SubViewport/PanelLeft" unique_id=1517733272] +disable_3d = true +transparent_bg = true +size = Vector2i(250, 625) + +[node name="Background" type="TextureRect" parent="Settings/SkinPreviewPanel/SkinPreview/SubViewport/PanelLeft/PanelLeftViewport" unique_id=1252591779] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("18_chjal") + +[node name="MultiplierProgress" type="Panel" parent="Settings/SkinPreviewPanel/SkinPreview/SubViewport/PanelLeft/PanelLeftViewport" unique_id=403597694] +clip_children = 2 +material = SubResource("ShaderMaterial_mlv25") +anchors_preset = -1 +anchor_left = 0.5 +anchor_top = 0.65 +anchor_right = 0.5 +anchor_bottom = 0.65 +offset_left = -128.0 +offset_top = -166.25 +offset_right = 128.0 +offset_bottom = 89.75128 +theme_override_styles/panel = SubResource("StyleBoxFlat_a82wo") + +[node name="Score" type="Label" parent="Settings/SkinPreviewPanel/SkinPreview/SubViewport/PanelLeft/PanelLeftViewport" unique_id=117882971] +anchors_preset = -1 +anchor_left = 0.5 +anchor_top = 0.35 +anchor_right = 0.5 +anchor_bottom = 0.35 +offset_left = -30.0 +offset_top = -34.5 +offset_right = 30.0 +offset_bottom = 34.500122 +grow_horizontal = 2 +grow_vertical = 2 +theme = ExtResource("3_tipki") +text = "0" +label_settings = SubResource("LabelSettings_gdvew") +horizontal_alignment = 1 + +[node name="Multiplier" type="Label" parent="Settings/SkinPreviewPanel/SkinPreview/SubViewport/PanelLeft/PanelLeftViewport" unique_id=1512976271] +anchors_preset = -1 +anchor_left = 0.5 +anchor_top = 0.65 +anchor_right = 0.5 +anchor_bottom = 0.65 +offset_left = -28.5 +offset_top = -71.25 +offset_right = 28.5 +offset_bottom = -2.2499695 +grow_horizontal = 2 +grow_vertical = 2 +theme = ExtResource("3_tipki") +text = "1x" +label_settings = SubResource("LabelSettings_kjtvk") +horizontal_alignment = 1 + +[node name="ComboCount" type="Label" parent="Settings/SkinPreviewPanel/SkinPreview/SubViewport/PanelLeft/PanelLeftViewport" unique_id=132983092] +anchors_preset = -1 +anchor_left = 0.5 +anchor_top = 0.86 +anchor_right = 0.5 +anchor_bottom = 0.86 +offset_left = -90.0 +offset_top = -34.5 +offset_right = 90.0 +offset_bottom = 34.5 +grow_horizontal = 2 +grow_vertical = 2 +text = "0" +label_settings = SubResource("LabelSettings_xrs0c") +horizontal_alignment = 1 + +[node name="PanelRight" type="MeshInstance3D" parent="Settings/SkinPreviewPanel/SkinPreview/SubViewport" unique_id=1186413604] +transform = Transform3D(0.984808, 0, -0.173648, 0, 1, 0, 0.173648, 0, 0.984808, 7.5, 0, -9) +material_override = SubResource("StandardMaterial3D_j4bwh") +mesh = SubResource("QuadMesh_y57op") +script = ExtResource("15_dgi5k") + +[node name="PanelRightViewport" type="SubViewport" parent="Settings/SkinPreviewPanel/SkinPreview/SubViewport/PanelRight" unique_id=353250979] +process_mode = 3 +disable_3d = true +transparent_bg = true +canvas_item_default_texture_filter = 2 +size = Vector2i(250, 625) + +[node name="Background" type="TextureRect" parent="Settings/SkinPreviewPanel/SkinPreview/SubViewport/PanelRight/PanelRightViewport" unique_id=519398642] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("23_nvyfr") + +[node name="Accuracy" type="Label" parent="Settings/SkinPreviewPanel/SkinPreview/SubViewport/PanelRight/PanelRightViewport" unique_id=1917390646] +anchors_preset = -1 +anchor_left = 0.5 +anchor_top = 0.35 +anchor_right = 0.5 +anchor_bottom = 0.35 +grow_horizontal = 2 +grow_vertical = 2 +theme = ExtResource("3_tipki") +text = "100.00%" +label_settings = SubResource("LabelSettings_gdvew") +horizontal_alignment = 1 + +[node name="Hits" type="Label" parent="Settings/SkinPreviewPanel/SkinPreview/SubViewport/PanelRight/PanelRightViewport" unique_id=163179924] +modulate = Color(1, 1, 1, 0.627451) +anchors_preset = -1 +anchor_left = 0.5 +anchor_top = 0.625 +anchor_right = 0.5 +anchor_bottom = 0.625 +offset_right = -25.0 +offset_bottom = -4.0 +grow_horizontal = 0 +grow_vertical = 2 +size_flags_horizontal = 4 +theme = ExtResource("3_tipki") +text = "0" +label_settings = SubResource("LabelSettings_ksmap") +horizontal_alignment = 2 + +[node name="Misses" type="Label" parent="Settings/SkinPreviewPanel/SkinPreview/SubViewport/PanelRight/PanelRightViewport" unique_id=1997376473] +modulate = Color(1, 1, 1, 0.627451) +anchors_preset = -1 +anchor_left = 0.5 +anchor_top = 0.625 +anchor_right = 0.5 +anchor_bottom = 0.625 +offset_left = 25.0 +offset_bottom = -4.0 +grow_vertical = 2 +size_flags_horizontal = 4 +theme = ExtResource("3_tipki") +text = "0" +label_settings = SubResource("LabelSettings_ygd8o") + +[node name="SimpleMisses" type="Label" parent="Settings/SkinPreviewPanel/SkinPreview/SubViewport/PanelRight/PanelRightViewport" unique_id=678419666] +visible = false +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +grow_horizontal = 2 +grow_vertical = 2 +size_flags_horizontal = 4 +theme = ExtResource("3_tipki") +text = "0" +label_settings = SubResource("LabelSettings_2s0kr") + +[node name="Sum" type="Label" parent="Settings/SkinPreviewPanel/SkinPreview/SubViewport/PanelRight/PanelRightViewport" unique_id=1801663974] +anchors_preset = -1 +anchor_left = 0.5 +anchor_top = 0.7 +anchor_right = 0.5 +anchor_bottom = 0.7 +grow_horizontal = 2 +grow_vertical = 2 +size_flags_horizontal = 4 +theme = ExtResource("3_tipki") +text = "0" +label_settings = SubResource("LabelSettings_xaipn") +horizontal_alignment = 1 + +[node name="HitsIcon" type="TextureRect" parent="Settings/SkinPreviewPanel/SkinPreview/SubViewport/PanelRight/PanelRightViewport" unique_id=744614831] +anchors_preset = -1 +anchor_left = 0.5 +anchor_top = 0.625 +anchor_right = 0.5 +anchor_bottom = 0.625 +offset_top = -12.0 +offset_right = -2.0 +offset_bottom = 7.0 +grow_horizontal = 0 +grow_vertical = 2 +theme = ExtResource("3_tipki") +texture = ExtResource("11_kmb1v") +expand_mode = 2 + +[node name="MissesIcon" type="TextureRect" parent="Settings/SkinPreviewPanel/SkinPreview/SubViewport/PanelRight/PanelRightViewport" unique_id=350489808] +anchors_preset = -1 +anchor_left = 0.5 +anchor_top = 0.625 +anchor_right = 0.5 +anchor_bottom = 0.625 +offset_left = 2.0 +offset_top = -12.0 +offset_bottom = 7.0 +grow_vertical = 2 +theme = ExtResource("3_tipki") +texture = ExtResource("24_ty1g6") +expand_mode = 2 + +[node name="Line" type="ColorRect" parent="Settings/SkinPreviewPanel/SkinPreview/SubViewport/PanelRight/PanelRightViewport" unique_id=282594885] +material = SubResource("ShaderMaterial_ndrjj") +anchors_preset = -1 +anchor_top = 0.65 +anchor_right = 1.0 +anchor_bottom = 0.65 +offset_left = 16.0 +offset_right = -16.0 +offset_bottom = 2.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="ProgressBar" type="MeshInstance3D" parent="Settings/SkinPreviewPanel/SkinPreview/SubViewport" unique_id=2054063058] +transform = Transform3D(1, -3.7252903e-09, 0, 0, 0.965926, -0.258819, 1.4901161e-08, 0.258819, 0.965926, 4.7683716e-07, 6.3, -10) +cast_shadow = 0 +mesh = SubResource("QuadMesh_b6ruc") +script = ExtResource("20_j8jky") + +[node name="Progress" type="Node3D" parent="Settings/SkinPreviewPanel/SkinPreview/SubViewport/ProgressBar" unique_id=734363712] +transform = Transform3D(1, 0, 0, 0, 0.96592563, 0.25881892, 0, -0.25881892, 0.96592563, 0, -3.4971423, 11.289815) + +[node name="Label" type="Label3D" parent="Settings/SkinPreviewPanel/SkinPreview/SubViewport/ProgressBar/Progress" unique_id=72322109] +transform = Transform3D(3.5, 0, 0, 0, 3.38074, -0.905867, 0, 0.905867, 3.38074, 0, 7, -10) +pixel_size = 0.0025 +modulate = Color(1, 1, 1, 0.74509805) +outline_modulate = Color(0, 0, 0, 0) +text = "0:00 / 0:00" +font = ExtResource("21_txyw0") +font_size = 64 + +[node name="ProgressBarViewport" type="SubViewport" parent="Settings/SkinPreviewPanel/SkinPreview/SubViewport/ProgressBar" unique_id=992979397] +disable_3d = true +transparent_bg = true +canvas_item_default_texture_filter = 2 +size = Vector2i(544, 40) +size_2d_override = Vector2i(1088, 80) +size_2d_override_stretch = true +render_target_update_mode = 4 + +[node name="Background" type="TextureRect" parent="Settings/SkinPreviewPanel/SkinPreview/SubViewport/ProgressBar/ProgressBarViewport" unique_id=204557992] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("28_o7ddy") + +[node name="Main" type="TextureRect" parent="Settings/SkinPreviewPanel/SkinPreview/SubViewport/ProgressBar/ProgressBarViewport" unique_id=242643232] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("29_0loja") +expand_mode = 1 +stretch_mode = 1 + +[node name="Health" type="MeshInstance3D" parent="Settings/SkinPreviewPanel/SkinPreview/SubViewport" unique_id=1898914194] +transform = Transform3D(1, 0, 0, 0, 0.965926, 0.258819, 0, -0.258819, 0.965926, 0, -6.3, -10) +cast_shadow = 0 +mesh = SubResource("QuadMesh_1epgm") +script = ExtResource("24_kmb1v") + +[node name="HealthViewport" type="SubViewport" parent="Settings/SkinPreviewPanel/SkinPreview/SubViewport/Health" unique_id=1286049907] +disable_3d = true +transparent_bg = true +canvas_item_default_texture_filter = 2 +size = Vector2i(544, 40) +size_2d_override = Vector2i(1088, 80) +size_2d_override_stretch = true +render_target_update_mode = 4 + +[node name="Background" type="TextureRect" parent="Settings/SkinPreviewPanel/SkinPreview/SubViewport/Health/HealthViewport" unique_id=1346647656] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("15_5he1u") + +[node name="Main" type="TextureRect" parent="Settings/SkinPreviewPanel/SkinPreview/SubViewport/Health/HealthViewport" unique_id=94707981] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("16_5poiv") +expand_mode = 1 +stretch_mode = 1 + +[node name="Camera3D" type="Camera3D" parent="Settings/SkinPreviewPanel/SkinPreview/SubViewport" unique_id=1275593072] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 3.75) +environment = SubResource("Environment_gdxgs") +current = true +fov = 70.0 +size = 5.0 + +[node name="Grid" type="MeshInstance3D" parent="Settings/SkinPreviewPanel/SkinPreview/SubViewport" unique_id=379266135] +mesh = SubResource("QuadMesh_augu2") +script = ExtResource("28_fuf3a") + +[node name="Cursor" type="MeshInstance3D" parent="Settings/SkinPreviewPanel/SkinPreview/SubViewport/Grid" unique_id=1140205940] +mesh = SubResource("QuadMesh_tm6hj") +skeleton = NodePath("../..") + +[node name="CursorTrail" type="MultiMeshInstance3D" parent="Settings/SkinPreviewPanel/SkinPreview/SubViewport/Grid" unique_id=1031907347] +material_override = SubResource("StandardMaterial3D_kf5aa") +multimesh = SubResource("MultiMesh_t5ykj") + +[node name="GridGuides" type="MeshInstance3D" parent="Settings/SkinPreviewPanel/SkinPreview/SubViewport/Grid" unique_id=880461795] +transform = Transform3D(1.01, 0, 0, 0, 1.01, 0, 0, 0, 1.01, 0, 0, -0.2) +visible = false +mesh = SubResource("QuadMesh_e755i") +skeleton = NodePath("../..") + +[node name="VisibilityAssist" type="MeshInstance3D" parent="Settings/SkinPreviewPanel/SkinPreview/SubViewport/Grid" unique_id=2848380] +transform = Transform3D(300, 0, 0, 0, 300, 0, 0, 0, 300, 0, 0, -140) +transparency = 0.25 +mesh = SubResource("QuadMesh_ro3en") +skeleton = NodePath("") + [node name="Volume" type="Panel" parent="." unique_id=1219254705] modulate = Color(1, 1, 1, 0) z_index = 1 diff --git a/scenes/main_menu.tscn b/scenes/main_menu.tscn index def018c2..c132aad3 100644 --- a/scenes/main_menu.tscn +++ b/scenes/main_menu.tscn @@ -54,7 +54,10 @@ [ext_resource type="Texture2D" uid="uid://cfl8us0rpkpqs" path="res://textures/ui/github_hovered.png" id="43_sgh51"] [ext_resource type="Script" uid="uid://c1235cyjfh4rl" path="res://scripts/ui/LinkPopupButton.cs" id="44_ybca7"] [ext_resource type="Script" uid="uid://dqi64p5jl23cv" path="res://scripts/ui/menu/VersionLabel.cs" id="45_mb34c"] +[ext_resource type="Texture2D" uid="uid://dyms3l4x385j" path="res://textures/ui/feedback.png" id="46_41a2d"] +[ext_resource type="Texture2D" uid="uid://c0gv3fh2rmlcy" path="res://textures/ui/feedback_pressed.png" id="47_f5cck"] [ext_resource type="Texture2D" uid="uid://8du82a5dxjdk" path="res://user/skins/default/ui/jukebox_play.png" id="48_q1l3m"] +[ext_resource type="Texture2D" uid="uid://cya1kdxwisvmc" path="res://textures/ui/feedback_hovered.png" id="48_s4ogs"] [ext_resource type="Texture2D" uid="uid://bpsvcunhigs6c" path="res://user/skins/default/ui/jukebox_skip.png" id="49_7u5pb"] [sub_resource type="SystemFont" id="SystemFont_lsskb"] @@ -754,9 +757,11 @@ theme_override_styles/panel = SubResource("StyleBoxEmpty_18lcc") [node name="HBoxContainer" type="HBoxContainer" parent="Menus/Play/SubTopBar" unique_id=613796792] layout_mode = 1 anchors_preset = -1 -anchor_top = 0.5 +anchor_top = 0.179 anchor_right = 1.0 -anchor_bottom = 0.5 +anchor_bottom = 0.82100004 +offset_top = 17.976 +offset_bottom = -17.976002 grow_horizontal = 2 grow_vertical = 2 alignment = 2 @@ -764,7 +769,7 @@ alignment = 2 [node name="Settings" type="Button" parent="Menus/Play/SubTopBar/HBoxContainer" unique_id=384311335] custom_minimum_size = Vector2(0, 36) layout_mode = 2 -tooltip_text = "CTRL + O" +tooltip_text = "Game settings, can be opened up at anytime using CTRL + O" focus_mode = 0 mouse_default_cursor_shape = 2 theme = ExtResource("6_engjn") @@ -776,6 +781,7 @@ script = ExtResource("8_yxnar") [node name="UserFolder" type="Button" parent="Menus/Play/SubTopBar/HBoxContainer" unique_id=1212420658] custom_minimum_size = Vector2(0, 36) layout_mode = 2 +tooltip_text = "Opens up the game's user folder, allows you to manually import or modify files." focus_mode = 0 mouse_default_cursor_shape = 2 theme = ExtResource("6_engjn") @@ -787,6 +793,7 @@ script = ExtResource("27_eku7s") [node name="Import" type="Button" parent="Menus/Play/SubTopBar/HBoxContainer" unique_id=554381373] custom_minimum_size = Vector2(0, 36) layout_mode = 2 +tooltip_text = "Import maps, you can mass import with this" focus_mode = 0 mouse_default_cursor_shape = 2 theme = ExtResource("6_engjn") @@ -1902,9 +1909,32 @@ grow_horizontal = 2 grow_vertical = 2 alignment = 2 +[node name="Feedback" type="TextureButton" parent="TopBar/LinkButtons" unique_id=169604797] +layout_mode = 2 +size_flags_vertical = 4 +tooltip_text = "Feedback form" +focus_mode = 0 +mouse_default_cursor_shape = 2 +texture_normal = ExtResource("46_41a2d") +texture_pressed = ExtResource("47_f5cck") +texture_hover = ExtResource("48_s4ogs") + +[node name="Button" type="Button" parent="TopBar/LinkButtons/Feedback" unique_id=1650047982] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 1 +flat = true +script = ExtResource("44_ybca7") +Link = "https://forms.gle/eyGTBKJskSmAux8P8" + [node name="GitHub" type="TextureButton" parent="TopBar/LinkButtons" unique_id=1795081095] layout_mode = 2 size_flags_vertical = 4 +tooltip_text = "Our GitHub page" focus_mode = 0 mouse_default_cursor_shape = 2 texture_normal = ExtResource("41_akqfu") @@ -1926,6 +1956,7 @@ Link = "https://github.com/Rhythia" [node name="Discord" type="TextureButton" parent="TopBar/LinkButtons" unique_id=36147158] layout_mode = 2 size_flags_vertical = 4 +tooltip_text = "Our official Discord" focus_mode = 0 mouse_default_cursor_shape = 2 texture_normal = ExtResource("20_qw82i") diff --git a/scripts/database/settings/SettingsProfile.cs b/scripts/database/settings/SettingsProfile.cs index c0e53585..e79377dc 100644 --- a/scripts/database/settings/SettingsProfile.cs +++ b/scripts/database/settings/SettingsProfile.cs @@ -461,6 +461,12 @@ public partial class SettingsProfile /// public SettingsItem OptionalPlaytestParameters { get; private set; } + [Order] + /// + /// Hides Notifications, unless they're important + /// + public SettingsItem HideNotifications { get; private set; } + [Order] /// /// Restarts settings to the game's defaults @@ -783,13 +789,6 @@ public SettingsProfile() Title = "Space Hit Effects", Description = "Toggles note hit effects for the game space", Section = SettingsSection.Spaces, - UpdateAction = (_, init) => - { - if ((bool)SpaceHitEffects.GetVariant()) - { - CustomSpaceColor.SetVariant(false); - } - }, }; SpaceEffects = new(true) @@ -1530,6 +1529,14 @@ public SettingsProfile() Section = SettingsSection.Other, }; + HideNotifications = new(false) + { + Id = "HideNotifications", + Title = "Hide Notifications", + Description = "Hides notifications, important ones will still display", + Section = SettingsSection.Other, + }; + ResetToDefaults = new(default) { Id = "ResetToDefaults", @@ -1618,6 +1625,38 @@ private static List getAvailableMeshes() return meshes; } + private static List getAvailableSpaces() + { + List spaces = + [ + "skin", + "circulartunnel", + "conspiracy", + "galaxy", + "grid", + "relic", + "solid", + "squircles", + "tritunnel", + "tunnel", + "void", + "vortex", + "waves", + ]; + string spaceDir = $"{Constants.USER_FOLDER}/spaces"; + + if (Directory.Exists(spaceDir)) + { + string[] objFiles = Directory.GetFiles(spaceDir, "*.tscn"); + foreach (string file in objFiles) + { + spaces.Add(Path.GetFileNameWithoutExtension(file)); + } + } + + return spaces; + } + public static void ImportFromNightlySettings(string settingsPath) { string nightlySettings = File.Exists(settingsPath) ? File.ReadAllText(settingsPath) : null; diff --git a/scripts/game/Attempt.cs b/scripts/game/Attempt.cs index 5bed1f96..3bea801e 100644 --- a/scripts/game/Attempt.cs +++ b/scripts/game/Attempt.cs @@ -51,6 +51,7 @@ public partial class Attempt : RefCounted public Vector2 CursorPosition = Vector2.Zero; public Vector2 RawCursorPosition = Vector2.Zero; + public Vector2 BufferCursorPosition = Vector2.Zero; public double DistanceMM = 0; public ulong FirstNote = 0; diff --git a/scripts/game/camera/CameraLock.cs b/scripts/game/camera/CameraLock.cs index 8db9f854..6dcbf5d6 100644 --- a/scripts/game/camera/CameraLock.cs +++ b/scripts/game/camera/CameraLock.cs @@ -12,6 +12,7 @@ public override void Process( ReplayManager replayManager, Camera3D camera, MeshInstance3D cursor, + MeshInstance3D bufferCursor, Vector2 mouseDelta, float sensitivity ) @@ -29,6 +30,7 @@ float sensitivity { attempt.RawCursorPosition = attempt.IsReplay ? replayManager.CursorPosition : attempt.RawCursorPosition + delta; attempt.CursorPosition = attempt.RawCursorPosition.Clamp(-Constants.BOUNDS, Constants.BOUNDS); + attempt.BufferCursorPosition = attempt.IsReplay ? replayManager.CursorPosition : attempt.BufferCursorPosition + delta; } var origin = new Vector3(0, 0, 3.75f); @@ -45,10 +47,12 @@ float sensitivity camera.Rotation = Vector3.Zero; Vector3 cursorPos = new(attempt.CursorPosition.X, attempt.CursorPosition.Y, 0); + Vector3 bufferCursorPos = new(attempt.BufferCursorPosition.X, attempt.BufferCursorPosition.Y, 0); if (cursorPos.IsFinite()) { cursor.Position = cursorPos; + bufferCursor.Position = bufferCursorPos; } } } diff --git a/scripts/game/camera/CameraMode.cs b/scripts/game/camera/CameraMode.cs index 4826b87b..54bb012e 100644 --- a/scripts/game/camera/CameraMode.cs +++ b/scripts/game/camera/CameraMode.cs @@ -12,6 +12,7 @@ public abstract void Process( ReplayManager replayManager, Camera3D camera, MeshInstance3D cursor, + MeshInstance3D bufferCursor, Vector2 mouseDelta, float sensitivity ); diff --git a/scripts/game/camera/CameraSpin.cs b/scripts/game/camera/CameraSpin.cs index e031761a..bf814465 100644 --- a/scripts/game/camera/CameraSpin.cs +++ b/scripts/game/camera/CameraSpin.cs @@ -1,4 +1,4 @@ -using System; +using System; using Godot; public class CameraSpin : CameraMode @@ -12,6 +12,7 @@ public override void Process( ReplayManager replayManager, Camera3D camera, MeshInstance3D cursor, + MeshInstance3D bufferCursor, Vector2 mouseDelta, float sensitivity ) @@ -48,13 +49,16 @@ float sensitivity // Project Cursor from Camera's "ray cast" attempt.RawCursorPosition = cameraVector2 - lookVector2 * Mathf.Abs(camera.Position.Z / lookVector.Z); + attempt.BufferCursorPosition = attempt.RawCursorPosition; attempt.CursorPosition = attempt.RawCursorPosition.Clamp(-Constants.BOUNDS, Constants.BOUNDS); Vector3 cursorPos = new(attempt.CursorPosition.X, attempt.CursorPosition.Y, 0); + Vector3 bufferCursorPos = new(attempt.BufferCursorPosition.X, attempt.BufferCursorPosition.Y, 0); if (cursorPos.IsFinite()) { cursor.Position = cursorPos; + bufferCursor.Position = bufferCursorPos; } } } diff --git a/scripts/game/managers/CursorManager.cs b/scripts/game/managers/CursorManager.cs index 2420df1c..dde3d263 100644 --- a/scripts/game/managers/CursorManager.cs +++ b/scripts/game/managers/CursorManager.cs @@ -19,6 +19,9 @@ public partial class CursorManager : Node [Export] private MeshInstance3D cursorMesh; + [Export] + private MeshInstance3D bufferCursor; + [Export] private Camera3D camera; @@ -35,6 +38,7 @@ public override void _Ready() defaultCameraTransform = camera.Transform; cursorMesh ??= GetNode("Cursor"); + bufferCursor ??= GetNode("BufferCursor"); playerInputController ??= GetNode("/PlayerInputController"); replayManager ??= GetNode("ReplayManager"); } @@ -120,7 +124,7 @@ public void UpdateCursor(Vector2 inputDelta, int cursorIndex = 0) var attempt = runner.Attempt; - attempt.CameraMode.Process(attempt, replayManager, camera, cursors[cursorIndex], inputDelta, sensitivity); + attempt.CameraMode.Process(attempt, replayManager, camera, cursors[cursorIndex], bufferCursor, inputDelta, sensitivity); } public void UpdateAutoplayCursor(Vector2 position) @@ -146,18 +150,20 @@ public void UpdateAutoplayCursor(Vector2 position) var mouseDelta = new Vector2(-yaw, -pitch) * (120f * Mathf.Pi); - attempt.CameraMode.Process(attempt, replayManager, camera, cursors[0], mouseDelta, 1f); + attempt.CameraMode.Process(attempt, replayManager, camera, cursors[0], bufferCursor, mouseDelta, 1f); return; } attempt.RawCursorPosition = position; attempt.CursorPosition = position; + attempt.BufferCursorPosition = position; Vector3 cursorPosition = new(position.X, position.Y, 0); camera.Position = new Vector3(0, 0, 3.76f) + cursorPosition * (float)settings.CameraParallax; camera.Rotation = Vector3.Zero; cursors[0].Position = cursorPosition; + bufferCursor.Position = cursorPosition; } // Reset everything to zero so it doesn't have infinite sensitivity @@ -166,6 +172,7 @@ private void repositionAbsolute() camera.Rotation = Vector3.Zero; runner.Attempt.RawCursorPosition = Vector2.Zero; runner.Attempt.CursorPosition = Vector2.Zero; + runner.Attempt.BufferCursorPosition = Vector2.Zero; } private void updateCursorRotation(double delta) => diff --git a/scripts/game/ui/Grid.cs b/scripts/game/ui/Grid.cs index 19536c72..620eb038 100644 --- a/scripts/game/ui/Grid.cs +++ b/scripts/game/ui/Grid.cs @@ -7,6 +7,7 @@ public partial class Grid : MeshInstance3D, IUIComponent [Export] public Runner Runner { get; set; } public MeshInstance3D Cursor { get; set; } + public MeshInstance3D BufferCursor { get; set; } public MultiMeshInstance3D CursorTrail { get; set; } public MeshInstance3D GridGuides { get; set; } public MeshInstance3D VisibilityAssist { get; set; } @@ -42,12 +43,22 @@ public void Init() (float)(Constants.CURSOR_SIZE * Runner.Attempt.Settings.CursorScale) ); + BufferCursor ??= GetNode("BufferCursor"); + (BufferCursor.Mesh as QuadMesh).Size = new Vector2( + (float)(Constants.CURSOR_SIZE * Runner.Attempt.Settings.CursorScale), + (float)(Constants.CURSOR_SIZE * Runner.Attempt.Settings.CursorScale) + ); + (Cursor.GetActiveMaterial(0) as StandardMaterial3D).AlbedoTexture = SkinManager.Instance.Skin.CursorImage; + (BufferCursor.GetActiveMaterial(0) as StandardMaterial3D).AlbedoTexture = SkinManager.Instance.Skin.CursorImage; // Cursor Transparency float alpha = Math.Clamp((float)(double)Runner.Attempt.Settings.CursorOpacity, 0, 1); Cursor.Transparency = 1f - alpha; + BufferCursor.Visible = !Runner.Attempt.Settings.CursorDrift && !Runner.Attempt.IsReplay; + BufferCursor.Transparency = 1f - alpha / 4; + CursorTrail ??= GetNode("CursorTrail"); (CursorTrail.MaterialOverride as StandardMaterial3D).AlbedoTexture = SkinManager.Instance.Skin.CursorImage; diff --git a/scripts/game/ui/Progress.cs b/scripts/game/ui/Progress.cs index c7acc720..8eaff04a 100644 --- a/scripts/game/ui/Progress.cs +++ b/scripts/game/ui/Progress.cs @@ -13,6 +13,6 @@ public override void Init() public override void Process(double delta, Attempt attempt) { - label.Text = $"{util.String.FormatTime(Math.Max(0, attempt.Progress) / 1000)} / {util.String.FormatTime(attempt.Length / 1000)}"; + label.Text = $"{util.String.FormatTime(Math.Max(0, attempt.Progress) / 1000)} / {util.String.FormatTime(attempt.Map.Length / 1000)}"; } } diff --git a/scripts/game/ui/ProgressBar.cs b/scripts/game/ui/ProgressBar.cs index 55eb74df..59e85530 100644 --- a/scripts/game/ui/ProgressBar.cs +++ b/scripts/game/ui/ProgressBar.cs @@ -24,7 +24,7 @@ public override void Process(double delta, Attempt attempt) lastProgress = (float)attempt.Progress; - Vector2 progressSize = new Vector2(32 + (float)(Runner.Attempt.Progress / Runner.Attempt.Length) * 1024, 80); + Vector2 progressSize = new Vector2(32 + (float)(Runner.Attempt.Progress / Runner.Attempt.Map.Length) * 1024, 80); if ((int)progressSize.X != (int)progressBarTexture.Size.X) { diff --git a/scripts/ui/SettingsMenu.cs b/scripts/ui/SettingsMenu.cs index 96419487..9ffdb172 100644 --- a/scripts/ui/SettingsMenu.cs +++ b/scripts/ui/SettingsMenu.cs @@ -10,11 +10,15 @@ public partial class SettingsMenu : ColorRect public static SettingsMenu Instance; public bool Shown = false; + public bool WasSkinPreviewToggled = false; private Dictionary settingPanels = []; private Button hideButton; + private Button showSkinPreview; + private Button refreshPreview; private Panel holder; private Panel header; + private Panel skinPreviewPanel; private OptionButton profilesButton; private VBoxContainer sidebar; private Panel categories; @@ -36,7 +40,10 @@ public override void _Ready() hideButton = GetNode