Repository navigation
Feature Main Menu Logo
The Minecraft main menu shows the Dungeon Train wordmark instead of the vanilla "MINECRAFT" logo, with the "Java Edition" subtitle removed. Renders at 343×41 px (≈ 1.25× vanilla LOGO_WIDTH), centered, top edge nudged 5 px below the vanilla logo origin. The panorama fade-in alpha is honored, so the wordmark fades in with the background panorama animation just like the vanilla logo.
The Mojang vertical-flash intro (which reuses the same LogoRenderer) also picks up the new wordmark.
The first frame after launching the game: panorama background, Dungeon Train wordmark fading in centred slightly below where the MINECRAFT logo used to sit, no edition subtitle. The randomised yellow splash text and bottom-row buttons are unchanged.
Vanilla LogoRenderer.renderLogo() blits assets/minecraft/textures/gui/title/minecraft.png as two stacked 155×44 tiles from a 256×64 atlas (UVs (0, 0) and (0, 45)), then blits edition.png underneath. Dropping a single-row 1440×173 wordmark into the texture path makes the vanilla blit show only the leftmost ~10% of the artwork, twice — useless.
MainMenuLogoMixin @Inject(at = HEAD, cancellable = true) on LogoRenderer.renderLogo(GuiGraphics, int, float, int) does three things and then ci.cancel()s vanilla:
-
RenderSystem.setShaderColor(1, 1, 1, alpha)so the panorama fade-in still drives the logo's transparency. - One
GuiGraphics.blitof the full 1440×173 source at343×41on screen, centered, atyOffset + 5. - Reset shader colour to opaque white.
Cancelling vanilla also drops the edition.png blit, which is the desired behaviour — no "Java Edition" subtitle, no extra wiring needed.
| Path | Purpose |
|---|---|
MainMenuLogoMixin.java |
The mixin |
assets/minecraft/textures/gui/title/minecraft.png |
1440×173 RGBA wordmark, transparent background |
dungeontrain.mixins.json |
Registers client.MainMenuLogoMixin
|
All knobs are constants at the top of MainMenuLogoMixin:
| Constant | Value | Effect |
|---|---|---|
DT_DEST_W |
LogoRenderer.LOGO_WIDTH * 1.25 ≈ 343 |
On-screen logo width in px. Height auto-derives from the source aspect (1440:173). |
DT_Y_SHIFT |
5 |
Extra vertical offset added to the vanilla yOffset before rendering. |
Source dimensions (DT_SRC_W, DT_SRC_H) hardcode the texture's pixel size — change these if the wordmark file is replaced with a different resolution.
- No interaction with Valkyrien Skies / Sable. UI-only, no block/collision/entity touch points.
-
Affects every consumer of
LogoRenderer. In 1.21.1 that's the title screen and the Mojang intro flash — both desirable. -
Mod-pack collision risk. Any other mod that mixins
LogoRenderer.renderLogowith@Inject(HEAD)may conflict. None known at time of merge. -
Resource pack override. Texture lives at the vanilla path; a player resource pack putting its own
minecraft.pngat the same path will win over the mod jar (vanilla resource priority order). Removing or replacing the file does not restore the vanilla layout — the mixin still cancels vanilla's two-tile blit; the only way to revert is to disable the mixin.