Files

40 lines
2.2 KiB
Markdown

# nosingleplayer (mod maison SurviePote)
Désactive le bouton **Solo** du menu principal (Mixin sur `TitleScreen.init`) et adapte l'UI
au serveur unique :
- Menu titre : bouton **Rejoindre SurviePote** (connexion directe à `mcpv.ihorizon.org:25565`,
sans transfert) ; Solo, Multi, Realms, réseau social et icônes bas retirés.
- Menu Échap : le bouton de déconnexion devient **Quitter SurviePote** et renvoie à l'écran
d'accueil du jeu (et non la liste des serveurs).
- MC 26.3, Fabric Loader 0.20.0, Java 25, `environment: client`.
- Particularité 26.x : Mojang ne publie plus de mappings (ni Yarn ni `client_mappings`) et le
jeu n'est plus obfusqué → **pas de Loom**, compilation directe contre le jar client Mojang
(téléchargé au build) + loader/mixin en `compileOnly`. Les noms Mojang passent tels quels,
pas de refmap nécessaire.
Build : `cd mods/nosingleplayer && ./gradlew build` (dans nix-shell racine pour Java 25).
Jar : `build/libs/nosingleplayer-1.2.0.jar` → copié dans `atlas/.../fabricmods/optionalon/`.
## Textures
MC 26.3 n'expose pas les ressources des mods au ResourceManager (vérifié : le panorama
vanilla affiche le stock Mojang, pas les `panorama_*.png` du mod). Les PNG sont donc
lus **dans le jar** et enregistrés via le mécanisme officiel de MC
(`ReloadableTexture` + `TextureContents`) : c'est MC qui crée la texture GPU et le
sampler, exactement comme pour ses propres textures.
⚠️ La texture GPU doit être créée **hors de l'extraction du rendu** (ici dans
`TitleScreen.init`) : la créer pendant l'enregistrement des commandes d'une frame
invalide le frame entier sur les backends à command encoder (Vulkan) → menu titre
**entièrement noir** (constaté sur Windows + NVIDIA).
## Diagnostic
- `-Dsurviepote.customTitle=false` (options JVM du launcher) : repasser au menu **vanilla**
(panorama vanilla au lieu du fond custom). Sert à isoler un souci de rendu du fond custom.
- Le mod log au démarrage du menu : `[SurviePote] Texture enregistrée : … (1920x1200)` et
`[SurviePote] GPU: <nom> | <vendor> | pilote <driver> | backend <OpenGL|Vulkan>`.
- Si le fond custom échoue (texture refusée par le GPU, jar corrompu…), le mod se repli
automatiquement sur le panorama vanilla au lieu de laisser un écran noir.