Compare commits
4 Commits
experiment
...
2025.822.0
| Author | SHA1 | Date | |
|---|---|---|---|
| 490137405f | |||
| f3c6f53f70 | |||
| 8cb5c682b4 | |||
| c3d79295d3 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -19,6 +19,7 @@ bld/
|
|||||||
[Bb]in/
|
[Bb]in/
|
||||||
[Oo]bj/
|
[Oo]bj/
|
||||||
[Ll]og/
|
[Ll]og/
|
||||||
|
[Pp]ub/
|
||||||
|
|
||||||
# Visual Studio 2015 cache/options directory
|
# Visual Studio 2015 cache/options directory
|
||||||
.vs/
|
.vs/
|
||||||
|
|||||||
36
.vscode/launch.json
vendored
36
.vscode/launch.json
vendored
@@ -7,9 +7,9 @@
|
|||||||
"request": "launch",
|
"request": "launch",
|
||||||
"program": "dotnet",
|
"program": "dotnet",
|
||||||
"args": [
|
"args": [
|
||||||
"${workspaceRoot}/osu.Desktop/bin/Debug/net8.0/osu!.dll"
|
"${workspaceFolder}/osu.Desktop/bin/Debug/net8.0/osu!.dll"
|
||||||
],
|
],
|
||||||
"cwd": "${workspaceRoot}",
|
"cwd": "${workspaceFolder}",
|
||||||
"preLaunchTask": "Build osu! (Debug)",
|
"preLaunchTask": "Build osu! (Debug)",
|
||||||
"console": "internalConsole"
|
"console": "internalConsole"
|
||||||
},
|
},
|
||||||
@@ -19,9 +19,9 @@
|
|||||||
"request": "launch",
|
"request": "launch",
|
||||||
"program": "dotnet",
|
"program": "dotnet",
|
||||||
"args": [
|
"args": [
|
||||||
"${workspaceRoot}/osu.Desktop/bin/Release/net8.0/osu!.dll"
|
"${workspaceFolder}/osu.Desktop/bin/Release/net8.0/osu!.dll"
|
||||||
],
|
],
|
||||||
"cwd": "${workspaceRoot}",
|
"cwd": "${workspaceFolder}",
|
||||||
"preLaunchTask": "Build osu! (Release)",
|
"preLaunchTask": "Build osu! (Release)",
|
||||||
"console": "internalConsole"
|
"console": "internalConsole"
|
||||||
},
|
},
|
||||||
@@ -31,9 +31,9 @@
|
|||||||
"request": "launch",
|
"request": "launch",
|
||||||
"program": "dotnet",
|
"program": "dotnet",
|
||||||
"args": [
|
"args": [
|
||||||
"${workspaceRoot}/osu.Game.Tests/bin/Debug/net8.0/osu.Game.Tests.dll"
|
"${workspaceFolder}/osu.Game.Tests/bin/Debug/net8.0/osu.Game.Tests.dll"
|
||||||
],
|
],
|
||||||
"cwd": "${workspaceRoot}",
|
"cwd": "${workspaceFolder}",
|
||||||
"preLaunchTask": "Build tests (Debug)",
|
"preLaunchTask": "Build tests (Debug)",
|
||||||
"console": "internalConsole"
|
"console": "internalConsole"
|
||||||
},
|
},
|
||||||
@@ -43,9 +43,9 @@
|
|||||||
"request": "launch",
|
"request": "launch",
|
||||||
"program": "dotnet",
|
"program": "dotnet",
|
||||||
"args": [
|
"args": [
|
||||||
"${workspaceRoot}/osu.Game.Tests/bin/Release/net8.0/osu.Game.Tests.dll"
|
"${workspaceFolder}/osu.Game.Tests/bin/Release/net8.0/osu.Game.Tests.dll"
|
||||||
],
|
],
|
||||||
"cwd": "${workspaceRoot}",
|
"cwd": "${workspaceFolder}",
|
||||||
"preLaunchTask": "Build tests (Release)",
|
"preLaunchTask": "Build tests (Release)",
|
||||||
"console": "internalConsole"
|
"console": "internalConsole"
|
||||||
},
|
},
|
||||||
@@ -55,10 +55,10 @@
|
|||||||
"request": "launch",
|
"request": "launch",
|
||||||
"program": "dotnet",
|
"program": "dotnet",
|
||||||
"args": [
|
"args": [
|
||||||
"${workspaceRoot}/osu.Desktop/bin/Debug/net8.0/osu!.dll",
|
"${workspaceFolder}/osu.Desktop/bin/Debug/net8.0/osu!.dll",
|
||||||
"--tournament"
|
"--tournament"
|
||||||
],
|
],
|
||||||
"cwd": "${workspaceRoot}",
|
"cwd": "${workspaceFolder}",
|
||||||
"preLaunchTask": "Build osu! (Debug)",
|
"preLaunchTask": "Build osu! (Debug)",
|
||||||
"console": "internalConsole"
|
"console": "internalConsole"
|
||||||
},
|
},
|
||||||
@@ -68,10 +68,10 @@
|
|||||||
"request": "launch",
|
"request": "launch",
|
||||||
"program": "dotnet",
|
"program": "dotnet",
|
||||||
"args": [
|
"args": [
|
||||||
"${workspaceRoot}/osu.Desktop/bin/Release/net8.0/osu!.dll",
|
"${workspaceFolder}/osu.Desktop/bin/Release/net8.0/osu!.dll",
|
||||||
"--tournament"
|
"--tournament"
|
||||||
],
|
],
|
||||||
"cwd": "${workspaceRoot}",
|
"cwd": "${workspaceFolder}",
|
||||||
"preLaunchTask": "Build osu! (Release)",
|
"preLaunchTask": "Build osu! (Release)",
|
||||||
"console": "internalConsole"
|
"console": "internalConsole"
|
||||||
},
|
},
|
||||||
@@ -81,10 +81,10 @@
|
|||||||
"request": "launch",
|
"request": "launch",
|
||||||
"program": "dotnet",
|
"program": "dotnet",
|
||||||
"args": [
|
"args": [
|
||||||
"${workspaceRoot}/osu.Game.Tournament.Tests/bin/Debug/net8.0/osu.Game.Tournament.Tests.dll",
|
"${workspaceFolder}/osu.Game.Tournament.Tests/bin/Debug/net8.0/osu.Game.Tournament.Tests.dll",
|
||||||
"--tournament"
|
"--tournament"
|
||||||
],
|
],
|
||||||
"cwd": "${workspaceRoot}",
|
"cwd": "${workspaceFolder}",
|
||||||
"preLaunchTask": "Build tournament tests (Debug)",
|
"preLaunchTask": "Build tournament tests (Debug)",
|
||||||
"console": "internalConsole"
|
"console": "internalConsole"
|
||||||
},
|
},
|
||||||
@@ -94,10 +94,10 @@
|
|||||||
"request": "launch",
|
"request": "launch",
|
||||||
"program": "dotnet",
|
"program": "dotnet",
|
||||||
"args": [
|
"args": [
|
||||||
"${workspaceRoot}/osu.Game.Tournament.Tests/bin/Debug/net8.0/osu.Game.Tournament.Tests.dll",
|
"${workspaceFolder}/osu.Game.Tournament.Tests/bin/Debug/net8.0/osu.Game.Tournament.Tests.dll",
|
||||||
"--tournament"
|
"--tournament"
|
||||||
],
|
],
|
||||||
"cwd": "${workspaceRoot}",
|
"cwd": "${workspaceFolder}",
|
||||||
"preLaunchTask": "Build tournament tests (Release)",
|
"preLaunchTask": "Build tournament tests (Release)",
|
||||||
"console": "internalConsole"
|
"console": "internalConsole"
|
||||||
},
|
},
|
||||||
@@ -105,12 +105,12 @@
|
|||||||
"name": "Benchmark",
|
"name": "Benchmark",
|
||||||
"type": "coreclr",
|
"type": "coreclr",
|
||||||
"request": "launch",
|
"request": "launch",
|
||||||
"program": "${workspaceRoot}/osu.Game.Benchmarks/bin/Release/net8.0/osu.Game.Benchmarks.dll",
|
"program": "${workspaceFolder}/osu.Game.Benchmarks/bin/Release/net8.0/osu.Game.Benchmarks.dll",
|
||||||
"args": [
|
"args": [
|
||||||
"--filter",
|
"--filter",
|
||||||
"*"
|
"*"
|
||||||
],
|
],
|
||||||
"cwd": "${workspaceRoot}",
|
"cwd": "${workspaceFolder}",
|
||||||
"preLaunchTask": "Build benchmarks",
|
"preLaunchTask": "Build benchmarks",
|
||||||
"console": "internalConsole"
|
"console": "internalConsole"
|
||||||
}
|
}
|
||||||
|
|||||||
19
MakeInstaller.ps1
Normal file
19
MakeInstaller.ps1
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
#!/usr/bin/env powershell
|
||||||
|
param (
|
||||||
|
[string]$Version,
|
||||||
|
[string]$BuildConfig = "Release"
|
||||||
|
)
|
||||||
|
|
||||||
|
if ($Version -eq "") {
|
||||||
|
Write-Host "Usage: .\MakeInstaller.ps1 <VERSION_NUMBER> [-BuildConfig <BUILD_CONFIG>]"
|
||||||
|
Write-Host "Example: .\MakeInstaller.ps1 2025.823.0 -BuildConfig Debug"
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
$tmpPub = ".\pub"
|
||||||
|
if (-not (Test-Path -Path $tmpPub)) {
|
||||||
|
New-Item -ItemType Directory -path $tmpPub
|
||||||
|
}
|
||||||
|
|
||||||
|
dotnet publish -c $BuildConfig osu.Desktop --self-contained -r win-x64 -o $tmpPub -verbosity:m /p:Version=$Version
|
||||||
|
vpk pack --packId jvnkosu.Client --packTitle "jvnkosu!lazer" --packVersion $Version --packDir ./pub --mainExe="osu!.exe"
|
||||||
@@ -115,10 +115,12 @@ namespace osu.Desktop
|
|||||||
if (IsFirstRun)
|
if (IsFirstRun)
|
||||||
LocalConfig.SetValue(OsuSetting.ReleaseStream, ReleaseStream.Lazer);
|
LocalConfig.SetValue(OsuSetting.ReleaseStream, ReleaseStream.Lazer);
|
||||||
|
|
||||||
if (IsPackageManaged)
|
// if (IsPackageManaged)
|
||||||
return new NoActionUpdateManager();
|
// return new NoActionUpdateManager();
|
||||||
|
|
||||||
return new VelopackUpdateManager();
|
// return new VelopackUpdateManager();
|
||||||
|
|
||||||
|
return new NoActionUpdateManager(); // for now, APIs are useless for actually downloading the releases. TODO: adapt UpdateManager for gitea
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool RestartAppWhenExited()
|
public override bool RestartAppWhenExited()
|
||||||
|
|||||||
@@ -78,6 +78,20 @@ Your experience will not be perfect, and may even feel subpar compared to games
|
|||||||
|
|
||||||
Please bear with us as we continue to improve the game for you!");
|
Please bear with us as we continue to improve the game for you!");
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// "Welcome to jvnkosu!lazer!"
|
||||||
|
/// </summary>
|
||||||
|
public static LocalisableString GreetingNotification => new TranslatableString(getKey(@"greeting_notification"), @"Welcome to jvnkosu!lazer!");
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// "Failed to load backgrounds!\nCheck your internet connection"
|
||||||
|
/// </summary>
|
||||||
|
public static LocalisableString SeasonalBackgroundsFail => new TranslatableString(getKey(@"seasonal_backgrounds_fail"), @"Failed to load backgrounds!\nCheck your internet connection"); // TODO: implement l10n in osu-resources
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// "Successfully refreshed background categories!"
|
||||||
|
/// </summary>
|
||||||
|
public static LocalisableString SeasonalBackgroundsRefreshed => new TranslatableString(getKey(@"seasonal_backgrounds_refreshed"), @"Successfully refreshed background categories!");
|
||||||
private static string getKey(string key) => $@"{prefix}:{key}";
|
private static string getKey(string key) => $@"{prefix}:{key}";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -64,16 +64,26 @@ namespace osu.Game.Localisation
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public static LocalisableString BackgroundSource => new TranslatableString(getKey(@"background_source"), @"Background source");
|
public static LocalisableString BackgroundSource => new TranslatableString(getKey(@"background_source"), @"Background source");
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// "Use custom backgrounds from server"
|
||||||
|
/// </summary>
|
||||||
|
public static LocalisableString UseSeasonalBackgrounds => new TranslatableString(getKey(@"use_seasonal_backgrounds"), @"Use custom backgrounds from server");
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// "Seasonal backgrounds"
|
/// "Seasonal backgrounds"
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static LocalisableString SeasonalBackgrounds => new TranslatableString(getKey(@"seasonal_backgrounds"), @"Seasonal backgrounds");
|
public static LocalisableString SeasonalBackgrounds => new TranslatableString(getKey(@"seasonal_backgrounds"), @"Seasonal backgrounds");
|
||||||
|
|
||||||
/*/// <summary>
|
/// <summary>
|
||||||
/// "Seasonal backgrounds"
|
/// "Background categories"
|
||||||
/// </summary>*/
|
/// </summary>
|
||||||
/* public static LocalisableString SeasonalBackgroundsCategories => new TranslatableString(getKey(@"seasonal_backgrounds_categories"), @"Seasonal backgrounds categories");
|
public static LocalisableString SeasonalBackgroundsCategories => new TranslatableString(getKey(@"seasonal_backgrounds_categories"), @"Background categories");
|
||||||
*/
|
|
||||||
|
/// <summary>
|
||||||
|
/// "Refresh categories"
|
||||||
|
/// </summary>
|
||||||
|
public static LocalisableString SeasonalBackgroundsRefresh => new TranslatableString(getKey(@"seasonal_backgrounds_refresh"), @"Refresh categories");
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// "Changes to this setting will only apply with an active osu!supporter tag."
|
/// "Changes to this setting will only apply with an active osu!supporter tag."
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ namespace osu.Game.Online.API.Requests
|
|||||||
public class GetMenuContentRequest : OsuJsonWebRequest<APIMenuContent>
|
public class GetMenuContentRequest : OsuJsonWebRequest<APIMenuContent>
|
||||||
{
|
{
|
||||||
public GetMenuContentRequest()
|
public GetMenuContentRequest()
|
||||||
: base(@"https://assets.ppy.sh/menu-content.json")
|
: base(@"https://osu.jvnko.boats/uploads/menu-content.json") // TODO: backend
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -415,8 +415,9 @@ namespace osu.Game
|
|||||||
{
|
{
|
||||||
Notifications?.Post(new SimpleNotification
|
Notifications?.Post(new SimpleNotification
|
||||||
{
|
{
|
||||||
Text = "Ñïèñîê êàòåãîðèé ôîíîâ îáíîâëåí.",
|
Text = ButtonSystemStrings.SeasonalBackgroundsRefreshed,
|
||||||
Icon = FontAwesome.Solid.CheckCircle
|
Icon = FontAwesome.Solid.CheckCircle,
|
||||||
|
Transient = true
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -946,7 +947,7 @@ namespace osu.Game
|
|||||||
|
|
||||||
protected virtual Loader CreateLoader() => new Loader();
|
protected virtual Loader CreateLoader() => new Loader();
|
||||||
|
|
||||||
protected virtual UpdateManager CreateUpdateManager() => new UpdateManager();
|
protected virtual UpdateManager CreateUpdateManager() => new NoActionUpdateManager();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Adjust the globally applied <see cref="DrawSizePreservingFillContainer.TargetDrawSize"/> in every <see cref="ScalingContainer"/>.
|
/// Adjust the globally applied <see cref="DrawSizePreservingFillContainer.TargetDrawSize"/> in every <see cref="ScalingContainer"/>.
|
||||||
@@ -1205,7 +1206,7 @@ namespace osu.Game
|
|||||||
Margin = new MarginPadding(5),
|
Margin = new MarginPadding(5),
|
||||||
}, topMostOverlayContent.Add);
|
}, topMostOverlayContent.Add);
|
||||||
|
|
||||||
if (!IsDeployedBuild)
|
// if (!IsDeployedBuild) // we're going to have the "developer build" banner for a while
|
||||||
loadComponentSingleFile(devBuildBanner = new DevBuildBanner(), ScreenContainer.Add);
|
loadComponentSingleFile(devBuildBanner = new DevBuildBanner(), ScreenContainer.Add);
|
||||||
|
|
||||||
loadComponentSingleFile(osuLogo, _ =>
|
loadComponentSingleFile(osuLogo, _ =>
|
||||||
@@ -1358,10 +1359,11 @@ namespace osu.Game
|
|||||||
{
|
{
|
||||||
Schedule(() =>
|
Schedule(() =>
|
||||||
{
|
{
|
||||||
Notifications?.Post(new SimpleNotification
|
Notifications?.Post(new SimpleErrorNotification
|
||||||
{
|
{
|
||||||
Text = "Íå óäàëîñü çàãðóçèòü ôîíû. Ïðîâåðüòå ïîäêëþ÷åíèå ê èíòåðíåòó.",
|
Text = ButtonSystemStrings.SeasonalBackgroundsFail,
|
||||||
Icon = FontAwesome.Solid.ExclamationTriangle
|
Icon = FontAwesome.Solid.ExclamationTriangle,
|
||||||
|
Transient = true
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -1735,7 +1737,8 @@ namespace osu.Game
|
|||||||
introScreen = intro;
|
introScreen = intro;
|
||||||
SimpleNotification notification = new SimpleNotification
|
SimpleNotification notification = new SimpleNotification
|
||||||
{
|
{
|
||||||
Text = "Welcome to jvnkosu!lazer!",
|
Text = ButtonSystemStrings.GreetingNotification,
|
||||||
|
Transient = true,
|
||||||
};
|
};
|
||||||
Notifications?.Post(notification);
|
Notifications?.Post(notification);
|
||||||
devBuildBanner?.Show();
|
devBuildBanner?.Show();
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ namespace osu.Game.Overlays
|
|||||||
Origin = Anchor.BottomCentre,
|
Origin = Anchor.BottomCentre,
|
||||||
Font = OsuFont.Torus.With(size: 12),
|
Font = OsuFont.Torus.With(size: 12),
|
||||||
Colour = colours.GrayF,
|
Colour = colours.GrayF,
|
||||||
Text = "jvnkosu! development build",
|
Text = $@"jvnkosu! " + game.Version,
|
||||||
Y = -12,
|
Y = -12,
|
||||||
},
|
},
|
||||||
new OsuSpriteText
|
new OsuSpriteText
|
||||||
|
|||||||
@@ -40,19 +40,19 @@ namespace osu.Game.Overlays.Settings.Sections.UserInterface
|
|||||||
|
|
||||||
var backgroundToggle = new SettingsCheckbox
|
var backgroundToggle = new SettingsCheckbox
|
||||||
{
|
{
|
||||||
LabelText = "Пользовательские фоны",
|
LabelText = UserInterfaceStrings.UseSeasonalBackgrounds,
|
||||||
Current = enabledProxyBindable
|
Current = enabledProxyBindable
|
||||||
};
|
};
|
||||||
|
|
||||||
var categoryDropdown = new SettingsDropdown<string>
|
var categoryDropdown = new SettingsDropdown<string>
|
||||||
{
|
{
|
||||||
LabelText = "Категория фонов",
|
LabelText = UserInterfaceStrings.SeasonalBackgroundsCategories,
|
||||||
Current = config.GetBindable<string>(OsuSetting.BackgroundCategory)
|
Current = config.GetBindable<string>(OsuSetting.BackgroundCategory)
|
||||||
};
|
};
|
||||||
|
|
||||||
var refreshButton = new SettingsButton
|
var refreshButton = new SettingsButton
|
||||||
{
|
{
|
||||||
Text = "Обновить список категорий",
|
Text = UserInterfaceStrings.SeasonalBackgroundsRefresh,
|
||||||
Action = () => backgroundLoader.RefreshCategories()
|
Action = () => backgroundLoader.RefreshCategories()
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ namespace osu.Game.Updater
|
|||||||
ReleaseStream stream = externalReleaseStream ?? ReleaseStream.Value;
|
ReleaseStream stream = externalReleaseStream ?? ReleaseStream.Value;
|
||||||
bool includePrerelease = stream == Configuration.ReleaseStream.Tachyon;
|
bool includePrerelease = stream == Configuration.ReleaseStream.Tachyon;
|
||||||
|
|
||||||
OsuJsonWebRequest<GitHubRelease[]> releasesRequest = new OsuJsonWebRequest<GitHubRelease[]>("https://api.github.com/repos/ppy/osu/releases?per_page=10&page=1");
|
OsuJsonWebRequest<GitHubRelease[]> releasesRequest = new OsuJsonWebRequest<GitHubRelease[]>("https://gitea.jvnko.boats/api/v1/repos/jvnkosu/client/releases?limit=10&page=1");
|
||||||
await releasesRequest.PerformAsync(cancellationToken).ConfigureAwait(false);
|
await releasesRequest.PerformAsync(cancellationToken).ConfigureAwait(false);
|
||||||
|
|
||||||
GitHubRelease[] releases = releasesRequest.ResponseObject;
|
GitHubRelease[] releases = releasesRequest.ResponseObject;
|
||||||
|
|||||||
@@ -69,9 +69,10 @@ namespace osu.Game.Updater
|
|||||||
if (FixedReleaseStream != null)
|
if (FixedReleaseStream != null)
|
||||||
config.SetValue(OsuSetting.ReleaseStream, FixedReleaseStream.Value);
|
config.SetValue(OsuSetting.ReleaseStream, FixedReleaseStream.Value);
|
||||||
|
|
||||||
// notify the user if they're using a build that is not officially sanctioned.
|
// nope, doesn't matter, we're already not official
|
||||||
if (RuntimeInfo.EntryAssembly.GetCustomAttribute<OfficialBuildAttribute>() == null)
|
// // notify the user if they're using a build that is not officially sanctioned.
|
||||||
Notifications.Post(new SimpleNotification { Text = NotificationsStrings.NotOfficialBuild });
|
// if (RuntimeInfo.EntryAssembly.GetCustomAttribute<OfficialBuildAttribute>() == null)
|
||||||
|
// Notifications.Post(new SimpleNotification { Text = NotificationsStrings.NotOfficialBuild });
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user