Skip to content

aa - #96

Merged
winnerspiros merged 2 commits into
winnerspiros:masterfrom
ppy:master
Mar 26, 2026
Merged

aa#96
winnerspiros merged 2 commits into
winnerspiros:masterfrom
ppy:master

Conversation

@winnerspiros

@winnerspiros winnerspiros commented Mar 26, 2026

Copy link
Copy Markdown
Owner

Summary by CodeRabbit

  • Bug Fixes

    • Gameplay readiness now requires the game window to be active.
  • Style

    • Beatmap set display in song selection now animates margin transitions smoothly when toggling visibility.
    • Filter control layout has been restructured for improved visual consistency and spacing.

peppy and others added 2 commits March 26, 2026 09:12
Reported [on
discord](https://discord.com/channels/188630481301012481/1097318920991559880/1462402881658294355).
Not sure if this has been turned into an issue anywhere.

Fixes awkward looking padding at the bottom of `FilterControl` by having
`ScopedBeatmapSetDisplay` apply the top padding on its own instead of
relying on the spacing of its parent fill flow. This way, the padding is
animated away when the scoped display disappears, instead of remaining
because the component is still technically there.

| Before | After |
|--------|--------|
| <img width="1123" height="247" alt="image"
src="https://github.com/user-attachments/assets/edadd97e-cada-4378-98b7-cc85bfa01fb5"
/> | <img width="1120" height="246" alt="image"
src="https://github.com/user-attachments/assets/d8daecd0-1dfc-4594-95a4-94327677da89"
/> |


[Screencast_20260325_114439.webm](https://github.com/user-attachments/assets/99bb7083-b2da-40a3-b5a0-d94476e7c1ac)

I don't really like how `ScopedBeatmapSetDisplay` is now managing its
own spacing in the parent container, but it's tightly tied to the filter
control anyway so it's probably fine.
Copilot AI review requested due to automatic review settings March 26, 2026 12:25
@winnerspiros
winnerspiros merged commit 5469cac into winnerspiros:master Mar 26, 2026
3 of 11 checks passed
@coderabbitai

coderabbitai Bot commented Mar 26, 2026

Copy link
Copy Markdown

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: c9c0e0be-69d7-41a5-abe0-ba92a50e160e

📥 Commits

Reviewing files that changed from the base of the PR and between 383264f and 7b99842.

📒 Files selected for processing (3)
  • osu.Game/Screens/Play/PlayerLoader.cs
  • osu.Game/Screens/Select/FilterControl.ScopedBeatmapSetDisplay.cs
  • osu.Game/Screens/Select/FilterControl.cs

📝 Walkthrough

Walkthrough

The changes add host activity checks to gameplay readiness logic, introduce margin animations for filter control state transitions, and restructure the filter UI layout using nested flow containers for improved organization.

Changes

Cohort / File(s) Summary
Gameplay Readiness Condition
osu.Game/Screens/Play/PlayerLoader.cs
Added GameHost dependency and updated ReadyForGameplay logic to require host.IsActive.Value == true alongside existing hover/idle/input-focus and drag conditions.
Filter UI Layout & Animation
osu.Game/Screens/Select/FilterControl.cs, osu.Game/Screens/Select/FilterControl.ScopedBeatmapSetDisplay.cs
Restructured filter control layout into nested ReverseChildIDFillFlowContainer<Drawable> with explicit vertical direction and spacing. Added margin animations in ScopedBeatmapSetDisplay.updateState() during state transitions with easing.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~15 minutes

Poem

A rabbit hops through UI lands so fair,
Adding checks so the game knows we're there! 🐰
Margins dance with a flourish and flair,
Containers reshape with organized care,
Smooth animations float through the air! ✨

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adjusts song-select filter UI layout/spacing around the scoped beatmap set indicator, and prevents gameplay from starting while the host window is inactive.

Changes:

  • Refactors FilterControl layout to apply spacing only between filter controls (not between controls and the scoped set display).
  • Animates ScopedBeatmapSetDisplay margin to introduce/remove vertical separation only when the scoped set is active.
  • Gates PlayerLoader’s “ready for gameplay” condition on GameHost.IsActive.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.

File Description
osu.Game/Screens/Select/FilterControl.cs Reworks container hierarchy to localise vertical spacing to the main filter controls.
osu.Game/Screens/Select/FilterControl.ScopedBeatmapSetDisplay.cs Adds margin transforms to create conditional spacing when a scoped set is shown/hidden.
osu.Game/Screens/Play/PlayerLoader.cs Requires host to be active before considering gameplay “ready”, preventing background-start pushes.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@coderabbitai coderabbitai Bot mentioned this pull request May 12, 2026
Closed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants