Commit Graph
12 Commits
Author SHA1 Message Date
Anaïs Saraiva 2bb5b30857 nosingleplayer 1.2.0 : textures créées par MC (fix menu noir Windows/NVIDIA)
Le menu titre rendait entièrement noir sur les PC Windows + NVIDIA
(2 postes) : le mod créait sa texture (DynamicTexture) et son sampler
pendant l'extraction du rendu, et blittait une texture hors atlas.

Correctifs :
- la texture est désormais enregistrée via le mécanisme officiel de MC
  (ReloadableTexture + TextureContents) : c'est MC qui crée la texture
  GPU ET le sampler, comme pour ses propres textures. Plus de sampler
  custom, plus d'upload manuel ;
- la création de la texture GPU est déplacée dans TitleScreen.init, donc
  HORS de l'enregistrement des commandes de la frame (le créer pendant
  l'extraction invalide le frame entier sur les backends à command
  encoder => écran noir) ;
- fond réduit de 3840x2400 à 1920x1200 (36 Mo -> 9 Mo de VRAM) ;
- suppression des 6 panorama_*.png embarqués : MC 26.3 n'expose pas les
  ressources des mods au ResourceManager, ils n'ont jamais été rendus
  (vérifié : le panorama vanilla'affiche le stock Mojang) ;
- jar réduit de 3,6 Mo à 871 Ko.

Vérifié par capture d'écran en jeu : menu OK en OpenGL (Mesa/AMD) et en
Vulkan (lavapipe).

atlas : distribution.json regénérée (nosingleplayer 1.2.0, MD5/URL à
jour) ; retrait de spatial-gui du pack (fait par le repo, documenté dans
server/mods/SOURCE.md).
2026-10-20 00:02:04 +02:00
Anaïs Saraiva 4c7da4cab5 nosingleplayer 1.1.9 : menu titre résilient (repli vanilla) + launcher : plus de console noire Windows
É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).
2026-10-19 23:31:49 +02:00
Anaïs Saraiva 4f95e82812 nosingleplayer 1.1.8 : menu titre rework (boutons icônes, Discord, statut serveur)
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).
2026-10-19 22:08:21 +02:00
Anaïs Saraiva 89e6b6f680 nosingleplayer 1.1.7 : menu titre nettoyé (splash, amis, copyright) + titre de fenêtre
- 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).
2026-10-19 21:31:41 +02:00
Anaïs Saraiva fc80845f5c nosingleplayer 1.1.6 : fond du menu titre enfin affiché
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.
2026-10-19 21:23:41 +02:00
Anaïs Saraiva 8053411565 nosingleplayer 1.1.5: fond en vrai PNG (MC rejette le JPEG) + launcher: autoconnect désactivé 2026-10-19 20:48:49 +02:00
Anaïs Saraiva 058c18c4cb nosingleplayer 1.1.4: retirer completement le bouton Solo (au lieu de le griser) 2026-10-19 19:51:36 +02:00
Anaïs Saraiva 4a48d2c721 nosingleplayer 1.1.3: fix connexion + bouton Quitter SurviePote
- 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.
2026-10-19 18:41:56 +02:00
kisakay e800fde2ca nosingleplayer 1.1.2: fond via Redirect appel (extractPanorama hérité de Screen) 2026-10-18 21:33:51 +02:00
kisakay 3b5e8e7a13 nosingleplayer 1.1.1: fond custom via blit + log debug widgets 2026-10-18 21:14:36 +02:00
kisakay e8e99fdb9d Mod nosingleplayer 1.1.0: menu custom (join serveur, fond wallpaper, sans logo/copyright) 2026-10-18 20:56:36 +02:00
kisakay 11f5976dde Mod maison nosingleplayer 1.0.0 (bouton Solo désactivé) + atlas 2026-10-18 20:36:27 +02:00