Rebuild complet du launcher avec le correctif windowsHide (la console
noire de java.exe ne s'ouvre plus par-dessus le jeu sous Windows).
Version bump 1.1.0 -> 1.1.1, entrée desktop repointée sur le nouvel
AppImage, artefacts dans releases/v1.1.1/.
Écran noir au menu titre sur les PC Windows (2 postes) : dans
TitleScreen.extractRenderState, les widgets sont dessinés juste APRÈS
extractPanorama. Toute exception dans la redirection du panorama
interrompt donc le rendu du menu entier (écran noir, sans bouton).
Mod nosingleplayer 1.1.9 :
- try/catch autour du fond custom + repli automatique sur le panorama
vanilla (avant : écran noir définitif si la texture est refusée par
le GPU ou absente du jar) ;
- try/catch autour de la construction du menu, et les widgets vanilla ne
sont retirés qu'APRÈS la création des widgets SurviePote (avant : une
exception laissait un menu vidé) ;
- ping serveur déplacé sur un thread dédié : il était lancé depuis
extractWidgetRenderState, donc sur le thread de rendu (un DNS lent
suffisait à figer le menu) ;
- log GPU au démarrage du menu (nom/vendor/pilote/backend) ;
- option de diagnostic -Dsurviepote.customTitle=false (menu vanilla).
Launcher : java.exe est lancé avec detached:true sans windowsHide ->
sur Windows, une console noire et vide s'ouvre par-dessus le jeu.
Ajout de windowsHide:true.
atlas : distribution.json regénéré (MD5/URL du nouveau jar).
- Version du launcher 1.0.0 -> 1.1.0 (package.json).
- Artefacts de la release versionnés dans releases/v1.1.0/ :
SurviePote-setup-1.1.0.AppImage (92 Mo) et SurviePote-setup-1.1.0.exe (98 Mo),
construits avec electron-builder (npm run dist -- -l -w).
- Distribution : https://git.kisakay.com/k/mc/raw/branch/main/atlas/root/distribution.json
- Remplace nosingleplayer-1.1.4.jar par nosingleplayer-1.1.8.jar dans
fabricmods/required/ (fond du menu titre, boutons icônes, statut serveur).
- servermeta.json : autoconnect false (le menu titre custom doit s'afficher,
pas la connexion automatique).
- distribution.json régénéré (npm run faststart -- g distro) : nouvel id
fr.surviepote:nosingleplayer:1.1.8@jar, taille et MD5 à jour.
Menu principal :
- Bouton "Join Discord" (logo Discord lissé + texte) sous "Rejoindre
SurviePote", ouvre https://discord.gg/EpkgEPv5c.
- "Options..." et "Quit Game" remplacés par des boutons icônes sans texte
(engrenage / symbole power) qui conservent l'action du bouton vanilla
(ButtonAccessor -> onPress).
- Panneau de statut du serveur en haut à gauche : En ligne / Hors ligne,
joueurs current/max et ping.
Attention : dans ServerStatusPinger.pingServer les 2 Runnable ne sont pas
des callbacks succès/échec (le 1er ne fire que si le favicon change, le
2nd est le pong) -> on lit directement ServerData.status ("0/20" quand le
statut est arrivé, vidé en cas d'échec) + timeout 8s.
- Suppression du texte "26.3 mc" (bas à gauche) : le mixin TitleScreenTextMixin
qui le dessinait est supprimé, la redirection masque le texte de version.
- Suppression du splash, du logo Mojang, des boutons amis/icônes et du
copyright (TitleScreenMixin : FriendsButton/SpriteIconButton/PlainTextButton
sont des sous-classes de Button, ils étaient avalés par "instanceof Button").
Icônes : PNG lisses 64x64 (supersampling 8x8) au lieu du pixel art.
Chargement des textures du mod via ModTextures (les assets des mods ne sont
plus exposés au ResourceManager en MC 26.3).
- Titre de fenêtre : "Minecraft* 26.3" -> "SurviePote [26.3]"
(mixin sur Minecraft.createTitle(), la classe Window a changé de package
en 26.3 : com.mojang.blaze3d.platform.Window).
- Suppression du texte de splash (message rotatif) du menu principal.
- Bouton "amis" (FriendsButton) réellement supprimé : le if/else if de
TitleScreenMixin testait "instanceof Button" en premier, et FriendsButton /
SpriteIconButton / PlainTextButton en héritent -> ils tombaient dans cette
branche et n'étaient jamais retirés. Ordre des tests corrigé (icônes et
texte cliquable testés avant Button).
Trois bugs cumulés, tous vérifiés contre le jar client 26.3 :
1. blit() : l'overload 11 args réutilise w/h comme région source
(u0 = u/tw, u1 = (u+w)/tw) -> on n'affichait que le coin haut-gauche
de l'image (noir). On utilise l'overload 13 args avec une région
source explicite + recadrage "cover" (pas de déformation).
2. Texture introuvable : en MC 26.3 le ResourceManager ne lit plus les
packs depuis les jars du classpath (seulement des dossiers), donc les
assets d'un mod ne sont plus exposés -> placeholder magenta.
Vérifié : "Reloading ResourceManager: vanilla, vanilla" et
namespaces=[minecraft, realms]. Le PNG est donc lu dans le jar du
mod (getResourceAsStream) et uploadé en DynamicTexture, enregistrée
dans le TextureManager.
3. Filtrage : sampler NEAREST par défaut (aliasing visible) -> sampler
linéaire + clamp-to-edge.
Asset : PNG RGBA 3840x2400.
Sur NixOS, sans nix-shell le java systeme manque souvent. Le script detecte
l'absence de Java 25 et se re-execute dans le shell Nix du repo (shell.nix),
avec garde SURVIEPOTE_NIX pour eviter toute boucle.
Le runtime (jars vanilla/Fabric, libraries/, versions/) n'est pas versionne.
- setup.sh / setup.bat : telecharge fabric-installer 1.1.2 et installe
le serveur Fabric (MC 26.3 / Loader 0.20.0) + server.jar vanilla
- start.sh / start.bat : lance setup automatiquement si le runtime manque
- README : premier lancement mis a jour
- teste en dossier vierge : installation OK
- retiré de atlas/.../fabricmods/required/ (clients) et de server/mods-client-only/
- retiré les configs atlas/.../files/config/immersiveores/*.toml
- sync-mods.sh: ImmersiveOres ajouté à ATLAS_EXCLUDE + cleanup serveur/atlas
- docs (SOURCE.md, quarantine/README.md) mises à jour
- distribution.json régénéré (retrait du mod + de ses 3 configs)
- TitleScreenMixin : TransferState null sur startConnecting -> connexion
normale, corrige "This server does not accept transfers".
- PauseScreenMixin (nouveau) : renomme le bouton de deconnexion du menu
Echap en "Quitter SurviePote" et redirige vers l'ecran d'accueil
(TitleScreen) au lieu de la liste des serveurs.
- build.gradle : tache runClient (dev sans loom) reutilisant
~/.surviepote/common.
- Jar 1.1.3 copie dans l'atlas + distribution.json regenere.
La config serveur declare desormais javaOptions (TEMURIN, supported
>=25.x, suggestedMajor 25) au lieu du defaut Helios 21 pour MC >= 1.20.5.
Le launcher exigera/detectera Java 25 et telechargera Temurin 25.x depuis
Adoptium si absent. Genere via `npm run faststart -- generate distro`.