# 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: | | pilote | backend `. - 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.