Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
16739c6
revert: maps end 1 second after last note
nyuwaea Apr 22, 2026
2a10779
fix replay audiostream pause & resync pitch clamp
nyuwaea Apr 26, 2026
9411878
tunnel space (thx noobour again)
nyuwaea Apr 26, 2026
2c97886
delete default menu music
nyuwaea Apr 26, 2026
ef211d3
fix: show map title after unpausing jukebox
nyuwaea Apr 27, 2026
a1bfde1
0.1.2 changelog & release candidate versioning
nyuwaea Apr 27, 2026
893fc0a
tunnel space script cleanup
nyuwaea Apr 27, 2026
58aa48c
miss changelog entry
nyuwaea Apr 27, 2026
34be292
fix: song resync applying after death
nyuwaea Apr 27, 2026
2a38752
fix: jukebox label doesn't display title after pausing and playing wi…
nyuwaea Apr 27, 2026
00c5b36
fix: held input registered in results scene
nyuwaea Apr 28, 2026
148366c
tiny
nyuwaea Apr 28, 2026
3f224c0
Merge branch 'Rhythia:indev' into indev
nyuwaea Apr 28, 2026
8258655
minor cleanup
nyuwaea Apr 28, 2026
daf9d5c
resync pitch scaling lower limit > 0
nyuwaea Apr 28, 2026
3b6182b
fix: search doesn't focus after using slider
nyuwaea Apr 28, 2026
a33c07c
fix: placeholder setting values not applying
nyuwaea Apr 28, 2026
4bcc493
fix: tunnel space skipping over reset pos
nyuwaea Apr 28, 2026
7cb8393
Merge branch 'Rhythia:indev' into indev
nyuwaea Apr 30, 2026
e2630cc
pitch scaling consider delta
nyuwaea Apr 30, 2026
c5124e0
fix: animate tunnel space independently of framerate
nyuwaea Apr 30, 2026
bee132d
tunnel space readability adjustments
nyuwaea Apr 30, 2026
551d43b
fix: error spam when quitting from main menu on mute
nyuwaea Apr 30, 2026
348f3d9
simplify note opacity logic & update fadeout behaviour
nyuwaea Apr 30, 2026
79736a4
lower tooltip delay 0.5s -> 0.1s
nyuwaea Apr 30, 2026
5e2115e
another negative infinity volume check
nyuwaea Apr 30, 2026
ba1ce41
fix squircle faces & reenable note face culling
nyuwaea Apr 30, 2026
8e4451d
add support for nightly coloursets
nyuwaea Apr 30, 2026
58082eb
name SoundManager sounds
nyuwaea Apr 30, 2026
e56ef7b
tiny
nyuwaea Apr 30, 2026
b4a10bc
oops
nyuwaea Apr 30, 2026
d24861d
versioning
nyuwaea Apr 30, 2026
a871e03
fix: resource note being half size on first launch & cleanup
nyuwaea Apr 30, 2026
90deace
refresh squircle mesh on launch UGH
nyuwaea Apr 30, 2026
13c030a
fix const formatting
nyuwaea Apr 30, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
140 changes: 140 additions & 0 deletions prefabs/spaces/tunnel.tscn
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
[gd_scene format=3 uid="uid://deift37sj4byw"]

[ext_resource type="Script" uid="uid://dppxcyrky5dtp" path="res://scripts/spaces/Tunnel.cs" id="1_hk1of"]
[ext_resource type="Texture2D" uid="uid://rvoiaddddovf" path="res://textures/tunnel_ring_b.png" id="2_5m0re"]
[ext_resource type="Texture2D" uid="uid://dj66qsxt3lvm5" path="res://textures/tunnel_space_a.png" id="3_frc3x"]
[ext_resource type="Texture2D" uid="uid://frwrbwqgan5x" path="res://textures/tunnel_neonroad.png" id="4_5ioxn"]

[sub_resource type="Environment" id="Environment_i2qd1"]
ambient_light_source = 1
ambient_light_color = Color(1, 1, 1, 1)
reflected_light_source = 1
fog_enabled = true
fog_mode = 1
fog_light_color = Color(0, 0, 0, 1)
fog_light_energy = 0.01
fog_density = 1.0
fog_depth_curve = 0.8485127
fog_depth_begin = 5.0
fog_depth_end = 150.0

[sub_resource type="StandardMaterial3D" id="2"]
cull_mode = 2
shading_mode = 0
albedo_texture = ExtResource("2_5m0re")
distance_fade_mode = 1
distance_fade_min_distance = 10.0
distance_fade_max_distance = 40.0

[sub_resource type="QuadMesh" id="4"]
material = SubResource("2")
size = Vector2(8, 8)

[sub_resource type="StandardMaterial3D" id="1"]
transparency = 1
cull_mode = 2
shading_mode = 0
albedo_texture = ExtResource("3_frc3x")
distance_fade_mode = 1
distance_fade_min_distance = 10.0
distance_fade_max_distance = 40.0

[sub_resource type="QuadMesh" id="5"]
material = SubResource("1")
size = Vector2(8, 8)

[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_6gcud"]
shading_mode = 0
albedo_texture = ExtResource("4_5ioxn")
texture_filter = 5
billboard_keep_scale = true
grow_amount = -7.051
point_size = 23.8
distance_fade_mode = 1
distance_fade_min_distance = 150.0

[sub_resource type="PlaneMesh" id="PlaneMesh_tiw4t"]
material = SubResource("StandardMaterial3D_6gcud")
size = Vector2(120, 120)

[node name="Tunnel" type="Node3D" unique_id=1740008516]
script = ExtResource("1_hk1of")

[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=278552244]
environment = SubResource("Environment_i2qd1")

[node name="Rings" type="Node3D" parent="." unique_id=1743608970]
transform = Transform3D(3.5, 0, 0, 0, 3.5, 0, 0, 0, 3.5, 0, 0, 0)

[node name="1" type="MeshInstance3D" parent="Rings" unique_id=2007434064]
cast_shadow = 0
mesh = SubResource("4")

[node name="2" type="MeshInstance3D" parent="Rings" unique_id=1988406875]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -7.5000014)
cast_shadow = 0
mesh = SubResource("5")

[node name="3" type="MeshInstance3D" parent="Rings" unique_id=1582574032]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -15)
cast_shadow = 0
mesh = SubResource("4")

[node name="4" type="MeshInstance3D" parent="Rings" unique_id=176014594]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -22.5)
cast_shadow = 0
mesh = SubResource("5")

[node name="5" type="MeshInstance3D" parent="Rings" unique_id=1324853464]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -30)
cast_shadow = 0
mesh = SubResource("4")

[node name="6" type="MeshInstance3D" parent="Rings" unique_id=1303428517]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -37.5)
cast_shadow = 0
mesh = SubResource("5")

[node name="7" type="MeshInstance3D" parent="Rings" unique_id=1899433621]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -45.000004)
cast_shadow = 0
mesh = SubResource("4")

[node name="8" type="MeshInstance3D" parent="Rings" unique_id=1309912634]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -52.5)
cast_shadow = 0
mesh = SubResource("5")

[node name="9" type="MeshInstance3D" parent="Rings" unique_id=1836294748]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 7.5)
cast_shadow = 0
mesh = SubResource("5")

[node name="10" type="MeshInstance3D" parent="Rings" unique_id=74715341]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 15)
cast_shadow = 0
mesh = SubResource("4")

[node name="11" type="MeshInstance3D" parent="Rings" unique_id=482743723]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 22.5)
cast_shadow = 0
mesh = SubResource("5")

[node name="12" type="MeshInstance3D" parent="Rings" unique_id=655974884]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 30)
cast_shadow = 0
mesh = SubResource("4")

[node name="13" type="MeshInstance3D" parent="Rings" unique_id=635914509]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 37.5)
cast_shadow = 0
mesh = SubResource("5")

[node name="14" type="MeshInstance3D" parent="Rings" unique_id=1492842686]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 45)
cast_shadow = 0
mesh = SubResource("4")

[node name="Road" type="MeshInstance3D" parent="." unique_id=653721320]
transform = Transform3D(0.2, 0, 0, 0, 1.204, 0, 0, 0, 2.806, 0, -20, 0)
mesh = SubResource("PlaneMesh_tiw4t")
6 changes: 5 additions & 1 deletion project.godot
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ compatibility/default_parent_skeleton_in_mesh_instance_3d=true
[application]

config/name="Rhythia"
config/version="0.1.1"
config/version="0.1.2"
run/main_scene="uid://cyrs54b4ot1p8"
config/use_custom_user_dir=true
config/custom_user_dir_name="Rhythia"
Expand Down Expand Up @@ -68,6 +68,10 @@ folder_colors={
"res://user/": "pink"
}

[gui]

timers/tooltip_delay_sec=0.1

[input_devices]

pointing/android/enable_long_press_as_right_click=true
Expand Down
7 changes: 4 additions & 3 deletions scenes/game.tscn
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
[gd_scene format=3 uid="uid://vp1nmsiqt5yv"]

[ext_resource type="Script" uid="uid://8s0npsnw42ce" path="res://scripts/scenes/LegacyRunner.cs" id="1_1hgss"]
[ext_resource type="ArrayMesh" uid="uid://ceww5w8t33lqy" path="res://user/meshes/squircle.obj" id="2_e1j6l"]
[ext_resource type="Texture2D" uid="uid://b3g4aw54n6bow" path="res://user/skins/default/game/grid.png" id="2_q78ea"]
[ext_resource type="Script" uid="uid://okqdw5gj567n" path="res://scripts/game/LegacyRenderer.cs" id="3_ew8wr"]
[ext_resource type="Texture2D" uid="uid://3e1tjlr4m0wt" path="res://user/skins/default/game/cursor.png" id="3_negii"]
Expand All @@ -11,6 +10,7 @@
[ext_resource type="Texture2D" uid="uid://4x2vfpyjkri6" path="res://user/skins/default/game/health.png" id="7_wjg6i"]
[ext_resource type="Texture2D" uid="uid://dmc5f6ajp8xv1" path="res://user/skins/default/game/progress_background.png" id="8_eu3ux"]
[ext_resource type="Shader" uid="uid://dsysoy6w8ndnk" path="res://scripts/shaders/video_background.gdshader" id="8_ocxsu"]
[ext_resource type="ArrayMesh" uid="uid://uqxu6tq6xhhg" path="res://user/meshes/squircle.obj" id="9_e1j6l"]
[ext_resource type="Texture2D" uid="uid://d3s17ehomjscd" path="res://user/skins/default/game/progress.png" id="9_nde5v"]
[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"]
Expand Down Expand Up @@ -85,16 +85,16 @@ font_color = Color(1, 1, 1, 0.8)

[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_73q55"]
transparency = 1
cull_mode = 2
shading_mode = 0
specular_mode = 2
disable_fog = true
vertex_color_use_as_albedo = true
vertex_color_is_srgb = true

[sub_resource type="MultiMesh" id="MultiMesh_almyi"]
transform_format = 1
use_colors = true
mesh = ExtResource("2_e1j6l")
mesh = ExtResource("9_e1j6l")

[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_a6jk1"]
resource_name = "Material"
Expand Down Expand Up @@ -520,6 +520,7 @@ vertical_alignment = 1
[node name="ProgressMask" type="Control" parent="PauseHud/PauseVP/Control" unique_id=1572831027]
clip_contents = true
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
Expand Down
17 changes: 11 additions & 6 deletions scenes/main_menu.tscn
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,10 @@ bg_color = Color(1, 1, 1, 1)
font = ExtResource("5_hl5e0")
font_size = 36

[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_k5xsf"]
content_margin_left = 4.0
content_margin_right = 4.0

[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_5gt56"]
bg_color = Color(0, 0, 0, 0.0627451)

Expand Down Expand Up @@ -414,25 +418,26 @@ layout_mode = 2

[node name="Header" type="Label" parent="Menus/Home/News/VBoxContainer" unique_id=1350479761]
layout_mode = 2
text = "0.1.1 (early-26feb22)"
text = "0.1.2 (early-26apr30)"
label_settings = SubResource("LabelSettings_0uejd")
horizontal_alignment = 1
vertical_alignment = 1

[node name="RichTextLabel" type="RichTextLabel" parent="Menus/Home/News/VBoxContainer" unique_id=473981233]
custom_minimum_size = Vector2(0, 400)
custom_minimum_size = Vector2(0, 480)
layout_mode = 2
theme = ExtResource("6_engjn")
theme_override_constants/line_separation = 2
theme_override_constants/paragraph_separation = 6
theme_override_fonts/normal_font = ExtResource("7_6h3lr")
theme_override_styles/normal = SubResource("StyleBoxEmpty_k5xsf")
bbcode_enabled = true
text = "[font_size=28][b]FEATURES[/b][font_size=18]
+ Support for image files other than PNG & JPG[br]+ Reset to defaults setting[br]+ Display FPS setting[br]+ Parallax setting now applies to Spin mode[br]* Non-PHXM maps are now imported on startup (SSPM & TXT)
+ Galaxy space[br]+ Tunnel space[br]+ Cursor Rotation setting[br]+ Cursor Opacity setting[br]+ Space to Pause setting[br]+ Local Offset setting[br]+ More volume settings[br]+ Super Simple HUD setting[br]+ Hold R to exit map keybind[br]+ F1 to open wiki keybind[br]+ Ctrl + M to mute keybind[br]+ Miss sounds[br]+ Menu music (currently empty, replace menu.mp3 to your skin folder)[br]* Changed Fade Out setting to a slider & updated its behaviour to work more like Fade In[br]* Added support for nightly colorset format
[font_size=28][b]FIXES[/b][font_size=18]
* Gameplay performance improvements (~25-35% increase)[br]* Improved map importing (faster and more reliable)[br]* Waves space coloring is more consistent[br]* Pressing ESC to close settings is more reliable[br]* Absolute input made more accurate[br]* Map preview no longer inverted[br]* Spin no longer displays a placeholder mod icon in gameplay
* Fixed comma decimal separator number formatting[br]* Fixed Start From slider with comma decimal separator[br]* Fixed map info covers resizing after import[br]* Fixed map list not updating on map deletion[br]* Safer cover & skin texture loading[br]* Safer note color parsing[br]* Fixed maps failing to import on systems with <4 threads[br]* Dynamic song resyncing during gameplay[br]* Fixed song progress bar incremental update delay[br]* Fixed double Esc to open game menu after opening settings[br]* Fixed flickering notes in replays[br]* Fixed clicking outside the update popup causing a softlock[br]* Fixed displayed selected profile inaccurate[br]* Fixed number range settings imprecision[br]* Fixed song search bar not focusing on key press after using slider
[font_size=28][b]MISC[/b][font_size=18]
* Set default window size to 1280x720"
* Cap framerate at 30 when unfocused[br]* Allow windowed mode to be resized"
shortcut_keys_enabled = false

[node name="Panel" type="Panel" parent="Menus/Home/News/VBoxContainer/RichTextLabel" unique_id=1035549202]
Expand Down Expand Up @@ -1662,7 +1667,7 @@ grow_vertical = 2
theme_override_fonts/normal_font = ExtResource("19_c6nra")
theme_override_font_sizes/normal_font_size = 18
bbcode_enabled = true
text = "Rhythia [font_size=12][color=ffffffa0]early-26aprXX"
text = "Rhythia [font_size=12][color=ffffffa0]0.1.2 (early-26apr30)"
shortcut_keys_enabled = false
vertical_alignment = 1

Expand Down
14 changes: 9 additions & 5 deletions scripts/FileInitializer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,13 @@ public override void _Ready()
objExporter = new Node();
AddChild(objExporter);
objExporter.SetScript(script);


// Temporary for 0.1.2 as the mesh's faces were fixed
if (File.Exists($"{Constants.USER_FOLDER}/meshes/squircle.obj"))
{
File.Delete($"{Constants.USER_FOLDER}/meshes/squircle.obj");
}

deepCopy();
}

Expand All @@ -26,10 +32,8 @@ private void deepCopy(string resDir = "")
Directory.CreateDirectory(userDir);
}


foreach (string resFile in DirAccess.GetFilesAt($"res://user{resDir}"))
{

string userFile = $"{userDir}/{resFile}";
string ext = resFile.GetExtension();

Expand All @@ -51,7 +55,6 @@ private void deepCopy(string resDir = "")

foreach (string resFile in ResourceLoader.ListDirectory($"res://user{resDir}").Where(x => x.Last() != '/'))
{

string userFile = $"{userDir}/{resFile}";
string ext = resFile.GetExtension();

Expand All @@ -78,10 +81,11 @@ private void deepCopy(string resDir = "")
Logger.Error($"[{resFile}] {resource.GetType().Name} is not supported for the user folder.");
continue;
}

File.WriteAllBytes(userFile, buffer);
}

foreach (string dir in Godot.DirAccess.GetDirectoriesAt($"res://user{resDir}"))
foreach (string dir in DirAccess.GetDirectoriesAt($"res://user{resDir}"))
{
deepCopy($"{resDir}/{dir}");
}
Expand Down
13 changes: 8 additions & 5 deletions scripts/SoundManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -41,11 +41,11 @@ public override void _Ready()
{
Instance = this;

HitSound = new();
MissSound = new();
FailSound = new();
Song = new();
MenuMusic = new();
HitSound = new() { Name = "Hit" };
MissSound = new() { Name = "Miss" };
FailSound = new() { Name = "Fail" };
Song = new() { Name = "Song" };
MenuMusic = new() { Name = "Menu" };

HitSound.MaxPolyphony = 16;
MissSound.MaxPolyphony = 16;
Expand Down Expand Up @@ -329,6 +329,7 @@ public static bool ToggleJukeboxPause()
if (Song != null && (Song.Playing || Song.StreamPaused))
{
Song.StreamPaused = !Song.StreamPaused;
JukeboxPanel.Instance.UpdateMap(Map);
return Song.StreamPaused;
}

Expand Down Expand Up @@ -427,6 +428,8 @@ public static void RefreshMenuMusicPlayback()
return;
}

JukeboxPanel.Instance?.UpdateMap(Map);

if (menuMusicPausedByUser)
{
if (MenuMusic.Playing && !MenuMusic.StreamPaused)
Expand Down
4 changes: 2 additions & 2 deletions scripts/database/settings/SettingsProfile.cs
Original file line number Diff line number Diff line change
Expand Up @@ -537,7 +537,7 @@ public SettingsProfile()
UpdateAction = (_, init) => { if (!init) { SkinManager.Load(); } },
List = new("skin")
{
Values = ["skin", "void", "grid", "squircles", "waves", "galaxy"]
Values = ["skin", "void", "grid", "squircles", "waves", "galaxy", "tunnel"]
}
};

Expand All @@ -550,7 +550,7 @@ public SettingsProfile()
UpdateAction = (_, init) => { if (!init) { SkinManager.Load(); } },
List = new("skin")
{
Values = ["skin", "void", "grid", "squircles", "waves", "galaxy"]
Values = ["skin", "void", "grid", "squircles", "waves", "galaxy", "tunnel"]
}
};

Expand Down
Loading