feat: introduce MainMenuV2#637
Open
Acivev wants to merge 60 commits into
Open
Conversation
There was a problem hiding this comment.
Pull request overview
This PR introduces MainMenuV2, a rewritten main menu scene inspired by osu!lazer, and rewires multiple entry/exit points (song select, lobby, settings, beatmap listing, back/exit handling) to coexist with or transition into the new menu. It also adds new visual components (spectrum ring, side flashes, star fountains, CatJam overlay) plus supporting primitives/settings.
Changes:
- Add
MainMenuV2and new menu components (logo effects, spectrum visualizer with quality levels, side flashes, star fountain, music player panel). - Add reusable rendering primitive
UIGradientBoxand a custom CatJam circle-mask shader/sprite pipeline. - Wire the app flow to use
MainMenuV2(song menu back, lobby back, settings interactions, beatmap listing music control) and add a graphics setting for spectrum quality.
Reviewed changes
Copilot reviewed 19 out of 22 changed files in this pull request and generated 10 comments.
Show a summary per file
| File | Description |
|---|---|
| src/ru/nsu/ccfit/zuev/osu/menu/SongMenu.java | Redirect song menu “back” flow to MainMenuV2. |
| src/ru/nsu/ccfit/zuev/osu/MainScene.java | Redirect legacy MainScene.show() to MainMenuV2 when present. |
| src/ru/nsu/ccfit/zuev/osu/MainActivity.java | Instantiate MainMenuV2, set it as the initial scene, and route replay/banner/exit handling to it. |
| src/ru/nsu/ccfit/zuev/osu/GlobalManager.java | Add global storage/accessors for MainMenuV2; remove eager MainScene creation in init(). |
| src/ru/nsu/ccfit/zuev/osu/Config.java | Add kiaiCatJam toggle and spectrum quality preference getters/setters. |
| src/com/reco1l/andengine/ui/UIGradientBox.kt | New gradient rectangle primitive using per-vertex alpha. |
| src/com/osudroid/ui/v2/multi/LobbyScene.kt | Route lobby “back” to MainMenuV2. |
| src/com/osudroid/ui/v1/SettingsFragment.kt | Refresh online/timing via MainMenuV2 and use it as the “old scene” for HUD editor autoplay launch. |
| src/com/osudroid/beatmaplisting/BeatmapListing.kt | Route preview pause/resume music control via MainMenuV2. |
| src/com/acivev/ui/menu/main/StarFountain.kt | New kiai-triggered particle fountain effect. |
| src/com/acivev/ui/menu/main/Spectrum.kt | New single-VBO spectrum ring with quality throttling options. |
| src/com/acivev/ui/menu/main/SideFlashes.kt | New beat/kiai-driven side gradient flash effect. |
| src/com/acivev/ui/menu/main/MusicPlayerPanel.kt | New collapsible now-playing panel with seek + controls. |
| src/com/acivev/ui/menu/main/MainMenuV2.kt | New main menu scene implementation and app navigation entry points. |
| src/com/acivev/ui/menu/main/Logo.kt | New logo behavior (beat pulse, kiai burst, CatJam toggle/overlay, spectrum integration). |
| src/com/acivev/ui/menu/main/KiaiCatJamSprite.kt | Sprite implementation for CatJam frames clipped to a circle via shader. |
| src/com/acivev/andengine/opengl/CatJamMaskedShader.kt | GLSL shader used by the CatJam sprite masking approach. |
| res/xml/settings_graphics.xml | Add spectrum visualizer quality setting. |
| res/values/strings_temporary_for_locals.xml | Add strings/arrays for spectrum quality preference UI. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…nly checking the first
…r-frame VBO re-uploads
…ver returns with mainMenuV2 null
… update-thread latch
…) to avoid update thread hitch
…) in SettingsFragment
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Replaces the legacy MainScene menu with a fully rewritten main menu
inspired by osu!lazer :3
New components:
Changes: