Skip to content

Remove the legacy launcher and in-game menu UI, keep every system - #184

Merged
Lynxifyy merged 1 commit into
mainfrom
chore/remove-legacy-ui
Nov 14, 2026
Merged

Lynxifyy merged 1 commit into
mainfrom
chore/remove-legacy-ui

Conversation

@Lynxifyy

@Lynxifyy Lynxifyy commented Nov 14, 2026 •

Copy link
Copy Markdown
Collaborator

What this changes

The launcher's entire visual UI and the in-game Mod Menu UI are removed so a new UI can be dropped in later. Every system they sat on — engine, core managers, settings, mod systems — is kept and still compiles. This PR changes chrome only: no mod, engine or settings behaviour moves.

Net: ~112,000 lines deleted across the parent repo and the sweetloader submodule.

Before → after

app/src/main/res/layout/            94 layouts   →  20 layouts
app/src/main/java/…/ui/  (Java/Kt) 144 files     →  ~27 files (7 are placeholder Activities)
drawable names                    ~167          →  161
sweetloader/src/pl/menu/           6 sources    →  0
sweetloader/third_party/imgui/     14 files     →  0

The 20 kept layouts are the in-game HUD / game-host overlays — they are the mod systems, not launcher chrome. The 7 kept Activities (BaseActivity + Main/Splash/Library/Settings/ModsFullscreen/Crash) exist only as manifest and Intent targets; they draw nothing.

Scope

Launcher UI — delete the 12 screens, the widget kit, the nav/rail shell, the tabs and the splash art; delete the dead legacy drawables (splash_bg_*, launch_bg_*, bg_launch_*, bg_dock_*, ic_nav_*, nav_*) and the dead Widget.Caramel.NavTab / .NavRailTab / .QuickDock* styles.

In-game Mod Menu UI — the menu had three layers and all three are cut:

Layer Removed
Native Dear ImGui src/pl/menu/*, third_party/imgui/, the pl::menu::Frame call in PresentFrameEffect::OnPresentBoundary, the imgui CMake target + link, the NOTICE attribution
Java bridge MinecraftActivity.kt wiring, InbuiltOverlayManager editor state
Launcher overlay widgets the content panels and their tests

DebugMenuOverlay is the F3 overlay mod, not the menu — it stays.

Kept on purpose (a new UI will reuse them): UiTokens, Widget.Caramel.Card*, TextAppearance.Caramel.*, GlowDimens, the generic bg_*/ic_* drawables, PersonalizationManager, and every core.* system.

Submodule pin

sweetloader is bumped from fac14a2 to 3fda389 on branch chore/remove-in-game-menu (its own PR is open separately). The pin is a commit, so scripts/check_submodules.sh stays green.

Tests

Two tests pinned drawables this PR deletes; both were trimmed, not deleted:

  • ButtonPressDrawableTest — now checks only the surviving button_accent.xml
  • RadiusScaleTest — dropped the three removed surfaces from its list

The findViewById hygiene baseline is refreshed (32 → 29).

Verification

Gate Result
./gradlew :app:testDebugUnitTest 3164 tests, 0 failures, 0 errors
./gradlew :app:lintDebug clean
./gradlew :app:assembleDebug SUCCESSFUL (clean .cxx rebuild, produces libsweetloader.so)
scripts/check_ui_hygiene.py unchanged
submodule tests/cosmetics/run_tests.sh all pass
submodule check_sources_listed.py / check_pinned_deps.py pass

The launcher's visual UI is deleted so a new UI can be dropped in; every
system it sat on is kept. Nothing here changes a mod, engine or settings
behaviour - only the chrome that drew them.

Launcher UI
- delete the 12 screens, the widget kit, the nav/rail shell, the tabs and
  the splash art; 94 layouts -> 20 (the kept 20 are the in-game HUD/game
  host overlays that ARE the mod systems)
- keep 7 placeholder Activities (BaseActivity + Main/Splash/Library/
  Settings/ModsFullscreen/Crash) as manifest/Intent targets; they draw
  nothing
- delete the dead legacy drawables (splash_bg_*, launch_bg_*, dock/nav)
  and the dead Widget.Caramel.NavTab/NavRailTab/QuickDock styles
- keep the reusable token/style system (UiTokens, Widget.Caramel.Card*,
  TextAppearance.Caramel.*, GlowDimens, generic bg_*/ic_*)

In-game Mod Menu UI
- bump the sweetloader submodule to chore/remove-in-game-menu, which
  drops the native Dear ImGui menu (src/pl/menu/*, third_party/imgui/)
- drop the Java bridge wiring from MinecraftActivity and the overlay
  manager; the mod systems themselves are untouched

Tests
- trim the two tests that pinned the deleted button drawables
  (ButtonPressDrawableTest, RadiusScaleTest)
- refresh the findViewById hygiene baseline (32 -> 29)
@Lynxifyy
Lynxifyy marked this pull request as ready for review November 14, 2026 21:02
@Lynxifyy
Lynxifyy merged commit cf3c814 into main Nov 14, 2026
4 of 5 checks passed
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.

1 participant