Skip to content

Commit 5f71cef

Browse files
committed
feat: Implement the rest of lazer's settings (except for keybinds)
1 parent 5d55cad commit 5f71cef

File tree

5 files changed

+121
-15
lines changed

5 files changed

+121
-15
lines changed

packages/common/enums/osu.ts

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,7 @@ export enum LazerSettings {
214214
MenuParallax,
215215
Prefer24HourTime,
216216
BeatmapDetailTab,
217+
BeatmapLeaderboardSortMode,
217218
BeatmapDetailModsFilter,
218219
Username,
219220
ReleaseStream,
@@ -294,7 +295,9 @@ export enum LazerSettings {
294295
EditorShowStoryboard,
295296
EditorSubmissionNotifyOnDiscussionReplies,
296297
EditorSubmissionLoadInBrowserAfterSubmission,
297-
WasSupporter
298+
WasSupporter,
299+
LastOnlineTagsPopulation,
300+
AutomaticallyAdjustBeatmapOffset
298301
}
299302

300303
export enum FrameworkSetting {
@@ -341,6 +344,25 @@ export enum LazerBeatmapTabType {
341344
team
342345
}
343346

347+
export enum LazerGroupMode {
348+
none,
349+
artist,
350+
author,
351+
bpm,
352+
collections,
353+
dateAdded,
354+
dateRanked,
355+
difficulty,
356+
// favourites, // Not implemented in lazer yet
357+
lastPlayed,
358+
length,
359+
myMaps,
360+
rankAchieved,
361+
rankedStatus,
362+
source,
363+
title
364+
}
365+
344366
export enum LazerSortMode {
345367
artist,
346368
author,

packages/tosu/src/api/utils/buildResultV2.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import {
66
GameState,
77
GroupType,
88
LazerBeatmapTabType,
9+
LazerGroupMode,
910
LazerSortMode,
1011
LeaderboardType,
1112
ManiaScrollingDirection,
@@ -224,7 +225,10 @@ export const buildResult = (instanceManager: InstanceManager): ApiAnswer => {
224225
},
225226
group: {
226227
number: settings.groupType,
227-
name: GroupType[settings.groupType] || ''
228+
name:
229+
osuInstance.client === ClientType.lazer
230+
? LazerGroupMode[settings.groupType] || ''
231+
: GroupType[settings.groupType] || ''
228232
},
229233

230234
skin: {
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"OsuVersion":"2025.912.0","osu.Game.OsuGame":{"osuLogo":1592,"ScreenStack":1536,"<frameworkConfig>k__BackingField":1464,"channelManager":1312,"SentryLogger":1496},"osu.Framework.Game":{"<Host>k__BackingField":824},"osu.Game.OsuGameBase":{"<API>k__BackingField":1080,"<SpectatorClient>k__BackingField":1192,"<ScoreManager>k__BackingField":1024,"<MultiplayerClient>k__BackingField":1200,"<LeaderboardManager>k__BackingField":1168,"<SessionStatics>k__BackingField":992,"beatmapClock":1232,"<Storage>k__BackingField":1088,"<Beatmap>k__BackingField":1104,"<SkinManager>k__BackingField":1040,"<VersionHash>k__BackingField":976,"<LocalConfig>k__BackingField":984,"rulesetConfigCache":1176,"realm":1216},"osu.Game.Screens.SelectV2.SoloSongSelect":{"<game>k__BackingField":1264},"osu.Game.Screens.Play.SubmittingPlayer":{"<api>k__BackingField":1248,"<spectatorClient>k__BackingField":1256},"osu.Game.Screens.Play.PlayerLoader":{"osuLogo":1168,"<leaderboardManager>k__BackingField":1160},"osu.Game.Screens.Play.SpectatorPlayer":{"score":1264,"<SpectatorClient>k__BackingField":1256},"osu.Game.Beatmaps.FramedBeatmapClock":{"finalClockSource":528,"decoupledTrack":552},"osu.Framework.Timing.DecouplingFramedClock":{"<Source>k__BackingField":24},"osu.Framework.Audio.Track.Track":{"length":72},"osu.Framework.Timing.FramedClock":{"<CurrentTime>k__BackingField":48},"osu.Game.Screens.OsuScreen":{"<logo>k__BackingField":896},"osu.Game.Screens.Ranking.SoloResultsScreen":{"<api>k__BackingField":1040,"SelectedScore":920},"osu.Game.Screens.Edit.Editor":{"<realm>k__BackingField":960,"<api>k__BackingField":1096},"osu.Game.Screens.OnlinePlay.OnlinePlayScreen":{"<API>k__BackingField":960},"osu.Game.Screens.OnlinePlay.Multiplayer.Multiplayer":{"<client>k__BackingField":976},"osu.Game.Online.Multiplayer.MultiplayerRoom":{"<ChannelID>k__BackingField":68},"osu.Game.Screens.Spectate.SpectatorScreen":{"<spectatorClient>k__BackingField":944,"gameplayStates":992},"osu.Game.Screens.OnlinePlay.Multiplayer.Spectate.MultiSpectatorScreen":{"<multiplayerClient>k__BackingField":1032},"osu.Game.Online.Multiplayer.OnlineMultiplayerClient":{"<IsConnected>k__BackingField":736},"osu.Game.Online.Multiplayer.MultiplayerClient":{"room":648},"osu.Game.Screens.Play.Player":{"<api>k__BackingField":1008,"<scoreManager>k__BackingField":1000,"<Score>k__BackingField":1152,"<ScoreProcessor>k__BackingField":1096,"<HealthProcessor>k__BackingField":1104,"<HUDOverlay>k__BackingField":1120,"<DrawableRuleset>k__BackingField":1112,"dependencies":1168},"osu.Framework.Screens.ScreenStack":{"stack":800},"osu.Game.Rulesets.RulesetConfigCache":{"configCache":520},"osu.Game.Online.Chat.ExternalLinkOpener":{"<api>k__BackingField":536},"osu.Game.Online.API.APIAccess":{"<localUser>k__BackingField":592,"game":504},"osu.Desktop.OsuGameDesktop":{"AvailableMods":1128,"SelectedMods":1120,"Ruleset":1112},"osu.Game.Scoring.ScoreInfo":{"<OnlineID>k__BackingField":184,"<LegacyOnlineID>k__BackingField":192,"<ModsJson>k__BackingField":80,"<HitEvents>k__BackingField":120,"<RealmUser>k__BackingField":72,"<TotalScore>k__BackingField":160,"<MaxCombo>k__BackingField":204,"<Combo>k__BackingField":212,"<Passed>k__BackingField":220,"<Ruleset>k__BackingField":48,"<Accuracy>k__BackingField":176,"<Date>k__BackingField":256,"statistics":128,"maximumStatistics":136,"user":112},"osu.Framework.Platform.Storage":{"<BasePath>k__BackingField":8},"osu.Game.IO.WrappedStorage":{"<UnderlyingStorage>k__BackingField":16},"osu.Game.Beatmaps.WorkingBeatmapCache+BeatmapManagerWorkingBeatmap":{"BeatmapInfo":8,"BeatmapSetInfo":16},"osu.Game.Models.RealmUser":{"<Username>k__BackingField":24,"<OnlineID>k__BackingField":40},"osu.Game.Rulesets.RulesetInfo":{"<OnlineID>k__BackingField":48},"osu.Game.Screens.Play.SoloPlayer":{"RestartCount":916},"osu.Game.Rulesets.Osu.Scoring.OsuScoreProcessor":{"Combo":592},"osu.Game.Rulesets.Scoring.ScoreProcessor":{"hitEvents":648},"osu.Game.Online.API.Requests.Responses.APIMe":{"PlayMode":136},"osu.Game.Online.API.Requests.Responses.APIUser":{"<Id>k__BackingField":232,"<Username>k__BackingField":8,"countryCodeString":32,"statistics":160},"osu.Game.Online.Chat.ChannelManager":{"joinedChannels":800},"osu.Game.Online.Chat.Channel":{"Id":96,"Messages":16},"osu.Game.Online.Chat.Message":{"Timestamp":88,"Content":8,"Sender":16},"osu.Game.Users.UserStatistics":{"RankedScore":32,"GlobalRank":84,"PlayCount":56,"Accuracy":40,"Level":76,"PP":104},"osu.Game.Rulesets.Osu.Scoring.OsuHealthProcessor":{"Health":560},"osu.Game.Screens.Play.HUDOverlay":{"InputCountController":840},"osu.Game.Screens.Play.HUD.InputCountController":{"triggers":512},"osu.Game.Rulesets.UI.DrawableRuleset":{"<ReplayScore>k__BackingField":808},"osu.Game.Beatmaps.BeatmapInfo":{"<OnlineID>k__BackingField":140,"<MD5Hash>k__BackingField":88,"<StatusInt>k__BackingField":136,"<Metadata>k__BackingField":48,"<Difficulty>k__BackingField":40,"<DifficultyName>k__BackingField":24,"<TotalObjectCount>k__BackingField":148,"<Hash>k__BackingField":80},"osu.Game.Beatmaps.BeatmapSetInfo":{"<OnlineID>k__BackingField":48},"osu.Game.Beatmaps.BeatmapMetadata":{"<Title>k__BackingField":24,"<TitleUnicode>k__BackingField":32,"<Artist>k__BackingField":40,"<ArtistUnicode>k__BackingField":48,"<Author>k__BackingField":56,"<Source>k__BackingField":64,"<Tags>k__BackingField":72,"<UserTags>k__BackingField":80,"<PreviewTime>k__BackingField":104,"<AudioFile>k__BackingField":88,"<BackgroundFile>k__BackingField":96},"osu.Game.Beatmaps.BeatmapDifficulty":{"<DrainRate>k__BackingField":40,"<CircleSize>k__BackingField":44,"<OverallDifficulty>k__BackingField":48,"<ApproachRate>k__BackingField":52,"<SliderMultiplier>k__BackingField":24,"<SliderTickRate>k__BackingField":32},"osu.Game.Online.Multiplayer.MultiplayerRoomUser":{"UserID":40,"<State>k__BackingField":44,"<BeatmapAvailability>k__BackingField":8,"<Mods>k__BackingField":16,"<MatchState>k__BackingField":24,"RulesetId":48,"BeatmapId":56,"<User>k__BackingField":32},"osu.Game.Skinning.SkinManager":{"CurrentSkin":80},"osu.Game.Skinning.Skin":{"<Name>k__BackingField":64},"osu.Framework.Platform.GameHost":{"<inputConfig>k__BackingField":48},"osu.Framework.Configuration.InputConfigManager":{"<InputHandlers>k__BackingField":32},"osu.Framework.Input.Handlers.Tablet.OpenTabletDriverHandler":{"<AreaOffset>k__BackingField":72,"<AreaSize>k__BackingField":80,"<Rotation>k__BackingField":104,"<PressureThreshold>k__BackingField":112},"osu.Framework.Input.Handlers.Mouse.MouseHandler":{"<UseRelativeMode>k__BackingField":40},"osu.Game.Utils.SentryLogger":{"sentrySession":16},"Sentry.SentrySdk+DisposeHandle":{"_localHub":8},"Sentry.Internal.Hub":{"_options":32},"Sentry.SentryOptions":{"<Release>k__BackingField":176}}
1+
{"OsuVersion":"2025.912.0","osu.Game.OsuGame":{"osuLogo":1592,"ScreenStack":1536,"<frameworkConfig>k__BackingField":1464,"channelManager":1312,"SentryLogger":1496},"osu.Framework.Game":{"<Host>k__BackingField":824},"osu.Game.OsuGameBase":{"<API>k__BackingField":1080,"<SpectatorClient>k__BackingField":1192,"<ScoreManager>k__BackingField":1024,"<MultiplayerClient>k__BackingField":1200,"<LeaderboardManager>k__BackingField":1168,"<SessionStatics>k__BackingField":992,"beatmapClock":1232,"<Storage>k__BackingField":1088,"<Beatmap>k__BackingField":1104,"<SkinManager>k__BackingField":1040,"<VersionHash>k__BackingField":976,"<LocalConfig>k__BackingField":984,"rulesetConfigCache":1176,"realm":1216,"chatOverlay":1304},"osu.Game.Screens.SelectV2.SoloSongSelect":{"<game>k__BackingField":1264},"osu.Game.Screens.Play.SubmittingPlayer":{"<api>k__BackingField":1248,"<spectatorClient>k__BackingField":1256},"osu.Game.Screens.Play.PlayerLoader":{"osuLogo":1168,"<leaderboardManager>k__BackingField":1160},"osu.Game.Screens.Play.SpectatorPlayer":{"score":1264,"<SpectatorClient>k__BackingField":1256},"osu.Game.Beatmaps.FramedBeatmapClock":{"finalClockSource":528,"decoupledTrack":552},"osu.Framework.Timing.DecouplingFramedClock":{"<Source>k__BackingField":24},"osu.Framework.Audio.Track.Track":{"length":72},"osu.Framework.Timing.FramedClock":{"<CurrentTime>k__BackingField":48},"osu.Game.Screens.OsuScreen":{"<logo>k__BackingField":896},"osu.Game.Screens.Ranking.SoloResultsScreen":{"<api>k__BackingField":1040,"SelectedScore":920},"osu.Game.Screens.Edit.Editor":{"<realm>k__BackingField":960,"<api>k__BackingField":1096},"osu.Game.Screens.OnlinePlay.OnlinePlayScreen":{"<API>k__BackingField":960},"osu.Game.Screens.OnlinePlay.Multiplayer.Multiplayer":{"<client>k__BackingField":976},"osu.Game.Online.Multiplayer.MultiplayerRoom":{"<ChannelID>k__BackingField":68},"osu.Game.Screens.Spectate.SpectatorScreen":{"<spectatorClient>k__BackingField":944,"gameplayStates":992},"osu.Game.Screens.OnlinePlay.Multiplayer.Spectate.MultiSpectatorScreen":{"<multiplayerClient>k__BackingField":1032},"osu.Game.Online.Multiplayer.OnlineMultiplayerClient":{"<IsConnected>k__BackingField":736},"osu.Game.Online.Multiplayer.MultiplayerClient":{"room":648},"osu.Game.Overlays.ChatOverlay":{"State":808},"osu.Game.Screens.Menu.OsuLogo":{"visualizer":928},"osu.Game.Screens.Menu.MenuLogoVisualisation":{"frequencyAmplitudes":504},"osu.Game.Screens.Play.Player":{"<api>k__BackingField":1008,"<scoreManager>k__BackingField":1000,"<Score>k__BackingField":1152,"<ScoreProcessor>k__BackingField":1096,"<HealthProcessor>k__BackingField":1104,"<HUDOverlay>k__BackingField":1120,"<DrawableRuleset>k__BackingField":1112,"dependencies":1168},"osu.Framework.Screens.ScreenStack":{"stack":800},"osu.Game.Rulesets.RulesetConfigCache":{"configCache":520},"osu.Game.Online.Chat.ExternalLinkOpener":{"<api>k__BackingField":536},"osu.Game.Online.API.APIAccess":{"<localUser>k__BackingField":592,"game":504},"osu.Desktop.OsuGameDesktop":{"AvailableMods":1128,"SelectedMods":1120,"Ruleset":1112},"osu.Game.Scoring.ScoreInfo":{"<OnlineID>k__BackingField":184,"<LegacyOnlineID>k__BackingField":192,"<ModsJson>k__BackingField":80,"<HitEvents>k__BackingField":120,"<RealmUser>k__BackingField":72,"<TotalScore>k__BackingField":160,"<MaxCombo>k__BackingField":204,"<Combo>k__BackingField":212,"<Passed>k__BackingField":220,"<Ruleset>k__BackingField":48,"<Accuracy>k__BackingField":176,"<Date>k__BackingField":256,"statistics":128,"maximumStatistics":136,"user":112},"osu.Framework.Platform.Storage":{"<BasePath>k__BackingField":8},"osu.Game.IO.WrappedStorage":{"<UnderlyingStorage>k__BackingField":16},"osu.Game.Beatmaps.WorkingBeatmapCache+BeatmapManagerWorkingBeatmap":{"BeatmapInfo":8,"BeatmapSetInfo":16},"osu.Game.Models.RealmUser":{"<Username>k__BackingField":24,"<OnlineID>k__BackingField":40},"osu.Game.Rulesets.RulesetInfo":{"<OnlineID>k__BackingField":48},"osu.Game.Screens.Play.SoloPlayer":{"RestartCount":916},"osu.Game.Rulesets.Osu.Scoring.OsuScoreProcessor":{"Combo":592},"osu.Game.Rulesets.Scoring.ScoreProcessor":{"hitEvents":648},"osu.Game.Online.API.Requests.Responses.APIMe":{"PlayMode":136},"osu.Game.Online.API.Requests.Responses.APIUser":{"<Id>k__BackingField":232,"<Username>k__BackingField":8,"countryCodeString":32,"statistics":160},"osu.Game.Online.Chat.ChannelManager":{"joinedChannels":800},"osu.Game.Online.Chat.Channel":{"Id":96,"Messages":16},"osu.Game.Online.Chat.Message":{"Timestamp":88,"Content":8,"Sender":16},"osu.Game.Users.UserStatistics":{"RankedScore":32,"GlobalRank":84,"PlayCount":56,"Accuracy":40,"Level":76,"PP":104},"osu.Game.Rulesets.Osu.Scoring.OsuHealthProcessor":{"Health":560},"osu.Game.Screens.Play.HUDOverlay":{"InputCountController":840,"<ShowHud>k__BackingField":880},"osu.Game.Screens.Play.HUD.InputCountController":{"triggers":512},"osu.Game.Rulesets.UI.DrawableRuleset":{"<ReplayScore>k__BackingField":808},"osu.Game.Beatmaps.BeatmapInfo":{"<OnlineID>k__BackingField":140,"<MD5Hash>k__BackingField":88,"<StatusInt>k__BackingField":136,"<Metadata>k__BackingField":48,"<Difficulty>k__BackingField":40,"<DifficultyName>k__BackingField":24,"<TotalObjectCount>k__BackingField":148,"<Hash>k__BackingField":80},"osu.Game.Beatmaps.BeatmapSetInfo":{"<OnlineID>k__BackingField":48},"osu.Game.Beatmaps.BeatmapMetadata":{"<Title>k__BackingField":24,"<TitleUnicode>k__BackingField":32,"<Artist>k__BackingField":40,"<ArtistUnicode>k__BackingField":48,"<Author>k__BackingField":56,"<Source>k__BackingField":64,"<Tags>k__BackingField":72,"<UserTags>k__BackingField":80,"<PreviewTime>k__BackingField":104,"<AudioFile>k__BackingField":88,"<BackgroundFile>k__BackingField":96},"osu.Game.Beatmaps.BeatmapDifficulty":{"<DrainRate>k__BackingField":40,"<CircleSize>k__BackingField":44,"<OverallDifficulty>k__BackingField":48,"<ApproachRate>k__BackingField":52,"<SliderMultiplier>k__BackingField":24,"<SliderTickRate>k__BackingField":32},"osu.Game.Online.Multiplayer.MultiplayerRoomUser":{"UserID":40,"<State>k__BackingField":44,"<BeatmapAvailability>k__BackingField":8,"<Mods>k__BackingField":16,"<MatchState>k__BackingField":24,"RulesetId":48,"BeatmapId":56,"<User>k__BackingField":32},"osu.Game.Skinning.SkinManager":{"CurrentSkin":80},"osu.Game.Skinning.Skin":{"<Name>k__BackingField":64},"osu.Framework.Platform.GameHost":{"<inputConfig>k__BackingField":48},"osu.Framework.Configuration.InputConfigManager":{"<InputHandlers>k__BackingField":32},"osu.Framework.Input.Handlers.Tablet.OpenTabletDriverHandler":{"<AreaOffset>k__BackingField":72,"<AreaSize>k__BackingField":80,"<Rotation>k__BackingField":104,"<PressureThreshold>k__BackingField":112},"osu.Framework.Input.Handlers.Mouse.MouseHandler":{"<UseRelativeMode>k__BackingField":40},"osu.Game.Utils.SentryLogger":{"sentrySession":16},"Sentry.SentrySdk+DisposeHandle":{"_localHub":8},"Sentry.Internal.Hub":{"_options":32},"Sentry.SentryOptions":{"<Release>k__BackingField":176}}

packages/tosu/src/instances/lazerInstance.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,7 @@ export class LazerInstance extends AbstractInstance {
195195
const {
196196
global,
197197
menu,
198+
bassDensity,
198199
beatmapPP,
199200
gameplay,
200201
resultScreen,
@@ -288,8 +289,7 @@ export class LazerInstance extends AbstractInstance {
288289

289290
switch (global.status) {
290291
case GameState.menu:
291-
// FIXME: TODO
292-
// bassDensity.updateState();
292+
bassDensity.updateState();
293293
break;
294294

295295
case GameState.edit:

0 commit comments

Comments
 (0)