diff --git a/addons/ffmpeg/LICENSE-ffmpeg.txt.uid b/addons/ffmpeg/LICENSE-ffmpeg.txt.uid
new file mode 100644
index 00000000..86d2764c
--- /dev/null
+++ b/addons/ffmpeg/LICENSE-ffmpeg.txt.uid
@@ -0,0 +1 @@
+uid://b3ustrqft4n31
diff --git a/addons/ffmpeg/ffmpeg.gdextension b/addons/ffmpeg/ffmpeg.gdextension
index a1f0d09d..51e28f5d 100644
--- a/addons/ffmpeg/ffmpeg.gdextension
+++ b/addons/ffmpeg/ffmpeg.gdextension
@@ -9,6 +9,9 @@ windows.release.x86_64 = "res://addons/ffmpeg/win64/libgdffmpeg.windows.template
linux.debug.x86_64 = "res://addons/ffmpeg/linux64/libgdffmpeg.linux.template_debug.x86_64.so"
linux.release.x86_64 = "res://addons/ffmpeg/linux64/libgdffmpeg.linux.template_release.x86_64.so"
+macos.debug = "res://addons/ffmpeg/macos/libgdffmpeg.macos.template_release.framework"
+macos.release = "res://addons/ffmpeg/macos/libgdffmpeg.macos.template_release.framework"
+
[dependencies]
windows.x86_64 =
@@ -25,4 +28,14 @@ linux.x86_64 =
"res://addons/ffmpeg/linux64/libavformat.so.60": "",
"res://addons/ffmpeg/linux64/libavutil.so.58": "",
"res://addons/ffmpeg/linux64/libswresample.so.4": "",
- "res://addons/ffmpeg/linux64/libswscale.so.7": ""}
\ No newline at end of file
+ "res://addons/ffmpeg/linux64/libswscale.so.7": ""}
+
+macos =
+ {
+ "res://addons/ffmpeg/macos/libavcodec.dylib": "",
+ "res://addons/ffmpeg/macos/libavfilter.dylib": "",
+ "res://addons/ffmpeg/macos/libavformat.dylib": "",
+ "res://addons/ffmpeg/macos/libavutil.dylib": "",
+ "res://addons/ffmpeg/macos/libswresample.dylib": "",
+ "res://addons/ffmpeg/macos/libswscale.dylib": ""
+ }
\ No newline at end of file
diff --git a/addons/ffmpeg/macos/libavcodec.dylib b/addons/ffmpeg/macos/libavcodec.dylib
new file mode 100755
index 00000000..0bb5a28f
Binary files /dev/null and b/addons/ffmpeg/macos/libavcodec.dylib differ
diff --git a/addons/ffmpeg/macos/libavfilter.dylib b/addons/ffmpeg/macos/libavfilter.dylib
new file mode 100755
index 00000000..e65ab4d1
Binary files /dev/null and b/addons/ffmpeg/macos/libavfilter.dylib differ
diff --git a/addons/ffmpeg/macos/libavformat.dylib b/addons/ffmpeg/macos/libavformat.dylib
new file mode 100755
index 00000000..8601af75
Binary files /dev/null and b/addons/ffmpeg/macos/libavformat.dylib differ
diff --git a/addons/ffmpeg/macos/libavutil.dylib b/addons/ffmpeg/macos/libavutil.dylib
new file mode 100755
index 00000000..ab12430c
Binary files /dev/null and b/addons/ffmpeg/macos/libavutil.dylib differ
diff --git a/addons/ffmpeg/macos/libgdffmpeg.macos.template_release.framework/Resources/Info.plist b/addons/ffmpeg/macos/libgdffmpeg.macos.template_release.framework/Resources/Info.plist
new file mode 100644
index 00000000..33ca1cbd
--- /dev/null
+++ b/addons/ffmpeg/macos/libgdffmpeg.macos.template_release.framework/Resources/Info.plist
@@ -0,0 +1,26 @@
+
+
+
+
+ CFBundleExecutable
+ libgdffmpeg_advanced.macos.template_release
+ CFBundleIdentifier
+ org.godotengine.ffmpeg
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ FFmpeg for Godot
+ CFBundlePackageType
+ FMWK
+ CFBundleShortVersionString
+ 1.0.0
+ CFBundleSupportedPlatforms
+
+ MacOSX
+
+ CFBundleVersion
+ 1.0.0
+ LSMinimumSystemVersion
+ 10.14
+
+
diff --git a/addons/ffmpeg/macos/libgdffmpeg.macos.template_release.framework/libgdffmpeg_advanced.macos.template_release b/addons/ffmpeg/macos/libgdffmpeg.macos.template_release.framework/libgdffmpeg_advanced.macos.template_release
new file mode 100755
index 00000000..20f54ee7
Binary files /dev/null and b/addons/ffmpeg/macos/libgdffmpeg.macos.template_release.framework/libgdffmpeg_advanced.macos.template_release differ
diff --git a/addons/ffmpeg/macos/libswresample.dylib b/addons/ffmpeg/macos/libswresample.dylib
new file mode 100755
index 00000000..682b8f67
Binary files /dev/null and b/addons/ffmpeg/macos/libswresample.dylib differ
diff --git a/addons/ffmpeg/macos/libswscale.dylib b/addons/ffmpeg/macos/libswscale.dylib
new file mode 100755
index 00000000..9941fb5c
Binary files /dev/null and b/addons/ffmpeg/macos/libswscale.dylib differ
diff --git a/prefabs/spaces/galaxy.tscn b/prefabs/spaces/galaxy.tscn
index ea79cb11..94a40924 100644
--- a/prefabs/spaces/galaxy.tscn
+++ b/prefabs/spaces/galaxy.tscn
@@ -36,13 +36,16 @@ albedo_texture = ExtResource("3_tgxn1")
material = SubResource("StandardMaterial3D_gx5yi")
size = Vector2(120, 120)
-[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_qb5t2"]
-emission_enabled = true
-emission = Color(0.23245946, 0.4975598, 0.48952162, 1)
-emission_energy_multiplier = 0.31
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_yncsu"]
+transparency = 1
+cull_mode = 1
+shading_mode = 0
+vertex_color_use_as_albedo = true
+albedo_color = Color(0.982745, 0.93919396, 0.92271423, 1)
+albedo_texture_msdf = true
-[sub_resource type="SphereMesh" id="SphereMesh_gx5yi"]
-material = SubResource("StandardMaterial3D_qb5t2")
+[sub_resource type="SphereMesh" id="SphereMesh_sosg6"]
+material = SubResource("StandardMaterial3D_yncsu")
radial_segments = 12
rings = 24
@@ -67,33 +70,6 @@ _surfaces = [{
"vertex_data": PackedByteArray("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")
}]
-[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_yncsu"]
-transparency = 1
-cull_mode = 1
-shading_mode = 0
-vertex_color_use_as_albedo = true
-albedo_color = Color(0.982745, 0.93919396, 0.92271423, 1)
-albedo_texture_msdf = true
-
-[sub_resource type="SphereMesh" id="SphereMesh_sosg6"]
-material = SubResource("StandardMaterial3D_yncsu")
-radial_segments = 12
-rings = 24
-
-[sub_resource type="Curve" id="Curve_ib30j"]
-_limits = [0.0, 1.0, 0.0, 0.01]
-_data = [Vector2(0, 0.06741583), 0.0, 0.0, 0, 0, Vector2(0.01, 0.123595595), 0.0, 0.0, 0, 0]
-point_count = 2
-
-[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_pm3uw"]
-cull_mode = 2
-shading_mode = 0
-disable_fog = true
-
-[sub_resource type="RibbonTrailMesh" id="RibbonTrailMesh_7xsfg"]
-material = SubResource("StandardMaterial3D_pm3uw")
-curve = SubResource("Curve_ib30j")
-
[node name="Galaxy" type="Node3D" unique_id=2134769153]
script = ExtResource("1_6wq32")
@@ -108,80 +84,16 @@ mesh = SubResource("PlaneMesh_gx5yi")
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.365048, 0, -67.635414)
visible = false
-[node name="Ball" type="MeshInstance3D" parent="Planet" unique_id=282086177]
-transform = Transform3D(10, 0, 0, 0, 10, 0, 0, 0, 10, -19.563023, 5.3266654, 29.601173)
-transparency = 0.25
-mesh = SubResource("SphereMesh_gx5yi")
-skeleton = NodePath("../..")
-
-[node name="Ring" type="MeshInstance3D" parent="Planet" unique_id=1205231261]
-transform = Transform3D(332.52264, 104.53887, -31.627857, -109.21857, 318.275, -96.29295, -2.6077032e-06, 101.3541, 335.0035, -19.437641, 5.6447964, 29.318497)
-mesh = SubResource("ArrayMesh_yncsu")
-skeleton = NodePath("")
-
[node name="Moon" type="MeshInstance3D" parent="Planet" unique_id=768710885]
-transform = Transform3D(10, 0, 0, 0, 10, 0, 0, 0, 10, 34.466908, 9.756897, 31.026627)
+transform = Transform3D(40, 0, 0, 0, 40, 0, 0, 0, 40, -43.709225, 17.527477, 6.08638)
transparency = 0.05
mesh = SubResource("SphereMesh_sosg6")
skeleton = NodePath("../../..")
-[node name="ShootingStars" type="Node3D" parent="." unique_id=1955205152]
-transform = Transform3D(0.09085334, 0.49641284, -0.90978134, 0.013120199, -0.81762254, -0.5562391, -0.98818284, 0.034784373, -0.09103015, 32.80242, 15.823523, -68.11805)
-
-[node name="CloseStarsFast" type="CPUParticles3D" parent="ShootingStars" unique_id=1059596997]
-transform = Transform3D(0.05459423, -0.9976134, -0.042265173, 0.70739347, 0.008768316, 0.706763, -0.704708, -0.06848424, 0.70618165, -49.181274, -55.56679, 53.555737)
-cast_shadow = 0
-amount = 5
-lifetime = 1.54
-speed_scale = 0.37
-explosiveness = 0.36
-randomness = 0.17
-draw_order = 2
-mesh = SubResource("RibbonTrailMesh_7xsfg")
-emission_shape = 5
-emission_points = PackedVector3Array()
-emission_normals = PackedVector3Array()
-particle_flag_align_y = true
-spread = 7.57
-gravity = Vector3(13.3, -9.8, 0)
-initial_velocity_max = 49.5
-angle_max = 57.0
-
-[node name="FarStarsFast" type="CPUParticles3D" parent="ShootingStars" unique_id=1368725010]
-transform = Transform3D(0.9970328, 0.07042578, 0.03107389, -0.06703293, 0.5959067, 0.8002506, 0.037841253, -0.7999594, 0.598858, -11.321758, -96.451096, 64.33069)
-cast_shadow = 0
-amount = 5
-lifetime = 1.92
-speed_scale = 0.37
-explosiveness = 0.3
-randomness = 0.69
-mesh = SubResource("RibbonTrailMesh_7xsfg")
-emission_shape = 5
-emission_points = PackedVector3Array()
-emission_normals = PackedVector3Array()
-particle_flag_align_y = true
-direction = Vector3(0, 0.495, 0.23)
-spread = 10.69
-gravity = Vector3(20.385, -9.8, 0)
-initial_velocity_min = 59.41
-initial_velocity_max = 59.41
-linear_accel_max = 1.98
-radial_accel_max = 67.32
-angle_max = 720.0
-
-[node name="CloseStarsSlow" type="CPUParticles3D" parent="ShootingStars" unique_id=1666330960]
-transform = Transform3D(0.98275614, -0.006262228, 0.18480076, -0.11857166, -0.78823566, 0.6038393, 0.14188564, -0.61534137, -0.775379, -62.28839, -52.841705, 51.153683)
+[node name="Ring" type="MeshInstance3D" parent="Planet/Moon" unique_id=1205231261]
+transform = Transform3D(38.00259, 11.947298, -3.6146111, -12.4821205, 36.374287, -11.0049095, -1.1920929e-06, 11.583326, 38.286114, 0, 0, 0)
+transparency = 0.05
cast_shadow = 0
-amount = 1
-lifetime = 2.97
-speed_scale = 0.37
-explosiveness = 0.62
-randomness = 0.35
-mesh = SubResource("RibbonTrailMesh_7xsfg")
-emission_shape = 5
-emission_points = PackedVector3Array()
-emission_normals = PackedVector3Array()
-particle_flag_align_y = true
-direction = Vector3(0, 0, 0)
-spread = 180.0
-gravity = Vector3(13.3, -9.8, 0)
+mesh = SubResource("ArrayMesh_yncsu")
+skeleton = NodePath("")
+surface_material_override/0 = SubResource("StandardMaterial3D_yncsu")
diff --git a/prefabs/spaces/relic.tscn b/prefabs/spaces/relic.tscn
index 608b0225..3d72cedc 100644
--- a/prefabs/spaces/relic.tscn
+++ b/prefabs/spaces/relic.tscn
@@ -5,12 +5,35 @@
[sub_resource type="Environment" id="87"]
background_mode = 1
-glow_enabled = true
glow_intensity = 0.0
glow_bloom = 0.9
glow_blend_mode = 0
glow_hdr_scale = 1.5
+[sub_resource type="BoxMesh" id="BoxMesh_dyp4q"]
+size = Vector3(2, 2, 0)
+
+[sub_resource type="Gradient" id="Gradient_dyp4q"]
+colors = PackedColorArray(0, 0, 0, 0, 1, 1, 1, 1)
+
+[sub_resource type="GradientTexture2D" id="GradientTexture2D_haq2w"]
+gradient = SubResource("Gradient_dyp4q")
+fill_from = Vector2(0.530303, 0.540404)
+fill_to = Vector2(0.5252525, 0)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_haq2w"]
+transparency = 1
+cull_mode = 2
+albedo_texture = SubResource("GradientTexture2D_haq2w")
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ybwb5"]
+transparency = 1
+shading_mode = 0
+albedo_texture = SubResource("GradientTexture2D_haq2w")
+
+[sub_resource type="BoxMesh" id="103"]
+size = Vector3(2, 2, 0)
+
[sub_resource type="Gradient" id="99"]
offsets = PackedFloat32Array(0, 0.5, 1)
colors = PackedColorArray(1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0)
@@ -51,30 +74,6 @@ material = SubResource("109")
radial_segments = 4
rings = 4
-[sub_resource type="BoxMesh" id="BoxMesh_dyp4q"]
-size = Vector3(2, 2, 0)
-
-[sub_resource type="Gradient" id="Gradient_dyp4q"]
-colors = PackedColorArray(0, 0, 0, 0, 1, 1, 1, 1)
-
-[sub_resource type="GradientTexture2D" id="GradientTexture2D_haq2w"]
-gradient = SubResource("Gradient_dyp4q")
-fill_from = Vector2(0.530303, 0.540404)
-fill_to = Vector2(0.5252525, 0)
-
-[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_haq2w"]
-transparency = 1
-cull_mode = 2
-albedo_texture = SubResource("GradientTexture2D_haq2w")
-
-[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ybwb5"]
-transparency = 1
-shading_mode = 0
-albedo_texture = SubResource("GradientTexture2D_haq2w")
-
-[sub_resource type="BoxMesh" id="103"]
-size = Vector3(2, 2, 0)
-
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_5nlfu"]
transparency = 1
shading_mode = 0
@@ -210,17 +209,6 @@ script = ExtResource("1_dyp4q")
[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=839114113]
environment = SubResource("87")
-[node name="Aura" type="GPUParticles3D" parent="." unique_id=308200453]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -1.0570873)
-amount = 512
-lifetime = 4.0
-randomness = 0.3
-fract_delta = false
-visibility_aabb = AABB(-3.795, -2.38, -5.865, 12, 12, 12)
-trail_lifetime = 2.8699999999999997
-process_material = SubResource("101")
-draw_pass_1 = SubResource("102")
-
[node name="Structures" type="Node3D" parent="." unique_id=1590467259]
[node name="Back" type="Node3D" parent="Structures" unique_id=98665528]
@@ -389,10 +377,20 @@ mesh = SubResource("103")
skeleton = NodePath("../../..")
surface_material_override/0 = SubResource("StandardMaterial3D_ybwb5")
-[node name="Particles" type="Node3D" parent="Structures/Front" unique_id=430346035]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 30)
+[node name="Particles" type="Node3D" parent="." unique_id=430346035]
+
+[node name="Aura" type="GPUParticles3D" parent="Particles" unique_id=308200453]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -1.0570873)
+amount = 512
+lifetime = 4.0
+randomness = 0.3
+fract_delta = false
+visibility_aabb = AABB(-3.795, -2.38, -5.865, 12, 12, 12)
+trail_lifetime = 2.8699999999999997
+process_material = SubResource("101")
+draw_pass_1 = SubResource("102")
-[node name="Left" type="GPUParticles3D" parent="Structures/Front/Particles" unique_id=393957993]
+[node name="Left" type="GPUParticles3D" parent="Particles" unique_id=393957993]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -47.9036, 3.63416, -53.099064)
material_override = SubResource("StandardMaterial3D_5nlfu")
transparency = 0.75
@@ -403,7 +401,7 @@ randomness = 0.1
process_material = SubResource("ParticleProcessMaterial_ywech")
draw_pass_1 = SubResource("ArrayMesh_haq2w")
-[node name="Right" type="GPUParticles3D" parent="Structures/Front/Particles" unique_id=1423380688]
+[node name="Right" type="GPUParticles3D" parent="Particles" unique_id=1423380688]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 50.0899, 3.63416, -54.89727)
material_override = SubResource("StandardMaterial3D_5nlfu")
transparency = 0.75
diff --git a/project.godot b/project.godot
index ed95b796..db73cc33 100644
--- a/project.godot
+++ b/project.godot
@@ -85,7 +85,6 @@ common/physics_ticks_per_second=120
[rendering]
+textures/vram_compression/import_etc2_astc=true
textures/lossless_compression/force_png=true
-anti_aliasing/quality/msaa_2d=1
environment/defaults/default_clear_color=Color(0.0885599, 0.08855992, 0.08855987, 1)
-anti_aliasing/quality/screen_space_aa=1
diff --git a/scenes/game.tscn b/scenes/game.tscn
index 3154770a..9f726bf1 100644
--- a/scenes/game.tscn
+++ b/scenes/game.tscn
@@ -21,6 +21,7 @@
[ext_resource type="FontFile" uid="uid://cmjos3o0k2f6t" path="res://fonts/Comfortaa-Medium.ttf" id="11_o37lt"]
[ext_resource type="Texture2D" uid="uid://80bitp5weqrb" path="res://user/skins/default/game/panel_left_background.png" id="11_sdncv"]
[ext_resource type="FontFile" uid="uid://b6hgjef6s6oly" path="res://fonts/Comfortaa-Bold.ttf" id="12_axsek"]
+[ext_resource type="Texture2D" uid="uid://ccdaf14yq65jf" path="res://user/skins/default/game/grid_guides.png" id="12_pr1ej"]
[ext_resource type="Texture2D" uid="uid://diba7c3s8as4s" path="res://user/skins/default/game/panel_right_background.png" id="12_whe6p"]
[ext_resource type="Texture2D" uid="uid://dw2gxd3m24h4m" path="res://user/skins/default/game/hits.png" id="13_6rhgc"]
[ext_resource type="Script" uid="uid://c3gf0hgrqqqx5" path="res://scripts/game/ui/PanelRight.cs" id="13_sww3w"]
@@ -83,6 +84,17 @@ 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_pr1ej")
+texture_repeat = false
+
+[sub_resource type="QuadMesh" id="QuadMesh_0sl42"]
+material = SubResource("StandardMaterial3D_05nbr")
+size = Vector2(4, 4)
+
[sub_resource type="ViewportTexture" id="ViewportTexture_pl11u"]
viewport_path = NodePath("Runner/HUD/Health/HealthViewport")
@@ -306,6 +318,12 @@ skeleton = NodePath("../../../..")
material_override = SubResource("StandardMaterial3D_ssr8x")
multimesh = SubResource("MultiMesh_e28va")
+[node name="GridGuides" type="MeshInstance3D" parent="Runner/HUD/Grid" unique_id=2145859938]
+transform = Transform3D(1.01, 0, 0, 0, 1.01, 0, 0, 0, 1.01, 0, 0, -0.2)
+visible = false
+mesh = SubResource("QuadMesh_0sl42")
+skeleton = NodePath("../../../..")
+
[node name="Health" type="MeshInstance3D" parent="Runner/HUD" unique_id=449857227]
transform = Transform3D(1, 0, 0, 0, 0.965926, 0.258819, 0, -0.258819, 0.965926, 0, -6.3, -10)
cast_shadow = 0
diff --git a/scenes/main_menu.tscn b/scenes/main_menu.tscn
index 8801bb64..34288707 100644
--- a/scenes/main_menu.tscn
+++ b/scenes/main_menu.tscn
@@ -1617,8 +1617,9 @@ anchor_left = 0.5
anchor_right = 0.75
anchor_bottom = 1.0
offset_left = 150.0
-offset_top = 200.0
-offset_bottom = -200.0
+offset_top = 160.0
+offset_right = 230.0
+offset_bottom = -160.0
grow_vertical = 2
mouse_filter = 2
theme_override_styles/panel = SubResource("StyleBoxEmpty_qw82i")
@@ -1725,10 +1726,35 @@ fit_content = true
horizontal_alignment = 1
[node name="noobour" type="RichTextLabel" parent="Menus/Extras/Credits/ScrollContainer/VBoxContainer" unique_id=1684835200]
+modulate = Color(0.05882353, 0.5058824, 0.7176471, 1)
layout_mode = 2
bbcode_enabled = true
text = "[font_size=20]noobour
-[color=0f81b7][font_size=16]Contributor"
+[color=ffffffbb][font_size=16]Contributor"
+fit_content = true
+horizontal_alignment = 1
+
+[node name="jonyro" type="RichTextLabel" parent="Menus/Extras/Credits/ScrollContainer/VBoxContainer" unique_id=478363351]
+modulate = Color(0.9607843, 0.60784316, 0.6784314, 1)
+layout_mode = 2
+bbcode_enabled = true
+text = "[font_size=20][u]jonyro / jrolly
+[color=ffffffbb][font_size=16]\"Redshift\" (Menu theme) artist"
+fit_content = true
+horizontal_alignment = 1
+
+[node name="Button" type="Button" parent="Menus/Extras/Credits/ScrollContainer/VBoxContainer/jonyro" unique_id=1840543780]
+show_behind_parent = true
+clip_contents = true
+layout_mode = 0
+anchor_right = 1.0
+anchor_bottom = 1.0
+offset_right = 33.0
+offset_bottom = 12.0
+mouse_filter = 1
+flat = true
+script = ExtResource("44_ybca7")
+Link = "https://soundcloud.com/jonyro"
[node name="Outline" type="Panel" parent="Menus/Extras/Credits" unique_id=239136532]
material = SubResource("ShaderMaterial_yxnar")
@@ -2107,6 +2133,7 @@ mouse_filter = 2
theme_override_styles/panel = SubResource("StyleBoxFlat_sgh51")
[node name="Transition" type="ColorRect" parent="." unique_id=86050768]
+visible = false
self_modulate = Color(1, 1, 1, 0)
z_index = 2
anchors_preset = 15
diff --git a/scripts/database/settings/SettingsProfile.cs b/scripts/database/settings/SettingsProfile.cs
index dd085036..c2f828bb 100644
--- a/scripts/database/settings/SettingsProfile.cs
+++ b/scripts/database/settings/SettingsProfile.cs
@@ -120,6 +120,12 @@ public partial class SettingsProfile
[Order]
public SettingsItem SpaceHitEffects { get; private set; }
+ ///
+ /// Toggles certain effects on certain spaces
+ ///
+ [Order]
+ public SettingsItem SpaceEffects { get; private set; }
+
///
/// Overrides the skin's colorset
///
@@ -150,6 +156,7 @@ public partial class SettingsProfile
[Order]
public SettingsItem NoteSize { get; private set; }
+
///
/// Adjusts the cursor scale
///
@@ -195,14 +202,20 @@ public partial class SettingsProfile
///
/// Adjusts the video background dim
///
- [Order]
- public SettingsItem VideoDim { get; private set; }
+ //[Order]
+ //public SettingsItem VideoDim { get; private set; }
///
/// Adjusts the scale of the video background
///
+ //[Order]
+ //public SettingsItem VideoRenderScale { get; private set; }
+
+ ///
+ /// Toggles Grid Guides
+ ///
[Order]
- public SettingsItem VideoRenderScale { get; private set; }
+ public SettingsItem GridGuides { get; private set; }
///
/// Toggles a minimal HUD
@@ -238,6 +251,12 @@ public partial class SettingsProfile
[Order]
public SettingsItem Fullscreen { get; private set; }
+ ///
+ /// Toggles Borderless Fullscreen mode if Fullscreen is enabled
+ ///
+ [Order]
+ public SettingsItem BorderlessFullscreen { get; private set; }
+
///
/// Locks maximum frames per second
///
@@ -412,11 +431,11 @@ public SettingsProfile()
Section = SettingsSection.Gameplay,
};
- ApproachRate = new(32)
+ ApproachRate = new(30)
{
Id = "ApproachRate",
Title = "Approach Rate",
- Description = "Approach rate of hit objects",
+ Description = "(AR) Approach rate of hit objects, adjusts how fast hit objects come to the playfield (bigger # = faster)",
Section = SettingsSection.Gameplay,
UpdateAction = (_, _) => updateApproachTime(),
Slider = new()
@@ -427,11 +446,11 @@ public SettingsProfile()
}
};
- ApproachDistance = new(20)
+ ApproachDistance = new(15)
{
Id = "ApproachDistance",
Title = "Approach Distance",
- Description = "Approach distance of hit objects",
+ Description = "(AD) Approach distance of hit objects, adjusts how far away hit objects spawn (bigger # = further)",
Section = SettingsSection.Gameplay,
UpdateAction = (_, _) => updateApproachTime(),
Slider = new()
@@ -460,11 +479,11 @@ public SettingsProfile()
Section = SettingsSection.Gameplay,
};
- FadeIn = new(15)
+ FadeIn = new(10)
{
Id = "FadeIn",
Title = "Fade In",
- Description = "Distance for the hit objects to become fully opaque",
+ Description = "Starting from when hit objects spawn in, the distance required to travel before becoming fully opaque",
Section = SettingsSection.Gameplay,
Slider = new()
{
@@ -474,11 +493,11 @@ public SettingsProfile()
}
};
- FadeOut = new(100)
+ FadeOut = new(75)
{
Id = "FadeOut",
Title = "Fade Out",
- Description = "Toggles fade out for the hit objects",
+ Description = "Starting from when hit objects reach the half point, the transparency of hit objects when going past the playfield",
Section = SettingsSection.Gameplay,
Slider = new()
{
@@ -492,11 +511,11 @@ public SettingsProfile()
{
Id = "Pushback",
Title = "Pushback",
- Description = "Toggles hit object pushback",
+ Description = "Toggles whether hit objects are visible past the playfield or not",
Section = SettingsSection.Gameplay,
};
- CameraParallax = new(0.1f)
+ CameraParallax = new(0.25f)
{
Id = "CameraParallax",
Title = "Camera Parallax",
@@ -601,6 +620,14 @@ public SettingsProfile()
Section = SettingsSection.Visual
};
+ SpaceEffects = new(true)
+ {
+ Id = "SpaceEffects",
+ Title = "Space Effects",
+ Description = "Toggles non-hit effects for the game space",
+ Section = SettingsSection.Visual
+ };
+
NoteColors = new("skin")
{
Id = "Colors",
@@ -659,7 +686,7 @@ public SettingsProfile()
{
Id = "NoteSize",
Title = "Note Size",
- Description = "Sets the size of the notes",
+ Description = "Sets the size of the notes, does not change hitboxes",
Section = SettingsSection.Visual,
Slider = new()
{
@@ -669,11 +696,19 @@ public SettingsProfile()
}
};
+ GridGuides = new(true)
+ {
+ Id = "GridGuides",
+ Title = "Grid Guides",
+ Description = "Enables grid guides",
+ Section = SettingsSection.Visual,
+ };
+
CursorScale = new(1)
{
Id = "CursorScale",
Title = "Cursor Scale",
- Description = "Adjusts the cursor scale",
+ Description = "Adjusts the cursor scale, does not change hitboxes",
Section = SettingsSection.Visual,
Slider = new()
{
@@ -722,7 +757,7 @@ public SettingsProfile()
TrailTime = new(0.05f)
{
Id = "TrailTime",
- Title = "Trail Time",
+ Title = "Cursor Trail Time",
Description = "Adjusts trail visibility time",
Section = SettingsSection.Visual,
Slider = new()
@@ -733,17 +768,17 @@ public SettingsProfile()
}
};
- TrailDetail = new(1)
+ TrailDetail = new(100)
{
Id = "TrailDetail",
- Title = "Trail Detail",
- Description = "(Not implemented) Adjusts the detail for the trail",
+ Title = "Cursor Trail Detail",
+ Description = "Adjusts the detail for the trail, a high value may impact performance",
Section = SettingsSection.Visual,
Slider = new()
{
- Step = 0.05f,
+ Step = 1f,
MinValue = 0,
- MaxValue = 5
+ MaxValue = 500
}
};
@@ -755,43 +790,43 @@ public SettingsProfile()
Section = SettingsSection.Visual
};
- VideoDim = new(80)
- {
- Id = "VideoDim",
- Title = "Video BG Dim",
- Description = "Adjusts the video background dim",
- Section = SettingsSection.Visual,
- Slider = new()
- {
- Step = 1,
- MinValue = 0,
- MaxValue = 100
- }
- };
+ //VideoDim = new(80)
+ //{
+ //Id = "VideoDim",
+ //Title = "Video BG Dim",
+ //Description = "Adjusts the video background dim",
+ //Section = SettingsSection.Visual,
+ //Slider = new()
+ //{
+ //Step = 1,
+ //MinValue = 0,
+ //MaxValue = 100
+ //}
+ //};
#endregion
#region Video
- VideoRenderScale = new(100)
- {
- Id = "VideoRenderScale",
- Title = "Video BG Render Scale",
- Description = "Adjusts the scale of the video background",
- Section = SettingsSection.Visual,
- Slider = new()
- {
- Step = 1,
- MinValue = 0,
- MaxValue = 100
- }
- };
+ //VideoRenderScale = new(100)
+ //{
+ //Id = "VideoRenderScale",
+ //Title = "Video BG Render Scale",
+ //Description = "Adjusts the scale of the video background",
+ //Section = SettingsSection.Visual,
+ //Slider = new()
+ //{
+ //Step = 1,
+ //MinValue = 0,
+ //MaxValue = 100
+ //}
+ //};
SimpleHUD = new(false)
{
Id = "SimpleHUD",
Title = "Simple HUD",
- Description = "Toggles a minimal HUD",
+ Description = "Hides the regular left and right panel, and instead displays a simple miss counter on the right",
Section = SettingsSection.Visual,
};
@@ -825,14 +860,19 @@ public SettingsProfile()
Title = "Fullscreen",
Description = "Toggles the window to fullscreen",
Section = SettingsSection.Video,
- UpdateAction = (value, _) => DisplayServer.WindowSetMode(
- value
- ? DisplayServer.WindowMode.ExclusiveFullscreen
- : DisplayServer.WindowMode.Windowed
- )
+ UpdateAction = (value, _) => updateWindowMode()
+ };
+
+ BorderlessFullscreen = new(false)
+ {
+ Id = "BorderlessFullscreen",
+ Title = "Borderless Fullscreen",
+ Description = "Alters the Fullscreen toggle to use Borderless fullscreen instead of Exclusive, may fix some issues with drawing tablets",
+ Section = SettingsSection.Video,
+ UpdateAction = (value, _) => updateWindowMode()
};
- LockFPS = new(true)
+ LockFPS = new(false)
{
Id = "LockFPS",
Title = "Lock FPS",
@@ -845,13 +885,13 @@ public SettingsProfile()
{
Id = "FPS",
Title = "FPS",
- Description = "Adjusts maximum frames per second",
+ Description = "Adjusts maximum frames per second, we recommend this being 42x your refresh rate",
Section = SettingsSection.Video,
Slider = new()
{
Step = 5,
- MinValue = 60,
- MaxValue = 540,
+ MinValue = 30,
+ MaxValue = 1000,
},
UpdateAction = (value, _) => Engine.MaxFps = LockFPS.Value ? value : 0
};
@@ -1132,6 +1172,13 @@ private void updateApproachTime()
ApproachTime.Value = ApproachDistance / ApproachRate;
}
+ private void updateWindowMode()
+ {
+ var windowMode = Fullscreen ? (!BorderlessFullscreen ? DisplayServer.WindowMode.ExclusiveFullscreen : DisplayServer.WindowMode.Fullscreen) : DisplayServer.WindowMode.Windowed;
+
+ DisplayServer.WindowSetMode(windowMode);
+ }
+
private static List getAvailableMeshes()
{
List meshes = ["skin"];
diff --git a/scripts/database/settings/SettingsProfileConverter.cs b/scripts/database/settings/SettingsProfileConverter.cs
index 0a24a657..23af035d 100644
--- a/scripts/database/settings/SettingsProfileConverter.cs
+++ b/scripts/database/settings/SettingsProfileConverter.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using System.IO;
using System.Reflection;
using System.Text.Json;
diff --git a/scripts/database/settings/SettingsSection.cs b/scripts/database/settings/SettingsSection.cs
index fae64d71..58d4f2d8 100644
--- a/scripts/database/settings/SettingsSection.cs
+++ b/scripts/database/settings/SettingsSection.cs
@@ -1,4 +1,4 @@
-public enum SettingsSection
+public enum SettingsSection
{
None,
Gameplay,
diff --git a/scripts/database/settings/SettingsSlider.cs b/scripts/database/settings/SettingsSlider.cs
index 2c246a5a..a18ecd6f 100644
--- a/scripts/database/settings/SettingsSlider.cs
+++ b/scripts/database/settings/SettingsSlider.cs
@@ -1,4 +1,4 @@
-
+
public class SettingsSlider
{
diff --git a/scripts/game/renderers/TrailRenderer.cs b/scripts/game/renderers/TrailRenderer.cs
index 7fc6fb3c..b74301d3 100644
--- a/scripts/game/renderers/TrailRenderer.cs
+++ b/scripts/game/renderers/TrailRenderer.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using System.Collections.Generic;
using Godot;
diff --git a/scripts/game/ui/Grid.cs b/scripts/game/ui/Grid.cs
index 08045f46..55c1abaa 100644
--- a/scripts/game/ui/Grid.cs
+++ b/scripts/game/ui/Grid.cs
@@ -6,6 +6,7 @@ public partial class Grid : MeshInstance3D, IUIComponent
[Export] public Runner Runner { get; set; }
public MeshInstance3D Cursor { get; set; }
public MultiMeshInstance3D CursorTrail { get; set; }
+ public MeshInstance3D GridGuides { get; set; }
private static readonly PackedScene hit_feedback = GD.Load("res://prefabs/hit_popup.tscn");
private static readonly PackedScene miss_feedback = GD.Load("res://prefabs/miss_icon.tscn");
@@ -20,6 +21,11 @@ public override void _ExitTree()
public void Init()
{
+ GridGuides ??= GetNode("GridGuides");
+
+ GridGuides.Visible = Runner.Attempt.Settings.GridGuides;
+ (GridGuides.GetActiveMaterial(0) as StandardMaterial3D).AlbedoTexture = SkinManager.Instance.Skin.GridGuidesImage;
+
Cursor ??= GetNode("Cursor");
(Cursor.Mesh as QuadMesh).Size = new Vector2((float)(Constants.CURSOR_SIZE * Runner.Attempt.Settings.CursorScale), (float)(Constants.CURSOR_SIZE * Runner.Attempt.Settings.CursorScale));
@@ -103,4 +109,3 @@ private void updateGridPosition(Vector2 position)
}
}
-
diff --git a/scripts/skinning/SkinManager.cs b/scripts/skinning/SkinManager.cs
index feb49145..42dea292 100644
--- a/scripts/skinning/SkinManager.cs
+++ b/scripts/skinning/SkinManager.cs
@@ -59,6 +59,7 @@ public static void Load()
skin.CursorImage = loadTexture("game/cursor.png");
skin.GridImage = loadTexture("game/grid.png");
+ skin.GridGuidesImage = loadTexture("game/grid_guides.png");
skin.PanelLeftBackgroundImage = loadTexture("game/panel_left_background.png");
skin.PanelRightBackgroundImage = loadTexture("game/panel_right_background.png");
skin.HealthImage = loadTexture("game/health.png");
diff --git a/scripts/skinning/SkinProfile.cs b/scripts/skinning/SkinProfile.cs
index 8f16b0bb..180fb2f3 100644
--- a/scripts/skinning/SkinProfile.cs
+++ b/scripts/skinning/SkinProfile.cs
@@ -1,4 +1,4 @@
-using Godot;
+using Godot;
[GlobalClass]
public partial class SkinProfile : RefCounted
@@ -9,6 +9,8 @@ public partial class SkinProfile : RefCounted
public ImageTexture GridImage { get; set; } = new();
+ public ImageTexture GridGuidesImage { get; set; } = new();
+
public ImageTexture PanelLeftBackgroundImage { get; set; } = new();
public ImageTexture PanelRightBackgroundImage { get; set; } = new();
diff --git a/scripts/spaces/Galaxy.cs b/scripts/spaces/Galaxy.cs
index 14750d18..91494268 100644
--- a/scripts/spaces/Galaxy.cs
+++ b/scripts/spaces/Galaxy.cs
@@ -6,10 +6,9 @@ public partial class Galaxy : BaseSpace
{
private SettingsProfile settings;
private Environment environment;
- // private Node3D planet;
- // private Vector3 planetStartPos;
+ //private Node3D planet;
+ //private Vector3 planetStartPos;
private StandardMaterial3D tileMaterial;
- private Color fogReset = new(0, 0, 0);
public override void _Ready()
{
@@ -19,8 +18,8 @@ public override void _Ready()
environment = WorldEnvironment.Environment;
tileMaterial = (GetNode("Road").Mesh as PlaneMesh).Material as StandardMaterial3D;
- // planet = GetNode("Planet");
- // planetStartPos = planet.Position;
+ //planet = GetNode("Planet");
+ //planetStartPos = planet.Position;
}
public override void _Process(double delta)
@@ -34,9 +33,6 @@ public override void _Process(double delta)
tileMaterial.Uv1Offset += Vector3.Up * (float)delta / 2;
// planet floating
- //planet.Position = planetStartPos + Vector3.Up * (float)Math.Sin(Time.GetTicksMsec() / 1000f );
-
- // fog
- environment.FogLightColor = settings.SpaceHitEffects ? NoteHitColor : fogReset;
+ //planet.Position = planetStartPos + Vector3.Up * (float)Mathf.Sin(Time.GetTicksMsec() / 1000f );
}
}
diff --git a/scripts/spaces/Relic.cs b/scripts/spaces/Relic.cs
index f52bb1bd..81dd4809 100644
--- a/scripts/spaces/Relic.cs
+++ b/scripts/spaces/Relic.cs
@@ -2,4 +2,30 @@
namespace Spaces;
-public partial class Relic : BaseSpace { }
+public partial class Relic : BaseSpace
+{
+ private SettingsProfile settings;
+ private Node3D particles;
+ private GpuParticles3D aura;
+ private GpuParticles3D left;
+ private GpuParticles3D right;
+
+ public override void _Ready()
+ {
+ base._Ready();
+
+ settings = SettingsManager.Instance.Settings;
+ particles = GetNode("Particles");
+ aura = particles.GetNode("Aura");
+ left = particles.GetNode("Left");
+ right = particles.GetNode("Right");
+
+ }
+ public override void _Process(double delta)
+ {
+ base._Process(delta);
+ aura.Emitting = settings.SpaceEffects;
+ left.Emitting = settings.SpaceEffects;
+ right.Emitting = settings.SpaceEffects;
+ }
+}
diff --git a/scripts/spaces/TriTunnel.cs b/scripts/spaces/TriTunnel.cs
index ba0d618d..42bec7bb 100644
--- a/scripts/spaces/TriTunnel.cs
+++ b/scripts/spaces/TriTunnel.cs
@@ -8,7 +8,7 @@ public partial class TriTunnel : BaseSpace
private MeshInstance3D tunnel;
private StandardMaterial3D tunnelTexture;
private Vector3 tunnelPosReset;
- private Color tunnelColorReset = new(255, 255, 255);
+ private Color tunnelColor;
private const float tunnel_loop_end = 148f;
public override void _Ready()
@@ -19,6 +19,7 @@ public override void _Ready()
tunnel = GetNode("Tunnel");
tunnelPosReset = tunnel.Position;
tunnelTexture = tunnel.MaterialOverride as StandardMaterial3D;
+ tunnelColor = tunnelTexture.AlbedoColor;
}
public override void _Process(double delta)
@@ -26,7 +27,7 @@ public override void _Process(double delta)
base._Process(delta);
// Tunnel movement
- if (tunnel.Position.Z < tunnel_loop_end)
+ if (tunnel.Position.Z < tunnel_loop_end && settings.SpaceEffects)
{
tunnel.Position += Vector3.Back * (float)(settings.ApproachRate * delta / 6);
}
@@ -36,6 +37,6 @@ public override void _Process(double delta)
}
// Hit VFX
- tunnelTexture.AlbedoColor = settings.SpaceHitEffects ? NoteHitColor : tunnelColorReset;
+ tunnelTexture.AlbedoColor = settings.SpaceHitEffects ? NoteHitColor : tunnelColor;
}
}
diff --git a/scripts/spaces/Tunnel.cs b/scripts/spaces/Tunnel.cs
index 046e0825..13ededa0 100644
--- a/scripts/spaces/Tunnel.cs
+++ b/scripts/spaces/Tunnel.cs
@@ -29,7 +29,10 @@ public override void _Process(double delta)
base._Process(delta);
// Ring movement
- rings.Position = Vector3.Back * (float)(Time.GetTicksMsec() / 1000f * settings.ApproachRate / 2) % ring_loop_end;
+ if (settings.SpaceEffects)
+ {
+ rings.Position = Vector3.Back * (float)(Time.GetTicksMsec() / 1000f * settings.ApproachRate / 2) % ring_loop_end;
+ }
// Hit FX
tileMaterial.AlbedoColor = NoteHitColor;
diff --git a/scripts/spaces/Vortex.cs b/scripts/spaces/Vortex.cs
index 414484f3..8811433f 100644
--- a/scripts/spaces/Vortex.cs
+++ b/scripts/spaces/Vortex.cs
@@ -11,7 +11,7 @@ public partial class Vortex : BaseSpace
private Node3D squircles;
private StandardMaterial3D[] squircleMaterials;
private Color[] lastHitColors;
- private Color squircleColorReset = new(0xffffff);
+ private Color squircleColorReset = new("ffffff");
public override void _Ready()
{
@@ -64,7 +64,10 @@ public override void _Process(double delta)
//
// Rotation
- squircles.Rotation = Vector3.Forward * (Time.GetTicksMsec() / 8000f);
+ if (settings.SpaceEffects)
+ {
+ squircles.Rotation = Vector3.Forward * (Time.GetTicksMsec() / 8000f);
+ }
// Hit FX
for (int i = 0; i < squircleMaterials.Length; i++)
diff --git a/scripts/spaces/Waves.cs b/scripts/spaces/Waves.cs
index 9774d545..bab48041 100644
--- a/scripts/spaces/Waves.cs
+++ b/scripts/spaces/Waves.cs
@@ -8,11 +8,13 @@ public partial class Waves : BaseSpace
private Environment environment;
private ShaderMaterial skyMaterial;
private ShaderMaterial waterMaterial;
+ private SettingsProfile settings;
public override void _Ready()
{
base._Ready();
+ settings = SettingsManager.Instance.Settings;
environment = GetNode("WorldEnvironment").Environment;
skyMaterial = environment.Sky.SkyMaterial as ShaderMaterial;
waterMaterial = (GetNode("Water").Mesh as PlaneMesh).Material as ShaderMaterial;
@@ -69,11 +71,17 @@ public override void UpdateState(bool playing)
{
base.UpdateState(playing);
- if (Playing)
+ if (Playing && !settings.SpaceEffects)
{
skyMaterial.SetShaderParameter("image_a", empty);
skyMaterial.SetShaderParameter("image_b", empty);
skyMaterial.SetShaderParameter("image_lerp", 0.0);
}
+ else
+ {
+ skyMaterial.SetShaderParameter("image_b", skyMaterial.GetShaderParameter("image_a"));
+ skyMaterial.SetShaderParameter("image_a", Cover != null ? Cover : empty);
+ skyMaterial.SetShaderParameter("image_lerp", 0.0);
+ }
}
}
diff --git a/textures/RhythiaSquircle.png.import b/textures/RhythiaSquircle.png.import
index 233adcba..3d87a17b 100644
--- a/textures/RhythiaSquircle.png.import
+++ b/textures/RhythiaSquircle.png.import
@@ -4,15 +4,16 @@ importer="texture"
type="CompressedTexture2D"
uid="uid://baivqqkfll133"
path.s3tc="res://.godot/imported/RhythiaSquircle.png-e7ded38c293210304c1c51a7437c5e35.s3tc.ctex"
+path.etc2="res://.godot/imported/RhythiaSquircle.png-e7ded38c293210304c1c51a7437c5e35.etc2.ctex"
metadata={
-"imported_formats": ["s3tc_bptc"],
+"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://textures/RhythiaSquircle.png"
-dest_files=["res://.godot/imported/RhythiaSquircle.png-e7ded38c293210304c1c51a7437c5e35.s3tc.ctex"]
+dest_files=["res://.godot/imported/RhythiaSquircle.png-e7ded38c293210304c1c51a7437c5e35.s3tc.ctex", "res://.godot/imported/RhythiaSquircle.png-e7ded38c293210304c1c51a7437c5e35.etc2.ctex"]
[params]
diff --git a/textures/empty.png.import b/textures/empty.png.import
index 03b0fc0e..5177c83f 100644
--- a/textures/empty.png.import
+++ b/textures/empty.png.import
@@ -4,15 +4,16 @@ importer="texture"
type="CompressedTexture2D"
uid="uid://c4u5y3e8yamuk"
path.s3tc="res://.godot/imported/empty.png-4550676ddda09419c6eb3446d3130830.s3tc.ctex"
+path.etc2="res://.godot/imported/empty.png-4550676ddda09419c6eb3446d3130830.etc2.ctex"
metadata={
-"imported_formats": ["s3tc_bptc"],
+"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://textures/empty.png"
-dest_files=["res://.godot/imported/empty.png-4550676ddda09419c6eb3446d3130830.s3tc.ctex"]
+dest_files=["res://.godot/imported/empty.png-4550676ddda09419c6eb3446d3130830.s3tc.ctex", "res://.godot/imported/empty.png-4550676ddda09419c6eb3446d3130830.etc2.ctex"]
[params]
diff --git a/textures/galaxy_rainbow.png.import b/textures/galaxy_rainbow.png.import
index 14749ac6..deeb0f43 100644
--- a/textures/galaxy_rainbow.png.import
+++ b/textures/galaxy_rainbow.png.import
@@ -4,15 +4,16 @@ importer="texture"
type="CompressedTexture2D"
uid="uid://d4n3duxjt288o"
path.s3tc="res://.godot/imported/galaxy_rainbow.png-5150f0d13d80cbbaa64705ec8f0a135d.s3tc.ctex"
+path.etc2="res://.godot/imported/galaxy_rainbow.png-5150f0d13d80cbbaa64705ec8f0a135d.etc2.ctex"
metadata={
-"imported_formats": ["s3tc_bptc"],
+"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://textures/galaxy_rainbow.png"
-dest_files=["res://.godot/imported/galaxy_rainbow.png-5150f0d13d80cbbaa64705ec8f0a135d.s3tc.ctex"]
+dest_files=["res://.godot/imported/galaxy_rainbow.png-5150f0d13d80cbbaa64705ec8f0a135d.s3tc.ctex", "res://.godot/imported/galaxy_rainbow.png-5150f0d13d80cbbaa64705ec8f0a135d.etc2.ctex"]
[params]
diff --git a/textures/galaxy_skybox.png.import b/textures/galaxy_skybox.png.import
index 18eeb089..85e98dca 100644
--- a/textures/galaxy_skybox.png.import
+++ b/textures/galaxy_skybox.png.import
@@ -4,15 +4,16 @@ importer="texture"
type="CompressedTexture2D"
uid="uid://drj0rof0q81b5"
path.s3tc="res://.godot/imported/galaxy_skybox.png-e42e640ad898a2573fdbfa805414f352.s3tc.ctex"
+path.etc2="res://.godot/imported/galaxy_skybox.png-e42e640ad898a2573fdbfa805414f352.etc2.ctex"
metadata={
-"imported_formats": ["s3tc_bptc"],
+"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://textures/galaxy_skybox.png"
-dest_files=["res://.godot/imported/galaxy_skybox.png-e42e640ad898a2573fdbfa805414f352.s3tc.ctex"]
+dest_files=["res://.godot/imported/galaxy_skybox.png-e42e640ad898a2573fdbfa805414f352.s3tc.ctex", "res://.godot/imported/galaxy_skybox.png-e42e640ad898a2573fdbfa805414f352.etc2.ctex"]
[params]
diff --git a/textures/grid_tile.png.import b/textures/grid_tile.png.import
index 8249aa4f..0721501b 100644
--- a/textures/grid_tile.png.import
+++ b/textures/grid_tile.png.import
@@ -4,15 +4,16 @@ importer="texture"
type="CompressedTexture2D"
uid="uid://cnqebcj2iorfr"
path.s3tc="res://.godot/imported/grid_tile.png-94aab6786e791c103f5baede0e941dba.s3tc.ctex"
+path.etc2="res://.godot/imported/grid_tile.png-94aab6786e791c103f5baede0e941dba.etc2.ctex"
metadata={
-"imported_formats": ["s3tc_bptc"],
+"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://textures/grid_tile.png"
-dest_files=["res://.godot/imported/grid_tile.png-94aab6786e791c103f5baede0e941dba.s3tc.ctex"]
+dest_files=["res://.godot/imported/grid_tile.png-94aab6786e791c103f5baede0e941dba.s3tc.ctex", "res://.godot/imported/grid_tile.png-94aab6786e791c103f5baede0e941dba.etc2.ctex"]
[params]
diff --git a/textures/p.png.import b/textures/p.png.import
index 1023cc29..3a73e321 100644
--- a/textures/p.png.import
+++ b/textures/p.png.import
@@ -4,15 +4,16 @@ importer="texture"
type="CompressedTexture2D"
uid="uid://dqr46iek4sfxo"
path.s3tc="res://.godot/imported/p.png-2b0ca2781c06c5295258baad07f02232.s3tc.ctex"
+path.etc2="res://.godot/imported/p.png-2b0ca2781c06c5295258baad07f02232.etc2.ctex"
metadata={
-"imported_formats": ["s3tc_bptc"],
+"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://textures/p.png"
-dest_files=["res://.godot/imported/p.png-2b0ca2781c06c5295258baad07f02232.s3tc.ctex"]
+dest_files=["res://.godot/imported/p.png-2b0ca2781c06c5295258baad07f02232.s3tc.ctex", "res://.godot/imported/p.png-2b0ca2781c06c5295258baad07f02232.etc2.ctex"]
[params]
diff --git a/textures/squircle_blank.png.import b/textures/squircle_blank.png.import
index a5926ea1..5fb2a6c9 100644
--- a/textures/squircle_blank.png.import
+++ b/textures/squircle_blank.png.import
@@ -4,15 +4,16 @@ importer="texture"
type="CompressedTexture2D"
uid="uid://c5df01qkhxros"
path.s3tc="res://.godot/imported/squircle_blank.png-56066c369baf0fb23e738c301878c14b.s3tc.ctex"
+path.etc2="res://.godot/imported/squircle_blank.png-56066c369baf0fb23e738c301878c14b.etc2.ctex"
metadata={
-"imported_formats": ["s3tc_bptc"],
+"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://textures/squircle_blank.png"
-dest_files=["res://.godot/imported/squircle_blank.png-56066c369baf0fb23e738c301878c14b.s3tc.ctex"]
+dest_files=["res://.godot/imported/squircle_blank.png-56066c369baf0fb23e738c301878c14b.s3tc.ctex", "res://.godot/imported/squircle_blank.png-56066c369baf0fb23e738c301878c14b.etc2.ctex"]
[params]
diff --git a/textures/squircle_bloom.png.import b/textures/squircle_bloom.png.import
index c6c09155..b84941e2 100644
--- a/textures/squircle_bloom.png.import
+++ b/textures/squircle_bloom.png.import
@@ -4,15 +4,16 @@ importer="texture"
type="CompressedTexture2D"
uid="uid://cafgf44rluox6"
path.s3tc="res://.godot/imported/squircle_bloom.png-d2aef008e3b8fadc5bf53248732f9770.s3tc.ctex"
+path.etc2="res://.godot/imported/squircle_bloom.png-d2aef008e3b8fadc5bf53248732f9770.etc2.ctex"
metadata={
-"imported_formats": ["s3tc_bptc"],
+"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://textures/squircle_bloom.png"
-dest_files=["res://.godot/imported/squircle_bloom.png-d2aef008e3b8fadc5bf53248732f9770.s3tc.ctex"]
+dest_files=["res://.godot/imported/squircle_bloom.png-d2aef008e3b8fadc5bf53248732f9770.s3tc.ctex", "res://.godot/imported/squircle_bloom.png-d2aef008e3b8fadc5bf53248732f9770.etc2.ctex"]
[params]
diff --git a/textures/tunnel_neonroad.png.import b/textures/tunnel_neonroad.png.import
index 5e113759..bff75421 100644
--- a/textures/tunnel_neonroad.png.import
+++ b/textures/tunnel_neonroad.png.import
@@ -4,15 +4,16 @@ importer="texture"
type="CompressedTexture2D"
uid="uid://frwrbwqgan5x"
path.s3tc="res://.godot/imported/tunnel_neonroad.png-d20bc35a74f7193fbf270b8bead3a317.s3tc.ctex"
+path.etc2="res://.godot/imported/tunnel_neonroad.png-d20bc35a74f7193fbf270b8bead3a317.etc2.ctex"
metadata={
-"imported_formats": ["s3tc_bptc"],
+"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://textures/tunnel_neonroad.png"
-dest_files=["res://.godot/imported/tunnel_neonroad.png-d20bc35a74f7193fbf270b8bead3a317.s3tc.ctex"]
+dest_files=["res://.godot/imported/tunnel_neonroad.png-d20bc35a74f7193fbf270b8bead3a317.s3tc.ctex", "res://.godot/imported/tunnel_neonroad.png-d20bc35a74f7193fbf270b8bead3a317.etc2.ctex"]
[params]
diff --git a/textures/tunnel_ring_b.png.import b/textures/tunnel_ring_b.png.import
index ee479f44..433df406 100644
--- a/textures/tunnel_ring_b.png.import
+++ b/textures/tunnel_ring_b.png.import
@@ -4,15 +4,16 @@ importer="texture"
type="CompressedTexture2D"
uid="uid://rvoiaddddovf"
path.s3tc="res://.godot/imported/tunnel_ring_b.png-1c35dfc6f563f961d39e6af154dd0376.s3tc.ctex"
+path.etc2="res://.godot/imported/tunnel_ring_b.png-1c35dfc6f563f961d39e6af154dd0376.etc2.ctex"
metadata={
-"imported_formats": ["s3tc_bptc"],
+"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://textures/tunnel_ring_b.png"
-dest_files=["res://.godot/imported/tunnel_ring_b.png-1c35dfc6f563f961d39e6af154dd0376.s3tc.ctex"]
+dest_files=["res://.godot/imported/tunnel_ring_b.png-1c35dfc6f563f961d39e6af154dd0376.s3tc.ctex", "res://.godot/imported/tunnel_ring_b.png-1c35dfc6f563f961d39e6af154dd0376.etc2.ctex"]
[params]
diff --git a/textures/tunnel_space_a.png.import b/textures/tunnel_space_a.png.import
index 1e91ccd2..e25d6650 100644
--- a/textures/tunnel_space_a.png.import
+++ b/textures/tunnel_space_a.png.import
@@ -4,15 +4,16 @@ importer="texture"
type="CompressedTexture2D"
uid="uid://dj66qsxt3lvm5"
path.s3tc="res://.godot/imported/tunnel_space_a.png-c019dce8ef63e414d647fd95a98a56e7.s3tc.ctex"
+path.etc2="res://.godot/imported/tunnel_space_a.png-c019dce8ef63e414d647fd95a98a56e7.etc2.ctex"
metadata={
-"imported_formats": ["s3tc_bptc"],
+"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://textures/tunnel_space_a.png"
-dest_files=["res://.godot/imported/tunnel_space_a.png-c019dce8ef63e414d647fd95a98a56e7.s3tc.ctex"]
+dest_files=["res://.godot/imported/tunnel_space_a.png-c019dce8ef63e414d647fd95a98a56e7.s3tc.ctex", "res://.godot/imported/tunnel_space_a.png-c019dce8ef63e414d647fd95a98a56e7.etc2.ctex"]
[params]
diff --git a/user/skins/default/game/cursor.png.import b/user/skins/default/game/cursor.png.import
index 7b98688b..7d3616f1 100644
--- a/user/skins/default/game/cursor.png.import
+++ b/user/skins/default/game/cursor.png.import
@@ -4,15 +4,16 @@ importer="texture"
type="CompressedTexture2D"
uid="uid://3e1tjlr4m0wt"
path.s3tc="res://.godot/imported/cursor.png-cf9624786284c61ac8ae54ca14020559.s3tc.ctex"
+path.etc2="res://.godot/imported/cursor.png-cf9624786284c61ac8ae54ca14020559.etc2.ctex"
metadata={
-"imported_formats": ["s3tc_bptc"],
+"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://user/skins/default/game/cursor.png"
-dest_files=["res://.godot/imported/cursor.png-cf9624786284c61ac8ae54ca14020559.s3tc.ctex"]
+dest_files=["res://.godot/imported/cursor.png-cf9624786284c61ac8ae54ca14020559.s3tc.ctex", "res://.godot/imported/cursor.png-cf9624786284c61ac8ae54ca14020559.etc2.ctex"]
[params]
diff --git a/user/skins/default/game/grid.png.import b/user/skins/default/game/grid.png.import
index ec17ffa9..2b32700b 100644
--- a/user/skins/default/game/grid.png.import
+++ b/user/skins/default/game/grid.png.import
@@ -4,15 +4,16 @@ importer="texture"
type="CompressedTexture2D"
uid="uid://b3g4aw54n6bow"
path.s3tc="res://.godot/imported/grid.png-3efd333aa2086443c404b7b11f4a1736.s3tc.ctex"
+path.etc2="res://.godot/imported/grid.png-3efd333aa2086443c404b7b11f4a1736.etc2.ctex"
metadata={
-"imported_formats": ["s3tc_bptc"],
+"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://user/skins/default/game/grid.png"
-dest_files=["res://.godot/imported/grid.png-3efd333aa2086443c404b7b11f4a1736.s3tc.ctex"]
+dest_files=["res://.godot/imported/grid.png-3efd333aa2086443c404b7b11f4a1736.s3tc.ctex", "res://.godot/imported/grid.png-3efd333aa2086443c404b7b11f4a1736.etc2.ctex"]
[params]
diff --git a/user/skins/default/game/grid_guides.png b/user/skins/default/game/grid_guides.png
new file mode 100644
index 00000000..ae7e2f93
Binary files /dev/null and b/user/skins/default/game/grid_guides.png differ
diff --git a/user/skins/default/game/grid_guides.png.import b/user/skins/default/game/grid_guides.png.import
new file mode 100644
index 00000000..9ef73008
--- /dev/null
+++ b/user/skins/default/game/grid_guides.png.import
@@ -0,0 +1,42 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://ccdaf14yq65jf"
+path.s3tc="res://.godot/imported/grid_guides.png-bf7128d5e8176789cb3f95022a243e8b.s3tc.ctex"
+path.etc2="res://.godot/imported/grid_guides.png-bf7128d5e8176789cb3f95022a243e8b.etc2.ctex"
+metadata={
+"imported_formats": ["s3tc_bptc", "etc2_astc"],
+"vram_texture": true
+}
+
+[deps]
+
+source_file="res://user/skins/default/game/grid_guides.png"
+dest_files=["res://.godot/imported/grid_guides.png-bf7128d5e8176789cb3f95022a243e8b.s3tc.ctex", "res://.godot/imported/grid_guides.png-bf7128d5e8176789cb3f95022a243e8b.etc2.ctex"]
+
+[params]
+
+compress/mode=2
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=true
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=0
diff --git a/user/skins/default/game/health.png.import b/user/skins/default/game/health.png.import
index 98ce0fc7..941324af 100644
--- a/user/skins/default/game/health.png.import
+++ b/user/skins/default/game/health.png.import
@@ -4,15 +4,16 @@ importer="texture"
type="CompressedTexture2D"
uid="uid://4x2vfpyjkri6"
path.s3tc="res://.godot/imported/health.png-f20bb402b3d036a3774af52b1a2fc98d.s3tc.ctex"
+path.etc2="res://.godot/imported/health.png-f20bb402b3d036a3774af52b1a2fc98d.etc2.ctex"
metadata={
-"imported_formats": ["s3tc_bptc"],
+"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://user/skins/default/game/health.png"
-dest_files=["res://.godot/imported/health.png-f20bb402b3d036a3774af52b1a2fc98d.s3tc.ctex"]
+dest_files=["res://.godot/imported/health.png-f20bb402b3d036a3774af52b1a2fc98d.s3tc.ctex", "res://.godot/imported/health.png-f20bb402b3d036a3774af52b1a2fc98d.etc2.ctex"]
[params]
diff --git a/user/skins/default/game/hits.png.import b/user/skins/default/game/hits.png.import
index dc116501..a8597ea8 100644
--- a/user/skins/default/game/hits.png.import
+++ b/user/skins/default/game/hits.png.import
@@ -4,15 +4,16 @@ importer="texture"
type="CompressedTexture2D"
uid="uid://dw2gxd3m24h4m"
path.s3tc="res://.godot/imported/hits.png-9787a9f8d73df02ab1e0953fa77b9a7b.s3tc.ctex"
+path.etc2="res://.godot/imported/hits.png-9787a9f8d73df02ab1e0953fa77b9a7b.etc2.ctex"
metadata={
-"imported_formats": ["s3tc_bptc"],
+"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://user/skins/default/game/hits.png"
-dest_files=["res://.godot/imported/hits.png-9787a9f8d73df02ab1e0953fa77b9a7b.s3tc.ctex"]
+dest_files=["res://.godot/imported/hits.png-9787a9f8d73df02ab1e0953fa77b9a7b.s3tc.ctex", "res://.godot/imported/hits.png-9787a9f8d73df02ab1e0953fa77b9a7b.etc2.ctex"]
[params]
diff --git a/user/skins/default/game/miss_feedback.png.import b/user/skins/default/game/miss_feedback.png.import
index d1c1d762..bba7a0b8 100644
--- a/user/skins/default/game/miss_feedback.png.import
+++ b/user/skins/default/game/miss_feedback.png.import
@@ -4,15 +4,16 @@ importer="texture"
type="CompressedTexture2D"
uid="uid://bh68kecn6dn1c"
path.s3tc="res://.godot/imported/miss_feedback.png-f749b90e50f474257c76230765b4e05c.s3tc.ctex"
+path.etc2="res://.godot/imported/miss_feedback.png-f749b90e50f474257c76230765b4e05c.etc2.ctex"
metadata={
-"imported_formats": ["s3tc_bptc"],
+"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://user/skins/default/game/miss_feedback.png"
-dest_files=["res://.godot/imported/miss_feedback.png-f749b90e50f474257c76230765b4e05c.s3tc.ctex"]
+dest_files=["res://.godot/imported/miss_feedback.png-f749b90e50f474257c76230765b4e05c.s3tc.ctex", "res://.godot/imported/miss_feedback.png-f749b90e50f474257c76230765b4e05c.etc2.ctex"]
[params]
diff --git a/user/skins/default/game/misses.png.import b/user/skins/default/game/misses.png.import
index 6b940ded..e9cff79b 100644
--- a/user/skins/default/game/misses.png.import
+++ b/user/skins/default/game/misses.png.import
@@ -4,15 +4,16 @@ importer="texture"
type="CompressedTexture2D"
uid="uid://c3x2cp3tx4vqt"
path.s3tc="res://.godot/imported/misses.png-11a0a2ee1174bec878540dd7e3815cdb.s3tc.ctex"
+path.etc2="res://.godot/imported/misses.png-11a0a2ee1174bec878540dd7e3815cdb.etc2.ctex"
metadata={
-"imported_formats": ["s3tc_bptc"],
+"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://user/skins/default/game/misses.png"
-dest_files=["res://.godot/imported/misses.png-11a0a2ee1174bec878540dd7e3815cdb.s3tc.ctex"]
+dest_files=["res://.godot/imported/misses.png-11a0a2ee1174bec878540dd7e3815cdb.s3tc.ctex", "res://.godot/imported/misses.png-11a0a2ee1174bec878540dd7e3815cdb.etc2.ctex"]
[params]
diff --git a/user/skins/default/menu.mp3 b/user/skins/default/menu.mp3
index a5b50d17..f3ab0949 100644
Binary files a/user/skins/default/menu.mp3 and b/user/skins/default/menu.mp3 differ
diff --git a/user/skins/default/menu.mp3.import b/user/skins/default/menu.mp3.import
index d4ebcf2b..5711eea8 100644
--- a/user/skins/default/menu.mp3.import
+++ b/user/skins/default/menu.mp3.import
@@ -2,7 +2,7 @@
importer="mp3"
type="AudioStreamMP3"
-uid="uid://clsspjk4xdg3t"
+uid="uid://bdujc776g6vg0"
path="res://.godot/imported/menu.mp3-6464f7e421fc1b163d703d2d678f5f82.mp3str"
[deps]
diff --git a/user/skins/default/modifiers/nofail.png.import b/user/skins/default/modifiers/nofail.png.import
index 8db44acb..509d4955 100644
--- a/user/skins/default/modifiers/nofail.png.import
+++ b/user/skins/default/modifiers/nofail.png.import
@@ -4,15 +4,16 @@ importer="texture"
type="CompressedTexture2D"
uid="uid://b0k0ltu15bart"
path.s3tc="res://.godot/imported/nofail.png-41ae6f785118cf09cdb55eae4ced59b7.s3tc.ctex"
+path.etc2="res://.godot/imported/nofail.png-41ae6f785118cf09cdb55eae4ced59b7.etc2.ctex"
metadata={
-"imported_formats": ["s3tc_bptc"],
+"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://user/skins/default/modifiers/nofail.png"
-dest_files=["res://.godot/imported/nofail.png-41ae6f785118cf09cdb55eae4ced59b7.s3tc.ctex"]
+dest_files=["res://.godot/imported/nofail.png-41ae6f785118cf09cdb55eae4ced59b7.s3tc.ctex", "res://.godot/imported/nofail.png-41ae6f785118cf09cdb55eae4ced59b7.etc2.ctex"]
[params]
diff --git a/user/skins/default/ui/menu.mp3 b/user/skins/default/ui/menu.mp3
new file mode 100644
index 00000000..f3ab0949
Binary files /dev/null and b/user/skins/default/ui/menu.mp3 differ
diff --git a/user/skins/default/ui/menu.mp3.import b/user/skins/default/ui/menu.mp3.import
new file mode 100644
index 00000000..bfabde6f
--- /dev/null
+++ b/user/skins/default/ui/menu.mp3.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="mp3"
+type="AudioStreamMP3"
+uid="uid://j88couhqjplh"
+path="res://.godot/imported/menu.mp3-cfbb685d0300aef5df284fad65abf827.mp3str"
+
+[deps]
+
+source_file="res://user/skins/default/ui/menu.mp3"
+dest_files=["res://.godot/imported/menu.mp3-cfbb685d0300aef5df284fad65abf827.mp3str"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4