MojangLogoAnimation
A Fabric mod that replaces the static Mojang Studios logo on the splash screen with a smooth frame-by-frame animation.
Dependencies
Architecture
This mod uses a data-driven animation system built around a clean separation of concerns:
ISplashScreenAnimationData — Interface defining animation metadata (frame count, timing, sound, textures). New animation types can be added by implementing this interface.
FolderAnimationData — A record implementation that resolves textures from textures/gui/title/{id}/ and sound events via the gui.title.{id} naming convention.
AnimationPlayer — Encapsulates all animation state (frame progression, sound playback, lifecycle). Runs animation on a daemon thread with thread-safe access via AtomicInteger/AtomicBoolean.
SplashLoader — Registry for animation data. Animations are pre-registered during client initialization since the splash screen renders during resource loading.
SplashOverlayMixin — A thin Mixin layer that delegates all logic to AnimationPlayer. The Mixin itself holds no animation knowledge.
Adding a new animation requires only:
- Place frame textures in
textures/gui/title/{id}/
- Place sound in
sounds/gui/title/{id}.ogg
- Register with
splashLoader.register(new FolderAnimationData("id", frameCount))
Preview
