67 lines
3.8 KiB
Markdown
67 lines
3.8 KiB
Markdown
# beta.039 — connaissance alimentaire, panoramas et têtes numérotées
|
||
|
||
Contrat établi avant modification. Branche `codex/food-knowledge-beta039`.
|
||
Minecraft 26.3-pre-2 ; les autres travaux présents dans le dépôt sont conservés.
|
||
|
||
## Connaissance alimentaire
|
||
|
||
L’aptitude « Connaissance alimentaire » coûte quatre niveaux d’XP. Elle révèle
|
||
les apports avant dégustation. Sans elle, finir de consommer un aliment apprend
|
||
ses valeurs ; le tenir, le fabriquer, le planter, le donner à un animal ou
|
||
interrompre la consommation ne suffit pas. Les infobulles et les aperçus du HUD
|
||
suivent la même règle. Les réserves actuelles de faim et saturation restent
|
||
visibles. Les recettes et le droit de manger restent libres.
|
||
|
||
Un attachement serveur additif `sanctuary:food_knowledge`, schéma 1, mémorise
|
||
les identifiants goûtés et le reçu d’achat. Il se sauvegarde avec l’XP, se copie
|
||
à la mort et reste au New Game+. Aucun changement du schéma de progression ni
|
||
des anciens achats. À la première lecture, les critères réussis de l’advancement
|
||
Minecraft « Une alimentation équilibrée » peuvent attester une consommation,
|
||
uniquement si leur prédicat correspond à un seul type d’aliment. Une donnée
|
||
invalide est conservée et bloque l’écriture. Aucune sauvegarde personnelle
|
||
n’est modifiée pendant les travaux.
|
||
|
||
## Captures de panorama
|
||
|
||
Une option de capture permet d’utiliser la touche de screenshot pour produire
|
||
les six faces `panorama_0.png` à `panorama_5.png`, à 90° selon l’ordre Minecraft.
|
||
Chaque capture utilise un nouveau dossier, sans écraser d’images. Le mode normal
|
||
reste celui par défaut. Export complémentaire demandé : profondeur et masque de
|
||
brume reconstitué, avec paramètres de projection/fog pour rendre le calcul
|
||
explicite. Le moteur ne possède pas de texture de fog indépendante.
|
||
|
||
## Têtes numérotées et skin
|
||
|
||
Une nouvelle tête porte le pseudo suivi du numéro de mort, depuis le compteur
|
||
Minecraft `deaths` : première mort « Poupoutain 1 ». L’indice est figé au décès,
|
||
conservé au transport et au vidage. Les morts antérieures comptent ; le prestige
|
||
ne remet pas ce compteur à zéro. Les anciennes têtes sans indice affichent leur
|
||
nom sans inventer de numéro rétroactif. Le champ `death_number` est additif au
|
||
marqueur de tombe schéma 1. Les informations de mort et le retrait seul restent.
|
||
Le rendu cosmétique utilise le renderer natif des têtes, son cache de skins et
|
||
le profil stocké sur la tête.
|
||
|
||
## Validation
|
||
|
||
`./gradlew check build assemblePack assembleTestPack` passe, avec **68 tests
|
||
serveur** ciblant l’accueil, la connaissance alimentaire, les tombes, la
|
||
progression, les inventaires, les accessoires, le cycle, les recettes et le temps
|
||
réel. Les 14 784 comparaisons entre aperçu alimentaire et consommation native
|
||
restent valides.
|
||
|
||
Le parcours client natif vérifie les infobulles cachées/apprises, un véritable
|
||
achat à quatre niveaux, le renderer de tête lié au cache du propriétaire,
|
||
l’ouverture des options et deux captures successives de six faces à 256×256.
|
||
Chaque face fournit couleur PNG, profondeur PNG 16 bits, profondeur brute
|
||
float32 little-endian (`depth_N.f32`) et brume PNG 16 bits. `capture.json` décrit
|
||
l’ordre des faces, les matrices, la convention de profondeur inversée et les
|
||
paramètres du brouillard. Le test vérifie la profondeur des surfaces, la
|
||
projection, la restauration de la caméra/fenêtre/FOV et le screenshot normal.
|
||
|
||
Résolutions proposées : 256, 512, 1 024 (défaut), 2 048 pixels par face.
|
||
Le masque reconstruit la brume du terrain à partir de sa profondeur : transparence,
|
||
nuages, particules et shaders externes peuvent différer du rendu final. Il ne
|
||
constitue pas un buffer de fog natif séparé. Les six vues conservent la brume
|
||
visible. Captures et exports vérifiés dans `build/food039-evidence/release/`.
|
||
Pas de déploiement dans une installation personnelle.
|