Record Sanctuary sources through beta.060 and Git validation
Build Sanctuary / build (push) Canceled after 0s

This commit is contained in:
koka
2026-09-15 09:29:11 +02:00
parent 1490fb2a80
commit e13f3cc1b8
1372 changed files with 92055 additions and 212 deletions
+140
View File
@@ -0,0 +1,140 @@
# beta.003 — premier habitant et première aptitude
Livraison locale d'essai, 13 septembre 2026.
Minecraft **26.3-pre-2**, Fabric Loader **0.19.5**, Fabric API **0.160.0+26.3**.
Aucun ajout de JEI, Xaero ou autre dépendance non vérifiée pour cette cible.
## Essayer
Importer `build/Sanctuary-beta.003.mrpack`, puis créer un **nouveau monde
Sanctuary**. La fiche HELLO_WORLD apparaît avant l'entrée en jeu : skin et
pseudo du compte, bio facultative, couleur personnelle. Des boutons Minecraft
classiques portent leur code en SGA, avec seulement les glyphes teintés de la
couleur correspondante ; linfobulle garde le code hexadécimal classique.
Convention Sanctuary : les chiffres `0..F` correspondent aux seize glyphes
SGA `A..P`, car la police vanilla ne contient pas de chiffres. Six glyphes
conservent donc exactement les 24 bits RGB, sans symbole manquant. Après validation,
le serveur annonce `helloworld {pseudo}` une seule fois.
Le **Blocodex s'ouvre avec B ou depuis Échap**. Il regroupe la fiche, les
améliorations, l'histoire personnelle et le catalogue de blocs existant.
L'onglet Progression sépare les **compétences à gauche** des **aptitudes à
droite**, dans une liste à défilement indépendant. Les six compétences sont
Vie, Faim, Minage, Construction, Souffle et Inventaire (Health, Hunger, Mining,
Building, Breath, Inventory en anglais). Minage, Construction et Inventaire
sont indiquées **À venir**, sans achat : leurs mécaniques feront l'objet du
prochain ticket, conformément au choix du créateur. Noms et S'asseoir figurent
dans les aptitudes.
Il ne demande aucun item à fabriquer. Le livre de recettes de l'inventaire
reste accessible ; son remplacement visuel appartient à la suite des menus.
- Départ : 3 cœurs, 3 icônes de nourriture, 3 bulles sous l'eau.
- Sept améliorations par capacité, jusqu'à 10 ; prix provisoires
`1, 2, 4, 8, 16, 32, 64` niveaux. Le premier cœur coûte donc 1 niveau.
- **Noms des mobs** : 4 niveaux. Révèle le nom de la créature visée.
Les étiquettes posées par les joueurs gardent la priorité.
- **S'asseoir** : gratuit dès le départ. Deux appuis brefs sur Accroupir,
en restant immobile au sol, ou bouton de la fiche. Accroupir pour se relever.
- Une mort conserve les achats. Les orbes vanilla contiennent par défaut
70 % des points d'XP disponibles et peuvent être ramassées par tout joueur.
`keepInventory` garde son effet habituel.
## Configuration serveur
Les fichiers sont créés au premier démarrage d'un monde Sanctuary dans
`config/sanctuary/`. Les réglages de progression nécessitent un redémarrage.
Exemple complet de `progression.json` :
```json
{
"schema": 1,
"enableExistingWorlds": false,
"initialColors": 20,
"statCosts": [1, 2, 4, 8, 16, 32, 64],
"namesCost": 4,
"deathXpFraction": 0.7
}
```
`mob-names.json` permet d'ajouter ou de remplacer les familles de noms de 26.2
pour chaque identifiant d'entité, y compris ceux des futurs mods :
```json
{
"schema": 1,
"enabled": true,
"types": {
"minecraft:zombie": {
"includeDefaults": true,
"names": ["PoupouLeZombie", "AncienExplorateur"]
},
"minecraft:cow": {
"includeDefaults": false,
"names": ["Marguerite", "Rosalie"]
}
}
}
```
Recharger avec **`/sanctuary names reload`**, depuis la console ou un compte
opérateur. Une configuration invalide conserve la dernière configuration
valide et produit une erreur explicite. Limites : 256 types, 128 noms par type,
64 caractères par nom, fichier de 60 000 octets maximum. Les caractères de
contrôle et codes de formatage sont refusés. Les étiquettes restent prioritaires.
Changer une liste peut changer les noms déterministes déjà affichés.
La palette s'étend lorsqu'elle est pleine. Aucune attribution antérieure
n'est déplacée. L'adoption d'une sauvegarde beta.002 ou alpha est volontaire,
sans modifier ses chunks : voir le [contrat de données](progression-beta003-contract.md).
## Vérifications
Essais macOS / Java 25, dans les répertoires de développement ignorés :
- `./gradlew check build --continue` exécuté : contrôles purs réussis, dont
identités, concurrence des couleurs, extension de palette, corruption
refusée, persistance, rangs et courbe d'XP. La suite native générale donne
**37/39**, dont **4/4 nouveaux GameTests de progression réussis** : capacités,
nourriture et sprint, achats autoritaires et idempotents, respawn, siège
gratuit, noms configurables et permissions opérateur.
- Les deux échecs sont les assertions worldgen déjà consignées dans
[le versionnement](versioning.md) : hauteur attendue de 384 au lieu de 640
dans `populationTerrainAndNaturalSpawnRemainPresent`, et support sous un
sédiment de graine 0 dans `retainedHydrologySurvivesNativeDecoration`.
**Le contrôle global n'est donc pas vert.** Ce ticket ne les corrige pas.
- `./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true
-PsanctuaryProgressionClientTests=true` réussit sur le code final : véritable
HELLO_WORLD avant l'apparition et l'annonce d'arrivée, 3/3/3, achat d'un
cœur puis de Noms, noms personnalisés et priorité des étiquettes, accès B
et Échap, six compétences, défilement indépendant des aptitudes et contrôles
de dimensions aux deux échelles de GUI. Une mort réelle puis un redémarrage
conservent la fiche et les deux achats sans répéter l'accueil. Le test
vérifie aussi 6 069 points d'XP laissés pour un solde de niveau 60.
- Les captures natives finales ont été inspectées : boutons Minecraft à
glyphes SGA colorés, six compétences à gauche et liste d'aptitudes à droite.
Copies dans `build/beta003-preview/`.
- `./gradlew assemblePack -x check` réussit après ces contrôles : JAR final,
versions et index packwiz vérifiés. Les contrôles déjà exécutés ne sont
pas relancés pendant cet assemblage.
- Export packwiz vérifié : CRC ZIP, versions interne et externe `beta.003`,
unique JAR Sanctuary identique au build, classes et mixins attendus,
ressources JSON et clés FR/EN, empreinte de Fabric API et index packwiz.
L'archive ne contient ni monde, ni réglage personnel, ni mod de test.
**[MRpack local](../build/Sanctuary-beta.003.mrpack)** — 2 208 926 octets.
SHA-256 : `2b31d67befb4838d0f6da307c3ac0d1dfe5ba41978e9d8b73d5c2983108b9db0`.
JAR SHA-256 : `44544793d318d2be8bf5cdc6ab4e80d752b886debcf383bedca04ed04da0ae1d`.
Reçu : `build/progression003-artifact.json`.
Journaux : `build/beta003-check-build.log`,
`build/progression-client-final.log`, `build/beta003-assemble-pack.log`.
Les essais Windows et une session entre plusieurs clients distants restent
ouverts ; le parcours client validé utilise le serveur intégré natif.
## Suite ouverte
Prestige/NG+, overlay des points de vie des mobs, découverte des items et
entités dans le catalogue, nouveaux moyens d'XP, carte, recettes communautaires,
étoiles, factions et connexion Web restent des tickets distincts. L'historique
présente les faits de cette première progression ; il n'est pas encore une
timeline unifiée de Demeure, de l'Atlas et du Web.