Compare commits
79
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
74dc1265a8 | ||
|
|
678d77fb91 | ||
|
|
97c601cd7f | ||
|
|
a93e261120 | ||
|
|
72f1cf50ae | ||
|
|
6821f6ee12 | ||
|
|
85d274f2ef | ||
|
|
235e3c08b7 | ||
|
|
697e4a205f | ||
|
|
c51e611f4f | ||
|
|
f4d3dad1ca | ||
|
|
653a063b15 | ||
|
|
9d3bc0cee2 | ||
|
|
5c474a8489 | ||
|
|
20d68ea7ee | ||
|
|
bf9b8fca14 | ||
|
|
bacebf8523 | ||
|
|
2a4dcec63d | ||
|
|
1a00a52c50 | ||
|
|
1116b29ceb | ||
|
|
833f14d9f9 | ||
|
|
f90d6e2928 | ||
|
|
8e512502fd | ||
|
|
126a70f217 | ||
|
|
927f961a79 | ||
|
|
850ab17d63 | ||
|
|
68ce6de1ec | ||
|
|
51e539a19a | ||
|
|
79952c3f65 | ||
|
|
0f918899fb | ||
|
|
94fefc0442 | ||
|
|
5ea7950f23 | ||
|
|
309d0ba6f3 | ||
|
|
5dee98106e | ||
|
|
d6f3258442 | ||
|
|
1c8e6437d5 | ||
|
|
00d175cb98 | ||
|
|
a7bdfe6998 | ||
|
|
f9c2ce8835 | ||
|
|
3d56d7de7f | ||
|
|
f2ac23b4f4 | ||
|
|
9c096b2563 | ||
|
|
bc27606b3e | ||
|
|
8531bb3476 | ||
|
|
8e9b8fbd62 | ||
|
|
308c0dc2ff | ||
|
|
50aaa5c135 | ||
|
|
cf5699cfe1 | ||
|
|
d9979100a9 | ||
|
|
5f3d110773 | ||
|
|
a2201cc422 | ||
|
|
42e42fea2a | ||
|
|
55df522b1e | ||
|
|
b77d71bd0d | ||
|
|
70a34df2d5 | ||
|
|
5fb1407705 | ||
|
|
e2b9ee7aaf | ||
|
|
1388d8a443 | ||
|
|
4554ea1882 | ||
|
|
9063e16e7c | ||
|
|
2d656d9525 | ||
|
|
a3dd17c37a | ||
|
|
58aa4c2ae1 | ||
|
|
988a6c8f51 | ||
|
|
3adb08eaa6 | ||
|
|
f8456df256 | ||
|
|
0eb4517961 | ||
|
|
03aab49996 | ||
|
|
b82ab378f0 | ||
|
|
da838b9e8e | ||
|
|
3941bd4711 | ||
|
|
7375046488 | ||
|
|
2ee53e1065 | ||
|
|
efb1097b65 | ||
|
|
d021341d3e | ||
|
|
bb10c24ada | ||
|
|
6f780547bb | ||
|
|
bf5df3885b | ||
|
|
2463db72f7 |
@@ -2,6 +2,9 @@
|
||||
|
||||
Ce dépôt contient le pack Sanctuary et ses mods. Lire `README.md`, puis le ticket concerné.
|
||||
La vision est dans `docs/vision.md` ; elle décrit aussi des fonctionnalités futures.
|
||||
Pour développer/livrer le site, packwiz, la Beta dédiée et Prism local, lire
|
||||
`docs/updates.md`. La compétence personnelle `sanctuary-updates` mémorise les
|
||||
chemins et accès propres au poste ; ne pas déduire une publication d'un simple push.
|
||||
|
||||
- Avant une modification, lire l'état Git et préserver les changements existants.
|
||||
- Un ticket correspond à un résultat jouable ou vérifiable et à une branche `codex/<sujet>`.
|
||||
|
||||
+113
@@ -1,3 +1,116 @@
|
||||
# beta.293 — Happy Creepers, logo packwiz et mods facultatifs
|
||||
|
||||
- Intégration de la branche `codex/happy-creepers` avec les baleines beta.290.
|
||||
- Logo Sanctuary pendant packwiz et outils prêts dans le ZIP Prism.
|
||||
- Simple Voice Chat, Bobby facultatif, Lithium et Entity Culling épinglés pour 26.3.
|
||||
- Même canal et même instance Prism, profils client/serveur et sauvegardes conservés.
|
||||
- [Contrat et reçu de livraison](docs/release-beta293.md).
|
||||
|
||||
# beta.290 — Baleine fantôme volante
|
||||
|
||||
- Import de l’IA, du modèle animé, de la texture et des effets de la baleine Sanctuary 26.2.
|
||||
- Deux baleines chargées pour le serveur entier, toutes dimensions et sources d’apparition comprises.
|
||||
- Œuf créatif personnalisé depuis la texture native `egg.png` de Minecraft 26.3, silhouette et ombres conservées.
|
||||
- Refus d’un troisième œuf avant consommation, libellés FR/EN et calendrier propre à chaque serveur.
|
||||
- [Contrat et vérifications](docs/flying-whale-beta290.md).
|
||||
|
||||
# beta.278 — Duel Battle pour un claim consenti
|
||||
|
||||
- Proposition depuis le clic droit d’un claim déjà revendiqué ; propriétaire et challenger valident le même enjeu.
|
||||
- Challenger ayant habité le chunk, propriétaire connecté, Carte active et disponibilité Battle contrôlés côté serveur.
|
||||
- Battle privé à deux joueurs : consentement sur le claim, puis confirmations Prêt natives ; aucun tiers admis.
|
||||
- Transfert du seul claim au vainqueur, avec l’échéance de protection conservée et actualisation de la carte/minage.
|
||||
- Refus, annulation avant lancement, égalité et interruption sans résultat durable ne transfèrent rien.
|
||||
- Journal additif de consentement/résultat, application atomique et reprise idempotente ; anciens formats conservés.
|
||||
- Interface de lecture et acceptation FR/EN, enjeu explicite dans Battle, navigation corrigée entre propositions.
|
||||
- [Contrat et vérifications](docs/claim-battle-beta278.md).
|
||||
|
||||
# beta.277 — Claims liés à Demeure
|
||||
|
||||
- Habitation Demeure obligatoire avant de revendiquer un chunk libre ; simple traversée insuffisante.
|
||||
- Priorité à l’habitant le plus influent, avec départage par l’ordre des premières traces en cas d’égalité.
|
||||
- Un habitant plus influent peut prendre le spot tant qu’il n’a pas été revendiqué ; aucun transfert automatique après acquisition.
|
||||
- Vérification serveur avant réservation ou débit, et sauvegarde des traces avant achat.
|
||||
- Carte : condition expliquée, nom/couleur du joueur prioritaire, action bloquée quand nécessaire et actualisation du terrain libre.
|
||||
- Claims antérieurs, protections, tarifs et formats de sauvegarde conservés ; aucun délai supplémentaire ni duel ajouté.
|
||||
- [Règles et vérifications](docs/claim-demeure-beta277.md).
|
||||
|
||||
# beta.276 — Contours CTM et nouvelle protection des claims
|
||||
|
||||
- Propriétés sans protection visibles par leur contour, aux couleurs de leur propriétaire.
|
||||
- Contours raccordés sur les côtés et angles, sans frontières entre chunks d’un même joueur.
|
||||
- Fond coloré sur les chunks protégés ; contour conservé après expiration.
|
||||
- Actualisation des contours voisins après un achat, dans l’Atlas et l’aperçu de Pause ; masquage conservé.
|
||||
- Protection : 8 saphirs par chunk pour trois jours de serveur en marche ; renouvellements ajoutés au temps restant.
|
||||
- Durées déjà achetées et reçus de sept jours en attente conservés, sans changement de schéma.
|
||||
- Libellés FR/EN et légende incluant aussi les propriétés sans protection.
|
||||
- [Contrat et vérifications](docs/claim-contours-beta276.md).
|
||||
|
||||
# beta.275 — Habitant et menu Pause centrés sur l’Atlas
|
||||
|
||||
- Retrait du conseil d’arrivée « première propriété gratuite » et du bouton Propriété d’Habitant.
|
||||
- Propriétés verrouillées côté serveur et client avant l’aptitude Carte achetée et active ; ancien accès carte locale bloqué.
|
||||
- Habitant : statistiques sans fond à gauche, personnage centré, biographie à droite ; navigation Factions / Familier.
|
||||
- Activité et Historique retirés de cette fiche ; données conservées.
|
||||
- Durée de jeu en jours, heures, minutes et secondes entières, sans minutes décimales.
|
||||
- Pause sans Carte conservée ; avec Carte, Gazette et Tableau dans leurs colonnes latérales, carte au centre.
|
||||
- Aventure à gauche et Communauté à droite au-dessus de la carte, y compris en grande vue ; Partie et ses actions natives dessous.
|
||||
- Mise à jour automatique de Pause lors du déblocage ou de la désactivation de Carte ; droits et protections acquis conservés.
|
||||
- [Contrat et vérifications](docs/menu-atlas-beta275.md).
|
||||
|
||||
# beta.274 — Calques de territoire continus
|
||||
|
||||
- Fiche Habitant conservée et claims actuels accessibles, selon la clarification du créateur.
|
||||
- Refonte des règles de propriété, habitation préalable, départage par Battle et nouveau tarif consignés pour la reprise.
|
||||
- Demeure sans cadres de chunks ; intensité liée à la part relative d’influence et actualisée quand celle-ci change.
|
||||
- Protections actives rendues en couleur unie dans la même texture de pixels que Demeure, sans bouclier ni pointillés.
|
||||
- Zones protégées adjacentes d’un propriétaire raccordées ; légende compacte couleur / personnage, avec masquage conservé.
|
||||
- Aperçu de Pause teinté directement dans ses pixels, avec brouillard et vide conservés.
|
||||
- Infobulle Demeure « Présence et influence d’habitation » en FR/EN ; retrait de « aucun claim ni protection ».
|
||||
- Aucun changement des données, droits, prix ou durées ; aucune attribution depuis Demeure ni aucun transfert par duel automatique.
|
||||
- [Contrat et vérifications](docs/demeure-overlay-beta274.md).
|
||||
|
||||
# beta.273 — Claims aux couleurs de leurs propriétaires
|
||||
|
||||
- Teinte et bordure utilisent la couleur persistante Hello World du propriétaire, y compris déconnecté.
|
||||
- Protection active : bordure pleine et bouclier ; sans protection : bordure en pointillés.
|
||||
- Bouton Propriétés : oui/non, partagé avec l’aperçu de Pause ; clic droit conservé quand les claims sont masqués.
|
||||
- Apparition automatique avec les tuiles de la carte proche, de l’Atlas et de l’aperçu de Pause.
|
||||
- Achats actualisant le claim visible ; expiration modifiant le style sans retirer la propriété.
|
||||
- Légende et survol FR/EN avec nom et durée restante ; terrain inconnu non révélé.
|
||||
- Aucun changement du registre, des prix, de la durée ou des droits.
|
||||
- [Contrat et vérifications](docs/claim-map-beta273.md).
|
||||
|
||||
# beta.272 — Claims et protection sur la carte
|
||||
|
||||
- Clic droit sur un chunk : panneau de revendication ou de protection sur la carte, sans grille ni changement de page.
|
||||
- Propriété ouvre directement la carte ; terrain proche visible dès Hello World, Atlas complet conservant ses prérequis.
|
||||
- Cinq chunks gratuits par joueur, puis 100 points d’XP supplémentaires à chaque nouveau claim.
|
||||
- 64 saphirs par chunk ajoutent sept jours de serveur en marche ; aucun temps décompté pendant l’arrêt.
|
||||
- Minage ×2 pour le propriétaire et ×0,5 pour les autres pendant la couverture ; pose et interactions ordinaires.
|
||||
- Nouveau registre séparé, achats avec reçu natif et migration volontaire des anciens volumes remboursant leurs extensions.
|
||||
- Stabilisation de la sauvegarde des statistiques à la fermeture face au nettoyage de déconnexion.
|
||||
- [Contrat, migration et vérifications](docs/chunk-claims-beta272.md).
|
||||
|
||||
# beta.271 — fiche Habitant, statistiques et activité
|
||||
|
||||
- Combats rétabli dans Communauté sous Habitant ; Story retiré de Pause.
|
||||
- Navigation Propriété, Factions et Familier en haut ; personnage aéré à gauche et biographie à droite.
|
||||
- Six compteurs personnels sous la biographie, lus dans Minecraft et le Blocodex.
|
||||
- Activité sous le personnage jusqu’en bas, avec défilement et bouton Historique dans son pied de panneau.
|
||||
- Publications personnelles, progrès et progression réunis sans nouveau format de sauvegarde.
|
||||
- Aperçu du familier retiré d'Habitant ; réglages et consentement regroupés dans sa page dédiée.
|
||||
- [Contrat, sources et vérifications](docs/inhabitant-menu-beta271.md).
|
||||
|
||||
# beta.270 — première propriété d’habitant
|
||||
|
||||
- Faction et Battle déplacés de Pause vers la fiche Habitant, avec un accès Propriété.
|
||||
- Une réservation gratuite après Hello World, dans un volume fini indépendant des chunks.
|
||||
- Quatre extensions de 100 à 400 points d’XP, sauvegardées avec un reçu natif.
|
||||
- Contrôles serveur du minage, de la pose et des interactions des autres joueurs ; terrains libres jouables.
|
||||
- Menu natif FR/EN, commandes `/sanctuary property`, `propriete` et `propriété`, aperçu sans écriture de terrain.
|
||||
- [Contrat, sauvegarde additive et limites de protection](docs/property-beta270.md).
|
||||
|
||||
# beta.172 — cartes de horde utilisables en jeu
|
||||
|
||||
- Suppression de la restriction au cercle laboratoire : une carte peut ouvrir
|
||||
|
||||
@@ -1,5 +1,956 @@
|
||||
# Sanctuary
|
||||
|
||||
Les **quatre expansions validées sont disponibles dans Sanctuary normal** :
|
||||
Nord glacial, Sud des canyons, Ouest océanique et Est volcanique.
|
||||
Créer un monde **Sanctuary** en Petit, Moyen ou Grand, puis activer les ancres
|
||||
correspondantes. Le module Sanctuary Test n’est pas requis.
|
||||
[Intégration et vérification du pack beta.224](docs/four-islands-base224.md).
|
||||
|
||||
|
||||
## beta.293 — mise à jour complète
|
||||
|
||||
[Livraison complète publiée](docs/release-beta293.md) : Happy Creepers de la
|
||||
branche dédiée, baleines fantômes, logo packwiz et quatre mods facultatifs.
|
||||
Serveur Beta, téléchargement Web et même instance Prism synchronisés en
|
||||
**beta.293**, sauvegardes et réglages conservés. Build et 79 tests serveur
|
||||
réussis ; assertions Vulkan réussies, blocage de fermeture de l'outil de test
|
||||
consigné. Réseau vocal contrôlé, essai audible à deux joueurs encore ouvert.
|
||||
|
||||
## beta.292 — voix et mods facultatifs (préparation locale)
|
||||
|
||||
[Simple Voice Chat, Bobby, Lithium et Entity Culling rejoignent le pack](docs/optional-mods-beta292.md).
|
||||
Les quatre restent décochables côté client ; Lithium et la voix rejoignent
|
||||
aussi le profil serveur. Logo packwiz conservé, 46 tests serveur ciblés et
|
||||
parcours Vulkan avec et sans Sodium réussis. Préparation locale, sans publication ni
|
||||
modification de l'instance personnelle. Dozei Stream et Only Fun restent en tickets.
|
||||
|
||||
## beta.291 — logo Sanctuary dans packwiz (préparation locale)
|
||||
|
||||
[Le bandeau fourni s'affiche pendant les téléchargements packwiz](docs/packwiz-logo-beta291.md),
|
||||
dans l'instance Prism préparée. L'installateur embarque le logo et conserve
|
||||
le moteur packwiz officiel. Les [tickets des prochaines intégrations](docs/integrations-mods-next.md)
|
||||
couvrent Simple Voice Chat, Bobby facultatif, Lithium, Entity Culling,
|
||||
Dozei Stream et Only Fun ; ces mods ne sont pas ajoutés dans cette version.
|
||||
Fenêtre FR/EN, contrôles d'archive et deux synchronisations isolées réussis.
|
||||
Construction ciblée avec 13 tests serveur réussie ; un test hérité du quota
|
||||
de baleines reste en échec, détaillé dans le contrat. Aucune publication.
|
||||
|
||||
## beta.290 — baleine fantôme volante (branche locale)
|
||||
|
||||
[Import direct de la baleine 26.2](docs/flying-whale-beta290.md), avec son IA,
|
||||
son rendu nuageux animé et son œuf personnalisé à partir de `egg.png` de
|
||||
Minecraft. Deux baleines chargées au maximum pour le serveur, œuf refusé
|
||||
sans consommation si les places sont prises. Construction, 19 tests serveur
|
||||
et parcours Vulkan avec Sodium réussis. Préparée localement, sans publication
|
||||
ni mise à jour d’installation.
|
||||
|
||||
## beta.289 — mise à jour complète
|
||||
|
||||
[Livraison des zombies et de la lumière portée](docs/release-beta289.md), avec
|
||||
JEI intégré au même JAR pour le client et le serveur. Le téléchargement du
|
||||
site conserve l’instance Prism prête à suivre le canal stable.
|
||||
**Publiée** : serveur Beta, téléchargement Web et instance Prism personnelle
|
||||
synchronisés en beta.289, avec sauvegardes et réglages conservés.
|
||||
[Procédure de développement et de publication](docs/updates.md).
|
||||
Construction client/serveur, **31 tests serveur** et parcours des zombies et
|
||||
familiers sous **Vulkan avec Sodium** réussis pour cette livraison.
|
||||
|
||||
## beta.288 — correction des lumières portées intégrée
|
||||
|
||||
[Le correctif des Dynamic Lights rejoint le pack courant](docs/dynamic-hand-light-beta288.md).
|
||||
Les torches et lanternes tenues en main éclairent le terrain avec Sodium,
|
||||
avec ou sans PBR. Les zombies et les neuf tenues de beta.287 sont conservés.
|
||||
Build, **19 tests serveur** et trois parcours **Vulkan** réussis : éclairage
|
||||
avec/sans Sodium, puis zombies et familiers avec Sodium.
|
||||
[Pack local beta.288](build/Sanctuary-beta.288.mrpack).
|
||||
|
||||
## beta.287 — tenues de zombies et postures
|
||||
|
||||
[Neuf tenues aléatoires et Hunter accroupi](docs/zombie-appearances-beta287.md)
|
||||
pour le zombie classique et les six infectés. Les PNG fournis par le créateur
|
||||
sont choisis aléatoirement par individu et gardés au rechargement, y compris
|
||||
pour les familiers. Tous gardent les bras classiques en avant ; le Hunter
|
||||
conserve sa marche accroupie.
|
||||
Les familiers infectés conservent leur modèle adulte miniature à taille variable.
|
||||
Build, **77 régressions, 19 tests Smoker et 16 tests Hunter** en sessions
|
||||
séparées, ainsi que le parcours **Vulkan**, réussis. Neuf tenues par type,
|
||||
bébé classique, 21 combinaisons de familiers, rééquipement stable et marche/bond
|
||||
du Hunter vérifiés. [Pack local beta.287](build/Sanctuary-beta.287.mrpack).
|
||||
|
||||
## beta.286 — Hunter et bond offensif
|
||||
|
||||
[Sixième infecté](docs/hunter-beta286.md) : préparation accroupie, bond physique
|
||||
vers le joueur et frappe unique au contact. Sa trajectoire reste fixe après
|
||||
le départ : une esquive, un mur ou un plafond peuvent faire rater l’attaque.
|
||||
T-shirt bleu et pantalon anthracite, œuf créatif et familier adulte miniature
|
||||
à taille variable, avec son propre bond offensif sur G.
|
||||
Build, **16 tests Hunter, 19 tests Smoker et 77 régressions**, en sessions séparées,
|
||||
ainsi que le parcours **Vulkan FR/EN GUI 2/3/4**, réussis. Contact contre un vrai
|
||||
joueur, esquive au clavier, atterrissage et trois tailles vérifiés.
|
||||
[Pack local beta.286](build/Sanctuary-beta.286.mrpack).
|
||||
|
||||
## beta.285 — Smoker et lasso
|
||||
|
||||
[Cinquième infecté](docs/smoker-beta285.md) : un lasso physique qui peut rater.
|
||||
Il doit toucher sa cible avant de la ramener vers le Smoker à la vitesse des
|
||||
tyroliennes. Les obstacles sur le corps arrêtent le trajet ; blesser la source
|
||||
ou couper le crochet libère la victime. Tenue gris clair et vert olive, œuf
|
||||
créatif et familier adulte miniature à taille variable, avec son propre lasso.
|
||||
Build, **19 tests Smoker et 77 régressions** en sessions séparées, ainsi que
|
||||
le parcours **Vulkan FR/EN GUI 2/3/4**, réussis. Esquive au clavier, touche
|
||||
réelle, traction imposée du joueur et arrivée vérifiées.
|
||||
[Pack local beta.285](build/Sanctuary-beta.285.mrpack).
|
||||
|
||||
## beta.284 — Boomer et bile
|
||||
|
||||
[Quatrième infecté](docs/boomer-beta284.md) : gerbe de bile en cône,
|
||||
diversion temporaire des zombies déjà présents et éclaboussure à la mort,
|
||||
sans destruction du terrain. Tenue violette, pantalon sable, œuf créatif et
|
||||
familier adulte miniature à taille variable, avec une gerbe qui affaiblit
|
||||
les ennemis et une éclaboussure G qui garde le familier vivant.
|
||||
Build, **68 tests serveur ciblés** et parcours **Vulkan FR/EN GUI 2/3/4**
|
||||
réussis, avec G, recrutement sauvage, mort et trois tailles vérifiés.
|
||||
[Pack local beta.284](build/Sanctuary-beta.284.mrpack).
|
||||
|
||||
## beta.283 — Spitter et flaque d’acide
|
||||
|
||||
[Troisième zombie spécial](docs/spitter-beta283.md) : le crachat dépose une
|
||||
zone verte persistante au sol, comme une potion persistante. Les dégâts cessent
|
||||
en sortant ; aucun poison ne suit la victime. Tenue orange, pantalon bleu
|
||||
ardoise, œuf créatif et familier adulte miniature à taille variable.
|
||||
Build, **54 tests serveur ciblés** et parcours **Vulkan FR/EN GUI 2/3/4**
|
||||
réussis, avec G, dégâts dans la zone, sortie et trois tailles vérifiés.
|
||||
[Pack local beta.283](build/Sanctuary-beta.283.mrpack).
|
||||
|
||||
## beta.282 — Chargeur
|
||||
|
||||
[Deuxième zombie spécial](docs/charger-beta282.md) : préparation visible, charge
|
||||
en ligne droite, choc et récupération. Tenue verte, pantalon anthracite, œuf
|
||||
créatif et familier adulte miniature à taille variable, avec sa propre charge.
|
||||
Build, **45 tests serveur ciblés** et parcours **Vulkan FR/EN GUI 2/3/4** réussis,
|
||||
avec appui réel sur G, choc et recharge vérifiés.
|
||||
[Pack local beta.282](build/Sanctuary-beta.282.mrpack).
|
||||
|
||||
## beta.281 — Infectés adultes en miniature
|
||||
|
||||
[Les infectés abandonnent la forme bébé](docs/infected-adults-beta281.md).
|
||||
Le familier reprend les proportions adultes en miniature, avec son trait de
|
||||
taille variable conservé. La règle est commune aux futures variantes d'infectés.
|
||||
Build, **34 tests serveur ciblés** et parcours **Vulkan FR/EN GUI 2/3/4** réussis,
|
||||
avec trois tailles réelles de miniature vérifiées.
|
||||
[Pack local beta.281](build/Sanctuary-beta.281.mrpack).
|
||||
|
||||
## beta.280 — Premier infecté
|
||||
|
||||
[Un nouveau zombie et son familier](docs/infected-beta280.md) : modèle vanilla,
|
||||
t-shirt rouge, pantalon brun, 10 PV et vitesse légèrement supérieure au zombie.
|
||||
Œuf créatif `sanctuary:infected_spawn_egg`, apparitions peu fréquentes dans les
|
||||
habitats de zombies de l'Overworld et familier bébé avec son profil de combat.
|
||||
Texture vanilla recolorée pixel par pixel, sans déplacement UV. Build,
|
||||
**33 tests serveur ciblés** et parcours **Vulkan FR/EN GUI 2/3/4** réussis.
|
||||
[Pack local beta.280](build/Sanctuary-beta.280.mrpack).
|
||||
|
||||
## beta.279 — Carte des îles et grand dézoom
|
||||
|
||||
[Vue d'ensemble de l'archipel et relevés prolongés](docs/map-islands-zoom-beta279.md).
|
||||
La carte dézoome jusqu'à l'échelle du monde avec des niveaux de détail adaptés,
|
||||
et reçoit les nouveaux chunks lointains en gardant son centre fixe. Capacité
|
||||
portée de 16 384 à **131 072 chunks par couche et habitant**, sans effacer les
|
||||
relevés existants. Les propriétés et Demeure retrouvent leurs détails en zoomant.
|
||||
Build, **20 tests serveur ciblés** et parcours **Vulkan FR/EN GUI 2/3/4** réussis.
|
||||
[Pack local beta.279](build/Sanctuary-beta.279.mrpack).
|
||||
|
||||
## beta.278 — Disputer une propriété dans Battle
|
||||
|
||||
[Duel consenti pour un claim déjà revendiqué](docs/claim-battle-beta278.md).
|
||||
Clic droit sur la propriété → Disputer via Battle. Le challenger propose et
|
||||
le propriétaire accepte explicitement le chunk mis en jeu ; les deux confirment
|
||||
ensuite Prêt dans Battle. Le vainqueur reçoit ce seul claim avec sa protection
|
||||
restante. Refus, annulation avant lancement ou combat sans vainqueur ne changent
|
||||
pas le propriétaire. Résultat et transfert disposent d’un journal de reprise.
|
||||
Build, **40 tests serveur ciblés**, **26 contrôles du journal** et parcours
|
||||
**Vulkan FR/EN GUI 2/3/4** réussis. [Pack local beta.278](build/Sanctuary-beta.278.mrpack).
|
||||
|
||||
## beta.277 — Habiter avant de revendiquer
|
||||
|
||||
[Claims reliés aux influences Demeure](docs/claim-demeure-beta277.md).
|
||||
Une simple traversée ne suffit plus. Sur un terrain libre, l’habitant le plus
|
||||
influent peut revendiquer ; à égalité, la première trace d’habitation départage.
|
||||
Un autre habitant peut donc prendre la priorité avant le claim en dépassant
|
||||
l’influence du premier. Les propriétés acquises restent attribuées, avec les
|
||||
mêmes prix et protections. Le clic droit indique la condition ou le nom prioritaire.
|
||||
Build, **34 tests serveur ciblés**, contrôles Demeure et parcours **Vulkan
|
||||
FR/EN GUI 2/3/4** réussis. [Pack local beta.277](build/Sanctuary-beta.277.mrpack).
|
||||
|
||||
## beta.276 — Contours des propriétés et protection à huit saphirs
|
||||
|
||||
[Contours CTM aux couleurs des propriétaires](docs/claim-contours-beta276.md),
|
||||
visibles aussi sans protection. Les chunks voisins d’un même joueur se raccordent ;
|
||||
les chunks protégés ajoutent un fond coloré. **8 saphirs par chunk pour trois jours
|
||||
de serveur en marche**, avec conservation des durées déjà achetées.
|
||||
Build, **30 tests serveur ciblés**, **63 vérifications du registre** et parcours
|
||||
**Vulkan FR/EN GUI 2/3/4** réussis. [Pack local beta.276](build/Sanctuary-beta.276.mrpack).
|
||||
|
||||
## beta.275 — Habitant et Pause autour de la carte
|
||||
|
||||
[Habitant en trois colonnes et Pause centrée sur l’Atlas](docs/menu-atlas-beta275.md).
|
||||
Statistiques transparentes à gauche, personnage au centre, biographie à droite ;
|
||||
Factions et Familier restent seuls en haut. Le temps joué utilise jours, heures,
|
||||
minutes et secondes. Le message d’arrivée Propriété et l’activité de la fiche
|
||||
sont retirés. Les propriétés exigent la Carte débloquée et active côté serveur.
|
||||
Après déblocage, Aventure et Communauté forment deux colonnes au-dessus de la
|
||||
carte ; Partie et ses options restent dessous, Gazette à gauche et Tableau à droite.
|
||||
Build, **30 tests serveur ciblés** et parcours **Vulkan FR/EN GUI 2/3/4** réussis.
|
||||
[Pack local beta.275](build/Sanctuary-beta.275.mrpack).
|
||||
|
||||
## beta.274 — Calques continus et propriétés conservées
|
||||
|
||||
[Demeure et les protections utilisent des couleurs par pixel sans cadres de chunks](docs/demeure-overlay-beta274.md).
|
||||
Les protections voisines de même propriétaire se raccordent, avec une légende
|
||||
couleur / personnage ; les boucliers et pointillés sont retirés. Le bouton
|
||||
Propriétés conserve le masquage. L’aide de Demeure décrit l’habitation et son
|
||||
influence. La fiche Habitant et les claims actuels restent accessibles.
|
||||
[La refonte des règles, de l’habitation préalable, des duels et du tarif est mise en attente](docs/property-demeure-refonte.md).
|
||||
Build, **29 tests serveur ciblés** et parcours **Vulkan FR/EN GUI 2/3/4** réussis.
|
||||
[Pack local beta.274](build/Sanctuary-beta.274.mrpack).
|
||||
|
||||
## beta.273 — Couleurs et protection des claims
|
||||
|
||||
[Les claims portent la couleur de leur propriétaire sur la carte](docs/claim-map-beta273.md),
|
||||
même hors ligne. Bordure pleine et bouclier pour les chunks protégés ; pointillés
|
||||
pour les autres. Affichage dès l’ouverture, actualisation après achat et état
|
||||
au survol, dans la carte proche, l’Atlas et son aperçu de Pause. Le bouton
|
||||
**Propriétés : oui/non** permet de les masquer et de les réafficher.
|
||||
Build, **26 tests serveur ciblés** et parcours **Vulkan FR/EN GUI 2/3/4** réussis.
|
||||
[Pack local beta.273](build/Sanctuary-beta.273.mrpack).
|
||||
|
||||
## beta.272 — Claims sur la carte
|
||||
|
||||
[Clic droit sur le terrain pour revendiquer un chunk](docs/chunk-claims-beta272.md).
|
||||
Les cinq premiers sont gratuits, puis 100, 200, 300 points d’XP, etc.
|
||||
Chaque chunk peut être protégé pour **64 saphirs et sept jours de serveur en
|
||||
marche** : minage ×2 pour son propriétaire, ×0,5 pour les autres. L’arrêt du
|
||||
serveur suspend la durée ; le claim reste acquis après expiration.
|
||||
Migration volontaire des anciens volumes, avec remboursement des extensions.
|
||||
Build, **25 tests serveur ciblés**, **58 vérifications du registre** et parcours
|
||||
**Vulkan FR/EN GUI 2/3/4** réussis. [Pack local beta.272](build/Sanctuary-beta.272.mrpack).
|
||||
|
||||
## beta.271 — Habitant, statistiques et activité
|
||||
|
||||
[Fiche en deux colonnes et deux rangées](docs/inhabitant-menu-beta271.md).
|
||||
Propriété, Factions et Familier forment une barre en haut. Le personnage
|
||||
respire en haut à gauche, avec son activité jusqu’en bas et Historique dessous.
|
||||
La biographie et les statistiques occupent la droite. Le familier et ses
|
||||
réglages restent dans sa page dédiée. Combats revient dans Communauté ;
|
||||
Story quitte Pause. Build, **15 tests serveur ciblés** et parcours **Vulkan
|
||||
FR/EN GUI 2/3/4** réussis. [Pack local beta.271](build/Sanctuary-beta.271.mrpack).
|
||||
|
||||
## beta.270 — Propriété personnelle et fiche Habitant
|
||||
|
||||
[Première propriété gratuite après Hello World](docs/property-beta270.md) :
|
||||
volume initial de 17 × 17 × 17 blocs, emplacement choisi dans le monde principal,
|
||||
quatre agrandissements en points d’XP et protection des actions directes des
|
||||
autres joueurs. Accès par **Habitant → Propriété** ou `/sanctuary property`.
|
||||
Faction et Battle rejoignent Habitant et libèrent leurs places dans Pause.
|
||||
Explosions, pistons, fluides et autres dégâts environnementaux restent hors
|
||||
protection dans ce premier lot. **41 GameTests serveur ciblés** et parcours
|
||||
**Vulkan FR/EN GUI 2/3/4** réussis.
|
||||
[Pack local beta.270](build/Sanctuary-beta.270.mrpack).
|
||||
|
||||
## beta.269 — Les réponses de Providence
|
||||
|
||||
[Six issues et leurs couleurs](docs/providence-verdicts-beta269.md) :
|
||||
Exaucée en vert, Différée en jaune, Refusée en rouge, Incomprise en gris,
|
||||
Alternative en violet ; Silence sans message visible. Couleurs conservées
|
||||
en SGA et en lecture normale FR/EN. Un verdict différé programme réellement
|
||||
le miracle plus tard ; une alternative accorde une autre aide admissible.
|
||||
Build, **191 vérifications indépendantes**, **22 GameTests serveur** et parcours
|
||||
**Vulkan FR/EN GUI 2/3/4** réussis. [Pack local beta.269](build/Sanctuary-beta.269.mrpack).
|
||||
|
||||
## beta.268 — Les quatorze prières
|
||||
|
||||
[Catalogue complet de Providence](docs/providence-fourteen-beta268.md) :
|
||||
récupération, retour, secours, soleil, pluie, guérison, nourriture, foudre,
|
||||
malédiction, vengeance, vol, désarmement, téléportation et réparation.
|
||||
Ciblage par `@Pseudo`, prières hostiles autorisées contre tous les joueurs
|
||||
connectés, transferts réels des objets et scellement des tombes consommées.
|
||||
L’attente de cinq secondes et les couleurs SGA sont conservées.
|
||||
Build, **146 vérifications indépendantes**, **20 GameTests serveur** et parcours
|
||||
client **Vulkan** réussis. [Pack local beta.268](build/Sanctuary-beta.268.mrpack).
|
||||
|
||||
## beta.267 — Providence prend le temps de répondre
|
||||
|
||||
[Attente de cinq secondes après `/pray`](docs/providence-delay-beta267.md),
|
||||
réglable entre 1 et 60 secondes. Une seule prière en attente par joueur,
|
||||
répétitions ignorées, conditions vérifiées à l'échéance et réponses colorées
|
||||
conservées. Build, 83 vérifications indépendantes, 15 GameTests serveur et
|
||||
parcours Vulkan avec réponse après cinq secondes réussis.
|
||||
[Pack local beta.267](build/Sanctuary-beta.267.mrpack).
|
||||
|
||||
## beta.266 — Couleurs de Providence
|
||||
|
||||
[Réponses SGA selon le verdict](docs/providence-colors-beta266.md) : vert pour
|
||||
un miracle accordé, jaune pour une attente ou une prière à clarifier, rouge
|
||||
pour un refus ou un échec. Build, 67 vérifications indépendantes, 15 GameTests
|
||||
serveur et parcours Vulkan FR/EN GUI 2/3/4 réussis.
|
||||
[Pack local beta.266](build/Sanctuary-beta.266.mrpack).
|
||||
|
||||
## beta.265 — Providence
|
||||
|
||||
[Prières et premiers miracles](docs/providence-beta265.md) : `/pray` interprète
|
||||
les concepts d'un dictionnaire JSON rechargeable, puis décide côté serveur
|
||||
d'éclaircir le temps ou de ramener le joueur près de sa dernière mort, si une
|
||||
arrivée sûre est disponible dans les chunks chargés. Probabilités et cooldowns
|
||||
persistants, journal borné, réponses SGA et lecture normale FR/EN avec
|
||||
`/providence readable true`. Restitution des objets et secours préparés,
|
||||
**désactivés** en attendant leurs contrats de sécurité.
|
||||
Build, **67 vérifications indépendantes**, **15 GameTests serveur** et parcours
|
||||
client **Vulkan FR/EN GUI 2/3/4** réussis.
|
||||
[Pack local beta.265](build/Sanctuary-beta.265.mrpack).
|
||||
|
||||
## beta.264 — Menu central et aperçus alignés
|
||||
|
||||
[Formulaire de la largeur de la hotbar native](docs/hello-layout-beta264.md) :
|
||||
couleur, biographie, choix et nom du familier regroupés au centre. Pseudo et
|
||||
nom au-dessus des aperçus 3D, sol commun et familiers bébé miniatures.
|
||||
Détails de l'espèce uniquement au survol, titre Hello World retiré.
|
||||
Retour séparé, Entrer dans Sanctuary dans le pied de page natif des menus.
|
||||
Build, 13 GameTests serveur et parcours Vulkan FR/EN GUI 2/3/4 réussis,
|
||||
avec 44 modèles bébé, admission, reconnexion et code d'accès vérifiés.
|
||||
[Pack local beta.264](build/Sanctuary-beta.264.mrpack).
|
||||
|
||||
## beta.263 — Bébés familiers dans Hello World
|
||||
|
||||
[Formes bébé natives dans l'aperçu 3D](docs/hello-baby-familiars-beta263.md) :
|
||||
modèles, textures et échelles d'âge adaptés au familier remis en jeu, avec
|
||||
suivi de la souris. Les 44 aperçus sont comparés aux proxies natifs et vérifiés
|
||||
à froid en Vulkan FR/EN GUI 2/3/4. Build, 13 GameTests serveur et export
|
||||
du [pack local beta.263](build/Sanctuary-beta.263.mrpack) vérifiés.
|
||||
|
||||
## beta.262 — Nouveau menu Hello World
|
||||
|
||||
[Personnage et familier dans un menu centré](docs/hello-world-menu-beta262.md) :
|
||||
aperçu du personnage à gauche, familiers à droite, biographie et nom au centre
|
||||
dans deux blocs symétriques. Texture native de hotbar pour neuf couleurs par
|
||||
page, flèches autour du pseudo, fond texturé uniforme et aperçus 3D qui suivent
|
||||
la souris. Saisies et sélection conservées, libellés FR/EN.
|
||||
Build, 13 GameTests serveur et parcours Vulkan FR/EN GUI 2/3/4 réussis,
|
||||
avec les 44 modèles de départ, création, reconnexion et code d’accès vérifiés.
|
||||
[Pack local beta.262](build/Sanctuary-beta.262.mrpack).
|
||||
|
||||
## beta.261 — Alt bref et Alt maintenu
|
||||
|
||||
[Un seul raccourci pour l’attaque et les ordres](docs/familiar-alt-beta261.md) :
|
||||
Alt gauche bref attaque ou reprend le suivi ; Alt maintenu ouvre les ordres
|
||||
sans envoyer d’attaque rapide. H est retiré des commandes du familier ; G garde
|
||||
la technique. Raccourci unique configurable, libellés FR/EN, aides du labo
|
||||
actualisées. Les correctifs de réapparition beta.260 sont conservés.
|
||||
Build, **44 GameTests serveur** et parcours **Vulkan** réussis, avec maintien
|
||||
sans attaque rapide et commandes après réapparition native.
|
||||
[Pack local beta.261](build/Sanctuary-beta.261.mrpack).
|
||||
|
||||
## beta.260 — Familiers après la mort et attaque sur Alt
|
||||
|
||||
[Ordres et œufs réutilisables après réapparition](docs/familiar-respawn-beta260.md),
|
||||
avec keep inventory ou récupération dans la tombe. État de l’ancienne vie retiré,
|
||||
identité, santé et recharges conservées. Alt gauche pour l’attaque rapide,
|
||||
H maintenu pour les ordres, G pour la technique ; aide redondante retirée sous
|
||||
le nom du familier équipé. Labo fermé après les retours.
|
||||
Build, **44 GameTests serveur** et parcours client **Vulkan** réussis,
|
||||
avec mort/réapparition native, touches reconfigurées et attaque réelle.
|
||||
[Pack local beta.260](build/Sanctuary-beta.260.mrpack).
|
||||
|
||||
## beta.259 — Arène des familiers
|
||||
|
||||
[Carte de test isolée](docs/familiar-lab-beta259.md) : cinq coffres avec les
|
||||
88 espèces, zombie immobile à vie infinie et compteur de dégâts, bouton
|
||||
d’hostile aléatoire parmi 23 types, nettoyage et remise à zéro. Personnage de
|
||||
test en Survie, blocs protégés, ordres et combat actuels conservés.
|
||||
Build, 15 GameTests ciblés et contrôle natif de l’arène avec attaque réelle
|
||||
d’un loup réussis ; un ancien test de transfert d’œuf reste en échec dans
|
||||
la suite élargie. Visite locale `review-02` effectuée en Vulkan, puis fermée
|
||||
après les retours de séance.
|
||||
La croissance et le creeper qui court puis explose restent à développer.
|
||||
[Pack Test local beta.259](build/Sanctuary-Test-beta.259.mrpack).
|
||||
|
||||
## beta.258 — Ombres des falaises et musique du menu
|
||||
|
||||
[Correction des bandes sur les falaises autour du zénith](docs/zenith-shadows-beta258.md),
|
||||
avec les vraies ombres des surplombs conservées et les mêmes budgets de carte.
|
||||
La musique démarre trois secondes après le chargement Mojang au menu titre,
|
||||
continue dans Options et s’arrête avant Hello World et l’apparition du monde.
|
||||
Build, six GameTests serveur, falaises de 10 h à 14 h, feuilles, stabilité
|
||||
caméra et canal audio natif validés sur Windows Vulkan avec 8 Gio alloués.
|
||||
[Pack local beta.258](build/Sanctuary-beta.258.mrpack).
|
||||
|
||||
## beta.257 — Mods client séparés et rayons à 20 %
|
||||
|
||||
[JEI Sanctuary, Sound Physics Remastered et Sodium](docs/external-mods-beta257.md)
|
||||
sont des JAR séparés et facultatifs, fournis par défaut. Leur retrait avant
|
||||
lancement conserve les règles serveur, les connaissances et la fabrication
|
||||
manuelle ; le catalogue nécessite le fork JEI fourni. Sun shafts à **20 %**
|
||||
dans les profils et pour les valeurs neuves, préférences personnalisées conservées.
|
||||
Build, huit GameTests serveur sans JEI/Sound Physics, quatre combinaisons client
|
||||
Windows Vulkan avec 8 Gio, transfert JEI et réglages audio validés.
|
||||
[Pack local beta.257](build/Sanctuary-beta.257.mrpack).
|
||||
|
||||
## beta.256 — Ambiance, Sodium et volume solaire
|
||||
|
||||
[Rayons détaillés à 10 %, portée réglable et reconstructions réparties](docs/ambiance-volume-performance-beta256.md).
|
||||
Sodium 0.9.2 pour Minecraft 26.3 inclus dans le pack client ; minerais,
|
||||
bloom et PBR rétablis avec son rendu. Le SSR reste activé en Moyen.
|
||||
Ultra ne sélectionne aucune portée de 256 blocs ; ces choix restent manuels
|
||||
et indiqués comme expérimentaux. Sur le trajet de test Grand à 32 chunks,
|
||||
1080p et 8 Gio de mémoire Java, Moyen passe de 135 à 321 FPS moyens,
|
||||
Personnalisé de 72 à 113. Des pics persistent : 144/240 FPS constants ne
|
||||
sont pas garantis. Build, GameTests et contrôles natifs Vulkan vérifiés.
|
||||
[Pack local beta.256](build/Sanctuary-beta.256.mrpack).
|
||||
|
||||
## beta.255 — Feuilles, menus et rayons Ambiance
|
||||
|
||||
[Les ombres utilisent l’alpha des vraies textures de feuilles](docs/ambiance-leaves-menus-beta255.md),
|
||||
avec davantage de détails en Faible et le SSR conservé en Moyen.
|
||||
Les réglages existants sont rangés dans six catégories FR/EN et un sous-menu
|
||||
Ombres. Import/export de profils Ambiance `.txt`, budget Personnalisé compris.
|
||||
Sun shafts rendus plus visibles en Moyen, avec le même budget de calcul.
|
||||
Sur la canopée de test à 1080p, le surcoût de rendu mesuré est de 0,035–0,047 ms
|
||||
pour Moyen et 0,035–0,061 ms pour Faible ; ce ne sont pas des mesures GPU
|
||||
isolées ni des écarts de FPS en jeu. Build, feuilles, profils, menus et effets
|
||||
validés sur Vulkan RX 9070 XT.
|
||||
[Pack local beta.255](build/Sanctuary-beta.255.mrpack). Les dégradés du ciel
|
||||
seront retravaillés lors de la prochaine passe.
|
||||
|
||||
## beta.254 — Profils de shader et budget Vulkan
|
||||
|
||||
[Profils Patate, Faible, Moyen, Élevé et Ultra](docs/shader-vulkan-optimization.md)
|
||||
dans les Options du shader **Ambiance**, avec réglages avancés et conservation
|
||||
des préférences existantes.
|
||||
Moyen inclut le **SSR**, le PBR, le SSGI léger, les sun shafts et les minerais
|
||||
émissifs. Cache de la carte d'ombres commune, budgets de calcul par profil
|
||||
et portée d'émission bornée. La transmission des feuilles reste procédurale.
|
||||
Build, pack et suites Windows Vulkan sur RX 9070 XT validés. Moyen avec SSR
|
||||
réduit le temps de rendu mesuré de 29 % à 38 % sur la scène de test ;
|
||||
ces mesures ne sont pas des gains de FPS garantis dans un monde réel.
|
||||
[Pack local beta.254](build/Sanctuary-beta.254.mrpack).
|
||||
|
||||
## beta.253 — musique du menu Sanctuary
|
||||
|
||||
[Musique fournie pour le menu](docs/menu-music-beta253.md), convertie en OGG
|
||||
Vorbis stéréo et embarquée dans le mod. Lecture immédiate au menu titre,
|
||||
continue dans les sous-menus, avec le volume Musique de Minecraft.
|
||||
Le morceau entier dure environ 2 min 45 et recommence à la fin.
|
||||
Compilation, quatre GameTests serveur et lecture native Vulkan validés.
|
||||
[Pack local beta.253](build/Sanctuary-beta.253.mrpack) vérifié.
|
||||
|
||||
## beta.252 — Sound Physics Remastered en option
|
||||
|
||||
[Acoustique réaliste](docs/sound-physics-beta252.md) embarquée dans Sanctuary,
|
||||
désactivée par défaut pour une configuration neuve. Activation et réglages
|
||||
FR/EN dans **Options → Sound Physics Remastered**, sans installation séparée
|
||||
ni Cloth Config. Les préférences existantes sont conservées ; socle beta.251
|
||||
avec les habitats d'insectes et la protection des maisons.
|
||||
Build, 21 GameTests serveur et essai Vulkan réussis.
|
||||
[Pack local beta.252](build/Sanctuary-beta.252.mrpack) vérifié.
|
||||
|
||||
## beta.251 — Habitats des insectes et protection des maisons
|
||||
|
||||
[Apparitions naturelles](docs/insect-habitats-beta251.md) : sauterelles et
|
||||
criquets sauteurs dans l’herbe dégagée, libellules dans l’herbe ou près de
|
||||
l’eau douce, cloportes sur ou près des pierres. Poids des sauteurs réduits,
|
||||
plafonds locaux par groupe, saisons et horaires conservés. Les toits en bois,
|
||||
pierre, verre ou dalles bloquent les apparitions et les trajectoires libres ;
|
||||
les feuilles conservent les habitats forestiers. Build, 21 GameTests requis
|
||||
et client Vulkan réussis. [Pack local beta.251](build/Sanctuary-beta.251.mrpack)
|
||||
et [pack Test](build/Sanctuary-Test-beta.251.mrpack) vérifiés.
|
||||
|
||||
## beta.250 — Sauterelles qui avancent en sautant
|
||||
|
||||
[Bonds avec déplacement](docs/jumping-insects-beta250.md) pour la sauterelle,
|
||||
le criquet long et le criquet migrateur : trajectoires en arc vers le sol,
|
||||
pause après l’atterrissage, bonds rapides en fuite. Arrivées sèches et parcours
|
||||
sans collision dans les chunks déjà chargés. Build, 16 GameTests requis et
|
||||
client Vulkan réussis, dont déplacement et fuite déclenchée en plein saut.
|
||||
[Pack local beta.250](build/Sanctuary-beta.250.mrpack) vérifié.
|
||||
Le dossier de textures beta.249 reste dans Téléchargements.
|
||||
|
||||
## beta.249 — Coccinelle et dossier des textures
|
||||
|
||||
[Coccinelle en billboard](docs/ladybug-textures-beta249.md), posée sur la fleur
|
||||
ou les feuilles. Export local des textures du client : 4 671 images à modifier,
|
||||
métadonnées d’animation, originaux classés par source, inventaire CSV/JSON.
|
||||
Dossier et ZIP dans Téléchargements ; aucune image originale retouchée.
|
||||
Build, 13 GameTests requis et client Vulkan réussis ; trois angles de vue
|
||||
vérifiés et point d’appui corrigé. Packs locaux vérifiés.
|
||||
|
||||
## beta.248 — Libellules, sons et galerie au soleil
|
||||
|
||||
[Corps des libellules en croix, neuf sons naturels](docs/insect-cross-sounds-beta248.md)
|
||||
et galerie d’inspection à midi, ciel dégagé. Les chants sont espacés ; les
|
||||
bourdonnements suivent la mouche et le moustique, et s’arrêtent à la fuite
|
||||
ou à la capture. [Sources et crédits](docs/insect-audio-credits.md) inclus
|
||||
dans le mod. L’escargot reste inspectable au sec ; sa règle de pluie demeure
|
||||
en jeu normal. Treize GameTests requis et client Vulkan réussis (neuf sons
|
||||
décodés, ciel clair, capture silencieuse). Packs locaux vérifiés. La Walker
|
||||
cicada utilise une autre prise après le retour d’écoute ; visite `review-06`
|
||||
ouverte en beta.248, lancement protégé des reconstructions. [Reçu final](build/insects248/validation.json).
|
||||
|
||||
## beta.247 — Retours sur les insectes
|
||||
|
||||
[Capture et comportements](docs/insect-behaviour-beta247.md) : clic droit
|
||||
sur le plus proche visible à portée, observation immobile, escargot posé,
|
||||
grillons et cloporte à plat, sauts plus hauts, puce sur son villageois.
|
||||
Libellules à modèle dédié et vol progressif entre points ; bousier poussant
|
||||
une boule de neige. [Sons à préparer](docs/insect-sounds-plan.md), sans audio
|
||||
ajouté. Treize GameTests requis et contrôle client Vulkan réussis.
|
||||
Nouvelle visite `review-04` ouverte en beta.247. `check build assemblePack
|
||||
assembleTestPack` réussit ; [packs et reçu](docs/insect-behaviour-beta247.md)
|
||||
vérifiés localement.
|
||||
|
||||
## beta.246 — Carte d’inspection des insectes
|
||||
|
||||
[47 parcelles numérotées](docs/insect-inspection-beta246.md) dans une instance
|
||||
de développement jouable : supports adaptés, espèces présentes ensemble,
|
||||
retour cinq secondes après fuite ou capture, navigation `/insectes`.
|
||||
Icônes des 47 spécimens corrigées dans l’atlas ; filet en texture 2D 16 × 16.
|
||||
`check build assemblePack assembleTestPack`, neuf GameTests requis et client
|
||||
Vulkan réussis. Visite `review-03` ouverte, sprites 16 × 16 vérifiés en jeu.
|
||||
[Pack local beta.246](build/Sanctuary-beta.246.mrpack) et
|
||||
[pack Test](build/Sanctuary-Test-beta.246.mrpack) vérifiés.
|
||||
|
||||
## beta.245 — Insectes Wild World et filet
|
||||
|
||||
[47 espèces fournies](docs/insects-wild-world-beta245.md) : habitats, mois,
|
||||
horaires et pics d’apparition selon le calendrier serveur. Papillons à deux
|
||||
ailes animées, sprites sur troncs, au sol et sur l’eau ; moustique en orbite
|
||||
inoffensive. Approche accroupie, fuite et capture au clic droit avec un filet
|
||||
fabriqué avec deux bâtons et trois fils. Spécimens FR/EN conservés en items,
|
||||
captures et découvertes sans notification.
|
||||
`check build assemblePack`, neuf GameTests requis et parcours client Vulkan
|
||||
réussis, avec capture native et découvertes silencieuses vérifiées.
|
||||
[MRpack local beta.245](build/Sanctuary-beta.245.mrpack) vérifié.
|
||||
|
||||
## beta.244 — Carte Habitant au rythme des chunks reçus
|
||||
|
||||
[Relevés liés à la vue du joueur](docs/map-chunk-sync-beta244.md) : les chunks
|
||||
effectivement envoyés par Minecraft sont inscrits dans les six couches de la
|
||||
carte personnelle, sans les trous du relevé lent à 32 blocs. Carte ouverte
|
||||
actualisée par changements, constructions visibles comprises ; carte Pause
|
||||
conservée. Essai Vulkan réussi : déplacement de 320 blocs, 3 003 chunks reçus
|
||||
avec une vue à 32, Pause FR/EN, relecture des relevés et révocation Atlas.
|
||||
`check build assemblePack` et 14 GameTests requis réussis ; livraison locale,
|
||||
sans mise à jour Prism. [MRpack beta.244](build/Sanctuary-beta.244.mrpack).
|
||||
|
||||
## beta.243 — Joueurs au premier plan sur la carte
|
||||
|
||||
[Visages de skin dans l’Atlas et Pause](docs/map-player-heads-beta243.md),
|
||||
seconde couche incluse, au-dessus des propriétés, de la grille, des waystones
|
||||
et des annonces suivies. Nom au survol et direction locale conservée.
|
||||
Positions des joueurs distants fournies par le serveur, sans découvrir le
|
||||
terrain. Les ascenseurs disparaissent des deux cartes, même avec un étage
|
||||
inconnu ; les téléporteurs isolés découverts restent visibles.
|
||||
`check build assemblePack`, dix GameTests requis et client Vulkan FR/EN
|
||||
GUI 2/3/4 réussis. [MRpack local beta.243](build/Sanctuary-beta.243.mrpack)
|
||||
vérifié ; instance Prism personnelle non mise à jour.
|
||||
|
||||
## beta.242 — Tyroliennes et grappin portatif
|
||||
|
||||
[Modèles et recettes de 26.2](docs/ziplines-grappling-beta242.md) importés :
|
||||
poulies reliées par une laisse, trajets dans les deux sens. Le Grappling Rod
|
||||
conserve le lancer chargé et utilise un câble temporaire ; un obstacle
|
||||
contre le joueur coupe le trajet et déclenche une chute. Une laisse par
|
||||
lancer, serveur autoritaire, libellés FR/EN. **Texture finale à faire par
|
||||
le créateur** ; les textures 26.2 sont provisoirement conservées.
|
||||
`check build assemblePack`, dix GameTests requis et client Vulkan réussis.
|
||||
[MRpack local beta.242](build/Sanctuary-beta.242.mrpack) vérifié.
|
||||
|
||||
## beta.241 — Ascenseurs séparés et menu Waystone
|
||||
|
||||
[Deux réseaux séparés côté serveur](docs/waystones-menu-beta241.md) : les
|
||||
pierres alignées servent uniquement d’ascenseur ; les pierres isolées
|
||||
voyagent entre maisons découvertes. Recherche par nom, boutons centrés sans
|
||||
Y, distance et XP uniquement au survol. **R** renomme, Entrée enregistre,
|
||||
Échap annule ; les actions d’étage sont indiquées par **jump / sneak**.
|
||||
Tarif persistant avec `/sanctuary waystone cost 1 16` (défaut), ou un coût
|
||||
direct par bloc avec `cost 0.0625`. M et les marqueurs sont conservés.
|
||||
Avec 10 niveaux sur Grand graine 0 : **29 trajets de quartier**, **10 longs
|
||||
trajets**, ou **160 déplacements d’étage** dans le réseau séparé. Build,
|
||||
9 GameTests ciblés, deux tests Grand et client Vulkan FR/EN GUI 2/3/4 réussis.
|
||||
[MRpack local beta.241](build/Sanctuary-beta.241.mrpack) vérifié.
|
||||
|
||||
## beta.240 — Waystones : 1 point d’XP pour 16 blocs
|
||||
|
||||
[Tarif ajusté et simulation relancée](docs/waystones-tarif-beta240.md) :
|
||||
prix serveur **1 point d’XP / 16 blocs**, distance 3D arrondie au supérieur,
|
||||
menus FR/EN synchronisés sur ce tarif. Sur le même Grand neuf graine 0 et
|
||||
avec 10 niveaux sans regain : **29 trajets de quartier**, **10 longs trajets**,
|
||||
ou **46 trajets mixtes**, dont 21 déplacements d’étage.
|
||||
`check build assemblePack`, 7 GameTests ciblés, deux tests Grand et client
|
||||
Vulkan FR/EN GUI 2/3/4 réussis.
|
||||
[MRpack local beta.240](build/Sanctuary-beta.240.mrpack) vérifié.
|
||||
|
||||
## beta.239 — Waystones et visites entre maisons
|
||||
|
||||
[Waystones horizontales et étages](docs/waystones-beta239.md), texture originale
|
||||
26.2 et renommage direct. Prix serveur : **1 point d'XP / 8 blocs**, distance
|
||||
3D arrondie au supérieur. Maisons à découvrir ; étages accessibles avec
|
||||
Saut / S'accroupir sans découverte préalable. Marqueurs dans l'Atlas et Pause,
|
||||
**M** configuré pour ouvrir la carte. Aptitudes et Forgerie beta.238 réunies
|
||||
avec la disposition Pause restaurée.
|
||||
Sur un nouveau Sanctuary Grand graine 0, **10 niveaux = 160 points** :
|
||||
**15 trajets de quartier**, **4 longs trajets d'île**, ou **26 trajets mixtes**
|
||||
dont 12 déplacements d'étage. [Mesures et limites](docs/waystones-beta239.md).
|
||||
`check build assemblePack`, 21 GameTests ciblés, deux tests sur Grand natif
|
||||
et client Vulkan FR/EN GUI 2/3/4 réussis.
|
||||
[MRpack local beta.239](build/Sanctuary-beta.239.mrpack) vérifié.
|
||||
|
||||
## Essai de carte derrière Pause — annulé
|
||||
|
||||
[L'essai plein écran](docs/pause-map-layer-beta236.md) est annulé à la demande
|
||||
du créateur. Pause retrouve la disposition beta.235, avec la carte au centre
|
||||
et une colonne de navigation à gauche lorsque l'Atlas est déverrouillé.
|
||||
Story et **M**, configurable dans les contrôles, sont conservés.
|
||||
Parcours client Vulkan FR/EN GUI 2/3/4 et `check build` de l'annulation réussis.
|
||||
L'ancien pack d'essai beta.236 est retiré des artefacts actifs ; aucune nouvelle
|
||||
livraison n'est créée par cette annulation. Les changements conservés sont
|
||||
réunis avec les aptitudes et Forgerie dans la livraison beta.239.
|
||||
|
||||
## beta.238 — Forgerie
|
||||
|
||||
[Aptitude Forgerie](docs/forgerie-beta238.md) dans Arts et métiers : quatre
|
||||
niveaux pour débloquer les enclumes et la table de forge, achat définitif.
|
||||
Les réparations, noms, améliorations en netherite et ornements conservent
|
||||
leurs règles natives. L'achat est contrôlé côté serveur, y compris pour les
|
||||
postes portés sur la tête. Icône fournie et libellés FR/EN intégrés.
|
||||
Build, 21 GameTests requis et parcours Vulkan FR/EN GUI 2/3/4 réussis.
|
||||
[MRpack local beta.238](build/Sanctuary-beta.238.mrpack) vérifié, sans
|
||||
publication ni mise à jour personnelle.
|
||||
|
||||
## beta.237 — Aptitudes acquises définitivement
|
||||
|
||||
[Aptitudes par thème et achats permanents](docs/aptitudes-beta237.md) : seuls
|
||||
World Map et Mob Names sont activables/désactivables. Les dix autres aptitudes
|
||||
restent utilisables après achat ; Enchantement et Alchimie coûtent chacun
|
||||
quatre niveaux et débloquent l'accès personnel aux postes natifs. Icônes
|
||||
fournies intégrées, libellés FR/EN. Les anciens choix de désactivation de ces
|
||||
achats sont effacés sans toucher aux achats ni à l'XP. Disposition Pause
|
||||
beta.235 intégrée, adaptée au choix de masquer la carte. `check build assemblePack`,
|
||||
37 GameTests requis et parcours Vulkan FR/EN GUI 2/3/4 réussis.
|
||||
[MRpack local beta.237](build/Sanctuary-beta.237.mrpack) vérifié ; aucune
|
||||
publication ni mise à jour personnelle.
|
||||
|
||||
## beta.235 — Essai réversible du menu Pause
|
||||
|
||||
[Disposition adaptative](docs/pause-columns-beta235.md) : avant Atlas, Aventure
|
||||
à gauche et Communauté à droite, avec Partie / Game juste dessous. Avec Atlas,
|
||||
une colonne étroite à gauche, Communauté → Aventure → Game, carte au centre.
|
||||
Bloc centré verticalement, libellés de navigation entiers et ordre clavier
|
||||
adapté. Parcours Pause et Story Vulkan FR/EN GUI 2/3/4, `check build assemblePack`
|
||||
et quatre GameTests ciblés réussis.
|
||||
Le commit de disposition `a7bdfe6` peut être annulé indépendamment de la
|
||||
livraison. [MRpack local beta.235](build/Sanctuary-beta.235.mrpack) vérifié,
|
||||
sans publication ni mise à jour personnelle. Le rendu reste à apprécier.
|
||||
|
||||
## beta.234 — Story, recherche et filtres
|
||||
|
||||
[Premier menu Story](docs/story-beta234.md), sous Progression dans Aventure :
|
||||
100 histoires inconnues et désactivées, recherche instantanée et filtre
|
||||
Toutes/Découvertes/Inconnues, cadre de Discovery et retour à Pause. Saisie et
|
||||
défilement conservés au redimensionnement ; trois boutons Aventure centrés
|
||||
avec ou sans Atlas. [Guide](docs/story/README.md) et
|
||||
[modèle Markdown](docs/story/TEMPLATE.md) pour les futurs récits personnels.
|
||||
Textes et déblocages restent à intégrer. `check build assemblePack`, quatre
|
||||
GameTests requis et parcours Vulkan FR/EN GUI 2/3/4 réussis.
|
||||
[MRpack local beta.234](build/Sanctuary-beta.234.mrpack) vérifié ; aucune
|
||||
publication ni mise à jour d'installation personnelle.
|
||||
|
||||
## beta.233 — Navigation centrée et rédaction simplifiée
|
||||
|
||||
[Ajustements du menu et des formulaires](docs/pause-community-beta233.md) : même
|
||||
ordre avec et sans carte, Communauté (Habitant/Faction/Battle) en haut,
|
||||
Aventure (Discovery/Progression) au centre et Partie (options/sortie) en bas,
|
||||
sans barre sous Communauté. Notice Board sans choix de catégorie, notices
|
||||
uniformes, demandes et récompenses sous le texte, puis Publish. Photo et
|
||||
Choose a screenshot de la Gazette avant le titre. Brouillons et anciennes
|
||||
catégories conservés ; parcours de publication et essais Vulkan FR/EN réussis.
|
||||
`check build assemblePack` avec la suite menus : quatre GameTests requis et
|
||||
contrôles communautaires réussis. [MRpack local beta.233](build/Sanctuary-beta.233.mrpack)
|
||||
vérifié ; aucune installation personnelle ni mise à jour du canal.
|
||||
|
||||
## beta.232 — Session solo et progression
|
||||
|
||||
[Réglages et correctifs](docs/solo-gameplay-beta232.md) : fuseau persistant via
|
||||
`/sanctuary time timezone Europe/Paris` ou `auto`, disponible au propriétaire
|
||||
solo sans commandes opérateur. Portée de Construction de 3 à 7 blocs, contour
|
||||
et pose cohérents ; vein mining maintenu enchaînant sur le bloc regardé.
|
||||
Aucun diamant généré par les coffres de l'île initiale ; inventaires déjà
|
||||
remplis et terrain conservés. Avant Atlas : Gazette à gauche, huit boutons
|
||||
centrés, Notice Board à droite, aucune World Map. Build, 26 GameTests requis
|
||||
et essais client Vulkan FR/EN réussis.
|
||||
[MRpack local beta.232](build/Sanctuary-beta.232.mrpack) vérifié ; aucune
|
||||
installation personnelle ni mise à jour du canal.
|
||||
|
||||
## beta.231 — Sous-bois pâles et archipel complet
|
||||
|
||||
[Correctif et visite](docs/diagonal-understory-beta231.md) : herbes, fleurs,
|
||||
tapis de mousse et mousse suspendue dans les parties basses du jardin pâle.
|
||||
Reliefs et autres habitats validés conservés. Cinq GameTests et build complet
|
||||
réussis ; huit expansions activées autour d’une principale de 1024, sur 0.
|
||||
[MRpack normal beta.231](build/Sanctuary-beta.231.mrpack) vérifié.
|
||||
Le joueur choisit une visite immédiate ; prégénération intégrale interrompue
|
||||
proprement, chargement restant pendant l’exploration. Labo Vulkan 32 chunks
|
||||
ouvert au centre de l’île principale ; rendu à apprécier.
|
||||
|
||||
## beta.230 — Terrasses pâles et roche jaune
|
||||
|
||||
[Correctif des diagonales](docs/diagonal-lower-groves-beta230.md) : chênes pâles
|
||||
sur les sols bas, abrités ou à ciel ouvert, dripstone dans le dessous du NE.
|
||||
Savane mêlant roche jaune et pierre normale, minerais conservés. Reliefs,
|
||||
mangroves et plaines validés conservés. Nouveaux profils uniquement.
|
||||
Neuf GameTests, build complet et essais natifs 0/42 réussis.
|
||||
[MRpack normal beta.230](build/Sanctuary-beta.230.mrpack) vérifié ; nouveau
|
||||
labo Vulkan 32 chunks ouvert sur 0. Rendu à apprécier.
|
||||
|
||||
## beta.229 — Marais étagé et cavités sèches
|
||||
|
||||
[Refonte du Nord-Est](docs/diagonal-wetland-beta229.md) : relief de la savane
|
||||
amincie, chênes pâles sous les surplombs, marais et lucioles au-dessus. Eau
|
||||
uniquement dans des cuvettes naturelles fermées. Cavités soufre/dripstone au
|
||||
Sud-Ouest, sans lush caves ; mangroves SE et plaines NO conservées. Nouveaux
|
||||
profils uniquement. Huit GameTests, build complet et essais natifs 0/42
|
||||
réussis. [MRpack normal beta.229](build/Sanctuary-beta.229.mrpack) vérifié ;
|
||||
nouvelle visite Vulkan 32 chunks ouverte sur 0. Rendu à apprécier.
|
||||
|
||||
## beta.228 — Jardin pâle abaissé et fractures anguleuses
|
||||
|
||||
[Finition des diagonales](docs/diagonal-shaping-beta228.md) : jardin pâle
|
||||
nettement abaissé, lacs remis en évidence, formes plus anguleuses dans les
|
||||
mangroves et sur les bordures des plaines. Centre NO, cavités SE et savane SO
|
||||
conservés. Nouveaux profils uniquement. Sept GameTests, build complet et essais
|
||||
natifs sur 0/42 réussis. [MRpack normal beta.228](build/Sanctuary-beta.228.mrpack)
|
||||
vérifié ; visite Vulkan 32 chunks ouverte sur la graine 0. Rendu à apprécier.
|
||||
|
||||
## beta.227 — Berges, dessous et cavités des diagonales
|
||||
|
||||
[Réglages après exploration](docs/diagonal-caves-beta227.md) : jardin pâle plus
|
||||
accidenté avec berges progressives et pourtour fracturé ; dessous désert/savane
|
||||
aminci en gardant la surface ; grandes régions souterraines de lush caves et
|
||||
de dripstone caves sous les mangroves ; érosion étendue vers l’intérieur au
|
||||
Nord-Ouest, avec un centre de plaines conservé. Profils neufs uniquement.
|
||||
Six GameTests, build complet et activations/reprise sur 0/42 réussis.
|
||||
[MRpack normal beta.227](build/Sanctuary-beta.227.mrpack) vérifié ; nouvelle visite
|
||||
Vulkan 32 chunks ouverte sur la graine 0, quatre diagonales prêtes. Rendu à apprécier.
|
||||
|
||||
## beta.226 — Quatre reliefs diagonaux distincts
|
||||
|
||||
[Refonte des silhouettes](docs/diagonal-relief-beta226.md) : grandes plaines
|
||||
centrales et bords rongés au Nord-Ouest ; bassins conservés, marais peu profonds
|
||||
et hauts reliefs émergés au Nord-Est ; désert/savane sur terrain flottant 3D au
|
||||
Sud-Ouest ; récifs verticaux à mangrove dominante au Sud-Est, avec boue, argile
|
||||
et calcite. Diamètre 1024 et axes climatiques conservés. Nouveaux mondes
|
||||
uniquement ; les profils précédents restent disponibles pour leurs sauvegardes.
|
||||
Six GameTests, build complet et activations/reprise sur 0/42 réussis.
|
||||
[MRpack normal beta.226](build/Sanctuary-beta.226.mrpack) vérifié ; visite Vulkan
|
||||
32 chunks ouverte sur la graine 0, quatre diagonales prêtes. Rendu à apprécier.
|
||||
|
||||
## beta.225 — Diagonales climatiques et cannes à sucre
|
||||
|
||||
[Première génération des quatre diagonales](docs/diagonal-islands-beta225.md),
|
||||
chacune de **1024 blocs** : Nord-Est humide avec jardin pâle et marais,
|
||||
Nord-Ouest frais avec meadow et taïga, Sud-Est tropical avec mangroves et jungles,
|
||||
Sud-Ouest sec avec désert et savane. Cannes à sucre sur les berges existantes
|
||||
de Sanctuary Island. Nouveaux profils Petit/Moyen/Grand uniquement ;
|
||||
les quatre cardinales validées et les anciens profils sont conservés.
|
||||
Six GameTests, build et activations/reprise sur les graines 42/0 réussis.
|
||||
Le [MRpack normal](build/Sanctuary-beta.225.mrpack) contient ces ajouts sans Test ;
|
||||
le rendu reste à apprécier en jeu.
|
||||
|
||||
## beta.224 — Stries du cratère Est
|
||||
|
||||
[Finition du volcan](docs/east-crater-beta224.md) : relief 223 conservé, lignes
|
||||
concentriques et hachures verticales, obsidienne étendue et fissures de magma.
|
||||
Plantation des arbres géants limitée au sol naturel. Sept GameTests ciblés,
|
||||
build et essais natifs 42/0 réussis ; [MRpack normal](build/Sanctuary-beta.224.mrpack)
|
||||
vérifié. Nouvelle visite Vulkan 32 chunks ouverte ; rendu à apprécier en jeu.
|
||||
|
||||
## beta.223 — Volcan flottant de l’Est
|
||||
|
||||
[Premier volcan et jungles](docs/east-volcano-beta223.md) : cône asymétrique,
|
||||
cratère de lave fermé, ravines ramifiées, jungles ouvertes/denses et bambou,
|
||||
grands arbres natifs, pandas et temple de jungle avec pièges et butin.
|
||||
Expansion Est 1024, nouveaux profils uniquement. Build, sept GameTests ciblés
|
||||
et essais natifs 42/0 réussis ; [MRpack normal](build/Sanctuary-beta.223.mrpack)
|
||||
vérifié. Visite Vulkan 32 chunks ouverte ; rendu à apprécier en jeu.
|
||||
Nord, Sud, Ouest et île principale conservés.
|
||||
|
||||
## beta.222 — Roche jaune et déclinaisons
|
||||
|
||||
[Famille de construction](docs/yellow-rock-beta222.md) : nouveau nom Roche jaune,
|
||||
escaliers et dalles, recettes natives à l’établi et au tailleur de pierre.
|
||||
Bloc dans Naturel, famille dans Construction à côté de Stone. Génération 221
|
||||
conservée ; cinq GameTests et 87 états de modèles sous Vulkan vérifiés.
|
||||
[MRpack normal](build/Sanctuary-beta.222.mrpack) prêt.
|
||||
|
||||
## beta.221 — Pierre jaune de l’Ouest
|
||||
|
||||
[Finition des parois](docs/west-yellow-stone-beta221.md) : arbres écorcés et
|
||||
passe de ravins retirés, relief 3D conservé avec un Voronoi discret, sols plus
|
||||
cohérents. Nouvelle pierre jaune mineable, juste après Stone dans Naturel et
|
||||
Construction. Build, six GameTests ciblés et essais natifs 42/0 réussis ;
|
||||
[MRpack normal](build/Sanctuary-beta.221.mrpack) vérifié. Nouveaux profils uniquement.
|
||||
|
||||
## beta.220 — Couronne vivante de l’Ouest
|
||||
|
||||
[Berges et reliefs](docs/west-living-rim-beta220.md) : plage libre de 12–15 blocs,
|
||||
palmiers en retrait, bosquets fleuris, cactus, bois mort et herbes sèches.
|
||||
Reliefs, ravins et cavités 3D sur le pourtour ; océan, monument et épaves
|
||||
conservés. Build, cinq GameTests ciblés et essais natifs 42/0 réussis ;
|
||||
[MRpack normal](build/Sanctuary-beta.220.mrpack) vérifié. Nouveaux profils uniquement.
|
||||
|
||||
## beta.219 — Plages basses de l’Ouest
|
||||
|
||||
[Finition des berges](docs/west-beaches-beta219.md) : sable au niveau de l’eau
|
||||
sur environ quatre blocs, montée douce et palmiers denses sur la rive intérieure.
|
||||
Soufre et cinabre retirés de cette couronne. Océan, temple et épaves 218 conservés.
|
||||
Six GameTests ciblés et essais natifs 42/0 réussis ;
|
||||
[MRpack normal](build/Sanctuary-beta.219.mrpack) vérifié. Nouveaux profils uniquement.
|
||||
|
||||
## beta.218 — Falaises sous-marines et oasis de l’Ouest
|
||||
|
||||
[Nouvelle cuve océanique](docs/west-oasis-beta218.md) : plateau sous-marin,
|
||||
fracture centrale avec monument, plages de grès et palmiers, soufre et cinabre,
|
||||
quatre épaves natives. Racines et calcite retirées de ce nouvel Ouest.
|
||||
Île principale, Nord, Sud et anciens profils conservés. Sept GameTests et
|
||||
essais natifs 42/0 réussis ; [MRpack normal](build/Sanctuary-beta.218.mrpack)
|
||||
vérifié. Nouvelle visite Vulkan 32 chunks ; rendu à apprécier en jeu.
|
||||
|
||||
## beta.217 — Mer suspendue de l’Ouest
|
||||
|
||||
[Premier océan](docs/west-ocean-beta217.md) : mer de 1024 blocs, cuve rocheuse
|
||||
fermée, racines ramifiées et bords minéraux déformés par bruit 3D. Monument
|
||||
océanique obligatoire, coraux et relais surélevé. Nord, Sud et île principale
|
||||
conservés. Build, cinq GameTests ciblés et essais natifs 42/0 réussis ;
|
||||
[MRpack normal](build/Sanctuary-beta.217.mrpack) vérifié. Nouvelle visite
|
||||
Vulkan à 32 chunks ouverte ; rendu à apprécier en jeu.
|
||||
|
||||
## beta.216 — Forêts et pièges du Sud
|
||||
|
||||
[Dernière passe du Sud](docs/south-forest-beta216.md) : forêts denses de chênes
|
||||
sur la terre, sentiers de surface, pyramide sans torches et plaques piégées
|
||||
dans les salles et couloirs. Les 14 teintes et le relief sont conservés.
|
||||
Huit GameTests ciblés, assemblages et essais natifs 42/0 réussis ;
|
||||
[MRpack normal](build/Sanctuary-beta.216.mrpack) vérifié. Nouvelle visite
|
||||
Vulkan 32 chunks ouverte. La graine 0 reste sans pyramide faute de site enterré.
|
||||
|
||||
## beta.215 — Relais régionaux
|
||||
|
||||
[Monuments du Nord et du Sud](docs/regional-relays-beta215.md) : relais
|
||||
surélevés, socles massifs et matériaux locaux ; rosace entièrement colorée.
|
||||
Village Far West retiré des nouveaux profils, pyramide extérieure agrandie
|
||||
à 31 × 31, intérieur conservé. Contrôles purs, dix GameTests ciblés et
|
||||
essais natifs Sud 42 / Nord 0 réussis. [MRpack normal](build/Sanctuary-beta.215.mrpack)
|
||||
exporté localement ; nouvelle visite Vulkan à 32 chunks. Rendu à apprécier en jeu.
|
||||
|
||||
## beta.214 — Village Far West abandonné
|
||||
|
||||
[Village décoratif du Sud](docs/south-western-beta214.md) : sept ou huit maisons
|
||||
en chêne noir, rue principale, porches, façades ornées, lanternes et traces
|
||||
d’abandon. Implantation et dimensions varient avec la graine, sur les surfaces
|
||||
du canyon. Terrain et pyramide 213 conservés ; nouveaux profils uniquement.
|
||||
Contrôles purs, neuf GameTests ciblés et génération/reprise sur 42/0 réussis.
|
||||
[MRpack normal](build/Sanctuary-beta.214.mrpack) exporté localement ; nouvelle
|
||||
visite Vulkan à 32 chunks ouverte. Le rendu reste à apprécier en jeu.
|
||||
|
||||
## beta.213 — Pyramide et chambres enterrées
|
||||
|
||||
[Correction ciblée du Sud](docs/south-buried-beta213.md) : relief et couleurs
|
||||
212 conservés, sables de surface et acacias custom retirés. Pyramide camouflée
|
||||
en terracotta locale, descente vers dix petites salles, couloirs et pièges.
|
||||
Nouveaux profils uniquement. Contrôles purs, 12 GameTests ciblés et essais natifs
|
||||
42/0 réussis ; [MRpack normal](build/Sanctuary-beta.213.mrpack) exporté localement.
|
||||
Rendu à apprécier dans la nouvelle visite Vulkan à 32 chunks.
|
||||
|
||||
## beta.212 — Couronnes colorées et complexe du désert
|
||||
|
||||
[Évolution du Sud](docs/south-rings-beta212.md) : couleurs radiales visibles,
|
||||
reliefs de mesa localisés, désert clair, arbres secs et petits arbres feuillus.
|
||||
Grand complexe de grès avec salles, caches et pièges TNT.
|
||||
Nouveaux profils uniquement ; Nord et île principale conservés.
|
||||
Contrôles purs, 12 GameTests ciblés et essais natifs 42/0 réussis ;
|
||||
[MRpack normal](build/Sanctuary-beta.212.mrpack) exporté localement.
|
||||
Rendu à apprécier dans la nouvelle visite Vulkan à 32 chunks.
|
||||
|
||||
## beta.211 — Sud fracturé et cœur coloré
|
||||
|
||||
[Refonte des Badlands](docs/south-shattered-beta211.md) : retour au bruit 3D
|
||||
natif flottant, fissures sans Voronoi, dessous aminci, bandes vanilla dehors
|
||||
et huit teintes dans le cœur exposé. Sud 1024, nouveaux profils uniquement.
|
||||
Contrôles purs, 10 GameTests ciblés et essais natifs 42/0 passés ;
|
||||
[MRpack normal](build/Sanctuary-beta.211.mrpack) exporté localement.
|
||||
Le rendu reste à apprécier dans la nouvelle visite Vulkan à 32 chunks.
|
||||
|
||||
## beta.210 — teintes et végétation des canyons
|
||||
|
||||
[Habillage du Sud](docs/south-palette-beta210.md) : quatre familles terreuses par
|
||||
massif, strates irrégulières discrètes, sol de vallée continu et végétation sèche
|
||||
aussi sur les mesas. Relief 209 et Nord 208 conservés. Nouveaux profils uniquement.
|
||||
Build, 11 tests ciblés et essais natifs 42/0 réussis ;
|
||||
[MRpack normal](build/Sanctuary-beta.210.mrpack) exporté localement.
|
||||
Le rendu reste à apprécier dans la nouvelle visite Vulkan à 32 chunks.
|
||||
|
||||
## beta.209 — premier Sud multicolore
|
||||
|
||||
[Prototype des Badlands](docs/south-badlands-beta209.md) : expansion Sud de 1024 blocs,
|
||||
réseau de canyons par Voronoi inversé, mesas et strates plissées avec les seize
|
||||
terracottas. Sables assortis sur les surfaces portantes ; Nord 208 conservé.
|
||||
Nouveaux profils uniquement. Compilation, contrôles ciblés et essais natifs
|
||||
sur 42 et 0 passés ; [MRpack normal](build/Sanctuary-beta.209.mrpack) exporté
|
||||
localement. Le rendu est à apprécier dans la nouvelle visite.
|
||||
|
||||
## beta.208 — crêtes et replats glacés du Nord
|
||||
|
||||
[Dernière passe du Nord](docs/north-ridges-beta208.md) : sommets anguleux,
|
||||
entailles et replats localisés avec poches et aiguilles de glace. Taïga,
|
||||
améthyste, igloos et manoir en épicéa conservés. Nouveaux profils uniquement ;
|
||||
compilation, tests ciblés et essais natifs sur 42 et 0 passés.
|
||||
[MRpack normal](build/Sanctuary-beta.208.mrpack) exporté localement.
|
||||
|
||||
## beta.207 — paysages et manoir du Nord
|
||||
|
||||
[Nouvelle passe du Nord](docs/north-landscape-beta207.md) : neige irrégulière
|
||||
dans une partie des taïgas, reliefs Voronoi localisés sur les hauts plateaux et
|
||||
manoir procédural en épicéa. Diamètre, dessous aminci et failles d’améthyste
|
||||
conservés. Profils neufs uniquement ; contrôles natifs sur les graines 42 et 0
|
||||
passés. [MRpack normal](build/Sanctuary-beta.207.mrpack) exporté localement.
|
||||
|
||||
## beta.206 — cavités froides du Nord
|
||||
|
||||
Le [nouveau dessous du Nord](docs/north-cavities-beta206.md) conserve le paysage
|
||||
de surface de la 205 et amincit sa masse rocheuse avec des épaisseurs variables.
|
||||
Les cavités accueillent glace, eau dans les creux fermés et failles ouvertes
|
||||
d’améthyste bordées de calcite et de basalte. Nouveaux mondes uniquement ;
|
||||
la répartition géographique diorite/granit reste à décider.
|
||||
Contrôles natifs sur les graines 42 et 0 passés ;
|
||||
[MRpack normal](build/Sanctuary-beta.206.mrpack) exporté localement.
|
||||
|
||||
## beta.205 — Nord en bruit 3D natif
|
||||
|
||||
Le [nouveau profil nordique](docs/north-noise-beta205.md) retire l'étirement Peaks
|
||||
et ses montagnes ajoutées. L'enveloppe grandit autour du bruit natif, puis la
|
||||
taïga et la glace habillent ses surfaces. La lecture des hauteurs est interpolée
|
||||
entre les points de mesure pour éviter les carrés de palette. Contrôles et
|
||||
génération/reprise sur les graines 42 et 0 validés ; rendu à confirmer en visite.
|
||||
[MRpack normal](build/Sanctuary-beta.205.mrpack) exporté localement.
|
||||
|
||||
## beta.204 — Sanctuary autonome et Nord Peaks
|
||||
|
||||
Le [chantier d’intégration](docs/base-peaks-beta204.md) transfère Demeure et
|
||||
le terrain validé dans le mod principal. Sanctuary normal propose l’île récente
|
||||
en Small, Medium ou Large ; le module Test reste facultatif pour les outils de
|
||||
laboratoire. Le nouveau Nord reprend Peaks avec sa taïga géante et ses glaces.
|
||||
Compilation, contrôles ciblés, création des trois tailles sans Test et éditeur
|
||||
Vulkan FR/EN validés. [MRpack normal](build/Sanctuary-beta.204.mrpack) exporté
|
||||
localement ; aucun canal public mis à jour. Nouveaux mondes uniquement.
|
||||
|
||||
## beta.203 — fractures et taïga géante au Nord
|
||||
|
||||
[Dernière passe du Nord](docs/north-fracture-beta203.md) : variations de relief
|
||||
@@ -2859,9 +3810,11 @@ sauvegarde 26.2 : aucun outil de migration de ses chunks n'est livré ici.
|
||||
|
||||
It's Alive !, Only Fun et Master Key restent des modules autonomes prévus par la
|
||||
vision. Leurs sources 26.2 ne sont pas copiées dans ce socle. Fabric API est
|
||||
requise ; Demeure et le port source de JEI pour 26.3 sont imbriqués
|
||||
dans le JAR Sanctuary. Leurs sources ou leur procédure de reconstruction et
|
||||
leurs attributions figurent dans `mods/demeure/` et `mods/jei/`.
|
||||
requise ; Demeure appartient au code interne de Sanctuary. Depuis beta.257,
|
||||
le port source de JEI pour 26.3 et Sound Physics sont des mods client séparés
|
||||
et facultatifs, comme Sodium. Leurs sources ou procédures de reconstruction
|
||||
et leurs attributions figurent dans `mods/demeure/`, `mods/jei/` et
|
||||
`mods/sound-physics-remastered/`.
|
||||
|
||||
## Travailler par tickets
|
||||
|
||||
|
||||
+240
-5
@@ -1,5 +1,62 @@
|
||||
# Provenance et crédits
|
||||
|
||||
## Mods facultatifs beta.292
|
||||
|
||||
Les binaires officiels de [Simple Voice Chat 2.6.24+26.3](https://modrinth.com/plugin/simple-voice-chat/version/OLnMVWXy)
|
||||
(Max Henkel, All Rights Reserved), [Bobby 5.2.16+mc26.3](https://modrinth.com/mod/bobby/version/J7YnfCss)
|
||||
(johni0702, LGPL-3.0-or-later), [Lithium 0.26.2+mc26.3](https://modrinth.com/mod/lithium/version/xS0Q8LSi)
|
||||
(CaffeineMC et contributeurs, LGPL-3.0-only) et
|
||||
[Entity Culling 1.11.3 pour 26.3](https://modrinth.com/mod/entityculling/version/X1g3VhTx)
|
||||
(tr7zw et contributeurs, tr7zw Protective License) sont téléchargés séparément
|
||||
par packwiz, sans modification ni imbrication dans Sanctuary. Leurs notices,
|
||||
licences et bibliothèques imbriquées restent attachées aux JAR originaux.
|
||||
Leurs métadonnées et SHA-512 sont dans `packwiz/mods/` ;
|
||||
[choix de versions et vérifications](docs/optional-mods-beta292.md).
|
||||
|
||||
## Installateur packwiz Sanctuary beta.291
|
||||
|
||||
Le bandeau `launcher/packwiz/sanctuary.png` est le fichier `minecraft.png`
|
||||
fourni par le créateur le 26 octobre 2026, conservé sans modification.
|
||||
`InstallWindow.java` adapte la fenêtre de packwiz-installer v0.5.14 de
|
||||
comp500, sous MIT ; licence et source sont joints au JAR généré. Toutes les
|
||||
autres classes et les notices des dépendances de l'installateur officiel
|
||||
restent identiques. Sources, hashes et périmètre dans
|
||||
[le contrat du logo packwiz](docs/packwiz-logo-beta291.md).
|
||||
|
||||
## Tenues des zombies beta.287
|
||||
|
||||
Les neuf PNG `zombie.png`, `zombie2.png` à `zombie9.png` sont fournis par le
|
||||
créateur le 26 octobre 2026. Ils sont copiés sans modification sous
|
||||
`assets/sanctuary/textures/entity/zombies/zombie1.png` à `zombie9.png`.
|
||||
Le [reçu des sources et dérivés](docs/zombie-skins-beta287.json) conserve
|
||||
leurs SHA-256. `scripts/prepare_zombie_skins.py` produit aussi neuf adaptations
|
||||
UV pour le modèle bébé natif de Minecraft 26.3 par rééchantillonnage déterministe
|
||||
des faces ; aucun générateur d’image n’intervient. La géométrie et les couches
|
||||
d’armure restent issues de Minecraft. Les notices historiques des anciennes
|
||||
recolorations ci-dessous décrivent les livraisons précédentes.
|
||||
|
||||
Depuis beta.256, le pack client inclut [Sodium 0.9.2+mc26.3](https://modrinth.com/mod/sodium/version/bAZQdGpg),
|
||||
de JellySquid et des contributeurs CaffeineMC, sous Polyform-Shield-1.0.0.
|
||||
Le JAR officiel est une dépendance séparée téléchargée par packwiz ; il n’est
|
||||
pas intégré au code ni au JAR Sanctuary. La version et son SHA-512 sont fixés
|
||||
dans `packwiz/mods/sodium.pw.toml`. Les [sources de Sodium](https://github.com/CaffeineMC/sodium)
|
||||
et la licence de sa distribution conservent leurs auteurs et notices.
|
||||
|
||||
La musique du menu beta.253 provient du fichier `sanctuary-menu.m4a` fourni par
|
||||
le créateur le 8 octobre 2026 pour son intégration dans Sanctuary. Le fichier
|
||||
original reste intact ; sa piste audio complète est convertie en OGG Vorbis
|
||||
stéréo à 48 kHz, qualité 6 avec libvorbis 1.3.7. Les empreintes du fichier fourni
|
||||
et de l'OGG sont dans
|
||||
`mods/sanctuary/src/main/resources/licenses/Menu-Music-ASSET.json`, également
|
||||
embarqué dans le JAR sous `licenses/Menu-Music-ASSET.json`.
|
||||
|
||||
Depuis beta.257, Sound Physics Remastered **1.5.1+26.3**, GPL-3.0-only,
|
||||
est un JAR client séparé et facultatif (imbriqué entre beta.252 et beta.256). Sonic Ether, vlad2305m, Max Henkel et
|
||||
Saint conservent leurs crédits. Le binaire officiel et son SHA-512 sont figés ;
|
||||
voir `mods/sound-physics-remastered/PROVENANCE.md` pour les sources, la bibliothèque
|
||||
ConfigBuilder incorporée et l'adaptation des options. Le JAR Sanctuary contient
|
||||
la licence et cette provenance dans `licenses/sound-physics-remastered/`.
|
||||
|
||||
Le code Sanctuary est distribué sous GPL-3.0-or-later, comme la version 26.2 dont
|
||||
la génération est reprise. Voir `LICENSE` et `docs/migration-26.2.md` pour la
|
||||
provenance détaillée et le périmètre du portage.
|
||||
@@ -52,11 +109,11 @@ Les resource packs, shaders et mods communautaires envisagés dans la vision
|
||||
ne sont pas inclus automatiquement. Chaque ajout aura une version, une source,
|
||||
un hash et les crédits de sa distribution.
|
||||
|
||||
Demeure est embarqué comme mod autonome, sous GPL-3.0-or-later. Son modèle
|
||||
Demeure est intégré au code de Sanctuary depuis beta.204, sous GPL-3.0-or-later. Son modèle
|
||||
provient des sources de KOKA99CAB dans `Structures/demeure`, référencées par
|
||||
l’inventaire 26.2, et a été adapté à Minecraft 26.3-pre-2. Voir
|
||||
`mods/demeure/PROVENANCE.md` pour les empreintes et les différences du port.
|
||||
Le JAR Demeure contient sa licence et ce document de provenance.
|
||||
Le JAR Sanctuary conserve sa licence GPL et `licenses/Demeure-PROVENANCE.md`.
|
||||
|
||||
## Inventaire beta.010
|
||||
|
||||
@@ -84,14 +141,52 @@ L’icône d’objet correspondante provient de `../26.2/sanctuary`
|
||||
restent la propriété de leurs auteurs et ne sont pas placées sous la licence
|
||||
du code Sanctuary. Il ne s’agit pas d’une cape officielle accordée au compte.
|
||||
|
||||
Les familiers utilisent les modèles et textures résolus par Minecraft installé ;
|
||||
aucune copie des textures de mobs ni aucun ancien pouvoir n’est embarqué.
|
||||
Les familiers vanilla utilisent les modèles et textures résolus par Minecraft
|
||||
installé. L'exception du premier infecté est décrite ci-dessous.
|
||||
|
||||
## Infecté beta.280
|
||||
|
||||
Le modèle, les animations, l'armure et les sons sont ceux du zombie installé
|
||||
avec Minecraft 26.3. Aucun modèle ou son de Left 4 Dead n'est inclus ; cette
|
||||
série reprend seulement l'idée de rôles différents pour des zombies.
|
||||
|
||||
La texture `assets/sanctuary/textures/entity/infected.png` est une recoloration
|
||||
déterministe du zombie **Minecraft 26.3**, réalisée par
|
||||
`scripts/generate_infected_texture.py` à partir du JAR installé. Seules les
|
||||
couleurs du t-shirt et du pantalon changent ; coordonnées UV, peau, visage,
|
||||
chaussures et transparence restent identiques. Empreinte SHA-256 du PNG natif :
|
||||
`1b88eea9b63889c2c3399773f887af375defc3aad0e7a375adc84249da54cbbd`.
|
||||
Aucune texture produite par ImageGen n'est livrée.
|
||||
|
||||
L'icône `textures/item/infected_spawn_egg.png` est reprise intacte de Sanctuary
|
||||
26.2, commit `26f2c2a0061619df1f146f9081d6740c560a7497`, module `itsalive`.
|
||||
Elle provenait d'une recoloration de l'œuf Minecraft par
|
||||
`itsalive/tools/generate_infected_textures.sh`. Ces ressources dérivées ne sont
|
||||
pas couvertes par la licence GPL du code ; les droits sur les ressources
|
||||
Minecraft restent à Mojang/Microsoft.
|
||||
|
||||
## Chargeur beta.282
|
||||
|
||||
`assets/sanctuary/textures/entity/charger.png` utilise le même PNG natif du
|
||||
zombie Minecraft 26.3 et les mêmes masques UV que l'Infecté. La sélection
|
||||
`--variant charger` de `scripts/generate_infected_texture.py` produit un
|
||||
t-shirt vert et un pantalon anthracite, avec peau, visage, chaussures et alpha
|
||||
conservés pixel pour pixel. Aucun dessin génératif ni modèle de Left 4 Dead.
|
||||
SHA-256 : `cf2344d870753ed621b9fd7c3fd7dfe0b3dc35294620e798f113b71abd27fbda`.
|
||||
|
||||
L'icône `textures/item/charger_spawn_egg.png` est reprise intacte du module
|
||||
`itsalive` de Sanctuary 26.2, commit
|
||||
`26f2c2a0061619df1f146f9081d6740c560a7497`, générée à partir de l'œuf Minecraft.
|
||||
Les droits sur les ressources Minecraft restent à Mojang/Microsoft.
|
||||
|
||||
## JEI beta.024
|
||||
|
||||
Just Enough Items, mezz, MIT : fork source de la branche 26.2, commit
|
||||
`aae2dfcfb82e6b5bce787ba72bb2eda7339b274f`, adapté à Minecraft 26.3-pre-2.
|
||||
Le JAR contient la licence d’origine et [la provenance du portage](mods/jei/PROVENANCE.md).
|
||||
Depuis beta.280, le fork Minecraft 26.3 `30.32.0-sanctuary.4` est à nouveau
|
||||
embarqué dans le JAR Sanctuary, avec la licence d’origine et
|
||||
[la provenance du portage](mods/jei/PROVENANCE.md). Sa distribution séparée
|
||||
facultative concernait les beta.257–278.
|
||||
Les patches et la reconstruction sont fournis ; les téléchargements restent ignorés.
|
||||
Baked Substring Index 0.1.0 (MIT, James Mitchell) et Suffix Tree 1.1.0
|
||||
(Apache-2.0, Alessandro Bahgat Shehata) sont inclus avec leurs licences.
|
||||
@@ -143,3 +238,143 @@ embarqué comme dépendance imbriquée, sans modification, pour le stockage
|
||||
communautaire optionnel. Sa licence est fournie dans `licenses/mariadb-connector-j-LGPL-2.1.txt` du JAR Sanctuary.
|
||||
Sources correspondantes : https://github.com/mariadb-corporation/mariadb-connector-j/tree/3.5.10
|
||||
(distribution Maven Central 3.5.10).
|
||||
|
||||
## Tyroliennes et grappin beta.242
|
||||
|
||||
Poulies, modèles, recettes, textures provisoires et rendu segmenté des câbles
|
||||
repris du module `iliketomoveit` de Sanctuary 26.2 (KOKA99CAB), référence
|
||||
`26f2c2a0061619df1f146f9081d6740c560a7497`, sous GPL-3.0-or-later.
|
||||
Les sources Beta adaptent les API Minecraft 26.3 et remplacent le balancement
|
||||
par une tyrolienne portative temporaire. Le dépôt historique reste inchangé.
|
||||
Les trois PNG provisoires sont copiés octet pour octet ; la texture finale
|
||||
est réservée au créateur. Le rendu du câble utilise les laisses natives
|
||||
Minecraft ; les modèles de poulie référencent les textures natives fer
|
||||
et béton noir de Mojang/Microsoft. Aucun JAR 26.2 n’est redistribué.
|
||||
|
||||
## Insectes beta.245
|
||||
|
||||
Les 47 sprites 16 × 16 d’**Animal Crossing: Wild World** ont été fournis par
|
||||
le créateur dans son dossier `insect`, le 8 octobre 2026. Ils sont conservés
|
||||
octet pour octet dans `assets/sanctuary/textures/insect/`. **Nintendo** reste
|
||||
titulaire des éléments graphiques du jeu ; la licence GPL du code Sanctuary
|
||||
ne leur attribue pas une licence libre. Les noms des fichiers fournis et
|
||||
leurs SHA-256 sont consignés dans [l’inventaire](docs/insects-assets.json).
|
||||
|
||||
Les habitats, mois, horaires et pics suivent la
|
||||
[liste Nookipedia Wild World](https://nookipedia.com/wiki/Bug/Wild_World),
|
||||
consultée le 8 octobre 2026 (révision 1240938). Les adaptations Minecraft,
|
||||
le calendrier numérique et les limites sont décrits dans
|
||||
[le ticket INSECT-01](docs/insects-wild-world-beta245.md).
|
||||
Le modèle du filet référence les textures natives de Minecraft sans les copier.
|
||||
|
||||
## Sons des insectes beta.248
|
||||
|
||||
Neuf extraits naturels de Wikimedia Commons et Freesound sont fournis dans
|
||||
`assets/sanctuary/sounds/insects/`. Ils conservent leurs licences propres,
|
||||
distinctes du code GPL : CC0, CC BY 2.1 Japan, CC BY 3.0, CC BY 4.0 et
|
||||
CC BY-SA 3.0. L’adaptation de la cigale du soir
|
||||
reste sous CC BY-SA 3.0. Auteurs : ISAKA Yoji (Cory), Σ64,
|
||||
あおもりくま (aomorikuma), ClaudeDebussy, YaCoUYaCoU, AmberdeMeillon et IanFSA.
|
||||
Découpes, filtrage, réduction de bruit, volume, mono OGG et fondus par Sanctuary.
|
||||
Les [crédits et liens de licences](docs/insect-audio-credits.md) et
|
||||
[l’inventaire des fichiers](docs/insect-audio-assets.json) sont aussi inclus
|
||||
dans le JAR sous `licenses/Insect-Audio-CREDITS.md` et
|
||||
`licenses/Insect-Audio-ASSETS.json`. Les trois fichiers Freesound utilisent
|
||||
leurs aperçus publics de haute qualité ; la cigale du soir utilise la
|
||||
conversion MP3 publique de Commons. Aucun enregistrement d’Animal Crossing
|
||||
n’est inclus. L’identification biologique du grillon reste non précisée ;
|
||||
la courtilière européenne sert d’analogue sonore.
|
||||
|
||||
## Spitter beta.283
|
||||
|
||||
`assets/sanctuary/textures/entity/spitter.png` est une recoloration déterministe
|
||||
du zombie Minecraft 26.3 via `scripts/generate_infected_texture.py --variant spitter`.
|
||||
Seuls le t-shirt orange et le pantalon bleu ardoise changent. Peau, visage,
|
||||
chaussures, alpha et UV restent identiques au PNG natif décrit ci-dessus.
|
||||
SHA-256 : `92f6a8f7ad09a817fc74bfc2728a5f75d34a838dcc91a2ddee336c31803c0592`.
|
||||
Aucun modèle, son ou dessin génératif de Left 4 Dead n'est inclus.
|
||||
|
||||
L'icône `textures/item/spitter_spawn_egg.png` est reprise intacte du module
|
||||
`itsalive` de Sanctuary 26.2, commit
|
||||
`26f2c2a0061619df1f146f9081d6740c560a7497`, dérivée de l'œuf Minecraft.
|
||||
Les droits sur les ressources Minecraft restent à Mojang/Microsoft.
|
||||
|
||||
## Boomer beta.284
|
||||
|
||||
`assets/sanctuary/textures/entity/boomer.png` est une recoloration déterministe
|
||||
du zombie Minecraft 26.3 par `scripts/generate_infected_texture.py --variant boomer`.
|
||||
T-shirt violet et pantalon sable : 570 pixels de vêtements changent, avec
|
||||
visage, peau, chaussures, UV et transparence conservés. SHA-256 :
|
||||
`2cbc0a87435c8f12fbbd77bd3d7fc23c9843e9ae22493dbfb6ffe14ea492c230`.
|
||||
|
||||
Le même script recolore en violet la silhouette et les ombres de l'icône
|
||||
`spitter_spawn_egg.png` historique, décrite ci-dessus, pour produire
|
||||
`textures/item/boomer_spawn_egg.png`. SHA-256 :
|
||||
`dd11449f7072db2faf753e5d258acfe8e5d2c50116e076d9b799345ed5f62ffa`.
|
||||
Les droits sur ces ressources dérivées restent à Mojang/Microsoft. Aucun
|
||||
modèle, son ou bitmap de Left 4 Dead, ni texture générative, n'est livré.
|
||||
|
||||
## Smoker beta.285
|
||||
|
||||
`assets/sanctuary/textures/entity/smoker.png` est une recoloration déterministe
|
||||
du zombie Minecraft 26.3 par `scripts/generate_infected_texture.py --variant smoker`.
|
||||
T-shirt gris clair et pantalon vert olive : 570 pixels de vêtements modifiés ;
|
||||
visage, peau, chaussures, UV et alpha conservés. SHA-256 :
|
||||
`80b7b34c915466d2c022f2222bd5bedf5b5b6c39ab447a97dcae7edf66ba4d17`.
|
||||
|
||||
Le même script dérive `textures/item/smoker_spawn_egg.png` de la silhouette et
|
||||
des ombres de l'icône historique `spitter_spawn_egg.png`, avec la teinte du
|
||||
t-shirt. SHA-256 :
|
||||
`e73b7d1e08ef0f35bfc7bac3e81795b166b56d9a5267045bcef64ae311c256c6`.
|
||||
La tête du lasso utilise l'objet laisse natif et son câble le rendu natif des
|
||||
laisses tendues déjà employé par les tyroliennes. Aucun modèle, son ou bitmap
|
||||
de Left 4 Dead ni texture générative n'est inclus. Les droits sur les ressources
|
||||
Minecraft dérivées restent à Mojang/Microsoft.
|
||||
|
||||
## Hunter beta.286
|
||||
|
||||
`assets/sanctuary/textures/entity/hunter.png` est une recoloration déterministe
|
||||
du zombie Minecraft 26.3 par `scripts/generate_infected_texture.py --variant hunter`.
|
||||
T-shirt bleu et pantalon anthracite : 570 pixels de vêtements modifiés ; tête,
|
||||
peau, chaussures, UV et alpha conservés. SHA-256 :
|
||||
`1057efc7947105684a24fe165e83581b66fccc877687433cc00ed80231c2c970`.
|
||||
|
||||
Le même script dérive `textures/item/hunter_spawn_egg.png` de la silhouette et
|
||||
des ombres de l'icône historique `spitter_spawn_egg.png`, avec la teinte du
|
||||
t-shirt. SHA-256 :
|
||||
`294bbd145e09707f2006d51e9190b538b50148c44c13f3ecaf563e316f03384d`.
|
||||
Les sons et le modèle sont natifs à Minecraft. Aucun bitmap ou son de Left 4
|
||||
Dead ni texture générative n'est inclus. Les droits sur les ressources
|
||||
Minecraft dérivées restent à Mojang/Microsoft.
|
||||
|
||||
## Baleine fantôme volante beta.290
|
||||
|
||||
Le modèle, son animation, le rendu, l’IA et le spawner proviennent du module
|
||||
`itsalive` de Sanctuary 26.2, commit
|
||||
`94644a28f05b8010f06ec1181fe6c74a50ad80d6`, sous la licence du projet
|
||||
GPL-3.0-or-later. Cette source est elle-même le port de la baleine du JAR
|
||||
historique Real Ghost ; aucune archive 26.2 n’est redistribuée.
|
||||
`textures/entity/flying_whale/flying_whale.png` est repris octet pour octet.
|
||||
SHA-256 : `0828ba1b9443f31cdb0ce9c22393a8702a72b9e59c2a0c02f3dd6dedadd33fb8`.
|
||||
|
||||
L’icône `textures/item/flying_whale_spawn_egg.png` est une recoloration
|
||||
déterministe directe de `assets/minecraft/textures/item/egg.png` de Minecraft
|
||||
26.3, produite par `scripts/generate_whale_egg.py` ; silhouette, alpha et
|
||||
ombrage natifs conservés. Source SHA-256 :
|
||||
`3bfccf5fcfe66933d591e944f6b08456c8083f5c3898b924da52bfebc41e6322`.
|
||||
Résultat SHA-256 :
|
||||
`d476a3fedba3af3e463d6461b81cf6ca8702fe10ceb3934f426390d59da63f7e`.
|
||||
Les sons et particules sont natifs à Minecraft, référencés sans copie ; les
|
||||
droits sur les ressources Minecraft dérivées restent à Mojang/Microsoft.
|
||||
|
||||
|
||||
## Happy creepers
|
||||
|
||||
`assets/sanctuary/textures/entity/creeper/happy.png` est repris sans modification
|
||||
du module `itsalive` de Sanctuary 26.2, commit
|
||||
`26f2c2a0061619df1f146f9081d6740c560a7497`, chemin
|
||||
`itsalive/src/main/resources/assets/itsalive/textures/entity/creeper/happy.png`.
|
||||
SHA-256 : `40e22bf0610cfc7ae8ca910b1e6bdce0c759ccbf8714df7566ebe5538cac24f0`.
|
||||
Il s'agit du visage souriant historique sur le modèle natif du creeper. Les
|
||||
droits sur les ressources Minecraft dérivées restent à Mojang/Microsoft.
|
||||
Aucune autre variante de texture ni ressource Mobopia n'est importée.
|
||||
|
||||
+50
-3
@@ -3,8 +3,48 @@ plugins {
|
||||
id 'net.fabricmc.fabric-loom' version "${loom_version}" apply false
|
||||
}
|
||||
|
||||
tasks.named('build') { dependsOn(':sanctuary:build', ':demeure:build', ':jei:build', ':sanctuary-test:build') }
|
||||
tasks.named('check') { dependsOn(':sanctuary:check', ':demeure:check', ':jei:check', ':sanctuary-test:check', 'verifyPack') }
|
||||
allprojects {
|
||||
repositories {
|
||||
exclusiveContent {
|
||||
forRepository { maven { url = 'https://api.modrinth.com/maven' } }
|
||||
filter { includeGroup 'maven.modrinth' }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tasks.named('build') { dependsOn(':sanctuary:build', ':jei:build', ':sanctuary-test:build') }
|
||||
tasks.named('check') { dependsOn(':sanctuary:check', ':jei:check', ':sanctuary-test:check', 'verifyPack') }
|
||||
|
||||
tasks.register('verifyServerUpdater', Exec) {
|
||||
group = 'verification'
|
||||
commandLine('python3', 'scripts/test_server_runtime.py')
|
||||
}
|
||||
tasks.named('check') { dependsOn('verifyServerUpdater') }
|
||||
|
||||
tasks.register('verifyWebDistribution', Exec) {
|
||||
group = 'verification'
|
||||
commandLine('python3', 'scripts/test_publish_web_pack.py')
|
||||
}
|
||||
tasks.named('check') { dependsOn('verifyWebDistribution') }
|
||||
|
||||
tasks.register('verifyOptionalMods', Exec) {
|
||||
group = 'verification'
|
||||
commandLine('python3', 'scripts/verify_optional_mods.py')
|
||||
}
|
||||
tasks.named('check') { dependsOn('verifyOptionalMods') }
|
||||
|
||||
tasks.register('assemblePackwizInstaller', Exec) {
|
||||
group = 'distribution'
|
||||
description = 'Build and verify the Sanctuary-branded packwiz window.'
|
||||
commandLine('python3', 'scripts/packwiz_installer.py')
|
||||
}
|
||||
|
||||
tasks.register('verifyPackwizInstaller', Exec) {
|
||||
group = 'verification'
|
||||
dependsOn('assemblePackwizInstaller')
|
||||
commandLine('python3', 'scripts/test_packwiz_installer.py')
|
||||
}
|
||||
tasks.named('check') { dependsOn('verifyPackwizInstaller') }
|
||||
|
||||
tasks.register('verifyPack', Exec) {
|
||||
group = 'verification'
|
||||
@@ -15,10 +55,17 @@ tasks.register('verifyPack', Exec) {
|
||||
tasks.register('assemblePack', Exec) {
|
||||
group = 'distribution'
|
||||
description = 'Assemble a local packwiz pack including the built Sanctuary mod.'
|
||||
dependsOn(':sanctuary:build', 'verifyPack', 'assembleResourcePack', 'assembleResourceTemplate')
|
||||
dependsOn(':sanctuary:build', ':jei:build', 'verifyPack', 'verifyOptionalMods', 'assembleResourcePack', 'assembleResourceTemplate', 'assemblePackwizInstaller')
|
||||
commandLine('python3', 'scripts/pack.py', 'assemble')
|
||||
}
|
||||
|
||||
tasks.register('assembleServerPack', Exec) {
|
||||
group = 'distribution'
|
||||
description = 'Build the Linux server kit and verify its packwiz profile.'
|
||||
dependsOn('assemblePack')
|
||||
commandLine('python3', 'scripts/server_pack.py')
|
||||
}
|
||||
|
||||
tasks.register('verifyResourcePack', Exec) {
|
||||
group = 'verification'
|
||||
description = 'Verify the versioned Sanctuary texture sources and their release hashes.'
|
||||
|
||||
@@ -0,0 +1,180 @@
|
||||
# SHADER-255 — Feuilles, menus et rayons Ambiance
|
||||
|
||||
Socle beta.254 (`1a00a52`), branche `codex/ambiance-leaves-menus-beta255`,
|
||||
Minecraft 26.3, Java 25, livraison locale beta.255 vérifiée.
|
||||
Demande du 9 octobre 2026 : remplacer le bruit des ombres de feuilles par
|
||||
leurs textures, conserver un résultat visible en Moyen et Faible, ranger
|
||||
les réglages actuels dans des sous-menus et permettre l'import/export.
|
||||
Retour pendant les essais : les sun shafts activés restent trop discrets ;
|
||||
leur visibilité en Moyen fait également partie de cette livraison.
|
||||
Les meilleurs dégradés du ciel sont réservés à la passe suivante.
|
||||
|
||||
## Rendu des feuilles
|
||||
|
||||
La passe de profondeur utilise les faces du modèle natif des feuilles,
|
||||
leurs UV, rotations et offsets. Elle lit l'alpha de l'atlas de blocs chargé,
|
||||
au niveau zéro et au seuil de découpe 0,5 du terrain natif. Les texels
|
||||
transparents ne déposent ni profondeur ni marque de feuillage. Un obstacle
|
||||
opaque plus loin conserve son ombre. Le motif de bruit est supprimé.
|
||||
Les feuilles superposées contribuent selon leurs trous réels, sans objectif
|
||||
artificiel de 22 % d'opacité par surface. Plusieurs faces peuvent fermer
|
||||
un passage suivant l'angle du soleil ; une canopée serrée ne garantit donc
|
||||
pas des trous éclairés dans chaque zone observée.
|
||||
|
||||
L'atlas est emprunté au jeu : aucun duplicata de ses textures, lecture GPU
|
||||
côté production ou analyse CPU des PNG par image. Les UV sont ajoutés au
|
||||
maillage borné des casteurs : 24 octets par sommet contre 16 auparavant,
|
||||
toujours sous la limite de 96 Mio du cache. Une ressource/modèle rechargé
|
||||
reconstruit ce cache. Un atlas de feuilles animé impose un redessin au tick ;
|
||||
les textures statiques conservent la réutilisation de beta.254.
|
||||
|
||||
Moyen conserve sa carte maximale 2048², sa grille 16 pixels/bloc et sa portée
|
||||
64 blocs. Faible passe de 8 à 16 pixels/bloc et de 1024² à 2048² pour préserver
|
||||
les détails ; sa portée reste 32 blocs et ses effets lourds restent coupés.
|
||||
Ses deux textures de carte passent de 5 à 20 Mio, hors allocations du reste
|
||||
du rendu. Les profils ne sont pas imposés aux réglages Personnalisé existants.
|
||||
Patate conserve ses effets lourds désactivés. Le SSR reste inclus en Moyen.
|
||||
|
||||
## Menus et profils portables
|
||||
|
||||
Options → Shaders ouvre **Ambiance**. Le profil et l'interrupteur restent à
|
||||
l'accueil. Les six catégories natives FR/EN sont Performance, Caméra et effets,
|
||||
Éclairage, Atmosphère, Matériaux et reflets, Eau. Éclairage contient un
|
||||
sous-menu Ombres. Tous les réglages antérieurs restent disponibles ; modifier
|
||||
un effet passe en Personnalisé et conserve le budget choisi. Retour/Echap
|
||||
reconstruit le parent pour actualiser le profil affiché.
|
||||
|
||||
L'accueil propose **Importer un profil** et **Exporter un profil**. Les fichiers
|
||||
UTF-8 `.txt` contiennent des lignes `clé=valeur`, un identifiant de format
|
||||
Ambiance et les réglages complets, y compris le budget Personnalisé et les
|
||||
préférences d'eau pour chaque type de monde. La valeur `default` restaure
|
||||
le défaut du type de monde, même si l'installation destinataire a un choix
|
||||
explicite différent. Le dossier proposé est
|
||||
`config/ambiance-profiles`. Le joueur peut saisir un nom ou un chemin complet,
|
||||
ouvrir ce dossier, choisir un fichier existant dans la liste ou glisser un
|
||||
fichier extérieur dans l'écran d'import. Un remplacement de fichier existant
|
||||
utilise la confirmation native. Les réglages importés sont appliqués immédiatement.
|
||||
|
||||
L'import valide toutes les clés, types et plages avant de sauvegarder puis
|
||||
remplacer la configuration active. Une erreur laisse les préférences actives
|
||||
et persistées intactes. Les fichiers d'un autre shader ne sont pas des profils
|
||||
Ambiance ; les clés de Complementary ne commandent pas son moteur Vulkan.
|
||||
Aucune dépendance Iris n'est ajoutée.
|
||||
|
||||
Organisation inspirée des catégories du
|
||||
[fichier officiel Complementary](https://github.com/ComplementaryDevelopment/ComplementaryReimagined/blob/main/shaders/shaders.properties),
|
||||
et fichiers texte comme dans le
|
||||
[guide Iris](https://github.com/IrisShaders/Iris/blob/26.1/docs/guide.md).
|
||||
Le chantier concerne l'organisation des effets existants, conformément à la
|
||||
précision du créateur ; il n'ajoute pas les nuages, AA ou fonctions absentes.
|
||||
|
||||
## Visibilité du volume solaire
|
||||
|
||||
Les captures activées de la première passe confirment le retour du créateur :
|
||||
le signal du volume existe mais reste trop faible à l'œil. Le gain de diffusion
|
||||
dans l'air clair passe de 0,018 à 0,16 ; Moyen conserve son intensité de 25 %,
|
||||
ses huit segments et une seule lecture de profondeur par segment. Aucun
|
||||
échantillon, passe, carte ou maillage supplémentaire n'est ajouté. La courbe
|
||||
de compression de la lumière et les règles d'occlusion restent actives.
|
||||
|
||||
Le contrôle visuel cible désormais le contraste du premier plan au 95e
|
||||
percentile avec le vrai budget Moyen, plutôt qu'une simple somme positive
|
||||
sur tous les pixels. Les validations salle fermée, feuilles, retour de caméra,
|
||||
météo et OFF/zéro passent avec ce gain. Moyen atteint 10 niveaux de luminance
|
||||
au 95e percentile du premier plan à 25 %, avec son budget de huit segments
|
||||
et une lecture. Le créateur retient la capture avec tous les effets de Moyen.
|
||||
[Capture native retenue](../build/leaf255/0002_sanctuary-beta142-shader-shafts255-medium-combined.png).
|
||||
|
||||
## Coût mesuré
|
||||
|
||||
RX 9070 XT, Ryzen 7 3700X, Vulkan natif, 1920 × 1080, sans VSync ni limite
|
||||
FPS. Socle beta.254 exact et candidat beta.255 : même monde plat neuf graine
|
||||
122, sol blanc, canopée 41 × 41 de trois couches, même caméra. Deux séries
|
||||
avec ordre Faible/Moyen inversé, 60 ticks de stabilisation puis 100 ticks
|
||||
mesurés par profil. Mesure finale incluant le volume solaire retenu ; moyenne
|
||||
des deux médianes de `renderFrame` :
|
||||
|
||||
| Soleil | Profil | beta.254 | beta.255 | Écart |
|
||||
| --- | --- | ---: | ---: | ---: |
|
||||
| Fixe | Faible | 0,505 ms | 0,540 ms | +7,0 % |
|
||||
| Fixe | Moyen | 1,500 ms | 1,536 ms | +2,4 % |
|
||||
| Mobile | Faible | 0,502 ms | 0,563 ms | +12,1 % |
|
||||
| Mobile | Moyen | 1,509 ms | 1,556 ms | +3,1 % |
|
||||
|
||||
Cette passe améliore la fidélité et ne constitue pas un gain de performance.
|
||||
Le coût supplémentaire mesuré est de 0,035–0,061 ms en Faible et de
|
||||
0,035–0,047 ms en Moyen sur cette scène. La carte plus grande de Faible
|
||||
réduit aussi la tolérance angulaire du cache : les redessins au soleil
|
||||
mobile passent de 174–180 à 341–357 dans ces séries. Moyen reste à
|
||||
347–348 contre 349–351 sur le socle.
|
||||
Soleil fixe : aucun redessin pendant les mesures, dans les deux versions.
|
||||
|
||||
Ces durées incluent le temps CPU de rendu, soumission et attentes ; elles
|
||||
n'isolent pas le GPU et ne se convertissent pas en FPS de jeu. Elles ne
|
||||
prédisent pas toutes les forêts, packs de ressources ou distances. La portée,
|
||||
la grille et le budget de géométrie continuent de limiter les ombres lointaines.
|
||||
[Mesures originales](../build/leaf255/comparison.json).
|
||||
|
||||
## Validation
|
||||
|
||||
`check build assemblePack` réussi avec `sanctuaryFocusedTests=menus` et
|
||||
`sanctuaryAtlasOnly=true`. Compilation des GameTests clients réussie sur Java 25.
|
||||
Build final : 137 tâches, 2 min 52 ; quatre GameTests serveur requis et contrôles
|
||||
purs réussis. Commande de livraison :
|
||||
|
||||
```sh
|
||||
./gradlew check build assemblePack \
|
||||
-PsanctuaryFocusedTests=menus -PsanctuaryAtlasOnly=true
|
||||
```
|
||||
|
||||
Validation graphique exclusivement Vulkan, dans
|
||||
`%LOCALAPPDATA%\SanctuaryDev\leaf255-*` sur Windows,
|
||||
à part de Prism et de ses sauvegardes ; aucun monde existant modifié.
|
||||
|
||||
- Oracle de textures contrôlées : 398–400 points conformes sur 400, avec
|
||||
masques complémentaires, en Faible et Moyen. Les trous éclairés et ombres
|
||||
suivent le fichier chargé ; captures des textures natives également réalisées.
|
||||
- Rechargement de ressources, cache statique et alpha animé validés
|
||||
(`LEAF255_ACCURACY_PASS`, variation lumineuse animée 70,06).
|
||||
- Parcours FR/EN, six catégories et Ombres, retour au parent, réglage clavier,
|
||||
export par bouton, import par liste et glisser-déposer validés. Le budget
|
||||
Personnalisé survit à l'export/import et à la relecture disque ; les choix
|
||||
d'eau explicites et par défaut sont restaurés sur une configuration différente.
|
||||
Fichiers invalides ou étrangers rejetés sans modifier les préférences.
|
||||
- Profils beta.254, SSR de Moyen, cache, déplacements, éditions et soleil
|
||||
validés par `SHADER254_PROFILES_PASS`.
|
||||
- Suite historique ombres/effets validée : soleil/lune, contours opaques,
|
||||
casteurs hors écran, éditions, stabilité, rechargement, contours, bloom,
|
||||
minerais, lens flare, SSGI rouge/bleu et occlusion, balayage de 12 blocs,
|
||||
gros plans, PBR, redimensionnement et changements de dimension.
|
||||
`PIXEL_SHADOWS122_CLIENT_PASS`, `EMISSIVE131_PASS`, `SSGI133_PASS` et
|
||||
`PBR134_PASS` présents ; exécution réussie en 9 min 50.
|
||||
- Volume solaire final : `SUNSHAFT255_VISIBILITY_PASS`, `SUNSHAFT137_PASS`
|
||||
et `SUNSHAFT138_WEATHER_PASS`, exécution réussie en 3 min 43.
|
||||
Les pièces fermées restent protégées et le feuillage atténue les rayons.
|
||||
Énergie normalisée : clair 0,0333, brume 0,1839, pluie 0,0223, orage 0,0100.
|
||||
- Restauration complète des profils, choix d'eau explicites et par défaut compris,
|
||||
validée par `SHADER_OPTIONS255_PASS` après le correctif de portabilité.
|
||||
- Mesure finale canopée : `LEAF255_PERF_PASS`, `LEAF255_PASS`, build natif
|
||||
réussi en 1 min 41. Toutes les tâches de test temporaires sont supprimées.
|
||||
[Reçu de validation et empreintes](../build/leaf255/validation.json).
|
||||
|
||||
Deux corrections de tests : le nouveau parcours clavier utilise les constantes
|
||||
natives SDL de 26.3 après un premier essai avec des codes inadaptés, et la
|
||||
canopée historique n'impose plus une proportion de trous issue du bruit
|
||||
procédural. L'oracle contrôlé ci-dessus vérifie désormais les trous contre la
|
||||
texture réellement chargée. Les contrôles isolent les effets pour mesurer
|
||||
leur signal ; les captures combinées et le profil Moyen sont aussi vérifiés.
|
||||
|
||||
## Artefact local
|
||||
|
||||
[Sanctuary-beta.255.mrpack](../build/Sanctuary-beta.255.mrpack), 16 494 496 octets.
|
||||
Minecraft 26.3, Fabric Loader 0.19.5, JAR embarqué identique au JAR construit ;
|
||||
classes d'import/export, libellés FR/EN et shader utilisant l'alpha vérifiés.
|
||||
|
||||
SHA-256 du pack :
|
||||
`71484981b3a11373596f1178182b812500a8f63f3180efc8338c8470408bdd2c`.
|
||||
SHA-256 du JAR :
|
||||
`62a3527ffdf2a5cf07ba2d42aad242e545d3556daecaca3ed31ba96eac49a492`.
|
||||
Le canal public et l'installation personnelle ne sont pas mis à jour par cette
|
||||
livraison locale. Les dégradés du ciel restent à traiter lors de la passe suivante.
|
||||
@@ -0,0 +1,203 @@
|
||||
# SHADER-256 — Volume solaire et chutes de FPS
|
||||
|
||||
Socle beta.255 (`2a4dcec`), branche `codex/ambiance-volume-performance-beta256`.
|
||||
Livré localement en beta.256, Minecraft 26.3, Java 25, Vulkan exclusivement.
|
||||
|
||||
Demande du 9 octobre 2026 : supprimer les copies espacées des casteurs dans
|
||||
les sun shafts, conserver des rayons détaillés à 10 % et rendre leur portée
|
||||
réglable. Préserver les belles ombres de surface et le SSR de Moyen.
|
||||
Diagnostiquer les chutes à 49 FPS en Personnalisé, vue 32 chunks, monde Grand,
|
||||
sur Ryzen 7 3700X / RX 9070 XT à 1080p. Les comparaisons utilisent un plafond
|
||||
Java de 8 Gio ; ce plafond ne simule pas une machine ayant 8 Gio physiques.
|
||||
Le ciel est réservé à une passe ultérieure.
|
||||
|
||||
## Contrat de vérification
|
||||
|
||||
- Monde neuf Grand, graine 0, génération actuelle inchangée, vues terrain,
|
||||
vide et trajet de caméra reproductible ; aucun monde personnel modifié.
|
||||
- Temps entre images, temps CPU de rendu et trace JFR distingués. Ne pas
|
||||
convertir les seuls temps de soumission CPU en FPS.
|
||||
- Comparaison sans effets, ombres seules, volume seul, Moyen et Personnalisé.
|
||||
- Carte de profondeur réutilisée au soleil lent ; modifications des blocs,
|
||||
déplacements, changements de lumière et textures animées invalident le cache.
|
||||
- Contrôles natifs du détail, de la subtilité, de l'occlusion et des contours,
|
||||
plus retour caméra, OFF/zéro, pluie, rechargement et tailles impaires.
|
||||
- Sodium : disponibilité exacte 26.3/Fabric et essai natif Vulkan avant toute
|
||||
inclusion dans le pack. Pas de garantie de 144/240 FPS sans mesure réelle.
|
||||
|
||||
## Changements
|
||||
|
||||
Le volume utilise un pas constant en blocs, un filtrage des comparaisons de
|
||||
profondeur et une reconstruction bilatérale. Au bord d’une silhouette trop
|
||||
fine pour les pixels réduits, l’intégration reprend la profondeur du pixel
|
||||
réel. Il n’y a pas d’historique temporel. L’intensité neuve et les profils
|
||||
explicites sont à 10 % ; les valeurs explicites existantes sont conservées.
|
||||
|
||||
Portée indépendante de 8, 16, 24, 32, 48 ou 64 blocs et densité de 64, 96,
|
||||
128 ou 192 échantillons par 32 blocs dans Atmosphère, FR/EN et import/export.
|
||||
Moyen utilise 32 blocs / 96 ; Élevé 48 / 128 ; Ultra 48 / 192. La portée
|
||||
effective reste bornée par les ombres. Réduire la portée réduit le nombre
|
||||
d’échantillons ; réduire l’intensité seule ne réduit pas ce coût.
|
||||
Aucun profil automatique ne sélectionne 256 blocs. Cette valeur reste
|
||||
manuelle et porte la mention expérimentale pour les ombres, le PBR, le SSR
|
||||
et les contours. Le SSR de Moyen reste activé. Le budget automatique des émetteurs du Custom
|
||||
historique est également limité à 128 blocs, au lieu de 256.
|
||||
|
||||
Les bornes des casteurs sont alignées sur la cellule de 16 blocs de la carte
|
||||
d’ombres : un déplacement à l’intérieur ne reconstruit plus ses bordures.
|
||||
Le cache des formes inclut les états ignorés et évite les recherches répétées
|
||||
de tags avant un accès déjà mémorisé. Les modèles et l’alpha des vraies
|
||||
textures de feuilles restent ceux de beta.255.
|
||||
|
||||
Les index des chunks et sections des ombres, du bloom et du PBR utilisent
|
||||
des clés entières sans allocation de `Long` à chaque recherche. Les quatre
|
||||
constructeurs progressifs (ombres, PBR, émission et volume des lumières)
|
||||
disposent chacun d’une tranche CPU de 0,5 ms en Patate/Faible/Moyen, 1 ms en
|
||||
Élevé/Ultra/Personnalisé, au lieu de 2–3 ms. Le travail reprend à l’image
|
||||
suivante et les meshes existants restent affichés pendant leur remplacement.
|
||||
Il s’agit d’un budget souple : une opération individuelle ou un transfert
|
||||
GPU ne peut pas être interrompu. La qualité géométrique et les échantillons
|
||||
GPU ne changent pas ; une reconstruction initiale peut prendre plus d’images.
|
||||
|
||||
La trace JFR de beta.255 indique également un recensement de toutes les
|
||||
sections chargées à chaque tick serveur, même sans demande de diagnostic.
|
||||
`TerrainCensus` démarre maintenant au premier relevé explicite. Les commandes
|
||||
conservent le budget progressif, les instantanés immuables et la lecture sans
|
||||
chargement de chunks. Après activation, le recensement continue comme avant ;
|
||||
son parcours actif reste une limite à optimiser séparément.
|
||||
|
||||
## Sodium et émission
|
||||
|
||||
[Sodium 0.9.2+mc26.3](https://modrinth.com/mod/sodium/version/bAZQdGpg) est fixé
|
||||
pour Fabric 26.3 dans le pack client, avec le SHA-512 du JAR officiel. Il est
|
||||
séparé du JAR Sanctuary et absent du serveur. Un lancement Vulkan seul ne
|
||||
suffit pas à établir que tous les effets fonctionnent.
|
||||
|
||||
Le test ciblé reproduit l’absence de brillance : zéro pixel émissif, même
|
||||
avec les minerais exposés et l’intensité à 100 %. Sodium vide la liste
|
||||
vanilla `visibleSections`, utilisée par les émetteurs et les surfaces PBR.
|
||||
`SurfaceSections` utilise avec Sodium la disponibilité native des sections,
|
||||
la caméra, l’arbre d’occlusion de Sodium (`isBoxVisible`) et les chunks déjà
|
||||
chargés dans la portée locale de l’effet. Les sections cachées ne deviennent
|
||||
pas des meshes PBR/émissifs simplement parce qu’elles sont dans le frustum.
|
||||
L’adaptateur optionnel est compilé contre la version exacte, sans embarquer
|
||||
Sodium dans le JAR Sanctuary.
|
||||
Le parcours vanilla existant est conservé pour le mod autonome. L’occlusion
|
||||
des fragments reste fondée sur la profondeur réelle du terrain.
|
||||
|
||||
Un essai natif sans Sodium vérifie aussi les profils et le SSR en Moyen.
|
||||
|
||||
Après correction, le contrôle Vulkan avec Sodium compte 14 649 pixels
|
||||
émissifs et valide les cœurs indépendants, les halos OFF/zéro, l’intensité,
|
||||
le rayon, les minerais couverts, les modifications en direct, le rechargement,
|
||||
les torches, glowstone, lampes, lave et soleil. Captures et journaux dans
|
||||
`build/volume256/`.
|
||||
|
||||
## Mesures sur le monde Grand
|
||||
|
||||
Essais Windows sur Ryzen 7 3700X / RX 9070 XT, Vulkan 1.4.315,
|
||||
pilote AMD 25.10.30, Java 25.0.1, `-Xmx8G`, 1920 × 1080, VSync désactivée,
|
||||
FPS non limités. Monde neuf `sanctuary:island231_large`, graine 0, génération
|
||||
231 existante ; distance d’affichage 32 chunks, simulation 5. Plus de 3 000
|
||||
chunks chargés avant mesure, puis 400 ticks de préparation. Terrain à
|
||||
(-40, 264, 40), vue vide depuis (560, 264, 0), trajet de 240 blocs en
|
||||
spectateur, positions espacées de 6 blocs toutes les quatre ticks.
|
||||
|
||||
Chaque phase dure environ huit secondes. Les quinze phases sont exécutées
|
||||
dans l’ordre sans effets, ombres, rayons, Moyen, Personnalisé, avec les mêmes
|
||||
positions et le même soleil immobile. Les FPS ci-dessous sont calculés sur
|
||||
les intervalles entre images effectivement rendues ; les durées CPU de
|
||||
rendu sont consignées séparément. Le p95 est le temps sous lequel se
|
||||
trouvent 95 % des images. Ce ne sont pas des mesures GPU isolées.
|
||||
|
||||
| Profil / vue | beta.255 FPS moyens | beta.256 FPS moyens | p95 avant → après |
|
||||
| --- | ---: | ---: | ---: |
|
||||
| Moyen, terrain immobile | 368,0 | 492,2 | 3,58 → 2,51 ms |
|
||||
| Moyen, déplacement | 135,5 | 321,0 | 11,65 → 6,04 ms |
|
||||
| Moyen, vide | 1 385,8 | 1 061,4 | 0,82 → 1,17 ms |
|
||||
| Personnalisé, terrain immobile | 133,0 | 296,9 | 10,21 → 5,30 ms |
|
||||
| Personnalisé, déplacement | 72,3 | 113,0 | 30,22 → 15,27 ms |
|
||||
| Personnalisé, vide | 1 317,6 | 1 012,3 | 0,85 → 1,23 ms |
|
||||
|
||||
La référence est beta.255 sans Sodium, le candidat beta.256 avec Sodium et
|
||||
les effets rétablis. La comparaison mesure l’ensemble de cette livraison,
|
||||
y compris le recensement devenu paresseux, pas une optimisation isolée du
|
||||
shader ni le seul gain de Sodium. Sur cette scène le déplacement progresse
|
||||
de 137 % en Moyen et de 56 % en Personnalisé. La vue vide augmente de
|
||||
0,35–0,38 ms au p95 avec le nouvel ensemble, tout en dépassant 1 000 FPS.
|
||||
La référence avec Sodium avant correction contient des effets manquants :
|
||||
ses FPS ne constituent pas une comparaison à rendu équivalent.
|
||||
|
||||
Le Personnalisé de mesure est un cas lourd reproductible : budget Custom,
|
||||
ombres à 128 blocs, PBR/SSR à 64, SSGI et rayons à 35 %, portée solaire 32,
|
||||
densité 96. Il ne reproduit pas tous les réglages inconnus du Custom du
|
||||
créateur. Moyen comprend ombres, SSR, PBR, SSGI, bloom, minerais, lumières
|
||||
colorées et rayons à 10 %. Les mêmes catégories d’effets sont activées dans
|
||||
la référence, avec leur implémentation beta.255.
|
||||
|
||||
Journaux, quinze mesures JSON, captures et JFR :
|
||||
`build/volume256/baseline.json`, `candidate-budget.json`,
|
||||
`baseline.jfr`, `candidate-budget.jfr` et leurs résumés. Le contrôle du
|
||||
nouveau monde confirme qu’une partie normale n’active pas `TerrainCensus`.
|
||||
La trace de déplacement ne contient plus ses parcours permanents ; les
|
||||
reconstructions des ombres/PBR/lumières et le travail Minecraft demeurent.
|
||||
|
||||
## Limites et vérification
|
||||
|
||||
Une passe courte sur terrain préchargé n’est pas un minimum garanti en jeu.
|
||||
Le p99 du trajet vaut 9,36 ms en Moyen et 21,69 ms en Personnalisé. Deux images
|
||||
de Moyen et une du Custom dépassent 50 ms ; maxima de 106 et 95 ms. La trace
|
||||
Custom contient une pause G1 de 71,7 ms. La génération en déplacement, les
|
||||
entités, d’autres scènes et une distance de simulation supérieure peuvent
|
||||
changer le résultat. Le Custom mesuré n’atteint pas 144 FPS moyens et Moyen
|
||||
ne tient pas 240 Hz à chaque image. Les chutes à 49 FPS de la session initiale
|
||||
ne sont donc pas considérées comme entièrement éliminées.
|
||||
|
||||
Le lancement de test force le mode fenêtré, puis redimensionne à 1080p une
|
||||
fois le monde chargé. Il évite le crash de lancement signalé ; le plein
|
||||
écran exclusif n’est pas validé ni annoncé comme corrigé dans le jeu normal.
|
||||
|
||||
`./gradlew check build assemblePack -PsanctuaryFocusedTests=census,menus
|
||||
-PsanctuaryAtlasOnly=true` réussit, avec six GameTests requis et les contrôles
|
||||
purs. Compilation des contrôles client avec Java 25 également réussie.
|
||||
|
||||
La suite native complète avec les nouveaux budgets CPU passe : ombres et
|
||||
feuilles, temps réel, contours, minerais/bloom, flare, SSGI à sept distances,
|
||||
PBR, modifications, rechargement, redimensionnement et aller-retour Nether.
|
||||
Le contrôle ciblé des rayons à 1080p valide une hausse lumineuse p95 de 4
|
||||
niveaux à 10 %, zéro pixel assombri et une erreur moyenne de 0,012 niveau
|
||||
par rapport à la densité doublée. Le SSR natif passe sur eau, verre et
|
||||
surfaces opaques, avec mouvement, OFF/zéro, rechargement et resize.
|
||||
Menus, import/export, profils et alpha réel des feuilles passent avec Sodium.
|
||||
|
||||
Un premier relevé à la frontière de cellule a échoué (57 108 pixels sur
|
||||
65 664 dépassaient le seuil). La production inchangée passe ensuite la
|
||||
suite complète avec captures avant/après, puis un contrôle ciblé de trois
|
||||
passages, dont deux conservent le timing de lecture initial. Le seuil de
|
||||
différence n’a pas été relâché. La cause du premier relevé isolé reste
|
||||
indéterminée ; les journaux d’échec sont conservés.
|
||||
|
||||
L’oracle de rafraîchissement PBR utilisait lui aussi la liste vanilla vide
|
||||
avec Sodium. Il invalide maintenant les sections de `SurfaceSections` et
|
||||
exige au moins une section, puis une publication effective des remplacements.
|
||||
Le contrôle corrigé passe avec sept sections, puis valide les directions
|
||||
opposées, les murs, la lumière portée, la stabilité du cache et la grotte
|
||||
en mouvement sans points blancs isolés. Les trois angles rasants passent.
|
||||
Les profils et le SSR en Moyen repassent aussi sans Sodium sur les sources
|
||||
finales. Les 3 983 fichiers de production Sanctuary testés sur Windows
|
||||
correspondent par SHA-256 aux sources locales de livraison.
|
||||
|
||||
## Artefacts locaux
|
||||
|
||||
[Pack beta.256](../build/Sanctuary-beta.256.mrpack), Minecraft 26.3 / Fabric
|
||||
0.19.5, Sodium requis côté client uniquement. Le JAR Sanctuary embarqué
|
||||
correspond exactement au JAR du build et ne contient aucune classe Sodium.
|
||||
Canal public et instance Prism personnelle non mis à jour.
|
||||
|
||||
| Artefact | SHA-256 |
|
||||
| --- | --- |
|
||||
| `sanctuary-beta.256.jar` | `9c4f10f9a764c391fe8fa7679569d13c17e01e8c44eef92d115047544468120d` |
|
||||
| `Sanctuary-beta.256.mrpack` | `8c01aef32ce508e67016743a171d13dfa9633cddecd87c7a7424aa30816b585c` |
|
||||
|
||||
[Reçu final et mesures](../build/volume256/validation.json), journaux et
|
||||
captures dans `build/volume256/`. Dégradés du ciel réservés à la prochaine passe.
|
||||
@@ -0,0 +1,140 @@
|
||||
# APT-236 — aptitudes par thème et activation personnelle
|
||||
|
||||
La règle de désactivation décrite ici correspond à la livraison beta.236.
|
||||
[Beta.237](aptitudes-beta237.md) la remplace : seuls World Map et Mob Names
|
||||
restent désactivables, les autres aptitudes sont acquises définitivement.
|
||||
Le chantier Pause beta.235 est intégré dans cette nouvelle livraison.
|
||||
|
||||
Branche `codex/progression-aptitudes`, base beta.234 (`f9c2ce8`). Le travail
|
||||
parallèle du menu Pause occupe beta.235 ; ce lot réserve beta.236.
|
||||
|
||||
## Contrat avant implémentation
|
||||
|
||||
Progression regroupe les aptitudes en cinq thèmes : Survie (Swimming, Rest,
|
||||
Food Knowledge), Inventaire et fabrication (Inventory Sorting, Catalogue),
|
||||
Familiers (Active Bond, Familiar Study), Exploration (World Map, Mob Names,
|
||||
Zoom), Arts et métiers (Enchantement, Alchimie). Le minage et la forgerie
|
||||
restent hors de ce ticket.
|
||||
|
||||
Enchantement et Alchimie coûtent chacun 4 niveaux, comme les aptitudes actuelles.
|
||||
L'usage personnel de la table d'enchantement et de l'alambic est verrouillé au
|
||||
départ dans les mondes avec progression Sanctuary. Les menus natifs sont
|
||||
refusés côté serveur tant que l'aptitude correspondante n'est pas acquise et
|
||||
active, y compris via les blocs fonctionnels portés sur la tête. Les enclumes,
|
||||
la table de forge, les équipements enchantés et les potions déjà obtenues
|
||||
restent inchangés. Les alambics partagés et leur automatisation continuent
|
||||
leur fonctionnement autonome : ce lot contrôle l'accès personnel au poste,
|
||||
sans attribuer de propriétaire à un bloc ni arrêter une préparation lancée.
|
||||
Les personnages existants avec progression Sanctuary doivent aussi acquérir
|
||||
ces deux nouvelles aptitudes ; aucune acquisition gratuite n'est ajoutée.
|
||||
|
||||
Une aptitude achetée peut être activée ou désactivée sans coût et sans perdre
|
||||
son achat. Food Knowledge reste permanent après apprentissage. Les compétences,
|
||||
les prix et les découvertes ne changent pas. Les effets de gameplay sont
|
||||
contrôlés côté serveur ; les aides d'interface utilisent le choix serveur.
|
||||
Active Bond contrôle l'usage des pouvoirs de travail, pas les techniques de
|
||||
combat, les pouvoirs passifs ou l'équipement du familier. Une action déjà
|
||||
lancée se termine normalement ; les nouvelles activations sont refusées.
|
||||
|
||||
## Persistance et compatibilité
|
||||
|
||||
L'attachement additif `sanctuary:aptitude_preferences` conserve un entier de
|
||||
0 à 2047 : un bit par aptitude désactivée, dans l'ordre immuable names, atlas,
|
||||
sorting, swimming, resting, active_bond, familiar_study, catalogue, zoom,
|
||||
enchanting, alchemy.
|
||||
L'absence de cet attachement équivaut à zéro : toutes les aptitudes acquises
|
||||
gardent leur comportement actuel. Il est copié à la mort et conservé au New
|
||||
Game+. Deux attachements booléens additifs `sanctuary:enchanting_learned` et
|
||||
`sanctuary:alchemy_learned` conservent leurs nouveaux achats ; leur absence
|
||||
équivaut à false et ils sont copiés à la mort et conservés au New Game+.
|
||||
Aucun schéma ou contenu des achats existants n'est réécrit. Ce contrat
|
||||
est limité à cet attachement ; aucun monde personnel n'est ouvert ou modifié.
|
||||
|
||||
Une requête transmet la cible, le choix et le masque attendu ; le serveur
|
||||
vérifie l'achat, la session, l'état du joueur et le masque courant. Un choix
|
||||
inconnu, Food Knowledge, une aptitude non acquise ou une requête périmée est
|
||||
refusé sans XP dépensée. Un état distinct est renvoyé avant le snapshot de
|
||||
progression. La capacité réseau `aptitude_preferences_v1` exige les versions
|
||||
compatibles sur client et serveur sans changer les paquets existants.
|
||||
|
||||
Désactiver Swimming interrompt le sprint aquatique ; désactiver Rest arrête
|
||||
la récupération. World Map masque son entrée et refuse les nouvelles lectures
|
||||
personnelles ; les relevés continuent d'être conservés et l'outil opérateur
|
||||
reste disponible. Catalogue masque l'aide personnelle JEI et la consultation
|
||||
complète de Discovery, sans toucher aux recettes ni aux découvertes.
|
||||
|
||||
Un ancien mod ignore ces trois nouveaux attachements et retrouve son ancien
|
||||
accès aux postes. Il peut perdre les attachements inconnus en sauvegardant :
|
||||
conserver une sauvegarde avant un retour arrière. Le schéma 9 de progression
|
||||
et les preuves des aptitudes antérieures restent identiques.
|
||||
|
||||
## Vérifications
|
||||
|
||||
```sh
|
||||
./gradlew check build assemblePack \
|
||||
-PsanctuaryFocusedTests=aptitudes236,progression,movement,sorting,recipes,foodknowledge \
|
||||
-PsanctuaryAtlasOnly=true
|
||||
./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true \
|
||||
-PsanctuaryAptitudes236ClientTests=true -PsanctuaryClientGraphicsBackend=vulkan
|
||||
```
|
||||
|
||||
Première passe serveur : `check build assemblePack` réussi en 3 min 13 s,
|
||||
**33 GameTests requis réussis**, dont cinq scénarios APT-236. Contrôles purs
|
||||
du dépôt réussis. Le banc Atlas existant évite le conflit de génération du
|
||||
chemin par défaut déjà documenté en beta.232. Monde de développement neuf.
|
||||
Log : `build/aptitudes236-check-build-pack.log`.
|
||||
|
||||
- Onze choix indépendants, refus des requêtes inconnues, non acquises,
|
||||
périmées et de Food Knowledge ; conservation exacte de l'XP et des preuves
|
||||
d'achat. Achat à 3 niveaux refusé, à 4 accepté une seule fois.
|
||||
- Aller-retour des nouveaux attachements dans le NBT joueur natif, copie à
|
||||
la mort, conservation lors de la remise à zéro des compétences du cycle.
|
||||
- Swimming arrête le sprint aquatique et interdit les flags de mouvement
|
||||
directs ; Rest arrête la récupération ; tri falsifié et lectures Atlas
|
||||
personnelles refusés. Réactivation du tri contrôlée avec la même requête.
|
||||
Active Bond refuse une nouvelle activation avant toute planification.
|
||||
- Table d'enchantement native refusée avant acquisition, ouverte ensuite ;
|
||||
**une épée diamant est réellement enchantée**. Désactiver ferme le menu,
|
||||
refuse sa réutilisation et son bouton d'enchantement sans dépense d'XP.
|
||||
Alambic natif refusé puis ouvert, fermeture et invalidation à la désactivation,
|
||||
ingrédients partagés conservés et réouverture après réactivation.
|
||||
|
||||
Parcours client final réussi en **52 s**, Minecraft 26.3, Vulkan confirmé par
|
||||
MoltenVK 1.4.2 / Apple M1. Log : `build/aptitudes236-client-vulkan.log`, marqueur
|
||||
`APTITUDES236_PASS` ; douze captures dans `build/aptitudes236-screenshots/`.
|
||||
|
||||
- FR/EN, GUI 2/3/4, fenêtre 1280 × 960 : cinq thèmes dans l'ordre, les douze
|
||||
aptitudes présentes, Food Knowledge permanent et sans interrupteur.
|
||||
- Achat des deux arts depuis les véritables boutons de Progression : huit
|
||||
niveaux au total. **66 paires désactivation/réactivation** via les widgets
|
||||
et le réseau, état serveur contrôlé, XP et progression finale identiques.
|
||||
- Libellés d'état entièrement contenus dans les boutons ; défilement et
|
||||
position conservée au redimensionnement 1344 × 1008 ; Terminé revient à
|
||||
Pause. Une première passe a trouvé le libellé permanent trop large en GUI 4 :
|
||||
retour à la ligne ajouté. Les interrupteurs affichent un état court et
|
||||
expliquent leur action gratuite dans l'infobulle.
|
||||
|
||||
Les essais concernent les sauvegardes de développement. Pas de validation
|
||||
Windows ou multijoueur distant. L'automatisation des alambics et les pouvoirs
|
||||
déjà lancés restent les limites explicites du contrat ; la forgerie attend
|
||||
son prochain ticket.
|
||||
|
||||
## Livraison locale
|
||||
|
||||
Build final `check build assemblePack` réussi en **2 min 24 s**, 136 tâches,
|
||||
33/33 GameTests requis et contrôles purs réussis après les derniers réglages
|
||||
d’interface. Log : `build/aptitudes236-check-build-pack-final.log`.
|
||||
|
||||
Versions du mod, du pack et du manifeste alignées sur **beta.236**.
|
||||
[MRpack local](../build/Sanctuary-beta.236.mrpack) vérifié : 12797046 octets,
|
||||
intégrité ZIP, Minecraft 26.3 / Fabric Loader 0.19.5, un seul JAR Sanctuary
|
||||
identique au build final, sans classe de test ni monde ni module de laboratoire.
|
||||
Les deux PNG fournis sont identiques octet pour octet aux originaux dans le JAR.
|
||||
Reçu : `build/aptitudes236-artifact.json`.
|
||||
|
||||
- SHA-256 JAR : `21a4411ebed223a1d9f9d204dc9d7300af0d5b946416e39bb138f5c575bf5847`.
|
||||
- SHA-256 MRpack : `9d3eca559805d451e8c653cca1d59186ae46e3c6964147b9fc072b9da832f921`.
|
||||
|
||||
La branche reste indépendante du chantier Pause beta.235 ; leur intégration
|
||||
reste à effectuer. Aucune publication distante, mise à jour du canal packwiz
|
||||
ou synchronisation d’instance personnelle.
|
||||
@@ -0,0 +1,99 @@
|
||||
# APT-237 — achats permanents et intégration du menu Pause
|
||||
|
||||
Branche `codex/progression-aptitudes`. Intégration des commits beta.235
|
||||
`a7bdfe6` et `00d175c`, avec les aptitudes beta.236 `1c8e643`.
|
||||
|
||||
## Contrat avant implémentation
|
||||
|
||||
Seuls World Map et Mob Names disposent d'un interrupteur gratuit après achat.
|
||||
Swimming, Rest, Inventory Sorting, Catalogue, Active Bond, Familiar Study,
|
||||
Zoom, Enchantement, Alchimie et Food Knowledge restent acquis et utilisables
|
||||
sans désactivation. Les prix et les conditions d'achat restent identiques.
|
||||
Enchantement et Alchimie exigent toujours leur achat avant l'accès personnel
|
||||
au poste natif. Les achats, l'XP et les preuves existantes sont conservés.
|
||||
|
||||
Le menu Pause reprend la disposition beta.235 : deux colonnes Aventure et
|
||||
Communauté avant World Map, une colonne à gauche avec la carte. Le choix
|
||||
personnel de masquer World Map suit aussi cette disposition.
|
||||
|
||||
## Contrat de migration des préférences beta.236
|
||||
|
||||
L'identifiant `sanctuary:aptitude_preferences`, son codec entier 0–2047 et
|
||||
l'ordre historique des onze bits restent stables. Les bits 0 (Mob Names) et
|
||||
1 (World Map) restent effectifs. Les bits 2 à 10 deviennent inertes et sont
|
||||
retirés de cet attachement lors de sa prochaine synchronisation serveur.
|
||||
Ainsi un ancien masque 2047 devient 3 : les deux aides restent masquées et
|
||||
les neuf autres aptitudes achetées retrouvent automatiquement leur usage.
|
||||
Le chargement accepte encore les anciennes valeurs ; les lectures et effets
|
||||
ignorent immédiatement leurs bits désormais inertes. Aucune preuve d'achat,
|
||||
aucun format de progression, aucun monde ou terrain n'est réécrit.
|
||||
|
||||
Les requêtes de désactivation des aptitudes permanentes sont refusées même
|
||||
si elles proviennent d'un ancien client. Les paquets v1 restent inchangés ;
|
||||
une capacité additive `sanctuary:aptitude_permanent_v1` impose un client avec
|
||||
cette règle côté serveur. Les nouvelles interfaces sont traduites FR/EN.
|
||||
Le retour à une ancienne version nécessite comme auparavant une sauvegarde,
|
||||
car cette version ne peut restaurer les anciennes désactivations effacées.
|
||||
|
||||
## Vérification et livraison
|
||||
|
||||
```sh
|
||||
./gradlew check build assemblePack \
|
||||
-PsanctuaryFocusedTests=aptitudes236,menus,progression,movement,sorting,recipes,foodknowledge \
|
||||
-PsanctuaryAtlasOnly=true
|
||||
./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true \
|
||||
-PsanctuaryAptitudes236ClientTests=true -PsanctuaryClientGraphicsBackend=vulkan
|
||||
```
|
||||
|
||||
Les suites APT-236 sont actualisées pour vérifier la nouvelle règle et la
|
||||
migration ; leurs noms Gradle restent stables. `check build assemblePack`
|
||||
réussi en **2 min 34 s**, **37 GameTests requis réussis**, dont six scénarios
|
||||
aptitudes. Contrôles purs du dépôt réussis. Le banc Atlas évite le chemin de
|
||||
génération par défaut déjà documenté en beta.232. Log :
|
||||
`build/aptitudes237-check-build-pack.log`.
|
||||
|
||||
- Les deux choix personnels sont gratuits ; refus des requêtes périmées,
|
||||
inconnues, non acquises et des désactivations d'aptitudes permanentes.
|
||||
Prix des nouveaux achats vérifié à trois/quatre niveaux, achat unique.
|
||||
- Ancien masque 2047 rechargé dans le NBT natif, interprété en 3 puis
|
||||
normalisé sans changement d'XP ni de preuve d'achat. Conservation des
|
||||
choix et des achats à la mort et au New Game+.
|
||||
- Avec d'anciens bits désactivés : sprint aquatique, Rest et tri restent
|
||||
utilisables ; Active Bond suit son contrôle normal de familier équipé.
|
||||
World Map conserve son contrôle d'accès et sa réactivation gratuite.
|
||||
- Enchantement et Alchimie refusés avant achat, puis disponibles lors des
|
||||
visites suivantes. Une épée diamant est réellement enchantée. Une requête
|
||||
de désactivation refusée ne ferme ni n'invalide les menus acquis ; ingrédients
|
||||
partagés de l'alambic conservés. Accès vanilla hors progression conservé.
|
||||
|
||||
Parcours client réussi en **32 s**, Minecraft 26.3, Vulkan / MoltenVK 1.4.2
|
||||
sur Apple M1. FR/EN, GUI 2/3/4, fenêtre 1280 × 960 : cinq thèmes, douze
|
||||
aptitudes, dix achats permanents, **12 paires désactivation/réactivation**
|
||||
réelles des deux aides. Deux achats des arts via les boutons natifs de
|
||||
Progression, huit niveaux au total. Libellés contenus dans leurs boutons,
|
||||
XP et preuves conservées, défilement conservé au redimensionnement et retour
|
||||
Terminé vers Pause.
|
||||
|
||||
La même suite réutilise les assertions Pause du collègue : disposition,
|
||||
ordre clavier, marges, titres et libellés de navigation vérifiés après achat
|
||||
de World Map, avec son choix personnel désactivé puis activé. Les deux
|
||||
colonnes et la colonne près de la carte sont conservées. Les captures de
|
||||
Pause portent sur la disposition ; les relevés et fils commencent à charger.
|
||||
Log `build/aptitudes237-client-vulkan.log`, marqueur `APTITUDES237_PASS` ;
|
||||
**24 captures** dans `build/aptitudes237-screenshots/`. Inspection des captures
|
||||
Arts FR GUI 3, Pause sans carte FR GUI 4 et Pause avec carte EN GUI 3.
|
||||
|
||||
Versions alignées sur **beta.237**. [MRpack local](../build/Sanctuary-beta.237.mrpack)
|
||||
vérifié : 12797901 octets, intégrité ZIP, Minecraft 26.3 / Fabric Loader 0.19.5,
|
||||
un seul JAR Sanctuary identique au build final, sans tests ni monde ni module
|
||||
de laboratoire. Les deux icônes fournies restent identiques octet pour octet
|
||||
aux originaux. Reçu `build/aptitudes237-artifact.json`.
|
||||
|
||||
- SHA-256 JAR : `7ac741c6a15b8ab05a909cf0132c9d605b863723c0742a92d8b60c741fd760a6`.
|
||||
- SHA-256 MRpack : `7635e9e7a425cbd7a7f6d020f9bb2bcced8cc1287967093346295e4b4b2250e9`.
|
||||
|
||||
Les anciens artefacts beta.236 sont conservés. Tests dans des mondes de
|
||||
développement neufs ; Windows et multijoueur distant non testés. Les
|
||||
alambics autonomes et pouvoirs déjà lancés gardent le contrat beta.236.
|
||||
La forgerie, les enclumes et la table de forge attendent leur prochain ticket.
|
||||
Aucune publication, avancée du canal ni synchronisation d'installation personnelle.
|
||||
+179
@@ -1,5 +1,178 @@
|
||||
# Backlog Sanctuary
|
||||
|
||||
## HELLO-264 — Menu central et sol commun — livré localement
|
||||
|
||||
Sur `codex/hello-world-menu`, socle beta.263. Colonne centrale de 182 pixels,
|
||||
choix regroupés par section, noms au-dessus des aperçus et familiers bébé
|
||||
miniatures alignés avec les pieds du personnage. Espèce, rareté et description
|
||||
au survol ; Retour séparé et Entrer dans Sanctuary dans le pied de page natif.
|
||||
Build, 13 GameTests serveur et parcours Vulkan FR/EN GUI 2/3/4 réussis ;
|
||||
44 modèles bébé, création, reconnexion et code d'accès vérifiés.
|
||||
Pack local beta.264 exporté et contrôlé.
|
||||
[Disposition et vérifications](hello-layout-beta264.md).
|
||||
|
||||
## HELLO-263 — Aperçus des bébés familiers — livré localement
|
||||
|
||||
Sur `codex/hello-world-menu`, socle beta.262. Modèles et textures bébé, échelles
|
||||
d'âge natives et cadrage adapté. Les 44 aperçus sont comparés aux proxies
|
||||
réels après `Mob.setBaby(true)` ; parcours Vulkan FR/EN GUI 2/3/4 réussi.
|
||||
Build, 13 GameTests serveur et pack local vérifiés.
|
||||
[Correction et vérifications](hello-baby-familiars-beta263.md).
|
||||
|
||||
## HELLO-262 — Personnage, couleurs et familier — livré localement
|
||||
|
||||
Branche `codex/hello-world-menu`, socle beta.261. Menu à trois colonnes, blocs
|
||||
centraux de même hauteur et colonnes latérales de même largeur. Palette serveur
|
||||
paginée par neuf avec la texture native de hotbar et les flèches du pseudo.
|
||||
Fond texturé uniforme ; personnage et familier en 3D suivent la souris.
|
||||
Biographie et nom au centre. Les règles et sauvegardes serveur sont conservées.
|
||||
Build, 13 GameTests serveur et parcours Vulkan FR/EN GUI 2/3/4 réussis ;
|
||||
44 modèles de départ, admission, reconnexion et code d’accès vérifiés.
|
||||
[Contrat et vérifications](hello-world-menu-beta262.md).
|
||||
|
||||
## SHADER-258 — Ombres des falaises et musique différée — livré localement
|
||||
|
||||
Branche `codex/zenith-shadows-beta258`, socle beta.257. Comparaison de profondeur
|
||||
au vrai centre des texels, correction du cas rasant autour du zénith et ombres
|
||||
des surplombs conservées ; budgets de carte inchangés. Musique du menu différée
|
||||
de trois secondes après chargement, absente dans Hello World et l’introduction.
|
||||
Build, six GameTests serveur et contrôles Windows Vulkan/8 Gio réussis : falaise
|
||||
à quinze positions solaires, horloge civile 10 h–14 h et midi solaire ±30 s,
|
||||
ancres caméra, feuilles et véritable flux audio. Particules mobiles exclues
|
||||
uniquement des captures de mesure ; tolérances d’image conservées.
|
||||
Packs normal/Test assemblés et vérifiés ; aucune publication ni mise à jour Prism.
|
||||
[Contrat, vérifications et limites](zenith-shadows-beta258.md).
|
||||
|
||||
## MODS-257 — Mods client séparés et sun shafts à 20 % — livré localement
|
||||
|
||||
Branche `codex/external-mods-beta257`, socle beta.256. JEI Sanctuary et Sound
|
||||
Physics sortis du JAR principal, facultatifs avant lancement ; Sodium déjà
|
||||
séparé devient également facultatif dans packwiz. Pont JEI, progression serveur
|
||||
et fabrication manuelle conservés. Menus et message d’absence FR/EN.
|
||||
Profils et valeurs neuves des rayons à 20 %, SSR en Moyen conservé.
|
||||
Build, 8 GameTests serveur sans JEI/Sound Physics et quatre combinaisons client
|
||||
Vulkan/8 Gio réussis. Transfert réel JEI, options audio et rayons à 20 % vérifiés.
|
||||
Packs normal/Test assemblés et contrôlés ; aucune publication ni mise à jour Prism.
|
||||
[Contrat et vérifications](external-mods-beta257.md).
|
||||
|
||||
## SHADER-256 — Volume solaire, Sodium et déplacement — livré localement
|
||||
|
||||
Branche `codex/ambiance-volume-performance-beta256`, socle beta.255.
|
||||
Rayons à pas fin, intensité neuve de 10 %, portée indépendante et densité
|
||||
dans Atmosphère, FR/EN et import/export. Carte d’ombres réutilisée,
|
||||
reconstructions CPU réparties, recensement serveur activé à la demande.
|
||||
Sodium 0.9.2+mc26.3 ajouté au pack client ; émissions et PBR corrigés pour
|
||||
ses sections visibles. SSR conservé en Moyen et aucun preset à 256 blocs.
|
||||
Mesure native Grand/32 chunks/1080p/8 Gio : Moyen 135 → 321 FPS en mouvement,
|
||||
Personnalisé lourd 72 → 113, avec des pauses restantes. Build, six GameTests,
|
||||
effets et pack vérifiés ; pas de minimum 144/240 FPS annoncé.
|
||||
[Contrat, méthode, mesures et limites](ambiance-volume-performance-beta256.md).
|
||||
Ciel différé ; lancement de test fenêtré, plein écran exclusif non validé.
|
||||
|
||||
## SHADER-255 — Feuilles, menus et rayons Ambiance — livré localement
|
||||
|
||||
Branche `codex/ambiance-leaves-menus-beta255`, socle beta.254. Alpha réel des
|
||||
feuilles, ombres visibles en Faible/Moyen, sous-menus FR/EN et import/export
|
||||
des profils complets, préférences d'eau par défaut comprises. Sun shafts plus
|
||||
visibles en Moyen avec le même budget ; rendu retenu par le créateur.
|
||||
Build, quatre GameTests serveur, suites natives Vulkan RX 9070 XT et pack
|
||||
beta.255 vérifiés. Surcoût mesuré sur canopée dense : Moyen 0,035–0,047 ms,
|
||||
Faible 0,035–0,061 ms, hors FPS de jeu.
|
||||
[Contrat et validation](ambiance-leaves-menus-beta255.md).
|
||||
Dégradés du ciel : passe suivante à la demande du créateur.
|
||||
|
||||
## SHADER-254 — Profils et optimisation Vulkan — livré localement
|
||||
|
||||
Branche `codex/vulkan-shader-optimization`, base beta.253. Shader **Ambiance**,
|
||||
cinq profils FR/EN, SSR inclus dans Moyen, carte d'ombres commune conservée
|
||||
entre les mises à jour,
|
||||
budgets SSGI/SSR/volume et émission limitée en portée. Choix existants conservés,
|
||||
configuration neuve préparée en Moyen avec activation volontaire.
|
||||
[Contrat, profils, mesures et limites](shader-vulkan-optimization.md).
|
||||
Build, quatre GameTests serveur, suites natives Vulkan Windows RX 9070 XT
|
||||
et MRpack beta.254 vérifiés. Moyen avec SSR : 1,56 ms statique, 1,52 ms soleil
|
||||
mobile contre 2,19/2,44 ms pour l'ancien ensemble dans le test à 1080p.
|
||||
Temps de rendu/soumission, hors comparaison de FPS de jeu. Feuillage
|
||||
procédural conservé ; canal public et instance personnelle inchangés.
|
||||
|
||||
## WAY-241 — Ascenseurs séparés, recherche et tarif administrable — livré localement
|
||||
|
||||
Branche `codex/waystones-menu-beta241`, base beta.240. Colonnes d’ascenseur
|
||||
exclues du réseau horizontal, recherche par nom, boutons centrés sans Y,
|
||||
distance et prix uniquement au survol, R pour renommer. Commande de tarif
|
||||
persistant côté serveur, défaut 1 point / 16 blocs ; FR/EN et jump/sneak.
|
||||
[Contrat et essais](waystones-menu-beta241.md). Avec 10 niveaux sur Grand
|
||||
graine 0 : 29 trajets de quartier, 10 longs ou 160 déplacements d’étage.
|
||||
Build, 9 GameTests ciblés, deux tests Grand, client Vulkan FR/EN GUI 2/3/4
|
||||
et MRpack beta.241 vérifiés.
|
||||
|
||||
## WAY-240 — Waystones : 1 XP / 16 blocs — livré localement
|
||||
|
||||
Branche `codex/waystones-tarif-beta240`. Nouveau tarif horizontal et vertical,
|
||||
arrondi au supérieur conservé, rappel FR/EN alimenté par la règle serveur.
|
||||
[Comparaison et vérifications](waystones-tarif-beta240.md) sur les mêmes maisons
|
||||
du Grand neuf graine 0 : 29 trajets de quartier, 10 longs et 46 mixtes pour
|
||||
160 points. Build, 7 GameTests ciblés, deux tests natifs Grand, client Vulkan
|
||||
FR/EN GUI 2/3/4 et MRpack beta.240 vérifiés.
|
||||
|
||||
## WAY-239 — maisons et étages par Waystones — livré localement
|
||||
|
||||
Branche `codex/waystones-beta239`, base consolidée avec Forgerie beta.238 et
|
||||
Pause restauré. Texture originale 26.2, nom éditable, XP en points selon la
|
||||
distance 3D : 1 / 8 blocs arrondi au supérieur. Découverte horizontale
|
||||
personnelle ; Saut / S'accroupir pour les étages inconnus. Carte M et marqueurs
|
||||
dans les deux cartes. [Contrat, données et mesures](waystones-beta239.md).
|
||||
Grand natif graine 0, huit maisons et deux étages : 15 visites de quartier,
|
||||
4 longs trajets, 26 mixtes pour 10 niveaux sans regain d'XP. Tests serveur,
|
||||
Vulkan et assemblage réussis, MRpack beta.239 vérifié ; aucune installation
|
||||
personnelle.
|
||||
|
||||
## PAUSE-236 — Atlas plein écran derrière Pause — essai annulé
|
||||
|
||||
Le créateur annule uniquement la carte derrière le menu. Le commit de
|
||||
disposition `5ea7950` est inversé ; affichage beta.235 restauré, Story et
|
||||
raccourci M (`94fefc0`) conservés. [Historique et annulation](pause-map-layer-beta236.md).
|
||||
L'ancien pack local est retiré des artefacts actifs. Cette annulation ne publie
|
||||
aucune nouvelle version et ne modifie pas la branche des aptitudes/Forgerie.
|
||||
|
||||
## APT-238 — Forgerie — livré localement
|
||||
|
||||
Branche `codex/forgerie-beta238`, base beta.237. Aptitude permanente des Arts
|
||||
et métiers ; quatre niveaux pour les trois variantes d'enclume et la table
|
||||
de forge, y compris les postes portés. [Contrat et persistance](forgerie-beta238.md).
|
||||
Réparations, noms, améliorations et ornements gardent leurs règles natives.
|
||||
Build, 21 GameTests requis, Vulkan FR/EN GUI 2/3/4 et MRpack vérifiés.
|
||||
|
||||
## APT-237 — achats permanents et intégration Pause — livré localement
|
||||
|
||||
Branche `codex/progression-aptitudes`, travaux beta.235 et beta.236 réunis.
|
||||
Cinq thèmes, douze aptitudes ; seuls World Map et Mob Names ont un interrupteur.
|
||||
Enchantement et Alchimie restent à acheter avant l'accès personnel au poste.
|
||||
[Contrat et migration](aptitudes-beta237.md) des préférences antérieures,
|
||||
avec conservation des achats et de l'XP. Build, 37 GameTests requis,
|
||||
Vulkan FR/EN GUI 2/3/4 et MRpack local vérifiés. La forgerie attend ses précisions.
|
||||
|
||||
## PAUSE-235 — groupes côte à côte avant Atlas — essai livré localement
|
||||
|
||||
Branche `codex/pause-columns-beta235`, base beta.234. Avant Atlas : Aventure à
|
||||
gauche, Communauté à droite et Game juste dessous, bloc centré. Avec Atlas :
|
||||
une colonne étroite à gauche dans l'ordre Communauté → Aventure → Game,
|
||||
carte centrale et fils à droite. [Contrat et vérifications](pause-columns-beta235.md),
|
||||
parcours Vulkan Pause et Story FR/EN GUI 2/3/4, build, quatre GameTests ciblés
|
||||
et MRpack local vérifiés ; rendu à apprécier.
|
||||
Commit de disposition `a7bdfe6` séparé des métadonnées pour permettre son retour.
|
||||
|
||||
## STORY-234 — recueil personnel avec recherche — livré localement
|
||||
|
||||
Branche `codex/story-beta234`, base beta.233. Story sous Progression dans
|
||||
Aventure ; 100 histoires inconnues, barre de recherche et filtre de découverte.
|
||||
Cadre commun avec Discovery, état de recherche et défilement conservés au
|
||||
redimensionnement, accès avant et après Atlas. [Résultat et vérifications](story-beta234.md) :
|
||||
build, quatre GameTests requis et parcours Vulkan FR/EN GUI 2/3/4 réussis.
|
||||
[Modèle Markdown](story/TEMPLATE.md) pour les textes de l'auteur.
|
||||
Les récits et leurs conditions de découverte restent des tickets suivants ;
|
||||
aucun moteur de quête, format persistant ou déploiement ajouté.
|
||||
|
||||
## WG-RESTORE-191 — annuler les plateaux et leurs affleurements
|
||||
|
||||
La visite beta.190 ne valide pas le relief corrigé. [Retour exact à la base
|
||||
@@ -1785,6 +1958,12 @@ et le client graphique avec connexion réelle passent. Voir
|
||||
|
||||
## Réserve de thèmes futurs
|
||||
|
||||
Le cadrage du 26 octobre 2026 détaille les
|
||||
[tickets d'intégration du pack et des modules personnels](integrations-mods-next.md) :
|
||||
Simple Voice Chat, Bobby facultatif, Lithium, Entity Culling, Dozei Stream
|
||||
et Only Fun. Les quatre intégrations du pack sont préparées localement dans
|
||||
[beta.292](optional-mods-beta292.md) ; les deux modules personnels restent à cadrer.
|
||||
|
||||
Ces thèmes servent à retrouver la vision, pas à demander leur implémentation immédiate. On en extrait un ticket seulement lorsqu'il devient utile au prochain incrément jouable.
|
||||
|
||||
| Thème | Contenus à découper plus tard |
|
||||
|
||||
@@ -0,0 +1,103 @@
|
||||
# UNI-WG-204 — Sanctuary autonome et Nord Peaks
|
||||
|
||||
Branche `codex/sanctuary-base-peaks-beta204`, depuis beta.203 (`454d9a5`).
|
||||
|
||||
Demande : absorber Demeure dans Sanctuary, rendre le terrain validé du laboratoire
|
||||
accessible avec le mod normal seul, puis remplacer la nappe nordique par le
|
||||
générateur Peaks existant en conservant taïga géante, glaces et igloos.
|
||||
|
||||
## Contrat
|
||||
|
||||
- Demeure interne : même chemin `data/demeure/footprints-v1.json`, schéma 1,
|
||||
mêmes règles serveur et attribution. Aucun transfert de données.
|
||||
- Nouveau preset public Sanctuary, trois tailles ; types vanilla conservés.
|
||||
Introduction normale conservée ; diagnostics et raccourcis de labo facultatifs.
|
||||
- Codecs et ressources historiques `sanctuary:*` et `sanctuary_test:*` conservés.
|
||||
Le transfert de module ne renomme pas ces identifiants.
|
||||
- Nouveau profil 204 uniquement pour le Nord Peaks, diamètre 1024. L'île de
|
||||
départ reprend les paramètres 203 ; aucun terrain déjà créé régénéré.
|
||||
- Essais sur mondes de développement neufs et copies de développement seulement,
|
||||
graines 0, 42 et 4736390610738281858 ; publication/installation non demandée.
|
||||
|
||||
## Réalisation
|
||||
|
||||
### Mod normal
|
||||
|
||||
Demeure n'est plus un JAR Fabric imbriqué : ses quatre classes, son mixin de
|
||||
placement, ses tests et son attribution sont intégrés à Sanctuary. Le service
|
||||
s'enregistre une seule fois depuis l'initialisation principale. Un ancien JAR
|
||||
Demeure séparé est refusé pour éviter deux installations des mêmes hooks.
|
||||
|
||||
Le terrain validé restait dans `sanctuary-test` ; le preset public du mod normal
|
||||
ne pointait donc pas vers ce terrain. Le runtime de l'île, ses ressources,
|
||||
ses mixins et son écran de taille sont désormais dans Sanctuary : biomes,
|
||||
grottes, minerais, bassins, mines, ruines, ancres, rosace, station et expansions.
|
||||
Les variantes historiques restent enregistrées pour lire leurs identifiants,
|
||||
mais une seule entrée Sanctuary apparaît dans le menu, à côté des types vanilla.
|
||||
Small/Medium/Large sélectionnent les nouveaux paramètres `sanctuary:island204_*`.
|
||||
|
||||
Le module Test conserve uniquement ses outils : diagnostics, visites guidées de
|
||||
développement, monde plat, commandes et raccourcis d'essai. Il ne fournit plus
|
||||
de mixin ou de ressource indispensable au monde normal. Le nom du package Java
|
||||
`fr.koka.sanctuarytest` et les anciennes clés `sanctuary_test:*` restent inchangés
|
||||
dans le runtime déplacé afin de limiter la portée du transfert.
|
||||
|
||||
### Nord
|
||||
|
||||
Pour les nouveaux profils 204, le Nord 1024 utilise directement la densité Peaks
|
||||
du moteur d'expansion, avec son épaisseur et son amplitude verticales normales.
|
||||
La coque de plateaux `NorthShape203` n'intervient plus. L'écologie s'appuie sur
|
||||
des colonnes mesurées dans cette densité, mises en cache sur une grille de huit
|
||||
blocs : vallées, taïga, vieux épicéas, roche, neige, pics et glaciers dépendent
|
||||
du relief. Les épicéas géants 203 et les formations de glace vanilla sont repris.
|
||||
La glace des cavernes reste conditionnée à une couverture rocheuse suffisante.
|
||||
|
||||
Les cinq igloos cherchent des épaules enneigées suffisamment soutenues, sans
|
||||
aplatir toute la montagne ; un seul possède le laboratoire de guérison. L'arrivée
|
||||
et le relais évitent les bâtiments. Les deux bassins imposés dans les anciens
|
||||
profils nordiques ne sont pas transposés : ils reformaient des plateformes dans
|
||||
le nouveau relief. Les autres directions et les profils 200–203 ne changent pas.
|
||||
|
||||
## Vérifications — 4/5 octobre 2026
|
||||
|
||||
- `./gradlew check build assemblePack assembleTestPack
|
||||
-PsanctuaryFocusedTests=base204,demeure,menus,operator,realtime
|
||||
-PsanctuaryAtlasOnly=true` : succès, tests de logique et 13 GameTests natifs
|
||||
ciblés. Ces GameTests vérifient notamment l'absence de Test et de Demeure
|
||||
séparé, les presets publics/historiques, les empreintes Demeure et l'amplitude
|
||||
Peaks réservée au Nord 204. La suite native historique entière n'a pas été rejouée.
|
||||
- `:sanctuary:runClientGameTest -PsanctuaryClientTests=true
|
||||
-PsanctuaryClientGraphicsBackend=vulkan -PsanctuaryShared196ClientTests=true` :
|
||||
`SHARED196_CLIENT_PASS`, sans Test chargé. FR/EN, tailles, Annuler/Échap,
|
||||
relecture des paramètres sauvegardés et éditeur Plat vanilla vérifiés.
|
||||
- Création sur le classpath de production sans Test, heap 2048 Mio : Small
|
||||
graine 42, Medium graine 0 et Large graine 4736390610738281858. Les trois
|
||||
serveurs atteignent l'état prêt et placent le spawn sur l'île. Journaux dans
|
||||
`build/base204-standalone/`. Ce ne sont pas des mesures comparatives de performance.
|
||||
- Nord natif Small 42, profil 204 : offrande réelle, rejet des mauvaises offres
|
||||
et doublons, interruption puis reprise du journal, arrivée/relais et cinq
|
||||
igloos dont une cave vérifiés. Centre de l'expansion `(-128, -944)` ; arrivée
|
||||
`(-112, 308, -1056)`. L'annonce SGA est émise après préparation.
|
||||
- Échantillonnage du Nord : sommets Y=103–455, épaisseur maximale 381 blocs ;
|
||||
prairie, taïga, forêt ancienne, neige, pics, glacier et roche présents.
|
||||
Dans les chunks inspectés autour de `(-256, 283, -848)`, le plus grand tronc
|
||||
mesure 60 blocs. Glace et air vérifiés dans une caverne ; glacier vérifié
|
||||
autour de `(-80, 303, -1120)`. Reçus `build/worldgen-lab/north204-a/small/42/`.
|
||||
- MRpack normal `Sanctuary-beta.204.mrpack` exporté et ZIP vérifié : Minecraft
|
||||
26.3, Loader 0.19.5, Fabric API 0.160.5+26.3 ; ni JAR Test ni Demeure séparé.
|
||||
SHA-256 : `8c90090a784bd7c799849e916be2e3e36214a3dbf6ce8b4925d31a9fca8c5086`.
|
||||
|
||||
## Limites et livraison
|
||||
|
||||
Les essais natifs du nouveau Nord couvrent la graine 42. Son aspect reste à
|
||||
évaluer en visite, et la recherche d'un village n'a pas été vérifiée sur toutes
|
||||
les graines. Ces résultats macOS/Vulkan ne constituent pas une validation Windows.
|
||||
L'hydrologie du Nord reste à reprendre sur son relief Peaks si l'on souhaite
|
||||
rétablir de grands lacs. Aucun ancien monde, chunk ou format de sauvegarde n'a
|
||||
été migré ; les nouvelles formes nécessitent un nouveau profil 204.
|
||||
|
||||
Artefact local dans `build/` et copie dans `~/Downloads/`. Une copie indépendante
|
||||
du monde de test est ouverte pour la visite `north204-visit`, en créatif,
|
||||
commandes autorisées et vue 32 chunks (`NORTH204_VISIT_OPEN`, Vulkan confirmé).
|
||||
Aucun packwiz public, serveur personnel
|
||||
ou instance Prism n'a été mis à jour par ce chantier.
|
||||
@@ -0,0 +1,120 @@
|
||||
# DIST-WEB — téléchargement direct d'une instance Prism prête
|
||||
|
||||
Branche `codex/beta-download`, serveur dédié CT 350 sur `gpu`. Cette livraison
|
||||
conserve les binaires immuables beta.280 et ne modifie ni monde ni format de
|
||||
sauvegarde. L'Alpha reste hors cible.
|
||||
|
||||
## Résultat pour le joueur
|
||||
|
||||
Le bouton **Télécharger** de [Sanctuary Web](https://sanctuary-minecraft.net)
|
||||
donne directement le fichier **Sanctuary-Beta.zip** :
|
||||
|
||||
```text
|
||||
https://sanctuary-minecraft.net/downloads/sanctuary-prism.zip
|
||||
```
|
||||
|
||||
Le joueur importe ce ZIP dans Prism (**Ajouter une instance → Importer depuis
|
||||
un ZIP**), puis lance **Sanctuary Beta**. Packwiz télécharge le pack complet au
|
||||
premier lancement et suit le même canal aux lancements suivants. La commande
|
||||
avant lancement et le bootstrap sont déjà inclus ; aucune configuration manuelle
|
||||
ou téléchargement séparé d'outil n'est demandé.
|
||||
|
||||
Le format ZIP d'instance Prism conserve ces réglages, contrairement à un MRpack
|
||||
standard. Le MRpack beta.280 reste accessible par son ancienne adresse pour
|
||||
compatibilité des liens, sans devenir un deuxième bouton du site. Le parcours
|
||||
manuel de configuration et son lien dans le pied de page sont retirés.
|
||||
|
||||
L'archive contient uniquement `instance.cfg`, `mmc-pack.json`, l'icône,
|
||||
`minecraft/packwiz-installer-bootstrap.jar` et, à partir de la préparation
|
||||
beta.291, `minecraft/packwiz-installer.jar` avec le
|
||||
[logo Sanctuary embarqué](packwiz-logo-beta291.md). Elle démarre avec zéro mod
|
||||
local. L'installateur est vérifié par SHA-256 et conservé par
|
||||
`--bootstrap-no-update` ; la mise à jour automatique des mods reste active.
|
||||
L'instance est nommée **Sanctuary Beta**, avec `ManagedPack=false`,
|
||||
`OverrideCommands=true`, la sélection automatique de Java et le canal stable :
|
||||
|
||||
```text
|
||||
https://git.botsu.net/koka/sanctuary-beta/raw/branch/packwiz/pack.toml
|
||||
```
|
||||
|
||||
Le nom du bouton et le téléchargement direct sont conservés. Le pied de page et
|
||||
le survol indiquent la version réellement publiée. Les réponses de téléchargement
|
||||
utilisent `Cache-Control: no-store` pour garder la même adresse à chaque livraison.
|
||||
|
||||
## Publication demandée via Codex
|
||||
|
||||
Aucune tâche périodique ne décide de publier une version. À la demande du créateur :
|
||||
|
||||
1. Vérifier et publier les nouveaux binaires immuables, puis le canal packwiz
|
||||
selon [le protocole de distribution](packwiz.md).
|
||||
2. Générer l'instance prête avec `python3 scripts/pack.py prism <url-du-canal>`.
|
||||
Joindre `build/Sanctuary-Prism-beta.xxx.zip` à la release, avec le MRpack et
|
||||
le kit serveur. L'export Prism est reproductible et conserve ses commandes.
|
||||
3. Mettre à jour la CT dédiée selon [le contrat serveur](server-pack.md), en
|
||||
conservant sauvegardes, réglages et secrets, puis vérifier son redémarrage.
|
||||
4. Publier le téléchargement Web après contrôle de cette CT et des deux archives :
|
||||
|
||||
```sh
|
||||
python3 scripts/publish_web_pack.py \
|
||||
--web-ct 320 --server-ct 350 --version beta.280 \
|
||||
--mrpack-url https://git.botsu.net/koka/sanctuary-beta/releases/download/beta.280/Sanctuary-beta.280.mrpack \
|
||||
--prism-url https://git.botsu.net/koka/sanctuary-beta/releases/download/beta.280/Sanctuary-Prism-beta.280.zip \
|
||||
--pack-url https://git.botsu.net/koka/sanctuary-beta/raw/branch/packwiz/pack.toml
|
||||
```
|
||||
|
||||
Cette dernière commande s'exécute sur `gpu`, où `pct` est disponible. `--dry-run`
|
||||
vérifie sans publier. Le script contrôle les index, les versions, les hashes des
|
||||
dépendances et le JAR Sanctuary de la CT, du canal et du MRpack. Il refuse une
|
||||
archive Prism sans commande active, visant un autre canal ou une autre plateforme,
|
||||
avec un bootstrap non vérifié ou des fichiers étrangers.
|
||||
|
||||
Les fichiers Web restent dans
|
||||
`/var/www/sanctuary/storage/app/distribution/releases/beta.xxx/prism/`.
|
||||
Chaque publication est immuable. Sous verrou, `current` bascule atomiquement après
|
||||
écriture complète. Les anciennes versions restent disponibles pour une reprise.
|
||||
Le script ne redémarre aucun serveur et ne change pas le canal lui-même.
|
||||
|
||||
## Vérifications
|
||||
|
||||
Huit tests Python couvrent l'alignement CT/canal/MRpack, le refus d'un serveur
|
||||
arrêté ou divergent, le contrat d'import Prism prêt, les fichiers interdits et la
|
||||
publication atomique avec conservation de la précédente en cas de conflit.
|
||||
Ils font partie de `./gradlew check`.
|
||||
|
||||
Les quatre tests de téléchargement et les trois tests des métriques Laravel
|
||||
passent, ainsi que Pint : le bouton sert un ZIP anonyme directement, le nom est
|
||||
`Sanctuary-Beta.zip`, les publications incomplètes restent indisponibles, et le
|
||||
changement de version ne demande pas de reconstruire le cache de configuration.
|
||||
Le MRpack reste téléchargeable par son ancien lien.
|
||||
|
||||
Les tests natifs utilisent une extraction de l'archive prête dans un chemin
|
||||
contenant des espaces, avec les variables de sa propre commande avant lancement.
|
||||
Ils exécutent packwiz sans interface ; aucun Minecraft ni monde personnel n'est
|
||||
ouvert. Les fichiers témoins de réglages, favoris et sauvegardes sont comparés
|
||||
avant et après synchronisation. Les journaux sont conservés sous
|
||||
`build/prism-ready-validation*/`, hors de Git.
|
||||
|
||||
`./gradlew check build assemblePack -PsanctuaryFocusedTests=recipes,progression
|
||||
-PsanctuaryAtlasOnly=true` réussit. L'archive prête mesure **92 417 octets**, SHA-256
|
||||
`30dd37f3a6e1d79f8b443f6312918258276c85d5b6a5e7fbdc9c3fea7562dbf2`.
|
||||
Une première tentative native reçoit des HTTP 502 de Gitea ; une nouvelle
|
||||
extraction entièrement vide réussit ensuite ses deux lancements de synchronisation.
|
||||
Le reçu est `build/prism-ready-validation-retry/validation.json`.
|
||||
|
||||
L'archive est ajoutée à la release beta.280 sans changer son tag ni ses artefacts
|
||||
existants. La CT Web publie ensuite le ZIP et le MRpack vérifiés dans la même
|
||||
bascule atomique. Le code Web est livré au commit
|
||||
`46d784ecbb8ba3d0f20199b85bcf486831ba3750` ; les changements préexistants sont
|
||||
conservés et les empreintes des comptes et permissions restent identiques.
|
||||
Sauvegarde privée :
|
||||
`/root/sanctuary-beta-maintenance/web-prism-ready-20261025-1792943502/`.
|
||||
|
||||
Le parcours navigateur **accueil → Télécharger → Sanctuary-Beta.zip reçu** est
|
||||
vérifié à 1280 × 900 et 390 × 844 : HTTP 200 direct, pas de changement de page,
|
||||
nom et SHA-256 identiques à l'archive testée, aucune erreur d'application ni
|
||||
débordement horizontal. Le lien de guide manuel est absent. Le MRpack historique
|
||||
répond toujours HTTP 200. Le navigateur utilisé est Playwright, le plugin
|
||||
Browser étant absent ; reçu et captures sous `/tmp/sanctuary-prism-ready-*`.
|
||||
Reçus opérationnels ignorés : `build/prism-ready-publication.json`,
|
||||
`build/prism-ready-web-publication.json`, `build/prism-ready-web-deployment.log`
|
||||
et `build/prism-ready-build.log`.
|
||||
@@ -0,0 +1,85 @@
|
||||
# ZOMBIES-284 — Boomer et bile
|
||||
|
||||
Branche `codex/boomer`, sur le socle local beta.283 conservé. État : implémenté et vérifié localement en beta.284.
|
||||
|
||||
## Contrat
|
||||
|
||||
Quatrième infecté : modèle adulte du zombie vanilla 26.3, t-shirt violet et
|
||||
pantalon sable recolorés pixel par pixel, visage/peau/UV/alpha conservés.
|
||||
Identifiants `sanctuary:boomer` et `sanctuary:boomer_spawn_egg`.
|
||||
Aucun bébé, y compris via œuf ou chargement ; pas de conversion en noyé.
|
||||
|
||||
- Sauvage : 10 PV, vitesse 0,20, mêlée 2, poursuite 32 blocs. À courte distance,
|
||||
prépare une gerbe pendant 20 ticks, puis vomit dans un cône de 5 blocs,
|
||||
orienté au début de la préparation. Recharge de 120 ticks. La bile révèle
|
||||
pendant 6 secondes et affaiblit pendant 3 secondes ; elle ne crée pas d'acide.
|
||||
- Une cible enduite attire jusqu'à six zombies déjà présents à 12 blocs, avec
|
||||
ligne de vue et chunks chargés, pendant six secondes au maximum. Pas de
|
||||
nouvelles créatures, de chargement distant ou d'horde générée. La diversion
|
||||
expire proprement et conserve la cible précédente si elle est encore valide.
|
||||
Retirer la révélation arrête aussi la diversion ; maximum 64 zombies détournés
|
||||
simultanément par serveur. Les projections touchent au plus 12 victimes.
|
||||
- À sa mort, éclaboussure unique de 3 blocs, 2 dégâts et bile, sans destruction
|
||||
de blocs ni feu. Une suppression administrative n'active pas l'éclaboussure.
|
||||
Les infectés de la famille et les joueurs créatifs/spectateurs sont protégés.
|
||||
Les murs et la différence de hauteur bloquent les projections.
|
||||
- Œuf créatif et apparition rare, poids 4 et groupe d'un dans les habitats
|
||||
de zombies de l'Overworld.
|
||||
- Familier rare, adulte miniature à taille variable persistante, 14 PV et
|
||||
vitesse 0,25. Gerbe automatique en cône et G d'éclaboussure à 3 blocs :
|
||||
dégâts, faiblesse et révélation passent par les règles communes des familiers,
|
||||
avec protection du propriétaire/alliés/duels. Le familier reste vivant et
|
||||
ne détourne pas de monstres contre des tiers.
|
||||
- Recharge du Boomer conservée au chargement ; préparation interrompue annulée.
|
||||
Les diversions sont transitoires ; aucun format existant ne change.
|
||||
|
||||
## Vérification
|
||||
|
||||
- Suite serveur ciblée : **68 tests réussis**, dont **14 nouveaux**. Fixtures
|
||||
plates explicites, graine de test `0`, aucun monde personnel ouvert.
|
||||
- Couverture Boomer : œuf/profil/spawn, règle adulte, préparation et vraie gerbe,
|
||||
esquive latérale, mur et étage, recharge après interruption et sur le tick
|
||||
exact du tir, sauvegarde/rechargement, mort native unique, suppression sans
|
||||
éclaboussure, famille protégée, six zombies maximum sans nouvelle entité,
|
||||
navigation/attaque native et restauration de la cible précédente après délai,
|
||||
absence de chargement distant, G et cône du familier avec protections communes,
|
||||
recharge partagée et tailles 120/500/1000/1500/3000/6000 conservant l'individu.
|
||||
- Parcours client natif **Vulkan / MoltenVK 1.4.2 / Apple M1**, Minecraft 26.3,
|
||||
Java 25, Loader 0.19.5, monde de test neuf de graine `284` : réussi avec arrêt
|
||||
normal du client. Appui réel sur G, dégâts/faiblesse/révélation, recharge et
|
||||
survie du familier ; gerbe sauvage, recrutement d'un zombie existant et
|
||||
éclaboussure après vrai dégât mortel. Trois tailles réelles 500/1000/1500,
|
||||
renderer adulte, œuf, infobulles et écran FR/EN aux échelles GUI 2/3/4 vérifiés.
|
||||
- La première vérification générale a rencontré le test préexistant
|
||||
`Companion019GameTests.creatureProfilesActuallyMove` (déplacement aérien).
|
||||
Les contrôles Boomer passaient ; la suite de 68 a ensuite repassé avec ce
|
||||
test inchangé. Journal conservé dans
|
||||
`build/boomer284-check-build-pack-attempt1.log`.
|
||||
|
||||
- `./gradlew check build assemblePack` réussi en **2 min 40 s**, avec
|
||||
`-PsanctuaryFocusedTests=boomer284,spitter283,charger282,infected280,familiar260,companions`
|
||||
et `-PsanctuaryAtlasOnly=true`. La suite complète ciblée repasse ses 68 tests.
|
||||
- PNG du Boomer comparé en RGBA à la recoloration attendue du zombie natif
|
||||
26.3 épinglé : **331 pixels de t-shirt et 239 de pantalon** modifiés,
|
||||
tête, peau, chaussures, alpha et coordonnées UV conservés. Les textures des
|
||||
trois infectés précédents restent identiques. L'œuf est une recoloration
|
||||
violette de la silhouette et des ombres de l'icône historique, sans changement
|
||||
d'alpha ; aucun outil de génération d'images utilisé.
|
||||
- JAR et export MRpack : ZIP intègres, version beta.284 et dépendances
|
||||
Minecraft 26.3 / Loader 0.19.5 contrôlées. Classes, œuf, texture, profil,
|
||||
loot, traductions et tags Boomer présents ; classes de tests exclues.
|
||||
Le JAR exporté est identique au JAR compilé. Pack beta.283 précédent conservé
|
||||
octet pour octet.
|
||||
|
||||
[Pack local beta.284](../build/Sanctuary-beta.284.mrpack), **16 650 758 octets**.
|
||||
SHA-256 : `4a27ce2b184c8797f0ed7891c6dc62d1db372e2fdabb4fd5de98389df16f25a3`.
|
||||
[Reçu et empreintes](../build/boomer284-validation.json).
|
||||
|
||||

|
||||
|
||||
La livraison reste locale : aucun tag/release, canal packwiz, serveur personnel
|
||||
ou instance Prism modifié. Les œufs restent créatifs ; leur acquisition en
|
||||
survie et les autres infectés demandent leurs propres tickets. Aucune génération
|
||||
de terrain ni sauvegarde personnelle modifiée.
|
||||
|
||||
|
||||
@@ -0,0 +1,112 @@
|
||||
# ZOMBIES-282 — Chargeur
|
||||
|
||||
Branche `codex/charger`, sur le socle local beta.281 conservé. État : livré et vérifié localement.
|
||||
|
||||
## Contrat
|
||||
|
||||
- `sanctuary:charger`, œuf `sanctuary:charger_spawn_egg`, noms FR/EN. Modèle
|
||||
zombie adulte uniquement, tenue verte et pantalon anthracite ; texture native
|
||||
26.3 recolorée par script, visage, peau, chaussures et UV conservés.
|
||||
- Attributs de base : 10 PV, vitesse 0,27, mêlée 3, poursuite 36 blocs.
|
||||
Charge depuis 4 à 15 blocs avec ligne de vue et sol sous les pieds :
|
||||
préparation visible de 22 ticks, direction figée au départ, course de
|
||||
24 ticks au maximum, choc de 4 dégâts avec recul, récupération de 48 ticks,
|
||||
puis recharge de 100 ticks. Mêlée suspendue pendant ces trois phases.
|
||||
- La collision est celle du déplacement réel : pas de frappe à distance ou
|
||||
à travers un mur. Un joueur peut esquiver en sortant de la trajectoire.
|
||||
Obstacles, cible invalide ou bord d'une zone chargée terminent la charge.
|
||||
Aucune destruction de bloc, aucune téléportation ou génération forcée.
|
||||
- Spawn peu fréquent dans les habitats de zombies de l'Overworld, poids 4,
|
||||
un seul individu. Soleil, statut mort-vivant et absence de conversion en
|
||||
noyé comme l'Infecté. Les autres variantes restent à réaliser.
|
||||
- Familier adulte miniature, taille persistante variable, profil rare dédié :
|
||||
16 PV, vitesse 0,28, mêlée ; technique G de charge droite jusqu'à 8 blocs,
|
||||
préparation 22 ticks, récupération 24 ticks, recharge 12 secondes, dégâts 4.
|
||||
Variante apprise : ruée droite courte de 5 blocs. Droits, alliés, limites de
|
||||
dégâts et de contrôle restent ceux des familiers existants. Une charge
|
||||
déclenchée consomme sa recharge même si elle manque sa cible.
|
||||
- Œuf disponible en créatif ; pas de nouvelle acquisition en survie.
|
||||
|
||||
## Référence et sauvegardes
|
||||
|
||||
Référence en lecture seule : `../26.2/itsalive`, commit
|
||||
`26f2c2a0061619df1f146f9081d6740c560a7497`, variante `CHARGER` et
|
||||
`tickCharger`. Les phases de l'ancien comportement servent de référence ; le
|
||||
contrôle des coups repose ici sur la trajectoire réellement parcourue.
|
||||
|
||||
Le nouveau type a sa propre persistance native. Pour la charge, seule la recharge est sauvée ;
|
||||
une phase interrompue reprend au repos avec une recharge à la relecture.
|
||||
Les identifiants, formats, individus, œufs et textures déjà livrés restent
|
||||
stables. Aucun monde personnel ouvert ; aucun chunk ou terrain réécrit.
|
||||
|
||||
## Validation
|
||||
|
||||
Les essais serveur ciblés ont validé les phases du mob avec déplacement natif,
|
||||
le choc et son recul, la récupération sans double mêlée, l'esquive latérale,
|
||||
un mur ajouté après le départ, la persistance d'une charge interrompue, le
|
||||
profil et l'œuf, les dégâts du familier, sa trajectoire et sa recharge sur
|
||||
échec. Deux contrôles couvrent aussi une téléportation interrompant la course
|
||||
et les commandes d'une monture pendant la préparation. La sonde du corridor
|
||||
complet vérifie les chunks avant toute collision ; elle ne les charge pas.
|
||||
La construction finale **`check build assemblePack` passe en 2 min 59 s**,
|
||||
avec les **45 cas ciblés**, dont onze nouveaux pour le Chargeur, et les contrôles
|
||||
purs du dépôt. Log : `build/charger282-check-build-pack.log`.
|
||||
|
||||
Le parcours client **Vulkan / MoltenVK 1.4.2 / Apple M1** passe en **1 min 03 s** :
|
||||
vrai appui sur G, déplacement et choc du familier, recharge et récupération,
|
||||
phases préparation/course/choc d'un Chargeur sauvage, géométrie adulte,
|
||||
tailles 500/1 000/1 500 ‰, rareté, infobulles et menus **FR/EN GUI 2/3/4**.
|
||||
Douze captures sont conservées sous `build/charger282-screenshots/` ; vues de
|
||||
la miniature ordinaire, de la préparation et du menu FR GUI 2 inspectées.
|
||||
Log : `build/charger282-client-vulkan.log`, marqueur `CHARGER282_CLIENT_PASS`.
|
||||
|
||||
La comparaison des PNG confirme **570 pixels de vêtements recolorés**, avec
|
||||
558 pixels de peau/visage et tous les alpha intacts. La texture de l'Infecté
|
||||
rouge conserve exactement son empreinte beta.281. Génération reproductible :
|
||||
|
||||
```sh
|
||||
python3 scripts/generate_infected_texture.py /chemin/minecraft-26.3-client.jar --variant charger
|
||||
./gradlew check build assemblePack \
|
||||
-PsanctuaryFocusedTests=charger282,infected280,familiar260,companions \
|
||||
-PsanctuaryAtlasOnly=true
|
||||
./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true \
|
||||
-PsanctuaryCharger282ClientTests=true -PsanctuaryQuickTests=true \
|
||||
-PsanctuaryClientGraphicsBackend=vulkan -PsanctuaryClientHeapGb=8 \
|
||||
-PsanctuaryClientNoVsync=true
|
||||
```
|
||||
|
||||
Un contrôle historique de déplacement du dragon a échoué sur un passage
|
||||
intermédiaire, puis passé sans changement sur le suivant ; sa stabilité n'est
|
||||
pas démontrée par ce ticket. Un premier parcours client a passé ses étapes
|
||||
avant une erreur fastutil dans `ChunkMap` à la fermeture du serveur de test.
|
||||
La fixture nettoie désormais ses acteurs et attend leur retrait ; le parcours
|
||||
final se termine normalement.
|
||||
|
||||
## Essai local
|
||||
|
||||
```mcfunction
|
||||
/give @s sanctuary:charger_spawn_egg
|
||||
/summon sanctuary:charger
|
||||
```
|
||||
|
||||
L'œuf équipé invoque le familier miniature. G lance la charge ; les ordres et
|
||||
la sélection d'aptitudes suivent les contrôles habituels. Pendant une charge
|
||||
montée, préparation et récupération comprises, le pilote ne peut pas détourner
|
||||
la trajectoire avec les commandes de déplacement. Les autres profils utilisant
|
||||
`CHARGE` gardent leur comportement ; seul l'effet de profil `straight` utilise
|
||||
ce nouveau contrôleur.
|
||||
|
||||
La fréquence des rencontres naturelles en partie longue et le comportement
|
||||
sur toutes les formes de relief ne sont pas mesurés. Aucun monde personnel,
|
||||
serveur, canal packwiz ou instance Prism modifié.
|
||||
|
||||
## Artefacts locaux
|
||||
|
||||
- Mod : `mods/sanctuary/build/libs/sanctuary-beta.282.jar`.
|
||||
- Pack : `build/Sanctuary-beta.282.mrpack`.
|
||||
- Captures : `build/charger282-screenshots/`.
|
||||
- Reçu : `build/charger282-validation.json`.
|
||||
|
||||
JAR et MRpack vérifiés : version exacte, intégrité ZIP, Minecraft 26.3, Fabric
|
||||
Loader 0.19.5, un seul JAR Sanctuary identique au build, profils et contrôleurs
|
||||
de charge présents, deux textures identiques aux sources et fixtures exclues.
|
||||
@@ -0,0 +1,101 @@
|
||||
# CLAIM-03 — Chunks et protection temporaire, beta.272
|
||||
|
||||
Branche `codex/inhabitant-property`. Contrat du 24 octobre 2026, avant changement des données.
|
||||
|
||||
Un claim est un chunk entier de 16 × 16 blocs du monde principal, sur toute
|
||||
sa hauteur. L'admission Hello World donne accès au menu, sans terrain attribué.
|
||||
Les cinq premiers chunks sont gratuits ; le sixième coûte 100 points d'XP,
|
||||
le septième 200, puis +100 par chunk. Limite technique : 256 chunks par joueur,
|
||||
10 000 par monde. Les chunks peuvent être séparés. Aucun abandon ni transfert
|
||||
n'est proposé dans ce lot.
|
||||
|
||||
Chaque chunk peut recevoir sept jours de protection contre **64 saphirs**.
|
||||
Le propriétaire mine alors à ×2 et les autres à ×0,5. Sans protection : ×1.
|
||||
L'effet suit le bloc effectivement miné, même dans une sélection groupée.
|
||||
La pose, l'utilisation, les explosions, fluides et autres mécanismes gardent
|
||||
leurs règles normales. Le claim demeure après expiration. Le renouvellement
|
||||
est manuel et ajoute sept jours à la durée restante, sans prélèvement automatique.
|
||||
|
||||
Le temps compte en millisecondes monotones de serveur démarré, y compris sans
|
||||
propriétaire connecté. Il ne dépend ni du calendrier ni du nombre de ticks.
|
||||
L'arrêt normal sauvegarde l'horloge ; la relance reprend sa valeur sans compter
|
||||
l'arrêt. Sauvegarde toutes les 60 secondes et à chaque achat : un arrêt brutal
|
||||
peut restituer au plus le temps depuis le dernier point de sauvegarde (environ
|
||||
60 secondes, ou davantage si la boucle serveur est bloquée).
|
||||
|
||||
## Contrat de sauvegarde et migration
|
||||
|
||||
Nouveau registre séparé `<monde>/sanctuary/chunk-claims-v1.json`, schéma 1,
|
||||
lié à la graine. Il contient l'horloge serveur, une révision, les chunks, les
|
||||
transactions en attente et les UUID ayant volontairement quitté l'ancien modèle.
|
||||
Écritures atomiques vérifiées ; format invalide conservé et mutations suspendues.
|
||||
Un reçu persistant natif joueur `sanctuary:chunk_purchase_receipt_v1` relie le
|
||||
débit XP/saphirs ou le remboursement à la validation du registre. Une transaction
|
||||
réservée sans reçu sauvegardé est annulée ; un reçu durable la valide une seule fois.
|
||||
|
||||
L'ancien `properties-v1.json` reste dans son format exact. Ses volumes et leurs
|
||||
droits restent actifs tant que le propriétaire ne confirme pas la migration.
|
||||
La migration retire volontairement les droits de son volume et rembourse les
|
||||
extensions : 100, 300, 600 ou 1 000 XP selon le palier. Aucun chunk n'est créé
|
||||
à partir du volume : le joueur choisit ensuite ses chunks, dont cinq gratuits.
|
||||
Les achats anciens en attente sont résolus avant cette migration. Un nouveau
|
||||
chunk ne peut recouvrir l'emprise horizontale d'un volume ancien encore actif.
|
||||
Aucun bloc, terrain, génération, seed ou sauvegarde personnelle n'est modifié.
|
||||
|
||||
Un **clic droit directement sur la carte** ouvre un petit panneau sur le chunk :
|
||||
propriétaire, tarif, durée et bouton Revendiquer ou Protéger. Le prix apparaît
|
||||
avant l'action ; le clic sur ce bouton réalise l'achat sans quitter la carte.
|
||||
Échap ou un clic ailleurs ferme ce panneau. Aucun menu de grille séparé et aucun
|
||||
mode à activer pour le clic droit de l'Atlas ordinaire.
|
||||
|
||||
Habitant → Propriété et `/sanctuary property` ouvrent cette carte directement.
|
||||
Avant l'aptitude Atlas, elle montre uniquement le terrain déjà chargé et envoyé
|
||||
au joueur, à huit chunks au plus, sans conserver un historique supplémentaire.
|
||||
Les échantillons sont bornés à quatre tuiles par joueur et par tick, dans un
|
||||
budget global de 2 ms, sans charger de chunks. L'Atlas complet garde ses
|
||||
prérequis ; une fois débloqué, les tuiles découvertes peuvent aussi être choisies.
|
||||
Le serveur contrôle la portée, la frontière, la réserve de départ de 32 blocs,
|
||||
les fonds et la révision. La migration de l'ancien volume requiert une seconde
|
||||
confirmation explicite dans le panneau, avec le remboursement indiqué.
|
||||
|
||||
## Validation
|
||||
|
||||
Les **58 vérifications indépendantes** du registre passent : cinq claims gratuits,
|
||||
prix suivants, conflits, révision périmée, reprise avec ou sans reçu, horloge,
|
||||
trente jours d’arrêt simulés, renouvellement, expiration, migration et refus de
|
||||
JSON invalide ou d’une graine différente.
|
||||
|
||||
Le parcours client **Vulkan**, en **FR/EN GUI 2/3/4**, réussit en **54 s** :
|
||||
admission réelle, carte proche avant aptitude Atlas, recentrages rapides,
|
||||
clic sur un chunk voisin (9, 8 alors que le joueur est en 8, 8), premier claim,
|
||||
débit d’un stack de saphirs, puis clic droit dans l’Atlas ordinaire, panneau
|
||||
compact et Échap conservant la carte. Les huit captures finales sont dans
|
||||
`build/claims272-screenshots/` ; les formats FR GUI 2/4 et EN GUI 4 ont été
|
||||
inspectés. La fermeture ne reproduit plus l’exception de parcours des sessions
|
||||
Blocodex : le flush parcourt désormais un instantané stable.
|
||||
|
||||
Les tests natifs ciblent les paiements XP et saphirs, les reçus sauvegardés dans
|
||||
le joueur, les vrais `getDestroyProgress`, la frontière du chunk, la hauteur,
|
||||
les interactions libres, la migration remboursée et les refus terrain inconnu / spawn.
|
||||
Le lot couvre aussi les anciens volumes, le minage, les menus et l’overview.
|
||||
`check build assemblePack` réussit : **25 tests natifs ciblés**, en 2 min 44 s
|
||||
pour la commande complète. Le MRpack beta.272 est exporté et vérifié : ZIP,
|
||||
Minecraft 26.3, Loader 0.19.5 et octets des deux JAR locaux identiques aux builds.
|
||||
Les archives beta.270 et beta.271 gardent leurs hashes antérieurs.
|
||||
La validation finale et le MRpack sont consignés dans
|
||||
`build/claims272-validation.json`.
|
||||
|
||||
```sh
|
||||
./gradlew check build assemblePack \
|
||||
-PsanctuaryFocusedTests=claims272,property270,mining,overview271,menus \
|
||||
-PsanctuaryAtlasOnly=true
|
||||
./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true \
|
||||
-PsanctuaryClaims272ClientTests=true -PsanctuaryQuickTests=true \
|
||||
-PsanctuaryClientGraphicsBackend=vulkan -PsanctuaryClientHeapGb=8 \
|
||||
-PsanctuaryClientNoVsync=true
|
||||
```
|
||||
|
||||
Le multiplicateur s’applique à la progression native ; les blocs instantanés,
|
||||
le Créatif et la granularité des ticks conservent leur fonctionnement Minecraft.
|
||||
Abandon, transfert, partage de droits et protection contre les mécanismes
|
||||
indirects restent hors de ce lot. Aucun serveur ou instance personnelle déployé.
|
||||
@@ -0,0 +1,120 @@
|
||||
# CLAIM-278 — Duel Battle consenti pour une propriété
|
||||
|
||||
Branche `codex/claim-battle-duels`, demande du 25 octobre 2026.
|
||||
Le créateur confirme que cette étape vise les propriétés déjà revendiquées.
|
||||
|
||||
## Contrat du duel
|
||||
|
||||
Depuis le clic droit sur un claim, un autre habitant peut proposer de le disputer.
|
||||
Le challenger doit avoir atteint le seuil d’habitation Demeure sur ce chunk ;
|
||||
la priorité d’influence ne lui est pas nécessaire pour une proposition consentie.
|
||||
Le propriétaire garde ses droits acquis, même sans preuve Demeure rétroactive.
|
||||
Les deux joueurs doivent avoir Carte active et être disponibles pour Battle.
|
||||
|
||||
Le challenger valide une proposition explicite ; le propriétaire accepte ou
|
||||
refuse celle-ci. Le chunk, les deux participants, le temps de protection restant
|
||||
et les règles sont affichés. Une acceptation ne vaut que pour cette proposition.
|
||||
Une modification du claim avant acceptation invalide la proposition.
|
||||
|
||||
L’acceptation crée un Battle privé à deux joueurs : joueurs seuls, rayon de
|
||||
48 blocs autour du lieu annoncé par le challenger, cinq minutes, nourriture,
|
||||
potions et perles autorisées, mise d’entrée nulle. Les deux joueurs doivent
|
||||
être dans ce périmètre. Chacun valide ensuite Prêt dans Battle ; le challenger
|
||||
lance la préparation native de dix secondes. Aucun troisième participant ne
|
||||
peut rejoindre ce duel. Les morts, tombes, abandons et déconnexions pendant
|
||||
le combat suivent les règles Battle existantes. Elles sont rappelées avant
|
||||
l’accord. Pas de téléportation ni terrain créé automatiquement.
|
||||
|
||||
Le vainqueur devient propriétaire du seul chunk annoncé. Le défenseur gagnant
|
||||
conserve son claim. L’échéance absolue de protection est conservée : aucun temps
|
||||
n’est ajouté, retiré ou remboursé. Couleur, nom et multiplicateurs de minage
|
||||
suivent le nouveau propriétaire. Aucun coût XP ou saphir supplémentaire n’est
|
||||
prélevé pour transférer un claim déjà acheté.
|
||||
|
||||
Refus, annulation avant lancement, expiration d’invitation, égalité ou interruption
|
||||
du serveur sans résultat enregistré : aucune mutation de propriété. Un abandon
|
||||
ou une déconnexion après lancement vaut défaite selon Battle. Les autres claims
|
||||
et les duels ordinaires restent indépendants.
|
||||
|
||||
## Contrat de persistance et reprise
|
||||
|
||||
Aucune modification des schémas de Demeure, des claims, des mises Arena ou des
|
||||
reçus joueurs. Aucun monde personnel, chunk ou génération n’est modifié par les
|
||||
essais. Le transfert met à jour uniquement le propriétaire d’un claim existant,
|
||||
dans le schéma 1 de `sanctuary/chunk-claims-v1.json`, par écriture atomique.
|
||||
|
||||
Nouveau journal indépendant `sanctuary/claim-duels-v1.json`, schéma 1, lié à la
|
||||
graine. Il enregistre les deux accords sur le chunk et son état initial avant
|
||||
la création du Battle, puis le vainqueur avant toute mutation de propriétaire.
|
||||
Le résultat est appliqué par comparaison de l’état attendu, puis clôturé. Une
|
||||
reprise après interruption entre l’écriture du résultat et sa clôture applique
|
||||
ce transfert une seule fois. Les accords sans résultat durable sont annulés
|
||||
au redémarrage ; les mises Battle suivent leur propre journal de remboursement.
|
||||
|
||||
Les mutations du claim sont bloquées pendant un accord actif ou un résultat à
|
||||
régler. Les limites de propriété sont vérifiées avant accord ; les participants
|
||||
inscrits à Battle ne peuvent acheter d’autres claims pendant celui-ci. Les
|
||||
fichiers invalides ou modifiés extérieurement sont conservés et les nouveaux
|
||||
duels sont refusés. Une erreur avant écriture durable du vainqueur ne transfère
|
||||
pas la propriété ; une erreur après cette écriture garde le résultat à reprendre.
|
||||
Terminer les duels et solder le journal avant retour à une version antérieure.
|
||||
|
||||
## Vérification
|
||||
|
||||
`check build assemblePack` réussit en **2 min 55 s**, avec **40 tests serveur
|
||||
ciblés**. Les six nouveaux scénarios vérifient l’absence de transfert ou de
|
||||
combat sans le deuxième accord, les refus du challenger et des tiers tentant
|
||||
d’accepter à la place du propriétaire, le refus du propriétaire, la relecture
|
||||
de la proposition la plus récente, les validations Prêt natives, la mort réelle
|
||||
résolvant Battle et transférant le chunk exact, la conservation de son échéance,
|
||||
l’abandon après lancement, l’annulation avant lancement, l’égalité native au
|
||||
délai écoulé et l’invalidation d’un enjeu modifié ou expiré. Une arène publique
|
||||
ordinaire accepte toujours un troisième inscrit ; y gagner ne donne aucun claim.
|
||||
|
||||
Les **26 vérifications pures** du journal couvrent le consentement durable,
|
||||
les identités et chunks réservés, le refus d’un gagnant tiers, le redémarrage
|
||||
sans résultat, le résultat enregistré avant transfert, la reprise après mutation
|
||||
avant clôture, l’idempotence, la victoire du défenseur, les conflits de propriétaire
|
||||
ou de protection, la limite de 256 claims, la graine, les nombres JSON stricts
|
||||
et les fichiers corrompus ou modifiés extérieurement. Les **63 contrôles du
|
||||
registre de claims**, Demeure et les scénarios historiques ciblés passent aussi.
|
||||
|
||||
Le parcours **Vulkan FR/EN GUI 2/3/4** réussit en **53 s**, avec **18 captures**.
|
||||
Il ouvre le dossier depuis le clic droit de l’Atlas, lit les conséquences et
|
||||
les boutons d’acceptation/refus dans les deux langues aux trois tailles, refuse
|
||||
par le vrai paquet client, puis accepte une nouvelle proposition. L’enjeu est
|
||||
présent dans Battle avant Prêt. Une victoire native du propriétaire conserve
|
||||
son terrain. Après le délai de sortie de combat existant, le client devient
|
||||
challenger d’une autre propriété ; son propriétaire accepte indépendamment,
|
||||
les deux valident Prêt et le client lance réellement Battle. La mort native du
|
||||
défenseur transfère le claim et son échéance exacte. La carte déjà ouverte
|
||||
reçoit le nouveau propriétaire/couleur et raccorde le CTM au claim voisin sans
|
||||
réouverture. Captures : `build/claims278-screenshots/` ; inspections des écrans
|
||||
FR GUI 4 d’accord, FR GUI 2 de Battle et de la carte après transfert.
|
||||
|
||||
La réouverture d’un dossier n’est pas limitée par le délai anti-double-action :
|
||||
les lectures peuvent changer immédiatement de proposition, tandis que les
|
||||
mutations restent temporisées. Le panneau d’accord dispose d’un fond lisible
|
||||
et son compteur n’oblige pas à revenir en haut du défilement chaque seconde.
|
||||
Les combattants de ce parcours sont à l’air libre dans un monde plat ignoré.
|
||||
|
||||
```sh
|
||||
./gradlew check build assemblePack \
|
||||
-PsanctuaryFocusedTests=claims278,claims277,menu275,claims273,claims272,property270,mining,overview271,menus,map,demeure \
|
||||
-PsanctuaryAtlasOnly=true
|
||||
./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true \
|
||||
-PsanctuaryClaims278ClientTests=true -PsanctuaryQuickTests=true \
|
||||
-PsanctuaryClientGraphicsBackend=vulkan -PsanctuaryClientHeapGb=8 \
|
||||
-PsanctuaryClientNoVsync=true
|
||||
```
|
||||
|
||||
MRpack beta.278 exporté et vérifié : intégrité ZIP, Minecraft 26.3, Loader 0.19.5,
|
||||
versions/libellés, nouveaux contrôleurs présents et deux JAR identiques aux
|
||||
builds locaux. Les huit archives beta.270 à beta.277 gardent leurs empreintes.
|
||||
Reçu : `build/claims278-validation.json`. Aucun déploiement de serveur, monde
|
||||
personnel ou instance Prism, ni publication de canal.
|
||||
|
||||
Le lot porte sur un seul chunk déjà revendiqué et un Battle entre joueurs.
|
||||
Les familiers/modes mixtes, ensembles de claims, transferts sans combat ou
|
||||
attributions de terrains encore libres ne sont pas ajoutés. Les reprises sont
|
||||
éprouvées aux étapes du journal, sans simulation d’une panne physique du disque.
|
||||
@@ -0,0 +1,80 @@
|
||||
# CLAIM-276 — Contours CTM et protection à huit saphirs
|
||||
|
||||
Branche `codex/inhabitant-property`, demande du 25 octobre 2026.
|
||||
|
||||
## Résultat demandé
|
||||
|
||||
Toutes les propriétés doivent apparaître sur l’Atlas et son aperçu de Pause.
|
||||
Les claims d’un même propriétaire forment un contour continu, sans traits
|
||||
internes entre chunks adjacents. Une propriété sans protection garde uniquement
|
||||
son contour ; un chunk protégé ajoute un fond à la couleur du propriétaire.
|
||||
La protection coûte désormais **8 saphirs par chunk pour trois jours de serveur
|
||||
en marche**. Un arrêt du serveur suspend toujours le compteur ; une déconnexion
|
||||
ne le suspend pas. Les multiplicateurs de minage ×2 / ×0,5 restent identiques.
|
||||
|
||||
## Rendu et accès
|
||||
|
||||
- Contour d’un pixel de carte, directement dans les textures de terrain et de
|
||||
calque, avec les mêmes coordonnées et le même échantillonnage que la carte.
|
||||
- Raccords par propriétaire sur les quatre côtés et les angles rentrants ;
|
||||
la protection d’un voisin ne crée pas de frontière intérieure de propriété.
|
||||
- Fond uniquement sur les chunks encore protégés. À expiration, le contour
|
||||
reste visible et la propriété demeure attribuée.
|
||||
- Toute arrivée, suppression ou modification de claim recalcule aussi ses
|
||||
voisins, y compris les diagonales. Les achats actualisent la carte ouverte.
|
||||
- Couleur persistante du personnage, même hors ligne ; légende compacte pour
|
||||
tous les propriétaires visibles, survol et masquage conservés.
|
||||
- Aucun pixel de brouillard ou de vide n’est coloré. Seules les métadonnées des
|
||||
tuiles effectivement transmises sont acceptées. L’aptitude Carte achetée et
|
||||
active reste obligatoire pour ouvrir et gérer les propriétés.
|
||||
- Demeure et la disposition Habitant / Pause de beta.275 sont conservés.
|
||||
|
||||
## Contrat de conservation
|
||||
|
||||
Le schéma 1 de `sanctuary/chunk-claims-v1.json` et les reçus natifs restent
|
||||
identiques. Aucune réécriture automatique d’échéance, conversion de terrain,
|
||||
remise à zéro, attribution depuis Demeure ou régénération n’est effectuée.
|
||||
Les protections de sept jours déjà payées gardent leur échéance exacte.
|
||||
Une transaction de sept jours préparée par beta.272–275 reste récupérable :
|
||||
son reçu de paiement natif valide sa durée d’origine ; sans reçu, elle est
|
||||
annulée comme avant, sans retirer la couverture antérieure. Le lecteur accepte
|
||||
les deux périodes préparées, trois et sept jours ; les nouvelles réservations
|
||||
créées par beta.276 utilisent uniquement trois jours. Chaque renouvellement
|
||||
ajoute trois jours à l’échéance en cours si elle est encore active, sinon au
|
||||
temps serveur courant, contre huit saphirs. Aucun remboursement rétroactif
|
||||
n’est appliqué aux achats antérieurs.
|
||||
|
||||
## Vérification
|
||||
|
||||
`check build assemblePack` réussit en **2 min 38 s**, avec **30 tests serveur
|
||||
ciblés** et **63 vérifications du registre**. Les achats natifs refusent sept
|
||||
saphirs sans mutation, consomment exactement huit saphirs répartis sur plusieurs
|
||||
piles, couvrent un seul chunk pour trois jours et ajoutent exactement trois
|
||||
jours lors d’un renouvellement. La reprise avec/sans reçu d’une ancienne période
|
||||
de sept jours et le renouvellement de cette couverture après redémarrage sont
|
||||
vérifiés. Les protections et multiplicateurs restent applicables sans Carte.
|
||||
|
||||
Le parcours **Vulkan FR/EN GUI 2/3/4** réussit en **50 s**, avec **19 captures**.
|
||||
Il achète réellement Carte et une protection, contrôle les pixels du contour et
|
||||
du fond, le raccord en L et carré, les frontières entre propriétaires, le nom et
|
||||
la couleur du propriétaire hors ligne, l’arrivée d’un voisin sans réouverture,
|
||||
l’expiration dans le modèle, les paquets périmés et la borne du monde, le
|
||||
masquage/réaffichage et les pixels de l’aperçu de Pause. Les libellés montrent
|
||||
huit saphirs et trois jours. Captures dans `build/claims276-screenshots/` ;
|
||||
inspection des vues carte FR GUI 2, contexte FR GUI 4 / EN GUI 2 et Pause GUI 4.
|
||||
|
||||
```sh
|
||||
./gradlew check build assemblePack \
|
||||
-PsanctuaryFocusedTests=menu275,claims273,claims272,property270,mining,overview271,menus,map,demeure \
|
||||
-PsanctuaryAtlasOnly=true
|
||||
./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true \
|
||||
-PsanctuaryClaims276ClientTests=true -PsanctuaryQuickTests=true \
|
||||
-PsanctuaryClientGraphicsBackend=vulkan -PsanctuaryClientHeapGb=8 \
|
||||
-PsanctuaryClientNoVsync=true
|
||||
```
|
||||
|
||||
MRpack beta.276 exporté et vérifié : intégrité ZIP, Minecraft 26.3, Loader 0.19.5,
|
||||
versions et libellés FR/EN, deux JAR embarqués identiques aux builds locaux.
|
||||
Les six archives beta.270 à beta.275 gardent leurs empreintes. Reçu :
|
||||
`build/claims276-validation.json`. Aucun déploiement personnel ni publication
|
||||
de canal n’est effectué.
|
||||
@@ -0,0 +1,98 @@
|
||||
# CLAIM-277 — Habitation et influence avant revendication
|
||||
|
||||
Branche `codex/claims-demeure`, demande du 25 octobre 2026.
|
||||
Le créateur confirme le seuil existant de Demeure et précise qu’un autre joueur
|
||||
peut revendiquer le terrain s’il prend plus d’influence avant le premier claim.
|
||||
|
||||
## Règles
|
||||
|
||||
Une simple visite ne permet plus de revendiquer un chunk. Demeure doit y
|
||||
reconnaître un habitant : influence totale d’au moins 0,8, dont au moins 20 %
|
||||
pour un joueur, selon les seuils déjà utilisés par sa lecture du territoire.
|
||||
Aucun compteur de minutes, nuits ou délai supplémentaire n’est introduit.
|
||||
|
||||
Sur un chunk libre, l’habitant avec le plus d’influence effective actuelle peut
|
||||
revendiquer. À égalité (tolérance numérique 10⁻⁹ pour les arrondis), l’ordre
|
||||
persisté des premières contributions acceptées départage les habitants.
|
||||
Ainsi, le premier garde la priorité jusqu’à ce qu’un autre le dépasse. Les
|
||||
contributions peuvent précéder l’achat de Carte. Une identité hors ligne peut
|
||||
rester prioritaire ; les autres joueurs peuvent la dépasser par leur activité.
|
||||
La décroissance native de Demeure continue de s’appliquer aux terrains libres.
|
||||
|
||||
Le clic droit sur la carte explique la condition manquante ou nomme l’habitant
|
||||
prioritaire ; l’action est désactivée si la condition n’est pas remplie. Le
|
||||
panneau d’un terrain libre s’actualise. Commande et paquets d’action vérifient
|
||||
la même priorité côté serveur, au moment de l’achat, avant toute réservation
|
||||
ou dépense. Aucun duel ou transfert automatique n’est ajouté.
|
||||
|
||||
Une fois revendiqué, le claim reste attribué malgré les variations d’influence.
|
||||
Tous les claims antérieurs et leurs durées de protection sont conservés, sans
|
||||
exiger de preuve rétroactive. Leur protection reste renouvelable même si Demeure
|
||||
est indisponible. Cinq claims gratuits puis XP, huit saphirs pour trois jours de
|
||||
serveur, contours CTM et accès par Carte achetée et active restent inchangés.
|
||||
|
||||
## Contrat de conservation
|
||||
|
||||
Aucun nouveau fichier ni changement de schéma. `data/demeure/footprints-v1.json`
|
||||
et `sanctuary/chunk-claims-v1.json` restent identiques. L’ordre des premières
|
||||
traces est déjà conservé par la liste des influences et son rechargement ; on
|
||||
ne prétend pas reconstituer une date de franchissement du seuil absente des
|
||||
anciennes données. La requête de priorité est une lecture des empreintes,
|
||||
indépendante de leur tri visuel par influence et de l’UUID des joueurs.
|
||||
|
||||
Demeure conserve la responsabilité des traces, des budgets, des seuils, de la
|
||||
décroissance et de leur persistance. Sanctuary applique ses conditions de
|
||||
revendication. Les empreintes sont sauvegardées atomiquement avant de réserver
|
||||
ou débiter un nouveau claim. Une lecture ou écriture refusée empêche cet achat
|
||||
sans effacer le fichier ; les propriétés déjà acquises restent valables.
|
||||
|
||||
Un paquet de lecture `sanctuary:claim_residency_v1` fournit l’état et le nom/couleur
|
||||
prioritaire pour le seul chunk sélectionné et accessible. Les anciens codecs
|
||||
et identifiants restent inchangés. Aucun état d’habitation n’est transmis pour
|
||||
un terrain inaccessible ou avant Carte. Aucun monde personnel ni génération
|
||||
n’est modifié par les essais.
|
||||
|
||||
## Vérification
|
||||
|
||||
`check build assemblePack` réussit en **2 min 52 s**, avec **34 tests serveur
|
||||
ciblés**. Les quatre nouveaux tests couvrent les activités natives nécessaires,
|
||||
le refus d’un passage ou d’un achat sans habitation, cinq claims gratuits puis
|
||||
le coût du sixième, l’égalité et le dépassement avant revendication, l’acquisition
|
||||
par le nouvel habitant prioritaire, l’absence de transfert après achat et le
|
||||
renouvellement sans domination Demeure. Les propriétés anciennes sans preuve
|
||||
rétroactive restent protégées ; le paquet de lecture est testé, ainsi que le
|
||||
refus de divulguer les habitants d’un chunk inaccessible ou avant Carte.
|
||||
|
||||
Les tests purs Demeure ajoutent **14 scénarios d’habitation, priorité et point
|
||||
de sauvegarde**, dont l’ordre conservé après rechargement, indépendamment du tri
|
||||
visuel et des UUID, la décroissance, les dimensions et l’intégrité du fichier
|
||||
même quand le modèle en mémoire n’a pas changé. Les **63 vérifications du registre
|
||||
de claims** et les scénarios historiques ciblés passent aussi. Les montages de
|
||||
paiement et de migration préparent leurs traces d’habitation indépendamment des
|
||||
tentatives de claim : un clic refusé ne crée aucune influence.
|
||||
|
||||
Le parcours **Vulkan FR/EN GUI 2/3/4** final réussit en **51 s**, avec **28 captures**.
|
||||
Il passe par Hello World et l’achat de Carte, constate le bouton désactivé avant
|
||||
habitation, le refus d’un simple passage, le changement de priorité quand Nora
|
||||
prend plus d’influence et son retour au joueur lorsque celui-ci la dépasse.
|
||||
Un autre spot libre est réellement revendiqué par Nora après dépassement.
|
||||
Le nom/couleur prioritaire et le bouton désactivé sont vérifiés dans les deux
|
||||
langues aux trois tailles ; les contextes d’achat et de protection, les contours
|
||||
CTM, le masquage et l’aperçu de Pause restent valides. Captures dans
|
||||
`build/claims277-screenshots/`, avec inspection des panneaux FR GUI 4 et EN.
|
||||
|
||||
```sh
|
||||
./gradlew check build assemblePack \
|
||||
-PsanctuaryFocusedTests=claims277,menu275,claims273,claims272,property270,mining,overview271,menus,map,demeure \
|
||||
-PsanctuaryAtlasOnly=true
|
||||
./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true \
|
||||
-PsanctuaryClaims277ClientTests=true -PsanctuaryQuickTests=true \
|
||||
-PsanctuaryClientGraphicsBackend=vulkan -PsanctuaryClientHeapGb=8 \
|
||||
-PsanctuaryClientNoVsync=true
|
||||
```
|
||||
|
||||
MRpack beta.277 exporté et vérifié : ZIP, Minecraft 26.3, Loader 0.19.5,
|
||||
versions et libellés FR/EN, octets des deux JAR embarqués identiques aux builds
|
||||
locaux. Les archives beta.270 à beta.276 restent identiques. Reçu :
|
||||
`build/claims277-validation.json`. Aucune publication de canal ni synchronisation
|
||||
d’installation personnelle n’est effectuée.
|
||||
@@ -0,0 +1,71 @@
|
||||
# CLAIM-04 — Couleurs et état des claims sur la carte, beta.273
|
||||
|
||||
Branche `codex/inhabitant-property`, demande du 24 octobre 2026.
|
||||
|
||||
Chaque chunk revendiqué porte la couleur persistante de son propriétaire,
|
||||
choisie dans Hello World. Le nom et la couleur restent disponibles hors ligne.
|
||||
Un claim protégé a une teinte plus présente, une bordure pleine et un bouclier ;
|
||||
un claim sans protection a une teinte légère et une bordure en pointillés.
|
||||
Le survol donne le propriétaire, l’état et la durée restante ; une légende
|
||||
rappelle les deux styles. Le clic droit continue à ouvrir le panneau existant.
|
||||
|
||||
Un bouton **Propriétés : oui/non** masque ou réaffiche la teinte, les bordures,
|
||||
les boucliers, la légende et les infobulles de claims. Le choix est partagé
|
||||
avec l’aperçu de Pause et conservé tant que le client reste ouvert, y compris
|
||||
après fermeture de la carte. Le clic droit et les protections restent actifs ;
|
||||
les données continuent de se mettre à jour pour un réaffichage immédiat.
|
||||
Ce choix de session n’ajoute aucun fichier ni format de sauvegarde.
|
||||
|
||||
Les apparences sont envoyées automatiquement avec les tuiles de la carte,
|
||||
pour la vue proche comme pour l’Atlas. Aucun clic préalable n’est nécessaire.
|
||||
Seules les tuiles déjà transmises au joueur reçoivent leurs claims ; aucun
|
||||
terrain inconnu n’est révélé. Une acquisition ou un renouvellement actualise
|
||||
la tuile affichée. L’expiration change le style depuis la durée serveur restante,
|
||||
sans retirer la propriété. Les réponses d’une ancienne requête sont ignorées. Les achats diffusent aussi
|
||||
une mise à jour ponctuelle des cellules déjà observées, indépendante d’un
|
||||
rafraîchissement en cours ; aucune cellule inconnue n’est acceptée côté client.
|
||||
|
||||
Ce lot ajoute un paquet de présentation borné. Les identifiants existants,
|
||||
registres, reçus, règles, prix, durées et formats de sauvegarde restent identiques
|
||||
à beta.272. Aucune migration ni modification de terrain.
|
||||
|
||||
## Validation
|
||||
|
||||
Le parcours **Vulkan FR/EN, GUI 2/3/4**, passe en **62 s** sur un nouveau monde
|
||||
plat de graine 273. Il conserve l’admission et les achats réels de beta.272,
|
||||
puis compare quatre chunks contigus appartenant à deux propriétaires : chacun
|
||||
a un chunk protégé et un chunk sans protection. L’un des propriétaires n’est pas
|
||||
connecté. Les couleurs distinctes, le nom hors ligne, les deux styles, les
|
||||
mises à jour après achat, les requêtes rapides, le clic droit, Échap et l’aperçu
|
||||
de Pause sont vérifiés. Le masquage, sa conservation après fermeture, le clic
|
||||
droit sous masquage et le réaffichage sont contrôlés, avec captures de la carte
|
||||
et de l’aperçu de Pause sans propriétés. **19 captures** sont conservées dans
|
||||
`build/claims273-screenshots/`, avec inspection FR GUI 2/4, EN GUI 4 et Pause.
|
||||
|
||||
Le cache est également vérifié avec une horloge contrôlée : expiration sans
|
||||
perte de propriété, réponse périmée ignorée, mise à jour d’achat pendant un
|
||||
rafraîchissement, cellule inconnue refusée et remplacement par une tuile vide.
|
||||
Le test serveur ajouté couvre le nom et le RGB persistants d’un propriétaire
|
||||
hors ligne, la durée et le codec du paquet, avec refus hors des cellules
|
||||
transmises et au-delà de 64 cellules. Les registres conservent leurs 58
|
||||
vérifications indépendantes de beta.272.
|
||||
|
||||
```sh
|
||||
./gradlew check build assemblePack \
|
||||
-PsanctuaryFocusedTests=claims273,claims272,property270,mining,overview271,menus \
|
||||
-PsanctuaryAtlasOnly=true
|
||||
./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true \
|
||||
-PsanctuaryClaims273ClientTests=true -PsanctuaryQuickTests=true \
|
||||
-PsanctuaryClientGraphicsBackend=vulkan -PsanctuaryClientHeapGb=8 \
|
||||
-PsanctuaryClientNoVsync=true
|
||||
```
|
||||
|
||||
`check build assemblePack` réussit en **2 min 41 s**, avec **26 tests serveur
|
||||
ciblés** et les 58 vérifications indépendantes du registre. Le MRpack beta.273
|
||||
est exporté et vérifié : ZIP, Minecraft 26.3, Loader 0.19.5 et octets des deux
|
||||
JAR locaux identiques aux builds. Les archives beta.270 à beta.272 restent
|
||||
inchangées.
|
||||
|
||||
Le reçu final de build et de distribution est dans
|
||||
`build/claims273-validation.json`. Aucun serveur, canal packwiz, monde ou
|
||||
instance personnelle déployé. Aucun changement du comportement de protection.
|
||||
@@ -0,0 +1,75 @@
|
||||
# MAP-CTM — Calque Demeure continu, beta.274
|
||||
|
||||
Branche `codex/inhabitant-property`. Demande du 24 octobre 2026, après beta.273.
|
||||
La [refonte des propriétés](property-demeure-refonte.md) reste un cadrage en
|
||||
attente ; la fiche Habitant est conservée. Le créateur a confirmé que les claims
|
||||
actuels doivent rester accessibles.
|
||||
|
||||
Le calque Demeure garde sa texture de 1 024 × 1 024 pixels alignée sur celle du
|
||||
terrain, mais retire les cadres de chunks. Deux cellules adjacentes ayant la
|
||||
même couleur et la même influence se raccordent sans couture interne, y compris
|
||||
aux coins. Il ne s’agit pas d’ajouter des textures CTM de blocs dans le monde.
|
||||
|
||||
La teinte est uniforme dans chaque cellule connue. Sa présence suit la **part
|
||||
relative d’influence** déjà calculée par Demeure, avec un alpha de 16 + 96 × part / 100
|
||||
(0 si la part est nulle). Ce pourcentage n’est pas un compteur de jours habités
|
||||
ou une preuve d’ancienneté. Le terrain, le brouillard et le vide gardent leurs
|
||||
pixels ; seuls les chunks modifiés sont repeints. Un changement de pourcentage
|
||||
actualise maintenant la teinte même si la couleur du personnage reste identique.
|
||||
|
||||
## Protections, dans le même calque pixel
|
||||
|
||||
Une protection active prend une couleur uniforme (alpha 64/255) dans la même
|
||||
texture que Demeure : plus de rectangles GUI par chunk, de cadres, de pointillés
|
||||
ou de boucliers. Les cellules voisines de même propriétaire se rejoignent sans
|
||||
trait intérieur. Un claim sans protection reste déclaré et accessible au clic
|
||||
droit, sans aplat de protection. Si les deux affichages sont activés, la couleur
|
||||
de protection est prioritaire sur l’influence Demeure.
|
||||
|
||||
La légende associe les couleurs aux personnages ayant une protection visible,
|
||||
avec trois noms au maximum puis un compteur. Le bouton de masquage reste partagé
|
||||
avec Pause. Le calque est invalidé par les achats, les données de Demeure, les
|
||||
changements d’affichage et l’expiration ; les cellules expirées sont repeintes
|
||||
une fois. L’aperçu de Pause compose la même teinte dans ses propres pixels de
|
||||
terrain, en conservant le masque du vide et du brouillard. Aucun dessin de
|
||||
bordure ne dépend de l’adjacence : le raccord résulte des pixels uniformes.
|
||||
|
||||
L’infobulle du bouton décrit la présence et l’influence d’habitation, sans
|
||||
« aucun claim ni protection ». Les règles, scores et formats de Demeure,
|
||||
les droits et données de propriété, la génération et les mondes personnels
|
||||
ne sont pas modifiés par cette correction d’affichage.
|
||||
|
||||
## Vérification
|
||||
|
||||
`check build assemblePack` réussit en **2 min 50 s** : **29 tests serveur ciblés**
|
||||
(claims, ancien modèle, minage, overview, menus, Atlas et Demeure). Les contrôles
|
||||
indépendants du registre restent réussis. Les deux parcours **Vulkan FR/EN,
|
||||
GUI 2/3/4** passent : **58 s / 19 captures** pour les propriétés et **29 s /
|
||||
8 captures** pour Demeure.
|
||||
|
||||
Les tests de pixels vérifient les bords, coins et corps identiques sur des
|
||||
cellules adjacentes, la teinte seule des protections actives, les propriétaires
|
||||
hors ligne, le changement de pourcentage sans changement de couleur, le vide,
|
||||
le brouillard et le retrait d’une empreinte. Le masquage, le réaffichage,
|
||||
l’expiration, le clic droit, la composition dans Pause et l’accès Habitant sont
|
||||
couverts. Captures dans `build/map274-screenshots/` et
|
||||
`build/demeure274-screenshots/` ; inspections FR GUI 4, EN GUI 3, Pause et Habitant.
|
||||
|
||||
Le MRpack beta.274 est exporté et vérifié : ZIP, Minecraft 26.3, Loader 0.19.5
|
||||
et octets des deux JAR locaux identiques aux builds. Les archives beta.270 à
|
||||
beta.273 gardent leur empreinte. Reçu : `build/map274-validation.json`.
|
||||
|
||||
```sh
|
||||
./gradlew check build assemblePack \
|
||||
-PsanctuaryFocusedTests=claims273,claims272,property270,mining,overview271,menus,map,demeure \
|
||||
-PsanctuaryAtlasOnly=true
|
||||
./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true \
|
||||
-PsanctuaryMap274ClientTests=true -PsanctuaryQuickTests=true \
|
||||
-PsanctuaryClientGraphicsBackend=vulkan -PsanctuaryClientHeapGb=8 \
|
||||
-PsanctuaryClientNoVsync=true
|
||||
# Pour le second parcours, remplacer sanctuaryMap274ClientTests par sanctuaryDemeure274ClientTests.
|
||||
```
|
||||
|
||||
Export local uniquement. La proposition de claim issue de l’habitation, le
|
||||
premier occupant, les duels, l’accord de partage et un tarif moins élevé restent
|
||||
à définir dans le cadrage de reprise ; aucun n’est annoncé comme implémenté.
|
||||
@@ -0,0 +1,114 @@
|
||||
# Diagonales : transitions, dessous et cavités — beta.227
|
||||
|
||||
Retour R045 sur beta.226, 5 octobre 2026. Branche `codex/diagonal-caves-beta227`,
|
||||
base `5fb1407`. Anciennes générations conservées ; nouveaux profils 227 uniquement.
|
||||
|
||||
- NE jardin pâle/marais : transitions d’étangs sans paliers brutaux, relief 3D
|
||||
plus présent à l’intérieur, fragmentation prononcée du pourtour, petites
|
||||
échappées d’eau admises mais pas de rideau d’eau massif.
|
||||
- SO : surface désert/savane appréciée ; retirer de l’épaisseur rocheuse inutile
|
||||
sous le plateau sans refaire sa surface.
|
||||
- SE : mangroves et silhouette validées ; ajouter de grandes régions de lush
|
||||
caves et dripstone caves dans les parties inférieures.
|
||||
- NO : grandes plaines validées ; commencer le grignotage 3D plus près du centre.
|
||||
|
||||
Captures consultées dans le labo 226 : `2026-10-05_21.05.12.png` et
|
||||
`2026-10-05_21.07.21.png`. Elles montrent des fonds d’étangs à transitions nettes.
|
||||
La profondeur binaire et le masque de protection des bassins dans 226 sont
|
||||
remplacés par des transitions continues. La photo seule ne prouve pas un
|
||||
problème de frontière de chunk ; les contrôles ci-dessous portent sur les
|
||||
transitions du champ et la décoration native.
|
||||
|
||||
## Réalisation
|
||||
|
||||
Les champs 225/226 restent figés. 227 s’appuie sur le champ 226 pour conserver
|
||||
la surface méridionale et la forme des récifs de mangrove. Aucun changement
|
||||
de sauvegarde, de génération existante ou de dimension.
|
||||
|
||||
NE : retrait du halo binaire autour des lacs ; profondeur interpolée, relief
|
||||
intérieur continu avant arrondi en blocs, rugosité 3D atténuée près de l’eau.
|
||||
La bordure entière peut être découpée, y compris les anciens abords protégés.
|
||||
L’eau n’est placée que sur les fonds encore présents ; pas de remplissage des
|
||||
grandes failles ouvertes. De petites échappées restent possibles. Il ne s’agit
|
||||
pas d’une simulation d’hydrologie ni d’un réseau de cascades.
|
||||
|
||||
SO : amincissement variable, environ 40 à 64 blocs sous le toit avec irrégularité
|
||||
3D du dessous. Les 24 blocs supérieurs restent sur le champ accepté. Sur les
|
||||
grilles de sondage 0/42, environ 49 à 51 % du volume rocheux échantillonné est
|
||||
retiré ; ce n’est pas un recensement exhaustif de toute l’île.
|
||||
|
||||
SE : densité et biomes de surface 226 conservés. Sous la surface, de larges
|
||||
régions de grottes luxuriantes et à concrétions reçoivent les features natives
|
||||
26.3 (mousse, lianes lumineuses, fleurs sporifères, argile, grandes concrétions,
|
||||
stalactites/stalagmites). Plages de placement adaptées à Y=40–320. Aucune
|
||||
nouvelle lave, forêt d’azalées de surface ou nouvelle distribution de minerais
|
||||
ajoutée par ces deux biomes de cavités. Les volumes existants servent de support,
|
||||
sans nouvelle excavation de la silhouette validée.
|
||||
|
||||
NO : le masque peut maintenant agir jusqu’à 340 blocs de distance interne
|
||||
au bord (contre 180), sans modifier le noyau de plaines restant. Le champ
|
||||
supplémentaire ne fait que retirer de la matière.
|
||||
|
||||
## Vérifications
|
||||
|
||||
Six GameTests ciblés réussis : transitions NE et relief intérieur sur quatre
|
||||
graines, extension des découpes NO et centre conservé, surface SO intacte et
|
||||
volume réduit, champ SE identique et deux vastes biomes souterrains, trois
|
||||
presets publics, ordre des features, déterminisme après recompilation et
|
||||
anciens profils lisibles.
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack :sanctuary-test:exportDuoLaunch
|
||||
-PsanctuaryFocusedTests=base204,diagonal227 -PsanctuaryAtlasOnly=true` réussit
|
||||
en 4 min 2 s (`build/diagonal227-build.log`).
|
||||
|
||||
Les premiers essais natifs 0/42 valident le NE, les arbres immergés et les
|
||||
décorations des deux types de caves au SE. Ils s’arrêtent sur un contrôle trop
|
||||
étroit des arbres de savane : un seul chunk de chaque biome, tous sans arbre
|
||||
complet. Lecture des chunks FULL sauvegardés : 11 troncs / 70 feuilles sur 0,
|
||||
24 troncs / 214 feuilles sur 42. L’instrumentation élargit désormais la recherche
|
||||
à d’autres chunks de savane, sans changer la production. Helper recompilé et
|
||||
exporté ; nouveaux essais isolés `diagonal227-final0` et `diagonal227-final42`
|
||||
réussis, processus terminés normalement. Les mondes du premier essai restent
|
||||
intacts. Le helper final est recompilé puis exécuté dans ces deux essais ;
|
||||
aucun changement de production après le build complet.
|
||||
|
||||
Les quatre offres réelles, leur coût, le refus d’un double paiement, la reprise
|
||||
après interruption et les quatre relais utilisables sont vérifiés sur chaque
|
||||
graine. Chaque activation prépare 49 chunks FULL. Les arbres natifs sont
|
||||
présents dans les quatre expansions ; 3 et 7 troncs enracinés dans les marais
|
||||
peu profonds ont été observés. Les sondages des cavités SE trouvent respectivement
|
||||
120/171 blocs de décoration lush et 34/30 de pointed dripstone. Ces comptages
|
||||
prouvent la décoration native dans les chunks examinés, pas sa densité globale.
|
||||
Les cannes à sucre de l’île principale restent présentes : 42 pieds sur 0,
|
||||
94 sur 42. Rapports ignorés sous `build/worldgen-lab/diagonal227-final{0,42}`.
|
||||
|
||||
## Distribution et visite
|
||||
|
||||
MRpack normal : `build/Sanctuary-beta.227.mrpack`, copie dans Downloads.
|
||||
Minecraft 26.3, Fabric Loader 0.19.5. Archive contrôlée, JAR conforme au build,
|
||||
trois tailles présentes, aucun module Test ni monde inclus. Les 398 ressources
|
||||
historiques de worldgen comparées sont identiques à 226 ; seul l’alias public
|
||||
Sanctuary pointe désormais vers les nouveaux profils.
|
||||
|
||||
- SHA-256 MRpack : `5ffa88d0a8d30b17276bda0e644e3406dd2a2bdc7727a27e546320a502adf547`.
|
||||
- SHA-256 JAR : `e759515e49cd254f41e9ab786478cba02613c560534f77d89b820f69ae384dee`.
|
||||
|
||||
Nouvelle visite isolée `diagonal227-final-visit`, monde
|
||||
`Sanctuary-Diagonal-227-0` : copie du nouveau monde de vérification arrêté,
|
||||
graine 0, île principale Petit, quatre expansions de 1024 prêtes, créatif avec
|
||||
commandes, distance 32 chunks et simulation 5. Départ au-dessus du relais NE.
|
||||
Ouverture confirmée le 5 octobre à 21:33:59 : `DIAGONAL227_VISIT_OPEN`,
|
||||
position `848, 384, -496`, backend Vulkan confirmé dans
|
||||
`build/diagonal227-solo.log`. Aucune validation OpenGL.
|
||||
|
||||
| Région | Relais X, Y, Z sur la graine 0 |
|
||||
| --- | --- |
|
||||
| NE jardin pâle/marais | 848, 336, -496 |
|
||||
| SE mangroves/cavités | 560, 377, 816 |
|
||||
| SO savane/désert | -832, 217, 512 |
|
||||
| NO plaines/taïga | -608, 238, -768 |
|
||||
|
||||
Le rendu reste à apprécier par le joueur, notamment les berges très découpées
|
||||
et l’étendue visible des cavités. Pas de visite complète Moyen/Grand, de mesure
|
||||
de fluidité ni d’essai Windows revendiqués. Aucun ancien monde modifié, aucun
|
||||
canal packwiz avancé et aucune installation Prism synchronisée.
|
||||
@@ -0,0 +1,100 @@
|
||||
# Diagonales climatiques et cannes à sucre — beta.225
|
||||
|
||||
## Contrat
|
||||
|
||||
Demande du 5 octobre 2026 : cannes à sucre près de l’eau de Sanctuary Island,
|
||||
puis quatre expansions diagonales de **1024 blocs** (512 remplacé pendant
|
||||
le chantier à la demande du joueur). Nord froid, Sud chaud,
|
||||
Est humide, Ouest sec. Branche `codex/diagonal-islands-beta225`, base `1388d8a`.
|
||||
|
||||
- Nord-Est : marais frais, jardin pâle, forêt sombre et taïga.
|
||||
- Nord-Ouest : meadow, prairies, taïga et bosquets froids.
|
||||
- Sud-Est : mangroves, jungle et bambou.
|
||||
- Sud-Ouest : désert, savane et prairies sèches.
|
||||
|
||||
Première variante : surfaces étendues, collines, dessous flottant irrégulier,
|
||||
zones humides fermées dans les dépressions du terrain. Végétation et faune
|
||||
des biomes natifs 26.3. Relais de continuation conservé. Les quatre cardinales
|
||||
restent en 1024 avec leur génération validée. Pas de nouvelle structure ici.
|
||||
|
||||
Nouveaux profils 225 seulement, dans les trois tailles Sanctuary. Les profils
|
||||
224 et antérieurs gardent leurs règles et leurs tailles d’expansion. Aucune migration ou régénération de sauvegarde.
|
||||
Les essais utilisent uniquement des mondes neufs de développement (42 et 0).
|
||||
Le message SGA et l’aide de visite réservée aux opérateurs sont conservés.
|
||||
|
||||
## Implémentation
|
||||
|
||||
Champ de relief déterministe, collines à grande échelle, bordure irrégulière et
|
||||
bruit 3D dans le dessous. Épaisseur variable, de neuf blocs sur les extrémités
|
||||
à 68 blocs à l’intérieur. Les dépressions humides ont un niveau commun Y=204,
|
||||
un fond protégé et une couronne de terrain ferme ; aucune simulation
|
||||
hydrologique supplémentaire. La sélection des biomes est continue dans les
|
||||
coordonnées du monde et utilise les végétations natives 26.3.
|
||||
|
||||
Les offres des ancres diagonales demandent un diamètre 1024 et conservent
|
||||
l’éventail de placement existant. Préparation limitée à 49 chunks autour du
|
||||
relais ; le reste se génère à l’exploration. Relais simple de continuation pour
|
||||
cette première variante. Les monuments régionaux des cardinales sont conservés.
|
||||
|
||||
Les cannes réutilisent le plan des berges de surface, après leur aménagement.
|
||||
Groupes de deux ou trois blocs, sur sol accepté par Minecraft et à côté d’une
|
||||
eau réellement présente. Écriture limitée au chunk décoré, sans dépendre de
|
||||
l’ordre de décoration des chunks voisins. Aucun nouveau bassin créé.
|
||||
|
||||
## Vérifications
|
||||
|
||||
Six GameTests ciblés (`base204,diagonal225`) réussis : trois tailles publiques
|
||||
sans Test, lecture des anciens profils, biomes et étanchéité sur quatre graines,
|
||||
reproductibilité aux limites des chunks, éventail directionnel et absence de
|
||||
collision, conservation des matériaux du volcan, règles de survie des cannes.
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack :sanctuary-test:exportDuoLaunch
|
||||
-PsanctuaryFocusedTests=base204,diagonal225 -PsanctuaryAtlasOnly=true`
|
||||
réussit en 3 min 57 s. Log : `build/diagonal225-build.log`.
|
||||
|
||||
L’essai natif 42 passe les quatre offres, le paiement, l’interruption/reprise,
|
||||
les relais et la végétation des quatre directions. 94 pieds de canne observés
|
||||
sur les berges de l’île principale. Le premier essai 0 a révélé une erreur
|
||||
**du contrôle** : son premier échantillon de mangrove était sur la berge sèche,
|
||||
ce qui ne prouvait rien sur l’eau de la dépression. Le contrôle cherche désormais
|
||||
une colonne réellement immergée et vérifie son fluide natif. Le nouvel essai 0 passe aussi les quatre activations et les contrôles natifs ;
|
||||
43 pieds de canne observés. La correction ne touche que l’instrumentation du
|
||||
module Test, recompilée et réassemblée ensuite ; le terrain livré est identique.
|
||||
|
||||
| Graine | Nord-Est X/Z | Sud-Est X/Z | Sud-Ouest X/Z | Nord-Ouest X/Z | Cannes |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| 42 | 544 / -816 | 816 / 544 | -816 / 512 | -704 / -736 | 94 |
|
||||
| 0 | 848 / -496 | 560 / 816 | -832 / 512 | -608 / -768 | 43 |
|
||||
|
||||
Les huit expansions mesurent 1024 blocs et passent chacune par 49 chunks FULL
|
||||
préparés. Présence de bois/feuilles natifs dans les quatre directions, mangroves
|
||||
et bambou à l’Est, cactus dans le désert à l’Ouest. Ces relevés sont locaux,
|
||||
pas un inventaire exhaustif de chaque île. Reçus ignorés :
|
||||
`build/worldgen-lab/diagonal225-check42/small/42/{cold,warm}.json` et
|
||||
`build/worldgen-lab/diagonal225-wet-check0/small/0/{cold,warm}.json`.
|
||||
|
||||
## Distribution et limites
|
||||
|
||||
MRpack standard vérifié : archive intègre, JAR exact, dépendances 26.3/Loader
|
||||
0.19.5, trois tailles 225 et 382 ressources historiques de génération identiques
|
||||
à beta.224 (sauf alias public du preset). Aucun monde ni module Test inclus.
|
||||
SHA-256 : `b178c15d8a40a1627134c64b343d13d508f9e7c95f85d43a1a88c8769d8e8c0c`.
|
||||
|
||||
Le rendu reste à apprécier en jeu. Pas de campagne graphique ou Windows,
|
||||
ni de nouvelle exploration complète Medium/Large. Pas de changement du canal
|
||||
packwiz ni de l’installation Prism personnelle. Les mondes de contrôle restent
|
||||
dans les dossiers de développement ignorés.
|
||||
|
||||
|
||||
## Visite du 5 octobre 2026
|
||||
|
||||
À la demande du joueur, nouveau solo `Sanctuary-Diagonal-225-0`, graine 0,
|
||||
copie du serveur de contrôle arrêté. Les quatre diagonales sont déjà prêtes ;
|
||||
départ au Nord-Est en 848 / 254 / -496. Vulkan, rendu 32 chunks, simulation 5,
|
||||
créatif/vol et commandes autorisées. Le client confirme `DIAGONAL225_VISIT_OPEN`.
|
||||
|
||||
Ajout du nom Diagonal-225 à la liste du lanceur de visites et à son aide client
|
||||
optionnelle, compilée avec `:sanctuary-test:exportDuoLaunch`. L’identité des
|
||||
sources du contrôle a été vérifiée avant ce seul changement de lanceur ;
|
||||
génération et ressources de production identiques. Les anciens mondes et le
|
||||
MRpack beta.225 livré restent inchangés. La visite est une copie neuve isolée.
|
||||
@@ -0,0 +1,64 @@
|
||||
# Jardins pâles bas et roche jaune — beta.230
|
||||
|
||||
Retour R048 sur beta.229, 5 octobre 2026. Base `55df522`, branche
|
||||
`codex/lower-groves-beta230`. Nouveaux profils uniquement, aucune migration
|
||||
ou régénération des anciennes cartes.
|
||||
|
||||
NE : garder le relief validé et étendre les chênes pâles aux terrasses situées
|
||||
sous le niveau du plateau, y compris à ciel ouvert. Dripstone dans les parties
|
||||
inférieures ; marais et lucioles restent sur le plateau. Eau toujours
|
||||
facultative et conditionnée à une cuvette naturellement fermée.
|
||||
|
||||
SO : mêler la roche jaune existante à la pierre normale en masses continues,
|
||||
en conservant les minerais natifs et les cavités soufre/dripstone.
|
||||
SE mangroves et NO plaines validés par le joueur, champs de relief conservés.
|
||||
|
||||
Le seuil inférieur suit le plafond ondulé du terrain savane (Y=230 ± 18),
|
||||
avec une bande supérieure de 12 blocs laissée au marais. Il ne suit plus le
|
||||
sommet local de chaque colonne : une terrasse basse ouverte est désormais un
|
||||
sol de jardin pâle. Même support 2 × 2 et même dégagement pour les arbres.
|
||||
Les formations natives de dripstone sont ajoutées au biome pâle inférieur.
|
||||
Les buissons à lucioles restent exclusivement au-dessus de ce seuil.
|
||||
|
||||
La roche jaune est répartie par un bruit volumique lent, sans changer la
|
||||
forme de la savane. La substitution après décoration ne vise que Stone ;
|
||||
elle conserve les blocs de minerai, leur voisinage immédiat dans le chunk,
|
||||
les autres roches, le soufre et le cinabre. Aucune variante de minerai jaune
|
||||
ajoutée et aucun changement des tags minéraux globaux.
|
||||
|
||||
Neuf GameTests ciblés réussis : reliefs conservés, séparation des habitats,
|
||||
terrasses ouvertes et sols abrités, cuvettes fermées, cavités sèches SO,
|
||||
substitution réelle de pierre avec conservation des minerais, presets et
|
||||
ordre des features. Les grilles 0/42 trouvent 274/285 sites de chêne pâle,
|
||||
dont 216/245 ouverts ; ces chiffres ne sont pas un inventaire de l’île.
|
||||
`./gradlew check build assemblePack assembleTestPack :sanctuary-test:exportDuoLaunch
|
||||
-PsanctuaryFocusedTests=base204,diagonal230 -PsanctuaryAtlasOnly=true` réussit
|
||||
en 2 min 38 s. Contrôles natifs réussis sur 0/42 : quatre activations réelles, paiements et
|
||||
refus des doubles offres, interruption/reprise, 49 chunks FULL par expansion,
|
||||
relais utilisables. Les nouveaux mondes de contrôle sont arrêtés normalement.
|
||||
|
||||
Au NE, dans les chunks sondés : 38/32 blocs de tronc pâle, quatre colonnes
|
||||
de racine à ciel ouvert sur chaque graine (un tronc de 2 × 2), 103/76 blocs
|
||||
de pointed dripstone et 7/1 buissons à lucioles supérieurs. Au SO : les deux
|
||||
roches sont présentes (462/1711 blocs jaunes et 7180/2707 Stone dans les
|
||||
échantillons), avec pics de soufre et dripstone. Ces comptes attestent la
|
||||
présence, sans mesurer la proportion globale sur chaque île.
|
||||
Rendu à apprécier en jeu.
|
||||
|
||||
MRpack normal vérifié, copie dans Downloads : Minecraft 26.3 / Fabric Loader
|
||||
0.19.5, trois tailles, JAR identique au build, aucun module Test ni monde.
|
||||
Les 432 ressources historiques de worldgen comparées à 229 sont identiques.
|
||||
SHA-256 pack : `b080b17d7e54427d3a6b89da2b009637e99a648752ba49068a274fa35499f8e4`.
|
||||
SHA-256 JAR : `c72cc0afea27e7d71c73d6f4edc4f874bc5fb665288eba243d7faafcba5e3276`.
|
||||
Reçu : `build/diagonal230-mrpack-receipt.json`.
|
||||
|
||||
Aucune publication de canal ni synchronisation Prism, aucune validation
|
||||
Windows ou mesure de fluidité.
|
||||
|
||||
|
||||
Nouvelle visite isolée `diagonal230-visit`, monde `Sanctuary-Diagonal-230-0`,
|
||||
copiée depuis le contrôle graine 0 arrêté. Île principale Petit et quatre
|
||||
expansions 1024 prêtes. Créatif avec commandes, 32 chunks, simulation 5 ;
|
||||
départ au relais NE (856, 273, -496). Ouverture Vulkan confirmée à 22:45:00
|
||||
le 5 octobre 2026, `DIAGONAL230_VISIT_OPEN` dans `build/diagonal230-solo.log`.
|
||||
Le rendu reste à apprécier par le joueur ; anciennes visites conservées.
|
||||
@@ -0,0 +1,110 @@
|
||||
# Reliefs distincts des diagonales — beta.226
|
||||
|
||||
Retour du 5 octobre 2026 sur beta.225. Biomes appréciés, silhouettes refusées :
|
||||
grands plateaux identiques, bords tranchés. Branche `codex/diagonal-relief-beta226`,
|
||||
base `e2b9ee7` et conservation des ajustements locaux du lanceur de visite 225.
|
||||
|
||||
- Nord-Est : garder les bassins, davantage de hauts reliefs émergés sans excaver
|
||||
leur intérieur ; marais moins profonds, arbres plus fréquents dans l’eau,
|
||||
quelques grands lacs conservés.
|
||||
- Nord-Ouest : grandes plaines et végétation validées ; bords rongés fortement
|
||||
en 3D, effet qui diminue en allant vers le centre, centre préservé.
|
||||
- Sud-Ouest : remplacer la base par un terrain flottant 3D natif, grandes
|
||||
surfaces de sable et roche, plateaux de savane, léger rehaussement local.
|
||||
- Sud-Est : relief très fragmenté, hauts et bas, récifs verticaux, davantage
|
||||
de mangroves ; boue, argile et calcite. Abandon de l’ambiance plate.
|
||||
|
||||
Diamètre 1024, Est humide/Ouest sec. Nouveaux profils 226 seulement. Île
|
||||
principale, cannes à sucre et quatre cardinales conservées. Pas de migration
|
||||
des mondes 225 ou antérieurs ; nouvelles visites isolées pour les essais.
|
||||
|
||||
## Réalisation
|
||||
|
||||
La révision 225 reste figée. Trois nouveaux profils 226 réutilisent exactement
|
||||
la génération de Sanctuary Island ; seules les diagonales passent au nouveau
|
||||
champ. Les anciennes ressources et leurs identifiants restent lisibles.
|
||||
|
||||
Le Nord-Ouest réemploie les colonnes et matériaux 225 à plus de 180 blocs de
|
||||
la bordure. À l’extérieur, deux échelles de bruit volumique découpent le bord
|
||||
et le dessous ; un masque continu réduit l’effet en approchant du centre.
|
||||
Le Nord-Est conserve les dépressions et leur enveloppe étanche, garde une
|
||||
partie des lacs profonds et relève les autres fonds à une ou deux couches
|
||||
d’eau. Des reliefs émergés ajoutés en 3D restent à distance des bassins. Les
|
||||
chênes de marais natifs reçoivent davantage de tentatives de plantation.
|
||||
|
||||
Le Sud-Ouest repart du champ flottant `PopulationIslandDensity`, sans le
|
||||
plateau commun 225, avec une limite haute légèrement ondulée pour les savanes.
|
||||
Le Sud-Est étire verticalement ce champ, ajoute des fractures et des récifs
|
||||
volumiques, et favorise les mangroves natives. Les différentes corniches
|
||||
exposées reçoivent du sol, pas seulement le sommet de la colonne ; les veines
|
||||
cohérentes de calcite et d’argile traversent la roche. Le sable repose sur une
|
||||
base solide. Les biomes de végétation natifs restent ordonnés et compatibles.
|
||||
|
||||
Les bassins 225 conservés concernent le Nord-Est. Le Sud-Est abandonne ses
|
||||
anciens bassins plats ; ses mangroves poussent sur les corniches de boue.
|
||||
|
||||
La préparation d’une expansion reste limitée à 49 chunks autour du relais.
|
||||
Pas de passe d’hydrologie ou de simulation supplémentaire, ni de nouvelle
|
||||
structure. Relais cherché sur un support réel ; le petit socle 3 × 3 existant est conservé,
|
||||
sans grande terrasse artificielle.
|
||||
|
||||
## Contrôles
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack :sanctuary-test:exportDuoLaunch
|
||||
-PsanctuaryFocusedTests=base204,diagonal226 -PsanctuaryAtlasOnly=true` réussit
|
||||
en 2 min 42 s (`build/diagonal226-build.log`). Six GameTests : trois profils
|
||||
publics et historiques, conservation du centre NO, bords rongés, bassins NE
|
||||
étanches et moins profonds sur quatre graines (0, 42, 2026, -9137), volumes
|
||||
natifs méridionaux, part des mangroves, déterminisme après recompilation,
|
||||
relais supportés, ordre des features et routage des cardinales validées.
|
||||
|
||||
Sur la grille de contrôle des deux graines 0/42, le NO perd plus de la moitié
|
||||
de ses colonnes de bord à leur ancienne hauteur, avec un centre strictement
|
||||
conservé. Le NE conserve des lacs profonds et 56 à 84 % de colonnes humides
|
||||
peu profondes sur les quatre graines. Les reliefs ajoutés dépassent localement
|
||||
85 blocs. Au SE, la mangrove couvre 67 à 73 % des colonnes émergées échantillonnées
|
||||
sur les graines de champ 0/42 ; les surfaces vont localement de Y=63 à Y=439.
|
||||
Ce sont des sondages de champs, pas des mesures exhaustives des mondes.
|
||||
|
||||
Deux mondes natifs neufs, graines **0 et 42**, passent les quatre offres réelles,
|
||||
le refus des paiements incorrects et doubles offres, l’interruption après
|
||||
réservation, la reprise, les relais utilisables et la décoration native.
|
||||
Chaque préparation reste à 49 chunks FULL. Trois troncs natifs enracinés
|
||||
sous le niveau de l’eau ont été constatés dans le marais de chaque monde
|
||||
(arrêt du contrôle dès trois arbres). Bois et feuilles présents sur les quatre
|
||||
îles, mangroves sur les corniches SE. Cannes de l’île principale : 42 pieds
|
||||
sur 0, 94 sur 42. Les relevés de plantes portent sur quelques chunks par biome ;
|
||||
un échantillon désert sans cactus ne constitue pas un inventaire de l’île.
|
||||
|
||||
Reçus ignorés :
|
||||
`build/worldgen-lab/diagonal226-check0/small/0/{cold,warm}.json` et
|
||||
`build/worldgen-lab/diagonal226-check42/small/42/{cold,warm}.json`.
|
||||
|
||||
## Distribution
|
||||
|
||||
MRpack standard beta.226 dans `build/` et `~/Downloads/`, contrôlé après
|
||||
assemblage : archive intègre, JAR construit exact, Minecraft 26.3 / Loader
|
||||
0.19.5, trois nouveaux profils et 388 ressources historiques de génération
|
||||
identiques à beta.225 (hors alias public). Aucun monde ou module Test inclus.
|
||||
SHA-256 : `c1ce5fc71a3e0417194d591d1ddd04b00dcef46565dfdb34ccd7ee2a01217e02`.
|
||||
|
||||
Pas de publication du canal packwiz, de push ou de modification de Prism.
|
||||
Les mondes existants restent sur leur révision. Rendu à apprécier par le joueur ;
|
||||
pas de campagne de screenshots, de validation Windows ou d’exploration complète
|
||||
Medium/Large. Les contrôles des trois tailles vérifient leurs registres et presets.
|
||||
|
||||
## Visite
|
||||
|
||||
Copie isolée du serveur 0 arrêté dans
|
||||
`build/worldgen-lab/diagonal226-visit/small/0/client/saves/Sanctuary-Diagonal-226-0`.
|
||||
Créatif, vol et commandes autorisés ; 32 chunks de rendu, simulation 5,
|
||||
mémoire 4 Gio. Départ NE à 848 / 270 / -496. Vulkan confirmé ; `DIAGONAL226_VISIT_OPEN` le 5 octobre à 20:32:59.
|
||||
Le joueur passe en Spectateur à 20:33:04.
|
||||
|
||||
Points d’observation libres, téléportation possible :
|
||||
|
||||
- NE : `/tp @s 848 270 -496`
|
||||
- SE : `/tp @s 560 425 816`
|
||||
- SO : `/tp @s -832 265 512`
|
||||
- NO : `/tp @s -608 286 -768`
|
||||
|
||||
@@ -0,0 +1,88 @@
|
||||
# Diagonales : abaisser et ciseler — beta.228
|
||||
|
||||
Retour R046 sur beta.227, 5 octobre 2026. Base `70a34df`, branche
|
||||
`codex/diagonal-shaping-beta228`. Nouveaux profils uniquement.
|
||||
|
||||
Le jardin pâle monte trop haut entre les étangs. Conserver son pourtour 3D,
|
||||
abaisser fortement le relief et rendre les lacs lisibles. Les mangroves et
|
||||
leurs cavités conviennent, mais leurs volumes demandent des arêtes moins
|
||||
rondes. Même finition sur les bordures des plaines NO, plateau général
|
||||
conservé. L’épaisseur et la surface désert/savane SO sont validées et figées.
|
||||
|
||||
Captures consultées dans le labo 227 : `2026-10-05_21.36.56.png` et
|
||||
`2026-10-05_21.40.07.png` ; grandes buttes NE et découpe arrondie NO visibles.
|
||||
|
||||
## Réalisation
|
||||
|
||||
NE : comprimer les hauteurs émergées, réduire la surélévation et l’annuler sur
|
||||
les fonds aquatiques. SE/NO : fractures Voronoi à largeur modulée par du bruit
|
||||
3D ; calcul cellulaire mis en cache par colonne. Le noyau de plaines NO et le
|
||||
champ SO restent ceux de 227. Réutiliser les deux biomes de cavités 227 au SE.
|
||||
|
||||
La partie émergée du NE est comprimée à 55 % de sa hauteur au-dessus de l’eau.
|
||||
Les deux surélévations passent de 120 + 100 à 12 + 8 blocs, avec une transition
|
||||
continue qui les annule sur les fonds aquatiques. Le masque 3D du bord reste
|
||||
celui de 227. L’eau garde son niveau Y=204, sans nouvelle simulation hydrologique.
|
||||
|
||||
Le Voronoi SE/NO fournit la distance aux faces des cellules ; deux bruits 3D
|
||||
modulent la largeur des fractures à différentes échelles. Le calcul cellulaire
|
||||
est réutilisé sur la colonne entière. Au NO, l’action supplémentaire cesse
|
||||
à 280 blocs de distance interne au bord : le centre est exactement celui de
|
||||
227. Au SE, seules des découpes sont ajoutées ; les cavités existantes ne sont
|
||||
pas remplies. Les nouveaux rebords reçoivent les matériaux du terrain 226.
|
||||
|
||||
## Vérifications
|
||||
|
||||
Sept GameTests ciblés réussis (`build/diagonal228-tests.log`). Sur les grilles
|
||||
NE de quatre graines, dont les deux graines d’expansion réellement visitées :
|
||||
sommets entre Y=228 et 237, baisse moyenne intérieure de 30 à 39 blocs,
|
||||
2,4 à 2,6 fois plus de colonnes en eau qu’en 227. Plus de 95 % des anciens fonds
|
||||
aquatiques 225 du centre sont de nouveau en eau. Ce sont des échantillons,
|
||||
pas une mesure exhaustive de la superficie des lacs.
|
||||
|
||||
Sur 0/42, environ 8–10 % de matière en moins au NO et 22 % au SE dans les
|
||||
grilles sondées ; centre NO conservé, deux biomes de caves présents, relais
|
||||
sur support, surfaces de mangrove préservées comme habitats. Le champ de
|
||||
densité et les matériaux SO sont identiques à 227 sur les échantillons.
|
||||
Déterminisme, trois presets publics et anciens identifiants contrôlés.
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack :sanctuary-test:exportDuoLaunch
|
||||
-PsanctuaryFocusedTests=base204,diagonal228 -PsanctuaryAtlasOnly=true` réussit
|
||||
en 2 min 43 s (`build/diagonal228-build.log`), avec les sept GameTests.
|
||||
|
||||
Contrôles natifs réussis sur deux nouveaux mondes isolés, graines 0/42 :
|
||||
`diagonal228-check0` et `diagonal228-check42`. Paiements et refus des doubles
|
||||
offres, interruption/reprise, quatre expansions de 1024, 49 chunks FULL par
|
||||
activation et relais utilisables vérifiés. Les sondages trouvent des arbres
|
||||
dans chaque région, ainsi que des troncs enracinés dans l’eau au NE (3/7).
|
||||
Au SE, présence native des décorations lush (389/114 blocs échantillonnés) et
|
||||
pointed dripstone (38/76). Ces comptages ne mesurent pas leur abondance globale.
|
||||
Les deux processus se terminent normalement. Aucun ancien monde modifié.
|
||||
|
||||
## Artefact local
|
||||
|
||||
MRpack normal `build/Sanctuary-beta.228.mrpack`, copié dans Downloads.
|
||||
Archive et JAR vérifiés, Minecraft 26.3 / Fabric Loader 0.19.5, trois tailles,
|
||||
aucun module Test ni sauvegarde dans le pack. Les 415 ressources historiques
|
||||
de worldgen comparées à 227 sont identiques ; seul l’alias public est avancé.
|
||||
|
||||
- SHA-256 MRpack : `5e808121a2b1e3e358c58a2bb4616592521a4bd54cb18fe25c3ab68b05a4ee9d`.
|
||||
- SHA-256 JAR : `4a62259e1d941079de44237ed3a342a5a5e7fbe443fce07826fda76be2dd2a58`.
|
||||
|
||||
Nouvelle visite `diagonal228-visit`, monde `Sanctuary-Diagonal-228-0`, copiée
|
||||
depuis le nouveau monde de contrôle arrêté. Graine 0, île principale Petit,
|
||||
quatre expansions de 1024 prêtes, créatif avec commandes, 32 chunks et simulation
|
||||
5. Ouverture Vulkan confirmée le 5 octobre à 21:54:28 dans
|
||||
`build/diagonal228-solo.log` : `DIAGONAL228_VISIT_OPEN`, position 848, 267, -496.
|
||||
|
||||
| Région | Relais X, Y, Z sur la graine 0 |
|
||||
| --- | --- |
|
||||
| NE jardin pâle/marais | 848, 219, -496 |
|
||||
| SE mangroves/cavités | 560, 377, 816 |
|
||||
| SO savane/désert | -832, 217, 512 |
|
||||
| NO plaines/taïga | -608, 238, -768 |
|
||||
|
||||
Le rendu reste à apprécier par le joueur. Ces essais ne constituent pas une
|
||||
mesure de fluidité ni une visite exhaustive des tailles Moyen/Grand. Aucun
|
||||
essai Windows, aucune modification d’un ancien monde, aucune publication de
|
||||
canal packwiz ou synchronisation Prism dans ce chantier.
|
||||
@@ -0,0 +1,76 @@
|
||||
# Sous-bois pâles et visite des neuf îles — beta.231
|
||||
|
||||
Retours R049–R050 du 5 octobre 2026. Base `42e42fe`, branche
|
||||
`codex/pale-understory-beta231`. Correctif livré ; nouvelle visite ouverte.
|
||||
|
||||
Compléter les sols inférieurs du jardin pâle : herbes, fleurs natives
|
||||
(eyeblossoms), tapis et mousse suspendue sous les feuillages. Conserver les
|
||||
formes, arbres, dripstones, marais supérieurs et géologie de savane validés.
|
||||
L’eau reste facultative, seulement dans les cuvettes naturelles existantes.
|
||||
Nouvelle révision de génération, sans modifier les anciens profils ou mondes.
|
||||
|
||||
Préparer une nouvelle visite isolée sur la graine 0 : Sanctuary Island Grand
|
||||
(1024 blocs), huit expansions de 1024, toutes activées. Le joueur a choisi ensuite une ouverture immédiate,
|
||||
avec chargement des zones restantes pendant l’exploration. Créatif, commandes, Vulkan, distance 32 chunks. Aucun changement
|
||||
à la génération normale du rythme d’ouverture des expansions. Pas de
|
||||
publication de canal, ni modification de l’instance Prism personnelle.
|
||||
|
||||
Le correctif réutilise exactement le champ de terrain 230 et ses biomes.
|
||||
Une décoration supplémentaire parcourt les sols inférieurs réels du NE,
|
||||
à ciel ouvert ou abrités : herbe courte/haute, tapis de mousse pâle et fleurs
|
||||
fermées natives, avec leur transition jour/nuit. Petits rideaux de mousse
|
||||
sous le feuillage pâle. Les regroupements suivent des bruits lents ; aucune
|
||||
plante ne remplace eau, roche, tronc, dripstone ou végétation existante.
|
||||
|
||||
Cinq GameTests passent, dont support réel des plantes, double hauteur,
|
||||
protection des obstacles et conservation du champ accepté sur 0/42.
|
||||
`./gradlew check build assemblePack assembleTestPack :sanctuary-test:exportDuoLaunch
|
||||
-PsanctuaryFocusedTests=base204,diagonal231 -PsanctuaryAtlasOnly=true` passe
|
||||
en 2 min 34 s. MRpack normal vérifié (Minecraft 26.3 / Loader 0.19.5), trois
|
||||
tailles, JAR exact, sans Test ni monde ; 439 ressources historiques identiques.
|
||||
SHA-256 pack : `3a9763cb81e088a0beeb4e4044dd35586a590c75f6c2f9a035937c8df4dee14c`.
|
||||
SHA-256 JAR : `8ba7b19428094e01ac9f3b6b3f8054343bc7a3df60f786260f01b487ee2f675a`.
|
||||
Copie `Downloads/Sanctuary-beta.231.mrpack`, reçu
|
||||
`build/diagonal231-mrpack-receipt.json`.
|
||||
|
||||
La préparation complète est explicite :
|
||||
`python3 scripts/worldgen_lab.py verify --run archipelago231-check0 --profile large
|
||||
--seed 0 --checks diagonal231 --all-islands --memory 2048`.
|
||||
Elle utilise les paiements natifs, conserve l’interruption/reprise du premier
|
||||
relais, puis charge les neuf emprises avec une limite de quatre chunks en
|
||||
cours. Chaque chunk doit atteindre FULL, tickets libérés au fur et à mesure.
|
||||
Rapport final et arrêt propre requis avant de copier la nouvelle visite.
|
||||
Sur la graine 0 en Grand, les quatre contrôles natifs des diagonales passent :
|
||||
NE, dans un chunk inférieur sondé, 75 blocs d’herbe, 24 fleurs, 37 tapis,
|
||||
8 mousses suspendues, 44 troncs pâles, 105 dripstones et 5 lucioles supérieures.
|
||||
Ces nombres attestent leur présence ; ils ne mesurent pas toute l’île.
|
||||
Savane : 7731 blocs jaunes et 101 de pierre dans les échantillons ; cavités
|
||||
soufre/dripstone présentes. Mangroves et plaines conservent leurs habitats.
|
||||
|
||||
Les huit activations réelles aboutissent, relais présents, journal relu :
|
||||
neuf îles de diamètre 1024 en état `ready`, génération 231, graine racine 0.
|
||||
La prégénération intégrale visait 41 458 chunks ; le joueur choisit de lancer
|
||||
le solo immédiatement. Arrêt demandé à 23:06:09, sauvegarde normale achevée,
|
||||
dernier jalon 256/41 458 (en plus des zones d’arrivée et échantillons).
|
||||
Ce contrôle interrompu volontairement n’est **pas** une prégénération complète
|
||||
réussie ; les zones restantes se chargent pendant l’exploration.
|
||||
Reçu : `build/worldgen-lab/archipelago231-check0/large/0/visit-readiness.json`.
|
||||
Anciennes visites conservées, aucune validation Windows ou mesure de fluidité.
|
||||
|
||||
|
||||
Visite `archipelago231-visit/large/0`, monde `Sanctuary-Diagonal-231-0`,
|
||||
créée depuis le serveur arrêté et ouverte à 23:07:33 le 5 octobre 2026.
|
||||
Vulkan confirmé, marqueur `DIAGONAL231_VISIT_OPEN`, départ (0, 320, 0),
|
||||
créatif/vol/commandes, rendu 32 chunks, simulation 5. Les données du labo
|
||||
restent dans `build/` ignoré. Aucun ancien monde modifié.
|
||||
|
||||
| Île | Centre X/Z | Commande de visite |
|
||||
| --- | --- | --- |
|
||||
| Nord | 32 / -1984 | `/sanctuary expansion visit r2yyuk27a85c8p` |
|
||||
| Nord-Est | 736 / -960 | `/sanctuary expansion visit r7vapqz7anv7c` |
|
||||
| Est | 1776 / -208 | `/sanctuary expansion visit r2zwcc9ktr14ds` |
|
||||
| Sud-Est | 960 / 736 | `/sanctuary expansion visit r3bswui5wc00kk` |
|
||||
| Sud | 0 / 1536 | `/sanctuary expansion visit r391kr4y3lwlzy` |
|
||||
| Sud-Ouest | -960 / 736 | `/sanctuary expansion visit rclt83rncgsv1` |
|
||||
| Ouest | -1792 / -192 | `/sanctuary expansion visit r3r7b6q184g2a1` |
|
||||
| Nord-Ouest | -736 / -960 | `/sanctuary expansion visit r81ebztggj346` |
|
||||
@@ -0,0 +1,97 @@
|
||||
# Marais étagé et cavités sèches — beta.229
|
||||
|
||||
Retour R047 sur beta.228, 5 octobre 2026. Base `b77d71b`, branche
|
||||
`codex/wetland-reset-beta229`. Nouveaux profils uniquement ; aucun ancien
|
||||
monde, chunk ou identifiant de génération migré.
|
||||
|
||||
## Contrat
|
||||
|
||||
Refaire entièrement le NE : même géométrie que la savane amincie validée,
|
||||
chênes pâles sur les sols abrités sous la roche, marais en haut. Lucioles
|
||||
uniquement dans le marais supérieur. Eau facultative, seulement quand le
|
||||
relief possède une dépression fermée ; abandon des lacs à niveau constant.
|
||||
SO : soufre et dripstone dans les parties inférieures, sans lush caves et
|
||||
sans changer la surface. SE mangrove entièrement validé ; NO conservé
|
||||
provisoirement malgré les réserves esthétiques, aucune retouche des deux.
|
||||
|
||||
## Implémentation
|
||||
|
||||
Le NE réutilise le champ de densité SO 228, avec la graine propre à cette
|
||||
expansion. Épaisseur variable et plateau restent ceux de ce champ ; seules
|
||||
les matières et les habitats changent. Sous les 12 derniers blocs du toit,
|
||||
biome jardin pâle ; en haut, biome marais. Plantation native des chênes pâles
|
||||
sur des sols naturels de 2 × 2 avec le dégagement nécessaire sous un surplomb.
|
||||
Les buissons à lucioles sont posés sur le sol supérieur réel, jamais sur des
|
||||
feuilles ni dans le jardin pâle inférieur.
|
||||
|
||||
Aucune simulation hydrologique ni construction de cuvette : une recherche
|
||||
locale bornée accepte seulement des dépressions d’un bloc de profondeur,
|
||||
avec deux blocs de fond solide et des murs naturels continus. Si une paroi
|
||||
manque, toute la mise en eau est abandonnée. Ces mares peuvent être rares
|
||||
ou absentes suivant la graine. Les biomes NE n’ajoutent aucune source native.
|
||||
|
||||
SO : régions de soufre/cinabre ou dripstone sous le plateau, dans les
|
||||
cavités du terrain existant. Formations natives de pics de soufre et de
|
||||
speleothèmes ; aucun creusement nouveau ni décor lush. Les deux autres
|
||||
champs et leurs décorations restent en révision 228.
|
||||
|
||||
## Vérifications
|
||||
|
||||
Huit GameTests ciblés passent (`build/diagonal229-tests.log`). Sur les graines
|
||||
0/42, identité du champ NE avec le SO 228, habitats séparés en hauteur,
|
||||
65/46 emplacements de chênes pâles sur les grilles sondées, mares toutes
|
||||
bordées de matière naturelle, déterminisme, cavités SO et conservation des
|
||||
champs SE/NO contrôlés. Les nombres d’emplacements ne représentent pas un
|
||||
inventaire exhaustif des arbres de l’île.
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack :sanctuary-test:exportDuoLaunch
|
||||
-PsanctuaryFocusedTests=base204,diagonal229 -PsanctuaryAtlasOnly=true` réussit
|
||||
en 2 min 38 s. Contrôles natifs 0/42 réussis, avec quatre offres réelles,
|
||||
refus des doubles offres, consommation correcte, interruption/reprise,
|
||||
49 chunks FULL par activation et relais utilisables.
|
||||
|
||||
Dans les chunks sondés au NE : 40/44 blocs de tronc pâle et 9/4 buissons à
|
||||
lucioles supérieurs ; racines sous des surplombs et aucune luciole basse.
|
||||
Au SO : 32/37 pics de soufre et 9/76 pointed dripstone ; aucun décor lush
|
||||
trouvé dans les cavités inspectées. Ces chiffres attestent la présence,
|
||||
pas l’abondance globale. Les cavités lush/dripstone SE restent présentes.
|
||||
|
||||
Lecture des deux sauvegardes arrêtées (`build/diagonal229-water-audit.json`) :
|
||||
52/51 chunks NE FULL, 36/12 colonnes de racines pâles, aucune cellule d’eau.
|
||||
Les rares mares du plan théorique n’étaient donc pas présentes dans cet
|
||||
échantillon natif ; leur fréquence visuelle reste à apprécier ailleurs.
|
||||
Aucun ancien monde n’a été modifié.
|
||||
|
||||
## Artefact local
|
||||
|
||||
MRpack normal `build/Sanctuary-beta.229.mrpack`, copie dans Downloads.
|
||||
Archive et JAR construits vérifiés, Minecraft 26.3 / Fabric Loader 0.19.5,
|
||||
trois tailles publiques, aucun module Test ni sauvegarde. Les 421 ressources
|
||||
historiques de worldgen comparées à 228 sont identiques ; seul l’alias public
|
||||
est avancé. Reçu : `build/diagonal229-mrpack-receipt.json`.
|
||||
|
||||
- SHA-256 MRpack : `788b3aa5898f12aed4570224beb4dd44505eb9e5cae89cefdef9fe7549c85f8b`.
|
||||
- SHA-256 JAR : `50fd7d6c04c9060abf3eca89bbaf936b39c6e9e82051d2d6559f197f425fdda9`.
|
||||
|
||||
Aucune validation Windows ni mesure de fluidité. Aucun ancien monde modifié,
|
||||
aucune publication du canal packwiz ni synchronisation Prism.
|
||||
|
||||
|
||||
## Visite
|
||||
|
||||
Nouvelle visite isolée `diagonal229-visit`, monde `Sanctuary-Diagonal-229-0`,
|
||||
copiée depuis le nouveau contrôle graine 0 arrêté. Île principale Petit,
|
||||
quatre expansions de 1024 prêtes, créatif avec commandes, vue 32 chunks,
|
||||
simulation 5. Ouverture Vulkan confirmée à 22:23:49 le 5 octobre 2026 :
|
||||
`DIAGONAL229_VISIT_OPEN` dans `build/diagonal229-solo.log`. Rendu à apprécier
|
||||
par le joueur.
|
||||
|
||||
| Région | Relais X, Y, Z sur la graine 0 |
|
||||
| --- | --- |
|
||||
| NE marais / jardin pâle inférieur | 856, 225, -496 |
|
||||
| SE mangroves / cavités | 560, 377, 816 |
|
||||
| SO savane / cavités sèches | -832, 217, 512 |
|
||||
| NO plaines / taïga | -608, 238, -768 |
|
||||
|
||||
Exemple de pied de chêne pâle observé dans la sauvegarde : 475, 174, -541.
|
||||
Le joueur démarre au-dessus du relais NE. Anciennes visites conservées.
|
||||
@@ -0,0 +1,88 @@
|
||||
# LIGHT-288 — intégrer la correction des lumières portées
|
||||
|
||||
Branche `codex/dynamic-light-integration`, socle local beta.287 conservé.
|
||||
État : intégré, vérifié et construit en pack local beta.288.
|
||||
|
||||
## Résultat demandé
|
||||
|
||||
Intégrer au pack courant le correctif du commit
|
||||
`6f44214f2725b4ef2d1002606cb83e70885186ec`, branche `codex/dynamic-hand-light`.
|
||||
Sa version locale isolée était beta.283 ; la livraison combinée prend beta.288
|
||||
et conserve les zombies, leurs neuf tenues partagées, les bras natifs et le
|
||||
Hunter accroupi de beta.287.
|
||||
|
||||
Une torche ou une lanterne tenue réagissait dans les normales PBR sans éclairer
|
||||
le terrain avec Sodium. La collecte des sources était correcte, mais les copies
|
||||
`LevelSlice` utilisées par les workers Sodium ne recevaient pas l’instantané.
|
||||
|
||||
L’interface `DynamicLightContext` et deux mixins optionnels transmettent
|
||||
l’instantané immuable du contexte préparé côté rendu vers la copie du worker.
|
||||
Chaque nouveau travail remplace sa capture et `reset` la libère. Les lectures
|
||||
directes de lumière de bloc dans Sodium utilisent le même champ radial que
|
||||
le chemin natif, sans modifier le canal du ciel.
|
||||
|
||||
Les mixins ne sont sélectionnés que côté client avec Sodium présent. La
|
||||
version exacte reste `0.9.2+mc26.3`, facultative et active par défaut dans le
|
||||
pack ; aucune nouvelle dépendance. Les budgets, réglages et chemins natifs
|
||||
existants restent en vigueur. Aucun monde, identifiant, format de sauvegarde
|
||||
ou comportement serveur n’est modifié.
|
||||
|
||||
## Vérification
|
||||
|
||||
Le test existant `HandLight283ClientChecks` est repris sans modification du
|
||||
commit source. Monde plat neuf, graine `283`, salle en pierre fermée et zone
|
||||
de pixels du sol sans interface ni objet en main visible. Deux parcours
|
||||
**Vulkan / MoltenVK 1.4.2, Apple M1** réussis :
|
||||
|
||||
| Rendu du pack combiné | Sol sans source | Sol avec torche |
|
||||
| --- | ---: | ---: |
|
||||
| Sodium `0.9.2+mc26.3` | 11,785 | 85,366 |
|
||||
| Natif, Sodium absent | 11,783 | 90,043 |
|
||||
|
||||
Ces moyennes de luminance sur 255 sont des mesures de pixels, pas des niveaux
|
||||
de lumière du serveur. Les deux mains, l’AO activée/désactivée, shaders/PBR
|
||||
coupés, profil Moyen sans/avec PBR, déplacement et torche jetée sont vérifiés.
|
||||
Après retrait, le sol retrouve sa luminosité initiale ; le moteur de lumière
|
||||
du monde reste à zéro. Avec Sodium, le worker retardé conserve son instantané,
|
||||
la réutilisation le remplace, le ciel reste inchangé et `reset` le libère.
|
||||
|
||||
Commandes des deux parcours, en sessions distinctes :
|
||||
|
||||
```sh
|
||||
./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true \
|
||||
-PsanctuaryHandLightClientTests=true -PsanctuarySodiumClientTests=true \
|
||||
-PsanctuaryQuickTests=true -PsanctuaryClientGraphicsBackend=vulkan \
|
||||
-PsanctuaryClientHeapGb=8 -PsanctuaryClientNoVsync=true
|
||||
```
|
||||
|
||||
Le second parcours utilise `-PsanctuarySodiumClientTests=false`. Le parcours
|
||||
`Zombie287ClientChecks` réussit également avec Sodium activé, Vulkan, graine
|
||||
`287` : neuf tenues partagées pour les sept types, bébé classique, bras natifs,
|
||||
21 combinaisons de familiers et marche/bond du Hunter. Logs et captures sous
|
||||
`build/dynamic288/`.
|
||||
|
||||
`./gradlew check build assemblePack -PsanctuaryFocusedTests=lights,hunter286
|
||||
-PsanctuaryAtlasOnly=true` réussit en **2 min 42 s** : **19 GameTests requis**
|
||||
pour les lumières et le Hunter, test d’infrastructure compris, ainsi que tous
|
||||
les contrôles purs configurés par `check`.
|
||||
|
||||
L’export packwiz est vérifié : intégrité ZIP, version `beta.288`, Minecraft
|
||||
`26.3`, Fabric Loader `0.19.5`, un seul JAR Sanctuary identique au binaire
|
||||
construit. Par rapport au JAR beta.287, seules **cinq entrées** changent :
|
||||
la version Fabric, le plugin de sélection des mixins et les trois nouvelles
|
||||
classes du pont Sodium. Toutes les classes et ressources des zombies et
|
||||
familiers sont strictement identiques. Les tests et Sodium ne sont pas
|
||||
embarqués dans le JAR Sanctuary.
|
||||
|
||||
## Livraison locale
|
||||
|
||||
- [Pack beta.288](../build/Sanctuary-beta.288.mrpack), 16 715 918 octets.
|
||||
SHA-256 : `51f70f5f00b0ccd293cf9be0dd34cf3e125c493d7929393428623668543c396b`.
|
||||
- JAR `mods/sanctuary/build/libs/sanctuary-beta.288.jar`.
|
||||
SHA-256 : `189883fad82476da221552fc56facb585f05f3167d0908a855f510625b932358`.
|
||||
- Reçu : `build/dynamic288/validation.json`, comparaison des archives et
|
||||
références des logs. Le MRpack beta.287 reste intact.
|
||||
|
||||
Aucune publication, synchronisation Prism ou ouverture de sauvegarde
|
||||
personnelle. La décroissance radiale et ses limites d’occultation restent
|
||||
celles de l’éclairage dynamique existant.
|
||||
@@ -0,0 +1,84 @@
|
||||
# Est — cratère strié et arbres enracinés, beta.224
|
||||
|
||||
## Contrat du 5 octobre 2026
|
||||
|
||||
Retour après visite beta.223 : relief général, arbres et ravins appréciés.
|
||||
Arbres de jungle observés sur d’autres arbres ; cratère jugé trop camouflage.
|
||||
Conserver la géométrie et retravailler ses matériaux : lignes concentriques
|
||||
du fond vers le sommet, stries verticales/hachures qui s’estompent en hauteur,
|
||||
plus d’obsidienne, magma à proximité, transitions légèrement bruitées.
|
||||
Captures évoquées sans chemin fourni : aucune capture inspectée.
|
||||
Branche `codex/east-crater-beta224`, base `9063e16`.
|
||||
|
||||
## Portée
|
||||
|
||||
Nouveaux profils 224 uniquement. Le champ de densité, les hauteurs, ravins,
|
||||
cavités, lave et emplacements de monuments reprennent exactement 223 pour une
|
||||
même graine d’expansion. Habillage minéral de la surface et des sept blocs sous-jacents du
|
||||
cratère uniquement, sans nouvelle simulation ni passe de relief.
|
||||
Les grandes jungles utilisent les mêmes arbres avec un filtre de sol avant
|
||||
plantation, absent du placement custom 223. Tables natives de bambou, pandas
|
||||
et autres arbres conservées. Île principale, Nord, Sud et Ouest conservés.
|
||||
Anciennes sauvegardes et profils intacts ; essai dans un nouveau laboratoire.
|
||||
|
||||
## Vérifications ciblées
|
||||
|
||||
Java 25, Minecraft 26.3, Fabric Loader 0.19.5 et API 0.160.5+26.3.
|
||||
Sept GameTests réussis (`base204,east223,east224`) :
|
||||
|
||||
- Conservation exacte des hauteurs, densités, cavités et volumes de lave entre
|
||||
223 et 224 sur quatre graines d’expansion ; aucun déplacement des monuments.
|
||||
- Matériaux hors du traitement du cratère inchangés ; obsidienne plus abondante
|
||||
et magma présent sur la rive découverte, pas seulement sous la lave.
|
||||
- Admission du grand arbre refusée sur feuilles, troncs, air et pierre ;
|
||||
admise sur herbe, terre et podzol. Le tag natif `minecraft:dirt` de 26.3
|
||||
ne contient ni herbe ni podzol : le filtre utilise les sols explicites et
|
||||
la règle native de survie du jeune arbre, testés depuis le registre chargé.
|
||||
- Profils de création et anciens profils chargés, anciens contrôles Est 223
|
||||
et conservation de l’Ouest validé.
|
||||
|
||||
Deux serveurs natifs isolés à 2 Gio passent la demande par ancre, le refus du
|
||||
mauvais paiement, l’interruption/reprise et la préparation de 62 chunks.
|
||||
Même position et graine d’expansion qu’en 223 ; diamètres 1024 :
|
||||
|
||||
| Graine monde | Centre X/Z | Graine expansion | Tronc maximal | Pieds suspendus détectés |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| 42 | 944 / 144 | 207124680538740498 | 41 blocs | 0 |
|
||||
| 0 | 944 / -144 | 118376680751547919 | 44 blocs | 0 |
|
||||
|
||||
La recherche de pieds suspendus porte sur 24 chunks par graine (huit par
|
||||
ambiance de jungle) : terre située plus de cinq blocs au-dessus du terrain
|
||||
avec un tronc dessus. Ce contrôle et le filtre de placement corrigent le cas
|
||||
identifié ; ils ne constituent pas une inspection exhaustive de tous les arbres.
|
||||
Les mêmes relevés comptent respectivement 840/1 565 bûches, 2 883/4 646 feuilles
|
||||
et 2 748/2 094 bambous. Deux coffres à butin et deux distributeurs dans chaque
|
||||
temple, relais complet, 919/957 colonnes de lave et 39 464/38 928 contrôles
|
||||
de parois sans fuite.
|
||||
|
||||
Reçus ignorés : `build/east224-gametest-passed.log` et
|
||||
`build/worldgen-lab/east224-checked{42,0}/small/{42,0}/{cold,warm}.json`.
|
||||
|
||||
## Livraison
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack :sanctuary-test:exportDuoLaunch
|
||||
-PsanctuaryFocusedTests=base204,east223,east224 -PsanctuaryAtlasOnly=true`
|
||||
réussit en 5 min 25 s. Log : `build/east224-build.log`.
|
||||
|
||||
MRpack normal vérifié et copié dans `~/Downloads` : archive intègre, JAR exact,
|
||||
trois tailles, filtre de plantation et 371 ressources de génération historiques
|
||||
strictement identiques à beta.223 (hors alias public du preset). Aucun monde ni
|
||||
module de test embarqué. Reçu : `build/east224-mrpack-receipt.json`.
|
||||
SHA-256 de `Sanctuary-beta.224.mrpack` :
|
||||
|
||||
```text
|
||||
01aed4e6a0d9e2965ed8201372eef3aaecab3b0c6dce3fb84586895ed9076885
|
||||
```
|
||||
|
||||
La visite neuve `Sanctuary-East-224-42` est ouverte le 5 octobre à 17:26:25,
|
||||
Vulkan natif, rendu 32 chunks, simulation 5, créatif/vol/commandes. Position
|
||||
initiale 547 / 351 / 144, face au volcan. Copie du serveur de contrôle arrêté,
|
||||
identité de sources vérifiée ; anciennes visites conservées.
|
||||
|
||||
Le rendu des stries reste à apprécier par le joueur. Pas de nouvelle campagne graphique Windows,
|
||||
ni d’exploration complète Medium/Large. Aucune modification d’ancien monde,
|
||||
publication de canal ou mise à jour Prism.
|
||||
@@ -0,0 +1,85 @@
|
||||
# Est — volcan flottant et jungles, beta.223
|
||||
|
||||
## Contrat du 5 octobre 2026
|
||||
|
||||
Après la livraison des déclinaisons de roche jaune (beta.222), le joueur valide
|
||||
l’Ouest 221 et demande le laboratoire Est. Volcan actif, lave dans le cratère,
|
||||
jungle sur les flancs ; la silhouette historique est explicitement rejetée.
|
||||
Il faut un vrai cône volcanique flottant, un temple de jungle, du bambou,
|
||||
des pandas et des jungles clairsemées ou denses avec de très grands arbres.
|
||||
Diamètre de premier essai : 1024 blocs, dans la direction de l’ancre Est.
|
||||
Branche `codex/east-volcano-beta223`, base `2d656d9`.
|
||||
|
||||
## Portée
|
||||
|
||||
Nouveaux profils 223 Small/Medium/Large uniquement ; aucun profil 222 de
|
||||
terrain n’existe (222 ajoutait uniquement des blocs). Île principale, Nord,
|
||||
Sud et Ouest conservent leurs générateurs validés. Les mondes et journaux
|
||||
historiques sont conservés. Nouveau laboratoire et nouvelle activation ;
|
||||
aucune expansion ajoutée à une sauvegarde personnelle.
|
||||
|
||||
Silhouette conique asymétrique, bouche décentrée et légèrement elliptique,
|
||||
ravines ramifiées par bruit cohérent, épaulement ancien et affaissement local
|
||||
du bord du cratère. Répartition des jungles par nappes de bruit, sans secteurs
|
||||
radiaux répétés. Couronne sommitale irrégulière et cuvette de lave
|
||||
fermée, dessous suspendu irrégulier. Roche volcanique au sommet, sol végétal
|
||||
sur les flancs. Biomes de jungle et bambou avec végétation native, dont une
|
||||
variante de grands arbres. Temple natif avec pièges et coffres, fondations
|
||||
locales. Relais sur le flanc extérieur, éloigné du cratère.
|
||||
Pas d’éruption animée ni de simulation géologique/hydrologique globale.
|
||||
|
||||
## Vérifications
|
||||
|
||||
Le 5 octobre 2026, Java 25, Minecraft 26.3 et Fabric Loader 0.19.5 :
|
||||
|
||||
- `./gradlew check build assemblePack assembleTestPack :sanctuary-test:exportDuoLaunch
|
||||
-PsanctuaryFocusedTests=base204,east223,rock222 -PsanctuaryAtlasOnly=true`
|
||||
réussit en 3 min 34 s. Sept GameTests ciblés passent également lors du contrôle
|
||||
préalable : profils historiques et actuels, roche jaune, forme et lave sur
|
||||
quatre graines, direction Est, égalité du relief et des décors Ouest 221/223.
|
||||
- Deux serveurs natifs isolés, graines 42 et 0, mémoire 2 Gio : demande par ancre,
|
||||
refus du mauvais paiement, interruption à 0/62 chunks et reprise persistée.
|
||||
Les deux expansions deviennent disponibles avec 62 chunks préparés ; la suite
|
||||
est générée à l’exploration.
|
||||
- La cuvette est contrôlée dans les chunks réels : 919/957 colonnes de lave et
|
||||
39 464/38 928 vérifications de parois pour 42/0. Aucun débouché vers le vide
|
||||
détecté dans ces contrôles.
|
||||
- Chaque temple contient deux coffres à table de butin et deux distributeurs
|
||||
piégés ; 1 157 blocs de maçonnerie relevés. Le relais possède ses 2 069 blocs
|
||||
attendus et une offre utilisable.
|
||||
- Sur 24 chunks par graine, huit de chaque ambiance de jungle : 1 501/1 446
|
||||
bûches, 3 747/4 398 feuilles, 2 689/2 294 bambous ; tronc continu maximal de
|
||||
44 blocs sur les deux graines. Les tables natives du biome bambou comprennent
|
||||
les pandas ; leur nombre réel n’est pas une assertion de cette campagne.
|
||||
- MRpack vérifié : ZIP, JAR exact, versions, trois tailles, profils historiques,
|
||||
biomes Est, tables de pandas, grands arbres, temple et déclinaisons de roche
|
||||
jaune ; aucun monde ni module de laboratoire embarqué.
|
||||
|
||||
Les logs et reçus ignorés sont `build/east223-build-final.log`,
|
||||
`build/east223-natural-gametest.log`, `build/east223-mrpack-receipt.json` et
|
||||
`build/worldgen-lab/east223-checked{42,0}/small/{42,0}/{cold,warm}.json`.
|
||||
|
||||
| Graine du monde | Centre de l’expansion X/Z | Graine de l’expansion | Temple X/Y/Z |
|
||||
| --- | --- | --- | --- |
|
||||
| 42 | 944 / 144 | 207124680538740498 | 835 / 271 / 418 |
|
||||
| 0 | 944 / -144 | 118376680751547919 | 961 / 300 / 150 |
|
||||
|
||||
## Livraison et visite
|
||||
|
||||
`Sanctuary-beta.223.mrpack`, copié dans `~/Downloads`, SHA-256 :
|
||||
|
||||
```text
|
||||
ac31ff8203dca95265c7d0af545bab231697ad295b48eade2ee115090a9597e6
|
||||
```
|
||||
|
||||
La visite neuve `Sanctuary-East-223-42` est ouverte le 5 octobre à 17:09:45,
|
||||
Vulkan natif, rendu 32 chunks, simulation 5, créatif/vol/commandes. Position
|
||||
initiale 547 / 351 / 144, face au volcan. Copie du laboratoire arrêté,
|
||||
identité de sources vérifiée ; les anciennes visites sont conservées.
|
||||
La roche jaune, ses escaliers et dalles de beta.222 sont inclus.
|
||||
|
||||
Le rendu naturel reste à apprécier par le joueur : les contrôles numériques
|
||||
ne constituent pas une validation esthétique. Essais natifs Small sur deux
|
||||
graines ; Medium/Large sont assemblés et leurs profils vérifiés, sans nouvelle
|
||||
campagne d’exploration complète. Aucun essai Windows ni simulation d’éruption.
|
||||
Pas de publication du canal packwiz ni de mise à jour de l’instance Prism.
|
||||
@@ -0,0 +1,108 @@
|
||||
# MODS-257 — Mods client séparés et rayons à 20 %
|
||||
|
||||
Branche `codex/external-mods-beta257`, base `beta.256`, livraison `beta.257`.
|
||||
Minecraft 26.3 finale, Fabric Loader 0.19.5, API 0.160.5+26.3, Java 25.
|
||||
|
||||
## Livré localement
|
||||
|
||||
JEI et Sound Physics Remastered sortent du JAR Sanctuary ; Sodium était déjà
|
||||
séparé depuis beta.256. Ils restent fournis par défaut dans le pack client,
|
||||
mais chacun peut être désactivé avant le lancement. Aucun déchargement à chaud.
|
||||
Fabric API reste nécessaire au fonctionnement de Sanctuary.
|
||||
|
||||
JEI conserve le portage Sanctuary, révision `30.32.0-sanctuary.4` : ce n'est pas
|
||||
un remplacement arbitraire par un binaire upstream. Avec lui, le catalogue,
|
||||
les recettes apprises, les restrictions, les favoris et le transfert depuis
|
||||
l'inventaire étendu gardent leur pont. Sans lui, le bouton du catalogue est
|
||||
indisponible avec un texte FR/EN. La découverte, les connaissances et leur achat,
|
||||
les notifications, les règles serveur et la fabrication manuelle fonctionnent
|
||||
indépendamment. Aucun changement d'identifiant, génération ou format de sauvegarde.
|
||||
|
||||
Sound Physics officiel `1.5.1+26.3` est épinglé par version et SHA-512 dans
|
||||
`packwiz/mods/sound-physics-remastered.pw.toml`. Son écran Sanctuary n'apparaît
|
||||
que si le mod est présent. Le moteur reste désactivé sur une configuration
|
||||
neuve ; les réglages existants sont conservés. Le mixin de défaut est facultatif.
|
||||
Sodium officiel reste `0.9.2+mc26.3`, SHA-512 fixé, avec le pont de visibilité
|
||||
beta.256 pour le bloom et le PBR.
|
||||
|
||||
Les bibliothèques Java restent chez leur consommateur : MariaDB Connector/J
|
||||
avec Sanctuary, Baked Substring Index et Suffix Tree avec JEI. Ce sont des
|
||||
bibliothèques d'exécution, pas des mods de gameplay indépendants à désactiver.
|
||||
Aucun autre mod Fabric tiers n'est imbriqué dans Sanctuary.
|
||||
|
||||
Les profils et valeurs initiales des sun shafts passent à **20 %**, avec la
|
||||
qualité et les portées beta.256. Un réglage personnalisé explicitement enregistré
|
||||
reste prioritaire ; sélectionner à nouveau un profil applique 20 %.
|
||||
SSR conservé en Moyen ; aucune portée 256 n'est sélectionnée automatiquement.
|
||||
|
||||
## Distribution
|
||||
|
||||
Le pack local contient Sanctuary et JEI comme deux JAR séparés. JEI peut être
|
||||
décoché dans Prism ; le fork local non publié est un fichier override du MRpack.
|
||||
Sodium et Sound Physics ont des entrées packwiz facultatives, activées par défaut.
|
||||
Le canal publié utilisera aussi une entrée facultative `jei-sanctuary.pw.toml`,
|
||||
avec URL immuable et SHA-256 du fork. La publication doit joindre les **deux**
|
||||
JAR puis seulement avancer le canal ; `scripts/publish_pack.py` prépare ce contrat.
|
||||
|
||||
Une installation pilotée par packwiz doit mémoriser le choix dans les options
|
||||
de l'[installateur packwiz](https://packwiz.infra.link/tutorials/installing/packwiz-installer/) pour ne pas retélécharger un mod supprimé à la main. Une
|
||||
instance locale importée du MRpack permet de décocher les JAR dans Prism.
|
||||
Aucun canal public ni instance personnelle n'est mis à jour par ce ticket.
|
||||
|
||||
## Vérifications effectuées
|
||||
|
||||
- `./gradlew check build assemblePack assembleTestPack` avec
|
||||
`-PsanctuaryFocusedTests=recipes -PsanctuaryAtlasOnly=true`,
|
||||
`-PsanctuaryJeiRuntime=false -PsanctuarySoundPhysicsRuntime=false` ;
|
||||
compilation des contrôles client séparée. Le harnais serveur historique
|
||||
`unified` sans le fixture plat suppose encore un générateur remplacé dans
|
||||
le socle courant ; ces flags évitent son cast invalide, sans toucher la génération.
|
||||
- GameTests de recettes sans JEI ni Sound Physics à l'exécution.
|
||||
- Client Windows Vulkan, fenêtre, `-Xmx8G` : trois mods présents, tous absents,
|
||||
JEI seul et Sound Physics seul ; création de mondes de test neufs, recettes,
|
||||
progression, achat, autorisations et menus FR/EN.
|
||||
- Catalogue JEI et transfert réel, options Sound Physics et persistance.
|
||||
- Rayons à 20 % sur scène native, silhouettes, absence d'assombrissement parasite.
|
||||
- Archives locale/Test et préparation de publication hors ligne : versions,
|
||||
dépendances, notices, absence des trois mods dans le JAR Sanctuary.
|
||||
|
||||
Build complet et assemblages normal/Test réussis ; **8 GameTests serveur requis**
|
||||
passent sans JEI ni Sound Physics. Les contrôles client compilent avec Java 25.
|
||||
La suite Windows Vulkan utilise la RX 9070 XT, une fenêtre et `-Xmx8G` :
|
||||
|
||||
| JEI | Sound Physics | Sodium | Monde, recettes, achat, permissions et menus |
|
||||
| --- | --- | --- | --- |
|
||||
| Absent | Absent | Absent | Réussi |
|
||||
| Présent | Absent | Absent | Réussi |
|
||||
| Absent | Présent | Absent | Réussi |
|
||||
| Présent | Présent | Présent | Réussi |
|
||||
|
||||
Avec les trois mods, les contrôles ciblés valident les recettes apprises/cachées,
|
||||
l'ouverture réelle du catalogue et le paquet de transfert JEI : quatre planches
|
||||
consommées dans la sixième ligne, une planche dans chaque case de fabrication.
|
||||
Sound Physics valide défaut neuf OFF, préférence existante ON conservée,
|
||||
menus FR/EN en GUI 2/4, activation, sauvegarde/relecture et validation numérique.
|
||||
|
||||
À 1080p, Moyen à 20 % donne une hausse lumineuse p95 de **7 niveaux**, aucun pixel
|
||||
assombri et une erreur moyenne de **0,02574 niveau** par rapport aux 192 segments
|
||||
(densité doublée). Erreur p95 globale et aux silhouettes : zéro. La suite valide
|
||||
également le toit fermé, les feuilles, le déplacement/retour caméra, la portée,
|
||||
OFF/zéro/nuit, rechargement, redimensionnement et transitions météo.
|
||||
[Capture native à 20 %](../build/external257/medium20.png).
|
||||
|
||||
Les archives MRpack sont contrôlées octet par octet contre les deux JAR construits.
|
||||
Le JAR Sanctuary ne conserve que Connector/J comme dépendance imbriquée ; JEI
|
||||
conserve ses deux bibliothèques. Métadonnées de publication préparées et vérifiées
|
||||
sans envoi réseau ni avancement du canal. **4 161 fichiers** de sources, ressources,
|
||||
contrôles et construction correspondent au miroir Windows. La tâche de test
|
||||
planifiée a été supprimée après succès.
|
||||
|
||||
[Reçu, empreintes et journaux](../build/external257/validation.json).
|
||||
Pack normal : `b2ded25cdb17b56b65e6df556ed855571b75671e4dfb02baae48dfe421b76498` (SHA-256).
|
||||
Les scripts de préparation/publication sont compilés et le contrat à deux artefacts
|
||||
est vérifié hors ligne ; la publication effective reste hors de ce ticket.
|
||||
Le fixture serveur historique `unified` reste incompatible avec le socle actuel
|
||||
sans les flags de laboratoire indiqués ci-dessus ; il n'a pas été corrigé ici.
|
||||
|
||||
Les mesures de FPS beta.256 restent celles de cette livraison à 10 % ; aucune
|
||||
nouvelle mesure de gain de performances n'est promise par cette séparation.
|
||||
@@ -0,0 +1,73 @@
|
||||
# FAM-261 — Attaque et ordres sur Alt
|
||||
|
||||
Demande du 12 octobre 2026, branche `codex/familiar-alt-beta261`, Minecraft
|
||||
**26.3**, livraison **beta.261**. Le créateur précise que le maintien d’Alt
|
||||
doit ouvrir les ordres et que H doit être retiré des commandes du familier.
|
||||
|
||||
## Comportement
|
||||
|
||||
- **Alt gauche bref** : attaque rapide / suivi, avec le ciblage existant.
|
||||
- **Alt gauche maintenu** : ouvre les ordres du familier.
|
||||
- **G** : technique, avec son réglage existant.
|
||||
|
||||
L’appui bref est envoyé au relâchement. Le maintien ouvre le menu après environ
|
||||
0,4 seconde et consomme le geste : aucune attaque rapide n’est envoyée avant
|
||||
l’ouverture ou au relâchement. Un geste commencé dans un inventaire, pendant
|
||||
la mort ou sans fenêtre active est ignoré jusqu’au relâchement.
|
||||
|
||||
Une seule entrée des contrôles réunit attaque et ordres. Elle conserve la clé
|
||||
de réglage de l’attaque rapide beta.260, `sanctuary.familiar.quick_key`, avec
|
||||
Alt gauche par défaut ; une personnalisation existante de ce réglage s’applique
|
||||
aux deux gestes. L’ancien raccourci séparé des ordres n’est plus enregistré :
|
||||
son ancienne valeur H dans les options n’active aucune commande du familier.
|
||||
L’ancien marqueur F→H n’est plus utilisé. Le titre du menu et les aides ont
|
||||
leurs libellés FR/EN.
|
||||
|
||||
La correction de réapparition beta.260 est conservée. Ce changement est côté
|
||||
client ; règles serveur, œufs, progression et sauvegardes restent identiques.
|
||||
Le labo beta.259 reste fermé.
|
||||
|
||||
## Vérifications et artefacts
|
||||
|
||||
Le parcours natif réussit en **46 secondes**, sur **Vulkan / MoltenVK 1.4.2,
|
||||
Apple M1**, avec 8 Gio maximum. Il vérifie l’appui bref, le maintien sans attaque
|
||||
rapide avant l’ouverture ou au relâchement, H bref et maintenu inactifs, G
|
||||
inchangé, les deux gestes reconfigurés sur K, le blocage d’Alt tenu dans
|
||||
l’inventaire puis relâché après fermeture, les infobulles FR/EN et une véritable
|
||||
mort/réapparition suivie d’une attaque du loup.
|
||||
|
||||
Journal : `build/familiar261-client.log`, marqueur `FAMILIAR261_CLIENT_PASS`.
|
||||
Capture du menu après réapparition :
|
||||
`mods/sanctuary/build/run/clientGameTest/screenshots/0002_familiar261-orders-after-respawn.png`.
|
||||
Le scénario utilise un nouveau monde plat, graine **261**, avec serveur intégré.
|
||||
Les essais Windows et multijoueur distant restent ouverts.
|
||||
|
||||
```sh
|
||||
export JAVA_HOME=$(/usr/libexec/java_home -v 25)
|
||||
./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true \
|
||||
-PsanctuaryQuickTests=true -PsanctuaryFamiliar260ClientTests=true \
|
||||
-PsanctuaryClientGraphicsBackend=vulkan -PsanctuaryClientHeapGb=8 \
|
||||
-PsanctuaryClientNoVsync=true
|
||||
```
|
||||
|
||||
`check build assemblePack assembleTestPack` réussit en **2 min 43 s**, avec
|
||||
`-PsanctuaryFocusedTests=eggaudit,familiar,familiar260,accessories
|
||||
-PsanctuaryAtlasOnly=true` : **44 GameTests serveur requis réussis**.
|
||||
Journal : `build/familiar261-build.log`.
|
||||
|
||||
Les deux MRpacks sont exportés et vérifiés : intégrité ZIP, version beta.261,
|
||||
Minecraft 26.3, JAR embarqués identiques aux builds et classes identiques à la
|
||||
compilation. Sur les **2 520 classes** du mod normal, seule `FamiliarClient`
|
||||
change face à beta.260 ; les **88 classes** du module de labo restent identiques.
|
||||
Les aides FR/EN de la carte sont également actualisées pour Alt.
|
||||
Reçu et empreintes SHA-256 : `build/familiar261-validation.json`.
|
||||
|
||||
[Pack normal beta.261](../build/Sanctuary-beta.261.mrpack) ·
|
||||
[Pack Test beta.261](../build/Sanctuary-Test-beta.261.mrpack).
|
||||
Livraison locale ; la visite figée beta.259 reste fermée et conserve son binaire.
|
||||
|
||||
Le parcours natif de réapparition existant `Familiar260ClientChecks` est actualisé
|
||||
pour le raccourci unique : appui bref, maintien sans attaque, H inactif,
|
||||
reconfiguration des deux gestes, blocage dans l’inventaire, puis commandes et
|
||||
attaque réelle après réapparition. Son sélecteur Gradle conserve son nom
|
||||
`sanctuaryFamiliar260ClientTests`.
|
||||
@@ -0,0 +1,167 @@
|
||||
# FAM-LAB-259 — Arène des familiers
|
||||
|
||||
Demande du 12 octobre 2026, branche `codex/familiar-lab-beta259`, Minecraft
|
||||
**26.3**, version **beta.259**. Premier incrément : essayer les familiers actuels
|
||||
avant leur rework, choix confirmé par le créateur.
|
||||
|
||||
Les retours de cette séance sont traités dans [beta.260](familiar-respawn-beta260.md).
|
||||
Avec beta.260, l’attaque rapide passe sur Alt ; H maintenu conserve les ordres.
|
||||
Depuis [beta.261](familiar-alt-beta261.md), Alt bref et Alt maintenu réunissent
|
||||
attaque et ordres ; G garde la technique.
|
||||
La visite figée `review-02` garde son ancien binaire beta.259 et ne reçoit pas
|
||||
les correctifs.
|
||||
|
||||
## Carte de test
|
||||
|
||||
Le module facultatif `sanctuary-test` construit une scène neuve de 49 × 41 blocs,
|
||||
plancher Y=80, dans `build/familiars-259/<session>/server/familiars-flat-259`.
|
||||
Graine **259**, disposition **1**, monde plat de développement. La scène est
|
||||
indépendante du générateur Sanctuary ; aucun ancien chunk n'est remplacé.
|
||||
Le constructeur exige le dossier dédié, le générateur plat et une option JVM
|
||||
explicite. Une préparation incomplète est refusée et conservée.
|
||||
|
||||
- **Cinq coffres**, un par rareté : les **88 espèces** du catalogue de familiers,
|
||||
dragon, Wither, Warden et creeper compris. Les œufs natifs sont réapprovisionnés
|
||||
chaque seconde dans leurs emplacements vides. Prendre un œuf puis le placer
|
||||
dans la case **Familier** de l'inventaire. Nom, personnalité, taille, techniques,
|
||||
santé et comportement utilisent les règles actuelles ; pas de normalisation
|
||||
des individus ni de nouvelle forme d'œuf.
|
||||
- **À gauche : punching-ball zombie**, sans IA ni déplacement, ancré en
|
||||
`(-12,81,4)`. Il reçoit les dégâts natifs avec armure naturelle, immunité
|
||||
temporaire entre coups et animation de blessure. Sa vie est restaurée à
|
||||
chaque tick, avant la mort si le coup est létal. Le même zombie survit.
|
||||
Le tableau affiche coups acceptés, derniers PV perdus, total et attaquant.
|
||||
Les valeurs sont des dégâts après réduction, pas un DPS ; un coup dépassant
|
||||
la réserve de 1 024 PV ne mesure que les PV effectivement retirés.
|
||||
- **À droite : bouton « 1 hostile aléatoire »**. Chaque pression ajoute un
|
||||
adversaire avec IA native et cible le joueur. Deux apparitions consécutives
|
||||
ne sélectionnent pas la même espèce. Il est possible de former un groupe,
|
||||
jusqu'à **128 hostiles actifs**, avec refus si le point d'apparition est occupé.
|
||||
La liste contient 23 types adaptés à une arène terrestre, hors boss et
|
||||
créatures exigeant eau ou structures particulières.
|
||||
- **Bouton de nettoyage** : retire les hostiles de l'arène, leurs descendants
|
||||
(petits slimes, vex invoqués) et les projectiles locaux. Le familier et la
|
||||
cible sont conservés. **Bouton de remise à zéro** : efface seulement le compteur.
|
||||
|
||||
Les 23 hostiles : zombie, squelette, husk, stray, bogged, parched, araignée,
|
||||
araignée venimeuse, creeper, pillager, vindicator, sorcière, poisson d'argent,
|
||||
endermite, slime, cube de magma, breeze, blaze, wither squelette, piglin brute,
|
||||
zoglin, ravageur et evoker. Les attaques et déplacements restent natifs ;
|
||||
les squelettes/pillagers ont leurs armes et les morts-vivants sont protégés
|
||||
du soleil. Une couverture et des parois vitrées délimitent le terrain.
|
||||
|
||||
La difficulté est **Normale**, le personnage est en **Survie**, avec les blocs de la carte protégés, avec capacités
|
||||
de vie, faim et inventaire complètes, accès aux techniques, épée et armure en
|
||||
fer, nourriture et étiquettes. Ces facilités concernent seulement le personnage
|
||||
du laboratoire. Les coups des hostiles blessent réellement le joueur et le
|
||||
familier ; un K.-O. et les délais de récupération restent ceux du jeu actuel.
|
||||
Inventaire conservé à la mort, apparitions naturelles désactivées, terrain
|
||||
protégé des monstres, midi et ciel clair. Les ennemis de test sont exclus des
|
||||
sources de maîtrise des familiers. Les affichages ont leurs libellés FR/EN.
|
||||
|
||||
| Action | Commande ou geste |
|
||||
| --- | --- |
|
||||
| Désigner une cible | H bref en visant l'ennemi |
|
||||
| Ordres | H maintenu |
|
||||
| Technique | G |
|
||||
| Accueil et soins du joueur | `/familiers retour` |
|
||||
| Se placer devant le punching-ball | `/familiers cible` |
|
||||
| Ajouter un hostile | bouton ou `/familiers hostile` |
|
||||
| Nettoyer | bouton ou `/familiers nettoyer` |
|
||||
| Remettre le compteur à zéro | bouton ou `/familiers reset` |
|
||||
|
||||
`/familiars` est un alias. H/G sont les touches par défaut, configurables.
|
||||
Le rappel, le changement d'individu et les délais en combat restent contrôlés
|
||||
par le serveur ; attendre la fin du combat pour changer de familier.
|
||||
|
||||
## Lancement et reprise
|
||||
|
||||
```sh
|
||||
export JAVA_HOME=$(/usr/libexec/java_home -v 25)
|
||||
./gradlew :sanctuary-test:exportDuoLaunch
|
||||
python3 scripts/familiar_lab.py start --run review-03
|
||||
```
|
||||
|
||||
Le nom doit être neuf. Le client de développement est explicitement **Vulkan**,
|
||||
en français, avec 8 Gio de mémoire maximum et shaders Sanctuary désactivés pour
|
||||
cette inspection. Le serveur écoute seulement `127.0.0.1`, sur un port libre.
|
||||
Le formulaire de personnage de cette visite est rempli automatiquement avec
|
||||
une identité de laboratoire. Les fichiers de lancement sont figés pour éviter
|
||||
qu'un prochain build ne change une visite en cours.
|
||||
|
||||
```sh
|
||||
python3 scripts/familiar_lab.py stop --run review-02
|
||||
python3 scripts/familiar_lab.py server --run review-02
|
||||
python3 scripts/familiar_lab.py client --run review-02
|
||||
```
|
||||
|
||||
La réouverture conserve la carte et ses coffres ; les ennemis sont retirés et
|
||||
la cible/le compteur sont recréés. Chaque session possède ses journaux, PID
|
||||
et un manifeste. Aucun monde, JAR ou fichier de session n'est versionné.
|
||||
Il n'y a pas de publication de canal ni d'installation dans Prism.
|
||||
|
||||
## Suite demandée, non implémentée ici
|
||||
|
||||
- Arrivée au stade bébé pour les espèces concernées, croissance puis évolution.
|
||||
- Espèces spéciales qui arrivent directement sans stade bébé.
|
||||
- Creeper qui court vers l'adversaire et déclenche une petite explosion.
|
||||
|
||||
Les critères de croissance, les formes, les seuils, les exceptions et les coûts
|
||||
restent à décider après les essais. Le creeper conserve ses techniques actuelles.
|
||||
Cette carte ne change aucun format de sauvegarde, aucune identité `sanctuary:*`
|
||||
ni aucun comportement de familier du pack normal.
|
||||
|
||||
## Vérifications
|
||||
|
||||
`check build assemblePack assembleTestPack` réussit en **4 min 11 s**, avec
|
||||
`-PsanctuaryFocusedTests=eggaudit -PsanctuaryAtlasOnly=true` : **15 GameTests
|
||||
requis réussis**, dont les contrôles des 88 espèces. Aucun test graphique
|
||||
OpenGL n'a été lancé. Journal : `build/familiar259-build-delivery.log`.
|
||||
|
||||
Le contrôle natif dans `checks-05` réussit : 88 œufs uniques, quatre coups dont
|
||||
deux mortels (2 000 PV et `Float.MAX_VALUE`), même cible vivante, retour à son
|
||||
ancrage après déplacement forcé, 60 apparitions aléatoires sans doublon
|
||||
consécutif, IA et ciblage (y compris les mémoires Brain), boutons via le vrai
|
||||
callback d'interaction, nettoyage qui conserve une vache témoin et la cible,
|
||||
attaque réelle d'un loup attribuée au familier. Les entités invoquées sont
|
||||
exclues de la maîtrise. Journal :
|
||||
`build/familiars-259/checks-05/server.log`, marqueur
|
||||
`FAMILIARS259_CHECKS_PASS`.
|
||||
|
||||
La passe élargie `eggaudit,familiar` donne **32/33 tests réussis**. Le test
|
||||
historique `Familiar020GameTests.eggSizeSurvivesStorageAndChangesOfOwner`
|
||||
échoue au transfert vers un autre propriétaire : le familier attendu est null.
|
||||
Ce scénario et les classes de jeu du pack normal sont inchangés ; l'échec
|
||||
n'est ni corrigé ni désactivé dans les sources. Journal :
|
||||
`build/familiar259-build-final.log`. La première invocation avec le profil
|
||||
de monde par défaut échouait avant les tests sur un cast du générateur ; le
|
||||
profil AtlasOnly utilisé par les livraisons récentes permet leur exécution.
|
||||
|
||||
Les noms de session invalides et la préparation sur un dossier existant sont
|
||||
refusés. Le script Python compile. Les deux MRpacks ont été exportés avec
|
||||
packwiz et vérifiés : intégrité ZIP, version, JAR embarqués strictement
|
||||
identiques aux builds, 2 520 classes du mod normal et 88 du module Test.
|
||||
Toutes les classes du mod normal sont identiques à beta.258 ; seuls les
|
||||
libellés de laboratoire et la version changent dans ce JAR.
|
||||
Reçu et empreintes : `build/familiar259-validation.json`.
|
||||
|
||||
La visite **`review-02`**, fermée à la demande du créateur après les essais,
|
||||
a utilisé le même code que la livraison : client
|
||||
Vulkan/MoltenVK 1.4.2 sur Apple M1, 8 Gio maximum, connexion de KokaLab et
|
||||
arrivée enregistrées côté serveur. Journaux dans
|
||||
`build/familiars-259/review-02/`. Ce lancement ne constitue pas une inspection
|
||||
visuelle exhaustive des 88 familiers, ni un essai Windows ou multijoueur.
|
||||
|
||||
Artefacts locaux : [pack normal](../build/Sanctuary-beta.259.mrpack) et
|
||||
[pack Test](../build/Sanctuary-Test-beta.259.mrpack). Aucun tag ni canal public
|
||||
n'est avancé ; aucune instance Prism ou sauvegarde personnelle n'est touchée.
|
||||
|
||||
Contrôle natif reproductible, dans une autre session neuve :
|
||||
|
||||
```sh
|
||||
python3 scripts/familiar_lab.py check --run checks-06
|
||||
```
|
||||
|
||||
Le contrôle exige le marqueur `FAMILIARS259_CHECKS_PASS` et arrête son serveur
|
||||
de test après vérification des coffres, coups mortels, ancrage, boutons,
|
||||
hostiles variés, nettoyage et attaque native d'un loup familier.
|
||||
@@ -0,0 +1,107 @@
|
||||
# FAM-260 — Familiers après réapparition
|
||||
|
||||
Retours du 12 octobre 2026 sur l’arène beta.259, branche
|
||||
`codex/familiar-respawn-beta260`, Minecraft **26.3**, livraison **beta.260**.
|
||||
Le créateur demande de fermer le labo et de corriger les problèmes observés.
|
||||
|
||||
La disposition clavier de cette livraison est remplacée par
|
||||
[beta.261](familiar-alt-beta261.md) : Alt bref attaque, Alt maintenu ouvre les
|
||||
ordres, G garde la technique.
|
||||
|
||||
## Résultat attendu et correction
|
||||
|
||||
Après la mort, les ordres et l’attaque doivent fonctionner dès que le joueur
|
||||
réapparaît, avec son œuf conservé par keep inventory ou récupéré dans sa tombe.
|
||||
|
||||
Minecraft remplace l’objet `ServerPlayer`, conserve son ID d’entité et remet
|
||||
son compteur de ticks à zéro. L’égalité native des entités utilise cet ID :
|
||||
le cache des ordres retrouvait ainsi l’état de l’ancienne vie, dont les
|
||||
compteurs anti-spam dépassaient ceux du nouveau joueur. Les demandes restaient
|
||||
refusées jusqu’au rattrapage de l’ancien compteur. Une revendication d’individu
|
||||
pouvait également rester attachée à l’ancienne vie si aucun tick du joueur mort
|
||||
n’avait précédé la réapparition.
|
||||
|
||||
Le callback de réapparition annule les anciennes actions, termine l’éventuel
|
||||
duel, libère la revendication et retire l’ancien état d’ordres. Le visuel du
|
||||
familier est retiré puis recréé pour le nouveau joueur ; le service vérifie
|
||||
également l’identité de l’objet propriétaire avant de réutiliser un visuel.
|
||||
Les identifiants, composants de l’œuf, registre des individus et formats de
|
||||
sauvegarde restent identiques. La vie perdue, le K.-O., le rappel, les recharges
|
||||
et le verrou de combat restent conservés ; mourir ne soigne pas le familier.
|
||||
|
||||
**Alt gauche** déclenche l’attaque rapide, avec le comportement existant
|
||||
attaque/suivi selon la cible visée. **H maintenu** conserve les ordres et
|
||||
**G** conserve la technique. Un appui bref sur H ne donne plus l’attaque rapide.
|
||||
L’attaque et les ordres disposent de réglages distincts ; les personnalisations
|
||||
de la touche des ordres sont conservées. Les libellés et l’aide sont en FR/EN.
|
||||
|
||||
Dans l’inventaire, le texte « Familier — placer un œuf d’apparition » est retiré
|
||||
de l’infobulle d’un œuf déjà équipé. L’emplacement vide conserve son aide.
|
||||
La croissance, les évolutions et le nouveau creeper restent la suite du rework.
|
||||
|
||||
## Vérifications
|
||||
|
||||
Les quatre nouveaux scénarios serveur utilisent une mort native et les vrais
|
||||
callbacks de réapparition, avec le même ID d’entité et un compteur remis à zéro :
|
||||
œuf conservé après une longue vie, extraction de l’œuf dans la tombe, libération
|
||||
de la revendication sans autoriser deux copies simultanées, conservation du
|
||||
K.-O. et du rappel. Avant correction, trois scénarios échouaient ; après
|
||||
correction les quatre réussissent, avec le contrôle de démarrage Fabric.
|
||||
Journaux : `build/familiar260-reproduction.log` et
|
||||
`build/familiar260-regression.log` (**5 tests requis réussis**).
|
||||
|
||||
Le test historique de taille/transfert beta.020 donnait au deuxième joueur une
|
||||
copie de l’œuf toujours équipé par le premier. Sa préparation effectue maintenant
|
||||
un transfert réel : retrait chez le premier, libération puis équipement chez le
|
||||
second. Le refus des copies concurrentes est vérifié séparément par le nouveau
|
||||
scénario ; aucune protection des individus n’est retirée.
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack
|
||||
-PsanctuaryFocusedTests=eggaudit,familiar,familiar260,accessories
|
||||
-PsanctuaryAtlasOnly=true` réussit en **2 min 50 s**, avec **44 GameTests requis
|
||||
réussis**, dont le transfert historique corrigé. Journal :
|
||||
`build/familiar260-build.log`.
|
||||
|
||||
Le parcours client réussit en **41 s** sur **Vulkan / MoltenVK 1.4.2, Apple M1**,
|
||||
avec 8 Gio maximum. Il vérifie Alt natif, maintien H, G inchangé, Alt ignoré dans
|
||||
l’inventaire, reconfiguration vers K, absence du texte redondant dans les vraies
|
||||
infobulles FR/EN, puis mort native et bouton Réapparaître. Le joueur revient
|
||||
avec le même ID d’entité, un nouvel objet joueur et le même individu ; les ordres
|
||||
fonctionnent et le loup inflige réellement des dégâts au zombie. Journal :
|
||||
`build/familiar260-client.log`, marqueur `FAMILIAR260_CLIENT_PASS`.
|
||||
|
||||
Reproduction du parcours, dans un nouveau monde plat graine **260** :
|
||||
|
||||
```sh
|
||||
export JAVA_HOME=$(/usr/libexec/java_home -v 25)
|
||||
./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true \
|
||||
-PsanctuaryQuickTests=true -PsanctuaryFamiliar260ClientTests=true \
|
||||
-PsanctuaryClientGraphicsBackend=vulkan -PsanctuaryClientHeapGb=8 \
|
||||
-PsanctuaryClientNoVsync=true
|
||||
```
|
||||
|
||||
Captures de l’inventaire FR/EN et des ordres après réapparition dans
|
||||
`mods/sanctuary/build/run/clientGameTest/screenshots/000*_familiar260-*.png`.
|
||||
Le contrôle des infobulles utilise leur méthode native avec le slot équipé
|
||||
survolé ; les captures d’inventaire n’affichent pas cette infobulle. Cette passe
|
||||
couvre macOS Vulkan avec serveur intégré ; Windows et multijoueur distant
|
||||
restent à vérifier.
|
||||
|
||||
Les MRpacks normal et Test sont exportés et vérifiés : intégrité ZIP, version
|
||||
beta.260, Minecraft 26.3, JAR embarqués identiques aux builds, classes embarquées
|
||||
identiques aux sorties de compilation. Parmi les **2 520 classes** normales,
|
||||
seules les quatre classes du correctif changent face à beta.259 ; les **88
|
||||
classes** du module de laboratoire restent identiques. Reçu et SHA-256 :
|
||||
`build/familiar260-validation.json`.
|
||||
|
||||
[Pack normal beta.260](../build/Sanctuary-beta.260.mrpack) ·
|
||||
[Pack Test beta.260](../build/Sanctuary-Test-beta.260.mrpack).
|
||||
|
||||
## Séance et distribution
|
||||
|
||||
La visite beta.259 `review-02` est fermée, ses fichiers de développement sont
|
||||
conservés. Le carnet de séance et les transcriptions sont dans
|
||||
`/Users/koka/Documents/sanctuary/retours-sessions/2026-10-12_02-45_familiers-beta259/`.
|
||||
Les corrections sont livrées localement ; aucune publication de canal ni
|
||||
installation Prism n’est demandée. Les binaires figés de la visite beta.259
|
||||
ne sont pas remplacés.
|
||||
@@ -0,0 +1,105 @@
|
||||
# WHALE-01 — baleine fantôme volante
|
||||
|
||||
Branche `codex/flying-ghost-whale`, préparation locale **beta.290** le
|
||||
26 octobre 2026. Demande : import direct de la baleine de Sanctuary 26.2,
|
||||
avec son IA et son œuf, deux baleines présentes au maximum sur le serveur.
|
||||
|
||||
## Import
|
||||
|
||||
Sources historiques : `26.2/itsalive`, commit
|
||||
`94644a28f05b8010f06ec1181fe6c74a50ad80d6`. Le modèle, ses animations,
|
||||
la texture nuageuse 512 × 256, les particules et les sons Minecraft sont
|
||||
repris. Les API Fabric/Minecraft sont adaptées à **Minecraft 26.3**, sans
|
||||
nouvelle dépendance. La texture de la baleine est copiée octet pour octet.
|
||||
|
||||
- `sanctuary:flying_whale` : baleine géante, paisible, volante, intangible,
|
||||
invulnérable, sans butin. Dimensions historiques 36 × 11, rendu ×2,7.
|
||||
- IA conservée : compagnon vivant non spectateur le plus proche à 520 blocs,
|
||||
cibles successives entre 68 et 140 blocs du joueur, altitude libre, virages
|
||||
progressifs, souffle et lente errance sans joueur.
|
||||
- Spawner historique : contrôle toutes les 400 ticks, une apparition réussie
|
||||
par tiers de journée (8 000 ticks), dans l’Overworld à 92–138 blocs d’un
|
||||
joueur. Il attend si le chunk candidat n’est pas déjà chargé. Aucun chunk
|
||||
n’est généré ou forcé par le spawner. Le calendrier appartient au serveur
|
||||
courant et repart au démarrage, comme le calendrier historique.
|
||||
- Dissipation au plus tard après 14 400 ticks (12 minutes à 20 TPS), possible
|
||||
dès 12 000 ticks après plus de 900 ticks sans joueur proche. Seules les
|
||||
baleines nommées sont sauvegardées, comme en 26.2 ; elles restent soumises
|
||||
à cette durée de vie après chargement.
|
||||
|
||||
Le quota historique de deux baleines chargées est partagé entre **toutes les
|
||||
dimensions du serveur**, et étendu aux œufs, invocations, distributeurs et
|
||||
rechargements. Une troisième entité chargée est retirée. L’utilisation
|
||||
manuelle d’un œuf est refusée avant consommation si les deux places sont
|
||||
prises, avec un message FR/EN. Retirer une baleine libère immédiatement sa
|
||||
place. Les baleines nommées dans des chunks déchargés ne réservent pas de
|
||||
place ; elles repassent par le quota au rechargement.
|
||||
|
||||
## Œuf Minecraft personnalisé
|
||||
|
||||
`sanctuary:flying_whale_spawn_egg` figure dans l’onglet Œufs d’apparition.
|
||||
Son icône est dérivée directement de **`assets/minecraft/textures/item/egg.png`
|
||||
de Minecraft 26.3**, sans reprendre le dessin historique de l’œuf.
|
||||
`scripts/generate_whale_egg.py` recolore les pixels en bleu nuage pâle avec
|
||||
huit pixels lavande. Dimensions 16 × 16, les 90 pixels de coquille,
|
||||
transparence, contour asymétrique et emplacements des ombres restent natifs.
|
||||
Le script refuse une version ou une empreinte source différente et propose
|
||||
`--check` pour comparer les pixels livrés sans réécriture.
|
||||
|
||||
```sh
|
||||
python3.14 scripts/generate_whale_egg.py --check /chemin/minecraft-client.jar
|
||||
/give @s sanctuary:flying_whale_spawn_egg
|
||||
/summon sanctuary:flying_whale ~ ~10 ~
|
||||
```
|
||||
|
||||
Libellés de l’entité, de l’œuf et du refus de quota en FR/EN. Aucun familier
|
||||
miniature, capture de baleine ou conversion d’ID 26.2 n’est ajouté. Pas de
|
||||
changement de générateur, de sauvegarde existante ou de publication distante.
|
||||
|
||||
## Vérification
|
||||
|
||||
- `./gradlew check build assemblePack
|
||||
-PsanctuaryFocusedTests=whale290,recipes,progression
|
||||
-PsanctuaryAtlasOnly=true` : **réussi en 3 min 34 s**, avec **19 tests
|
||||
serveur requis réussis**, tous les contrôles purs de `check`, le JAR
|
||||
`sanctuary-beta.290.jar` et les profils packwiz client/serveur assemblés.
|
||||
Ce périmètre serveur cible la baleine, les recettes et la progression ;
|
||||
il ne rejoue pas les suites de génération historiques.
|
||||
- Archive JAR relue : version beta.290, classes et deux textures présentes,
|
||||
un seul JEI embarqué, aucune classe de test ; même JAR unique dans chacun
|
||||
des deux profils packwiz. Reçu SHA-256 sous `build/whale290/artifacts.json`.
|
||||
- Suite native ciblée `:sanctuary:runGameTest
|
||||
-PsanctuaryFocusedTests=whale290 -PsanctuaryAtlasOnly=true` : **7 tests
|
||||
requis réussis**, dont les six scénarios baleine et le contrôle
|
||||
d’infrastructure. Usage réel de l’œuf en survie, non-consommation à quota
|
||||
plein, quota Overworld/Nether, refus de la troisième invocation, libération
|
||||
d’une place, apparition naturelle à rayon/altitude historiques, déplacement
|
||||
natif, dissipation, collision sans modification du terrain et sauvegarde
|
||||
nommée vérifiés. Les tests attendent que les chunks de développement soient
|
||||
effectivement chargés avant de vérifier leur population.
|
||||
- Parcours graphique **Vulkan / MoltenVK 1.4.2 / Apple M1**, avec
|
||||
**Sodium 0.9.2+mc26.3**, réussi en **49 s** : deux baleines géantes
|
||||
translucides, nageoires animées, texture historique, véritable déplacement
|
||||
autour du joueur, œuf en main et hotbar, libellés FR/EN. Les captures
|
||||
`0000_whale290-native-egg-and-two-whales.png` et
|
||||
`0001_whale290-ghosts.png` sont inspectées visuellement.
|
||||
- `generate_whale_egg.py --check` : pixels livrés identiques au résultat
|
||||
déterministe, 90 pixels opaques et masque alpha strictement natif.
|
||||
PNG de la baleine identique octet pour octet à la référence 26.2 ;
|
||||
JSON des libellés FR/EN et modèles d’objet valides.
|
||||
|
||||
Commande du parcours graphique :
|
||||
|
||||
```sh
|
||||
./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true \
|
||||
-PsanctuaryWhale290ClientTests=true -PsanctuarySodiumClientTests=true \
|
||||
-PsanctuaryFocusedTests=whale290 -PsanctuaryQuickTests=true \
|
||||
-PsanctuaryClientGraphicsBackend=vulkan -PsanctuaryClientHeapGb=8 \
|
||||
-PsanctuaryClientNoVsync=true
|
||||
```
|
||||
|
||||
Journaux et captures ignorés sous `build/whale290/`. Validation en monde
|
||||
plat de développement neuf, graine `290` pour le client ; aucun monde
|
||||
personnel ni serveur Beta n’est ouvert ou modifié. Le calendrier complet
|
||||
sur une journée réelle et un parcours multijoueur distant ne sont pas
|
||||
revendiqués ; les trois fenêtres sont exercées par les tests de calendrier.
|
||||
@@ -0,0 +1,95 @@
|
||||
# APT-238 — Forgerie
|
||||
|
||||
Branche `codex/forgerie-beta238`, base beta.237 (`5dee981`).
|
||||
|
||||
## Contrat avant implémentation
|
||||
|
||||
Une aptitude Forgerie est ajoutée dans Arts et métiers de Progression, avec
|
||||
l'icône `aptitudes_forgerie.png` fournie. Comme Enchantement et Alchimie,
|
||||
elle coûte quatre niveaux, est achetée une seule fois et reste acquise
|
||||
sans interrupteur. Elle débloque l'usage personnel de toutes les variantes
|
||||
d'enclume et de la table de forge. Avant l'achat, les menus natifs de ces
|
||||
postes sont refusés côté serveur, y compris les postes fonctionnels portés
|
||||
sur la tête. Les réparations, noms, améliorations et ornements natifs restent
|
||||
fonctionnels après achat. Équipements déjà obtenus et recettes conservés.
|
||||
|
||||
La meule, les fours et les autres postes restent sous leurs règles actuelles.
|
||||
Les deux aides World Map / Mob Names restent les seuls choix désactivables.
|
||||
Les interfaces ajoutées sont traduites en français et en anglais.
|
||||
|
||||
## Persistance et compatibilité
|
||||
|
||||
L'attachement booléen additif `sanctuary:smithing_learned` conserve l'achat.
|
||||
Absent : false. Copie à la mort et conservation au New Game+. Aucun schéma,
|
||||
aucune preuve ni aucun attachement existant n'est réécrit. Les personnages
|
||||
existants avec progression doivent aussi acquérir Forgerie. Les joueurs
|
||||
hors progression Sanctuary gardent l'accès vanilla. Aucun monde personnel,
|
||||
aucune génération ni aucun terrain n'est modifié.
|
||||
|
||||
La capacité `sanctuary:smithing_v1` et l'état `sanctuary:smithing_state_v1`
|
||||
transmettent l'achat sans modifier
|
||||
les paquets v1 existants. Le serveur exige un client compatible et contrôle
|
||||
la session, le joueur, la révision et les niveaux avant l'achat. Un retour
|
||||
à une version ancienne peut perdre cet attachement inconnu à la sauvegarde ;
|
||||
conserver une sauvegarde avant ce retour.
|
||||
|
||||
## Vérifications et livraison
|
||||
|
||||
```sh
|
||||
./gradlew check build assemblePack \
|
||||
-PsanctuaryFocusedTests=forgerie238,aptitudes236,headblocks \
|
||||
-PsanctuaryAtlasOnly=true
|
||||
./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true \
|
||||
-PsanctuaryAptitudes236ClientTests=true -PsanctuaryClientGraphicsBackend=vulkan
|
||||
```
|
||||
|
||||
`check build assemblePack` réussi en **2 min 44 s**, **21 GameTests requis**
|
||||
réussis : cinq nouveaux scénarios Forgerie, six scénarios d'aptitudes et dix
|
||||
scénarios de postes portés. Contrôles purs du dépôt réussis. Le banc Atlas
|
||||
évite le chemin de génération par défaut déjà documenté en beta.232.
|
||||
Log `build/forgerie238-check-build-pack.log`.
|
||||
|
||||
- Achat refusé avec trois niveaux ou une révision périmée ; quatre niveaux
|
||||
dépensés une seule fois. Autres achats et preuves inchangés. Requête de
|
||||
désactivation refusée ; conservation native NBT, à la mort et au New Game+.
|
||||
- Trois variantes d'enclume refusées avant achat puis ouvertes après achat.
|
||||
**Réparation et renommage réels d'une épée diamant** sur chacune ; XP et
|
||||
diamant consommés selon le coût natif du menu.
|
||||
- Table de forge refusée avant achat puis ouverte : **épée netherite et
|
||||
plastron diamant avec ornement Sentry réellement produits**, entrées
|
||||
consommées une fois, coût d'XP natif conservé et accès aux visites suivantes.
|
||||
- Menus construits en dehors de l'ouverture normale : validité et prise de
|
||||
résultat refusées avant acquisition, sans dépense ni perte d'entrées.
|
||||
Joueurs sans progression Sanctuary autorisés comme en vanilla.
|
||||
- Enclumes et table de forge sur la tête : contrôle de l'achat du visiteur,
|
||||
indépendamment du porteur. La fixture générale des postes natifs possède
|
||||
explicitement les trois aptitudes des Arts avant de tester leurs menus.
|
||||
|
||||
Sources et bytecode du **Minecraft 26.3 local** vérifiés pour les méthodes
|
||||
héritées de `ItemCombinerMenu`, l'override de prise d'`AnvilMenu` et les recettes
|
||||
natives de forge. Aucun changement de recette ni de dépendance externe.
|
||||
|
||||
Parcours graphique en **34 s**, Vulkan / MoltenVK 1.4.2 sur Apple M1,
|
||||
FR/EN GUI 2/3/4. La suite d'aptitudes existante contrôle désormais treize
|
||||
aptitudes, dont onze achats permanents. Trois Arts achetés depuis les boutons
|
||||
natifs : douze niveaux au total, Forgerie synchronisée depuis le serveur et
|
||||
présentée comme acquise sans interrupteur. Deux seules aides désactivables,
|
||||
XP et progression conservées lors de douze paires de changement, disposition
|
||||
Pause intégrée, défilement et retour Terminé conservés. Log
|
||||
`build/forgerie238-client-vulkan.log`, marqueur `FORGERIE238_PASS`.
|
||||
Vingt-quatre captures dans `build/forgerie238-screenshots/` ; Arts FR GUI 3
|
||||
et EN GUI 4 inspectés, texte et icône contenus dans le cadre.
|
||||
|
||||
Versions du mod, du pack et du manifeste alignées sur **beta.238**.
|
||||
[MRpack local](../build/Sanctuary-beta.238.mrpack) vérifié : 12802487 octets,
|
||||
intégrité ZIP, Minecraft 26.3 / Fabric Loader 0.19.5, un seul JAR Sanctuary
|
||||
identique au build final, sans classe de test, monde ou module de laboratoire.
|
||||
Les trois icônes fournies des Arts sont identiques octet pour octet aux
|
||||
originaux dans le JAR. Reçu `build/forgerie238-artifact.json`.
|
||||
|
||||
- SHA-256 JAR : `e29ea6f7f56c57290d0307076f641f2e714ec72a80be858a5fd9c5f08e27eb8e`.
|
||||
- SHA-256 MRpack : `2fbd605acf555dd8b192c0c0ad7171414a13f5820e5d440ba54debcd4cb897a7`.
|
||||
|
||||
Tests dans des mondes de développement neufs. Pas de validation Windows ni
|
||||
multijoueur distant. Les sauvegardes et installations personnelles restent
|
||||
intactes ; aucune publication ni avancée du canal packwiz.
|
||||
@@ -0,0 +1,53 @@
|
||||
# Les quatre îles dans Sanctuary normal
|
||||
|
||||
## Validation du 5 octobre 2026
|
||||
|
||||
Le joueur valide le rendu beta.224 et demande que les quatre îles soient
|
||||
disponibles dans Sanctuary de base, sans Sanctuary Test.
|
||||
Branche de vérification : `codex/four-islands-base224`, base `4554ea1`.
|
||||
|
||||
L’audit confirme que cette intégration est déjà effective dans le mod et le
|
||||
MRpack normal beta.224. Aucun transfert supplémentaire de code n’est nécessaire.
|
||||
Cette livraison documentaire ne change ni les binaires ni leur version.
|
||||
|
||||
| Ancre | Expansion validée | Contenu principal |
|
||||
| --- | --- | --- |
|
||||
| Nord | Glaciale | Taïgas géantes, glace, améthyste, igloos et manoir |
|
||||
| Sud | Aride | Canyons colorés, forêts, sentiers et pyramide piégée |
|
||||
| Ouest | Océanique | Océan, monument, épaves et berges en roche jaune |
|
||||
| Est | Volcanique | Volcan actif, jungles, bambou et temple de jungle |
|
||||
|
||||
Créer un **nouveau monde Sanctuary**, avec le choix Petit/Moyen/Grand.
|
||||
Les expansions de 1024 blocs sont débloquées par leurs ancres cardinales
|
||||
et leurs demandes de matériaux ; elles ne sont pas toutes prégénérées au départ.
|
||||
Les anciens mondes conservent leur génération enregistrée.
|
||||
|
||||
## Contrôle de l’intégration
|
||||
|
||||
- Le preset public `sanctuary:sanctuary` utilise `island224_medium`. Le sélecteur
|
||||
du mod normal propose également les profils Small et Large de cette génération.
|
||||
- `SanctuaryMod` enregistre directement les générateurs, l’adaptateur d’expansion
|
||||
et les interactions des ancres. Aucun de ces chemins ne dépend de l’activation
|
||||
de `QuickTestMod`. Les anciens noms Java et identifiants `sanctuary_test:*`
|
||||
sont conservés pour la compatibilité ; ils ne constituent pas une dépendance
|
||||
au module optionnel.
|
||||
- Vérification du MRpack normal : générateurs, structures et biomes des quatre
|
||||
directions présents pour les trois tailles ; un seul JAR Sanctuary, aucune
|
||||
dépendance au module `sanctuary_test`, aucun monde ni JAR Sanctuary Test inclus.
|
||||
- La création conserve les types vanilla et une seule entrée publique Sanctuary.
|
||||
- Le build complet et les sept GameTests beta.224 ont déjà réussi, dont le
|
||||
chargement des profils sans le module de labo. Ils ne sont pas relancés pour
|
||||
cette modification documentaire. Les essais natifs des différentes îles sont
|
||||
décrits dans leurs tickets ; cet audit ne revendique pas une nouvelle partie
|
||||
complète avec les quatre îles simultanément.
|
||||
|
||||
Reçu local : `build/four-islands-base224-receipt.json`.
|
||||
Artefact standard : `build/Sanctuary-beta.224.mrpack`, copie identique dans
|
||||
`~/Downloads/Sanctuary-beta.224.mrpack`, SHA-256 :
|
||||
|
||||
```text
|
||||
01aed4e6a0d9e2965ed8201372eef3aaecab3b0c6dce3fb84586895ed9076885
|
||||
```
|
||||
|
||||
Cette validation ne migre aucun monde et ne modifie pas le canal packwiz ou
|
||||
l’installation Prism personnelle.
|
||||
@@ -0,0 +1,99 @@
|
||||
# Happy creepers — réintégration
|
||||
|
||||
Branche `codex/happy-creepers`, worktree isolé du chantier baleines.
|
||||
Version locale préparée : **beta.291**, sur le socle beta.289.
|
||||
|
||||
Cette fiche conserve le reçu de la branche dédiée. Son commit `0ffd371a` est
|
||||
repris dans la [livraison intégrée beta.293](release-beta293.md), avec les
|
||||
baleines, le logo packwiz et les quatre mods facultatifs. Consulter ce reçu
|
||||
pour l'état de publication et les vérifications de la combinaison finale.
|
||||
|
||||
## Contrat
|
||||
|
||||
Le happy creeper est un état du creeper Minecraft existant. **Maj + clic droit
|
||||
avec une fleur** équipe son unique emplacement cosmétique de tête ; **Maj +
|
||||
clic droit à main vide** rend cette même fleur. Le geste, les contrôles de
|
||||
distance/visibilité, la consommation en survie et la conservation des composants
|
||||
de l'objet sont ceux du système de chapeaux existant. Un emplacement occupé
|
||||
doit être vidé avant d'équiper une autre fleur.
|
||||
|
||||
Toute fleur du tag Minecraft `minecraft:flowers` rend le creeper heureux :
|
||||
visage souriant historique, fleur exacte visible sur la tête animée, aucun
|
||||
ciblage hostile ni explosion. L'équipement annule immédiatement une mèche
|
||||
déjà amorcée, y compris au briquet ; retirer la fleur ne reprend pas cette
|
||||
ancienne mèche. Tant que la fleur est portée, briquet et boule de feu ne
|
||||
l'allument pas et ne sont pas consommés ou usés. Le creeper continue d'utiliser
|
||||
ses déplacements natifs et peut toujours subir des dégâts.
|
||||
|
||||
Retirer la fleur ou la remplacer par un objet sans rapport rétablit le visage,
|
||||
le ciblage et l'explosion ordinaires. Un pot de fleurs, des feuilles ou des
|
||||
graines ne déclenchent pas cet état. La charge électrique est indépendante :
|
||||
un creeper chargé peut être heureux, et la foudre peut charger un happy
|
||||
creeper. Retirer sa fleur conserve sa charge.
|
||||
|
||||
## Sauvegarde et périmètre
|
||||
|
||||
L'état heureux se déduit uniquement de l'objet dans `sanctuary:mob_head`, dont
|
||||
le schéma 1 est réutilisé sans modification. Cette pile est déjà sauvegardée
|
||||
et synchronisée par les chapeaux de mobs. Aucun second drapeau, nouvelle
|
||||
entité, changement de format, migration de monde ou tirage de variante n'est
|
||||
ajouté. Un creeper portant déjà une fleur devient donc heureux avec cette
|
||||
version. L'identité, la santé, la charge et les autres données natives restent
|
||||
sur le même creeper. Le port d'un chapeau conserve sa protection habituelle
|
||||
contre la disparition à distance.
|
||||
|
||||
Les nouvelles apparences de creepers restent pour un prochain ticket. Le
|
||||
suivi du joueur, les apparitions naturelles de happy creepers et les anciennes
|
||||
entités `happy_creeper:*`/`mobopia:*` ne font pas partie de cet incrément.
|
||||
Aucune nouvelle interface n'est ajoutée ; les messages d'équipement et de
|
||||
retrait FR/EN existants sont réutilisés.
|
||||
|
||||
## Vérification
|
||||
|
||||
- Serveur `happycreeper,cosmetics,headblocks` : **28 tests requis réussis**,
|
||||
dont sept tests happy creeper et le test d'infrastructure Fabric. Annulation
|
||||
immédiate d'une vraie mèche à vingt ticks, refus répété du ciblage/allumage,
|
||||
représailles, tous les objets du tag fleurs, récupération de la pile nommée,
|
||||
allumage natif sans fleur et rechargement du même creeper chargé vérifiés.
|
||||
- Parcours client **Vulkan avec Sodium** : **réussi**. Vrais appuis sur Maj et
|
||||
clics souris pour équiper/récupérer une fleur en survie ; synchronisation de
|
||||
la pile et du visage ; AI active pendant 85 ticks près d'un vrai joueur ;
|
||||
sourire, fleur sur la tête animée et aura électrique native vérifiés.
|
||||
Monde plat de développement neuf, graine `290`, Minecraft 26.3 sur Apple M1.
|
||||
Capture : `build/happy-creepers-screenshots/four-states-vulkan.png` ; de gauche
|
||||
à droite : chargé, chargé heureux, heureux, ordinaire.
|
||||
- `check build assemblePack` : **réussi en 3 min 55 s**, contrôles purs et
|
||||
**28 tests serveur** inclus. Export MRpack réussi, versions et dépendances
|
||||
exactes contrôlées ; un seul JAR Sanctuary embarqué, identique au JAR
|
||||
construit ; texture historique identique octet par octet et classes de test
|
||||
absentes. Logs : `build/happy-creepers-final-check-build.log`,
|
||||
`build/happy-creepers-server.log`, `build/happy-creepers-vulkan.log`.
|
||||
Reçu : `build/happy-creepers-validation.json`.
|
||||
|
||||
Commandes reproductibles :
|
||||
|
||||
```sh
|
||||
./gradlew check build assemblePack \
|
||||
-PsanctuaryFocusedTests=happycreeper,cosmetics,headblocks \
|
||||
-PsanctuaryAtlasOnly=true
|
||||
./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true \
|
||||
-PsanctuaryHappyCreeperClientTests=true -PsanctuaryQuickTests=true \
|
||||
-PsanctuaryClientGraphicsBackend=vulkan -PsanctuarySodiumClientTests=true \
|
||||
-PsanctuaryClientHeapGb=4 -PsanctuaryClientNoVsync=true
|
||||
```
|
||||
|
||||
Le premier essai de `check build` associait par erreur le preset unifié et le
|
||||
profil rapide ; il a échoué au choix du générateur avant les tests. Le profil
|
||||
plat `sanctuaryAtlasOnly=true` évite ce conflit de configuration existant.
|
||||
Aucun monde personnel, serveur Beta, canal packwiz ou Prism n'est modifié.
|
||||
|
||||
## Artefacts locaux
|
||||
|
||||
- [Pack beta.291](../build/Sanctuary-beta.291.mrpack), 16 724 142 octets.
|
||||
SHA-256 : `3c2d630fc85e88b08bac94cc2244e975d3552fcac4d508ad366adea730062468`.
|
||||
- JAR : `mods/sanctuary/build/libs/sanctuary-beta.291.jar`.
|
||||
SHA-256 : `e8e315db1e4831400244d17429723099fbfe3a352387d8a9cf0ecb01d8170e9e`.
|
||||
|
||||
Cette branche part de beta.289 et ne contient pas le travail parallèle des
|
||||
baleines préparé en beta.290. L'intégration des deux branches précède toute
|
||||
éventuelle publication commune. Aucun tag ni artefact distant n'est créé.
|
||||
@@ -0,0 +1,59 @@
|
||||
# HELLO-263 — Bébés familiers dans Hello World
|
||||
|
||||
Correction demandée le 16 octobre 2026 sur `codex/hello-world-menu`, après
|
||||
beta.262. Minecraft **26.3**, livraison locale **beta.263**.
|
||||
|
||||
La disposition est ensuite ajustée dans [HELLO-264](hello-layout-beta264.md) :
|
||||
colonne de la largeur de la hotbar et aperçus miniatures sur un sol commun.
|
||||
|
||||
Le familier est présenté dans sa forme bébé native, comme le proxy de rendu
|
||||
en jeu après `Mob.setBaby(true)`. Le choix concerne le modèle, les textures
|
||||
bébé et l'échelle d'âge ; le cadrage tient compte de la taille réduite.
|
||||
Les textures du chat et du loup sont explicitement remplacées par celles
|
||||
du chaton et du louveteau. Les espèces sans forme bébé native gardent leur
|
||||
apparence habituelle de familier miniature.
|
||||
Le chaton reprend la variante noire par défaut du proxy natif ; le poisson
|
||||
tropical reprend également son motif natif par défaut.
|
||||
|
||||
Le rendu reste utilisable avant la liaison des composants d'items et avant
|
||||
l'arrivée d'un monde client. Aucun changement des familiers remis, des règles
|
||||
serveur ou des sauvegardes. Hotbar de neuf couleurs, fond texturé, skin du
|
||||
personnage et suivi de la souris conservés.
|
||||
|
||||
## Vérifications
|
||||
|
||||
Le parcours Hello World existant est étendu : après le contrôle à froid des
|
||||
44 modèles/textures, l'âge, l'échelle d'âge et la texture de chaque aperçu
|
||||
sont comparés à un vrai proxy natif créé dans un monde de développement
|
||||
neuf, puis passé par `Mob.setBaby(true)`. Ces proxies ne sont jamais ajoutés
|
||||
au monde ou simulés. Le personnage, la pagination, les saisies, l'admission,
|
||||
la reconnexion et le code d'accès restent couverts par le même parcours.
|
||||
|
||||
```sh
|
||||
export JAVA_HOME=$(/usr/libexec/java_home -v 25)
|
||||
./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true \
|
||||
-PsanctuaryQuickTests=true -PsanctuaryHello262ClientTests=true \
|
||||
-PsanctuaryClientGraphicsBackend=vulkan -PsanctuaryClientHeapGb=8 \
|
||||
-PsanctuaryClientNoVsync=true
|
||||
./gradlew check build assemblePack \
|
||||
-PsanctuaryFocusedTests=progression,starter,starter052 -PsanctuaryAtlasOnly=true
|
||||
```
|
||||
|
||||
Parcours client réussi en **1 min 26 s**, **Vulkan / MoltenVK 1.4.2 sur
|
||||
Apple M1**, avec 8 Gio maximum. Journal : `build/hello263-client-vulkan.log`,
|
||||
marqueurs `HELLO263_BABIES_PASS`, `HELLO262_MODELS_PASS` et
|
||||
`HELLO262_CLIENT_PASS`. Les 44 âges, échelles d'âge et textures correspondent
|
||||
aux proxies natifs ; la création, la reconnexion et le code d'accès passent.
|
||||
24 captures conservées dans `build/hello263-screenshots/` ; galerie à froid
|
||||
et poussin dans le menu inspectés.
|
||||
|
||||
`check build assemblePack` réussit en **3 min 4 s**, avec **13 GameTests
|
||||
serveur requis réussis**. Journal : `build/hello263-check-build-pack.log`.
|
||||
Le [pack local beta.263](../build/Sanctuary-beta.263.mrpack) est exporté et
|
||||
vérifié : intégrité ZIP, version, Minecraft 26.3, JAR identique au build et
|
||||
classes de test absentes. Face à beta.262, seule la classe de production
|
||||
`HelloFamiliarPreview` change. Reçu : `build/hello263-validation.json`.
|
||||
|
||||
Aucune publication ou installation personnelle effectuée. Les variantes
|
||||
visuelles restent celles par défaut ; Windows et serveur distant restent
|
||||
hors des essais.
|
||||
@@ -0,0 +1,74 @@
|
||||
# HELLO-264 — Colonne centrale et sol commun
|
||||
|
||||
Demande du 16 octobre 2026 sur `codex/hello-world-menu`, après beta.263.
|
||||
Minecraft **26.3**, livraison locale **beta.264**.
|
||||
|
||||
Le titre Hello World est retiré de l'affichage. Le menu central reprend les
|
||||
**182 pixels de la hotbar native**, avec neuf couleurs par page. La section
|
||||
Personnage contient le choix de couleur puis « Écris ta biographie ». Elle est
|
||||
suivie du choix parmi les trois œufs et du nom du familier. Les noms sont
|
||||
placés au-dessus des aperçus : pseudo coloré à gauche, nom saisi à droite.
|
||||
Les flèches restent dans la largeur de la colonne ; leur infobulle indique
|
||||
la page courante. Libellés français et anglais.
|
||||
|
||||
Les deux aperçus partagent la même hauteur de sol. Le familier garde sa forme
|
||||
bébé et une taille miniature ; son échelle ne cherche plus à remplir la zone.
|
||||
Le cadrage est limité à l'aperçu. Le personnage compense la rotation verticale
|
||||
pour garder ses pieds au sol. Les deux modèles suivent toujours la souris.
|
||||
L'espèce, la rareté et la description apparaissent uniquement au survol de
|
||||
l'œuf ou de l'aperçu, et ne prennent plus de place dans le formulaire.
|
||||
|
||||
Retour est placé en bas du contenu, séparé des sections. « Entrer dans
|
||||
Sanctuary » occupe un pied de page natif de 33 pixels, à la position du bouton
|
||||
Terminé des statistiques. Les deux boutons ont la largeur de la hotbar.
|
||||
Le fond légèrement texturé, les brouillons, la pagination, le verrouillage
|
||||
d'identité et le parcours de code d'accès sont conservés.
|
||||
|
||||
Les règles serveur, les sauvegardes et les familiers remis restent inchangés.
|
||||
Les variantes visuelles sont celles par défaut, comme dans beta.263.
|
||||
|
||||
## Vérifications
|
||||
|
||||
Le parcours Vulkan vérifie FR/EN en GUI 2/3/4, la largeur et le centrage des
|
||||
champs, les boutons sans chevauchement et la place du pied de page natif.
|
||||
Il couvre aussi les neuf couleurs par page, la dernière page incomplète,
|
||||
les saisies après redimensionnement/refus serveur, l'identité verrouillée et
|
||||
le code d'accès. Les aides de saisie FR/EN sont raccourcies pour tenir dans
|
||||
la colonne, y compris lorsque les champs sont vides.
|
||||
|
||||
Les 44 modèles de départ sont rendus à froid et comparés aux vrais proxies
|
||||
natifs après `Mob.setBaby(true)`. Captures spécifiques du bébé zombie,
|
||||
du bébé chameau, du survol et des deux directions de souris. Admission avec
|
||||
nom, sauvegarde et reconnexion dans un monde de développement neuf, graine
|
||||
52 ; code d'accès avec réponse HTTP perdue, nouvel essai et admission unique
|
||||
dans un autre monde neuf, graine 166.
|
||||
|
||||
Parcours final réussi en **1 min 4 s**, sous **Vulkan / MoltenVK 1.4.2,
|
||||
Apple M1**, avec 8 Gio maximum. Les marqueurs `HELLO262_MODELS_PASS`,
|
||||
`HELLO263_BABIES_PASS`, `STARTER052_CLIENT_PASS`, `ACCESS166_CLIENT_PASS`
|
||||
et `HELLO262_CLIENT_PASS` figurent dans `build/hello264-client-vulkan.log`.
|
||||
**43 captures natives** conservées dans `build/hello264-screenshots/` ;
|
||||
menus FR/EN, zombie, chameau, suivi de souris, cadrage et infobulle inspectés.
|
||||
|
||||
`check build assemblePack` réussit en **3 min 9 s**, avec les **13 GameTests
|
||||
serveur requis réussis**. Journal : `build/hello264-check-build-pack.log`.
|
||||
Le [pack local beta.264](../build/Sanctuary-beta.264.mrpack) est exporté et
|
||||
vérifié : intégrité ZIP, version, Minecraft 26.3, JAR identique au build,
|
||||
classes de production identiques aux sorties compilées, traductions FR/EN
|
||||
identiques aux sources et classes de test absentes. Par rapport à beta.263,
|
||||
les seules classes de production modifiées sont `HelloWorldScreen` et ses
|
||||
classes internes, ainsi que `HelloFamiliarPreview`.
|
||||
Reçu : `build/hello264-validation.json`.
|
||||
|
||||
Aucune publication ou installation personnelle effectuée. Essais graphiques
|
||||
sur Apple M1 uniquement ; Windows et serveur distant hors des essais.
|
||||
|
||||
```sh
|
||||
export JAVA_HOME=$(/usr/libexec/java_home -v 25)
|
||||
./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true \
|
||||
-PsanctuaryQuickTests=true -PsanctuaryHello262ClientTests=true \
|
||||
-PsanctuaryClientGraphicsBackend=vulkan -PsanctuaryClientHeapGb=8 \
|
||||
-PsanctuaryClientNoVsync=true
|
||||
./gradlew check build assemblePack \
|
||||
-PsanctuaryFocusedTests=progression,starter,starter052 -PsanctuaryAtlasOnly=true
|
||||
```
|
||||
@@ -0,0 +1,96 @@
|
||||
# HELLO-262 — Menu de création du personnage et du familier
|
||||
|
||||
Demande du 16 octobre 2026, branche `codex/hello-world-menu`, socle beta.261,
|
||||
Minecraft **26.3**, livraison locale **beta.262**.
|
||||
|
||||
Les aperçus adultes de cette première version sont remplacés par les
|
||||
[formes bébé en beta.263](hello-baby-familiars-beta263.md).
|
||||
|
||||
## Menu
|
||||
|
||||
Trois colonnes centrées : personnage à gauche, formulaire au centre, familier
|
||||
à droite. Les colonnes latérales ont la même largeur ; le centre est partagé
|
||||
en deux blocs de même hauteur, personnage en haut et familier en bas.
|
||||
Aucun aplat de panneau : fond gris sombre légèrement texturé sur toute la page,
|
||||
avec la texture native de pierre teintée, proche du précédent `#171717`.
|
||||
|
||||
Le pseudo affiche la couleur choisie. Les flèches autour de lui parcourent
|
||||
**neuf couleurs serveur par page**. La barre reprend directement les sprites
|
||||
`minecraft:hud/hotbar` et `minecraft:hud/hotbar_selection`, sans texture dérivée.
|
||||
Aux petites tailles, elle se réduit proportionnellement tout en conservant ses
|
||||
neuf cases. La dernière page garde les emplacements vides inactifs. Noms des
|
||||
couleurs au survol et dans la narration ; libellés FR/EN.
|
||||
|
||||
Le personnage et le familier ont des **aperçus 3D qui suivent la souris**,
|
||||
sans devoir cliquer ou glisser. Le skin utilise le widget natif ; le familier
|
||||
utilise ses modèles et textures natifs. Les trois œufs restent les boutons de
|
||||
choix à droite. Le survol change l'aperçu ; sinon, le familier choisi est
|
||||
montré, ou le premier avant la sélection explicite.
|
||||
|
||||
Ces aperçus ne créent aucun `ItemStack`, entité ou monde de substitution.
|
||||
Les états graphiques sont construits directement avant l'admission. Les vaches,
|
||||
poules et cochons utilisent explicitement leurs variantes tempérées 26.3,
|
||||
sans lier ou remplacer les registres dynamiques du serveur.
|
||||
|
||||
La biographie et le nom du familier restent au centre. Le code d'accès apparaît
|
||||
lorsque le serveur l'exige. Pagination, redimensionnement et refus serveur
|
||||
conservent les saisies et le familier proposé ; une couleur devenue indisponible
|
||||
est retirée de la sélection. Une identité enregistrée reste verrouillée.
|
||||
Règles serveur, tirage, protocole et formats de sauvegarde inchangés.
|
||||
|
||||
## Vérifications
|
||||
|
||||
Parcours client **Vulkan / MoltenVK 1.4.2, Apple M1**, 8 Gio maximum : FR/EN,
|
||||
fenêtre 1280 × 960, GUI 2/3/4, soit 640 × 480, 427 × 320 et 320 × 240.
|
||||
Toutes les couleurs sont accessibles sans doublon, dernière page comprise.
|
||||
Contrôles sans chevauchement, boutons Annuler/Entrer lisibles sans défilement,
|
||||
focus des flèches conservé, brouillons et sélection conservés au redimensionnement.
|
||||
Offres sans familier, palette vide et identité verrouillée couvertes.
|
||||
|
||||
Les **44 modèles de départ** communs/peu communs sont soumis au rendu natif
|
||||
et leurs textures vérifiées sur un client à froid, **avant la liaison des
|
||||
composants d'items**. La galerie est rendue en Vulkan. Les déplacements du
|
||||
curseur vérifient les deux axes du familier et du personnage ; captures
|
||||
comparées pour contrôler le sens de rotation.
|
||||
|
||||
Admission avec nom et reconnexion dans un monde plat neuf, graine **52**.
|
||||
Admission par code dans un autre monde plat neuf, graine **166**, avec une API
|
||||
HTTP locale contrôlée : réponse perdue, nouvel essai et admission unique.
|
||||
Configuration temporaire restaurée. Les parcours Starter052 et Access166 sont
|
||||
réutilisés ; les assertions historiques de disposition de Starter052 et
|
||||
Progression003 sont adaptées.
|
||||
|
||||
```sh
|
||||
export JAVA_HOME=$(/usr/libexec/java_home -v 25)
|
||||
./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true \
|
||||
-PsanctuaryQuickTests=true -PsanctuaryHello262ClientTests=true \
|
||||
-PsanctuaryClientGraphicsBackend=vulkan -PsanctuaryClientHeapGb=8 \
|
||||
-PsanctuaryClientNoVsync=true
|
||||
./gradlew check build assemblePack \
|
||||
-PsanctuaryFocusedTests=progression,starter,starter052 -PsanctuaryAtlasOnly=true
|
||||
```
|
||||
|
||||
Parcours client final réussi en **1 min 35 s**. Journal :
|
||||
`build/hello262-3d-client-vulkan-final.log`, marqueurs `HELLO262_MODELS_PASS`
|
||||
et `HELLO262_CLIENT_PASS`. **24 captures finales** conservées dans
|
||||
`build/hello262-final-screenshots/` ; vues FR/2, FR/4 avec accès, EN/4,
|
||||
galerie des 44 modèles et deux positions du curseur inspectées.
|
||||
|
||||
`check build assemblePack` réussit en **3 min 32 s**, avec **13 GameTests
|
||||
serveur requis réussis** et les contrôles purs du dépôt. Journal :
|
||||
`build/hello262-check-build-pack-final.log`. Mod et pack alignés sur beta.262.
|
||||
|
||||
[Pack local beta.262](../build/Sanctuary-beta.262.mrpack).
|
||||
Reçu et empreintes : `build/hello262-validation.json`.
|
||||
Le MRpack est vérifié après export : intégrité ZIP, Minecraft 26.3, version
|
||||
beta.262 et JAR Sanctuary identique au build ; classes de test absentes du mod.
|
||||
|
||||
## Limites
|
||||
|
||||
Aperçus avec les variantes visuelles par défaut, sans choix de variante.
|
||||
Aux petites tailles, la description latérale est abrégée par la place disponible ;
|
||||
l'infobulle garde le texte complet. La biographie conserve sa limite de
|
||||
256 caractères et son champ natif à défilement horizontal.
|
||||
Essais sur serveurs intégrés de développement ; Windows et serveur distant
|
||||
non testés. Aucune publication, modification du canal packwiz ou synchronisation
|
||||
d'une installation personnelle effectuée.
|
||||
@@ -0,0 +1,87 @@
|
||||
# ZOMBIES-286 — Hunter et bond offensif
|
||||
|
||||
Branche `codex/hunter`, sur le socle local beta.285 conservé. État : implémenté,
|
||||
vérifié côté serveur et sous Vulkan ; pack local beta.286 construit et vérifié.
|
||||
|
||||
## Contrat demandé
|
||||
|
||||
Sixième infecté : un Hunter qui prépare son bond, saute réellement vers sa
|
||||
cible et la blesse seulement si son corps la touche. Le bond peut rater : sa
|
||||
direction reste fixée après le départ et les blocs utilisent leurs collisions
|
||||
natives. Aucun plaquage ni dégât répété automatique n'est ajouté.
|
||||
|
||||
- Zombie adulte vanilla 26.3, t-shirt bleu soutenu et pantalon anthracite
|
||||
recolorés par script ; tête, peau, chaussures, UV et alpha conservés.
|
||||
Identifiants `sanctuary:hunter` et `sanctuary:hunter_spawn_egg`.
|
||||
Aucun bébé, y compris via œuf, chargement ou familier ; pas de noyé.
|
||||
- Sauvage : 10 PV, vitesse 0,30, mêlée 3, poursuite 36 blocs. Préparation
|
||||
de 16 ticks au sol, bond à 3–10 blocs avec ligne de vue, impulsion verticale
|
||||
0,62 et vitesse horizontale adaptée à la distance, plafonnée à 1,25.
|
||||
Une seule frappe de 4 dégâts au contact, récupération de 24 ticks,
|
||||
recharge de 120 ticks engagée au décollage, même si le bond rate.
|
||||
- Gravité, trajectoire et collisions natives ; corridor complet chargé et
|
||||
bordure vérifiés. Mur, plafond, atterrissage ou durée bornée terminent le bond.
|
||||
Une téléportation n'est pas interprétée comme un balayage d'attaque. Aucun
|
||||
bloc détruit, chunk généré ou monde existant réécrit.
|
||||
- Familier rare : adulte miniature à taille variable persistante, 12 PV,
|
||||
vitesse 0,30. Attaque de contact automatique et G de bond offensif à 8 blocs,
|
||||
avec trajectoire physique et récupération. Les protections communes des
|
||||
familiers gardent autorité sur les dégâts, destinataires, claims et duels.
|
||||
Le familier ne bondit pas lorsqu'il est monté ou transporté.
|
||||
- Œuf créatif, spawn rare dans les habitats de zombies de l'Overworld : poids 4,
|
||||
un individu. Recharge conservée au chargement ; préparation et saut interrompus
|
||||
ne reprennent pas après rechargement. Aucun identifiant ou format existant changé.
|
||||
|
||||
## Vérification
|
||||
|
||||
- `:sanctuary:runGameTest -PsanctuaryFocusedTests=hunter286
|
||||
-PsanctuaryAtlasOnly=true` : **16 tests requis réussis**, dont le test
|
||||
d’infrastructure. Préparation accroupie, vraie élévation, contact unique,
|
||||
esquive, murs, plafond, atterrissage, recharge, sauvegarde interrompue,
|
||||
téléportation, corridor déchargé, G physique, protections communes et six
|
||||
tailles persistantes.
|
||||
- Régressions séparées : **77 tests** avec
|
||||
`ziplines242,boomer284,spitter283,charger282,infected280,familiar260,companions`,
|
||||
puis **19 tests** avec `smoker285`. Les joueurs simulés du Smoker imposent
|
||||
une session indépendante des tests d’IA asynchrones. Chaque total comprend
|
||||
son test d’infrastructure.
|
||||
- Deux arènes historiques corrigées sans changement de comportement : sol
|
||||
du Charger élargi pour garder l’esquive de quatre blocs sur la plateforme ;
|
||||
arènes du Smoker replacées dans les chunks suivis par GameTest pour que les
|
||||
recherches natives de projectiles voient immédiatement les joueurs.
|
||||
- `:sanctuary:runClientGameTest -PsanctuaryClientTests=true
|
||||
-PsanctuaryHunter286ClientTests=true -PsanctuaryQuickTests=true
|
||||
-PsanctuaryClientGraphicsBackend=vulkan -PsanctuaryClientHeapGb=8
|
||||
-PsanctuaryClientNoVsync=true` : **réussi**, Vulkan / MoltenVK 1.4.2 /
|
||||
Apple M1. Monde de développement plat temporaire, graine `286` : appui G
|
||||
réel, familier en vol, contact et recharge ; bond sauvage sur le vrai joueur,
|
||||
dégâts, récupération et gravité ; esquive au clavier sans dégâts ; rendu
|
||||
adulte aux tailles 500/1000/1500 ; interface et infobulle FR/EN, GUI 2/3/4.
|
||||
Captures : `build/hunter286-screenshots/`.
|
||||
- `./gradlew check build assemblePack -PsanctuaryFocusedTests=hunter286
|
||||
-PsanctuaryAtlasOnly=true` : **réussi en 2 min 46 s**, y compris les 16
|
||||
tests Hunter rejoués et tous les contrôles purs configurés par `check`.
|
||||
- Export `packwiz modrinth export` et intégrité ZIP vérifiés : un seul JAR
|
||||
Sanctuary, identique au JAR construit ; version `beta.286`, Minecraft `26.3`,
|
||||
Fabric Loader `0.19.5`. Classes de test exclues ; classes Hunter, œuf,
|
||||
profil, butin, tags et traductions FR/EN présents. Pixels du PNG conformes
|
||||
au script, cinq textures antérieures et MRpack beta.285 inchangés.
|
||||
|
||||
## Artefacts locaux
|
||||
|
||||
- [Pack beta.286](../build/Sanctuary-beta.286.mrpack), 16 682 455 octets.
|
||||
SHA-256 : `9363b9067bc9974cd5f850b671e0d97c1f0876eda6885a51e2acf32d6d3b1103`.
|
||||
- JAR `mods/sanctuary/build/libs/sanctuary-beta.286.jar`.
|
||||
SHA-256 : `02a62837d2385ec61cf76c915c2eb0e0cc5b339d5bd3ceab64a2f1086bc94abf`.
|
||||
- Reçu détaillé : `build/hunter286-validation.json`. Logs et captures ignorés
|
||||
sous `build/hunter286-*`. Les premiers essais échoués des arènes historiques
|
||||
sont conservés à côté des résultats finaux ; les réparations ci-dessus ne
|
||||
changent aucun comportement du Charger ou du Smoker.
|
||||
|
||||
## Limites
|
||||
|
||||
Le Hunter saute puis retombe : aucun plaquage ou maintien du joueur. La vitesse
|
||||
de lancement adapte la portée au sol ; un dénivelé, un obstacle ou le déplacement
|
||||
de la cible peut faire rater le contact. Seuls les chunks déjà chargés sont
|
||||
utilisés. Aucune validation graphique OpenGL, publication, synchronisation
|
||||
Prism, installation personnelle ou modification de sauvegarde existante.
|
||||
@@ -0,0 +1,76 @@
|
||||
# ZOMBIES-281 — Infectés adultes et familiers miniatures
|
||||
|
||||
Branche `codex/special-zombies`, suite au retour sur beta.280. État : livré et
|
||||
vérifié localement.
|
||||
|
||||
## Contrat
|
||||
|
||||
Les infectés n'ont **aucune forme bébé**. Leur modèle et leur texture sont
|
||||
toujours ceux de l'adulte. Cette règle appartient à `AbstractInfectedEntity`,
|
||||
le socle commun des variantes : les futurs Hunter, Charger, Spitter et Boomer
|
||||
devront aussi en hériter. Ces variantes restent à implémenter.
|
||||
|
||||
L'Infecté actuel refuse le flag bébé des groupes naturels, des appels natifs,
|
||||
des œufs et du chargement des données d'entité. Il ne reçoit pas le bonus de
|
||||
vitesse bébé. Les bébés zombies Minecraft gardent leurs règles habituelles.
|
||||
|
||||
En familier, l'adulte est réduit avec le système `FamiliarSize` existant.
|
||||
Son trait de taille enregistré dans l'œuf reste identique : petites, ordinaires,
|
||||
grandes et colossales restent possibles. Le rendu en jeu, les aperçus des menus,
|
||||
les dimensions de monture et les sons utilisent tous la même forme adulte.
|
||||
La taille ne dépend donc plus d'un âge bébé.
|
||||
|
||||
Les identifiants, la texture vanilla recolorée, les règles de combat et les
|
||||
formats restent ceux de beta.280. Une ancienne donnée d'Infecté portant
|
||||
`IsBaby=true` est interprétée comme adulte à la lecture, sans changement de
|
||||
son UUID ou de sa santé. Aucun monde personnel n'est ouvert ou réécrit.
|
||||
|
||||
## Vérifications
|
||||
|
||||
- Refus du bébé et de son bonus de vitesse, avec bébé zombie vanilla conservé.
|
||||
- Lecture d'un ancien flag bébé sans perdre l'identité ni la santé.
|
||||
- Familier adulte à six tailles, de 120 à 6 000 ‰, sans changer le trait ni
|
||||
l'identité ; cohérence entre hauteur visible et hauteur de monture.
|
||||
- Parcours Vulkan sur un monde plat neuf, graine `281` : trois tailles réelles
|
||||
de familier, inspection de la géométrie adulte et menus FR/EN GUI 2/3/4.
|
||||
- `./gradlew check build assemblePack` et vérification du MRpack beta.281.
|
||||
|
||||
La suite de régression conserve son entrée `infected280` et son option client
|
||||
`sanctuaryInfected280ClientTests`, actualisées selon ce nouveau contrat.
|
||||
|
||||
Les **34 GameTests serveur** ciblés passent, dont neuf pour l'Infecté. Les
|
||||
contrôles de réapparition et des 88 familiers vanilla passent aussi. Le parcours
|
||||
client **Vulkan / MoltenVK 1.4.2 / Apple M1** passe en **54 secondes**.
|
||||
Il vérifie le vrai rendu du familier, sa géométrie adulte et sa hauteur pour
|
||||
500, 1 000 et 1 500 ‰, ainsi que les noms, infobulles et menus FR/EN aux échelles
|
||||
2, 3 et 4. Dix captures sont conservées sous `build/infected281-screenshots/` ;
|
||||
les petites et grandes miniatures et le menu FR GUI 2 ont été inspectés.
|
||||
|
||||
Logs : `build/infected281-native.log`, `build/infected281-client-vulkan.log`
|
||||
(marqueur `INFECTED281_CLIENT_PASS`). La construction complète finale
|
||||
**`check build assemblePack` passe en 3 min 09 s**, avec les 34 tests serveur.
|
||||
Log : `build/infected281-check-build-pack.log`.
|
||||
|
||||
Le JAR et le MRpack beta.281 sont vérifiés : version exacte, intégrité ZIP,
|
||||
un seul JAR Sanctuary identique au build, socle adulte commun présent,
|
||||
texture corrigée conservée octet pour octet et fixtures de test exclues.
|
||||
Reçu : `build/infected281-validation.json`.
|
||||
|
||||
```sh
|
||||
./gradlew check build assemblePack \
|
||||
-PsanctuaryFocusedTests=infected280,familiar260,companions \
|
||||
-PsanctuaryAtlasOnly=true
|
||||
./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true \
|
||||
-PsanctuaryInfected280ClientTests=true -PsanctuaryQuickTests=true \
|
||||
-PsanctuaryClientGraphicsBackend=vulkan -PsanctuaryClientHeapGb=8 \
|
||||
-PsanctuaryClientNoVsync=true
|
||||
```
|
||||
|
||||
## Livraison locale
|
||||
|
||||
- `mods/sanctuary/build/libs/sanctuary-beta.281.jar`
|
||||
- `build/Sanctuary-beta.281.mrpack`
|
||||
- `build/infected281-screenshots/0002_infected281-miniature-1000.png`
|
||||
|
||||
Aucun déploiement dans Prism ou un serveur personnel. Les artefacts beta.280
|
||||
sont conservés ; cette livraison utilise le numéro suivant.
|
||||
@@ -0,0 +1,135 @@
|
||||
# ZOMBIES-280 — Premier infecté
|
||||
|
||||
Le contrat bébé de cette livraison est remplacé par
|
||||
[beta.281 : adultes en miniature et taille variable](infected-adults-beta281.md).
|
||||
|
||||
Branche `codex/special-zombies`. Premier incrément demandé : l'Infecté simple,
|
||||
avant les Hunter, Charger, Spitter et Boomer. État : livré localement et vérifié.
|
||||
|
||||
## Contrat
|
||||
|
||||
- `sanctuary:infected` est un zombie vert au modèle vanilla, t-shirt rouge et
|
||||
pantalon brun sombre. Adulte et bébé utilisent les formes natives.
|
||||
- Attributs de base : 10 PV, vitesse 0,25 contre 0,23 pour le zombie ; mêlée
|
||||
native, dégâts de base 3, portée de poursuite 36 blocs. Il brûle au soleil
|
||||
et ne se transforme pas en noyé. Aucun pouvoir spécial dans ce premier lot.
|
||||
- Apparition au sol dans l'obscurité, selon les règles des monstres, uniquement
|
||||
dans les biomes de l'Overworld qui proposent déjà le zombie : poids 15,
|
||||
groupes de 1 à 3. Aucun spawner ni remplacement des zombies existants.
|
||||
- `sanctuary:infected_spawn_egg` apparaît dans l'onglet des œufs créatifs et
|
||||
invoque uniquement l'Infecté. Il peut être équipé comme familier bébé avec
|
||||
identité, suivi, ordres, santé et combat persistants du système existant.
|
||||
- Le familier a 10 PV, vitesse 0,30, morsure de mêlée et assaut court. Son
|
||||
profil FR/EN est distinct du zombie. Aucune nouvelle aptitude de travail.
|
||||
- Les autres infectés et le zombie des glaces restent à réaliser. Aucune
|
||||
nouvelle voie d'acquisition des œufs en survie n'est ajoutée dans ce lot.
|
||||
|
||||
## Référence et compatibilité
|
||||
|
||||
Référence en lecture seule : `../26.2/itsalive`, commit
|
||||
`26f2c2a0061619df1f146f9081d6740c560a7497`, `InfectedVariant.INFECTED` et
|
||||
`InfectedEntity`. Le nouveau type est indépendant des cinq variantes sous
|
||||
`itsalive:infected` de l'ancien mod ; aucune importation de leur sauvegarde.
|
||||
Les identifiants, profils et données des familiers existants sont conservés.
|
||||
L'ajout de tables de spawn affecte les apparitions futures, sans changer le
|
||||
terrain, les graines, les chunks ou un format de sauvegarde.
|
||||
|
||||
La texture est une recoloration déterministe du zombie natif **26.3**, par
|
||||
masques UV et sélection des seuls pixels cyan du t-shirt et violets du pantalon.
|
||||
Le visage, la peau verte, les chaussures et l'alpha sont conservés pixel pour
|
||||
pixel. L'œuf reprend l'icône rouge historique. La première texture générée par
|
||||
ImageGen décalait l'atlas ; elle a été écartée après le retour du créateur.
|
||||
|
||||
## Vérifications
|
||||
|
||||
Les **33 GameTests serveur** ciblés passent, dont huit nouveaux : attributs,
|
||||
mêlée réelle et bébé ; utilisation de l'œuf en survie et consommation ;
|
||||
sauvegarde/relecture native avec UUID, âge et santé ; tables de spawn ;
|
||||
immersion sans conversion en noyé ; équipement et rééquipement du familier ;
|
||||
morsure réelle du familier ; changement d'œuf pendant un objectif en cours.
|
||||
Les suites de pouvoirs existants et de réapparition
|
||||
beta.260 passent avec le nouvel œuf installé.
|
||||
Log final : `build/infected280-check-build-pack.log`.
|
||||
Le serveur plat natif 26.3 utilise le désert ; le contrôle positif des tables
|
||||
porte sur cet habitat réellement générable, avec exclusions Champignons,
|
||||
Nether et End. Il ne mesure pas la fréquence des rencontres en partie longue.
|
||||
|
||||
Le parcours client final **Vulkan / MoltenVK 1.4.2 / Apple M1** passe en 54 s :
|
||||
apparences adulte et bébé face au zombie classique, familier réellement équipé,
|
||||
renderer partagé avec les proxies, texture embarquée, rareté et infobulle
|
||||
native, noms et menus **FR/EN GUI 2/3/4**. Sept captures sont conservées dans
|
||||
`build/infected280-screenshots/`. Les vues comparatives, FR GUI 4 et EN GUI 2
|
||||
ont été inspectées après correction de la texture. La vue comparative finale
|
||||
confirme le visage et les bras vanilla, le t-shirt rouge et le pantalon brun
|
||||
sans décalage. Log : `build/infected280-client-vulkan.log`, marqueur
|
||||
`INFECTED280_CLIENT_PASS`. Aucun essai OpenGL.
|
||||
|
||||
```sh
|
||||
./gradlew check build assemblePack \
|
||||
-PsanctuaryFocusedTests=infected280,familiar260,companions \
|
||||
-PsanctuaryAtlasOnly=true
|
||||
./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true \
|
||||
-PsanctuaryInfected280ClientTests=true -PsanctuaryQuickTests=true \
|
||||
-PsanctuaryClientGraphicsBackend=vulkan -PsanctuaryClientHeapGb=8 \
|
||||
-PsanctuaryClientNoVsync=true
|
||||
```
|
||||
|
||||
Le mode plat explicite évite la fixture historique de génération, sans modifier
|
||||
le générateur de production. Tous les mondes utilisés sont jetables et ignorés.
|
||||
La construction complète finale **`check build assemblePack` passe en 2 min 59 s**,
|
||||
avec la texture corrigée et les 33 tests serveur. Les contrôles purs du dépôt
|
||||
passent également. Le MRpack est exporté et vérifié : intégrité ZIP,
|
||||
Minecraft 26.3, Fabric Loader 0.19.5, un seul JAR Sanctuary beta.280 identique
|
||||
au build et texture corrigée présente octet pour octet. Les fixtures de test
|
||||
sont exclues du JAR. Reçu : `build/infected280-validation.json`.
|
||||
|
||||
Le second parcours a également reproduit un plantage lors du remplacement
|
||||
d'un œuf : l'ancien objectif d'IA pouvait continuer un tick avant la création
|
||||
du nouvel individu. Le cerveau vérifie désormais que le familier est actif
|
||||
et que son œuf correspond encore à celui équipé avant d'agir. Un huitième
|
||||
GameTest couvre cet intervalle ; le parcours client final inclut le correctif.
|
||||
|
||||
## Essai local
|
||||
|
||||
Dans un monde de développement avec commandes autorisées :
|
||||
|
||||
```mcfunction
|
||||
/give @s sanctuary:infected_spawn_egg
|
||||
/summon sanctuary:infected
|
||||
```
|
||||
|
||||
L'œuf placé dans l'emplacement Familier invoque sa forme bébé. Les commandes
|
||||
Alt bref / Alt maintenu et la technique G restent celles des autres familiers.
|
||||
L'œuf est fourni en créatif ; aucune nouvelle acquisition en survie n'est
|
||||
annoncée. Aucun canal packwiz, serveur personnel ou instance Prism modifié.
|
||||
|
||||
## Ressources graphiques
|
||||
|
||||
- Texture livrée : `mods/sanctuary/src/main/resources/assets/sanctuary/textures/entity/infected.png`.
|
||||
- Œuf historique : `mods/sanctuary/src/main/resources/assets/sanctuary/textures/item/infected_spawn_egg.png`.
|
||||
- Outil de texture : `scripts/generate_infected_texture.py`, Python standard et
|
||||
ImageMagick 7 pour lire/écrire le PNG. **Aucun dessin génératif ni changement
|
||||
de géométrie.** 331 pixels de t-shirt et 239 pixels de pantalon recolorés,
|
||||
nuances natives conservées ; visage et transparence vérifiés avant encodage,
|
||||
puis tous les pixels vérifiés après écriture.
|
||||
- SHA-256 du PNG source :
|
||||
`1b88eea9b63889c2c3399773f887af375defc3aad0e7a375adc84249da54cbbd`.
|
||||
- SHA-256 de la texture livrée :
|
||||
`398898aed83ec22ef525b60da120fc3e0b971b33ad3640c73104b952ad060e29`.
|
||||
|
||||
Reproduction sans modifier le JAR source :
|
||||
|
||||
```sh
|
||||
python3 scripts/generate_infected_texture.py /chemin/vers/minecraft-26.3-client.jar
|
||||
```
|
||||
|
||||
Voir aussi la provenance dans `THIRD_PARTY_NOTICES.md`.
|
||||
|
||||
## Artefacts locaux
|
||||
|
||||
- Mod : `mods/sanctuary/build/libs/sanctuary-beta.280.jar`.
|
||||
- Pack : `build/Sanctuary-beta.280.mrpack`.
|
||||
- Captures corrigées : `build/infected280-screenshots/`.
|
||||
|
||||
La livraison est locale. La publication et la mise à jour de l'instance Prism
|
||||
restent distinctes de ce travail de développement.
|
||||
@@ -0,0 +1,116 @@
|
||||
# MENU-271 — Habitant en deux colonnes et deux rangées
|
||||
|
||||
Demande du 24 octobre 2026, continuation de `codex/inhabitant-property`.
|
||||
Version locale `beta.271`, après le premier lot de propriété beta.270.
|
||||
|
||||
## Résultat demandé
|
||||
|
||||
- Pause retrouve **Combats / Battles** dans **Communauté**, sous Habitant.
|
||||
Story et Factions ne figurent pas dans ce menu.
|
||||
- Habitant présente une barre horizontale **Propriété — Factions — Familier**
|
||||
en haut, sur les mêmes boutons natifs que les catégories de Découvertes.
|
||||
- Le personnage et son nom occupent la cellule supérieure gauche, avec
|
||||
des marges autour de la silhouette. La biographie est en haut à droite.
|
||||
- Sous la biographie, un tableau de bord présente le temps joué, les blocs
|
||||
posés, les blocs cassés, les créatures tuées, les morts et les progrès obtenus.
|
||||
Son bouton Statistiques ouvre la page générale complète existante.
|
||||
- Sous le personnage, l’activité occupe tout le panneau inférieur gauche,
|
||||
jusqu’en bas du contenu. La liste affiche les dernières activités disponibles
|
||||
dans son propre défilement, et **Historique reste dans son pied de panneau**.
|
||||
Il ouvre les 24 dernières activités disponibles ; l’ancien journal des cycles
|
||||
et achats reste accessible dans cette page.
|
||||
- Aucun aperçu, nom ou réglage du familier ne figure dans Habitant. Son bouton
|
||||
ouvre la page dédiée avec l'aide alliée, le carnet, les choix en attente et
|
||||
les contrôles opérateur admissibles, en plus des commandes déjà présentes.
|
||||
- Propriété, Factions, Familier, Statistiques et Historique reviennent à
|
||||
Habitant ; Combats revient à Pause. Le pied de page natif est conservé.
|
||||
|
||||
Les textes FR/EN, nombres compacts et infobulles gardent les valeurs et titres
|
||||
complets accessibles dans les petits formats. Biographie, statistiques et
|
||||
activité défilent indépendamment, et conservent leur position à la mise à jour
|
||||
des données. Les hauteurs s’adaptent aux échelles GUI 2, 3 et 4 ; la silhouette
|
||||
garde de l’air autour d’elle dans la cellule supérieure gauche.
|
||||
|
||||
## Sources et contrat de données
|
||||
|
||||
L'aperçu est une **lecture personnelle côté serveur**, via l'acteur authentifié
|
||||
du protocole communautaire existant. Aucun UUID du joueur à consulter n'est
|
||||
accepté depuis le client. Les opérations de fichier ou JDBC restent dans le
|
||||
worker communautaire ; les données Minecraft sont copiées sur le thread serveur.
|
||||
|
||||
- Temps, minage, morts et créatures tuées : compteurs Minecraft existants.
|
||||
Le temps est celui des ticks de jeu Minecraft. Le minage suit les règles de
|
||||
comptage vanilla ; les destructions en Créatif ne sont pas inventées.
|
||||
- Pose : sommes des poses confirmées du Blocodex, y compris les identifiants
|
||||
sauvegardés d'un mod absent. Les usages d'objets ne sont pas assimilés à des
|
||||
poses. Une source endommagée est signalée indisponible, jamais remise à zéro.
|
||||
- Progrès : accomplissements natifs ayant un affichage public ; les recettes
|
||||
et critères incomplets ne sont pas présentés comme des achievements.
|
||||
La date est le moment où toutes les exigences deviennent satisfaites :
|
||||
un critère optionnel obtenu plus tard ne déplace pas cette date.
|
||||
- Activité : publications, annonces, réponses et bulletins personnels visibles,
|
||||
progrès achevés et achats/cycles/factions déjà datés dans les sauvegardes.
|
||||
Le contenu intégral des publications et leurs photos ne sont pas transmis.
|
||||
Les publications modérées et les réponses à un parent masqué sont exclues.
|
||||
- Tri décroissant par date avec identifiants stables pour les égalités,
|
||||
dédoublonnage et limite de 24. Les anciennes données sont lisibles sans
|
||||
journal supplémentaire. Une panne communautaire conserve l'aperçu natif
|
||||
et signale que les publications manquent temporairement.
|
||||
|
||||
Ce panneau n'enregistre pas le texte du chat, des messages privés ou toutes
|
||||
les actions du monde. Il réunit les événements déjà persistants et datés ci-dessus.
|
||||
Aucun format de sauvegarde, coût, droit, règle de jeu ou monde personnel ne
|
||||
change. Aucun familier n'est retiré de l'inventaire ni rappelé en ouvrant Habitant.
|
||||
Les artefacts beta.270 déjà exportés sont conservés.
|
||||
|
||||
## Vérifications
|
||||
|
||||
`check build assemblePack` réussit en **2 min 37 s**, avec **15 GameTests
|
||||
serveur ciblés**. Le parcours Vulkan FR/EN aux échelles GUI 2, 3 et 4 réussit
|
||||
en **45 s** et utilise un nouveau monde
|
||||
plat de graine 271. Il vérifie la barre supérieure, les deux colonnes et deux
|
||||
rangées, les marges du personnage, le panneau d’activité jusqu’en bas et son
|
||||
bouton Historique, la biographie et les statistiques à droite, les défilements
|
||||
et la conservation de leur position après rafraîchissement.
|
||||
|
||||
Des compteurs serveur connus (une heure de ticks ajoutée, deux poses et
|
||||
25 blocs minés), un progrès natif et une annonce réellement publiée dans le
|
||||
monde de développement sont relus par le réseau. Le parcours conserve aussi
|
||||
les retours Propriété/Factions/Familier/Historique, la modification du consentement
|
||||
à l’aide alliée et l’achat d’une extension de propriété.
|
||||
|
||||
Les tests serveur ciblés couvrent les données personnelles, les dates des
|
||||
critères OR, les statistiques sans double comptage, les publications masquées,
|
||||
les sources persistantes lues sans modification, les pannes communautaires et
|
||||
le dédoublonnage. Le test de fichier communautaire couvre l’isolation des auteurs,
|
||||
les réponses sous un parent masqué, l’ordre et la limite de 24.
|
||||
La requête MariaDB reste paramétrée et bornée ; aucun serveur SQL réel n’a été
|
||||
exercé pour cette livraison.
|
||||
|
||||
```sh
|
||||
./gradlew check build assemblePack \
|
||||
-PsanctuaryFocusedTests=overview271,property270,progression,menus \
|
||||
-PsanctuaryAtlasOnly=true
|
||||
./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true \
|
||||
-PsanctuaryInhabitant271ClientTests=true -PsanctuaryQuickTests=true \
|
||||
-PsanctuaryClientGraphicsBackend=vulkan -PsanctuaryClientHeapGb=8 \
|
||||
-PsanctuaryClientNoVsync=true
|
||||
```
|
||||
|
||||
Une exécution exploratoire de la suite supplémentaire `companions` a échoué
|
||||
sur `creatureProfilesActuallyMove` : « Native navigation produces an actual
|
||||
airborne displacement ». Les règles de déplacement ne sont pas modifiées ici ;
|
||||
ce comportement n’est pas validé ni corrigé par ce lot d’interface. Le contrôle
|
||||
Vulkan du bouton Familier et de son consentement est distinct de cet essai.
|
||||
Résumé conservé dans `build/inhabitant271-exploratory-navigation.txt`.
|
||||
|
||||
Journaux locaux ignorés : `build/inhabitant271-client-vulkan.log` et
|
||||
`build/inhabitant271-check-build-pack.log`. Les **32 captures** sont conservées
|
||||
dans `build/inhabitant271-screenshots/`. Les fiches Habitant FR/EN, les formats
|
||||
GUI 2/4 et la page d’activité ont été inspectés.
|
||||
|
||||
Export local vérifié : [Sanctuary-beta.271.mrpack](../build/Sanctuary-beta.271.mrpack),
|
||||
16 483 048 octets. Intégrité ZIP, versions Minecraft/Fabric, dépendances et JAR
|
||||
Sanctuary/JEI comparés aux builds. Le MRpack beta.270 reste identique par SHA-256.
|
||||
Reçu de validation : `build/inhabitant271-validation.json`.
|
||||
Aucune publication de canal ni synchronisation d’instance personnelle.
|
||||
@@ -0,0 +1,278 @@
|
||||
{
|
||||
"version": "beta.248",
|
||||
"retrieved": "2026-10-08",
|
||||
"encoding": "OGG Vorbis, mono, 32000 Hz, q4",
|
||||
"changes": "Trim, frequency filtering, mild noise reduction, loudness adjustment, 60 ms fades, mono re-encoding",
|
||||
"files": [
|
||||
{
|
||||
"species": "brown_cicada",
|
||||
"file": "cicada_brown.ogg",
|
||||
"title": "Aburazemi 07z7315.ogg",
|
||||
"author": "ISAKA Yoji (Cory)",
|
||||
"source": "https://commons.wikimedia.org/wiki/File:Aburazemi_07z7315.ogg",
|
||||
"download": "https://upload.wikimedia.org/wikipedia/commons/d/d2/Aburazemi_07z7315.ogg",
|
||||
"license": "CC BY 2.1 Japan",
|
||||
"license_url": "https://creativecommons.org/licenses/by/2.1/jp/",
|
||||
"input_sha256": "621f514c83e8096e1ee8f6c40e6a6cdeb4ea8227584e74f34c86724e18596471",
|
||||
"sha256": "083751d055c07086457fe8c0198be90429a0b487b6a0c458f2362a8e5c793e39",
|
||||
"start_seconds": 25,
|
||||
"duration_seconds": 4,
|
||||
"filters": "highpass=f=800,lowpass=f=8500,afftdn=nr=8:nf=-35,loudnorm=I=-24:TP=-9:LRA=5,afade=t=in:st=0:d=0.06,afade=t=out:st=3.94:d=0.06",
|
||||
"format": {
|
||||
"programs": [],
|
||||
"stream_groups": [],
|
||||
"streams": [
|
||||
{
|
||||
"codec_name": "vorbis",
|
||||
"sample_rate": "32000",
|
||||
"channels": 1
|
||||
}
|
||||
],
|
||||
"format": {
|
||||
"duration": "4.000000"
|
||||
}
|
||||
},
|
||||
"notes": "Graptopsaltria nigrofuscata, field recording"
|
||||
},
|
||||
{
|
||||
"species": "robust_cicada",
|
||||
"file": "cicada_robust.ogg",
|
||||
"title": "Hyalessa maculaticollis v01.ogg",
|
||||
"author": "Σ64",
|
||||
"source": "https://commons.wikimedia.org/wiki/File:Hyalessa_maculaticollis_v01.ogg",
|
||||
"download": "https://upload.wikimedia.org/wikipedia/commons/9/9b/Hyalessa_maculaticollis_v01.ogg",
|
||||
"license": "CC BY 3.0",
|
||||
"license_url": "https://creativecommons.org/licenses/by/3.0/",
|
||||
"input_sha256": "a43db3363bf829af3db9d4fbd576a778e20f47b1a2caf8cff8c7963ee5ea2547",
|
||||
"sha256": "c6117adf6dc03d83e12e66acf20221bead2fda1016cffe49ca78e1d81980cb30",
|
||||
"start_seconds": 12,
|
||||
"duration_seconds": 5.5,
|
||||
"filters": "highpass=f=800,lowpass=f=8500,afftdn=nr=8:nf=-35,loudnorm=I=-24:TP=-9:LRA=5,afade=t=in:st=0:d=0.06,afade=t=out:st=5.44:d=0.06",
|
||||
"format": {
|
||||
"programs": [],
|
||||
"stream_groups": [],
|
||||
"streams": [
|
||||
{
|
||||
"codec_name": "vorbis",
|
||||
"sample_rate": "32000",
|
||||
"channels": 1
|
||||
}
|
||||
],
|
||||
"format": {
|
||||
"duration": "5.482219"
|
||||
}
|
||||
},
|
||||
"notes": "Hyalessa maculaticollis, field recording"
|
||||
},
|
||||
{
|
||||
"species": "walker_cicada",
|
||||
"file": "cicada_walker.ogg",
|
||||
"title": "Meimuna opalifera v02.ogg",
|
||||
"author": "Σ64",
|
||||
"source": "https://commons.wikimedia.org/wiki/File:Meimuna_opalifera_v02.ogg",
|
||||
"download": "https://upload.wikimedia.org/wikipedia/commons/e/e5/Meimuna_opalifera_v02.ogg",
|
||||
"license": "CC BY 3.0",
|
||||
"license_url": "https://creativecommons.org/licenses/by/3.0/",
|
||||
"input_sha256": "eb7b2383e79da540ad1f0b23d1c707b99adb8bfec258ff9b9d105c084dda3c61",
|
||||
"sha256": "d39420ab4b4ba5ed096cc78947e83b16e9d1897f6900429367f3b58a97826212",
|
||||
"start_seconds": 9,
|
||||
"duration_seconds": 6,
|
||||
"filters": "highpass=f=1200,lowpass=f=8500,afftdn=nr=8:nf=-35,loudnorm=I=-24:TP=-9:LRA=5,afade=t=in:st=0:d=0.06,afade=t=out:st=5.94:d=0.06",
|
||||
"format": {
|
||||
"programs": [],
|
||||
"stream_groups": [],
|
||||
"streams": [
|
||||
{
|
||||
"codec_name": "vorbis",
|
||||
"sample_rate": "32000",
|
||||
"channels": 1
|
||||
}
|
||||
],
|
||||
"format": {
|
||||
"duration": "6.000000"
|
||||
}
|
||||
},
|
||||
"notes": "Meimuna opalifera, Kawasaki 2011; new recording selected after mechanical noise was reported in the previous source; original 44.1 kHz"
|
||||
},
|
||||
{
|
||||
"species": "evening_cicada",
|
||||
"file": "cicada_evening.ogg",
|
||||
"title": "Higurashi 20180728 1902.ogg",
|
||||
"author": "あおもりくま (aomorikuma)",
|
||||
"source": "https://commons.wikimedia.org/wiki/File:Higurashi_20180728_1902.ogg",
|
||||
"download": "https://upload.wikimedia.org/wikipedia/commons/transcoded/b/bb/Higurashi_20180728_1902.ogg/Higurashi_20180728_1902.ogg.mp3",
|
||||
"license": "CC BY-SA 3.0",
|
||||
"license_url": "https://creativecommons.org/licenses/by-sa/3.0/",
|
||||
"input_sha256": "bc1b0270510393b3ee8831254847279f85e0e2382b4d09e12266b3d216587dc7",
|
||||
"sha256": "3f8f82412c9f6f22f5bce07464be7a4e0c6843d914c4cfa694dfe45fca5b6cdb",
|
||||
"start_seconds": 3.2,
|
||||
"duration_seconds": 6,
|
||||
"filters": "highpass=f=800,lowpass=f=8500,afftdn=nr=8:nf=-35,loudnorm=I=-24:TP=-9:LRA=5,afade=t=in:st=0:d=0.06,afade=t=out:st=5.94:d=0.06",
|
||||
"format": {
|
||||
"programs": [],
|
||||
"stream_groups": [],
|
||||
"streams": [
|
||||
{
|
||||
"codec_name": "vorbis",
|
||||
"sample_rate": "32000",
|
||||
"channels": 1
|
||||
}
|
||||
],
|
||||
"format": {
|
||||
"duration": "6.000000"
|
||||
}
|
||||
},
|
||||
"notes": "Tanna japonensis, public Commons MP3 transcode"
|
||||
},
|
||||
{
|
||||
"species": "cricket",
|
||||
"file": "cricket.ogg",
|
||||
"title": "Single cricket up close",
|
||||
"author": "ClaudeDebussy",
|
||||
"source": "https://freesound.org/people/ClaudeDebussy/sounds/428679/",
|
||||
"download": "https://cdn.freesound.org/previews/428/428679_5736710-hq.mp3",
|
||||
"license": "CC0 1.0",
|
||||
"license_url": "https://creativecommons.org/publicdomain/zero/1.0/",
|
||||
"input_sha256": "43e0b17687da18dfe99e7e3940bf89f1ffff8b9263a5b9fef3c2f8ff6eaa6618",
|
||||
"sha256": "99c79279fffba00c52918a62468c16a2049d142c8164773a322ebc48ecc22e0c",
|
||||
"start_seconds": 1.4,
|
||||
"duration_seconds": 3,
|
||||
"filters": "highpass=f=1800,lowpass=f=8500,afftdn=nr=8:nf=-35,loudnorm=I=-24:TP=-9:LRA=5,afade=t=in:st=0:d=0.06,afade=t=out:st=2.94:d=0.06",
|
||||
"format": {
|
||||
"programs": [],
|
||||
"stream_groups": [],
|
||||
"streams": [
|
||||
{
|
||||
"codec_name": "vorbis",
|
||||
"sample_rate": "32000",
|
||||
"channels": 1
|
||||
}
|
||||
],
|
||||
"format": {
|
||||
"duration": "3.000000"
|
||||
}
|
||||
},
|
||||
"notes": "Single cricket up close; biological species unspecified; public HQ preview"
|
||||
},
|
||||
{
|
||||
"species": "bell_cricket",
|
||||
"file": "bell_cricket.ogg",
|
||||
"title": "Suzumushi 06z3310.ogg",
|
||||
"author": "ISAKA Yoji (Cory)",
|
||||
"source": "https://commons.wikimedia.org/wiki/File:Suzumushi_06z3310.ogg",
|
||||
"download": "https://upload.wikimedia.org/wikipedia/commons/b/b0/Suzumushi_06z3310.ogg",
|
||||
"license": "CC BY 2.1 Japan",
|
||||
"license_url": "https://creativecommons.org/licenses/by/2.1/jp/",
|
||||
"input_sha256": "6a3305fef82fc101a21dab2917899fcaa9bfe0bbf03deb826fefa500fc97476a",
|
||||
"sha256": "acb8481493ca69229e15e9332a7b2171c8a35c07d19c11aecc55b85427749b81",
|
||||
"start_seconds": 2,
|
||||
"duration_seconds": 4,
|
||||
"filters": "highpass=f=4300,lowpass=f=6000,afftdn=nr=8:nf=-35,loudnorm=I=-24:TP=-9:LRA=5,afade=t=in:st=0:d=0.06,afade=t=out:st=3.94:d=0.06",
|
||||
"format": {
|
||||
"programs": [],
|
||||
"stream_groups": [],
|
||||
"streams": [
|
||||
{
|
||||
"codec_name": "vorbis",
|
||||
"sample_rate": "32000",
|
||||
"channels": 1
|
||||
}
|
||||
],
|
||||
"format": {
|
||||
"duration": "4.000000"
|
||||
}
|
||||
},
|
||||
"notes": "Field recording with several insects; band limited bell cricket call, some insect background remains"
|
||||
},
|
||||
{
|
||||
"species": "mole_cricket",
|
||||
"file": "mole_cricket.ogg",
|
||||
"title": "Gryllotalpidae 06-15.ogg",
|
||||
"author": "YaCoUYaCoU",
|
||||
"source": "https://commons.wikimedia.org/wiki/File:Gryllotalpidae_06-15.ogg",
|
||||
"download": "https://upload.wikimedia.org/wikipedia/commons/8/84/Gryllotalpidae_06-15.ogg",
|
||||
"license": "CC BY 4.0",
|
||||
"license_url": "https://creativecommons.org/licenses/by/4.0/",
|
||||
"input_sha256": "2cd180f1e048819211607551ebe48215ff36957dd5d06ece9fb5db699fb65b69",
|
||||
"sha256": "54e5cd5de697f1987d51a51c6985822b6c53be9b31962672898a165b151f190e",
|
||||
"start_seconds": 2,
|
||||
"duration_seconds": 4,
|
||||
"filters": "highpass=f=600,lowpass=f=3500,afftdn=nr=8:nf=-35,loudnorm=I=-24:TP=-9:LRA=5,afade=t=in:st=0:d=0.06,afade=t=out:st=3.94:d=0.06",
|
||||
"format": {
|
||||
"programs": [],
|
||||
"stream_groups": [],
|
||||
"streams": [
|
||||
{
|
||||
"codec_name": "vorbis",
|
||||
"sample_rate": "32000",
|
||||
"channels": 1
|
||||
}
|
||||
],
|
||||
"format": {
|
||||
"duration": "4.000000"
|
||||
}
|
||||
},
|
||||
"notes": "Gryllotalpa gryllotalpa; family analogue, not an assertion of the Wild World biological species"
|
||||
},
|
||||
{
|
||||
"species": "fly",
|
||||
"file": "fly_flight.ogg",
|
||||
"title": "Fly_Buzzing_Edited.wav",
|
||||
"author": "AmberdeMeillon",
|
||||
"source": "https://freesound.org/people/AmberdeMeillon/sounds/443059/",
|
||||
"download": "https://cdn.freesound.org/previews/443/443059_8282799-hq.mp3",
|
||||
"license": "CC0 1.0",
|
||||
"license_url": "https://creativecommons.org/publicdomain/zero/1.0/",
|
||||
"input_sha256": "3246954a2e9131d8b471af4a383603f2aba81e28d3288a06203bdac97a040da7",
|
||||
"sha256": "ab5cb6240b7b3a369700db052c6c7c0b10df8bbedd8435328fda374f2e6f130e",
|
||||
"start_seconds": 0.25,
|
||||
"duration_seconds": 3.2,
|
||||
"filters": "highpass=f=100,lowpass=f=3000,afftdn=nr=8:nf=-35,loudnorm=I=-24:TP=-9:LRA=5,afade=t=in:st=0:d=0.06,afade=t=out:st=3.14:d=0.06",
|
||||
"format": {
|
||||
"programs": [],
|
||||
"stream_groups": [],
|
||||
"streams": [
|
||||
{
|
||||
"codec_name": "vorbis",
|
||||
"sample_rate": "32000",
|
||||
"channels": 1
|
||||
}
|
||||
],
|
||||
"format": {
|
||||
"duration": "3.200000"
|
||||
}
|
||||
},
|
||||
"notes": "House fly buzzing against a window; public HQ preview"
|
||||
},
|
||||
{
|
||||
"species": "mosquito",
|
||||
"file": "mosquito_flight.ogg",
|
||||
"title": "Mosquito 1 Edit.wav",
|
||||
"author": "IanFSA",
|
||||
"source": "https://freesound.org/people/IanFSA/sounds/662970/",
|
||||
"download": "https://cdn.freesound.org/previews/662/662970_4287394-hq.mp3",
|
||||
"license": "CC0 1.0",
|
||||
"license_url": "https://creativecommons.org/publicdomain/zero/1.0/",
|
||||
"input_sha256": "b664a9abef3ee7192ba3c0342ebc42ef3fb0fd133a5054a2b689c590fd54d571",
|
||||
"sha256": "090cfa519491b3fcc00f6aafda1af5bc088103d89a47c672150e8b7d5f6f5f87",
|
||||
"start_seconds": 3,
|
||||
"duration_seconds": 4,
|
||||
"filters": "highpass=f=200,lowpass=f=5000,afftdn=nr=8:nf=-35,loudnorm=I=-24:TP=-9:LRA=5,afade=t=in:st=0:d=0.06,afade=t=out:st=3.94:d=0.06",
|
||||
"format": {
|
||||
"programs": [],
|
||||
"stream_groups": [],
|
||||
"streams": [
|
||||
{
|
||||
"codec_name": "vorbis",
|
||||
"sample_rate": "32000",
|
||||
"channels": 1
|
||||
}
|
||||
],
|
||||
"format": {
|
||||
"duration": "4.000000"
|
||||
}
|
||||
},
|
||||
"notes": "Mosquitos in a bathroom; public HQ preview"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
# Insect audio — Sanctuary beta.248
|
||||
|
||||
These nine audio assets retain their individual licenses, separate from the GPL code.
|
||||
Adaptation by Sanctuary: excerpt, filtering, noise reduction, gain, mono OGG re-encoding and fades.
|
||||
No endorsement by the recording authors is implied.
|
||||
The adapted evening cicada recording is distributed under CC BY-SA 3.0.
|
||||
|
||||
| Asset | Recording / source | Author | License | Excerpt (seconds) |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| `cicada_brown.ogg` | [Aburazemi 07z7315.ogg](https://commons.wikimedia.org/wiki/File:Aburazemi_07z7315.ogg) | ISAKA Yoji (Cory) | [CC BY 2.1 Japan](https://creativecommons.org/licenses/by/2.1/jp/) | 25–29 |
|
||||
| `cicada_robust.ogg` | [Hyalessa maculaticollis v01.ogg](https://commons.wikimedia.org/wiki/File:Hyalessa_maculaticollis_v01.ogg) | Σ64 | [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/) | 12–17.5 |
|
||||
| `cicada_walker.ogg` | [Meimuna opalifera v02.ogg](https://commons.wikimedia.org/wiki/File:Meimuna_opalifera_v02.ogg) | Σ64 | [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/) | 9–15 |
|
||||
| `cicada_evening.ogg` | [Higurashi 20180728 1902.ogg](https://commons.wikimedia.org/wiki/File:Higurashi_20180728_1902.ogg) | あおもりくま (aomorikuma) | [CC BY-SA 3.0](https://creativecommons.org/licenses/by-sa/3.0/) | 3.2–9.2 |
|
||||
| `cricket.ogg` | [Single cricket up close](https://freesound.org/people/ClaudeDebussy/sounds/428679/) | ClaudeDebussy | [CC0 1.0](https://creativecommons.org/publicdomain/zero/1.0/) | 1.4–4.4 |
|
||||
| `bell_cricket.ogg` | [Suzumushi 06z3310.ogg](https://commons.wikimedia.org/wiki/File:Suzumushi_06z3310.ogg) | ISAKA Yoji (Cory) | [CC BY 2.1 Japan](https://creativecommons.org/licenses/by/2.1/jp/) | 2–6 |
|
||||
| `mole_cricket.ogg` | [Gryllotalpidae 06-15.ogg](https://commons.wikimedia.org/wiki/File:Gryllotalpidae_06-15.ogg) | YaCoUYaCoU | [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) | 2–6 |
|
||||
| `fly_flight.ogg` | [Fly_Buzzing_Edited.wav](https://freesound.org/people/AmberdeMeillon/sounds/443059/) | AmberdeMeillon | [CC0 1.0](https://creativecommons.org/publicdomain/zero/1.0/) | 0.25–3.45 |
|
||||
| `mosquito_flight.ogg` | [Mosquito 1 Edit.wav](https://freesound.org/people/IanFSA/sounds/662970/) | IanFSA | [CC0 1.0](https://creativecommons.org/publicdomain/zero/1.0/) | 3–7 |
|
||||
|
||||
Public HQ previews were used for the three Freesound recordings. The evening cicada uses the Commons public MP3 transcode.
|
||||
Original quality varies: the mole cricket source is 8 kHz; bell cricket retains some field insect background. The walker cicada source is 44.1 kHz.
|
||||
The cricket and European mole cricket are sound design analogues; no precise Wild World biological identification is claimed.
|
||||
Exact source URLs, input/output SHA-256 and transformations: `Insect-Audio-ASSETS.json`.
|
||||
@@ -0,0 +1,112 @@
|
||||
# INSECT-03 — Retours de la visite, beta.247
|
||||
|
||||
Demande du créateur le 8 octobre 2026, après inspection de beta.246.
|
||||
Branche `codex/insect-behaviour-beta247`.
|
||||
|
||||
## Résultat à vérifier
|
||||
|
||||
- Escargot posé sur sa fleur, sans espace visible sous ses pieds.
|
||||
- Clic droit au filet : espèce visible la plus proche à trois blocs, sans
|
||||
accroupissement obligatoire ni visée au pixel. Les obstacles et la fuite
|
||||
empêchent toujours la capture ; récompense unique côté serveur.
|
||||
- Observation immobile sans fuite. Marche vers l’insecte : alerte à deux
|
||||
blocs ; sprint : cinq blocs ; approche accroupie : 0,65 bloc.
|
||||
- Criquets long et migrateur et sauterelle : sauts plus hauts.
|
||||
- Grillon, grillon des prés, courtilière et cloporte : sprites au sol,
|
||||
sans sautillement. Fourmi conservée à plat.
|
||||
- Libellules : deux ailes synchronisées, rapides, corps central de deux
|
||||
colonnes visible de côté, orientation selon le vol et trajets progressifs
|
||||
entre points. PNG d’origine conservés.
|
||||
- Puce liée au villageois, sans fuite même si le joueur s’approche.
|
||||
- Bousier accompagné d’une boule de neige qui roule devant lui.
|
||||
- Papillons, mouche, moustique et espèces sur troncs conservés.
|
||||
|
||||
Sons reportés : préparer uniquement les fichiers à fournir et leurs usages.
|
||||
Conserver le filet 16 × 16, les saisons, habitats et captures silencieuses.
|
||||
Créer une nouvelle visite de développement ; aucun monde personnel modifié.
|
||||
|
||||
## Carte et détails
|
||||
|
||||
Nouvelle carte plate de développement `review-04`, graine **246**, disposition
|
||||
**v2** : le bousier dispose d’un carré de neige de 3 × 3 blocs, et le support
|
||||
de l’escargot utilise la hauteur native de la fleur. Le marqueur `ready-v2`
|
||||
refuse les visites v1 ; choisir une session neuve conserve les anciennes
|
||||
cartes. La génération Sanctuary et les sauvegardes personnelles ne changent pas.
|
||||
|
||||
Le filet conserve une portée de trois blocs depuis le joueur, choisit le plus
|
||||
proche dans la moitié avant et vérifie séparément la visibilité de chaque
|
||||
candidat. Les joueurs spectateurs, les espèces déjà enfuies et les cibles
|
||||
cachées par des blocs restent exclus. La détection de peur mesure les positions
|
||||
serveur successives : aucun mouvement horizontal vers l’insecte, aucune alerte.
|
||||
Les papillons, la mouche et le moustique gardent leurs modèles et déplacements.
|
||||
|
||||
Les trois libellules gardent les colonnes UV 7 et 8 pour le corps, dont deux
|
||||
faces verticales de 2 pixels de haut sur 16 de long et une face supérieure.
|
||||
Les deux quads d’ailes utilisent les colonnes 0–6 et 9–15, battent ensemble
|
||||
et suivent la direction du vol. Le serveur choisit des points dans un rayon
|
||||
horizontal de 1,8 bloc autour du support, avec ±0,3 bloc de hauteur, puis
|
||||
accélère et ralentit pendant chaque trajet. La géante est la plus rapide.
|
||||
Les chemins refusent les obstacles et les chunks non chargés.
|
||||
La boule du bousier est une géométrie arrondie texturée avec la neige native,
|
||||
sans nouveau bloc ni projectile ; sa rotation suit le déplacement serveur.
|
||||
|
||||
La [liste des sons](insect-sounds-plan.md) couvre les 47 parcelles. Neuf sons
|
||||
prioritaires, deux facultatifs ; aucune lecture audio ajoutée à cette livraison.
|
||||
|
||||
## Vérifications
|
||||
|
||||
Les **13 GameTests requis passent** : les huit scénarios précédents, quatre
|
||||
scénarios de retours et l’environnement requis. Capture debout et hors axe,
|
||||
plus proche au sol, obstacles et fuite, observation immobile, approche accroupie,
|
||||
puce attachée, cinq espèces à plat, contact de l’escargot, saut plus haut,
|
||||
accélération de la libellule et rotation de neige synchronisée.
|
||||
Les étapes manuelles des tests avancent le compteur comme `ServerLevel` avant
|
||||
`Entity.tick` ; les premiers essais sans cette avance sont conservés dans
|
||||
le journal initial, mais ne représentent pas le déroulement normal du jeu.
|
||||
|
||||
```sh
|
||||
./gradlew check build assemblePack assembleTestPack \
|
||||
-PsanctuaryFocusedTests=insects245 -PsanctuaryAtlasOnly=true
|
||||
./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true \
|
||||
-PsanctuaryInsects245ClientTests=true -PsanctuaryClientGraphicsBackend=vulkan
|
||||
```
|
||||
|
||||
Contrôle **Vulkan** réussi : cinq chemins de rendu, 47 sprites d’inventaire
|
||||
FR/EN, clic droit natif **debout**, une capture et une usure, découvertes
|
||||
silencieuses. La scène de contrôle maintient seulement ses spécimens
|
||||
transitoires en inspection, car elle présente été et hiver ensemble.
|
||||
La présence du bousier et sa rotation synchronisée sont contrôlées au moment
|
||||
de l’image ; vision nocturne utilisée pour inspecter les formes.
|
||||
Aucune texture d’insecte manquante signalée.
|
||||
|
||||
Images : [libellule](../build/insects247/screenshots/0001_insects247-dragonfly.png),
|
||||
[bousier et boule](../build/insects247/screenshots/0002_insects247-snowball.png),
|
||||
[surfaces et escargot](../build/insects247/screenshots/0000_insects247-day-surfaces.png).
|
||||
Les 47 PNG d’origine et le filet 16 × 16 sont inchangés.
|
||||
|
||||
La visite **`review-04` est ouverte** en beta.247, Vulkan : 47 espèces
|
||||
et supports validés côté serveur ; client connecté, formulaire fermé,
|
||||
joueur à la première parcelle (7, 81, 2), 47 sprites et filet 16 × 16 vérifiés.
|
||||
Le serveur de la visite précédente a été arrêté après fermeture de son client.
|
||||
|
||||
```sh
|
||||
./gradlew :sanctuary-test:exportDuoLaunch
|
||||
python3 scripts/insect_lab.py start --run review-04
|
||||
```
|
||||
|
||||
Pour une autre visite, choisir un nom neuf. Les commandes `/insectes 1` à
|
||||
`47`, `suivant`, `precedent`, `observer`, `jouer` et `reset` sont conservées.
|
||||
**Clic droit debout** à portée suffit ; s’accroupir permet d’approcher davantage.
|
||||
Les modèles restent soumis au retour visuel du créateur.
|
||||
|
||||
`check build assemblePack assembleTestPack` réussit sur les sources finales,
|
||||
avec **13 GameTests requis** ; le contrôle Vulkan final réussit aussi.
|
||||
Intégrité ZIP, versions et JAR embarqués des deux MRpack vérifiés.
|
||||
219 fichiers déjà modifiés ou ajoutés avant ce ticket restent identiques ;
|
||||
15 autres sont prolongés pour ces corrections. Les calendriers, horaires,
|
||||
pics, habitats, tailles et identifiants sont comparés à beta.246 et inchangés.
|
||||
|
||||
Livraisons locales : [pack normal](../build/Sanctuary-beta.247.mrpack),
|
||||
[pack Test](../build/Sanctuary-Test-beta.247.mrpack),
|
||||
[reçu et empreintes](../build/insects247/validation.json).
|
||||
Aucune publication ni mise à jour Prism.
|
||||
@@ -0,0 +1,115 @@
|
||||
# INSECT-04 — Libellules en croix, sons et galerie au soleil, beta.248
|
||||
|
||||
Demande du créateur le 8 octobre 2026, après validation visuelle de beta.247.
|
||||
Branche `codex/dragonfly-cross-beta248`. Recherche d’enregistrements libres
|
||||
explicitement autorisée ; conditions de test demandées : jour et ciel dégagé.
|
||||
|
||||
## Résultat
|
||||
|
||||
Les deux plans verticaux du corps des libellules deviennent un seul plan
|
||||
centré en X=0. Il croise le plan supérieur et conserve les colonnes 7 et 8
|
||||
du sprite. Le matériau natif `entityCutout`, sans suppression des faces
|
||||
arrière, montre ce plan des deux côtés. Les deux ailes et le vol progressif
|
||||
entre points restent identiques.
|
||||
|
||||
La galerie conserve midi, horloge native 6000 suspendue, pluie et orage à zéro.
|
||||
Le module Test désactive l’horloge réelle et la météo dans ce seul serveur
|
||||
de développement, puis réapplique ces conditions chaque seconde pour couvrir
|
||||
l’ordre des callbacks de démarrage. La vision nocturne artificielle est retirée.
|
||||
Seuls les spécimens explicitement marqués pour inspection dans un monde plat
|
||||
de développement peuvent ignorer la pluie ; fleur/feuilles, espace libre et
|
||||
chunks déjà chargés restent obligatoires. L’escargot naturel exige toujours
|
||||
la pluie. Calendrier, habitats ordinaires, monde Sanctuary et sauvegardes
|
||||
personnelles ne sont pas modifiés.
|
||||
|
||||
## Audio
|
||||
|
||||
Neuf sons positionnels mono OGG Vorbis à 32 kHz : quatre cigales, grillon,
|
||||
grillon des prés, courtilière, mouche et moustique. Les autres espèces restent
|
||||
silencieuses selon le [plan audio](insect-sounds-plan.md). Les chants ont des
|
||||
pauses de quelques secondes entre les extraits ; les insectes volants utilisent
|
||||
un bourdonnement bouclé avec des fondus courts. Le son suit l’entité visible,
|
||||
s’arrête dès sa fuite/capture/disparition, et respecte le réglage Minecraft
|
||||
« créatures amicales ». Portée : 12 blocs pour les cigales, 10 pour les
|
||||
grillons/courtilière, 6 pour la mouche, 4 pour le moustique. Six voix proches
|
||||
au maximum par client ; phases décalées et volume discret. Pas de notification
|
||||
ni de son de découverte. Les sous-titres natifs facultatifs sont traduits FR/EN.
|
||||
|
||||
[Sources, auteurs, licences et découpes](insect-audio-credits.md) et
|
||||
[empreintes des originaux/extraits](insect-audio-assets.json) sont inclus
|
||||
également dans le JAR. Les ressources audio gardent leurs licences distinctes
|
||||
du code. L’extrait de cigale du soir reste distribué sous CC BY-SA 3.0.
|
||||
Les originaux et aperçus téléchargés sont conservés dans le dossier ignoré
|
||||
`build/insects248/audio-source`, aucun binaire de dépendance ajouté au dépôt.
|
||||
|
||||
Les prises sont naturelles : la courtilière provient
|
||||
d’une source 8 kHz ; l’extrait de grillon des prés contient encore un peu de fond
|
||||
d’autres insectes malgré le filtrage. Le grillon n’est pas identifié à une
|
||||
espèce biologique précise ; la courtilière européenne est un analogue sonore.
|
||||
Après le retour d’écoute signalant un bruit de caméra sur la Walker cicada,
|
||||
la prise de Koba-chan est remplacée par `Meimuna opalifera v02.ogg` de Σ64,
|
||||
enregistrée à Kawasaki en 2011 sous CC BY 3.0. L’original est à 44,1 kHz ;
|
||||
la découpe 9–15 s évite le début de la prise et filtre les basses sous 1,2 kHz.
|
||||
Le réglage final du timbre et du volume attend le retour d’écoute du créateur.
|
||||
Les sons du filet et de capture restent à faire si demandés.
|
||||
|
||||
## Vérification
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack` a réussi avec
|
||||
`-PsanctuaryFocusedTests=insects245 -PsanctuaryAtlasOnly=true` : les treize
|
||||
GameTests requis passent. Le contrôle client `runClientGameTest`, backend
|
||||
Vulkan exclusivement, réussit : 47 textures et traductions FR/EN, cinq modèles,
|
||||
corps de libellule en croix rendu, capture native debout, usure unique du filet,
|
||||
absence de notifications d’insectes, midi et ciel clair sans vision nocturne,
|
||||
escargot d’inspection au sec, neuf fichiers décodés par le lecteur OGG natif,
|
||||
bourdonnement positionnel du moustique et arrêt après fuite.
|
||||
|
||||
Le premier essai a révélé que `SavedData.setDirty()` ne synchronise pas à lui
|
||||
seul un changement d’horloge avec un client déjà connecté. Le réglage utilise
|
||||
maintenant le setter natif `ServerClockManager.setTotalTicks`, qui diffuse le
|
||||
paquet d’horloge. Un second démarrage de la suite s’est bloqué dans les barrières
|
||||
du framework Fabric avant les tests ; seul ce client de test a été arrêté.
|
||||
L’essai final réussit après correction, sans contourner l’assertion de lumière.
|
||||
|
||||
Le contrôle natif des neuf sons précède le changement de prise de la Walker.
|
||||
Après remplacement, les neuf OGG passent de nouveau le décodage FFmpeg ;
|
||||
le nouvel extrait garde le format mono Vorbis 32 kHz utilisé par le lecteur
|
||||
natif. L’écoute du nouveau timbre se fait dans la visite rouverte.
|
||||
|
||||
Logs : `build/insects248/check-build-pack-audio-revision.log` et
|
||||
`build/insects248/client-vulkan-final.log`. Les cinq captures sont copiées dans
|
||||
`build/insects248/screenshots/`. La reconstruction finale intègre le remplacement de la Walker cicada.
|
||||
|
||||
La visite `review-05` a été ouverte en beta.248 : serveur
|
||||
`127.0.0.1:51651`, seed 246, disposition v2, carte plate dédiée conservée dans
|
||||
`build/insects-246/review-05`. Le journal serveur atteste les 47 espèces avec
|
||||
`time=6000 rain=0.0 daylight=true` ; le journal client atteste
|
||||
`time=6000 weather=clear daylight=pass`, les 47 sprites et le filet 16 × 16.
|
||||
Les anciens dossiers de visite sont préservés ; Prism et les mondes personnels
|
||||
ne sont pas utilisés. Navigation : `/insectes 15` à `18` pour les cigales,
|
||||
`26`, `27`, `29` pour les grillons/courtilière, `45` et `46` pour moustique/mouche.
|
||||
|
||||
Le client `review-05` a planté pendant un build car son classpath lisait le
|
||||
JAR de sortie Gradle en cours de remplacement (`invalid LOC header`).
|
||||
Le lanceur copie désormais les JAR, classes, ressources et configuration
|
||||
de lancement du dépôt dans `runtime/<client|server>` propre à la visite.
|
||||
Les dépendances Gradle déjà stockées sous leur hash restent partagées.
|
||||
Une session réutilise sa copie de lancement ; les builds suivants ne
|
||||
remplacent plus les fichiers lus par cette session. Le contrôle de régression
|
||||
remplace le fichier source puis vérifie que JAR/configuration copiés et
|
||||
arguments de relance gardent leur contenu initial.
|
||||
|
||||
La visite `review-06` est rouverte en Vulkan avec la nouvelle prise :
|
||||
serveur `127.0.0.1:51826`, client PID 29306, serveur PID 29266. Les deux
|
||||
classpath du dépôt sont figés dans son dossier `runtime` ; leurs JAR
|
||||
correspondent aux empreintes finales. Les 47 espèces, midi, météo claire
|
||||
et sprites 16 × 16 passent dans les journaux de cette nouvelle visite.
|
||||
|
||||
Packs locaux : [Sanctuary beta.248](../build/Sanctuary-beta.248.mrpack) et
|
||||
[Sanctuary Test beta.248](../build/Sanctuary-Test-beta.248.mrpack).
|
||||
Archives ZIP, versions, JAR embarqués, neuf fichiers audio et crédits
|
||||
vérifiés ; les 47 PNG originaux et le filet 16 × 16 sont préservés.
|
||||
[Reçu final et empreintes](../build/insects248/validation.json).
|
||||
218 des 236 fichiers préexistants sont identiques ; les 18 autres sont
|
||||
étendus dans le périmètre de ce ticket. Aucun fichier préexistant retiré.
|
||||
Aucune publication ni mise à jour du canal packwiz stable.
|
||||
@@ -0,0 +1,77 @@
|
||||
# INSECT-07 — Habitats naturels et protection des maisons, beta.251
|
||||
|
||||
Retour du créateur le 8 octobre 2026 : trop de sauterelles/criquets et
|
||||
de libellules apparaissent sur les gisements de pierre de Sanctuary Island.
|
||||
Préserver leur présence dans les prairies, sans envahir les maisons.
|
||||
Branche `codex/insect-habitats-beta251`, base beta.250.
|
||||
|
||||
Contrat de cette passe :
|
||||
|
||||
- Les trois espèces sauteuses apparaissent sur une ouverture herbeuse,
|
||||
sans canopée dense : prairies ou clairières, indépendamment du nom du biome.
|
||||
Ni pierre, ni sable, ni sol construit. Mois, horaires et pics conservés.
|
||||
- Maximum deux insectes sauteurs, espèces confondues, à 32 blocs du nouveau
|
||||
point ; même plafond pour les libellules. Les poids des trois sauteurs sont
|
||||
divisés par deux sans supprimer une saison ni un pic.
|
||||
- Les libellules apparaissent sur l’herbe ouverte ou sur une berge de terre/
|
||||
sable près d’une eau douce ; aucune apparition sur la roche nue.
|
||||
- Le cloporte peut apparaître naturellement sur ou près des pierres, avec
|
||||
un plafond de deux à proximité ; frapper un rocher peut toujours le révéler.
|
||||
- Toute apparition naturelle est refusée sous un toit solide, même transparent.
|
||||
Les feuilles sont autorisées pour les insectes forestiers ; les trajectoires
|
||||
libres s’arrêtent à la limite d’un toit. Les spécimens du laboratoire
|
||||
gardent leur mode d’inspection explicite.
|
||||
|
||||
L’ouverture herbeuse demande un support d’herbe ou de mousse à ciel ouvert,
|
||||
avec au moins cinq colonnes herbeuses parmi les neuf échantillonnées dans
|
||||
un carré de 5 × 5 blocs, à deux blocs de différence de hauteur au maximum.
|
||||
La hauteur du terrain est lue directement : les feuilles comptent comme une
|
||||
canopée pour les sauteurs et les libellules, indépendamment du délai de mise
|
||||
à jour de l’éclairage. Les berges de libellules cherchent une source d’eau
|
||||
douce dans un rayon de six blocs et à trois blocs de hauteur au maximum.
|
||||
|
||||
Le contrôle des toits examine les collisions et les fluides dans la colonne
|
||||
chargée au-dessus du point réel de l’insecte, y compris pour une puce sur son
|
||||
villageois. Il bloque notamment bois, pierre, verre et dalles ; les feuilles
|
||||
sont ignorées pour conserver les habitats naturels sous les arbres. Un abri
|
||||
construit uniquement en feuilles conserve donc cette exception. Le support
|
||||
et la position sont revérifiés tous les 20 ticks : un toit ajouté ensuite,
|
||||
ou un villageois qui rentre avec une puce, fait retirer le spécimen naturel.
|
||||
|
||||
Le code utilise uniquement les chunks déjà chargés. Aucun bloc, biome,
|
||||
générateur ou format de sauvegarde n’est modifié. Pas de déploiement personnel.
|
||||
Vérifications réussies le 8 octobre 2026 sur Minecraft 26.3,
|
||||
Fabric Loader 0.19.5, Fabric API 0.160.5+26.3 et Java 25 :
|
||||
|
||||
- `./gradlew check build assemblePack assembleTestPack :sanctuary-test:exportDuoLaunch
|
||||
-PsanctuaryFocusedTests=insects245 -PsanctuaryAtlasOnly=true` réussit :
|
||||
21 GameTests requis, compilation et contrôles de ressources passent.
|
||||
Les nouveaux cas vérifient les supports herbe/pierre/sable/sol construit,
|
||||
les berges d’eau douce, les canopées, les toits bois/verre/dalles, le vol
|
||||
devant une entrée sans porte, les plafonds mixtes de population, la place
|
||||
libérée après retrait et le cloporte dans la sélection ambiante. Aucun
|
||||
chargement du chunk témoin éloigné n’est provoqué.
|
||||
- La structure de test `sanctuary-gametest:insect_outdoors_251` mesure
|
||||
24 × 12 × 24, avec `skyAccess=true` : les scènes sont réellement dehors,
|
||||
au lieu du plafond invisible en barrières des anciennes structures.
|
||||
Ce fichier NBT est une ressource du mod de tests, sans effet sur la génération.
|
||||
- Client natif exclusivement Vulkan : apparition naturelle dans l’herbe,
|
||||
refus d’une nouvelle apparition sous un toit de verre et retrait du
|
||||
spécimen après pose du toit, reçus par les paquets réels. Déplacement et
|
||||
fuite des sauteurs, capture debout silencieuse, 47 sprites FR/EN, neuf sons,
|
||||
midi fixe et ciel dégagé passent également. Marqueur
|
||||
`INSECTS251_CLIENT_PASS` dans `build/insects251/client-vulkan.log` ;
|
||||
captures dans `build/insects251/screenshots/`.
|
||||
- Les 47 textures et neuf sons sont identiques à beta.250. Tous les champs
|
||||
du catalogue sont conservés, hormis les trois poids passés de 6 à 3 :
|
||||
mois, heures et pics d’apparition restent inchangés.
|
||||
- Exports [Sanctuary beta.251](../build/Sanctuary-beta.251.mrpack) et
|
||||
[Sanctuary Test beta.251](../build/Sanctuary-Test-beta.251.mrpack) vérifiés :
|
||||
intégrité ZIP, version, dépendances exactes et JAR embarqués identiques
|
||||
aux JAR construits. [Reçu local](../build/insects251/validation.json).
|
||||
|
||||
La répartition visuelle sur une île complète reste à apprécier en jeu par
|
||||
le créateur ; les essais vérifient les règles et les comportements dans
|
||||
des scènes natives ciblées. L’ancienne visite beta.250 ne reçoit pas ces
|
||||
changements automatiquement. Pas de publication du canal packwiz ni de
|
||||
mise à jour de l’instance Prism personnelle.
|
||||
@@ -0,0 +1,157 @@
|
||||
# INSECT-02 — Carte d’inspection, beta.246
|
||||
|
||||
Demande du créateur du 8 octobre 2026 : ouvrir une instance jouable pour
|
||||
observer les 47 insectes et faire des retours directs. Branche
|
||||
`codex/insect-inspection-beta246`. Suit [INSECT-01](insects-wild-world-beta245.md).
|
||||
|
||||
## Carte jouable
|
||||
|
||||
Le module facultatif `sanctuary-test` prépare un monde plat neuf, graine 246,
|
||||
dans `build/insects-246/<session>/server/insects-flat-246`. Il refuse tout autre
|
||||
dossier ou générateur. Une plateforme éclairée en Y=80 comporte 47 parcelles
|
||||
sur six colonnes, espacées de 14 blocs. Chaque insecte vivant est accompagné
|
||||
de son numéro, son nom FR/EN, son identifiant et son habitat.
|
||||
|
||||
Fleurs adaptées, troncs de chêne ou jungle, bassin d’eau douce, neige,
|
||||
lumière, nourriture déposée et villageois sont présents. La puce suit son
|
||||
villageois dans un petit enclos. La pluie reste active pour l’escargot ;
|
||||
l’éclairage est figé à midi avec vision nocturne pour regarder les sprites.
|
||||
|
||||
Le joueur entre en Aventure, filet fourni, avec les interactions normales.
|
||||
Les saisons et l’expiration ambiante sont suspendues uniquement pour ces
|
||||
47 entités transitoires ; supports, déplacements, approche, fuite et filet
|
||||
utilisent le code de jeu. Un spécimen capturé ou enfui revient cinq secondes
|
||||
après sa disparition. Deux coffres à l’entrée contiennent les 47 items pour
|
||||
inspecter leurs icônes. Le laboratoire entretient uniquement ses spécimens,
|
||||
sans apparitions aléatoires concurrentes. Les chunks de cette scène restent
|
||||
chargés uniquement dans ce monde de développement.
|
||||
|
||||
| Action | Commande ou geste |
|
||||
| --- | --- |
|
||||
| Choisir une espèce | `/insectes 1` à `/insectes 47` |
|
||||
| Suivante / précédente | `/insectes suivant` / `/insectes precedent` |
|
||||
| Regarder sans effrayer | `/insectes observer` (spectateur) |
|
||||
| Revenir au filet et à la fuite | `/insectes jouer` |
|
||||
| Revenir à la première parcelle | `/insectes retour` |
|
||||
| Réinitialiser les spécimens | `/insectes reset` |
|
||||
| Capturer | S’accroupir, viser, clic droit |
|
||||
|
||||
`/insects` est un alias. En spectateur le moustique ne choisit pas le joueur
|
||||
comme cible d’orbite ; revenir avec `jouer` pour observer son orbite autour
|
||||
de soi. Aucun message de capture ou découverte n’est ajouté. Les numéros
|
||||
suivent l’ordre du catalogue beta.245.
|
||||
|
||||
Le lancement crée un client de développement distinct, en Vulkan et FR,
|
||||
et un serveur lié seulement à `127.0.0.1`, sur un port libre. Aucune instance
|
||||
Prism, sauvegarde personnelle, canal public ou génération Sanctuary n’est
|
||||
modifié. Les dossiers de scène et binaires sont ignorés par Git.
|
||||
|
||||
```sh
|
||||
./gradlew :sanctuary-test:exportDuoLaunch
|
||||
python3 scripts/insect_lab.py start --run review-03
|
||||
```
|
||||
|
||||
Le nom de session doit être neuf ; `review-03` est la session ouverte pour
|
||||
le créateur. Pour une autre carte neuve, utiliser par exemple `review-04`.
|
||||
Pour rouvrir `review-03` après arrêt de ses processus :
|
||||
|
||||
```sh
|
||||
python3 scripts/insect_lab.py server --run review-03
|
||||
python3 scripts/insect_lab.py client --run review-03
|
||||
```
|
||||
|
||||
PID et journaux sont enregistrés dans le dossier de session. Fermer le
|
||||
client quitte la visite ; le serveur de développement reste disponible et
|
||||
peut être arrêté proprement avec SIGTERM sur son PID.
|
||||
|
||||
## Textures capturées et filet
|
||||
|
||||
Les sprites sous `textures/insect/` étaient disponibles pour le rendu des
|
||||
entités mais absents de l’atlas des modèles d’items. L’atlas Minecraft
|
||||
`blocks` inclut désormais ce dossier. Les identifiants des spécimens et les
|
||||
47 PNG fournis sont conservés. Le contrôle Vulkan vérifie le sprite du
|
||||
modèle assemblé de chaque item, en plus de la présence du fichier PNG.
|
||||
|
||||
Le filet utilise une texture 2D **16 × 16**, avec le parent natif
|
||||
`minecraft:item/handheld`, comme les outils Minecraft. Source transparente :
|
||||
`mods/sanctuary/src/main/resources/assets/sanctuary/textures/item/insect_net.png`.
|
||||
Création avec l’outil intégré de la compétence
|
||||
[imagegen](/Users/koka/.codex/skills/.system/imagegen/SKILL.md), puis export
|
||||
16 × 16 avec `sips`. Aucune texture d’insecte retouchée.
|
||||
Prompt exact : [insect-net-beta246-prompt.txt](insect-net-beta246-prompt.txt).
|
||||
|
||||
## Vérifications
|
||||
|
||||
Le client de contrôle Vulkan réussit : 47 modèles d’items avec leur sprite
|
||||
attendu, quatre modes de rendu des entités, capture unique avec usure,
|
||||
découvertes silencieuses. Son journal ne contient plus de
|
||||
`Missing textures in model sanctuary:item/insect_*`.
|
||||
La carte émet `INSECTS246_LAB_POPULATION_PASS unique-species=47` après
|
||||
validation des supports et création des spécimens. Le client de visite
|
||||
contrôle aussi les 47 sprites d’inventaire et celui du filet, tous 16 × 16,
|
||||
avant d’émettre `INSECTS246_CLIENT_OPEN`.
|
||||
|
||||
`check build assemblePack assembleTestPack` réussit sur les sources finales,
|
||||
avec neuf GameTests requis. Client Vulkan de contrôle réussi et visite
|
||||
`review-03` ouverte : connexion du joueur, formulaire fermé, position à la
|
||||
première parcelle, 47 sprites d’items et filet 16 × 16 validés. Les 47 PNG
|
||||
fournis gardent leurs empreintes ; 216 fichiers modifiés ou ajoutés avant ce
|
||||
ticket restent identiques. Intégrité ZIP, versions et JAR embarqués vérifiés.
|
||||
|
||||
Livraisons locales : [pack normal](../build/Sanctuary-beta.246.mrpack) et
|
||||
[pack Test](../build/Sanctuary-Test-beta.246.mrpack).
|
||||
[Reçu et empreintes](../build/insects246/validation.json). Aucune publication
|
||||
ni mise à jour Prism. Les comportements et l’équilibrage visuel restent à
|
||||
juger avec les retours du créateur sur cette carte.
|
||||
|
||||
## Parcelles
|
||||
|
||||
| Numéro | Espèce | Identifiant |
|
||||
| --- | --- | --- |
|
||||
| 01 | Piéride du chou | `common_butterfly` |
|
||||
| 02 | Citron | `yellow_butterfly` |
|
||||
| 03 | Machaon | `tiger_butterfly` |
|
||||
| 04 | Papillon paon | `peacock` |
|
||||
| 05 | Monarque | `monarch` |
|
||||
| 06 | Morpho bleu | `emperor` |
|
||||
| 07 | Agrias | `agrias_butterfly` |
|
||||
| 08 | Ornithoptère | `birdwing` |
|
||||
| 09 | Papillon de nuit | `moth` |
|
||||
| 10 | Grand paon de nuit | `oak_silk_moth` |
|
||||
| 11 | Criquet long | `long_locust` |
|
||||
| 12 | Criquet migrateur | `migratory_locust` |
|
||||
| 13 | Mante religieuse | `mantis` |
|
||||
| 14 | Mante orchidée | `orchid_mantis` |
|
||||
| 15 | Cigale brune | `brown_cicada` |
|
||||
| 16 | Cigale robuste | `robust_cicada` |
|
||||
| 17 | Cigale cicadelle | `walker_cicada` |
|
||||
| 18 | Cigale du soir | `evening_cicada` |
|
||||
| 19 | Fulgore | `lantern_fly` |
|
||||
| 20 | Libellule rouge | `red_dragonfly` |
|
||||
| 21 | Libellule verte | `darner_dragonfly` |
|
||||
| 22 | Libellule géante | `banded_dragonfly` |
|
||||
| 23 | Fourmi | `ant` |
|
||||
| 24 | Gerris | `pondskater` |
|
||||
| 25 | Escargot | `snail` |
|
||||
| 26 | Grillon | `cricket` |
|
||||
| 27 | Grillon des prés | `bell_cricket` |
|
||||
| 28 | Sauterelle | `grasshopper` |
|
||||
| 29 | Courtilière | `mole_cricket` |
|
||||
| 30 | Phasme | `walkingstick` |
|
||||
| 31 | Coccinelle | `ladybug` |
|
||||
| 32 | Cétoine | `fruit_beetle` |
|
||||
| 33 | Scarabée | `scarab_beetle` |
|
||||
| 34 | Bousier | `dung_beetle` |
|
||||
| 35 | Scarabée Goliath | `goliath_beetle` |
|
||||
| 36 | Capricorne | `longhorn_beetle` |
|
||||
| 37 | Lucane scie | `saw_stag_beetle` |
|
||||
| 38 | Lucane | `stag_beetle` |
|
||||
| 39 | Lucane géant | `giant_beetle` |
|
||||
| 40 | Lucane arc-en-ciel | `rainbow_stag` |
|
||||
| 41 | Scarabée éléphant | `elephant_beetle` |
|
||||
| 42 | Scarabée Hercule | `hercules_beetle` |
|
||||
| 43 | Puce | `flea` |
|
||||
| 44 | Cloporte | `pill_bug` |
|
||||
| 45 | Moustique | `mosquito` |
|
||||
| 46 | Mouche | `fly` |
|
||||
| 47 | Cafard | `cockroach` |
|
||||
@@ -0,0 +1,5 @@
|
||||
Outil : image_gen intégré (compétence imagegen), fond transparent.
|
||||
Export final : PNG transparent 16 × 16 ; modèle minecraft:item/handheld.
|
||||
|
||||
Prompt exact :
|
||||
Use case: stylized-concept. Asset type: Minecraft inventory tool sprite, insect-catching net, transparent PNG. Create one flat 2D pixel-art bug net in the visual style and orientation of the vanilla Minecraft iron shovel item texture. A short brown wooden handle runs diagonally from bottom left to upper right; at its upper right end a light gray iron oval hoop and white string mesh, so it is clearly an insect-catching net rather than a shovel. EXACT tiny low resolution aesthetic: draw on a logical 16 by 16 pixel grid, every logical pixel a solid square color, upscale it evenly for the output. No more than 12 flat colors. Entire tool inside frame with one logical pixel margin. Dark brown outlines on handle, dark gray outlines on hoop, off-white sparse crisscross mesh with truly transparent open holes. Real transparent background outside tool and through holes. No backdrop, shadow, text, labels, lighting gradients, perspective, 3D model, anti-aliasing or checkerboard. This is the final game texture, not a mockup. Make the silhouette readable at 16px.
|
||||
@@ -0,0 +1,89 @@
|
||||
# Sons à préparer — Insectes Wild World
|
||||
|
||||
Demande du 8 octobre 2026. **Préparation seulement : aucun son ajouté en
|
||||
beta.247.** Ces choix visent une ambiance lisible à l’échelle de Sanctuary ;
|
||||
« silencieux » signifie sans son individuel dans le jeu, pas une affirmation
|
||||
que l’espèce ne produit aucune vibration dans la nature.
|
||||
|
||||
Les neuf sons prioritaires sont intégrés en [beta.248](insect-cross-sounds-beta248.md),
|
||||
avec [sources et licences](insect-audio-credits.md). Les deux sons facultatifs
|
||||
restent à préparer. Le tableau ci-dessous conserve la direction artistique initiale.
|
||||
|
||||
## Fichiers utiles
|
||||
|
||||
Priorité : quatre chants de cigales, trois chants de grillons/courtilière,
|
||||
une mouche en vol et un moustique en vol, soit **neuf sons**. Facultatifs :
|
||||
un son de sauterelle et un son partagé par les deux criquets, soit deux autres.
|
||||
Les descriptions sont des directions artistiques ; les noms Wild World
|
||||
ne suffisent pas à identifier une espèce biologique précise.
|
||||
|
||||
Fournir des prises propres, sans musique ni fond de forêt déjà mélangé,
|
||||
avec quelques variantes si disponibles. Un fichier mono OGG Vorbis convient
|
||||
pour chaque son positionnel ; conserver également l’original d’enregistrement.
|
||||
Pour les chants : quelques secondes avec des silences naturels. Pour les
|
||||
bourdonnements : un petit segment raccordable sans clic. Le rythme, le volume,
|
||||
l’atténuation et la programmation des déclenchements seront réglés après écoute.
|
||||
Pas de chant de libellule ni de papillon dans cette première passe.
|
||||
|
||||
Références d’écoute : [Sounds of Insects, Smithsonian Folkways](https://folkways.si.edu/sounds-of-insects/album/smithsonian)
|
||||
présente des grillons et des insectes en vol, dont moustiques et
|
||||
mouches. [AMNH — cigales](https://www.amnh.org/explore/news-blogs/periodical-cicadas-overview)
|
||||
décrit leurs chants. Ces références ne sont pas des fichiers livrés au jeu.
|
||||
|
||||
## Affectation des 47 espèces
|
||||
|
||||
| Parcelle | Espèce | Fichier à fournir | Intention |
|
||||
| --- | --- | --- | --- |
|
||||
| 01 | Piéride du chou | — | Silencieux |
|
||||
| 02 | Citron | — | Silencieux |
|
||||
| 03 | Machaon | — | Silencieux |
|
||||
| 04 | Papillon paon | — | Silencieux |
|
||||
| 05 | Monarque | — | Silencieux |
|
||||
| 06 | Morpho bleu | — | Silencieux |
|
||||
| 07 | Agrias | — | Silencieux |
|
||||
| 08 | Ornithoptère | — | Silencieux |
|
||||
| 09 | Papillon de nuit | — | Silencieux |
|
||||
| 10 | Grand paon de nuit | — | Silencieux |
|
||||
| 11 | Criquet long | locust.ogg (facultatif) | Frottement bref |
|
||||
| 12 | Criquet migrateur | locust.ogg (facultatif) | Même famille que le criquet long |
|
||||
| 13 | Mante religieuse | — | Silencieux |
|
||||
| 14 | Mante orchidée | — | Silencieux |
|
||||
| 15 | Cigale brune | cicada_brown.ogg | Crépitement rythmé |
|
||||
| 16 | Cigale robuste | cicada_robust.ogg | Chant continu plus intense |
|
||||
| 17 | Cigale cicadelle | cicada_walker.ogg | Chant pulsé |
|
||||
| 18 | Cigale du soir | cicada_evening.ogg | Chant clair et espacé |
|
||||
| 19 | Fulgore | — | Silencieux |
|
||||
| 20 | Libellule rouge | — | Silencieux |
|
||||
| 21 | Libellule verte | — | Silencieux |
|
||||
| 22 | Libellule géante | — | Silencieux |
|
||||
| 23 | Fourmi | — | Silencieux |
|
||||
| 24 | Gerris | — | Silencieux |
|
||||
| 25 | Escargot | — | Silencieux |
|
||||
| 26 | Grillon | cricket.ogg | Chirps courts et répétés |
|
||||
| 27 | Grillon des prés | bell_cricket.ogg | Trille clair, presque métallique |
|
||||
| 28 | Sauterelle | grasshopper.ogg (facultatif) | Stridulation douce et espacée |
|
||||
| 29 | Courtilière | mole_cricket.ogg | Trille sourd et continu |
|
||||
| 30 | Phasme | — | Silencieux |
|
||||
| 31 | Coccinelle | — | Silencieux |
|
||||
| 32 | Cétoine | — | Silencieux |
|
||||
| 33 | Scarabée | — | Silencieux |
|
||||
| 34 | Bousier | — | Silencieux |
|
||||
| 35 | Scarabée Goliath | — | Silencieux |
|
||||
| 36 | Capricorne | — | Silencieux |
|
||||
| 37 | Lucane scie | — | Silencieux |
|
||||
| 38 | Lucane | — | Silencieux |
|
||||
| 39 | Lucane géant | — | Silencieux |
|
||||
| 40 | Lucane arc-en-ciel | — | Silencieux |
|
||||
| 41 | Scarabée éléphant | — | Silencieux |
|
||||
| 42 | Scarabée Hercule | — | Silencieux |
|
||||
| 43 | Puce | — | Silencieux |
|
||||
| 44 | Cloporte | — | Silencieux |
|
||||
| 45 | Moustique | mosquito_flight.ogg | Bourdonnement aigu très proche |
|
||||
| 46 | Mouche | fly_flight.ogg | Bourdonnement bref et irrégulier |
|
||||
| 47 | Cafard | — | Silencieux |
|
||||
|
||||
Fourmi, escargot, puce et cloporte restent silencieux. Les déplacements des
|
||||
scarabées et de la boule de neige pourront recevoir plus tard un frottement
|
||||
très discret si leur lecture en jeu le demande. Le filet et la capture sont
|
||||
des effets de geste séparés : souffle court du filet et prise douce éventuelle,
|
||||
sans notification ni son de découverte. Rien de cela n’est implémenté ici.
|
||||
@@ -0,0 +1,242 @@
|
||||
{
|
||||
"source": "Textures fournies par le créateur, Animal Crossing: Wild World / Nintendo, via Nookipedia",
|
||||
"reference": "https://nookipedia.com/wiki/Bug/Wild_World",
|
||||
"retrieved": "2026-10-08",
|
||||
"assets": [
|
||||
{
|
||||
"id": "common_butterfly",
|
||||
"file": "Common_Butterfly_WW_Inv_Icon.png",
|
||||
"sha256": "0d1f1818a514406e38b0613d8d8e7be8272c95cc818cc3cfb0606b6caab75d6f"
|
||||
},
|
||||
{
|
||||
"id": "yellow_butterfly",
|
||||
"file": "Yellow_Butterfly_WW_Inv_Icon.png",
|
||||
"sha256": "2f65e647c0bdfa0c791089a01679d4beff4187210735920cd989d7b00e7b3d49"
|
||||
},
|
||||
{
|
||||
"id": "tiger_butterfly",
|
||||
"file": "Tiger_Butterfly_WW_Inv_Icon.png",
|
||||
"sha256": "3c057b5814ace6d23065b08b29fd4da9b5d7c063e2a666dc199dffa3a71bbcb0"
|
||||
},
|
||||
{
|
||||
"id": "peacock",
|
||||
"file": "Peacock_WW_Inv_Icon.png",
|
||||
"sha256": "4465ac534609d3ccd912bd2a1e1f1fe54a74605d6cf015742ed82ee47bac215d"
|
||||
},
|
||||
{
|
||||
"id": "monarch",
|
||||
"file": "Monarch_WW_Inv_Icon.png",
|
||||
"sha256": "0a6135be3c9fbb77422cd303634d1de6f90b77d4d58b83a41d154e7864efb6a8"
|
||||
},
|
||||
{
|
||||
"id": "emperor",
|
||||
"file": "Emperor_WW_Inv_Icon.png",
|
||||
"sha256": "73c06c6b333a0fac5a4cc4ef2ea974d9ac24d61626c113d7a19cbc692aeccf28"
|
||||
},
|
||||
{
|
||||
"id": "agrias_butterfly",
|
||||
"file": "Agrias_Butterfly_WW_Inv_Icon.png",
|
||||
"sha256": "7265cce5316036d08d3544f85678e426d073ee4e1ce6456509c9bbfd47691762"
|
||||
},
|
||||
{
|
||||
"id": "birdwing",
|
||||
"file": "Birdwing_WW_Inv_Icon.png",
|
||||
"sha256": "341236d944d869c41f58a5229d3af62e22f45383c0e74830687024d250bdd676"
|
||||
},
|
||||
{
|
||||
"id": "moth",
|
||||
"file": "Moth_WW_Inv_Icon.png",
|
||||
"sha256": "0da1cf7bc700b0a140346d88449855ff48868aaeb27b4331298399fafbd6a6b1"
|
||||
},
|
||||
{
|
||||
"id": "oak_silk_moth",
|
||||
"file": "Oak_Silk_Moth_WW_Inv_Icon.png",
|
||||
"sha256": "b7048019ad492468712e73bb793e1fa0bf97da2af4d90ec2dea5214fb8ba9743"
|
||||
},
|
||||
{
|
||||
"id": "long_locust",
|
||||
"file": "Long_Locust_WW_Inv_Icon.png",
|
||||
"sha256": "afa0056c19d5f590efc28f9fc48868996705ab26549659edbbacac2abd7aa485"
|
||||
},
|
||||
{
|
||||
"id": "migratory_locust",
|
||||
"file": "Migratory_Locust_WW_Inv_Icon.png",
|
||||
"sha256": "f57515e1425d97f22ad3530f6fa53c05899461fb4b3f375f36f47b2596634116"
|
||||
},
|
||||
{
|
||||
"id": "mantis",
|
||||
"file": "Mantis_WW_Inv_Icon.png",
|
||||
"sha256": "e1ec3c4543e173756a5ee87bc40d57958ba31a1ff7ade63558fd11fe16bef732"
|
||||
},
|
||||
{
|
||||
"id": "orchid_mantis",
|
||||
"file": "Orchid_Mantis_WW_Inv_Icon.png",
|
||||
"sha256": "353c6d36c5a9757879a8c28f743d12fd16d1f5191ccf88f3580b926da08efccd"
|
||||
},
|
||||
{
|
||||
"id": "brown_cicada",
|
||||
"file": "Brown_Cicada_WW_Inv_Icon.png",
|
||||
"sha256": "ec229a8b26a69a54bd597e8b1fe43855e0199beb4b0b34884e21a8f2b47239a2"
|
||||
},
|
||||
{
|
||||
"id": "robust_cicada",
|
||||
"file": "Robust_Cicada_WW_Inv_Icon.png",
|
||||
"sha256": "7dd177071e5733e7f2ab4ab1004ac1bdd5f95110565cc52b5a53804cdda0a7d0"
|
||||
},
|
||||
{
|
||||
"id": "walker_cicada",
|
||||
"file": "Walker_Cicada_WW_Inv_Icon.png",
|
||||
"sha256": "42f01a56c4d458c59f89daeacba1fd3424e3e84bbd8072bec150b491f236e058"
|
||||
},
|
||||
{
|
||||
"id": "evening_cicada",
|
||||
"file": "Evening_Cicada_WW_Inv_Icon.png",
|
||||
"sha256": "e91c21b27a1188639fcf0427913284470472544f9d36ee8790fc042a281e789b"
|
||||
},
|
||||
{
|
||||
"id": "lantern_fly",
|
||||
"file": "Lantern_Fly_WW_Inv_Icon.png",
|
||||
"sha256": "40c3f67c4b9fa71c278f1e27fc6b5d4d758a3f29162724a3d1ce375008e874ee"
|
||||
},
|
||||
{
|
||||
"id": "red_dragonfly",
|
||||
"file": "Red_Dragonfly_WW_Inv_Icon.png",
|
||||
"sha256": "3e0ddba1988cc630132c4dda037d6377ca059186b1cc03384de19f4ba1783608"
|
||||
},
|
||||
{
|
||||
"id": "darner_dragonfly",
|
||||
"file": "Darner_Dragonfly_WW_Inv_Icon.png",
|
||||
"sha256": "56bd05a9bdc0f292e9facfb837b980bfe8a218847fe339d5c4fc3184512aa01a"
|
||||
},
|
||||
{
|
||||
"id": "banded_dragonfly",
|
||||
"file": "Banded_Dragonfly_WW_Inv_Icon.png",
|
||||
"sha256": "2d8bf8b73085f9af39584be1a28c36c901c14536adf34c1e8a34d86ee6f4bb5f"
|
||||
},
|
||||
{
|
||||
"id": "ant",
|
||||
"file": "Ant_WW_Inv_Icon.png",
|
||||
"sha256": "5c25d6a3c7d7d60d2245ae153db19a79b2f1a566ee5fc3f518a02a5cf20e0403"
|
||||
},
|
||||
{
|
||||
"id": "pondskater",
|
||||
"file": "Pondskater_WW_Inv_Icon.png",
|
||||
"sha256": "9602ce54f7a6a648bb1a4b713af95cd8548ae71c2e33944417e668a6ece388ec"
|
||||
},
|
||||
{
|
||||
"id": "snail",
|
||||
"file": "Snail_WW_Inv_Icon.png",
|
||||
"sha256": "f8938dfd17aff67f1a7efb95c292f14d63eee1dfa6afc348c7351c62cb147e91"
|
||||
},
|
||||
{
|
||||
"id": "cricket",
|
||||
"file": "Cricket_WW_Inv_Icon.png",
|
||||
"sha256": "b1fcd0b109a2a422917e39923e54e1490e7a0058fbf413ac232fc39b5c0536e8"
|
||||
},
|
||||
{
|
||||
"id": "bell_cricket",
|
||||
"file": "Bell_Cricket_WW_Inv_Icon.png",
|
||||
"sha256": "ce92cb6539abc36acdf97312f4fcec53d87ed63abd195a3e7c391e94dd0a0a4f"
|
||||
},
|
||||
{
|
||||
"id": "grasshopper",
|
||||
"file": "Grasshopper_WW_Inv_Icon.png",
|
||||
"sha256": "9328d7346601212faa8e3b763871d3f52db6fe290be2826475b0ed6decd6e0c7"
|
||||
},
|
||||
{
|
||||
"id": "mole_cricket",
|
||||
"file": "Mole_Cricket_WW_Inv_Icon.png",
|
||||
"sha256": "21825104a8192a243b459d3dd1ad13e9a9ebd935e4b1a9dae4b7cdf942c25957"
|
||||
},
|
||||
{
|
||||
"id": "walkingstick",
|
||||
"file": "Walkingstick_WW_Inv_Icon.png",
|
||||
"sha256": "fee425cb73673cd5b430e25e99b1144432b6ee430ab265b842c32bd4bb08c71e"
|
||||
},
|
||||
{
|
||||
"id": "ladybug",
|
||||
"file": "Ladybug_WW_Inv_Icon.png",
|
||||
"sha256": "25a458cdce22389fcb3c1898ec94d940c5d62077d250dc18f2aa455f4852d4b6"
|
||||
},
|
||||
{
|
||||
"id": "fruit_beetle",
|
||||
"file": "Fruit_Beetle_WW_Inv_Icon.png",
|
||||
"sha256": "a4da1eee334c442917ea1b94de6a91500dfbfda3964d17172e04b37f1fee886b"
|
||||
},
|
||||
{
|
||||
"id": "scarab_beetle",
|
||||
"file": "Scarab_Beetle_WW_Inv_Icon.png",
|
||||
"sha256": "f67d7d74672bb76711819668636e9e65c0c8ba578a21a6e99a57e12c8985ba07"
|
||||
},
|
||||
{
|
||||
"id": "dung_beetle",
|
||||
"file": "Dung_Beetle_WW_Inv_Icon.png",
|
||||
"sha256": "6767a7c0df6b8cfd9ae8f0dbc31a6d8401ed878d7f3adf9d2daa50eba381e5f4"
|
||||
},
|
||||
{
|
||||
"id": "goliath_beetle",
|
||||
"file": "Goliath_Beetle_WW_Inv_Icon.png",
|
||||
"sha256": "9776c48cedd7ccb4f124fc8d9a481ff851cf8171889784357051d502021c73a2"
|
||||
},
|
||||
{
|
||||
"id": "longhorn_beetle",
|
||||
"file": "Longhorn_Beetle_WW_Inv_Icon.png",
|
||||
"sha256": "2a14437a6fc00b0c06a612fec8eeae9a2ded853eeecb72f97c248efed62ca51a"
|
||||
},
|
||||
{
|
||||
"id": "saw_stag_beetle",
|
||||
"file": "Saw_Stag_Beetle_WW_Inv_Icon.png",
|
||||
"sha256": "a92dbee2c9659cdc725501068c34fedfbb7fabdb9ff0a5880d62c63905e8db20"
|
||||
},
|
||||
{
|
||||
"id": "stag_beetle",
|
||||
"file": "Stag_Beetle_WW_Inv_Icon.png",
|
||||
"sha256": "7696ac7da4342ec1d720b42ee9fcdbb0f8897ecf5e913c0e2361224c8dd6a02b"
|
||||
},
|
||||
{
|
||||
"id": "giant_beetle",
|
||||
"file": "Giant_Beetle_WW_Inv_Icon.png",
|
||||
"sha256": "6b3148ed720a53038d1ad5054870b57bf79fe63140196f4a8d06caf894179469"
|
||||
},
|
||||
{
|
||||
"id": "rainbow_stag",
|
||||
"file": "Rainbow_Stag_WW_Inv_Icon.png",
|
||||
"sha256": "1cdff97582f9221b97f6bb46dd4804dc61b8787c7e98b422c49895ae7847d4c3"
|
||||
},
|
||||
{
|
||||
"id": "elephant_beetle",
|
||||
"file": "Elephant_Beetle_WW_Inv_Icon.png",
|
||||
"sha256": "67061bb466f0c16ea2596505760775153a11db8b11dc7e2c3424de09b4d2bfe6"
|
||||
},
|
||||
{
|
||||
"id": "hercules_beetle",
|
||||
"file": "Hercules_Beetle_WW_Inv_Icon.png",
|
||||
"sha256": "817612b4722dbda095ee4329e12e8cb94684fcd17b8640db3e7cb0cf43836051"
|
||||
},
|
||||
{
|
||||
"id": "flea",
|
||||
"file": "Flea_WW_Inv_Icon.png",
|
||||
"sha256": "a68dc39161a5c425438ff568f748f03418851728206174376987f471dfd962ba"
|
||||
},
|
||||
{
|
||||
"id": "pill_bug",
|
||||
"file": "Pill_Bug_WW_Inv_Icon.png",
|
||||
"sha256": "0a9b3cf87295dfdd97b568b2522bb7a25a9e03b371d48d7abe14fe02105faa41"
|
||||
},
|
||||
{
|
||||
"id": "mosquito",
|
||||
"file": "Mosquito_WW_Inv_Icon.png",
|
||||
"sha256": "d1ddce1a0db8e60c636be2953e56143b3c7b943df5318440c7c3ed0efa8dacf2"
|
||||
},
|
||||
{
|
||||
"id": "fly",
|
||||
"file": "Fly_WW_Inv_Icon.png",
|
||||
"sha256": "eaf5c25ce867dd6bfc23ea3e46c64473f2aa4e3ba9e25cb2fe35edb96db81c01"
|
||||
},
|
||||
{
|
||||
"id": "cockroach",
|
||||
"file": "Cockroach_WW_Inv_Icon.png",
|
||||
"sha256": "82906ce0072b7c4f8cf7fc1821adf07ad185a46552965425db2f82cf9a5e8426"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,196 @@
|
||||
# INSECT-01 — Insectes Wild World et filet, beta.245
|
||||
|
||||
Branche : `codex/insects-wild-world-beta245`. Demande du créateur du
|
||||
8 octobre 2026 ; périmètre confirmé : **les 47 textures fournies**, parmi
|
||||
les 56 espèces de [Wild World](https://nookipedia.com/wiki/Bug/Wild_World).
|
||||
Les neuf espèces sans texture ne sont pas enregistrées.
|
||||
|
||||
## Résultat implémenté
|
||||
|
||||
47 espèces ambiantes, non agressives, avec habitat, mois, heures et pics
|
||||
côté serveur. Le calendrier utilise la date civile et le fuseau de
|
||||
`RealtimeService`, comme Sanctuary ; hémisphère sud : décalage de six mois.
|
||||
Les créneaux sont début inclus et fin exclue, y compris ceux qui traversent
|
||||
minuit. Les horaires spécifiques à certains mois restent distincts.
|
||||
Les pics multiplient le poids d’apparition par **3**, dans le créneau
|
||||
disponible ; ils ne forcent aucune apparition et ne permettent pas
|
||||
d’apparition hors saison. Poids de base 6, ou 2 pour les espèces rares
|
||||
du catalogue ; équilibrage Sanctuary, sans reprise des prix en clochettes.
|
||||
|
||||
Chaque sprite fourni est copié sans retouche. Les papillons, la mouche et le papillon
|
||||
de nuit utilisent deux quads articulés au centre et deux moitiés d’UV.
|
||||
Les insectes des troncs utilisent un quad vertical fixé à la face de bûche.
|
||||
Fourmi, gerris, mantes et coccinelle : quad horizontal. Criquets, grillons,
|
||||
escargot et autres petits insectes : billboard vertical ; les billboards
|
||||
aériens suivent aussi l’inclinaison de la caméra. Le moustique tourne
|
||||
autour du joueur vivant le plus proche sans jamais l’attaquer.
|
||||
|
||||
Approche normale : fuite à moins de 3 blocs ; sprint : 5 blocs ;
|
||||
accroupi : 0,65 bloc. Le moustique tolère une approche normale jusqu’à
|
||||
0,95 bloc, ce qui permet son orbite à 1,8 bloc (sprint : 2,5 blocs).
|
||||
Une ligne de vue libre est nécessaire. Une attaque effraie l’insecte.
|
||||
La fuite dure 24 ticks puis l’entité disparaît ; elle n’est plus capturable.
|
||||
Les insectes ne poussent ni ne blessent et ne produisent aucun butin de mort.
|
||||
|
||||
Le filet `sanctuary:insect_net` s’utilise au **clic droit**, avec une visée
|
||||
à 3 blocs. Le serveur choisit le premier insecte sur le trajet du geste,
|
||||
respecte les obstacles et produit exactement un spécimen. Délai entre
|
||||
gestes : 10 ticks ; durabilité : 128, un point par geste en survie.
|
||||
Inventaire plein : dépôt protégé aux pieds du joueur. Capture et découverte
|
||||
du filet, de sa recette et des 47 spécimens **sans notification**, à la demande
|
||||
du créateur ; les compteurs et découvertes restent enregistrés en silence. Les spécimens
|
||||
`sanctuary:insect_<espèce>` utilisent les mêmes sprites et ont des noms FR/EN.
|
||||
Le filet et les spécimens figurent aussi dans Outils et utilitaires en créatif.
|
||||
|
||||
Recette, `S` = fil, `#` = bâton :
|
||||
|
||||
```text
|
||||
SS
|
||||
#S
|
||||
#
|
||||
```
|
||||
|
||||
## Habitats et adaptations explicites
|
||||
|
||||
- Papillons près des fleurs ; machaon près des fleurs rouges/roses, paon
|
||||
près des fleurs bleues/violettes/noires. Mante orchidée : fleurs blanches.
|
||||
- Mantes, coccinelle et escargot peuvent aussi être sur des feuilles ;
|
||||
l’escargot exige une pluie effective sur son support, sans neige ni toit.
|
||||
- Espèces de palmiers sur bûches/bûches de bois de jungle non écorcées.
|
||||
Pas de nouvelle essence d’arbre. Les autres espèces utilisent les bûches.
|
||||
- Gerris sur eau douce source avec air au-dessus, à la hauteur native
|
||||
de sa surface ; biomes océaniques exclus.
|
||||
- Fourmis près de chair putréfiée déposée ; mouches aussi près d’os ou de
|
||||
pommes de terre empoisonnées déposées. Pas de système de pourrissement.
|
||||
- Bousier sur neige, sans création ou poussée de boule de neige.
|
||||
- Puce sur un villageois vivant qu’elle suit. Papillon de nuit près
|
||||
d’un bloc lumineux à ciel ouvert.
|
||||
- Cloporte : chance de sortie en frappant une roche ; courtilière :
|
||||
chance de sortie après avoir creusé un bloc de terre. Au plus une
|
||||
tentative par joueur toutes les cinq secondes, probabilité de 1/3.
|
||||
Pas de population souterraine invisible ni de chant souterrain.
|
||||
|
||||
La colonne des pics Nookipedia de l’escargot contient un second créneau
|
||||
`4 AM – 7 PM ()` sans mois. Seul le pic explicite de mai, 16 h–8 h,
|
||||
est repris ; aucun mois n’est inventé pour ce fragment incomplet.
|
||||
|
||||
## Monde et conservation
|
||||
|
||||
Apparitions uniquement dans l’Overworld d’une partie Sanctuary prise en
|
||||
charge. Un ancien monde ordinaire n’est pas inscrit par la seule installation
|
||||
du mod. Tous les supports et déplacements restent dans des chunks chargés ;
|
||||
aucun chunk, bloc ou profil de génération n’est créé ou modifié par ce système.
|
||||
Échantillonnage toutes les cinq secondes, 18 tentatives bornées par joueur,
|
||||
au plus deux ajouts ; plafond de 32 entités dans un rayon local de 32 blocs
|
||||
et espacement d’un bloc entre sites occupés. Durée de vie maximale :
|
||||
120 secondes. Saison/horaire et support revérifiés chaque seconde.
|
||||
|
||||
Les entités ambiantes sont transitoires et non sauvegardées. Les objets
|
||||
capturés suivent la sauvegarde native des items. Aucun format existant,
|
||||
identifiant existant, sauvegarde personnelle ou génération n’est migré.
|
||||
Les modifications beta.242–244 préexistantes sont conservées.
|
||||
|
||||
## Catalogue
|
||||
|
||||
Mois numérotés de 1 à 12, référence nord ; horaires de la source.
|
||||
Le catalogue runtime est `data/sanctuary/insects/wild_world.json` ;
|
||||
la provenance des textures est [inventoriée](insects-assets.json).
|
||||
|
||||
| Espèce | Habitat Sanctuary | Mois | Horaires | Pics |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| Piéride du chou (`common_butterfly`) | FLOWERS | 3,4,5,6,7,8,9 | 4 AM – 7 PM (Mar – Jun) / 8 AM – 5 PM (Jul – Aug) / 8 AM – 4 PM (Sep) | 8 AM – 5 PM (Mar – Jun) |
|
||||
| Citron (`yellow_butterfly`) | FLOWERS | 3,4,5,6,7,8,9 | 4 AM – 7 PM (Mar – Jun) / 8 AM – 5 PM (Jul – Aug) / 8 AM – 4 PM (Sep) | 8 AM – 5 PM (Mar – Jun) |
|
||||
| Machaon (`tiger_butterfly`) | FLOWERS | 3,4,5,6,7,8,9 | 4 AM – 7 PM (Mar – Jun) / 8 AM – 5 PM (Jul – Aug) / 8 AM – 4 PM (Sep) | 8 AM – 5 PM (Mar – Jun) |
|
||||
| Papillon paon (`peacock`) | FLOWERS | 3,4,5,6,7,8,9 | 4 AM – 7 PM (Mar – Jun) / 8 AM – 5 PM (Jul – Aug) / 8 AM – 4 PM (Sep) | 8 AM – 5 PM (May – Jun) |
|
||||
| Monarque (`monarch`) | FLOWERS | 9,10,11 | 4 AM – 5 PM (Sep – Oct) / 8 AM – 5 PM (Nov) | 8 AM – 5 PM (Oct – Nov) |
|
||||
| Morpho bleu (`emperor`) | FLOWERS | 6,7,8,9 | 8 AM – 5 PM | — |
|
||||
| Agrias (`agrias_butterfly`) | FLOWERS | 6,7,8,9 | 8 AM – 5 PM | — |
|
||||
| Ornithoptère (`birdwing`) | FLOWERS | 6,7,8,9 | 8 AM – 5 PM | — |
|
||||
| Papillon de nuit (`moth`) | LIGHT | 5,6,7,8,9 | 7 PM – 4 AM | 11 PM – 4 AM (Jun – Aug) |
|
||||
| Grand paon de nuit (`oak_silk_moth`) | TREE | 6,7,8,9 | 7 PM – 4 AM | — |
|
||||
| Criquet long (`long_locust`) | GROUND | 8,9,10,11 | 8 AM – 7 PM | Sep – Nov |
|
||||
| Criquet migrateur (`migratory_locust`) | GROUND | 9,10,11 | 8 AM – 7 PM | 8 AM – 4 PM |
|
||||
| Mante religieuse (`mantis`) | FLOWER | 8,9,10,11 | 8 AM – 5 PM | 8 AM – 4 PM (Sep – Nov) |
|
||||
| Mante orchidée (`orchid_mantis`) | WHITE_FLOWER | 8,9,10,11 | 8 AM – 5 PM | 8 AM – 4 PM (Sep – Nov) |
|
||||
| Cigale brune (`brown_cicada`) | TREE | 7,8 | 8 AM – 5 PM | 8 AM – 4 PM |
|
||||
| Cigale robuste (`robust_cicada`) | TREE | 7,8 | 8 AM – 5 PM | 8 AM – 4 PM |
|
||||
| Cigale cicadelle (`walker_cicada`) | TREE | 7,8,9 | 8 AM – 5 PM | Aug |
|
||||
| Cigale du soir (`evening_cicada`) | TREE | 7,8 | 4 AM – 8 AM; 4 PM – 7 PM | — |
|
||||
| Fulgore (`lantern_fly`) | TREE | 6,7,8,9 | 4 PM – 7 PM; 11 PM – 8 AM | — |
|
||||
| Libellule rouge (`red_dragonfly`) | AIR | 9,10 | 8 AM – 7 PM | 4 PM – 5 PM |
|
||||
| Libellule verte (`darner_dragonfly`) | AIR | 6,7,8 | 8 AM – 5 PM | 4 PM – 5 PM |
|
||||
| Libellule géante (`banded_dragonfly`) | AIR | 7,8 | 8 AM – 5 PM | — |
|
||||
| Fourmi (`ant`) | ROTTEN_FOOD | 1,2,3,4,5,6,7,8,9,10,11,12 | All day | — |
|
||||
| Gerris (`pondskater`) | WATER | 6,7,8,9 | 8 AM – 7 PM | — |
|
||||
| Escargot (`snail`) | RAIN_FLOWER | 4,5,6,7,8,9 | All day | 4 PM – 8 AM (May) / 4 AM – 7 PM () |
|
||||
| Grillon (`cricket`) | GROUND | 9,10,11 | 5 PM – 8 AM | — |
|
||||
| Grillon des prés (`bell_cricket`) | GROUND | 9,10 | 5 PM – 8 AM | — |
|
||||
| Sauterelle (`grasshopper`) | GROUND | 7,8,9 | 4 PM – 5 PM (Jul) / 8 AM – 5 PM (Aug – Sep) | Sep |
|
||||
| Courtilière (`mole_cricket`) | UNDERGROUND | 1,2,3,4,5,11,12 | All day | Dec – Feb |
|
||||
| Phasme (`walkingstick`) | TREE | 7,8,9,10,11 | 4 AM – 7 PM | — |
|
||||
| Coccinelle (`ladybug`) | FLOWER | 3,4,5,6,10 | 8 AM – 5 PM | Mar – May |
|
||||
| Cétoine (`fruit_beetle`) | TREE | 7,8,9 | All day (Jul – Aug) / 7 PM – 8 AM (Sep) | 7 PM – 4 AM (Jul – Aug) |
|
||||
| Scarabée (`scarab_beetle`) | TREE | 7,8 | 11 PM – 8 AM | — |
|
||||
| Bousier (`dung_beetle`) | SNOW | 1,2,12 | 5 PM – 8 AM | — |
|
||||
| Scarabée Goliath (`goliath_beetle`) | PALM_TREE | 6,7,8 | 7 PM – 8 AM | — |
|
||||
| Capricorne (`longhorn_beetle`) | TREE | 6,7,8 | 8 AM – 7 PM (Jun) / 8 AM – 5 PM (Jul – Aug) | — |
|
||||
| Lucane scie (`saw_stag_beetle`) | TREE | 7,8 | All day | 11 PM – 8 AM |
|
||||
| Lucane (`stag_beetle`) | TREE | 6,7,8 | 7 PM – 8 AM | 11 PM – 8 AM (Jul – Aug) |
|
||||
| Lucane géant (`giant_beetle`) | TREE | 7,8 | 11 PM – 8 AM | — |
|
||||
| Lucane arc-en-ciel (`rainbow_stag`) | TREE | 6,7,8,9 | 7 PM – 8 AM | — |
|
||||
| Scarabée éléphant (`elephant_beetle`) | PALM_TREE | 7,8 | 7 PM – 8 AM | — |
|
||||
| Scarabée Hercule (`hercules_beetle`) | PALM_TREE | 7,8 | 11 PM – 8 AM | — |
|
||||
| Puce (`flea`) | VILLAGER | 3,4,5,6,7,8,9,10,11 | All day | — |
|
||||
| Cloporte (`pill_bug`) | ROCK | 1,2,3,4,5,6,7,8,9,10,11,12 | All day | Nov – Mar |
|
||||
| Moustique (`mosquito`) | AIR | 6,7,8,9 | 5 PM – 4 AM | 5 PM – 7 PM |
|
||||
| Mouche (`fly`) | ROTTEN_FOOD | 1,2,3,4,5,6,7,8,9,10,11,12 | All day | — |
|
||||
| Cafard (`cockroach`) | TREE | 1,2,3,4,5,6,7,8,9,10,11,12 | All day | — |
|
||||
|
||||
## Vérifications
|
||||
|
||||
Le lancement serveur ciblé utilise le profil plat déjà prévu pour les tests
|
||||
fonctionnels (`sanctuaryAtlasOnly`), afin d’éviter les prérequis worldgen.
|
||||
|
||||
```sh
|
||||
./gradlew check build assemblePack -PsanctuaryFocusedTests=insects245 -PsanctuaryAtlasOnly=true
|
||||
./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true \
|
||||
-PsanctuaryInsects245ClientTests=true -PsanctuaryClientGraphicsBackend=vulkan
|
||||
```
|
||||
|
||||
Les neuf GameTests requis sont réussis : calendrier et pics, recette réelle,
|
||||
fleurs, pluie, eau, faces de troncs, approche accroupie, fuite, capture unique,
|
||||
obstacles, portée, inventaire plein, spectateur et absence de chargement
|
||||
forcé. Les 47 PNG 16 × 16 correspondent aux SHA-256 des fichiers fournis ;
|
||||
modèles d’items et noms FR/EN présents.
|
||||
|
||||
Le parcours client Vulkan réussit sur Apple M1 / MoltenVK 1.4.2 : chargement
|
||||
des 47 textures et noms FR/EN, quatre modes de rendu, pluie effective pour
|
||||
l’escargot, orbite du moustique et capture native au clic droit accroupi
|
||||
avec un point d’usure. Les découvertes sont enregistrées ; ni le filet,
|
||||
ni sa recette, ni les spécimens ne déclenchent de notification. Une
|
||||
découverte ordinaire reste annoncée. Marqueur du test :
|
||||
`INSECTS245_CLIENT_PASS ... silent-discoveries=pass`.
|
||||
|
||||
Captures de contrôle :
|
||||
[surfaces](../mods/sanctuary/build/run/clientGameTest/screenshots/0000_insects245-day-surfaces.png),
|
||||
[filet](../mods/sanctuary/build/run/clientGameTest/screenshots/0001_insects245-net-capture.png),
|
||||
[moustique](../mods/sanctuary/build/run/clientGameTest/screenshots/0002_insects245-mosquito-night.png).
|
||||
Le monde plat de contrôle reste sombre ; ces captures servent à vérifier
|
||||
les formes et interactions, pas à valider l’éclairage d’une île Sanctuary.
|
||||
L’équilibrage des fréquences reste à apprécier dans une partie normale.
|
||||
|
||||
Les essais restent dans des mondes de développement neufs. Aucune
|
||||
publication, instance Prism ou sauvegarde personnelle modifiée.
|
||||
|
||||
`check build assemblePack` réussit sur les sources finales ; le pack exporté
|
||||
contient le même JAR beta.245, les 47 textures originales, les modèles,
|
||||
le catalogue et la recette. Intégrité ZIP et version Minecraft 26.3 /
|
||||
Fabric Loader 0.19.5 vérifiées. Les 57 fichiers préexistants hors points
|
||||
d’intégration conservent leur empreinte initiale.
|
||||
|
||||
Livraison locale : [Sanctuary-beta.245.mrpack](../build/Sanctuary-beta.245.mrpack)
|
||||
(12 977 936 octets), SHA-256
|
||||
`aa537808cb458813f366ffc9d67dd9a3e1fc60cbd1ce5e8ddc8b1ab40cb0ac46`.
|
||||
JAR beta.245 : SHA-256
|
||||
`94132d1bd854259110d49d77f58a7bbaeed94f73a50df92460ef46fbf2355444`.
|
||||
[Reçu de validation](../build/insects245/validation.json).
|
||||
@@ -0,0 +1,124 @@
|
||||
# Prochaine passe — mods du pack et modules personnels
|
||||
|
||||
Cadrage du **26 octobre 2026**, à la demande de Koka. Initialement préparés
|
||||
pour après beta.291, les quatre tickets d'intégration sont désormais repris
|
||||
dans [la préparation locale beta.292](optional-mods-beta292.md), à sa demande.
|
||||
Dozei Stream et Only Fun restent des contrats futurs. Chaque implémentation
|
||||
prendra sa propre branche `codex/<sujet>` et son prochain compteur libre.
|
||||
Les versions du cadrage ci-dessous sont des candidats repérés pour **Minecraft 26.3,
|
||||
Fabric 0.19.5 et Java 25**, pas des intégrations validées. Tous les essais
|
||||
graphiques cibleront Vulkan, avec Sodium puis sans si le mod le permet.
|
||||
|
||||
L'API Modrinth a été interrogée avec les filtres exacts `game_versions=["26.3"]`
|
||||
et `loaders=["fabric"]`. Les JAR candidats ont été téléchargés dans le dossier
|
||||
ignoré `build/optional-mods291/`, vérifiés contre leur SHA-512 publié et leurs
|
||||
`fabric.mod.json` relus. Revalider versions, dépendances, licences et hashes au
|
||||
début de chaque ticket ; aucun binaire téléchargé n'entre dans Git.
|
||||
|
||||
| Ticket | Branche prévue | Candidat observé | Résultat à obtenir |
|
||||
| --- | --- | --- | --- |
|
||||
| PACK-VOICE-01 | `codex/simple-voice-chat` | [2.6.26+26.3, Fabric, bêta](https://modrinth.com/plugin/simple-voice-chat/version/cZm965sW) | Conversation de proximité client/serveur, compatible avec l'acoustique Sanctuary |
|
||||
| PACK-BOBBY-01 | `codex/bobby-optional` | [5.2.16+mc26.3](https://modrinth.com/mod/bobby/version/J7YnfCss) | Voir les chunks déjà reçus au-delà de la distance envoyée par le serveur, installation facultative |
|
||||
| PACK-LITHIUM-01 | `codex/lithium-integration` | [0.26.2+mc26.3, Fabric](https://modrinth.com/mod/lithium/version/xS0Q8LSi) | Réduire le coût de simulation en conservant les règles Sanctuary |
|
||||
| PACK-CULL-01 | `codex/entity-culling` | [1.11.3 pour 26.3, Fabric](https://modrinth.com/mod/entityculling/version/X1g3VhTx) | Éviter le rendu des entités et blocs entités masqués, sans disparitions incorrectes |
|
||||
| MODULE-DOZEI-01 | `codex/dozei-stream-contract` | Pas encore réalisé, aucun artefact fourni | Définir le premier résultat vérifiable de Dozei Stream |
|
||||
| MODULE-ONLYFUN-01 | `codex/only-fun-contract` | Mod personnel futur | Définir une première interaction potache autonome |
|
||||
|
||||
## PACK-VOICE-01 — Simple Voice Chat
|
||||
|
||||
Le JAR 2.6.26 déclare `minecraft=26.3.x`, Java ≥25, Loader ≥0.19.3 ;
|
||||
Fabric API doit être ≥0.160.5+26.3, ce qui correspond au socle actuel.
|
||||
**Conflit constaté : il déclare `breaks.sound_physics_remastered=<1.5.2`,
|
||||
alors que Sanctuary distribue 1.5.1+26.3.** Le candidat 2.6.25 a le même refus.
|
||||
Le JAR [2.6.24+26.3](https://modrinth.com/plugin/simple-voice-chat/version/OLnMVWXy)
|
||||
ne déclare pas ce conflit ; cela ne prouve pas sa compatibilité en partie.
|
||||
|
||||
Décider et tester soit une mise à jour délibérée de Sound Physics et de son
|
||||
adaptateur natif Sanctuary, soit une version vocale antérieure compatible.
|
||||
Ne pas contourner les dépendances de Fabric. Conserver un artefact autonome
|
||||
provenant de l'auteur et ses conditions de distribution.
|
||||
|
||||
Acceptation : connexion de deux clients de développement, voix de proximité,
|
||||
muet, push-to-talk, déconnexion/reconnexion, coexistence Sound Physics et
|
||||
préférences conservées. Vérifier les profils packwiz client/serveur, le refus
|
||||
des versions incompatibles et les interfaces FR/EN ajoutées par Sanctuary.
|
||||
L'activation réseau de la Beta sera une étape de livraison distincte : le
|
||||
[protocole amont](https://dev.modrepo.de/minecraft/voicechat/wiki/server_setup)
|
||||
utilise UDP et un port vocal propre, par défaut 24454. Tester depuis l'extérieur
|
||||
avec `/voicechat test`, puis un échange audible ; l'ouverture du port Minecraft
|
||||
TCP ne suffit pas. Aucun port ni serveur personnel n'est modifié par ce ticket
|
||||
documentaire.
|
||||
|
||||
## PACK-BOBBY-01 — cache client facultatif
|
||||
|
||||
Le candidat déclare un environnement client, Minecraft `~26.3`, Loader
|
||||
≥0.18.4 et refuse Sodium <0.6.0 ; Sodium 0.9.2 du pack satisfait ce seul
|
||||
contrat déclaré. Cloth Config et Mod Menu sont suggérés, pas requis dans le
|
||||
JAR inspecté. Le [principe amont](https://github.com/Johni0702/bobby) est de
|
||||
mettre en cache les chunks envoyés dans `.bobby`, puis d'afficher leur dernière
|
||||
copie connue à distance. Ce cache ne simule pas les chunks et ne remplace pas
|
||||
leur état serveur actuel.
|
||||
|
||||
Acceptation : choix packwiz **facultatif**, installation/désinstallation par
|
||||
le sélecteur et préférence conservée au second lancement ; parcours puis
|
||||
retour sur un serveur de développement avec distance d'envoi courte ; chunks
|
||||
lointains visibles sous Vulkan, actualisation lors de leur réception réelle,
|
||||
claims/Atlas et blocs Sanctuary cohérents au retour. Aucun monde personnel
|
||||
utilisé comme `bobby-fallback`. Définir une valeur initiale de distance et une
|
||||
politique de cache mesurées avant livraison ; pas de génération supplémentaire
|
||||
imposée au serveur.
|
||||
|
||||
## PACK-LITHIUM-01 — simulation
|
||||
|
||||
Le [candidat](https://github.com/CaffeineMC/lithium) peut fonctionner côté client
|
||||
et serveur. Ses dépendances déclarées sont Minecraft `~26.3`, Loader ≥0.19.5
|
||||
et MixinExtras ≥0.5.5. Vérifier la version réellement fournie par Loader ; ne
|
||||
pas ajouter une bibliothèque par supposition. Définir séparément les profils
|
||||
serveur et client, sans faire dépendre l'autorité serveur du choix d'un joueur.
|
||||
|
||||
Acceptation : démarrage et rechargement d'un monde de test, recettes et
|
||||
inventaires, IA des infectés/familiers/baleines, interactions multiblocs et
|
||||
budget de ticks comparés avant/après sur le même scénario. Les gains doivent
|
||||
être mesurés ; conserver les identifiants, sauvegardes et règles serveur.
|
||||
|
||||
## PACK-CULL-01 — masquage visuel
|
||||
|
||||
Le [candidat](https://github.com/tr7zw/EntityCulling) cible Minecraft `~26.3`
|
||||
et requiert Fabric API ; TRansition et TRender sont déjà imbriqués dans le
|
||||
JAR inspecté. Vérifier leurs hooks de rendu sur Vulkan avant toute inclusion,
|
||||
ainsi que les conditions de distribution du binaire original.
|
||||
|
||||
Acceptation : comparaison activé/désactivé sur une scène de développement,
|
||||
avec mur opaque, fenêtres, verre, sortie d'occlusion et changement rapide de
|
||||
caméra. Vérifier familiers portés, cosmétiques, baleines translucides, coffres
|
||||
et multiblocs ; aucune disparition visible incorrecte. Mesurer le gain et le
|
||||
coût CPU. Aucun essai OpenGL ne vaut validation de ce ticket.
|
||||
|
||||
## Modules personnels — contrats à écrire
|
||||
|
||||
**MODULE-DOZEI-01 :** conserver le nom donné « Dozei Stream » ; son rôle,
|
||||
ses sources, sa cible client/serveur, ses dépendances et son premier scénario
|
||||
restent à préciser avec le créateur. Ne déduire aucune fonctionnalité du nom.
|
||||
Acceptation du cadrage : une action observable et un périmètre testable avant
|
||||
de créer un faux artefact ou une entrée packwiz sans téléchargement.
|
||||
|
||||
**MODULE-ONLYFUN-01 :** reprendre la [vision Only Fun](vision.md#only-fun--interactions-sociales-et-absurdes),
|
||||
avec l'intention confirmée d'ajouter de l'humour « pipi caca ». C'est un mod
|
||||
personnel autonome, séparé du socle nécessaire pour jouer à Sanctuary.
|
||||
Choisir une première interaction, définir ses entrées, effets, données
|
||||
persistantes et branchements facultatifs au calendrier/aux événements.
|
||||
Acceptation du cadrage : petit scénario jouable défini, comportement en solo
|
||||
et serveur, installation indépendante et libellés FR/EN prévus. Le contenu
|
||||
futur de la vision ne devient pas une fonctionnalité livrée par ce document.
|
||||
|
||||
## Ordre proposé et fin d'un ticket
|
||||
|
||||
Commencer par Bobby facultatif, puis les optimisations mesurées ; traiter la
|
||||
voix avec sa décision Sound Physics et son parcours réseau. Les deux modules
|
||||
personnels commencent par leur contrat, sans dépendance implicite à ces mods.
|
||||
Cet ordre reste une proposition pour la prochaine séance.
|
||||
|
||||
Chaque intégration livrée passe `./gradlew check build assemblePack`, les
|
||||
essais propres au comportement ajouté, deux synchronisations packwiz isolées,
|
||||
la conservation des choix et le contrôle du profil serveur. Décrire les
|
||||
résultats réels et les limites restantes avant toute publication demandée.
|
||||
@@ -0,0 +1,189 @@
|
||||
# DIST-280 — JEI embarqué et packwiz serveur
|
||||
|
||||
Branche `codex/jei-packwiz-server`, base commit `697e4a2` (beta.278).
|
||||
Version réservée `beta.280` : beta.279 appartient au chantier parallèle
|
||||
Map Island Zoom, dont les modifications ne sont pas reprises ici.
|
||||
|
||||
## Contrat
|
||||
|
||||
- Un seul JAR Sanctuary à distribuer, avec le fork JEI exact
|
||||
`30.32.0-sanctuary.4` et ses notices/bibliothèques embarqués. Fabric API reste
|
||||
une dépendance commune ; Sodium et Sound Physics restent facultatifs côté client.
|
||||
- Même JAR sur client et serveur. JEI possède une initialisation commune
|
||||
(recettes et transfert), ses écrans restent dans son entrée client.
|
||||
- Un manifeste serveur `server/pack.toml` sur le même canal packwiz que le
|
||||
client, avec uniquement Sanctuary et Fabric API. Même version, URL et hash
|
||||
du JAR Sanctuary dans les deux profils. Publication atomique des manifestes
|
||||
après vérification de l'artefact immuable.
|
||||
- Un kit serveur local avec mise à jour packwiz sans interface et lancement
|
||||
Fabric. Les mondes, configurations, permissions, listes de joueurs et secrets
|
||||
restent hors de l'index. Une erreur de mise à jour empêche le démarrage.
|
||||
- Documenter les paramètres existants de l'API Sanctuary Web et de la MariaDB
|
||||
communautaire, sans inventer d'API ni migrer les données ou configurer un site
|
||||
public implicitement. Les secrets restent dans l'environnement du service.
|
||||
|
||||
## Vérifications locales
|
||||
|
||||
`./gradlew check build assemblePack assembleServerPack
|
||||
-PsanctuaryFocusedTests=recipes,progression -PsanctuaryAtlasOnly=true` réussit :
|
||||
13 GameTests requis, contrôles purs du dépôt et assemblages. Le fixture ciblé
|
||||
évite le harnais worldgen historique `unified`, sans modifier sa génération.
|
||||
Les sept tests de l'outil de mise à jour passent séparément, y compris le
|
||||
relais du signal d'arrêt et l'attente de Java avant libération du verrou.
|
||||
|
||||
Installation réelle avec packwiz, deux synchronisations et six fichiers
|
||||
personnels témoins conservés octet par octet. Le JAR de production démarre et
|
||||
s'arrête dans un monde plat de développement neuf avec le JEI imbriqué ;
|
||||
celui-ci correspond au fork construit. Minecraft normalise lui-même les fichiers
|
||||
`server.properties`, `ops.json` et `whitelist.json` au lancement : leurs valeurs
|
||||
sont vérifiées après cet arrêt, distinctement de la préservation par packwiz.
|
||||
|
||||
La transition du profil client retire réellement le JEI séparé suivi par
|
||||
packwiz et conserve les favoris. Les manifestes de publication client/serveur
|
||||
référencent le même artefact. Aucun nouveau parcours graphique n'est revendiqué ;
|
||||
les contrôles historiques Vulkan de l'interface ne sont pas rejoués ici.
|
||||
|
||||
Journaux et reçus ignorés : `build/jei-server-final.log`,
|
||||
`build/server280-updater-final.log`, `build/server280-validation-delivery/validation.json`,
|
||||
`build/client280-validation/validation.json`.
|
||||
|
||||
## Serveur dédié demandé le 25 octobre 2026
|
||||
|
||||
Le créateur demande une **nouvelle CT pour 20 joueurs** sur le nœud `gpu`.
|
||||
La CT 350 `sanctuary-beta-20` est créée à cette fin : Debian 13 amd64,
|
||||
6 vCPU, 8 Gio de RAM, disque 80 Gio, non privilégiée. Le budget Java retenu est
|
||||
6 Gio, avec 20 places, portée 6 et simulation 4 ; ce dimensionnement n'est pas
|
||||
une mesure de charge avec vingt joueurs connectés.
|
||||
|
||||
L'Alpha (CT 300), les CT 330 et 340 et les mondes existants restent hors cible.
|
||||
Le nouveau monde utilisera `sanctuary:sanctuary` (réglages initiaux
|
||||
`sanctuary:island231_medium`), graine `28020261025`, version beta.280.
|
||||
Aucune expansion n'est activée par le déploiement. Le site est dans la CT 320 ;
|
||||
son API et son schéma communautaire 3 sont présents.
|
||||
|
||||
## Livraison et mise en service
|
||||
|
||||
La [release beta.280](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.280)
|
||||
est publiée depuis le commit `23b295356b499404e0056affbb5d3b3811c1b01f`.
|
||||
Le canal packwiz est avancé au commit `338e8a62387048c7e703ef036fda759ef57b4130`,
|
||||
avec les profils client et serveur dans le même commit. Aucun JEI séparé n'est
|
||||
joint. Le MRpack contient le seul JAR Sanctuary en override, et trois dépendances
|
||||
téléchargées (Fabric API, Sodium et Sound Physics).
|
||||
|
||||
| Artefact | SHA-256 |
|
||||
| --- | --- |
|
||||
| `sanctuary-beta.280.jar` | `489dade38218d34d2a4502fa4ffe71f0bc13035948dc1c52b633b528e9855c7e` |
|
||||
| `Sanctuary-Server-beta.280.zip` | `54ed73e75b53305a9f0cc5505f3d64624d23598f906ac69d121030255ced0d5a` |
|
||||
| `Sanctuary-beta.280.mrpack` | `b23ba2d9cf72d27da2595e3f4a32a36656f71abf2d2cb4d6cefd7f9d29e4cd01` |
|
||||
|
||||
Le kit téléchargé dans la nouvelle CT correspond à cet artefact immuable.
|
||||
Java 25, Python 3.13 et le service `sanctuary-beta.service` sont installés ;
|
||||
le service est activé au démarrage. Le premier monde Sanctuary a été créé à
|
||||
la graine annoncée, avec le générateur 231, taille Medium, en Survie et
|
||||
`online-mode=true`. La réponse réseau Minecraft annonce 26.3, protocole 777,
|
||||
**20 places**, et le JEI embarqué est chargé côté serveur.
|
||||
|
||||
La synchronisation packwiz a été exécutée après arrêt propre du nouveau serveur :
|
||||
**61 fichiers de monde, de configuration et de secrets gardent leurs hashes**.
|
||||
Le même monde redémarre ensuite. L'outil maintient son verrou jusqu'à la fin
|
||||
de la sauvegarde Java, y compris lorsque systemd transmet SIGTERM.
|
||||
|
||||
L'API du site accepte l'authentification et refuse un corps de vérification
|
||||
vide avec HTTP 422 : aucun code d'habitant n'est consommé. L'accueil serveur
|
||||
confirme que les codes sont requis. Un compte MariaDB propre à Beta a été créé,
|
||||
restreint à son hôte et aux sept tables nécessaires, avec TLS obligatoire ;
|
||||
Connector/J utilise `sslMode=verify-full`. Le schéma existant 3 n'est pas migré.
|
||||
La ligne de statistiques du nouveau serveur est alimentée toutes les 30 secondes.
|
||||
|
||||
La console du site était non configurée. Seules ses trois variables RCON ont
|
||||
été renseignées pour Beta, après sauvegarde privée ; le cache Laravel est
|
||||
reconstruit sans redémarrer le site. La commande de lecture `list`, appelée
|
||||
par le vrai service PHP, répond « 0 of a max of 20 ». Le port RCON est filtré
|
||||
dans la CT Beta : accès du site et de loopback uniquement, refus depuis un autre
|
||||
client LAN. Aucune redirection publique RCON n'est créée.
|
||||
|
||||
Les secrets restent dans `/etc/sanctuary/beta.env`, le `server.properties`
|
||||
privé et l'environnement Web, jamais dans Git ou packwiz. Les unités
|
||||
`sanctuary-beta-rcon-firewall.service` et le complément systemd associé
|
||||
appartiennent à cette installation, hors de l'index de mods.
|
||||
|
||||
Le domaine demandé est `beta.sanctuary-minecraft.net`. Les deux enregistrements
|
||||
OVH sont publiés : A pour Beta et SRV `_minecraft._tcp.beta` vers le port 25567,
|
||||
TTL 300. Les quatorze enregistrements DNS préexistants sont conservés. Une
|
||||
réservation DHCP lie l'adresse de la CT à sa MAC ; elle est activée après test
|
||||
de syntaxe et redémarrage de dnsmasq, sans changer ses deux fichiers existants.
|
||||
Aucun serveur Minecraft ou proxy existant n'est redémarré par cette opération.
|
||||
|
||||
Une redirection UPnP Beta seule a servi d'amorçage. Le 25 octobre, le créateur
|
||||
réenregistre la règle Bbox permanente « Sanctuary beta 20 » : **port externe
|
||||
25567 → 192.168.1.122:25565**. L'API de la Bbox déclare encore `protocol=all`
|
||||
(TCP/UDP) ; l'accès Minecraft TCP est vérifié.
|
||||
|
||||
La redirection UPnP appartenant à Beta est ensuite supprimée. Son timer est
|
||||
désactivé, le service est arrêté, puis les trois fichiers du maintien sont
|
||||
retirés de la configuration active et archivés dans la CT sous
|
||||
`/root/sanctuary-beta-maintenance/upnp-retired-20261025-1792900244/`.
|
||||
Les sept autres règles NAT permanentes et les quatre autres redirections UPnP
|
||||
sont conservées. Le processus Minecraft reste le même : aucun redémarrage ni
|
||||
modification d'une sauvegarde n'est nécessaire à ce retrait.
|
||||
|
||||
Après suppression du secours, `beta.sanctuary-minecraft.net:25567` répond bien
|
||||
Minecraft **26.3**, protocole **777**, **0/20**, avec le MOTD du nouveau Beta.
|
||||
Le SRV public permet de saisir seulement `beta.sanctuary-minecraft.net`.
|
||||
La vérification utilise le chemin public depuis le LAN (hairpin) ; une validation
|
||||
depuis un réseau Internet extérieur reste à effectuer.
|
||||
|
||||
Le [MRpack client publié](https://git.botsu.net/koka/sanctuary-beta/releases/download/beta.280/Sanctuary-beta.280.mrpack)
|
||||
est retéléchargé et vérifié : 16 589 058 octets, hash identique au fichier local,
|
||||
ZIP intègre, version beta.280, Minecraft 26.3 et un seul override Sanctuary avec
|
||||
JEI intégré.
|
||||
|
||||
Aucune charge réelle avec vingt joueurs, nouvelle connexion OAuth Discord ou
|
||||
nouvelle qualification graphique n'est revendiquée.
|
||||
|
||||
Les sources sont isolées de Map Island Zoom. La prochaine livraison doit
|
||||
reprendre ce profil serveur et utiliser un compteur supérieur à beta.280.
|
||||
L'instance Prism personnelle n'a pas été synchronisée par cette mise en service.
|
||||
|
||||
Preuves locales supplémentaires : `build/server280-publication.log`,
|
||||
`build/server280-deployment.log`, `build/server280-gpu-update-validation.log`,
|
||||
`build/server280-rcon-setup.log`, `build/server280-dhcp-reservation.log`,
|
||||
`build/server280-upnp-retirement.log` et
|
||||
les inventaires sous `/root/beta-publication-20261025/` sur PVE. Ces fichiers
|
||||
restent hors de Git.
|
||||
|
||||
## Raccordement Sanctuary Web corrigé le 25 octobre 2026
|
||||
|
||||
Le statut et l'Intendance de [Sanctuary Web](https://sanctuary-minecraft.net)
|
||||
lisaient encore l'ancienne base distante par la connexion Laravel `game`, alors
|
||||
que Beta écrivait déjà dans la base `sanctuary` de la CT Web 320. La vérification
|
||||
initiale des écritures serveur ne couvrait donc pas toutes les lectures du site.
|
||||
Hermes confirme l'identité de cette instance Web ; les anciens sites de release
|
||||
ne sont pas remis en service.
|
||||
|
||||
La connexion `game` utilise maintenant la même base locale que Beta, en gardant
|
||||
`COMMUNITY_DB_CONNECTION=game` pour les services et les ressources
|
||||
d'administration. Le cache de configuration Laravel est reconstruit. Les sources
|
||||
Web déployées, qui contiennent des changements préexistants, restent inchangées.
|
||||
La connexion Discord fonctionne selon le créateur et n'est pas modifiée.
|
||||
|
||||
La nouvelle communauté ne contient aucune publication : Gazette, Tableau et
|
||||
Intendance affichent désormais cet état, sans suppression dans l'ancienne base.
|
||||
Les trois comptes, dont deux administrateurs, le groupe d'équipe, ses deux
|
||||
adhésions et les vingt-deux permissions sont conservés. Les empreintes des
|
||||
identités, des droits administrateurs et des tables d'équipe sont identiques
|
||||
avant et après l'opération.
|
||||
|
||||
Les services publics et les requêtes d'administration Gazette/Tableau lisent
|
||||
zéro publication. La page d'accueil et les deux listes publiques répondent HTTP
|
||||
200. Les métriques sont fraîches, le serveur est déclaré en fonctionnement, et
|
||||
son temps cumulé continue d'augmenter. Le compteur reste à zéro jour tant que
|
||||
Beta n'a pas cumulé vingt-quatre heures ; les anciens décès ne sont plus affichés.
|
||||
|
||||
La configuration précédente est sauvegardée dans la CT Web, avec accès root
|
||||
seul, sous
|
||||
`/root/sanctuary-beta-maintenance/web-game-connection-20261025-1792901058/`.
|
||||
Le reçu `build/sanctuary-web-beta-alignment.log` et la capture
|
||||
`build/sanctuary-web-beta-after.png` restent hors de Git. Cette correction de
|
||||
configuration et de documentation ne change aucun binaire beta.280 ni aucune
|
||||
sauvegarde Minecraft.
|
||||
@@ -0,0 +1,60 @@
|
||||
# INSECT-06 — Sauterelles et criquets en déplacement, beta.250
|
||||
|
||||
Retour du créateur le 8 octobre 2026 : les sauterelles sautaient sur place ;
|
||||
les bonds doivent les déplacer, y compris durant leur fuite.
|
||||
Branche `codex/jumping-insects-beta250`.
|
||||
|
||||
Espèces concernées : sauterelle, criquet long et criquet migrateur.
|
||||
Le serveur choisit un nouveau point au sol pour chaque bond et déplace
|
||||
l’insecte en arc vers ce point. Les bonds ordinaires durent 20 ticks,
|
||||
parcourent 0,9 à 1,4 bloc et culminent à 0,65 bloc, avec une pause de 35 à
|
||||
65 ticks entre les sauts. Le vagabondage reste à 2,5 blocs du point d’apparition.
|
||||
|
||||
La fuite interrompt le bond en cours sans téléporter l’insecte : un arc
|
||||
part de sa position courante vers une destination à 1,6 bloc dans la direction
|
||||
opposée au joueur. Les bonds durent 8 ticks, s’enchaînent sans pause et
|
||||
l’insecte disparaît après les 24 ticks habituels de fuite.
|
||||
|
||||
Avant un bond, chaque segment de l’arc doit rester dans des chunks chargés
|
||||
et éviter les collisions ; l’arrivée doit avoir un support terrestre valide
|
||||
et sec, au même niveau ou à un bloc de différence. Le support est actualisé
|
||||
à l’atterrissage. Un obstacle peut faire choisir une autre direction ; aucun
|
||||
chunk ni bloc n’est créé par ce déplacement. Les autres espèces conservent
|
||||
leurs comportements, captures silencieuses et sons existants.
|
||||
|
||||
Vérifications réussies le 8 octobre 2026 :
|
||||
|
||||
- `./gradlew check build assemblePack assembleTestPack :sanctuary-test:exportDuoLaunch
|
||||
-PsanctuaryFocusedTests=insects245 -PsanctuaryAtlasOnly=true` : 16 GameTests
|
||||
requis et les contrôles de compilation/ressources réussis. Les trois espèces
|
||||
parcourent un arc, atterrissent, restent immobiles entre deux bonds et
|
||||
vagabondent sur un support valide. Deux atterrissages de fuite en 16 ticks,
|
||||
interruption en plein saut sans téléportation, murs fermés et refus de
|
||||
l’eau vérifiés dans le moteur réel.
|
||||
- Client natif exclusivement Vulkan : déplacement horizontal et vertical
|
||||
reçu par les paquets du serveur, puis fuite déclenchée en plein bond et
|
||||
disparition. Captures silencieuses au filet debout, 47 sprites d’inventaire,
|
||||
traductions FR/EN, neuf fichiers audio décodés, midi et ciel dégagé passent
|
||||
également. Journal `build/insects250/client-vulkan.log`, marqueur
|
||||
`INSECTS250_CLIENT_PASS` ; captures dans `build/insects250/screenshots/`.
|
||||
- Exports [Sanctuary beta.250](../build/Sanctuary-beta.250.mrpack) et
|
||||
[Sanctuary Test beta.250](../build/Sanctuary-Test-beta.250.mrpack) : ZIP,
|
||||
version, Minecraft 26.3/Fabric Loader 0.19.5 et JAR embarqués vérifiés.
|
||||
|
||||
Le dossier `/Users/koka/Downloads/Sanctuary-textures-beta.249/` reste
|
||||
disponible ; les 47 textures et les neuf sons conservent leurs hashes.
|
||||
Il n’y a pas de modification du format de sauvegarde ni de la génération.
|
||||
Les essais utilisent des mondes de développement jetables ; la publication
|
||||
et l’instance Prism personnelle ne sont pas mises à jour.
|
||||
|
||||
Pour la visite jouable : `/insectes 11` (criquet long), `/insectes 12`
|
||||
(criquet migrateur), `/insectes 28` (sauterelle). `/insectes observer`
|
||||
permet de regarder sans effrayer ; `/insectes jouer` remet le filet et
|
||||
la réaction à l’approche. L’appréciation de la cadence reste à faire par
|
||||
le créateur dans cette visite.
|
||||
|
||||
Visite `review-08` ouverte en beta.250 sur un nouveau monde plat graine 246,
|
||||
disposition d’inspection version 2, midi fixe et ciel dégagé. Les 47 espèces
|
||||
et sprites sont vérifiés à l’ouverture ; le lancement conserve une copie
|
||||
du runtime pour rester indépendant d’une reconstruction Gradle ultérieure.
|
||||
[Reçu local](../build/insects250/validation.json).
|
||||
@@ -0,0 +1,74 @@
|
||||
# INSECT-05 — Coccinelle billboard et textures à remplacer, beta.249
|
||||
|
||||
Demande du créateur le 8 octobre 2026, après inspection de beta.248.
|
||||
Branche `codex/ladybug-texture-export-beta249`.
|
||||
|
||||
La coccinelle utilise le rendu billboard vertical orienté vers la caméra.
|
||||
Son habitat sur fleur, son sprite, ses saisons et son comportement demeurent
|
||||
identiques. Le point d’appui utilise maintenant le contour natif de la fleur
|
||||
ou des feuilles + 0,005 bloc, partagé par le laboratoire. Le rendu compense
|
||||
les deux lignes transparentes sous les pattes. Sans ce recalage, le nouveau
|
||||
quad vertical flottait au-dessus de la fleur. Le catalogue change uniquement
|
||||
`ladybug.shape`, de `FLAT` vers `BILLBOARD`, sans nouveau mode de rendu
|
||||
ni changement de sauvegarde.
|
||||
|
||||
Un export local rassemble les images statiques du client Minecraft 26.3,
|
||||
des mods du pack et du resource pack Sanctuary actif. Il conserve les
|
||||
chemins `assets/<namespace>/...`, dimensions et fichiers `.mcmeta` associés.
|
||||
Le dossier de travail regroupe les versions visibles dans le jeu ; les
|
||||
sources conservent les variantes masquées par un remplacement de resource pack.
|
||||
L’inventaire CSV/JSON indique source, chemin, dimensions et empreinte.
|
||||
Les fichiers générés, JAR et dépendances ne sont pas ajoutés au dépôt.
|
||||
|
||||
Dossier local : `/Users/koka/Downloads/Sanctuary-textures-beta.249/`.
|
||||
Le sous-dossier `a-modifier/` est un resource pack Minecraft 26.3 au format
|
||||
97.1 prêt à accueillir les dessins. Il contient 4 671 images visibles et
|
||||
245 fichiers `.mcmeta` ; `sources/` conserve les 4 810 images sources avant
|
||||
remplacements. Dix icônes du client sont aussi copiées séparément.
|
||||
Les 47 insectes sont dans `a-modifier/assets/sanctuary/textures/insect/`.
|
||||
|
||||
L’index d’assets Minecraft est également lu et ses SHA-1 vérifiés : panorama,
|
||||
images Realms et icônes. PNG et métadonnées sont copiés sans retouche ;
|
||||
chaque SHA-256 est vérifié avant de rendre le dossier disponible.
|
||||
Le dossier existe séparément du dépôt et l’export refuse d’écraser un dossier
|
||||
existant. L’archive `Sanctuary-textures-beta.249.zip` est vérifiée.
|
||||
Les skins, cartes et textures générées à l’exécution ne sont pas des images
|
||||
statiques à exporter. Les anciennes archives non chargées ne sont pas utilisées.
|
||||
|
||||
Reproduction depuis le lancement Gradle exporté :
|
||||
|
||||
```sh
|
||||
python3 scripts/export_textures.py --output /chemin/vers/un/nouveau-dossier
|
||||
```
|
||||
|
||||
Le script utilise le JAR du client exact, les ressources des mods du classpath
|
||||
et le pack Sanctuary actif. L’export de cette livraison utilise
|
||||
`build/duo/client.args`, Minecraft 26.3 et Sanctuary beta.249.
|
||||
Les notices et provenances connues sont copiées, sans attribuer au créateur
|
||||
la propriété des images reçues.
|
||||
|
||||
## Vérifications
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack` réussit avec
|
||||
`-PsanctuaryFocusedTests=insects245 -PsanctuaryAtlasOnly=true` : 13 GameTests
|
||||
requis passent. Le contrôle client Vulkan natif passe après correction
|
||||
du point d’appui : coccinelle sur le contour natif de sa fleur, trois angles
|
||||
de caméra rendus et examinés, 47 sprites et traductions FR/EN, cinq modes
|
||||
de rendu, capture debout silencieuse, midi/ciel clair, neuf sons décodés
|
||||
et arrêt du bourdonnement après fuite.
|
||||
|
||||
Logs : `build/insects249/check-build-pack-final.log`,
|
||||
`build/insects249/client-vulkan-final.log`. Captures finales dans
|
||||
`build/insects249/screenshots/`. Le premier rendu révélait la hauteur
|
||||
ancienne de 0,9 bloc et est conservé dans `screenshots-before-contact/`.
|
||||
La visite beta.248 a gardé ses fichiers figés pendant les builds ;
|
||||
la visite `review-07` est ouverte en beta.249, midi et ciel clair,
|
||||
47 espèces et sprites vérifiés. `/insectes 31` choisit la coccinelle.
|
||||
Son lancement utilise une copie figée des classes et ressources.
|
||||
|
||||
Packs locaux : [Sanctuary](../build/Sanctuary-beta.249.mrpack) et
|
||||
[Sanctuary Test](../build/Sanctuary-Test-beta.249.mrpack). ZIP, versions et JAR
|
||||
embarqués vérifiés. Publication et instance Prism ne sont pas utilisées.
|
||||
[Reçu final et empreintes](../build/insects249/validation.json).
|
||||
245 des 253 fichiers préexistants sont identiques ; les 8 autres sont
|
||||
étendus par ce ticket. Aucun fichier préexistant supprimé.
|
||||
@@ -0,0 +1,109 @@
|
||||
# MAP-244 — Carte Habitant et chunks reçus
|
||||
|
||||
Branche `codex/map-chunk-sync-beta244`, base locale beta.243, Minecraft 26.3.
|
||||
Demande du 7 octobre 2026 ; livraison locale beta.244.
|
||||
|
||||
## Contrat
|
||||
|
||||
La vue Habitant doit relever les chunks effectivement envoyés au joueur par
|
||||
Minecraft, à sa distance de vue, et conserver ces découvertes personnelles.
|
||||
Le vol créatif ne doit plus laisser de trous à cause d'un relevé tournant dans
|
||||
un rayon de 32 blocs. Aucun chargement supplémentaire, partage des relevés,
|
||||
changement de génération, format de sauvegarde ou monde personnel.
|
||||
Les six coupes d'altitude restent disponibles, avant et après l'achat Atlas.
|
||||
La vue Opérateur demeure une inspection distincte.
|
||||
|
||||
La carte ouverte et la carte Pause reçoivent les changements du viewport
|
||||
avec leur jeton courant ; permissions, dimension et annulation restent
|
||||
contrôlées côté serveur. Les noms et positions distantes se renouvellent
|
||||
toutes les cinq secondes. La carte reste une projection de dessus des chunks
|
||||
reçus, sans calcul de visibilité optique ou d'occlusion.
|
||||
|
||||
## Vérification et limites
|
||||
|
||||
Le parcours natif Vulkan passe en **1 min 41 s** sur MoltenVK 1.4.2 / Apple M1 :
|
||||
déplacement créatif de **320 blocs en 80 ticks**, correspondance entre les
|
||||
chunks réellement présents côté client et les six relevés personnels serveur,
|
||||
absence de pixels inconnus dans ces chunks, mise à jour de la carte ouverte
|
||||
sans nouveau jeton, placement d'un bloc d'or actualisé par delta, paquets
|
||||
obsolètes rejetés, Pause FR/EN avec changements du réglage GUI 2/3/4, sauvegarde/relecture
|
||||
du schéma existant et révocation d'Atlas. À distance de vue **32**, **3 003
|
||||
chunks reçus** sont contrôlés ; il ne s'agit pas d'une prégénération intégrale.
|
||||
|
||||
Sur **128 chunks plats**, après échauffement, le calcul des **six couches**
|
||||
mesure **0,045 ms en moyenne**, **0,046 ms au 95e percentile**, par chunk.
|
||||
Cette mesure porte sur le calcul de couleurs, sans les coûts de sauvegarde,
|
||||
réseau ou rendu ; elle ne promet pas le même résultat sur l'île Sanctuary,
|
||||
un gain de FPS, ni une capacité multijoueur donnée.
|
||||
|
||||
```sh
|
||||
./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true \
|
||||
-PsanctuaryMap244ClientTests=true -PsanctuaryClientGraphicsBackend=vulkan
|
||||
./gradlew check build assemblePack \
|
||||
-PsanctuaryFocusedTests=map244,map,waystones239 -PsanctuaryAtlasOnly=true
|
||||
cd build/packwiz
|
||||
packwiz modrinth export --output ../Sanctuary-beta.244.mrpack
|
||||
```
|
||||
|
||||
Log client : `build/map244-client-vulkan.log`, marqueur `MAP244_CLIENT_PASS`.
|
||||
**`check build assemblePack` passe en 2 min 48 s**, avec les contrôles purs
|
||||
du dépôt et **14 GameTests requis** : deux tests MAP-244, deux tests Atlas
|
||||
existants, les neuf tests Waystones / positions des joueurs et le framework.
|
||||
Les nouveaux tests contrôlent les six relevés complets au-delà de l'ancien
|
||||
rayon, avant achat Atlas, leur séparation personnelle, l'absence de réécriture
|
||||
sur livraison identique, l'exclusion des spectateurs et l'absence de chargement
|
||||
distant. Log : `build/map244-check-build-pack.log`. Une seconde mesure sur
|
||||
56 chunks du serveur **plat** donne 0,091 ms en moyenne et 0,120 ms au 95e
|
||||
percentile ; elle ne constitue pas un benchmark du terrain Sanctuary.
|
||||
|
||||
## Implémentation
|
||||
|
||||
Le point d'envoi natif `PlayerChunkSender.sendChunk` relève le chunk FULL
|
||||
déjà envoyé au joueur. `dropChunk` retire seulement sa présence dans la vue,
|
||||
sans effacer les découvertes. Les chunks reçus avant la création de l'habitant
|
||||
restent identifiés pour un relevé ultérieur. Les spectateurs ne découvrent pas
|
||||
de terrain ; les cartes des autres habitants ne sont jamais copiées.
|
||||
|
||||
Un cache partagé pendant un tick évite de recalculer les six couches lorsque
|
||||
plusieurs habitants reçoivent le même chunk. Les constructions visibles
|
||||
invalident ce cache et entrent dans une file dédupliquée, prioritaire sur les
|
||||
revisites. Ces dernières et les changements de blocs disposent de **16 chunks
|
||||
maximum et 2 ms par tick serveur**, avec au plus quatre chunks par habitant ;
|
||||
un calcul de chunk commencé ne peut pas être interrompu. L'ordre des habitants
|
||||
tourne pour répartir ce budget. Le relevé d'un chunk nouvellement envoyé est
|
||||
synchrone avec l'envoi natif et s'ajoute à son coût, hors budget de revisite.
|
||||
|
||||
Une requête garde son abonnement jusqu'à la fermeture, un déplacement de
|
||||
viewport, un changement de couche ou une perte d'autorisation. Seules les
|
||||
tuiles changées sont poussées, avant le fond historique restant à transmettre.
|
||||
Un lot personnel est plafonné à **64 chunks** (anciennement 16), soit environ
|
||||
17 Kio de couleurs et coordonnées ; Demeure garde son lot apparié. Les paquets
|
||||
identiques ne salissent ni la sauvegarde ni la texture Atlas. Les marqueurs
|
||||
et positions distantes gardent une cadence de cinq secondes. Une relecture
|
||||
complète de secours se fait après une minute, plutôt que toutes les cinq
|
||||
secondes ; l'inspection Opérateur conserve sa cadence précédente.
|
||||
|
||||
## Limites et distribution
|
||||
|
||||
La limite existante de **16 384 chunks par couche et habitant** est conservée :
|
||||
une carte pleine ne peut plus ajouter de terrain et signale cet état. Les
|
||||
relevés préexistants et leur masque sont conservés ; revisiter un chunk reçu
|
||||
complète son relevé sans migration. Aucun terrain déjà visité mais absent des
|
||||
anciens relevés n'est reconstitué automatiquement. La fenêtre graphique garde
|
||||
ses 64 × 64 chunks, son zoom et ses contrôles ; les relevés au-delà restent
|
||||
consultables en déplaçant la carte. Le changement de plafond garde son jeton
|
||||
indépendant et les six fichiers existants.
|
||||
|
||||
Tests effectués dans des mondes de développement neufs. Aucun monde personnel,
|
||||
canal packwiz, instance Prism ou publication distante modifié. Les changements
|
||||
préexistants beta.242/243 sont conservés ; 49 fichiers de ces chantiers hors
|
||||
fichiers partagés sont vérifiés identiques à l'état de départ.
|
||||
|
||||
[MRpack local beta.244](../build/Sanctuary-beta.244.mrpack) vérifié :
|
||||
**12 918 991 octets**, ZIP intègre, Minecraft 26.3 / Fabric Loader 0.19.5,
|
||||
un seul JAR Sanctuary, identique au build testé. Les deux mixins de suivi et
|
||||
les visages beta.243 sont présents ; aucun GameTest ni monde n'est embarqué.
|
||||
Mod, pack et manifeste alignés. Reçu : `build/map244-validation.json`.
|
||||
|
||||
- SHA-256 JAR : `0ec7866df185601e493d0ee94588c552b906e76b16c061a2b52217a02cfe8b03`.
|
||||
- SHA-256 MRpack : `3c224ea6256a574ca200affbcfb40a3b8174cc5f5cc8aac220c96b46fa37e3aa`.
|
||||
@@ -0,0 +1,126 @@
|
||||
# MAP-279 — Carte des îles et grand dézoom
|
||||
|
||||
Branche `codex/map-islands-zoom`, base beta.278 ; livraison locale beta.279,
|
||||
Minecraft 26.3, demande du 25 octobre 2026.
|
||||
|
||||
## Résultat
|
||||
|
||||
La limite de zoom liée à une fenêtre de 1 024 blocs disparaît. La molette et
|
||||
les boutons permettent de passer du détail des blocs à une vue de plusieurs
|
||||
îles, puis à une emprise de 67 108 864 blocs, suffisante pour cadrer le monde.
|
||||
Le dézoom reste centré sous le pointeur ; les boutons gardent le centre de la
|
||||
vue. Les zones découvertes éloignées sont affichées ensemble ; les zones non
|
||||
relevées restent inconnues. Le centre de la carte peut rester fixe pendant que
|
||||
le joueur se déplace et reçoit de nouveaux chunks.
|
||||
|
||||
Le message « Carte pleine : nouveaux relevés suspendus » provenait du plafond
|
||||
de 16 384 chunks par couche et habitant. Il passe à **131 072**, sans éviction
|
||||
des découvertes. Une carte ayant atteint l'ancien plafond reprend ses relevés
|
||||
lorsque les chunks sont de nouveau reçus ou revisités. Les parcours non
|
||||
conservés avant ce correctif ne peuvent pas être reconstitués automatiquement.
|
||||
Cette capacité reste bornée ; ce lot ne promet pas une exploration illimitée.
|
||||
|
||||
## Rendu et serveur
|
||||
|
||||
La texture reste de 1 024 × 1 024 pixels. Seize niveaux de réduction regroupent
|
||||
les couleurs par carrés de 2, 4, 8… jusqu'à 65 536 blocs de côté par texel.
|
||||
Le niveau demandé dépend de la fenêtre et du zoom ; le serveur ne transmet
|
||||
que les tuiles de ce niveau dans le viewport, par lots de 64 maximum.
|
||||
Les caches réduits sont calculés à partir des seuls relevés personnels,
|
||||
à la demande, et invalidés par les changements de terrain. Les couleurs de
|
||||
terrain sont privilégiées sur le vide relevé pour garder les petits îlots.
|
||||
Ce choix accentue les très petites zones et n'est pas une mesure de leur aire.
|
||||
|
||||
Les six couches d'altitude restent distinctes. Les positions des joueurs et
|
||||
les marqueurs utilisent la même emprise étendue. La vue opérateur réduit
|
||||
uniquement les chunks déjà chargés, échantillonnés à son budget existant de
|
||||
quatre chunks par tick ; elle reste séparée des relevés personnels.
|
||||
Les permissions, jetons, dimensions et cadences de requête restent contrôlés.
|
||||
L'aperçu Pause conserve son échelle proche et bénéficie de la capacité accrue.
|
||||
|
||||
Les contours des propriétés, Demeure et le clic droit sur un chunk restent
|
||||
accessibles au niveau détaillé ; la vue d'ensemble indique en FR/EN qu'il faut
|
||||
zoomer pour les retrouver. La grille s'efface lorsque ses lignes seraient
|
||||
espacées de moins de huit pixels. L'échelle affiche les blocs par pixel au
|
||||
lieu d'un multiplicateur arrondi à zéro.
|
||||
|
||||
## Persistance et compatibilité
|
||||
|
||||
Les fichiers `data/sanctuary-atlas/<UUID>.json` et leurs six couches gardent
|
||||
le schéma 2, les mêmes coordonnées, couleurs, propriétaires et graines.
|
||||
Les lecteurs historiques de schéma 1 restent identiques. Aucun niveau réduit
|
||||
n'est écrit dans les sauvegardes. La limite de taille acceptée passe de 12 à
|
||||
64 Mio par fichier pour accueillir le plafond élargi ; les écritures atomiques
|
||||
et le refus d'écraser un fichier modifié extérieurement sont conservés.
|
||||
Aucun changement de génération, chunk, identifiant ou expansion.
|
||||
|
||||
Le protocole `sanctuary:atlas_request` ajoute le niveau de détail : mettre à
|
||||
jour client et serveur ensemble. Un retour vers beta.278 exige la copie
|
||||
antérieure des relevés dès qu'une couche a dépassé 16 384 chunks : l'ancien
|
||||
lecteur refuse un tel fichier. Aucune sauvegarde personnelle ni instance de
|
||||
jeu n'est ouverte ou modifiée par ce ticket.
|
||||
|
||||
## Vérification
|
||||
|
||||
Les contrôles purs couvrent les seize réductions, les coordonnées négatives,
|
||||
le bord du monde, la conservation d'un petit îlot, l'invalidation après une
|
||||
construction, les zones inconnues, les bornes des requêtes et les marqueurs
|
||||
lointains. Le schéma 2 est sauvegardé puis relu avec 17 000 chunks ; le plafond
|
||||
courant est aussi atteint sans éviction.
|
||||
|
||||
Commandes de validation :
|
||||
|
||||
```sh
|
||||
./gradlew check build assemblePack \
|
||||
-PsanctuaryFocusedTests=map244,map,claims273,claims277,waystones239 \
|
||||
-PsanctuaryAtlasOnly=true
|
||||
./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true \
|
||||
-PsanctuaryMap279ClientTests=true -PsanctuaryClientGraphicsBackend=vulkan \
|
||||
-PsanctuaryClientHeapGb=8 -PsanctuaryClientNoVsync=true
|
||||
```
|
||||
|
||||
Le parcours graphique utilise un monde plat de développement neuf, graine
|
||||
`279`, et cinq relevés de contrôle espacés de 8 192 blocs pour isoler les
|
||||
problèmes d'échelle. Il ne constitue pas une visite des cinq continents
|
||||
Sanctuary ni un benchmark multijoueur. Les déplacements lointains, envois
|
||||
natifs de chunks et changements de blocs utilisent le vrai serveur intégré.
|
||||
Le parcours **Vulkan / MoltenVK 1.4.2 / Apple M1** passe en **1 min 07 s**,
|
||||
avec **11 captures**. Il vérifie les cinq relevés simultanés, une arrivée réelle
|
||||
à 9 008 blocs sans déplacer le centre de la carte ni changer son jeton,
|
||||
un bloc d'or natif nouvellement relevé, un dézoom au-delà de 256 blocs par pixel puis au
|
||||
niveau maximal, l'emprise du monde sur les deux axes, le retour à la couleur
|
||||
exacte du bloc, Pause, FR/EN GUI 2/3/4 et le retrait de l'aptitude Atlas.
|
||||
Une tuile chargée pour le seul contrôle opérateur, à 12 000 blocs, apparaît
|
||||
dans son aperçu réduit sans entrer dans les relevés personnels, puis disparaît
|
||||
quand les commandes sont retirées. Le chargement forcé appartient uniquement
|
||||
à la fixture du monde de test ; les requêtes Atlas n'en créent pas.
|
||||
|
||||
Les captures de vue d'ensemble FR GUI 4, de retour au détail, d'échelle du
|
||||
monde et d'opérateur ont été inspectées. Les cinq petits carrés colorés sont
|
||||
des relevés de contrôle, pas des captures du relief des continents.
|
||||
Captures : `build/map279-screenshots/` ; log :
|
||||
`build/map279-client-vulkan.log`, marqueur `MAP279_CLIENT_PASS`.
|
||||
|
||||
La construction complète et les **20 tests serveur ciblés** passent : relevé
|
||||
natif au-delà de l'ancien plafond, six couches, absence de découverte chez un
|
||||
autre habitant ou un spectateur, droits Atlas, claims, Demeure et Waystones.
|
||||
Le log est `build/map279-check-build-pack.log`. Les contrôles purs du dépôt
|
||||
passent également. La capacité maximale en multijoueur et le coût de sauvegarde
|
||||
d'une couche entièrement remplie ne sont pas mesurés par ce lot.
|
||||
|
||||
|
||||
## Artefacts locaux
|
||||
|
||||
La dernière passe `check build assemblePack` passe en **3 min 54 s**.
|
||||
Le MRpack est exporté et vérifié : intégrité ZIP, Minecraft 26.3, Loader 0.19.5,
|
||||
un seul JAR Sanctuary beta.279 identique au build local, nouvelle pyramide
|
||||
présente, fixtures de tests absentes et trois libellés FR/EN embarqués. Le JAR
|
||||
JEI est également identique au build local ; les trois dépendances distantes
|
||||
gardent leurs empreintes. Reçu : `build/map279-validation.json`.
|
||||
|
||||
- JAR : `mods/sanctuary/build/libs/sanctuary-beta.279.jar`, 16 239 330 octets.
|
||||
- MRpack : `build/Sanctuary-beta.279.mrpack`, 16 593 044 octets.
|
||||
- SHA-256 du MRpack : `1ebe43f559cec3727fea17ed8cf5593702109ceb6151f5e45125beda83cda6c8`.
|
||||
|
||||
Cette livraison est locale : aucun canal, tag distant, serveur personnel ou
|
||||
instance Prism n'est modifié.
|
||||
@@ -0,0 +1,103 @@
|
||||
# MAP-243 — Visages des joueurs au premier plan
|
||||
|
||||
Branche `codex/map-player-heads-beta243`, base locale beta.242,
|
||||
Minecraft **26.3**, livraison locale **beta.243**.
|
||||
Demande du 7 octobre 2026.
|
||||
|
||||
## Contrat
|
||||
|
||||
Dans l’Atlas et dans la carte du menu Pause, afficher les joueurs par le
|
||||
visage de leur skin, avec sa seconde couche. Dessiner les visages après le
|
||||
terrain, les propriétés, la grille, les waystones et les annonces suivies.
|
||||
Conserver un repère de direction pour le joueur local et afficher le nom
|
||||
au survol. Les autres joueurs de la même dimension sont localisés par le
|
||||
serveur, y compris au-delà de la distance de suivi des entités ; cette
|
||||
information ne découvre aucun terrain. L’accès reste soumis à l’aptitude Atlas.
|
||||
|
||||
Les waystones appartenant à un ascenseur ne figurent plus sur aucune des
|
||||
deux cartes. Utiliser l’index serveur complet pour identifier une colonne,
|
||||
y compris lorsque les autres étages sont inconnus ou hors de la coupe
|
||||
d’altitude. Les téléporteurs isolés découverts restent visibles. Après
|
||||
suppression du dernier autre étage, la pierre isolée redevient visible.
|
||||
Les voyages, noms, découvertes et sauvegardes restent conservés.
|
||||
|
||||
## Positions et rendu
|
||||
|
||||
Paquet transitoire `sanctuary:atlas_players_v1` : jeton de carte, UUID, nom,
|
||||
positions X/Z précises. Le serveur exige l’accès Atlas, filtre la dimension
|
||||
et le viewport de 1024 blocs, exclut les autres spectateurs et plafonne
|
||||
chaque réponse à 1024 joueurs. Les positions sont renouvelées avec les
|
||||
demandes de carte, toutes les 100 ticks client après la fin du flux de
|
||||
terrain, soit environ cinq secondes en fonctionnement normal. Les entités
|
||||
déjà suivies et le joueur local utilisent leur position client actuelle.
|
||||
Le joueur local est dessiné en dernier entre les visages superposés.
|
||||
|
||||
Le rendu utilise le visage natif Minecraft 26.3 (`PlayerFaceExtractor`),
|
||||
12 pixels GUI, seconde couche incluse. Le skin provient de l’entité ou du
|
||||
`PlayerInfo` reçu du serveur ; le skin natif par défaut sert pendant son
|
||||
chargement. Une nouvelle couche GUI place les visages après les autres
|
||||
repères. Le nom au survol a priorité ; une annonce couverte par un visage
|
||||
ne reçoit pas le clic. La couleur personnelle reste dans le cadre du
|
||||
joueur local, avec son repère de direction.
|
||||
|
||||
Les données sont propres à l’écran et à son jeton. Un paquet obsolète ou
|
||||
reçu sans carte lisible est ignoré ; une perte d’autorisation ou un changement
|
||||
de dimension vide les positions. Aucun nouveau fichier de sauvegarde ni
|
||||
nouveau libellé fixe n’est ajouté. Les interfaces FR/EN existantes sont
|
||||
conservées.
|
||||
|
||||
## Vérification
|
||||
|
||||
Le parcours client **Vulkan / MoltenVK 1.4.2 / Apple M1** passe en **38 s** :
|
||||
FR/EN, échelles GUI 2/3/4, deux cartes, paquets natifs, joueur en ligne sans
|
||||
entité côté client, skin de son `PlayerInfo`, UV du visage et de sa seconde
|
||||
couche. L’ordre du rendu natif et les captures vérifient le visage au-dessus
|
||||
d’une waystone horizontale et d’une annonce placées au même endroit.
|
||||
Les jetons obsolètes, la déconnexion et la révocation d’Atlas sont contrôlés.
|
||||
Le serveur masque un ascenseur dont seul le rez-de-chaussée est découvert.
|
||||
|
||||
```sh
|
||||
./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true \
|
||||
-PsanctuaryMap243ClientTests=true -PsanctuaryClientGraphicsBackend=vulkan
|
||||
./gradlew check build assemblePack \
|
||||
-PsanctuaryFocusedTests=waystones239 -PsanctuaryAtlasOnly=true
|
||||
```
|
||||
|
||||
Log client : `build/map243-client-vulkan.log`, marqueur `MAP243_CLIENT_PASS`.
|
||||
Captures inspectées : [Atlas FR GUI 3](../build/map243-screenshots/atlas-fr_fr-3.png),
|
||||
[Pause FR GUI 3](../build/map243-screenshots/pause-fr_fr-3.png),
|
||||
[Atlas EN GUI 4](../build/map243-screenshots/atlas-en_us-4.png) et
|
||||
[Pause EN GUI 4](../build/map243-screenshots/pause-en_us-4.png).
|
||||
|
||||
**`check build assemblePack` passe en 2 min 43 s**, avec les contrôles purs
|
||||
du dépôt et **dix GameTests requis** : les huit scénarios Waystones, le
|
||||
nouveau scénario de positions des joueurs et le test du framework.
|
||||
L’index, les découvertes et les noms survivent à leur codec existant ; un
|
||||
étage inconnu ou au-dessus de la coupe masque toute la colonne, puis sa
|
||||
suppression fait réapparaître le téléporteur isolé. Le scénario des joueurs
|
||||
contrôle l’accès, le viewport, les dimensions, les spectateurs, la
|
||||
désactivation d’Atlas et le codec réseau. Log :
|
||||
`build/map243-check-build-pack.log`.
|
||||
|
||||
[MRpack local beta.243](../build/Sanctuary-beta.243.mrpack) vérifié :
|
||||
**12 914 930 octets**, ZIP intègre, Minecraft 26.3 / Fabric Loader 0.19.5,
|
||||
un seul JAR Sanctuary, identique au build final. Les classes de la couche
|
||||
de visages et du nouveau paquet sont présentes ; aucun GameTest ni monde
|
||||
n’est embarqué. Mod, pack et manifeste alignés sur beta.243. Les fichiers
|
||||
du chantier beta.242 présents avant le ticket sont conservés ; seuls ses
|
||||
quatre fichiers partagés (README, versions et configuration de tests)
|
||||
reçoivent les ajouts de ce ticket. Reçu : `build/map243-validation.json`.
|
||||
|
||||
- SHA-256 JAR : `497ecdba2603863561af11caa4f6be8d23b4bea12de22078d2f815f557fca1b9`.
|
||||
- SHA-256 MRpack : `1c1ce34650da5eba60112d3a03e67aa48ef77e1e8867b40122c6ab9c68918308`.
|
||||
|
||||
## Limites et distribution
|
||||
|
||||
La fixture multijoueur ajoute un joueur serveur simulé dans la liste en
|
||||
ligne et son `PlayerInfo` au vrai client ; deux clients distants avec latence
|
||||
réelle et un serveur de 1024 joueurs ne sont pas testés. Les joueurs hors
|
||||
du viewport ou d’une autre dimension ne figurent pas sur la carte.
|
||||
La mise à jour des positions distantes suit la cadence décrite ci-dessus.
|
||||
|
||||
Livraison locale ; publication, canal packwiz et instance Prism personnelle
|
||||
non modifiés. Génération, chunks et formats existants conservés.
|
||||
@@ -1,5 +1,15 @@
|
||||
# Menus Sanctuary — organisation
|
||||
|
||||
Évolution courante du 24 octobre 2026 : [Habitant et Pause beta.275](menu-atlas-beta275.md).
|
||||
La fiche ne contient plus que Factions/Familier en navigation, avec statistiques,
|
||||
personnage et biographie en trois colonnes. Une fois Carte débloquée, Pause garde
|
||||
Aventure à gauche, Communauté à droite et Partie sous la carte centrale ; Gazette
|
||||
et Tableau conservent les colonnes latérales. Les descriptions historiques
|
||||
ci-dessous et la [première fiche beta.271](inhabitant-menu-beta271.md) restent des références.
|
||||
|
||||
Évolution du 24 octobre 2026 : [fiche Habitant et Pause beta.271](inhabitant-menu-beta271.md).
|
||||
Le cadrage ci-dessous conserve l’organisation historique de beta.083.
|
||||
|
||||
Cadrage du 15 septembre 2026, à partir de beta.077.
|
||||
Branche documentaire initiale : `codex/menu-architecture`.
|
||||
**Statut : organisation appliquée en [beta.083](menu-organization-beta083.md).
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
# MENU-275 — Habitant et Pause autour de la carte
|
||||
|
||||
Branche `codex/inhabitant-property`, demande du 24 octobre 2026.
|
||||
|
||||
- Retirer le conseil d’arrivée sur la première propriété gratuite.
|
||||
- Habitant : Factions et Familier en haut, statistiques transparentes à gauche,
|
||||
personnage au centre avec de l’air, biographie à droite. Retirer le panneau
|
||||
d’activité et son bouton Historique de cette fiche ; conserver les données.
|
||||
- Temps joué en jours, heures, minutes et secondes entières, à partir des ticks
|
||||
Minecraft. Aucune minute décimale. Retour à la ligne en petit format.
|
||||
- Les propriétés exigent l’aptitude Carte achetée et active. Aucun bouton dans
|
||||
Habitant ; accès depuis le clic droit sur l’Atlas ou la commande après déblocage.
|
||||
Le serveur applique cette condition aux commandes, actions et ancien paquet
|
||||
de carte locale. Les données et protections acquises restent conservées.
|
||||
- Avant Carte : conserver la disposition actuelle du menu Pause.
|
||||
- Après Carte : Gazette à gauche, Tableau à droite ; dans la colonne centrale,
|
||||
Découvertes, Progression, Habitant et Combats au-dessus de la carte, puis Options,
|
||||
Options du monde et Sauvegarder/quitter ou Déconnexion sous la carte.
|
||||
Les rubriques restent visibles : **Aventure** forme toujours la colonne de
|
||||
gauche (Découvertes puis Progression), **Communauté** celle de droite
|
||||
(Habitant puis Combats), même en grande vue. **Partie / Game** reste au-dessus
|
||||
des options. Le rectangle de carte remplit l’espace restant, réduit pour
|
||||
conserver ces titres. Reprendre reste dans le pied natif.
|
||||
|
||||
Aucun format de sauvegarde ni génération ne change. Les nouveaux prérequis
|
||||
n’attribuent ni ne retirent de propriété. Les protections existantes et leur
|
||||
prédiction de minage s’appliquent aussi aux joueurs sans Carte ; seul l’accès
|
||||
à leur gestion est verrouillé. La refonte habitation/duels/prix reste en attente.
|
||||
|
||||
## Vérification
|
||||
|
||||
`check build assemblePack` réussit en **2 min 45 s**, avec **30 tests serveur
|
||||
ciblés**. Les prérequis de Carte sont testés avant achat, après achat et après
|
||||
désactivation ; refus sans débit, conservation du claim et des protections,
|
||||
réactivation et multiplicateurs de minage pour les joueurs sans Carte.
|
||||
Le format de durée couvre dix limites de ticks et un compteur long.
|
||||
|
||||
Le parcours **Vulkan FR/EN GUI 2/3/4** réussit en **56 s**, avec **18 captures**.
|
||||
Il passe par Hello World réel, vérifie l’absence du conseil de propriété,
|
||||
la commande bloquée et le paquet de carte locale forgé, puis les trois colonnes
|
||||
d’Habitant, les unités de temps, la transparence et l’absence d’activité.
|
||||
Factions et Familier reviennent à la fiche. Les vues Pause avant/après Carte,
|
||||
les deux colonnes Aventure/Communauté même en grande vue, la rubrique Partie,
|
||||
les côtés Gazette/Tableau, la disposition des options, leur retour natif et la
|
||||
mise à jour après désactivation de Carte sont contrôlés. Les textes longs
|
||||
conservent les défilements et infobulles natifs dans les petits formats.
|
||||
|
||||
Captures dans `build/menu275-screenshots/`, avec inspections FR GUI 2/4 de
|
||||
Pause, FR GUI 4 d’Habitant. Le MRpack beta.275 est exporté et vérifié : ZIP,
|
||||
Minecraft 26.3, Loader 0.19.5 et octets des deux JAR locaux identiques aux builds.
|
||||
Les archives beta.270 à beta.274 restent identiques. Reçu :
|
||||
`build/menu275-validation.json`.
|
||||
|
||||
```sh
|
||||
./gradlew check build assemblePack \
|
||||
-PsanctuaryFocusedTests=menu275,claims273,claims272,property270,mining,overview271,menus,map,demeure \
|
||||
-PsanctuaryAtlasOnly=true
|
||||
./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true \
|
||||
-PsanctuaryMenu275ClientTests=true -PsanctuaryQuickTests=true \
|
||||
-PsanctuaryClientGraphicsBackend=vulkan -PsanctuaryClientHeapGb=8 \
|
||||
-PsanctuaryClientNoVsync=true
|
||||
```
|
||||
|
||||
Aucune publication de canal ni synchronisation d’instance personnelle.
|
||||
@@ -0,0 +1,66 @@
|
||||
# AUDIO-253 — musique du menu Sanctuary
|
||||
|
||||
Branche `codex/title-music-beta253`, à partir de beta.252 ; Minecraft **26.3**,
|
||||
livraison **beta.253**. Sound Physics Remastered et les habitats de beta.251
|
||||
restent présents.
|
||||
|
||||
## Résultat
|
||||
|
||||
Le fichier `sanctuary-menu.m4a` fourni le 8 octobre 2026 est converti en
|
||||
`assets/sanctuary/sounds/music/menu.ogg` : **Vorbis, stéréo, 48 kHz**, qualité 6
|
||||
avec libvorbis 1.3.7. Aucun filtre de volume, fondu, découpage ou rééchantillonnage
|
||||
n'est appliqué. Le nombre de trames audio décodées est conservé :
|
||||
7 929 792, soit **165,204 secondes** ; le conteneur M4A annonçait
|
||||
165,248 secondes. Taille de l'OGG : **2 962 073 octets**.
|
||||
|
||||
L'événement `sanctuary:music.menu` lit cette ressource en streaming sur le canal
|
||||
**Musique**. Il remplace la musique de menu native et démarre dès le premier
|
||||
tick musical au menu titre, après le chargement des ressources. Les curseurs
|
||||
Musique et volume principal restent ceux de Minecraft. Le morceau continue
|
||||
dans les Options et les autres sous-menus ; revenir au titre ne le redémarre
|
||||
pas. Il recommence lorsqu'il se termine.
|
||||
|
||||
Le remplacement porte uniquement sur la situation musicale `Musics.MENU`.
|
||||
Les écrans ayant leur propre musique et les situations de jeu gardent leur
|
||||
choix musical. L'introduction du portail arrête la piste de menu comme elle
|
||||
arrêtait auparavant la musique native. Le nom affiché du morceau est
|
||||
**Sanctuary — Menu**, avec libellé FR/EN.
|
||||
|
||||
Le M4A original sur le Bureau n'est pas modifié ni copié dans le dépôt.
|
||||
L'OGG et `licenses/Menu-Music-ASSET.json` sont embarqués dans le mod et son
|
||||
template de ressources exportable. Aucun mod supplémentaire n'est requis.
|
||||
Génération, sauvegardes et installations personnelles inchangées.
|
||||
|
||||
## Vérifications
|
||||
|
||||
Vérifications réussies le 8 octobre 2026, Java 25, Fabric Loader 0.19.5 et
|
||||
Fabric API 0.160.5+26.3 :
|
||||
|
||||
- Conversion et décodage complet avec FFmpeg : Vorbis stéréo 48 kHz,
|
||||
7 929 792 trames avant et après conversion, original M4A inchangé.
|
||||
- `./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true
|
||||
-PsanctuaryMenuMusic253ClientTests=true -PsanctuaryClientGraphicsBackend=vulkan`
|
||||
réussit : décodeur Vorbis natif, canal Musique actif, bonne ressource en
|
||||
streaming, démarrage avant le délai natif de cinq secondes, même flux conservé
|
||||
dans les Options et au retour au titre, nom du morceau FR/EN, reprise après
|
||||
rechargement des ressources et après arrêt simulant la fin de la piste,
|
||||
introduction silencieuse vis-à-vis de la musique du menu et choix musical
|
||||
explicite d'un écran conservé. Marqueur `MENU253_CLIENT_PASS`.
|
||||
- `./gradlew check build assemblePack assembleTestPack
|
||||
-PsanctuaryFocusedTests=menus -PsanctuaryAtlasOnly=true` réussit : 138 tâches,
|
||||
quatre GameTests serveur requis et contrôles du dépôt. La suite historique
|
||||
complète des GameTests n'est pas revendiquée.
|
||||
- JAR, deux MRpacks et template de ressources : intégrité ZIP, versions,
|
||||
dépendances, classes musicales finales, fichier OGG et empreintes vérifiés.
|
||||
Sound Physics Remastered et l'écologie beta.251 restent embarqués.
|
||||
|
||||
Reçus et logs ignorés : `build/music253/conversion.json`,
|
||||
`build/music253/client-vulkan.log`, `build/music253/check-build-pack.log`,
|
||||
`build/music253/validation.json`. Aucun canal public ou jeu personnel modifié.
|
||||
|
||||
Artefacts locaux :
|
||||
|
||||
- `build/Sanctuary-beta.253.mrpack`, 16 475 098 octets,
|
||||
SHA-256 `31f77959b6fdd5fbbae86c83f31863593f8b0a4caea9ad397c7ab83fad3df2a3`.
|
||||
- `build/Sanctuary-Test-beta.253.mrpack`, 16 888 896 octets,
|
||||
SHA-256 `f3d8d2430fbdea261509394e9b0ffc6d1801a6c89b33c2033c4b11c07e66fb52`.
|
||||
@@ -0,0 +1,103 @@
|
||||
# WG-206 — dessous aminci et cavités froides
|
||||
|
||||
Branche `codex/north-cavities-beta206`, depuis beta.205 (`bf5df38`).
|
||||
|
||||
## Contrat
|
||||
|
||||
Le créateur valide une épaisseur variable sous le paysage du Nord, des cavités
|
||||
froides et humides, et des failles ouvertes d’améthyste bordées de calcite et de
|
||||
basalte. La surface et les grandes taïgas de beta.205 sont la référence.
|
||||
La redistribution diorite / granit / andésite reste une proposition distincte.
|
||||
|
||||
Nouveau profil 206 uniquement, expansion Nord de 1024 blocs. Île de départ,
|
||||
autres directions et profils historiques conservés. Aucun monde existant
|
||||
converti, aucun chunk régénéré. Contrat des essais : nouveaux mondes de
|
||||
développement, graines 42 et 0 ; activation et reprise du Nord explicitement
|
||||
réservées à ces nouvelles sauvegardes de test. Aucun canal public ni instance
|
||||
Prism à modifier.
|
||||
|
||||
## Implémentation
|
||||
|
||||
- Masque soustractif sous le bruit natif 205 : épaisseur cible continue de
|
||||
40–99 blocs, contrôlée par deux bruits, dessous irrégulier. Les vingt blocs
|
||||
supérieurs du champ natif restent protégés. Le masque ne rajoute aucune
|
||||
montagne ni terrasse ; la roche déjà absente reste absente.
|
||||
- Failles sinueuses dans la matière, avec améthyste, calcite et basalte lisse
|
||||
organisés autour du même champ de fissure. Cristaux orientés vers l’air et
|
||||
quelques blocs d’améthyste bourgeonnante.
|
||||
- Dépôts de glace compacte et de glace bleue dans les cavités, argile localisée
|
||||
et lichens. Biomes nordiques 206 distincts, sans les placements de champignons
|
||||
ni les géodes fermées des profils précédents ; minerais conservés.
|
||||
- Eau peu profonde dans le sol existant des cavités : un bloc de roche ou de
|
||||
glace peut être remplacé par l’eau dans une poche de 6–96 blocs, sans ellipse
|
||||
ni terrasse ajoutée. Contours en bruit mondial, fond et berges contrôlés sur
|
||||
les blocs réels ; tout débouché est refusé. Recherche locale bornée, sans
|
||||
grande hydrologie ni travail périodique en partie.
|
||||
|
||||
## Vérifications
|
||||
|
||||
- `./gradlew check build assemblePack assembleTestPack :sanctuary-test:exportDuoLaunch
|
||||
-PsanctuaryFocusedTests=base204,north205,north206 -PsanctuaryAtlasOnly=true` :
|
||||
succès (journal `build/north206-check-build-water.log`). Six GameTests ciblés
|
||||
et contrôles purs passés. La suite native historique complète n’est pas revendiquée.
|
||||
- Deux derniers garde-fous locaux des poches d’eau ont ensuite été recompilés :
|
||||
lectures limitées aux chunks voisins et refus d’approfondir une poche déjà
|
||||
remplie. Reconstruction finale avec `:sanctuary:runGameTest build assemblePack
|
||||
assembleTestPack :sanctuary-test:exportDuoLaunch -x :sanctuary:check`, mêmes
|
||||
propriétés de sélection : six tests repassés, succès en 22 s. Les contrôles
|
||||
purs déjà passés n’ont pas été répétés pour ces deux garde-fous ; les essais
|
||||
natifs ci-dessous utilisent ce JAR final.
|
||||
- Profils Small, graines **42 et 0**, nouveaux mondes `north206-final` et
|
||||
`north206-final0` : offrande réelle, rejet d’offrande incorrecte et de doublon,
|
||||
interruption à 0/58, reprise des 58 chunks FULL et message SGA vérifiés.
|
||||
Cinq igloos et une cave de guérison complets dans chaque monde.
|
||||
- Comparaison au champ 205 de la même graine, sur une grille de relevé :
|
||||
|
||||
| Graine | Échantillons de roche 205 → 206 | Épaisseur maximale relevée 205 → 206 | Hauteurs de surface différentes | Plus grand tronc vérifié |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| 42 | 17 968 → 9 279 (−48,4 %) | 179 → 91 blocs | 0 | 59 blocs |
|
||||
| 0 | 17 084 → 8 887 (−48,0 %) | 177 → 90 blocs | 0 | 61 blocs |
|
||||
|
||||
- Dans les régions de faille examinées : 384 cristaux sur la graine 42 et 334
|
||||
sur la graine 0 ; respectivement 2 429 et 2 425 blocs d’améthyste avec au moins
|
||||
une face ouverte sur l’air. Calcite et basalte présents. Ce ne sont pas des
|
||||
totaux à l’échelle de l’île.
|
||||
- Eau vérifiée dans les blocs réels, avec fond et berges fermés : 11 positions
|
||||
sur la graine 42 et 61 sur la graine 0. Cavités contenant air et glace, glaciers
|
||||
de surface et taïgas géantes contrôlés. Ce contrôle des fondations ne remplace
|
||||
pas un essai prolongé après modification des berges par le joueur.
|
||||
- 3 456 cellules de biome stockées comparées au champ mondial par graine :
|
||||
**aucune incohérence** aux jointures examinées. Densité de l’île initiale
|
||||
identique octet par octet à la 205 pour Small, Medium et Large ; classes et
|
||||
ressources historiques 205 conservées.
|
||||
|
||||
L’essai préliminaire a révélé un raccordement manquant du décor au générateur
|
||||
hôte, corrigé avant ces essais finaux. La première recherche de petits bassins
|
||||
strictement préexistants ne produisait pas d’eau vérifiable ; elle a été remplacée
|
||||
par les poches peu profondes décrites ci-dessus. Une tentative démarrée avant la
|
||||
fin de l’assemblage utilisait encore l’ancien JAR et n’est pas une preuve de la
|
||||
version finale.
|
||||
|
||||
Les chiffres sont des échantillons, pas un inventaire exhaustif. Les essais
|
||||
natifs supplémentaires génèrent plusieurs régions de visite et ne constituent
|
||||
pas un benchmark comparatif de vitesse. Aucun essai Windows ni verdict esthétique
|
||||
sur l’ensemble du paysage n’est revendiqué.
|
||||
|
||||
## Livraison locale
|
||||
|
||||
MRpack normal `build/Sanctuary-beta.206.mrpack`, copié dans `~/Downloads/` : ZIP
|
||||
intact, JAR identique au build, trois tailles courantes et historiques présentes,
|
||||
aucun mod Test ni sauvegarde embarqués. Minecraft 26.3 / Fabric Loader 0.19.5.
|
||||
SHA-256 : `a0d2df3d207be0844af6cd4a3a578fd68c860dd0d3a28048f3b58725bb599fc7`.
|
||||
Reçu : `build/north206-mrpack-receipt.json`.
|
||||
|
||||
Nouveau solo préparé depuis le monde 42 vérifié, dans `north206-visit`, avec
|
||||
commandes, vue 32 chunks, simulation 5 et Vulkan. Arrivée près d’une paroi
|
||||
d’améthyste ouverte en **(-463.5, 205, -1151.5)**. Autres repères de cette graine :
|
||||
petite eau vers **(-311, 187, -732)** ; cavité glacée sous **(-416, 249, -728)** ;
|
||||
grandes taïgas vers **(-176, 249, -720)**. Les altitudes de repère des taïgas et de
|
||||
la cavité glacée sont celles de la surface, pas des téléportations souterraines.
|
||||
Le client confirme le backend Vulkan et `NORTH206_VISIT_OPEN` à l’emplacement
|
||||
prévu ; le rendu global reste à apprécier pendant la visite. Aucune publication
|
||||
du canal, aucun déploiement Prism ni modification du monde 205.
|
||||
|
||||
@@ -0,0 +1,129 @@
|
||||
# WG-207 — neige, couronnes et manoir du Nord
|
||||
|
||||
Branche `codex/north-landscape-beta207`, depuis beta.206 (`6f78054`).
|
||||
|
||||
## Contrat
|
||||
|
||||
Accord du créateur sur les trois suites du retour R004 : taïga partiellement
|
||||
enneigée, reliefs Voronoi localisés sur les hauts plateaux et manoir procédural
|
||||
inspiré du manoir vanilla. Le bois du manoir doit être de l’épicéa (spruce).
|
||||
Conserver le diamètre de 1024 blocs, le dessous aminci et les grandes failles
|
||||
d’améthyste validés en visite. Ne pas transformer toute la forêt en neige.
|
||||
|
||||
Profil neuf 207 exclusivement. Les profils 206 et antérieurs gardent leur
|
||||
génération. Aucun monde existant modifié ni chunk régénéré. Contrat des essais :
|
||||
nouveaux mondes de développement, graines 42 et 0, avec activation et reprise
|
||||
du Nord pour contrôler la génération et préparer une visite. Aucun déploiement
|
||||
Prism, publication du canal ou modification de sauvegarde personnelle.
|
||||
|
||||
## Implémentation
|
||||
|
||||
- Jusqu’à cinq couronnes sur des épaules hautes et soutenues, avec distances
|
||||
de Voronoi, déformation du contour par bruit et cols entre les sommets.
|
||||
Ajout local de quelques dizaines de blocs, plafond à Y=308 ; aucune terrasse
|
||||
globale. Le champ de densité sous le toit initial reste celui de la 206.
|
||||
- Nappes de neige de plusieurs échelles sur la taïga, avec deux variantes de
|
||||
biomes froids et les variantes tempérées conservées. Placement sur le sol
|
||||
réel sous la canopée, remplacement des petites plantes, état enneigé de
|
||||
l’herbe/podzol. Les troncs, l’eau et les plantes non admissibles sont protégés.
|
||||
La passe lit les cellules de biome déjà stockées au lieu de refaire le calcul
|
||||
complet des cavités pour chaque colonne de neige.
|
||||
- Assemblage natif des pièces du manoir, avec disposition dépendante de la
|
||||
graine, pièces meublées, coffres et occupants vanilla. Conversion locale des
|
||||
bois principaux en épicéa, panneaux en calcite, soubassements en tuf taillé et
|
||||
tapis froids. Les propriétés des escaliers, dalles et portes sont conservées.
|
||||
- Recherche bornée d’un site adapté à l’emprise réelle, hors igloos, arrivée,
|
||||
relais et couronnes ; contrôle des appuis colonne par colonne. Aucun
|
||||
terrassement massif ni fondation sans limite vers le vide. Si une graine ne
|
||||
possède pas de site admissible, le manoir est omis avec un diagnostic plutôt
|
||||
que de faire échouer l’expansion.
|
||||
- Approche de trois blocs de large en escaliers de tuf, raccordée au terrain
|
||||
devant l’entrée ; appuis et dégagement contrôlés dans les essais natifs.
|
||||
|
||||
## Vérifications de compilation
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack :sanctuary-test:exportDuoLaunch
|
||||
-PsanctuaryFocusedTests=base204,north206,north207 -PsanctuaryAtlasOnly=true` :
|
||||
succès, contrôles purs et six GameTests ciblés passés. Journal :
|
||||
`build/north207-check-build.log` (5 min 42 s).
|
||||
|
||||
Après les dernières corrections locales (accès, portillon en épicéa et lecture
|
||||
des biomes pour la neige), reconstruction et six GameTests repassés avec
|
||||
`:sanctuary:runGameTest build assemblePack assembleTestPack
|
||||
:sanctuary-test:exportDuoLaunch -x :sanctuary:check`, mêmes propriétés de sélection.
|
||||
Journal final : `build/north207-final2-build.log`, succès en 55 s. Les contrôles
|
||||
purs historiques déjà passés n’ont pas été répétés à cette étape. La suite
|
||||
historique complète des GameTests n’est pas revendiquée.
|
||||
|
||||
Les tests ciblés vérifient le maintien des anciens presets dans les trois tailles,
|
||||
la conservation du dessous 206, l’étendue limitée du nouveau relief et les
|
||||
propriétés d’orientation des escaliers/portes après conversion en épicéa.
|
||||
Les trois fichiers de densité de l’île initiale sont identiques à ceux de la 206.
|
||||
|
||||
## Essais natifs sur le build final
|
||||
|
||||
Profils Small, nouveaux mondes `north207-final` (42) et `north207-final0` (0).
|
||||
Offrande réelle, refus des offrandes incorrectes et des doublons, interruption
|
||||
à 0/58 puis reprise des chunks préparés et annonce SGA : succès. Cinq igloos
|
||||
et une cave de guérison complets sur chaque graine.
|
||||
|
||||
| Relevé | Graine 42 | Graine 0 |
|
||||
| --- | --- | --- |
|
||||
| Couronnes / ajout maximal relevé | 5 / 52 blocs | 5 / 45 blocs |
|
||||
| Colonnes relevées avec élévation > 2 blocs / autres | 191 / 1 767 | 192 / 1 790 |
|
||||
| Échantillons profonds identiques à la 206 | 52 989 | 51 958 |
|
||||
| Améthyste / faces ouvertes dans la région inspectée | 7 731 / 1 928 | 12 494 / 3 567 |
|
||||
| Sols enneigés dans la zone de taïga enneigée inspectée | 2 225 | 1 514 |
|
||||
| Sols dégagés / enneigés dans la taïga tempérée inspectée | 2 209 / 0 | 2 372 / 0 |
|
||||
| Pièces natives du manoir | 544 | 547 |
|
||||
| Fondation maximale du manoir | 5 blocs | 6 blocs |
|
||||
| Coffres conservant une table de butin native | 5 | 5 |
|
||||
| Cellules de biome stockées contrôlées / incohérences | 1 944 / 0 | 1 944 / 0 |
|
||||
|
||||
Les deux manoirs ont des planchers et escaliers en épicéa, des panneaux en
|
||||
calcite et du tuf taillé. Aucun bloc de planches de chêne/chêne noir ni feuille
|
||||
d’épicéa envahissante dans les volumes examinés. L’approche possède trois
|
||||
marches centrales contrôlées avec support et deux blocs d’air de dégagement.
|
||||
Les autres coffres des pièces vanilla peuvent être des rangements sans table
|
||||
de butin : ne pas confondre nombre total de coffres et récompenses.
|
||||
|
||||
Ces nombres sont des relevés locaux ou sur grille, pas un inventaire de l’île.
|
||||
L’essai préliminaire `north207-a` avait déjà passé les contrôles de paysage et
|
||||
de manoir ; les deux essais ci-dessus utilisent le JAR final, après optimisation
|
||||
de la passe de neige et vérification supplémentaire de l’accès et du butin.
|
||||
Les essais finaux tournaient en parallèle : leurs durées ne constituent pas
|
||||
une comparaison de performance avec la 206.
|
||||
|
||||
## Livraison locale
|
||||
|
||||
MRpack normal `build/Sanctuary-beta.207.mrpack`, copié dans `~/Downloads/`.
|
||||
ZIP intact, JAR identique au build final, profils courants et historiques des
|
||||
trois tailles présents, aucun mod Test ni monde embarqué. Minecraft 26.3,
|
||||
Fabric Loader 0.19.5. Reçu : `build/north207-mrpack-receipt.json`.
|
||||
|
||||
SHA-256 : `1f6caca543dddea4e961bba6737a9d4a0e2fbb2935fb17a3c2c94d8f1a7a635d`.
|
||||
|
||||
Nouvelle visite `north207-visit`, graine 42, copiée depuis le monde vérifié et
|
||||
arrêté. Vue 32 chunks, simulation 5, commandes et vol créatif. Position initiale
|
||||
préparée : **(49.5, 302, -1285.5)**, face au manoir. Repères de visite :
|
||||
|
||||
- Manoir : **(-27, 252, -1244)**.
|
||||
- Taïga enneigée : **(-192, 251, -704)**.
|
||||
- Taïga dégagée : **(32, 253, -720)**.
|
||||
- Sommet ajouté : **(-448, 303, -1008)**.
|
||||
|
||||
Les repères indiquent les régions contrôlées ; certains sont au-dessus du sol
|
||||
pour la visite en vol. Aucun canal public, serveur personnel ou instance Prism
|
||||
modifié. Les mondes précédents sont conservés.
|
||||
|
||||
Le client confirme Vulkan / MoltenVK et `NORTH207_VISIT_OPEN` à **(49, 302,
|
||||
-1286)** le 5 octobre à 02:28. La visite est ouverte ; le rendu reste à juger
|
||||
par le créateur, sans prétendre à une inspection graphique exhaustive.
|
||||
|
||||
## Limites
|
||||
|
||||
Le manoir utilise les pièces et le butin natifs avec une palette propre au Nord.
|
||||
Il ne possède pas de nouvelle entrée `/locate` ; son placement appartient au
|
||||
générateur local. L’admission peut omettre le manoir sur une graine sans appui
|
||||
admissible. Aucun jugement esthétique global, essai Windows ou benchmark
|
||||
comparatif n’est déduit des vérifications techniques.
|
||||
@@ -0,0 +1,77 @@
|
||||
# WG-205 — Nord en bruit 3D natif
|
||||
|
||||
Branche `codex/north-noise-beta205`, depuis beta.204 (`2463db7`).
|
||||
|
||||
Retour : montagnes reliées et trop étirées, démarcations de biomes suivant les
|
||||
chunks. Retirer la surélévation Peaks et les masses ajoutées au-dessus du bruit
|
||||
de base ; habiller ensuite les surfaces réellement générées.
|
||||
|
||||
Contrat : nouveau profil 205 uniquement, Nord de 1024 blocs. Taïga géante,
|
||||
glaces et cinq igloos conservés. Île de départ et profils 200–204 inchangés.
|
||||
Aucune migration, aucun ancien chunk modifié. Essais sur nouveaux mondes de
|
||||
développement, graines 42 et 0. Publication et installation Prism non demandées.
|
||||
|
||||
## Changements
|
||||
|
||||
Le Nord 204 cumulait la déformation verticale Peaks, un agrandissement horizontal
|
||||
×2 / vertical √2 et les corps supérieurs de la densité Population. Le profil 205
|
||||
utilise le champ natif sans ces déformations : enveloppe de 1024 directement,
|
||||
bruit à son échelle d'origine et cavités conservées. Le champ n'est pas rehaussé
|
||||
après coup pour former une chaîne de montagnes. Les anciennes classes 204 restent
|
||||
inchangées et les autres directions conservent leur relief.
|
||||
|
||||
Le champ d'écologie 204 arrondissait X/Z par groupes de huit blocs. La hauteur,
|
||||
la pente et les seuils de glace pouvaient alors changer d'un carré au suivant.
|
||||
Le nouveau lecteur interpole les hauteurs entre les mesures ; il mesure à nouveau
|
||||
une colonne quand un voisin est vide, sans fabriquer un sol par interpolation.
|
||||
Les sols sont appliqués sur la vraie hauteur du chunk déjà généré. La ligne de
|
||||
froid est ajustée au nouveau relief moins élevé, avec taïga géante, neige, pics
|
||||
natifs et cavernes glacées ; les igloos cherchent des épaules soutenues.
|
||||
|
||||
## Vérifications — 5 octobre 2026
|
||||
|
||||
- Cinq GameTests ciblés passés (`base204,north205`, plus contrôle commun) :
|
||||
presets courants/historiques sans Test, pente continue sur les frontières X/Z
|
||||
négatives et positives, indépendance des workers, absence d'étirement et de
|
||||
surélévation 205, conservation de l'ancien comportement 204 et des autres axes.
|
||||
- Small, graine 42, monde neuf `north205-final` : offrande réelle, refus des doublons,
|
||||
interruption/reprise, préparation de 58 chunks, cinq igloos et une cave de
|
||||
guérison vérifiés. Centre `(-128, -944)`, arrivée `(-160, 253, -1024)`.
|
||||
- Même graine : échantillons de surface Y=87–251, épaisseur maximale 179 blocs,
|
||||
taïga géante avec un tronc de 59 blocs, cavité avec air et glace, glacier présent.
|
||||
Zéro incohérence entre les 3 456 cellules de biome sauvegardées aux jointures
|
||||
des zones contrôlées et le champ mondial. Reçus dans
|
||||
`build/worldgen-lab/north205-final/small/42/`.
|
||||
- Le premier diagnostic de grotte pointait le massif le plus épais, contenant
|
||||
surtout de la roche. Le contrôle cherche maintenant une poche vide sous une
|
||||
couverture suffisante avant de vérifier air et glace dans les chunks réels.
|
||||
Le terrain n'a pas été modifié pour satisfaire ce diagnostic.
|
||||
- Small, graine 0, monde neuf `north205-final0` : mêmes contrôles de l'expansion,
|
||||
cinq igloos, cavernes et glaciers passés. Échantillons Y=84–255, tronc maximal
|
||||
61 blocs. Zéro incohérence sur 3 456 cellules de biome supplémentaires. Le
|
||||
contrôle de glacier inclut la glace normale, adaptée à ces altitudes, et
|
||||
exige plus de 50 blocs glacés dans la zone examinée ; il ne suppose plus la
|
||||
présence obligatoire de glace compacte ou bleue. La graine 0 en contient 117.
|
||||
- `./gradlew check build assemblePack assembleTestPack
|
||||
-PsanctuaryFocusedTests=base204,north205 -PsanctuaryAtlasOnly=true` : succès,
|
||||
journal `build/north205-check-build.log`. La suite native complète n'est pas
|
||||
revendiquée. Après la dernière correction du diagnostic Test, sa compilation,
|
||||
ses tests et son build ont également passé ; une répétition inutile des tâches
|
||||
du mod principal a été interrompue. Les deux essais natifs finaux utilisent
|
||||
ce diagnostic corrigé. Le JAR du mod normal n'a pas changé après sa validation.
|
||||
- MRpack normal exporté et vérifié : contenu ZIP intact, JAR identique au build,
|
||||
preset public 205, profils historiques présents, aucun Test ou monde embarqué.
|
||||
SHA-256 : `63023e8ff355afb94223bd697a71ae1d6ad72c80dca2f5c502664627f3d8d572`.
|
||||
|
||||
Les mesures de hauteur sont des échantillons, pas un relevé exhaustif de tous les blocs. La
|
||||
continuité numérique et les biomes stockés sont testés ; l'appréciation visuelle
|
||||
des transitions reste à confirmer en visite. Aucune validation Windows revendiquée.
|
||||
|
||||
## Livraison locale
|
||||
|
||||
`build/Sanctuary-beta.205.mrpack`, copié dans `~/Downloads/`. Une copie neuve du
|
||||
monde vérifié est ouverte dans `north205-play`, graine 42, en créatif avec
|
||||
commandes autorisées, Vulkan, vue 32 chunks et simulation 5. La visite commence
|
||||
au-dessus de la taïga en `(-143.5, 331, -677.5)` ; `NORTH205_VISIT_OPEN` et
|
||||
le backend Vulkan sont confirmés dans le journal. Aucun monde 204 n'est converti.
|
||||
Le canal public et l'instance Prism ne sont pas modifiés.
|
||||
@@ -0,0 +1,113 @@
|
||||
# WG-208 — crêtes et replats glacés du Nord
|
||||
|
||||
Branche `codex/north-ridges-beta208`, depuis beta.207 (`bb10c24`).
|
||||
|
||||
## Contrat
|
||||
|
||||
Dernier affinage demandé avant clôture du Nord : remplacer les couronnes trop
|
||||
rondes par des arêtes anguleuses, des sommets pointus et des entailles d'érosion.
|
||||
Ajouter quelques replats à différentes altitudes avec des poches de glace.
|
||||
Les formations de glace au-dessus restent une piste : privilégier quelques
|
||||
aiguilles naturelles localisées, sans ajouter de bâtiment.
|
||||
Conserver la taille de 1024 blocs, la taïga partiellement enneigée, le dessous
|
||||
aminci, les failles d'améthyste, les igloos et le manoir en épicéa validés.
|
||||
|
||||
Profil neuf 208 uniquement. Les générations 207 et antérieures restent
|
||||
disponibles et inchangées. Essais autorisés sur de nouveaux mondes de
|
||||
développement, graines 42 et 0, avec activation/reprise du Nord. Préparer une
|
||||
nouvelle visite solo Vulkan à 32 chunks ; aucune sauvegarde existante modifiée.
|
||||
Aucun déploiement Prism ni publication du canal public.
|
||||
|
||||
## Réalisation
|
||||
|
||||
- Les mêmes cinq sites de relief qu'en 207 reçoivent des faces asymétriques.
|
||||
La distance aux sites Voronoi sépare les massifs ; cinq plans inégaux dessinent
|
||||
leurs arêtes. La pente reste marquée près du sommet au lieu de s'y arrondir.
|
||||
Des entailles par bruit cohérent interrompent localement les flancs. Il ne
|
||||
s'agit pas d'une simulation d'érosion ou d'une hydrologie globale.
|
||||
- Jusqu'à deux replats par massif, de rayons 15 et 19 blocs, à des hauteurs
|
||||
différentes. Ils sont admis uniquement au-dessus du toit rocheux existant,
|
||||
avec raccordement progressif sur leur bord. Aucune quantification générale
|
||||
des altitudes ni succession de terrasses sur toute l'île.
|
||||
- Petites cuvettes de glace sur glace compacte, encaissées d'un bloc, et
|
||||
aiguilles de glace sur certaines rives. Ces poches sont gelées jusqu'au fond :
|
||||
elles n'ajoutent pas d'écoulements ni de nouvelles cascades.
|
||||
- Densité profonde de la 206 conservée ; écologie et neige de la 207 réutilisées,
|
||||
y compris leurs identifiants de biomes. Manoir et igloos adaptés au nouveau
|
||||
champ de relief, avec leurs palettes et contenus conservés. Les anciens
|
||||
générateurs et ressources 207 restent disponibles.
|
||||
- Les calculs de sommet sont mémorisés par colonne dans un cache borné par
|
||||
worker. Aucun parcours global supplémentaire à chaque tick.
|
||||
|
||||
## Vérification
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack :sanctuary-test:exportDuoLaunch
|
||||
-PsanctuaryFocusedTests=base204,north207,north208 -PsanctuaryAtlasOnly=true` :
|
||||
succès en 4 min 47 s, contrôles purs et sept GameTests ciblés passés.
|
||||
Journal : `build/north208-check-build.log`. Les tests vérifient notamment les
|
||||
anciens presets des trois tailles, le maintien de la densité profonde, le dénivelé
|
||||
près des sommets, les appuis des cuvettes et le déterminisme entre workers.
|
||||
La suite historique complète des GameTests n'est pas revendiquée.
|
||||
|
||||
Les dernières additions au diagnostic et au lanceur du module Test sont
|
||||
recompilées et assemblées séparément, sans répéter les contrôles purs déjà passés :
|
||||
`build/north208-lab-final.log`, succès. Les trois fichiers de densité de l'île
|
||||
principale sont strictement identiques à la 207.
|
||||
|
||||
Le premier essai 42 passe tous les contrôles. Sur la graine 0, un replat
|
||||
pouvait remplir un creux trop profond (élévation locale relevée de 94 blocs).
|
||||
L'admission exige désormais un toit proche sur toute l'emprise ; une garde
|
||||
par colonne empêche de combler les trous profonds. Un test de régression
|
||||
reproduit une cavité sous un replat. Reconstruction finale avec `:sanctuary:runGameTest build assemblePack assembleTestPack
|
||||
:sanctuary-test:exportDuoLaunch -x :sanctuary:check`, sélection `base204,north208` :
|
||||
succès en 1 min 1 s ; six tests ciblés, dont la régression du trou profond,
|
||||
passés. Les contrôles purs précédemment passés ne sont pas répétés à cette étape.
|
||||
Journal : `build/north208-final-build.log`. Les essais finaux `north208-final` (42) et `north208-final0` (0) passent sur le
|
||||
JAR final. Offrandes réelles, refus des doublons, interruption à 0/58, reprise
|
||||
jusqu'à 58 chunks FULL et annonce SGA contrôlés. Serveurs arrêtés proprement.
|
||||
|
||||
| Relevé | Graine 42 | Graine 0 |
|
||||
| --- | --- | --- |
|
||||
| Sommets / élévation maximale relevée | 5 / 50 blocs | 5 / 44 blocs |
|
||||
| Colonnes relevées élevées / autres | 183 / 1 775 | 197 / 1 785 |
|
||||
| Dénivelé moyen à 8 blocs de chaque sommet | 6,6–9,1 blocs | 5,6–6,9 blocs |
|
||||
| Replats glacés admis | 6 | 5 |
|
||||
| Glace dans les cuvettes inspectées | 1 972 blocs | 2 000 blocs |
|
||||
| Glace compacte des formations de rive inspectées | 360 blocs | 236 blocs |
|
||||
| Échantillons profonds identiques à la 206 | 52 989 | 51 958 |
|
||||
| Améthyste / faces ouvertes inspectées | 7 731 / 1 928 | 12 494 / 3 567 |
|
||||
| Cellules de biome vérifiées / incohérences | 1 944 / 0 | 1 944 / 0 |
|
||||
|
||||
La neige et les forêts dégagées restent présentes. Cinq igloos et une cave de
|
||||
soins par île. Manoirs de 544 et 547 pièces, aux mêmes emplacements qu'en 207,
|
||||
avec trois marches d'accès vérifiées et cinq coffres à table de butin native
|
||||
chacun. Les comptages sont des relevés locaux ou sur grille, pas un inventaire
|
||||
exhaustif. Les essais simultanés ne constituent pas un benchmark comparatif.
|
||||
|
||||
## Distribution locale
|
||||
|
||||
MRpack normal exporté et contrôlé : archive ZIP intacte, JAR strictement identique
|
||||
au build, profils 207 et 208 Small/Medium/Large présents, aucun module Test ni
|
||||
monde embarqué. Minecraft 26.3 / Fabric Loader 0.19.5.
|
||||
Reçu : `build/north208-mrpack-receipt.json`. Copie dans `~/Downloads/`.
|
||||
SHA-256 : `bf1006efca537996fe4e33750ff08cbf821d2735bc03e5ce517da7fd62922845`.
|
||||
|
||||
## Limites
|
||||
|
||||
La retouche ne résout pas à elle seule le temps de chargement signalé. Aucun
|
||||
benchmark comparatif, jugement esthétique global ni essai Windows n'est déduit
|
||||
des vérifications. La clôture visuelle du Nord revient à la visite du créateur.
|
||||
|
||||
|
||||
## Visite solo
|
||||
|
||||
Nouveau monde `Sanctuary-North-208-42` dans
|
||||
`build/worldgen-lab/north208-final-visit/small/42/client/saves/`, copié depuis
|
||||
l'essai final arrêté. Vue 32 chunks, simulation 5, créatif en vol et commandes.
|
||||
Position initiale : **(-389.5, 325, -1060.5)**, face au sommet **(-448, 301, -1008)**.
|
||||
Replat voisin : **(-457, 278, -1034)** ; second niveau : **(-406, 262, -986)**.
|
||||
Manoir conservé : **(-27, 252, -1244)**. Anciennes visites préservées.
|
||||
|
||||
Le client confirme Vulkan / MoltenVK et `NORTH208_VISIT_OPEN` le 5 octobre
|
||||
à 03:23:59, en **(-390, 325, -1061)**. Visite ouverte ; aucune inspection graphique
|
||||
exhaustive ni validation esthétique du créateur n'est déduite de ce lancement.
|
||||
@@ -0,0 +1,21 @@
|
||||
# Sanctuary beta.289
|
||||
|
||||
Six nouveaux infectés rejoignent Sanctuary : Infecté, Charger, Spitter, Boomer,
|
||||
Smoker et Hunter, chacun avec son œuf et son comportement. Le Spitter laisse
|
||||
une flaque d’acide ; le Smoker doit toucher avec son lasso avant de tirer sa
|
||||
cible ; le Hunter prépare un bond qui peut être esquivé.
|
||||
|
||||
Neuf tenues aléatoires sont partagées avec le zombie classique. Les bras restent
|
||||
en avant, avec le Hunter accroupi au sol. Les infectés restent sans variante
|
||||
bébé ; leurs familiers reprennent le modèle adulte en miniature, à taille
|
||||
variable, avec leurs pouvoirs.
|
||||
|
||||
Les objets lumineux tenus en main éclairent de nouveau le terrain avec Sodium,
|
||||
y compris sans PBR. JEI est intégré au même JAR Sanctuary sur le client et le
|
||||
serveur. Le grand dézoom de carte et les relevés lointains sont conservés.
|
||||
|
||||
Minecraft 26.3 · Fabric 0.19.5. Construction complète, 31 tests serveur et parcours
|
||||
Vulkan des zombies/familiers vérifiés pour cette livraison. Les lumières utilisent
|
||||
le correctif de beta.288, dont les classes sont conservées à l’identique.
|
||||
|
||||
Le téléchargement du site reste l’instance Prism prête à suivre le canal stable.
|
||||
@@ -0,0 +1,19 @@
|
||||
# Sanctuary beta.293
|
||||
|
||||
- Happy Creepers repris de la branche dédiée `codex/happy-creepers` : Maj +
|
||||
clic droit avec une fleur pour la porter, visage souriant et comportement
|
||||
passif ; retrait à main vide avec le même geste. Charge électrique conservée.
|
||||
- Baleines fantômes volantes et œuf natif de beta.290 inclus.
|
||||
- Logo Sanctuary affiché pendant les téléchargements et mises à jour packwiz,
|
||||
avec l'installateur intégré au ZIP Prism prêt à importer.
|
||||
- Simple Voice Chat 2.6.24+26.3, Bobby 5.2.16+mc26.3, Lithium 0.26.2+mc26.3 et
|
||||
Entity Culling 1.11.3 pour 26.3 disponibles comme choix facultatifs du client.
|
||||
Lithium et la voix font également partie du profil serveur.
|
||||
- Sound Physics 1.5.1, Sodium 0.9.2, JEI embarqué et Minecraft 26.3 / Fabric
|
||||
0.19.5 conservés. La version vocale retenue respecte ces dépendances.
|
||||
- Sauvegardes et réglages restent attachés à la même instance ; aucun changement
|
||||
de génération ou de format de monde. Dozei Stream et Only Fun restent futurs.
|
||||
|
||||
Le ZIP Prism suit le canal stable à chaque lancement. Les anciens utilisateurs
|
||||
gardent leur instance ; la première mise à jour de l'habillage doit aussi
|
||||
installer le nouvel outil packwiz et conserver `--bootstrap-no-update`.
|
||||
@@ -0,0 +1,164 @@
|
||||
# PACK-292 — voix, cache de chunks et optimisations
|
||||
|
||||
Préparation locale du **26 octobre 2026**, branche
|
||||
`codex/optional-mods-integration`, depuis le logo packwiz beta.291.
|
||||
Le même logo et le même canal stable sont conservés.
|
||||
|
||||
## Mods intégrés
|
||||
|
||||
| Mod | Binaire retenu pour Minecraft 26.3 / Fabric | Client | Serveur |
|
||||
| --- | --- | --- | --- |
|
||||
| [Simple Voice Chat](https://modrinth.com/plugin/simple-voice-chat/version/OLnMVWXy) | 2.6.24+26.3, bêta | Facultatif, coché initialement | Inclus, activé initialement |
|
||||
| [Bobby](https://modrinth.com/mod/bobby/version/J7YnfCss) | 5.2.16+mc26.3 | Facultatif, coché initialement | Exclu |
|
||||
| [Lithium](https://modrinth.com/mod/lithium/version/xS0Q8LSi) | 0.26.2+mc26.3 | Facultatif, coché initialement | Inclus, activé initialement |
|
||||
| [Entity Culling](https://modrinth.com/mod/entityculling/version/X1g3VhTx) | 1.11.3 pour mc26.3 | Facultatif, coché initialement | Exclu |
|
||||
|
||||
Chaque téléchargement utilise le binaire original, sa version Modrinth
|
||||
immuable et son SHA-512 dans `packwiz/mods/*.pw.toml`. Les JAR restent séparés,
|
||||
sans dépendance obligatoire ni copie imbriquée dans le JAR Sanctuary. Les
|
||||
descriptions du sélecteur packwiz sont en FR/EN. Les interfaces amont conservent
|
||||
leurs propres traductions, vérifiées pour le menu vocal français et anglais.
|
||||
|
||||
`scripts/data/optional-mods.json` fixe les identifiants, versions, côtés,
|
||||
dépendances et conflits attendus. `verify_optional_mods.py`, exécuté par
|
||||
`check` et `assemblePack`, vérifie les métadonnées Fabric des JAR, leur hash et
|
||||
les bibliothèques imbriquées. Les quatre fichiers réellement utilisés par
|
||||
Gradle sont aussi comparés aux binaires vérifiés pendant la validation.
|
||||
Minecraft reste **26.3**, Loader **0.19.5**, Java **25**, Fabric API
|
||||
**0.160.5+26.3** ; MixinExtras **0.5.5** est fourni par Loader et satisfait Lithium.
|
||||
|
||||
## Choix de version vocale
|
||||
|
||||
Les versions vocales 2.6.25 et 2.6.26 refusent explicitement Sound Physics
|
||||
Remastered <1.5.2. Le pack conserve son **1.5.1+26.3** et son interface native,
|
||||
donc la voix est épinglée en **2.6.24+26.3**, sans contournement des dépendances.
|
||||
Le plug-in Sound Physics est chargé par le serveur vocal et la connexion locale
|
||||
est authentifiée pendant le parcours client. Les mises à jour de ces deux mods
|
||||
doivent être traitées ensemble à la prochaine évolution de version.
|
||||
|
||||
Le menu vocal s'ouvre avec sa touche amont **V**, configurable ; la touche de
|
||||
push-to-talk se choisit dans les réglages vocaux. Aucun raccourci ni préférence
|
||||
personnelle n'est remplacé par le pack. La voix reste facultative pour le joueur.
|
||||
|
||||
Le profil serveur contient désormais **Fabric API, Sanctuary, Lithium et Simple
|
||||
Voice Chat**. Son choix est indépendant des options d'un client. Le kit Linux
|
||||
reste sans interface ; son installateur officiel est conservé. La vérification
|
||||
Web compare aussi les nouveaux JAR serveur au canal avant toute publication.
|
||||
|
||||
L'utilisation sur la Beta dédiée exigera le
|
||||
[port UDP vocal](https://dev.modrepo.de/minecraft/voicechat/wiki/server_setup),
|
||||
par défaut 24454, et un échange audible entre deux joueurs. Cette préparation
|
||||
ne modifie ni la CT Beta, ni ses règles réseau, ni l'instance personnelle. Le
|
||||
microphone est désactivé dans le test de développement ; aucune captation de la
|
||||
voix réelle de l'utilisateur n'est nécessaire à la validation réseau locale.
|
||||
|
||||
## Portée de Bobby et d'Entity Culling
|
||||
|
||||
[Bobby](https://github.com/Johni0702/bobby) conserve les chunks déjà envoyés
|
||||
par le serveur dans son cache client `.bobby`, puis peut afficher leur dernière
|
||||
copie connue au-delà de la distance d'envoi. Il ne génère pas de chunks et ne
|
||||
simule pas les zones lointaines. Le serveur reste autoritaire lorsqu'il renvoie
|
||||
l'état courant. Le pack ne distribue aucun monde `bobby-fallback`, cache, ni
|
||||
configuration personnelle ; la limite de distance et la conservation du cache
|
||||
restent celles du mod et des réglages du joueur.
|
||||
|
||||
[Entity Culling](https://github.com/tr7zw/EntityCulling) conserve son moteur
|
||||
amont et ses bibliothèques TRender/TRansition imbriquées. L'occlusion et la
|
||||
réapparition d'une entité sont exercées sur Vulkan. Aucun gain chiffré de FPS
|
||||
ou de ticks n'est revendiqué ; les validations vérifient ici le fonctionnement
|
||||
et la coexistence, sans benchmark représentatif de tous les mondes Sanctuary.
|
||||
|
||||
## Vérifications
|
||||
|
||||
- `./gradlew check build assemblePack assembleServerPack
|
||||
-PsanctuaryFocusedTests=recipes,progression,smoker285,hunter286
|
||||
-PsanctuaryAtlasOnly=true -PsanctuaryOptional292ServerTests=true` :
|
||||
**réussi en 2 min 52 s**, **46 tests serveur requis réussis**, Lithium et voix
|
||||
effectivement chargés. Recettes, progression, lasso du Smoker et bond du Hunter
|
||||
sont exercés avec ces dépendances. Les contrôles de ressources, de packwiz et
|
||||
de l'habillage passent aussi. Le test de quota de baleines déjà en échec dans
|
||||
[beta.291](packwiz-logo-beta291.md) reste hors de ce périmètre, sans correction
|
||||
ni validation nouvelle de ce cas.
|
||||
- Parcours graphique **Vulkan / MoltenVK 1.4.2 / Apple M1 avec Sodium 0.9.2**,
|
||||
réussi en **38 s** : quatre mods présents, Sound Physics initialisé, entité
|
||||
masquée derrière le mur puis visible après retrait ; Bobby actif, stockage
|
||||
persistant et **35 chunks de cache** visibles après un déplacement de huit
|
||||
chunks avec une distance d'envoi de quatre. Authentification et connexion UDP
|
||||
vocales réelles, menus vocaux FR/EN ouverts en gardant le microphone muet.
|
||||
Les captures du mur, de l'entité réapparue et du menu FR sont inspectées.
|
||||
- Le même parcours **Vulkan sans Sodium** réussit en **43 s**, avec les mêmes
|
||||
contrôles, 35 chunks de cache et menus FR/EN. Un premier passage avait atteint
|
||||
tous les contrôles avant de se bloquer dans la synchronisation des threads du
|
||||
lanceur Fabric pendant la fermeture du monde ; il a été interrompu après
|
||||
capture des piles. La nouvelle exécution se ferme normalement. Cette limite
|
||||
du premier essai reste dans le journal, sans la présenter comme un succès.
|
||||
- Deux synchronisations client depuis le ZIP Prism réussies : **huit JAR**,
|
||||
un seul Sanctuary, mêmes hashes au second passage, logo de l'installateur
|
||||
conservé et trois fichiers témoins personnels inchangés. Puis deux passages
|
||||
supplémentaires avec un choix Bobby désactivé déjà persisté, simulé dans le
|
||||
cache de test : Bobby n'est pas réinstallé et le choix reste faux.
|
||||
- Deux synchronisations serveur réussies : exactement les quatre JAR du
|
||||
profil serveur ; aucun Bobby, Entity Culling, Sodium ou Sound Physics client.
|
||||
- Les **11 tests** du vérificateur Web passent, y compris la comparaison des
|
||||
dépendances partagées avec le relevé serveur et le refus d'un mod client dans
|
||||
son profil. Le MRpack exporté possède les sept dépendances distantes et leurs
|
||||
bons côtés et options ; les overrides sont limités à Sanctuary et son icône.
|
||||
- Contrôle complémentaire des baleines avec les quatre mods, Sodium et Vulkan :
|
||||
les assertions de rendu translucide, modèle animé, œuf FR/EN, deux entités
|
||||
chargées et déplacement réel atteignent `WHALE290_CLIENT_PASS`. La capture
|
||||
`0001_whale290-ghosts.png` est inspectée. Ce parcours se bloque ensuite à la
|
||||
fermeture dans la synchronisation du lanceur de tests Fabric et est arrêté
|
||||
après capture des piles ; il ne constitue pas une exécution complète réussie.
|
||||
- Après ajout des notices, le JAR et les archives sont réassemblés et les
|
||||
synchronisations sont répétées sur les binaires finaux. Les **2 658 classes
|
||||
de jeu** restent identiques à beta.291. Le vérificateur Web accepte le MRpack
|
||||
et le ZIP Prism finaux contre les métadonnées préparées et les hashes du
|
||||
serveur de test synchronisé, avec état de service simulé pour cette vérification
|
||||
hors ligne ; aucune CT de production n'est contactée.
|
||||
|
||||
Les essais utilisent uniquement des mondes et dossiers de développement sous
|
||||
`build/`. Les copies et hashes finaux sont consignés dans
|
||||
`build/optional-mods292/`, avec les journaux, captures et reçus natifs.
|
||||
Le passage vocal audible à deux joueurs, l'accès UDP depuis Internet et les
|
||||
rendus propres aux familiers et multiblocs avec culling restent des
|
||||
vérifications complémentaires à effectuer avant d'en revendiquer la couverture.
|
||||
|
||||
Commande du parcours client principal (ajouter `-PsanctuarySodiumClientTests=true`
|
||||
pour le passage avec Sodium) :
|
||||
|
||||
```sh
|
||||
./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true \
|
||||
-PsanctuaryOptional292ClientTests=true \
|
||||
-PsanctuaryClientGraphicsBackend=vulkan -PsanctuaryClientHeapGb=8 \
|
||||
-PsanctuaryClientNoVsync=true -PsanctuaryQuickTests=true \
|
||||
-PsanctuaryFocusedTests=recipes,progression
|
||||
```
|
||||
|
||||
L'option supplémentaire `-PsanctuaryOptional292WhaleOnly=true` sélectionne
|
||||
le diagnostic des baleines avec le même ensemble de mods ; son blocage de
|
||||
fermeture observé ci-dessus reste ouvert.
|
||||
|
||||
## Livraison et suite
|
||||
|
||||
Le compteur du pack et du mod est aligné sur **beta.292**. Les archives locales
|
||||
conservent l'habillage packwiz, les options et le canal de la Beta. Un ZIP Prism
|
||||
préparé ne fait pas avancer le canal public : avant publication, ce canal sert
|
||||
encore la version publiée. Aucune installation de jeu, sauvegarde personnelle,
|
||||
publication Web, release Gitea ou configuration réseau n'est modifiée ici.
|
||||
|
||||
Dozei Stream et Only Fun restent des modules personnels futurs, avec leurs
|
||||
[tickets de cadrage](integrations-mods-next.md). Aucun artefact fictif n'est
|
||||
ajouté au pack pour ces projets.
|
||||
|
||||
Artefacts locaux vérifiés, reçus dans `artifacts.json` :
|
||||
|
||||
| Fichier dans `build/` | Octets | SHA-256 |
|
||||
| --- | ---: | --- |
|
||||
| `Sanctuary-beta.292.mrpack` | 16 753 207 | `28980cec018fc81f700cb8ecb3981199537e04ff737bf58b220ce442b7e5dc56` |
|
||||
| `Sanctuary-Prism-beta.292.zip` | 3 928 525 | `95c57f5e70627a2847d1cc2033c8d9f50f44ef4a302ca892bc727e0c37ece0a9` |
|
||||
| `Sanctuary-Server-beta.292.zip` | 4 036 530 | `0ac362bbfbfd2c03efdaf6b209d9319e648ad546bee074521038fffc86bb640a` |
|
||||
|
||||
JAR Sanctuary : `0163da08897de96559ab51f482363bd00c03cfb3309784cdb6e112acf25a4862`.
|
||||
Le ZIP Prism d'amorçage a les mêmes octets qu'en beta.291 : il contient l'outil,
|
||||
le logo et l'adresse stable, et les versions de Minecraft/Loader n'ont pas changé.
|
||||
Le MRpack et les métadonnées du canal préparé contiennent les nouveaux mods.
|
||||
@@ -0,0 +1,109 @@
|
||||
# PACK-LOGO — logo Sanctuary pendant packwiz
|
||||
|
||||
Branche `codex/packwiz-sanctuary-logo`, préparation locale **beta.291**, depuis
|
||||
le socle beta.290. Demande du 26 octobre 2026 : afficher le bandeau Sanctuary
|
||||
fourni dans la fenêtre de téléchargement et de mise à jour, avant Minecraft.
|
||||
|
||||
## Résultat
|
||||
|
||||
Le PNG `minecraft.png` fourni par le créateur est conservé octet pour octet
|
||||
dans `launcher/packwiz/sanctuary.png` (1024 × 256, RGBA). Son SHA-256 est
|
||||
`efee73a6c812c89b2900d41f6446c0f906ccf85136b6c226daf42870a41a5157`.
|
||||
La fenêtre l'affiche sur fond noir à 640 × 160, proportions conservées,
|
||||
au-dessus de la progression réelle. Ses boutons, le texte initial et le
|
||||
compte à rebours suivent la langue du système : français, anglais sinon.
|
||||
Les messages et dialogues du moteur amont conservent leurs traductions amont.
|
||||
|
||||
`scripts/packwiz_installer.py` télécharge le JAR officiel
|
||||
[packwiz-installer v0.5.14](https://github.com/packwiz/packwiz-installer/releases/tag/v0.5.14),
|
||||
vérifie son SHA-256, puis remplace uniquement `InstallWindow.class` par
|
||||
l'adaptation Java de sa fenêtre Swing. Toutes les autres classes et notices
|
||||
restent identiques : téléchargement, vérification des hashes, sélection des
|
||||
mods facultatifs, erreurs et annulation continuent de dépendre de packwiz.
|
||||
La licence MIT de comp500 et le source de l'adaptation sont joints au JAR.
|
||||
Le logo est embarqué : aucun téléchargement d'image n'est requis pour l'afficher.
|
||||
|
||||
Le build utilise Java 25 ; les classes de la fenêtre ciblent Java 8 comme
|
||||
l'amont. Les SHA-256 de l'amont, du logo et du résultat sont fixés dans
|
||||
`launcher/packwiz/installer.json`. Une compilation différente échoue avant
|
||||
d'écrire le JAR de distribution. Les dépendances et JAR générés restent dans
|
||||
`build/packwiz-branding/`, ignoré par Git.
|
||||
|
||||
## Archive Prism et mises à jour
|
||||
|
||||
La commande habituelle `python3.14 scripts/pack.py prism <url-du-canal>`
|
||||
embarque le bootstrap officiel vérifié et le nouvel installateur vérifié,
|
||||
avec la même configuration Minecraft 26.3 / Fabric 0.19.5 et le même canal
|
||||
stable. `--bootstrap-no-update` empêche le bootstrap de remplacer la fenêtre
|
||||
Sanctuary par le binaire officiel. Cette option concerne **l'installateur** ;
|
||||
la synchronisation des mods packwiz reste active à chaque lancement.
|
||||
Le nom beta.291 du ZIP local n'avance pas ce canal : avant publication, un
|
||||
lancement visant l'adresse stable récupère la version déjà publiée, beta.289
|
||||
au moment de cette préparation. Les essais beta.291 utilisent un serveur HTTP
|
||||
de développement isolé, jamais le monde ni le serveur personnel.
|
||||
|
||||
Les évolutions de l'installateur doivent donc être préparées et testées
|
||||
explicitement, avec mise à jour du verrou et du vérificateur Web. Une simple
|
||||
avance du canal de mods ne met pas à jour l'outil d'une instance existante.
|
||||
Lors d'une future synchronisation locale demandée, sauvegarder l'instance,
|
||||
copier le JAR vérifié et ajouter l'option à sa commande avant lancement en
|
||||
conservant les autres réglages ; conserver cette même instance, sans réimport.
|
||||
Le kit serveur conserve son installateur officiel et son fonctionnement sans
|
||||
interface. Le logo n'est pas ajouté à l'index des fichiers du monde ou du jeu.
|
||||
|
||||
`verify_prism` contrôle désormais les deux JAR par leurs hashes et la présence
|
||||
de l'option qui conserve l'habillage. Les sauvegardes et fichiers personnels
|
||||
restent refusés dans le ZIP. Le MRpack n'embarque pas les commandes Prism et
|
||||
ne suffit pas à installer cet habillage.
|
||||
|
||||
## Vérifications
|
||||
|
||||
- Logo fourni identique octet pour octet ; JAR résultant contrôlé par son
|
||||
SHA-256 `9e2912fdd05e5c23721acd58cd5c61bbf13061e453627e8f4df9a4c53f7aa875`.
|
||||
- Les deux tests de distribution de `test_packwiz_installer.py` passent :
|
||||
toutes les entrées de l'amont sont relues, seule la classe de fenêtre change,
|
||||
et le véritable JAR vérifié est retrouvé dans l'export Prism.
|
||||
- Les dix tests de `test_publish_web_pack.py` passent : outils modifiés refusés,
|
||||
option de conservation obligatoire, contrôles de publication préservés.
|
||||
- Parcours Swing réel en FR et EN réussi avec le `GUIHandler` officiel :
|
||||
progression déterminée/indéterminée, options, Annuler, Continuer et compte à
|
||||
rebours. Les captures `preview-fr.png` et `preview-en.png` sont inspectées.
|
||||
Le test ne lance ni Minecraft ni un microphone.
|
||||
- Deux exécutions de `check build assemblePack` avec le profil
|
||||
`whale290,recipes,progression` échouent sur le même test serveur hérité :
|
||||
`eggQuotaNaturalSpawnAndFlightUseActualServerEntities`, quota après utilisation
|
||||
de l'œuf entre Overworld et Nether (18 réussites sur 19). Le profil isolé
|
||||
`whale290` échoue également sur ce cas (6 réussites sur 7). Les sources du
|
||||
comportement et de son test ne sont pas modifiées dans ce chantier. Cet échec
|
||||
reste ouvert ; aucune validation complète des baleines n'est revendiquée.
|
||||
|
||||
- `./gradlew check build assemblePack -PsanctuaryFocusedTests=recipes,progression
|
||||
-PsanctuaryAtlasOnly=true` réussit en **2 min 42 s**, avec **13 tests serveur
|
||||
requis réussis**, les contrôles purs de `check`, le JAR et les profils client
|
||||
et serveur assemblés. Ce périmètre ne valide pas le test de baleines en échec.
|
||||
- Comparaison des JAR beta.290/beta.291 : **2 658 classes de jeu identiques**,
|
||||
aucune classe ajoutée. Le compteur et les notices évoluent, sans changement
|
||||
du code de jeu.
|
||||
- Deux lancements du véritable bootstrap et de l'installateur adapté réussis
|
||||
depuis le ZIP extrait dans `native instance with spaces/`, avec les arguments
|
||||
de sa commande Prism et un canal HTTP local beta.291. Un seul JAR Sanctuary,
|
||||
fichiers gérés identiques au second passage, installateur avec logo conservé,
|
||||
trois fichiers témoins personnels inchangés. Aucun monde ouvert. Le mode
|
||||
sans interface vérifie la synchronisation ; les tests Swing ci-dessus
|
||||
vérifient la fenêtre. Reçu `native-validation.json`.
|
||||
|
||||
Archive locale `build/Sanctuary-Prism-beta.291.zip` : **3 928 525 octets**,
|
||||
SHA-256 `95c57f5e70627a2847d1cc2033c8d9f50f44ef4a302ca892bc727e0c37ece0a9`.
|
||||
JAR Sanctuary beta.291 :
|
||||
`bd130418a05f820dffd86b00595c5b7ce96293ec82867926f5493a95736aee73`.
|
||||
Les interfaces Linux/Windows, le lancement Minecraft depuis Prism et une
|
||||
mise à jour de l'instance personnelle ne sont pas revendiqués par ces essais
|
||||
macOS. Le test de quota des baleines reste à résoudre avant une validation
|
||||
complète de cette base de jeu.
|
||||
|
||||
Les reçus et captures restent sous `build/packwiz-branding/`.
|
||||
|
||||
Les mods évoqués pendant ce chantier sont seulement
|
||||
[préparés en tickets pour la passe suivante](integrations-mods-next.md).
|
||||
Aucune publication du canal, du site, du serveur Beta ou de l'instance
|
||||
personnelle n'est demandée ou effectuée par cette préparation locale.
|
||||
+93
-38
@@ -1,5 +1,82 @@
|
||||
# Distribution packwiz et Prism
|
||||
|
||||
Le [téléchargement direct de Sanctuary Web](beta-download.md) donne une instance
|
||||
Prism déjà configurée. Le premier lancement télécharge les mods ; les suivants
|
||||
suivent les publications explicitement demandées via Codex.
|
||||
|
||||
La [procédure de reprise et de publication complète](updates.md) relie aussi
|
||||
le serveur dédié, le téléchargement du site et l'instance locale. Les reçus
|
||||
des anciennes versions ci-dessous restent historiques.
|
||||
|
||||
## beta.293 — livraison complète publiée
|
||||
|
||||
[Reçu de livraison](release-beta293.md) : Happy Creepers de la branche dédiée,
|
||||
baleines, logo et quatre mods facultatifs réunis. Release immuable, canal
|
||||
client/serveur, CT 350, téléchargement Web et même instance Prism personnelle
|
||||
mis à jour. Import neuf et instance existante vérifiés sur deux passages,
|
||||
sauvegardes et réglages conservés. Voix UDP 25565 annoncée sur le port public
|
||||
25567 via la règle Beta existante ; ping applicatif réussi depuis le LAN.
|
||||
L'audio à deux joueurs et l'accès depuis un réseau extérieur restent à essayer.
|
||||
|
||||
## beta.292 — quatre mods facultatifs (préparation locale)
|
||||
|
||||
[Voix, cache de chunks et optimisations](optional-mods-beta292.md) : Simple
|
||||
Voice Chat 2.6.24, Bobby 5.2.16, Lithium 0.26.2 et Entity Culling 1.11.3, tous
|
||||
épinglés pour Minecraft 26.3 / Fabric. Les quatre sont facultatifs côté client ;
|
||||
Lithium et la voix sont aussi présents dans le profil serveur. Le logo de
|
||||
beta.291 et les préférences de sélection sont conservés. Préparation locale,
|
||||
sans avance du canal public ni modification d'installation personnelle.
|
||||
|
||||
## beta.291 — logo dans l'installateur (préparation locale)
|
||||
|
||||
Le [bandeau Sanctuary fourni](packwiz-logo-beta291.md) est embarqué dans la
|
||||
fenêtre packwiz du ZIP Prism préparé. Le bootstrap reste officiel ; la fenêtre
|
||||
est adaptée et l'installateur épinglé avec `--bootstrap-no-update`. Les mods
|
||||
continuent de suivre le canal stable. Les instances déjà installées devront
|
||||
recevoir ce JAR et cette option lors d'une synchronisation explicitement demandée,
|
||||
en conservant la même instance. Cette préparation ne publie pas le canal.
|
||||
|
||||
## beta.280 — JEI embarqué et profil serveur
|
||||
|
||||
JEI rejoint le JAR Sanctuary ; `mods/sanctuary.pw.toml` reste le seul artefact
|
||||
Sanctuary à publier. `python3 scripts/pack.py release <sanctuary-https-url>`
|
||||
prépare désormais le client et `server/pack.toml`, qui partagent le même JAR,
|
||||
la même URL et le même hash. Le profil serveur contient seulement Fabric API
|
||||
et Sanctuary ; Sodium et Sound Physics restent facultatifs côté client.
|
||||
Les deux profils sont publiés dans le même commit du canal, après vérification
|
||||
du JAR immuable. L'ancienne entrée JEI est retirée de l'index client.
|
||||
|
||||
`./gradlew assembleServerPack` construit un kit Linux avec les outils épinglés
|
||||
et les commandes de synchronisation/démarrage. [Mode d'emploi](server-pack.md),
|
||||
[contrat et vérifications](jei-server-beta280.md). La configuration Sanctuary Web,
|
||||
MariaDB et les secrets restent hors de l'index. La préparation locale ne publie
|
||||
pas le canal et ne met pas à jour une installation personnelle.
|
||||
|
||||
Livraison du 25 octobre : [release beta.280](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.280)
|
||||
publiée, canal `338e8a62387048c7e703ef036fda759ef57b4130`, puis nouveau serveur
|
||||
CT 350 sur `gpu` installé avec le kit vérifié. Le monde neuf, les paramètres
|
||||
et les services Web sont vérifiés dans le [reçu](jei-server-beta280.md).
|
||||
Une synchronisation du serveur conserve 61 fichiers suivis. L'Alpha et
|
||||
l'instance Prism personnelle restent hors de cette mise en service.
|
||||
|
||||
La règle Bbox permanente est ensuite vérifiée et le secours UPnP Beta retiré.
|
||||
Le domaine Minecraft `beta.sanctuary-minecraft.net` répond sans ce secours,
|
||||
avec 20 places. [MRpack client beta.280](https://git.botsu.net/koka/sanctuary-beta/releases/download/beta.280/Sanctuary-beta.280.mrpack)
|
||||
vérifié et disponible ; le [reçu](jei-server-beta280.md) conserve les empreintes
|
||||
et la limite de validation réseau.
|
||||
|
||||
## beta.257 — Mods client séparés
|
||||
|
||||
JEI Sanctuary, Sound Physics Remastered et Sodium sont facultatifs et séparés
|
||||
à partir de cette livraison. [Contrat et limites](external-mods-beta257.md).
|
||||
`assemblePack` produit deux JAR locaux ; `publish_pack.py` vérifie et joint
|
||||
Sanctuary **et le fork JEI** avant de publier leurs métadonnées immuables.
|
||||
La commande de préparation sans publication est désormais
|
||||
`python3 scripts/pack.py release <sanctuary-https-url> <jei-https-url>`.
|
||||
Les trois entrées du canal sont facultatives, activées par défaut côté client.
|
||||
Modifier le choix via packwiz-installer pour qu'il persiste au lancement suivant.
|
||||
Le pack local reste décochable dans Prism ; le fork JEI local est un override.
|
||||
|
||||
## Rattrapage des releases du 24 septembre 2026
|
||||
|
||||
Les binaires conservés des beta.145–151 et beta.154–166 sont publiés dans Gitea.
|
||||
@@ -2066,16 +2143,18 @@ La procédure complète, également utilisable manuellement :
|
||||
1. Incrémenter ensemble les versions de `gradle.properties` et `packwiz/pack.toml`
|
||||
selon la [convention `beta.xxx`](versioning.md).
|
||||
2. Exécuter `./gradlew check build assemblePack` et les vérifications du ticket.
|
||||
3. Préparer les métadonnées de la livraison, avec l'URL exacte du futur JAR :
|
||||
3. Pour préparer les métadonnées manuellement depuis beta.280, utiliser la
|
||||
seule URL du JAR Sanctuary contenant JEI :
|
||||
|
||||
```sh
|
||||
python3 scripts/pack.py release https://git.botsu.net/koka/sanctuary-beta/releases/download/beta.001/sanctuary-beta.001.jar
|
||||
python3 scripts/pack.py release \
|
||||
https://git.botsu.net/koka/sanctuary-beta/releases/download/beta.xxx/sanctuary-beta.xxx.jar
|
||||
```
|
||||
|
||||
4. Pousser le commit source vérifié. Créer une release Gitea correspondant à ce
|
||||
commit et joindre le JAR construit, sans remplacer les artefacts d'une release
|
||||
commit et joindre le JAR Sanctuary construit, sans remplacer les artefacts d'une release
|
||||
antérieure. Vérifier que le téléchargement public possède le SHA-256 indiqué
|
||||
dans `build/packwiz-release/mods/sanctuary.pw.toml`.
|
||||
dans `build/packwiz-release/mods/sanctuary.pw.toml`, identique au profil serveur.
|
||||
5. Publier le contenu de `build/packwiz-release/` à la racine de la branche
|
||||
`packwiz` dans un seul commit, puis vérifier les fichiers et hashes depuis
|
||||
l'URL publique. Préserver l'historique de ce canal et ne jamais y copier le
|
||||
@@ -2097,45 +2176,21 @@ python3 scripts/pack.py prism https://git.botsu.net/koka/sanctuary-beta/raw/bran
|
||||
|
||||
Il contient les versions exactes Minecraft/Fabric, la commande de lancement et
|
||||
`packwiz-installer-bootstrap` v0.0.3. Le script vérifie le SHA-256 du bootstrap
|
||||
officiel avant d'écrire `build/Sanctuary-Prism-auto-update.zip`. Ce ZIP est réservé
|
||||
officiel avant d'écrire `build/Sanctuary-Prism-beta.xxx.zip`. Ce ZIP est réservé
|
||||
aux nouvelles installations ; les instances déjà branchées sur packwiz suivent
|
||||
le canal sans être réimportées.
|
||||
|
||||
## Raccorder l'instance Prism existante
|
||||
## Importer l'instance Prism prête
|
||||
|
||||
Fermer Minecraft avant de modifier ses mods. Fermer également Prism avant de
|
||||
modifier directement `instance.cfg`, pour éviter que son état en mémoire écrase
|
||||
les changements. Dans l'instance Sanctuary Beta :
|
||||
Le bouton **Télécharger** de [Sanctuary Web](https://sanctuary-minecraft.net)
|
||||
télécharge directement [Sanctuary-Beta.zip](https://sanctuary-minecraft.net/downloads/sanctuary-prism.zip).
|
||||
Dans Prism : **Ajouter une instance → Importer depuis un ZIP**, choisir ce fichier,
|
||||
puis lancer **Sanctuary Beta**. Packwiz télécharge automatiquement les mods.
|
||||
La commande avant lancement et l'outil sont déjà dans l'archive.
|
||||
|
||||
1. Sauvegarder `instance.cfg` et les anciens JAR Sanctuary dans un dossier de
|
||||
sauvegarde hors de `mods/`. Vérifier que l'instance utilise Minecraft
|
||||
`26.3-pre-2` et Fabric `0.19.5` ; ne pas convertir une instance 26.2.
|
||||
2. Mettre le bootstrap issu du ZIP dans son dossier `minecraft/` (ou `.minecraft/`
|
||||
selon l'installation).
|
||||
3. Dans **Modifier → Paramètres → Commandes personnalisées**, activer les
|
||||
commandes et renseigner la commande avant lancement ci-dessous.
|
||||
4. Pour une instance issue d'un ancien `.mrpack`, déplacer seulement l'ancien
|
||||
JAR Sanctuary non géré dans la sauvegarde préparée, puis faire la première
|
||||
synchronisation packwiz. Conserver les autres mods et données personnelles.
|
||||
Si la synchronisation échoue, remettre ce JAR et les réglages sauvegardés.
|
||||
5. Vérifier qu'il reste un seul mod Sanctuary actif et que `packwiz.json` est
|
||||
présent dans le dossier Minecraft. Les prochaines mises à jour sont suivies
|
||||
par ce manifeste local : ne pas le supprimer entre les versions.
|
||||
|
||||
Commande à coller dans l'interface Prism :
|
||||
|
||||
```text
|
||||
"$INST_JAVA" -jar "$INST_MC_DIR/packwiz-installer-bootstrap.jar" --bootstrap-main-jar "$INST_MC_DIR/packwiz-installer.jar" --pack-folder "$INST_MC_DIR" --multimc-folder "$INST_DIR" https://git.botsu.net/koka/sanctuary-beta/raw/branch/packwiz/pack.toml
|
||||
```
|
||||
|
||||
Une modification directe de `instance.cfg` doit échapper les guillemets au format
|
||||
Qt INI (`\"`) et activer `OverrideCommands=true`. Ces clés et
|
||||
`PreLaunchCommand` doivent être dans la section **`[General]`**, jamais ajoutées
|
||||
après la section `[UI]`. Le ZIP préparé le fait déjà. Rouvrir les commandes
|
||||
personnalisées dans Prism pour vérifier que la commande est effectivement lue.
|
||||
Une instance importée d'un `.mrpack` peut être marquée `ManagedPack=true` :
|
||||
dès que packwiz en assure les mises à jour, utiliser `ManagedPack=false` pour
|
||||
éviter deux mécanismes de gestion sur le même pack.
|
||||
Conserver cette même instance pour les versions suivantes : une publication
|
||||
explicitement demandée via Codex est suivie au lancement suivant. Une instance
|
||||
déjà branchée sur le canal stable n'a pas besoin d'être réimportée.
|
||||
|
||||
## Données locales et mondes
|
||||
|
||||
|
||||
@@ -0,0 +1,97 @@
|
||||
# PAUSE-235 — Aventure et Communauté côte à côte
|
||||
|
||||
Branche d'essai `codex/pause-columns-beta235`, base beta.234, commit `f9c2ce8`,
|
||||
Minecraft 26.3. Le rendu reste à apprécier par le créateur.
|
||||
|
||||
## Disposition et réversibilité
|
||||
|
||||
Avant Atlas, Aventure et Communauté occupent deux colonnes au même niveau :
|
||||
Discovery, Progression et Story à gauche ; Habitant, Faction et Battle à droite.
|
||||
Partie / Game suit juste dessous avec Options, World Options et la sortie
|
||||
native. L'ensemble est centré verticalement dans le corps de Pause, avec de
|
||||
l'espace sous Game ; Reprendre la partie reste dans le pied de page.
|
||||
|
||||
Sans Atlas, ce bloc est centré entre Gazette à gauche et Notice Board à droite.
|
||||
Avec Atlas, une seule colonne étroite est serrée à gauche : Communauté, puis
|
||||
Aventure, puis Partie / Game, selon l'ordre confirmé par le créateur. La carte
|
||||
garde la région centrale et les deux fils communautaires restent à droite.
|
||||
Le bloc complet reste centré verticalement. La largeur minimale des boutons
|
||||
de navigation tient compte des libellés localisés et de leur marge native.
|
||||
Aux petites hauteurs, boutons et espacements se compactent. Tab suit l'ordre
|
||||
visuel : par rangée de gauche à droite avant Atlas, puis de haut en bas avec
|
||||
Atlas. Les libellés FR/EN existants sont réutilisés.
|
||||
|
||||
Le changement de disposition et les assertions correspondantes sont isolés
|
||||
dans le commit `a7bdfe6`, séparé de la livraison et de ses métadonnées. La branche
|
||||
`codex/story-beta234` conserve la disposition précédente. Un retour s'effectue
|
||||
avec `git revert a7bdfe6` ; une éventuelle nouvelle
|
||||
livraison doit prendre le numéro beta suivant, sans diminuer le compteur.
|
||||
L'application inverse du patch a été vérifiée avec `git apply --reverse --check`,
|
||||
sans modifier les fichiers de travail.
|
||||
|
||||
Ce ticket ne change ni génération, sauvegarde, données communautaires, protocole,
|
||||
conditions de progression ou contenus Story. Aucune installation personnelle
|
||||
ou publication n'est demandée.
|
||||
|
||||
## Vérifications
|
||||
|
||||
```sh
|
||||
./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true -PsanctuaryPause233ClientTests=true -PsanctuaryClientGraphicsBackend=vulkan
|
||||
./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true -PsanctuaryStory234ClientTests=true -PsanctuaryClientGraphicsBackend=vulkan
|
||||
./gradlew check build assemblePack -PsanctuaryFocusedTests=menus -PsanctuaryAtlasOnly=true
|
||||
```
|
||||
|
||||
Le parcours Pause final réussit en 1 min 22 s (`PAUSE233_PASS`), dans un monde
|
||||
plat neuf de développement, Survie sans commandes. FR/EN, GUI 2/3/4, fenêtre
|
||||
1280 × 960, avant et après Atlas : six actions Sanctuary, alignement et absence
|
||||
de chevauchement, largeur des libellés avec la marge native, ordre de Tab et
|
||||
Game sous les groupes, avec de l'espace avant le pied. Le test attend désormais
|
||||
un créneau de requête communautaire pour son amorçage et envoie le code de
|
||||
raccourci natif de Tab, requis par Minecraft 26.3.
|
||||
|
||||
Le parcours communautaire existant passe également : publication et photo,
|
||||
retours des sélecteurs, brouillons, édition d'une ancienne catégorie, inventaire
|
||||
réel conservé et aucun changement du fichier communautaire pendant les lectures.
|
||||
La configuration temporaire est restaurée à la fin du banc.
|
||||
Log : `build/pause235-client-vulkan-final.log`. 38 captures finales copiées dans
|
||||
`build/pause235-screenshots/`. Captures inspectées : sans Atlas FR/4, avec Atlas
|
||||
FR/2 et EN/4. Vulkan confirmé : MoltenVK 1.4.2 sur Apple M1.
|
||||
|
||||
Le parcours Story final réussit en 29 s (`STORY234_PASS`), avec les mêmes
|
||||
langues, GUI et états Atlas. Accès depuis les deux dispositions de Pause,
|
||||
100 entrées désactivées, recherche/filtres, saisie continue et focus, molette,
|
||||
redimensionnement à 1344 × 1008 et retours Échap / Terminé vérifiés. Le record
|
||||
de progression serveur ne change pas. Log :
|
||||
`build/pause235-story-client-vulkan-final.log` ; 21 captures copiées dans
|
||||
`build/pause235-story-screenshots/`.
|
||||
|
||||
Aux GUI étroits, les longs libellés natifs des options/sortie et les titres des
|
||||
fils gardent leur défilement ou découpage existant ; les boutons de navigation
|
||||
Sanctuary montrent leur libellé entier. Les infobulles des actions Game sont
|
||||
conservées. Aucun essai OpenGL, Windows ou monde personnel n'est revendiqué.
|
||||
|
||||
Le contrôle `check build assemblePack` réussit en 3 min 1 s : quatre GameTests
|
||||
requis et contrôles purs du dépôt, dont les quatre contrôles communautaires
|
||||
fichier/photos/demandes/recherche. Log : `build/pause235-check-build-pack.log`.
|
||||
Le banc menus conserve sa sélection Atlas existante ; le conflit de générateur
|
||||
sur le chemin natif par défaut, documenté en beta.232, reste hors de ce ticket.
|
||||
|
||||
## Livraison locale
|
||||
|
||||
`mod_version`, `pack_version` et `packwiz/pack.toml` sont alignés sur beta.235.
|
||||
Le commit de livraison conserve ces métadonnées et cette documentation séparées
|
||||
du commit de disposition.
|
||||
|
||||
Export [Sanctuary-beta.235.mrpack](../build/Sanctuary-beta.235.mrpack),
|
||||
12 776 222 octets : intégrité ZIP, Minecraft 26.3 et Fabric Loader 0.19.5,
|
||||
un seul JAR Sanctuary embarqué, identique au JAR construit, sans monde ni module
|
||||
de test. Les 3 303 fichiers d'assets, données et resourcepacks sont identiques
|
||||
à beta.234, traductions incluses. Story reste dans le JAR de production et les
|
||||
classes des bancs client en sont absentes. Reçu :
|
||||
`build/pause235-mrpack-receipt.json`.
|
||||
|
||||
- JAR : `aad94732c749161d775ee634bdd85de70de511ef875c6c00fa167d230d0d600b`.
|
||||
- MRpack : `5f1bd18aa8a4145b7e708da0abfff22068365847dddbc95ae2b490b88bbb305e`.
|
||||
|
||||
Aucune publication distante, modification du canal packwiz, synchronisation
|
||||
Prism ou ouverture d'un monde personnel effectuée.
|
||||
@@ -0,0 +1,86 @@
|
||||
# PAUSE-233 — navigation centrée et rédaction communautaire
|
||||
|
||||
Branche `codex/pause-community-beta233`, base beta.232, Minecraft 26.3.
|
||||
|
||||
## Résultat et compatibilité
|
||||
|
||||
Avec ou sans Atlas, les boutons gardent les mêmes groupes et le même ordre :
|
||||
|
||||
- Communauté : Habitant, Faction et Battle en haut de la colonne.
|
||||
- Aventure : Discovery et Progression centrés verticalement dans l'écran.
|
||||
- Partie : Options, World Options et Save and Quit en bas.
|
||||
|
||||
Sans carte, cette colonne est centrée horizontalement entre Gazette à gauche
|
||||
et Notice Board à droite. Avec carte, elle reste à gauche, carte au centre et
|
||||
les deux fils communautaires à droite. L'ordre clavier suit l'ordre visuel.
|
||||
Les boutons deviennent plus compacts sur les petites hauteurs GUI pour conserver
|
||||
les titres et l'espacement entre groupes. La petite barre sous les boutons
|
||||
Communauté est supprimée dans les deux dispositions. En-tête et reprise en pied
|
||||
conservés.
|
||||
|
||||
Le formulaire Notice Board ne propose plus Information/Project/Request/Event.
|
||||
Toutes les notices ont la même présentation, y compris les anciennes catégories.
|
||||
Les demandes et récompenses restent facultatives et descriptives : après le
|
||||
texte viennent Request and rewards, son résumé, puis Publish. Le formulaire
|
||||
Gazette place la photo et Choose a screenshot en premier, avant le titre,
|
||||
puis le texte et Publish.
|
||||
Photo obligatoire, brouillons, édition, retours des sélecteurs, suivis et
|
||||
validations serveur restent actifs.
|
||||
|
||||
Le contrat fichier/MariaDB et le protocole ne changent pas. Les nouvelles notices
|
||||
gardent la valeur compatible `info` ; éditer une ancienne annonce conserve sa
|
||||
catégorie enregistrée sans l'afficher. La lecture n'entraîne aucune réécriture
|
||||
des posts. Aucune migration, génération ou opération d'inventaire n'est ajoutée.
|
||||
Les anciennes traductions de catégories restent disponibles pour les données
|
||||
historiques. Titres ajoutés en français/anglais : Communauté/Community,
|
||||
Aventure/Adventure et Partie/Game ; les autres libellés existent déjà.
|
||||
|
||||
## Vérifications et livraison
|
||||
|
||||
`./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true
|
||||
-PsanctuaryPause233ClientTests=true -PsanctuaryClientGraphicsBackend=vulkan`
|
||||
Réussite en 47 s (`PAUSE233_PASS`), après suppression de la barre sous Communauté.
|
||||
Monde plat de développement, Survie sans Allow Commands, stockage fichier isolé.
|
||||
|
||||
- FR/EN, GUI 2/3/4, fenêtre 1280×960, avant et après Atlas : même ordre des
|
||||
actions et des groupes, titres sans chevauchement, paire Discovery/Progression
|
||||
centrée verticalement, navigation et options séparées.
|
||||
- Ordre titre → texte → demande et résumé → publication, ou photo et sélecteur
|
||||
→ titre → texte → publication ; aucune catégorie visible. Défilement du formulaire sur GUI
|
||||
étroit vérifié. 38 captures dans `build/pause233-screenshots/`.
|
||||
- Retours réels des sélecteurs : texte conservé, 128 bûches demandées et
|
||||
récompense personnalisée publiées ; les 17 bûches et 3 diamants d'inventaire
|
||||
réel restent présents. Photo toujours obligatoire, article et photo relus
|
||||
depuis un nouveau lecteur du stockage fichier après publication.
|
||||
- Ancienne catégorie `event` conservée lors de l'édition. Lecture des posts,
|
||||
redimensionnements et changements de langue n'altèrent aucun octet du fichier
|
||||
communautaire. Configuration du banc restaurée à la fin.
|
||||
- Captures inspectées : pause verrouillée FR/2 et EN/4, pause déverrouillée FR/2,
|
||||
notice configurée, Gazette avec photo assignée et bas du formulaire Notice Board
|
||||
EN/4. Notices anciennes et nouvelles ont le même cadre et ne montrent que leur état.
|
||||
|
||||
Log client final : `build/pause233-client-vulkan-titled.log`. Aucun essai OpenGL ou Windows
|
||||
et aucune migration MariaDB ne sont revendiqués ; le code serveur est conservé.
|
||||
|
||||
`./gradlew check build assemblePack -PsanctuaryFocusedTests=menus
|
||||
-PsanctuaryAtlasOnly=true`
|
||||
Réussite en 2 min 39 s : quatre GameTests requis, contrôles purs communautaires
|
||||
(`COMMUNITY154_FILE_PASS`, `COMMUNITY157_PHOTOS_PASS`, `COMMUNITY158_TASKS_PASS`,
|
||||
`COMMUNITY159_SEARCH_PASS`), build et assemblage du pack.
|
||||
Log : `build/pause233-check-build-pack-final.log`.
|
||||
Ce contrôle utilise le mode existant du banc pour les menus. Le chemin natif par
|
||||
défaut présente toujours le conflit de générateur documenté en beta.232 ; cette
|
||||
livraison ne revendique pas une nouvelle suite complète de génération.
|
||||
|
||||
Export local `build/Sanctuary-beta.233.mrpack` vérifié : intégrité ZIP, versions
|
||||
Minecraft 26.3/Fabric Loader 0.19.5, un seul JAR Sanctuary embarqué, exactement
|
||||
identique au JAR construit, sans module de test ni monde. Les 3 146 fichiers
|
||||
de données et assets hors traductions sont identiques à beta.232 ; seules les
|
||||
trois traductions de titres de groupes sont ajoutées en FR/EN, sans changer les
|
||||
libellés existants. Reçu : `build/pause233-mrpack-receipt.json`.
|
||||
|
||||
- JAR : `23a148c197126ede552865f9847ce381700884d5ff087469a13e36540e8f23f9`.
|
||||
- MRpack : `d95aeeca5f255db4444a22879f465477c0c6a2a111dd4e1c777b20944a283e2b`.
|
||||
|
||||
Livraison locale beta.233 ; aucune installation personnelle, publication
|
||||
distante, ouverture d'un monde personnel ou mise à jour du canal packwiz.
|
||||
@@ -0,0 +1,157 @@
|
||||
# PAUSE-236 — Atlas plein écran derrière le menu
|
||||
|
||||
## Statut : essai annulé le 6 octobre 2026
|
||||
|
||||
Le créateur demande d'annuler **uniquement la carte derrière Pause**.
|
||||
Le patch de disposition `5ea7950` est inversé, sans réécrire l'historique :
|
||||
carte centrale et colonne Communauté → Aventure → Game à gauche lorsque
|
||||
l'Atlas est déverrouillé, comme en beta.235. Story, la disposition sans Atlas
|
||||
et le raccourci M (`94fefc0`) restent présents. Le Nord retrouve sa position
|
||||
dans le panneau de carte. Aucun changement sur les autres branches.
|
||||
|
||||
Les vérifications et la livraison ci-dessous décrivent l'essai historique,
|
||||
avant annulation. Son pack est déplacé dans
|
||||
`build/withdrawn/Sanctuary-beta.236.mrpack` pour ne pas le proposer comme résultat
|
||||
actuel ; le staging packwiz de cet essai et son JAR d'origine sont également
|
||||
archivés dans `build/withdrawn/`. Le numéro beta.236 était également utilisé par la branche des aptitudes,
|
||||
qui a depuis atteint beta.238 avec Forgerie : cette branche d'essai ne constitue
|
||||
pas la livraison commune. Aucun nouvel artefact de distribution n'est livré
|
||||
par l'annulation ; la consolidation et son prochain compteur global restent
|
||||
un travail distinct.
|
||||
|
||||
Le parcours client Vulkan du retour réussit en 46 s : FR/EN GUI 2/3/4, géométrie
|
||||
beta.235 avec/sans Atlas, Story et ses 100 entrées, recherche, filtres, retours,
|
||||
focus et redimensionnement. M depuis le jeu et Pause, verrou de progression,
|
||||
réaffectation et désactivation passent également. Log :
|
||||
`build/pause-map-layer-cancel-client-vulkan.log`.
|
||||
Comparaison Git : les deux fichiers de disposition/carte et leurs assertions
|
||||
Pause/Solo sont identiques à beta.235 ; implémentation du raccourci et libellés
|
||||
FR/EN identiques au commit `94fefc0`.
|
||||
|
||||
`./gradlew check build -PsanctuaryFocusedTests=menus -PsanctuaryAtlasOnly=true`
|
||||
réussit en 2 min 34 s : quatre GameTests requis et contrôles purs du dépôt.
|
||||
Log : `build/pause-map-layer-cancel-check-build.log`. Aucun nouvel assemblage
|
||||
de distribution : il s'agit de l'annulation ciblée des sources de l'essai.
|
||||
|
||||
## Historique de l'essai
|
||||
|
||||
Branche d'essai `codex/pause-map-layer-beta236`, base beta.235, commit `00d175c`,
|
||||
Minecraft 26.3. Le rendu reste à apprécier par le créateur.
|
||||
|
||||
## Résultat
|
||||
|
||||
Gazette reste à gauche et Notice Board à droite, sur toute la hauteur du corps
|
||||
de Pause, avec ou sans Atlas. Au centre, Aventure (Discovery, Progression,
|
||||
Story) et Communauté (Habitant, Faction, Battle) sont côte à côte ; Partie /
|
||||
Game suit juste dessous. Reprendre la partie garde le pied de page natif.
|
||||
|
||||
Avec Atlas, la carte occupe littéralement tout l'écran sur le calque derrière
|
||||
les contrôles. Le terrain est légèrement assombri pour lire les libellés. Le
|
||||
Nord `N ↑` se trouve au centre horizontal, juste sous le bandeau du message
|
||||
serveur ; un espace réservé le sépare du menu. Les boutons et espacements
|
||||
s'adaptent aux petites hauteurs.
|
||||
|
||||
La carte est rendue avant les widgets de premier plan, puis reçoit les entrées
|
||||
après eux. Un clic dans une zone libre ouvre l'Atlas complet ; les boutons,
|
||||
les fils, l'en-tête et le pied de page gardent leur priorité. Les infobulles
|
||||
et les marqueurs de la carte ne capturent pas le survol derrière un contrôle.
|
||||
Les marqueurs suivis restent accessibles lorsqu'ils sont exposés. Tab après
|
||||
Quit atteint la carte ; Entrée ouvre l'Atlas, Échap ou Terminé revient à la
|
||||
même Pause. Redimensionner reconstruit le calque aux dimensions de l'écran.
|
||||
|
||||
Seul le terrain personnel déjà cartographié est affiché. Ce changement ne
|
||||
révèle ni ne génère de nouveaux chunks. Les contrats serveur, sauvegardes,
|
||||
progression, données communautaires et contenus Story restent identiques.
|
||||
Les libellés FR/EN existants sont réutilisés pour la disposition.
|
||||
|
||||
## Raccourci carte
|
||||
|
||||
La lettre **M** ouvre l'Atlas complet depuis le jeu et depuis Pause, une fois
|
||||
la carte déverrouillée dans Progression. Avant ce déblocage, elle affiche le
|
||||
message existant rappelant cette condition. Depuis le jeu, Échap et Terminé
|
||||
reviennent au jeu ; depuis Pause, ils reviennent à la même Pause.
|
||||
|
||||
Le raccourci figure dans les contrôles natifs, catégorie Sanctuary, sous
|
||||
« Ouvrir la carte » / « Open world map ». Il suit la lettre M de la disposition
|
||||
du clavier, y compris AZERTY, et préserve une affectation sauvegardée ou
|
||||
désactivée. Les écrans de saisie conservent leurs touches. Aucun nouveau
|
||||
protocole, fichier persistant ou déblocage serveur n'est ajouté.
|
||||
|
||||
## Réversibilité
|
||||
|
||||
Le code de l'essai et ses assertions sont isolés du raccourci M et du commit de
|
||||
livraison contenant les versions et la documentation : `git revert 5ea7950` annule le
|
||||
calque et sa disposition. Après ajout du raccourci (`94fefc0`), l'application
|
||||
inverse du patch a été vérifiée avec `git apply --reverse --3way --cached`
|
||||
dans un index temporaire : aucun conflit et raccourci M conservé, sans modifier
|
||||
les fichiers de travail. La branche
|
||||
`codex/pause-columns-beta235` conserve la variante précédente. Annuler le
|
||||
commit de disposition ramène à cette variante ; une livraison suivante prend
|
||||
le prochain numéro beta, sans diminuer le compteur.
|
||||
|
||||
## Vérifications
|
||||
|
||||
```sh
|
||||
./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true -PsanctuaryStory234ClientTests=true -PsanctuaryClientGraphicsBackend=vulkan
|
||||
./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true -PsanctuaryPause233ClientTests=true -PsanctuaryClientGraphicsBackend=vulkan
|
||||
./gradlew check build assemblePack -PsanctuaryFocusedTests=menus -PsanctuaryAtlasOnly=true
|
||||
```
|
||||
|
||||
Parcours Story et raccourci réussi en 42 s (`STORY234_PASS`) : Vulkan FR/EN GUI 2/3/4,
|
||||
fenêtre 1280 × 960, avec et sans Atlas, puis redimensionnement à 1344 × 1008.
|
||||
Nord centré sous le message serveur, terrain réellement reçu, calque aux
|
||||
dimensions de l'écran, boutons et titres des fils prioritaires pour les clics
|
||||
et le survol. Clic natif sur une zone libre et Entrée ouvrent l'Atlas ; Échap
|
||||
et Terminé reviennent à la même Pause. Le clic natif sur Story traverse bien
|
||||
le premier plan, ses 100 entrées, recherche et filtres restent disponibles.
|
||||
Saisie continue, focus, défilement, retours et progression serveur conservés.
|
||||
Événements clavier natifs M depuis le jeu et Pause avant/après déblocage,
|
||||
réaffectation à J, suppression de l'ancienne affectation, désactivation et
|
||||
restauration de la touche testées. La saisie de M dans Story garde le texte,
|
||||
le focus et son écran ; les intitulés du raccourci sont vérifiés en FR/EN.
|
||||
Log : `build/pause236-story-client-vulkan-final.log`.
|
||||
|
||||
21 captures copiées dans `build/pause236-story-screenshots/`. Captures inspectées :
|
||||
avec Atlas FR/2 et EN/4, sans Atlas FR/2. La fixture du monde plat neuf
|
||||
cartographie explicitement 25 chunks : la majorité du fond reste inconnue.
|
||||
Ce terrain limité ne représente pas une sauvegarde personnelle explorée.
|
||||
Aux GUI étroits, les longs libellés natifs et titres des fils gardent leur
|
||||
défilement ou découpage ; les actions Sanctuary restent lisibles en entier.
|
||||
Validation macOS/Vulkan uniquement, aucun essai OpenGL ou Windows revendiqué.
|
||||
|
||||
Le parcours Pause final réussit en 42 s (`PAUSE233_PASS`), avec les mêmes
|
||||
langues, GUI et états Atlas. Les fils restent de part et d'autre du menu ;
|
||||
publication, photo, retours des sélecteurs, brouillons et ancienne catégorie
|
||||
sont conservés. Inventaire réel et fichier communautaire restent inchangés
|
||||
pendant les lectures ; configuration temporaire restaurée à la fin.
|
||||
Log : `build/pause236-client-vulkan-final.log` ; 38 captures copiées dans
|
||||
`build/pause236-screenshots/`. Captures inspectées : Pause avec Atlas et posts
|
||||
FR/2 et EN/4. Vulkan confirmé : MoltenVK 1.4.2, Apple M1.
|
||||
|
||||
Le contrôle `check build assemblePack` réussit en 2 min 31 s : quatre GameTests
|
||||
requis et contrôles purs du dépôt, dont fichier communautaire, photos,
|
||||
demandes et recherche. Log : `build/pause236-check-build-pack-final.log`.
|
||||
La sélection menus/Atlas reste celle du banc existant ; le conflit du générateur
|
||||
sur le chemin natif par défaut, documenté en beta.232, reste hors de ce ticket.
|
||||
La compilation des sources finales du banc client passe également.
|
||||
|
||||
## Livraison locale
|
||||
|
||||
`mod_version`, `pack_version` et `packwiz/pack.toml` sont alignés sur beta.236.
|
||||
Les commits `5ea7950` (disposition) et `94fefc0` (raccourci) restent séparés
|
||||
des métadonnées de livraison.
|
||||
|
||||
Export historique [Sanctuary-beta.236.mrpack](../build/withdrawn/Sanctuary-beta.236.mrpack),
|
||||
12 779 209 octets : intégrité ZIP, Minecraft 26.3 et Fabric Loader 0.19.5,
|
||||
un seul JAR Sanctuary embarqué, identique au JAR construit, sans monde ni module
|
||||
de test. Les 3 303 fichiers d'assets, données et resourcepacks sont identiques
|
||||
à beta.235, sauf un nouveau libellé de raccourci dans chaque langue ; toutes
|
||||
les traductions existantes sont conservées. Story reste dans le JAR de production
|
||||
et les classes des bancs client en sont absentes.
|
||||
Reçu : `build/pause236-mrpack-receipt.json`.
|
||||
|
||||
- JAR : `74a8be9a078e9ecdc17b8cf332254cdb4a6dca4c37e4fb728d98632d2e8c3918`.
|
||||
- MRpack : `0fac46765a4430df8f90398471dedd2c2636d6b120482cc78466011fdd7574c2`.
|
||||
|
||||
Aucune publication distante, modification du canal packwiz, synchronisation
|
||||
Prism ou ouverture d'un monde personnel effectuée.
|
||||
@@ -1,5 +1,11 @@
|
||||
# Prochains tickets — carte immersive, progression et New Game+
|
||||
|
||||
**Ajout du 26 octobre 2026 :** [prochaine passe d'intégrations du pack](integrations-mods-next.md)
|
||||
pour Simple Voice Chat, Bobby facultatif, Lithium et Entity Culling, puis les
|
||||
contrats des futurs modules personnels Dozei Stream et Only Fun. Tickets
|
||||
initialement documentaires ; les quatre mods du pack sont désormais préparés
|
||||
dans [beta.292](optional-mods-beta292.md). Le cadrage historique ci-dessous est conservé.
|
||||
|
||||
Cadrage du 13 septembre 2026, après l'essai de beta.006.
|
||||
Branche documentaire : `codex/roadmap-progression-ngplus`.
|
||||
**Statut : MAP-03 implémenté en beta.007, PROG-02A en beta.008, PROG-02B en beta.009, PROG-02C en beta.010 ; CYCLE-01, PROG-03, FACTION-01 et NGP-01 sont réunis dans beta.011.**
|
||||
@@ -50,6 +56,22 @@ flowchart LR
|
||||
P --> N
|
||||
```
|
||||
|
||||
## CLAIM-278 — Battle consenti pour une propriété
|
||||
|
||||
[Le duel de propriété](claim-battle-beta278.md) vise un claim déjà revendiqué :
|
||||
proposition du challenger, accord explicite du propriétaire, puis préparation
|
||||
native Battle. Le vainqueur reçoit le chunk avec sa protection restante ; les
|
||||
résultats et transferts ont un journal de reprise. Le départage d’un terrain
|
||||
encore libre reste celui de Demeure.
|
||||
|
||||
## CLAIM-277 — Habitation avant revendication
|
||||
|
||||
[Le lot Demeure / claims](claim-demeure-beta277.md) applique le seuil existant
|
||||
et l’influence des habitants sur les chunks libres. À égalité, l’ordre des
|
||||
premières traces départage ; un habitant plus influent peut revendiquer avant
|
||||
le premier. Les propriétés acquises restent conservées. Les duels et transferts
|
||||
consentis ne sont pas ajoutés dans ce lot.
|
||||
|
||||
## CYCLE-01 — Définir ce qui termine et ce qui recommence
|
||||
|
||||
**Branche prévue :** `codex/progression-cycle-contract`.
|
||||
@@ -299,6 +321,12 @@ ou de prestige ne doit être encaissée deux fois pour un même événement.
|
||||
|
||||
## Après ce jalon
|
||||
|
||||
Le premier lot [CLAIM-02 / beta.270](property-beta270.md), demandé le
|
||||
24 octobre 2026, remplace pour l’implémentation actuelle le projet ci-dessous :
|
||||
propriété personnelle gratuite après Hello World, volume fini en trois
|
||||
dimensions et agrandissements en XP. Demeure et les factions ne donnent aucun
|
||||
droit automatique de propriété. Le paragraphe suivant conserve le cadrage historique.
|
||||
|
||||
**CLAIM-01** traitera la réservation et la protection des chunks à partir des
|
||||
factions et d'un contrat dédié : emprise, capacités, droits, conflits, abandon
|
||||
et incidence du prestige. La grille et Demeure restent des lectures du monde
|
||||
|
||||
@@ -0,0 +1,95 @@
|
||||
# CLAIM-02 — Première propriété d'habitant
|
||||
|
||||
Branche `codex/inhabitant-property`, version locale `beta.270`.
|
||||
La demande du 24 octobre 2026 remplace, pour ce lot, le projet CLAIM-01
|
||||
de titres temporaires par chunks et d'entretien en saphirs.
|
||||
|
||||
## Contrat du premier lot
|
||||
|
||||
Après Hello World, chaque habitant peut choisir gratuitement une propriété
|
||||
personnelle dans l'Overworld. Le centre est la position de ses pieds au moment
|
||||
de la confirmation. Le volume initial est un cube inclusif de 17 blocs de côté
|
||||
(rayon de 8 blocs), indépendant des chunks. Quatre extensions ajoutent chacune
|
||||
4 blocs de rayon dans les trois axes : côtés 25, 33, 41 et 49, pour 100, 200,
|
||||
300 puis 400 **points** d'XP Minecraft. Le centre ne change pas.
|
||||
Ce barème est une première hypothèse d'équilibrage, pas une décision définitive.
|
||||
|
||||
Une seule propriété par UUID, sans chevauchement en trois dimensions, y compris
|
||||
les extensions en attente de reprise. Le volume doit rester dans la hauteur
|
||||
constructible et la bordure du monde. Un cube de rayon 32 autour du spawn commun
|
||||
reste non revendicable. Aucun déplacement, abandon, transfert, invité, droit de
|
||||
faction ou remboursement n'est livré dans ce lot. Aucun objet spécial n'est
|
||||
nécessaire : Habitant → Propriété et `/sanctuary property` (alias `propriete` et
|
||||
`propriété`) ouvrent le menu ; `claim`, `expand` et `preview` sont aussi disponibles.
|
||||
L'aperçu affiche les coins exacts et des particules temporaires, sans poser de bloc.
|
||||
|
||||
Le titulaire peut modifier son volume. Les autres joueurs, y compris en Créatif,
|
||||
ne peuvent pas y miner, poser ou utiliser des blocs/objets. Les terrains libres
|
||||
gardent leurs règles ordinaires. Les contrôles portent aussi sur les cellules
|
||||
des actions groupées Sanctuary. La protection des dégâts environnementaux
|
||||
(explosions, pistons, fluides, feu, mobs), des entités et des commandes opérateur
|
||||
reste hors de ce premier lot et doit être annoncée dans l'interface.
|
||||
|
||||
Faction et Battle quittent le menu Pause et rejoignent Habitant. Le moteur de
|
||||
Battle reste disponible sans nouveau développement. Les deux anciennes places
|
||||
du menu Pause restent libres pour les futurs boutons.
|
||||
|
||||
## Sauvegarde et migration additive
|
||||
|
||||
Nouveau fichier `<monde>/sanctuary/properties-v1.json`, schéma 1, lié à la graine
|
||||
de l'Overworld : `schema`, `seed`, `claims` (UUID → centre et palier), `pending`
|
||||
(UUID → reçu et extension préparée). Aucun fichier existant ne change de format,
|
||||
aucun terrain n'est attribué au chargement, aucun chunk n'est régénéré. Les
|
||||
habitants existants ayant terminé Hello World ont le même droit gratuit à choisir
|
||||
un emplacement. Demeure reste une mesure d'habitation indépendante.
|
||||
|
||||
Écriture atomique avec contrôle de remplacement externe, lecture stricte et
|
||||
refus de schéma inconnu, conflit ou corruption. Une panne ferme les actions
|
||||
de propriété et la modification de blocs par les joueurs dans le monde concerné,
|
||||
sans réinitialiser le registre. Corriger/restaurer le fichier puis redémarrer.
|
||||
|
||||
Extension : préparer le journal, débiter l'XP, sauvegarder le joueur avec un
|
||||
reçu persistant `sanctuary:property_xp_receipt`, vérifier ce reçu sur disque,
|
||||
puis valider le nouveau volume. À la reconnexion, un reçu présent termine
|
||||
l'extension ; sinon la préparation est annulée et le volume initial conservé.
|
||||
Une reprise ne redébite jamais l'XP. Le journal réserve le volume agrandi jusqu'à
|
||||
la reprise du titulaire. Les requêtes portent le palier attendu pour refuser
|
||||
les répétitions et les écrans périmés.
|
||||
|
||||
## Validation
|
||||
|
||||
Le parcours client Vulkan / MoltenVK 1.4.2 sur Apple M1 passe en FR/EN,
|
||||
GUI 2/3/4, dans un nouveau monde de développement plat de graine **270** :
|
||||
accès depuis Habitant, absence des anciens boutons dans Pause, allers-retours
|
||||
Faction/Battle, confirmation de réservation, réservation par le réseau réel,
|
||||
puis achat d’une extension (150 → 50 points). Dix-neuf captures sont conservées
|
||||
dans `build/property270-screenshots/` ; les vues compactes FR ont été inspectées.
|
||||
|
||||
`check build assemblePack` réussit en **2 min 34 s**, avec les **41 GameTests serveur ciblés**
|
||||
(propriété, progression, minage, construction et cycles).
|
||||
Le banc de registre couvre 13 748 assertions, principalement les limites
|
||||
inclusives 3D, les volumes superposés, les conflits, le plafond, la reprise avec
|
||||
ou sans reçu, le refus des requêtes périmées et la conservation des fichiers
|
||||
invalides ou remplacés. Les GameTests utilisent deux joueurs serveur simulés
|
||||
pour les droits, le minage natif, la pose native, les outils, les interactions,
|
||||
les limites et le débit d’XP avec vérification du reçu natif sur disque.
|
||||
Aucun essai avec deux clients distants n’est revendiqué.
|
||||
|
||||
Commandes de validation :
|
||||
|
||||
```sh
|
||||
./gradlew check build assemblePack \
|
||||
-PsanctuaryFocusedTests=property270,progression,mining,building,cycle \
|
||||
-PsanctuaryAtlasOnly=true
|
||||
./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true \
|
||||
-PsanctuaryProperty270ClientTests=true -PsanctuaryQuickTests=true \
|
||||
-PsanctuaryClientGraphicsBackend=vulkan -PsanctuaryClientHeapGb=8 \
|
||||
-PsanctuaryClientNoVsync=true
|
||||
```
|
||||
|
||||
Journaux ignorés : `build/property270-check-build-pack-final.log` et
|
||||
`build/property270-client-vulkan.log`. Le pack local reste dans `build/packwiz`.
|
||||
Export importable vérifié : [Sanctuary-beta.270.mrpack](../build/Sanctuary-beta.270.mrpack)
|
||||
(intégrité ZIP, versions, dépendances et JAR Sanctuary/JEI identiques aux builds).
|
||||
Reçu local et empreinte du JAR : `build/property270-validation.json`.
|
||||
Aucune publication ni synchronisation d’instance personnelle n’a été effectuée.
|
||||
@@ -0,0 +1,78 @@
|
||||
# Propriétés — refonte mise de côté, 24 octobre 2026
|
||||
|
||||
Retour du créateur après beta.273. Les propositions ci-dessous remplacent le
|
||||
cadrage futur ; elles ne sont pas annoncées comme des mécaniques implémentées.
|
||||
La fiche Habitant en deux colonnes et deux rangées est conservée.
|
||||
|
||||
## Retour et direction souhaitée
|
||||
|
||||
- Mettre de côté le chantier Propriété, jugé encore incertain.
|
||||
- Le rendu des claims sur la carte paraît superposé et insuffisamment net dans
|
||||
le style pixel art ; les zones adjacentes ne se raccordent pas comme souhaité.
|
||||
- S’appuyer sur **Demeure**, le système d’habitation existant. Avoir habité sur
|
||||
le terrain devrait être nécessaire pour pouvoir le revendiquer ; proposer
|
||||
la propriété à partir de cette habitation plutôt qu’un choix arbitraire de chunk.
|
||||
- Le premier habitant serait prioritaire. Lorsque deux habitants veulent le
|
||||
même endroit, envisager un départage par le système Battle existant ou par
|
||||
accord commun. La forme exacte du duel et du consentement reste à définir.
|
||||
- La propriété désigne un **lieu déclaré**. Les joueurs peuvent s’opposer et
|
||||
se faire la guerre de plusieurs façons ; ce n’est pas une interdiction générale
|
||||
d’agir sur le terrain.
|
||||
- Les **64 saphirs** de protection sont jugés trop chers. Aucun nouveau montant
|
||||
n’a été fixé : ne pas inventer un tarif de remplacement.
|
||||
- Le graphisme de protection prend trop de place. Direction souhaitée : une
|
||||
couleur unie, sans gros pictogrammes ni cadres par chunk, accompagnée d’une
|
||||
légende reliant la couleur au personnage qui a revendiqué le lieu.
|
||||
- Demeure doit lui aussi se lire comme un calque continu sans bordure interne,
|
||||
pour percevoir plus facilement les zones d’influence. Retirer « aucun claim
|
||||
ni protection » de son infobulle, devenu trompeur dans l’ensemble des systèmes.
|
||||
|
||||
## Questions de reprise
|
||||
|
||||
Le retour n’établit pas encore les seuils d’habitation, l’emprise d’un terrain,
|
||||
la preuve du premier occupant, les règles d’inactivité, le type de duel, ses
|
||||
conditions et son consentement, l’accord sans duel, le devenir des claims déjà
|
||||
achetés, ni le nouveau tarif. Tout changement de registre ou des droits acquis
|
||||
nécessitera son contrat de migration. Ne pas traiter une victoire au combat
|
||||
ou la présence Demeure comme un transfert automatique de propriété.
|
||||
|
||||
Le créateur a confirmé : **conserver les claims actuels accessibles**. La refonte
|
||||
des règles est mise en attente ; les claims, achats et protections du prototype
|
||||
restent disponibles. Aucune suppression des données existantes n’est autorisée.
|
||||
La passe beta.274 simplifie seulement leur affichage en calque pixel uniforme
|
||||
pour les protections, sans bordure ni bouclier, avec une légende couleur / propriétaire.
|
||||
|
||||
## Évolution d’accès — beta.275
|
||||
|
||||
Le créateur demande ensuite de réserver les propriétés aux joueurs ayant acheté
|
||||
et activé Carte. Le bouton Propriété quitte Habitant ; la commande et le clic
|
||||
droit de l’Atlas restent utilisables après ce déblocage. Les claims, leurs données
|
||||
et les protections acquises sont conservés ; le conseil de première arrivée est
|
||||
retiré. Cela ne met pas en œuvre l’habitation préalable, les duels ou un nouveau prix.
|
||||
|
||||
## Évolution d’affichage et de tarif — beta.276
|
||||
|
||||
Le créateur fixe maintenant le tarif : **8 saphirs par chunk pour trois jours de
|
||||
serveur en marche**. Il demande un contour CTM pour toutes les propriétés et
|
||||
un fond supplémentaire sur les chunks protégés. [Contrat de conservation des
|
||||
protections et reçus existants](claim-contours-beta276.md). L’habitation préalable
|
||||
et les duels restent en attente ; ce nouveau tarif remplace uniquement ce point
|
||||
jusqu’alors ouvert.
|
||||
|
||||
## Habitation et concurrence avant claim — beta.277
|
||||
|
||||
Le créateur reprend l’habitation préalable et confirme le seuil existant de
|
||||
Demeure. Il précise ensuite qu’un autre habitant doit pouvoir revendiquer s’il
|
||||
prend plus d’influence avant le claim du premier : la priorité reste donc
|
||||
contestable sur le terrain libre. [CLAIM-277](claim-demeure-beta277.md) retient
|
||||
l’influence effective et, à égalité, l’ordre des premières traces ; un claim
|
||||
acquis n’est pas transféré automatiquement. Les duels restent à définir.
|
||||
|
||||
## Duels de propriété consentis — beta.278
|
||||
|
||||
Le créateur demande un duel Battle avec l’accord des deux joueurs et confirme
|
||||
le périmètre : les propriétés déjà revendiquées. [CLAIM-278](claim-battle-beta278.md)
|
||||
relie un chunk précis au résultat d’un Battle privé à deux joueurs ; le gagnant
|
||||
reçoit ce claim et le temps de protection restant. Refus, annulation ou absence
|
||||
de vainqueur ne transfèrent rien. Les règles des terrains libres de beta.277
|
||||
restent indépendantes ; aucun duel n’attribue gratuitement un chunk encore libre.
|
||||
@@ -1,5 +1,25 @@
|
||||
# CLAIM-01 — Titres de propriété temporaires
|
||||
|
||||
[CLAIM-278](claim-battle-beta278.md) permet aux deux joueurs d’accepter un
|
||||
Battle dont le vainqueur devient propriétaire du claim annoncé.
|
||||
|
||||
[CLAIM-277](claim-demeure-beta277.md) relie les revendications au seuil
|
||||
d’habitation Demeure et à l’influence tant que le chunk reste libre.
|
||||
|
||||
[CLAIM-276](claim-contours-beta276.md) actualise le prototype : contours CTM pour
|
||||
toutes les propriétés, fond sur les claims protégés, **8 saphirs pour trois jours
|
||||
de serveur par chunk**. Les durées déjà payées sont conservées.
|
||||
|
||||
La [direction de refonte du 24 octobre](property-demeure-refonte.md) est mise en
|
||||
attente. Les claims existants restent accessibles ; habitation préalable, duels
|
||||
et nouveau tarif ne sont pas encore implémentés.
|
||||
|
||||
**Cadrage historique.** Le lot [CLAIM-03 / beta.272](chunk-claims-beta272.md)
|
||||
retient les claims par chunk depuis la carte, cinq gratuits puis un coût en XP,
|
||||
et une protection de sept jours de serveur pour 64 saphirs par chunk. Il remplace
|
||||
le premier modèle en volume [CLAIM-02 / beta.270](property-beta270.md). Les titres
|
||||
objets et autres intentions ci-dessous restent historiques.
|
||||
|
||||
**Ticket local — conception en cours, décisions du 15 septembre 2026.**
|
||||
Ce document prépare le résultat jouable ; la protection n'est pas implémentée.
|
||||
Branche réservée : `codex/property-titles`. Le checkout existant reste sur sa
|
||||
|
||||
@@ -0,0 +1,191 @@
|
||||
# PROVIDENCE-265 — Prières et premiers miracles
|
||||
|
||||
Demande du 24 octobre 2026, branche `codex/providence-prayers`, livraison
|
||||
locale **beta.265**, Minecraft **26.3**, Fabric Loader **0.19.5** et
|
||||
Fabric API **0.160.5+26.3**. Aucune dépendance ajoutée.
|
||||
|
||||
## Intégration
|
||||
|
||||
Providence est un paquet autonome dans le mod Sanctuary existant. Son
|
||||
initialisation enregistre deux commandes et une session par serveur. Le
|
||||
vocabulaire, l'interpréteur, le moteur de décision et le journal utilisent
|
||||
du Java/Gson indépendant de Minecraft. Seuls la validation du monde,
|
||||
l'exécution et les réponses dépendent du jeu.
|
||||
|
||||
La tranche utilise les services actuels : contrat météo journalier,
|
||||
position de dernière mort sauvegardée nativement par Minecraft, écritures
|
||||
atomiques `AtomicJson`, commandes Fabric et ressources FR/EN. Aucun écouteur
|
||||
du chat général, LLM, appel HTTP ou service extérieur. Les tombes et les
|
||||
inventaires ne sont jamais interceptés par Providence.
|
||||
|
||||
## Jouer
|
||||
|
||||
```text
|
||||
/pray Ô seigneur, j'en ai marre de cet orage, faites revenir le soleil !
|
||||
/pray Pitié, ramenez-moi à l'endroit où je suis mort
|
||||
/providence readable true
|
||||
/providence readable false
|
||||
```
|
||||
|
||||
`/pray` est accessible sans opérateur, dans une partie solo comme sur un
|
||||
serveur dédié. La prière est limitée à 512 caractères. Elle reçoit une réponse
|
||||
privée courte, avec deux variantes par verdict. Le mode par défaut utilise
|
||||
la police `sanctuary:providence`, ressource du mod référençant la police SGA
|
||||
native `minecraft:alt`. Les textes SGA sont sans accents ; la lecture normale
|
||||
FR/EN conserve les accents et se choisit individuellement avec `readable`.
|
||||
Le choix persiste. Les variantes « entendue » sont préparées ; le parcours
|
||||
jouable répond directement par le verdict final.
|
||||
|
||||
Les prières espacées de moins de cinq secondes sont silencieuses, sans
|
||||
nouvelle recherche de destination ni nouvelle écriture. Une erreur de
|
||||
persistance ferme le moteur jusqu'à un rechargement valide ; un rechargement
|
||||
de configuration invalide conserve la session courante. Les données en erreur
|
||||
sont conservées.
|
||||
|
||||
## Compréhension symbolique
|
||||
|
||||
Au premier démarrage, le serveur copie deux fichiers embarqués vers :
|
||||
|
||||
- `config/sanctuary/providence/concepts.json` : concepts et synonymes, dont
|
||||
des expressions de plusieurs mots ; vocabulaire français et premiers
|
||||
synonymes anglais.
|
||||
- `config/sanctuary/providence/miracles.json` : motifs de reconnaissance,
|
||||
exclusions, conditions obligatoires, probabilités, cooldowns et rétention.
|
||||
|
||||
Après modification, un opérateur utilise `/providence reload`. Les deux
|
||||
fichiers sont validés avant le remplacement de la session courante. Un
|
||||
synonyme ajouté ne demande aucune recompilation. Les conditions de sécurité
|
||||
des exécuteurs ne peuvent pas être supprimées par les fichiers JSON.
|
||||
|
||||
La normalisation retire accents, casse et ponctuation ; la détection respecte
|
||||
les frontières des mots. Une demande doit commencer un segment, invoquer
|
||||
Providence ou comporter une expression directe comme « ramenez-moi ». Un
|
||||
constat tel que « le serveur arrête la pluie » reste sans effet. Chaque motif contient des groupes de concepts :
|
||||
tous les groupes sont requis, avec au moins un concept par groupe. Par
|
||||
exemple, demande + arrêt + pluie, ou demande + retour + soleil. Le score
|
||||
de couverture vaut le pourcentage de groupes satisfaits (0 à 100). Le seuil
|
||||
par défaut est 90 et un motif incomplet ne déclenche jamais d'effet. Ce score
|
||||
structurel n'est pas une probabilité de compréhension du langage.
|
||||
|
||||
Les indices ne sont pas assemblés entre phrases ou propositions séparées par
|
||||
une conjonction. Les négations, hypothèses et certaines formulations de récit
|
||||
bloquent la proposition concernée. Deux intentions complètes distinctes
|
||||
rendent la prière ambiguë et empêchent toute action. Un mot isolé comme
|
||||
« pluie », un récit de mort ou « J'aime cette pluie, ne l'arrêtez pas »
|
||||
n'exécute rien.
|
||||
|
||||
Ce moteur reconnaît un petit vocabulaire et des relations simples. Il ne
|
||||
résout pas la coréférence, le sarcasme, les citations imbriquées ou toutes
|
||||
les tournures françaises. Une prière correcte peut rester incomprise ; les
|
||||
formulations négatives et hypothétiques sont volontairement conservatrices.
|
||||
|
||||
## Miracles et décisions
|
||||
|
||||
| Miracle | Politique initiale | Conditions et effet |
|
||||
| --- | --- | --- |
|
||||
| `CLEAR_WEATHER` | 35 %, individuel 30 min, global 10 min | Joueur vivant, Overworld avec météo et temps non clair. Profil Sanctuary changé en `CLEAR` jusqu'au prochain jour civil ; prévision normale reprise le lendemain. En mode météo vanilla, éclaircie de 600 secondes configurable. |
|
||||
| `RETURN_TO_DEATH` | 50 %, individuel 15 min, aucun cooldown global | Joueur vivant, dernière mort connue dans la dimension courante, arrivée sûre dans les chunks déjà chargés. Téléportation native et distance de chute remise à zéro. |
|
||||
| `RECOVER_ITEMS` | Désactivé, activation JSON refusée | Intention reconnue, aucune lecture ou restitution des objets. Contrat anti-duplication encore à concevoir autour des tombes. |
|
||||
| `RESCUE_PLAYER` | Désactivé, activation JSON refusée | Intention reconnue, aucune extraction. Les critères de situation bloquée et de destination restent à valider. |
|
||||
|
||||
Aucun coût d'XP ou d'objet dans cette tranche. Les probabilités, délais et
|
||||
activation des deux pouvoirs validés sont configurables. Les délais utilisent
|
||||
l'heure UTC en millisecondes du serveur ; un recul de son horloge prolonge
|
||||
l'attente. Un refus probabiliste consomme les mêmes cooldowns qu'un accord,
|
||||
afin de ne pas relancer le tirage par répétition ou reconnexion. Un refus
|
||||
de condition, une intention inconnue ou un pouvoir désactivé ne consomme que
|
||||
la courte limite de fréquence des prières.
|
||||
|
||||
Le retour cherche le point sûr le plus proche dans une boîte de ±8 blocs
|
||||
horizontalement et ±6 verticalement autour de la dernière mort. Le sol doit
|
||||
être solide, le joueur debout doit tenir dans le volume libre, et les cases voisines
|
||||
doivent être chargées et dans la bordure. Fluides, lave, feu, cactus, magma,
|
||||
neige poudreuse, plantes blessantes et portails sont refusés. Aucun bloc
|
||||
n'est créé ou détruit, aucun chunk n'est chargé ou généré par cette recherche.
|
||||
Une mort dans le vide, dans une autre dimension ou trop loin des chunks
|
||||
chargés reste donc sans retour. Une arrivée sûre ne garantit pas l'absence
|
||||
d'ennemis ou de dangers futurs. Le joueur endormi, mort, spectateur ou passager
|
||||
est inéligible.
|
||||
|
||||
## Nouveau contrat de persistance isolé
|
||||
|
||||
`<monde>/data/sanctuary-providence.json`, schéma 1, contient uniquement les
|
||||
prières explicites admises par la limite de fréquence, leurs UUID, intentions,
|
||||
scores, ambiguïtés, concepts, conditions examinées, décisions et résultats,
|
||||
ainsi que les échéances et préférences de lecture. Il n'enregistre pas les
|
||||
autres messages du chat ou les messages privés entre joueurs.
|
||||
|
||||
Par défaut, les 500 dernières entrées au maximum sont conservées pendant
|
||||
14 jours. Le nettoyage intervient au chargement, à chaque décision et une
|
||||
fois par minute pendant que le serveur tourne. `historyEntries: 0` désactive
|
||||
la conservation du texte des prières tout en conservant les protections
|
||||
contre les répétitions. Les cooldowns non expirés restent indépendants de la
|
||||
rétention ; les échéances expirées sont éliminées. Les fichiers sont bornés
|
||||
(configurations 256 Kio chacune, état 8 Mio) et remplacés atomiquement.
|
||||
|
||||
Avant tout effet, la décision `PENDING` et ses cooldowns sont enregistrés
|
||||
(avec la conservation du texte désactivée, seules les réservations persistent).
|
||||
L'effet réussi devient `GRANTED` avec `executed: true`. Une interruption
|
||||
entre ces étapes laisse `PENDING` et `executed: false`, résultat incertain
|
||||
à examiner manuellement ; aucune exécution n'est rejouée au redémarrage.
|
||||
Il n'existe pas de transaction atomique entre les fichiers du monde Minecraft
|
||||
et le journal : une panne au milieu d'un effet peut donc laisser ce résultat
|
||||
incertain. Les refus et échecs ne sont jamais annoncés comme exécutés.
|
||||
|
||||
Contrat additif : aucune migration de fichier existant, changement de
|
||||
génération, expansion, réécriture de chunk ou manipulation de sauvegarde
|
||||
personnelle. La météo utilise son contrat existant sans en changer le schéma.
|
||||
|
||||
## Vérifications
|
||||
|
||||
`check build assemblePack` réussit en **2 min 50 s**, sur Java 25.0.3,
|
||||
avec les **15 GameTests serveur requis réussis** (Providence, tombes et
|
||||
progression) et **67 vérifications Providence indépendantes de Minecraft**.
|
||||
Le parcours serveur couvre notamment les vraies commandes, le beau temps
|
||||
persistant, le cooldown global après rechargement, un rechargement JSON refusé
|
||||
sans perte de session, le choix d'accessibilité persistant, la position native
|
||||
après mort et sauvegarde/relecture, la téléportation réelle, les arrivées
|
||||
non chargées, la lave, le plafond, la pose rampante, le cactus et la restitution
|
||||
d'objets désactivée. Le journal de l'essai contient une erreur de rechargement
|
||||
JSON attendue, injectée pour vérifier la conservation de la session.
|
||||
|
||||
Les tests indépendants comprennent synonymes rechargés sans compilation,
|
||||
formulations familières FR/EN, récits sans demande, négations, hypothèses,
|
||||
ambiguïtés, refus probabiliste, conditions manquantes, pouvoirs désactivés,
|
||||
limite de fréquence, cooldowns individuels/globaux après redémarrage,
|
||||
interruption d'exécution, rétention par âge et par nombre, journal textuel
|
||||
désactivé, isolation des mondes, taille maximale, corruption et conflit
|
||||
avec une modification extérieure du fichier.
|
||||
|
||||
Le parcours client réussit en **1 min 1 s**, sous **Vulkan / MoltenVK 1.4.2,
|
||||
Apple M1**, avec 8 Gio maximum. Un `/pray` envoyé par la vraie connexion de jeu
|
||||
arrête l'orage et retourne une réponse SGA ; la commande d'accessibilité
|
||||
retourne ensuite une réponse en lecture normale. Les huit verdicts principaux
|
||||
sont rendus dans le chat natif en FR/EN, GUI 2/3/4, en SGA et en lecture normale.
|
||||
Les **12 captures natives** ont été inspectées : alphabet, ponctuation,
|
||||
accents et texte contenu dans le chat. Monde de développement neuf, graine 265.
|
||||
|
||||
Journaux et captures ignorés :
|
||||
`build/providence265-check-build-pack-final.log`,
|
||||
`build/providence265-client-vulkan.log`, `build/providence265-screenshots/`.
|
||||
Aucun essai OpenGL. Les essais concernent le serveur local et le client macOS ;
|
||||
aucune connexion distante multijoueur ni validation Windows n'est revendiquée.
|
||||
Aucune publication, avancée du canal packwiz ou installation personnelle.
|
||||
|
||||
Le [MRpack local beta.265](../build/Sanctuary-beta.265.mrpack) est exporté et
|
||||
vérifié : intégrité ZIP, version, Minecraft 26.3/Fabric exacts, un seul JAR
|
||||
Sanctuary identique au build, classes compilées et ressources Providence/FR/EN
|
||||
identiques aux sources, classes de test absentes. Par rapport à beta.264,
|
||||
les seules classes existantes modifiées sont `SanctuaryMod` et `WeatherService` ;
|
||||
le reste du nouveau code est dans `providence`. Empreintes et reçu :
|
||||
`build/providence265-validation.json`.
|
||||
|
||||
```sh
|
||||
export JAVA_HOME=$(/usr/libexec/java_home -v 25)
|
||||
./gradlew check build assemblePack \
|
||||
-PsanctuaryFocusedTests=providence265,graves,progression -PsanctuaryAtlasOnly=true
|
||||
./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true \
|
||||
-PsanctuaryQuickTests=true -PsanctuaryProvidence265ClientTests=true \
|
||||
-PsanctuaryClientGraphicsBackend=vulkan -PsanctuaryClientHeapGb=8 \
|
||||
-PsanctuaryClientNoVsync=true
|
||||
```
|
||||
@@ -0,0 +1,53 @@
|
||||
# PROVIDENCE-266 — Couleurs des réponses SGA
|
||||
|
||||
Demande du 24 octobre 2026, branche `codex/providence-prayers`, livraison locale
|
||||
**beta.266**, Minecraft **26.3**.
|
||||
|
||||
Les réponses de Providence affichées en SGA utilisent les couleurs natives de
|
||||
Minecraft selon le verdict, pour les deux variantes et les traductions FR/EN :
|
||||
|
||||
| Couleur | Réponses |
|
||||
| --- | --- |
|
||||
| Vert | Miracle accordé ; confirmation de rechargement si affichée en SGA. |
|
||||
| Jaune | Prière entendue, cooldown, silence, prière incomprise ou ambiguë. |
|
||||
| Rouge | Refus, conditions non remplies, pouvoir désactivé, échec d'exécution ou erreur de configuration. |
|
||||
|
||||
Le jaune invite à attendre ou à reformuler. Il n'ajoute pas de file d'exécution
|
||||
automatique. Les messages d'aide et de changement de lecture restent neutres.
|
||||
Le mode de lecture normale conserve son affichage actuel ; la demande porte
|
||||
sur le SGA. La police et les textes des verdicts sont conservés.
|
||||
|
||||
La modification est limitée à `ProvidenceMessages` et aux métadonnées de
|
||||
livraison. Les règles de décision et la persistance restent celles de
|
||||
[Providence beta.265](providence-beta265.md).
|
||||
|
||||
## Vérifications
|
||||
|
||||
Le parcours existant Providence réussit sous **Vulkan / MoltenVK 1.4.2,
|
||||
Apple M1**, en **55 secondes**, avec 8 Gio maximum. Il couvre une vraie prière
|
||||
transmise au serveur, les traductions FR/EN et les échelles GUI 2/3/4, en SGA
|
||||
et en lecture normale. Douze captures sont conservées dans
|
||||
`build/providence266-screenshots/` ; les vues SGA FR GUI 2/4 et EN GUI 3 ont
|
||||
été inspectées, avec les trois couleurs et la police conservée.
|
||||
Journal : `build/providence266-client-vulkan.log`.
|
||||
|
||||
```sh
|
||||
export JAVA_HOME=$(/usr/libexec/java_home -v 25)
|
||||
./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true \
|
||||
-PsanctuaryQuickTests=true -PsanctuaryProvidence265ClientTests=true \
|
||||
-PsanctuaryClientGraphicsBackend=vulkan -PsanctuaryClientHeapGb=8 \
|
||||
-PsanctuaryClientNoVsync=true
|
||||
./gradlew check build assemblePack \
|
||||
-PsanctuaryFocusedTests=providence265,graves,progression -PsanctuaryAtlasOnly=true
|
||||
```
|
||||
|
||||
`check build assemblePack` réussit en **2 min 38 s**, avec les **15 GameTests
|
||||
serveur requis** et les **67 vérifications indépendantes** de Providence.
|
||||
Journal : `build/providence266-check-build-pack.log`.
|
||||
|
||||
Le [pack local beta.266](../build/Sanctuary-beta.266.mrpack) est exporté et
|
||||
vérifié : intégrité ZIP, version, Minecraft 26.3, JAR embarqué identique au
|
||||
build et classes de test absentes. La seule classe modifiée par rapport au
|
||||
JAR beta.265 est `ProvidenceMessages`. Reçu et empreintes :
|
||||
`build/providence266-validation.json`. Aucune publication ni mise à jour
|
||||
d'une installation personnelle.
|
||||
@@ -0,0 +1,103 @@
|
||||
# PROVIDENCE-267 — Attendre la réponse de Providence
|
||||
|
||||
Demande du 24 octobre 2026, branche `codex/providence-prayers`, livraison locale
|
||||
**beta.267**, Minecraft **26.3**.
|
||||
|
||||
Après une prière admise par `/pray`, Providence attend **5 secondes** avant
|
||||
d'interpréter la demande, d'examiner le monde, de prendre sa décision et
|
||||
d'accomplir un éventuel miracle. Aucun verdict ou effet immédiat. Les réponses
|
||||
conservent les couleurs de beta.266 : vert accordé, jaune attente ou
|
||||
clarification, rouge refus ou échec.
|
||||
|
||||
Une seule prière peut attendre par joueur. Les répétitions pendant ce délai
|
||||
sont ignorées : elles ne remplacent pas les mots initiaux, ne raccourcissent
|
||||
pas l'attente et ne déclenchent pas un second tirage. Les autres joueurs
|
||||
attendent indépendamment. Les cooldowns persistants des miracles et la limite
|
||||
de fréquence des prières sont conservés ; cette dernière repart du traitement
|
||||
de la réponse. Le résultat de la commande `/pray` indique désormais l'admission
|
||||
dans la file, et non l'exécution immédiate d'un miracle.
|
||||
|
||||
## Configuration
|
||||
|
||||
Ajouter ou modifier dans `config/sanctuary/providence/miracles.json` :
|
||||
|
||||
```json
|
||||
"responseDelaySeconds": 5
|
||||
```
|
||||
|
||||
Valeur entière entre **1 et 60 secondes**, appliquée aux nouvelles prières
|
||||
après `/providence reload`. Les anciennes configurations beta.265/266 sans
|
||||
cette clé utilisent cinq secondes automatiquement ; leurs autres valeurs et
|
||||
leurs fichiers restent conservés. Le champ est fourni dans les configurations
|
||||
neuves, sans changer le schéma existant.
|
||||
|
||||
Une seconde correspond à 20 ticks du monde serveur. Le délai peut donc durer
|
||||
plus longtemps si le serveur ralentit ou si la partie solo est mise en pause.
|
||||
Le rechargement de la configuration conserve les prières déjà en attente et
|
||||
leur échéance initiale. Leur interprétation et les règles utilisées lors de la
|
||||
décision sont celles de la configuration alors active.
|
||||
|
||||
## Cycle de vie et sécurité
|
||||
|
||||
L'attente est traitée dans les ticks serveur, sans bloquer de thread. La file
|
||||
en mémoire est bornée à 1 024 prières et ne survit pas à l'arrêt du serveur.
|
||||
Une déconnexion ou une réapparition annule la demande en attente ; elle n'est
|
||||
pas remise à un nouvel objet joueur. Les joueurs déconnectés ou retirés sont
|
||||
aussi vérifiés avant tout traitement.
|
||||
|
||||
Les conditions sont évaluées à l'échéance, puis revérifiées juste avant l'effet
|
||||
par l'exécuteur existant. Une dernière mort ou une destination ayant changé
|
||||
pendant l'attente est donc examinée dans son état actuel. Les contrôles d'aide,
|
||||
de lecture normale et de rechargement restent immédiats.
|
||||
|
||||
Les prières sont journalisées quand elles sont traitées. Une attente annulée
|
||||
avant traitement ne crée pas de décision dans l'historique. La réservation
|
||||
`PENDING` avant les effets et les règles de non-rejeu de beta.265 sont
|
||||
conservées. Aucun changement du format des sauvegardes, de la génération ou
|
||||
des tombes ; aucune installation personnelle utilisée pour les essais.
|
||||
|
||||
## Vérifications
|
||||
|
||||
Le contrôle client Vulkan réussit en **47 secondes**, sous **MoltenVK 1.4.2 /
|
||||
Apple M1**, avec 8 Gio maximum, dans un monde de développement neuf graine 265.
|
||||
Une vraie commande réseau n'affiche aucune réponse immédiate ; le serveur
|
||||
conserve la pluie pendant l'attente. Un second `/pray bonjour` ne remplace pas
|
||||
la demande originale. Le miracle et une unique réponse verte arrivent après
|
||||
**101 ticks serveur** depuis l'envoi, soit environ cinq secondes.
|
||||
|
||||
Le parcours FR/EN GUI 2/3/4, en SGA et lecture normale, est conservé. Treize
|
||||
captures natives : `build/providence267-screenshots/`. La vue d'attente et les
|
||||
réponses SGA FR GUI 2 / EN GUI 4 ont été inspectées. Journal :
|
||||
`build/providence267-client-vulkan.log`, marqueur `PROVIDENCE267_DELAY_PASS`.
|
||||
|
||||
La suite serveur utilise un délai de test configurable d'une seconde. Elle
|
||||
vérifie l'absence d'effet et de décision anticipée, les répétitions ignorées,
|
||||
l'échéance conservée après rechargement, les cooldowns existants, les refus
|
||||
différés, la téléportation sûre, la dernière mort modifiée pendant l'attente
|
||||
et l'absence de traitement d'un joueur déconnecté. Le format des fichiers de
|
||||
configuration beta.265/266 est aussi relu sans réécriture dans les tests purs.
|
||||
|
||||
```sh
|
||||
export JAVA_HOME=$(/usr/libexec/java_home -v 25)
|
||||
./gradlew check build assemblePack \
|
||||
-PsanctuaryFocusedTests=providence265,graves,progression -PsanctuaryAtlasOnly=true
|
||||
./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true \
|
||||
-PsanctuaryQuickTests=true -PsanctuaryProvidence265ClientTests=true \
|
||||
-PsanctuaryClientGraphicsBackend=vulkan -PsanctuaryClientHeapGb=8 \
|
||||
-PsanctuaryClientNoVsync=true
|
||||
```
|
||||
|
||||
Les essais couvrent le serveur local et le client macOS Vulkan. Aucun essai
|
||||
distant multijoueur ou Windows, aucune publication ou mise à jour personnelle.
|
||||
|
||||
`check build assemblePack` réussit en **2 min 43 s**, avec les **15 GameTests
|
||||
serveur requis** et **83 vérifications indépendantes** de Providence.
|
||||
Journal : `build/providence267-check-build-pack.log`.
|
||||
|
||||
Le [pack local beta.267](../build/Sanctuary-beta.267.mrpack) est exporté et
|
||||
vérifié : intégrité ZIP, version et Minecraft 26.3, JAR embarqué identique au
|
||||
build, configuration et classes Providence identiques aux sorties compilées,
|
||||
classes de test absentes. Les classes existantes modifiées depuis beta.266
|
||||
se limitent aux sources `MiracleRegistry` et `ProvidenceService`, classes
|
||||
internes comprises ; la file `PrayerQueue` est nouvelle. Reçu :
|
||||
`build/providence267-validation.json`.
|
||||
@@ -0,0 +1,190 @@
|
||||
# PROVIDENCE-268 — Les quatorze prières
|
||||
|
||||
Demande du 24 octobre 2026, branche `codex/providence-prayers`, livraison locale
|
||||
**beta.268**, Minecraft **26.3**, Fabric Loader **0.19.5**, Fabric API
|
||||
**0.160.5+26.3** et Java 25.
|
||||
|
||||
Le catalogue compte désormais quatorze miracles actifs. `/pray <texte libre>`
|
||||
garde son interprétation symbolique locale, ses probabilités, ses conditions
|
||||
serveur et ses cooldowns persistants. La réponse et l’effet attendent toujours
|
||||
**cinq secondes**, réglables entre 1 et 60 secondes. Une seule demande attend
|
||||
par joueur. Le SGA reste **vert** si le miracle est accordé, **jaune** pour
|
||||
une attente ou une clarification, **rouge** pour un refus ou un échec.
|
||||
`/providence readable true` conserve la lecture normale FR/EN.
|
||||
|
||||
## Catalogue et réglages initiaux
|
||||
|
||||
Les durées ci-dessous sont les cooldowns individuels après un tirage admis,
|
||||
qu’il soit favorable ou refusé. Une condition impossible ne consomme pas ce
|
||||
tirage. Soleil et Pluie ont chacun un cooldown global supplémentaire de dix
|
||||
minutes. Les réglages restent modifiables dans
|
||||
`config/sanctuary/providence/miracles.json`, puis `/providence reload`.
|
||||
|
||||
| Nº | Prière | Exemple après `/pray` | Effet accordé | Chance / cooldown |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| 01 | Récupération | Rendez-moi mon stuff, je suis mort | Transfère les objets restants de la dernière tombe admissible | 15 % / 60 min |
|
||||
| 02 | Retour | Ramenez-moi à ma tombe | Arrivée sûre près de la dernière mort, dans la même dimension | 50 % / 15 min |
|
||||
| 03 | Secours | Ramenez-moi au spawn | Arrivée sûre près du spawn global du serveur | 50 % / 15 min |
|
||||
| 04 | Soleil | Arrêtez la pluie | Arrête pluie et orage | 35 % / 30 min |
|
||||
| 05 | Pluie | Faites pleuvoir | Déclenche la pluie | 35 % / 30 min |
|
||||
| 06 | Guérison | Guéris-moi | Restaure les PV jusqu’au maximum acquis | 50 % / 5 min |
|
||||
| 07 | Nourriture | Nourris-moi | Restaure faim et saturation jusqu’à la capacité acquise | 50 % / 5 min |
|
||||
| 08 | Foudre | Foudroie @Pseudo | Éclair visuel et cinq points de dégâts natifs sur la cible | 25 % / 15 min |
|
||||
| 09 | Malédiction | Maudis @Pseudo | Effet négatif aléatoire pendant vingt secondes | 25 % / 15 min |
|
||||
| 10 | Vengeance | Punis @Pseudo | Punition aléatoire sur la cible | 25 % / 15 min |
|
||||
| 11 | Vol | Vole un objet à @Pseudo | Transfère une unité d’un objet aléatoire vers le demandeur | 25 % / 15 min |
|
||||
| 12 | Désarmement | Désarme @Pseudo | Fait tomber la pile réellement tenue en main principale | 35 % / 10 min |
|
||||
| 13 | Téléportation | Téléporte-moi près de @Pseudo | Arrivée sûre près du joueur, y compris dans une autre dimension | 50 % / 5 min |
|
||||
| 14 | Réparation | Répare mon outil | Répare l’objet endommagé tenu en main principale | 50 % / 5 min |
|
||||
|
||||
Les noms seuls des prières et les mots isolés ne sont pas des commandes
|
||||
impératives. Une négation, une hypothèse ou plusieurs intentions complètes
|
||||
empêchent un effet. Les nouveaux concepts et synonymes FR/EN sont déclaratifs.
|
||||
Guérison, Nourriture et Réparation visent le demandeur ; elles refusent si
|
||||
le besoin correspondant n’existe pas. Secours vise le spawn global, pas le lit.
|
||||
|
||||
## Joueurs visés et effets
|
||||
|
||||
Conformément au choix du créateur, les cinq prières hostiles peuvent viser
|
||||
**tous les joueurs connectés**, sans accord préalable ni exigence de PvP
|
||||
activé. La Téléportation utilise le même choix explicite de destinataire.
|
||||
`@Pseudo` sélectionne un nom complet sans distinction de casse. Un nom complet
|
||||
sans `@` est aussi reconnu ; `@` évite les collisions avec les mots usuels.
|
||||
Un nom inconnu, plusieurs cibles ou un alias partagé ne choisissent jamais
|
||||
un joueur au hasard. Les mentions sont masquées avant la reconnaissance
|
||||
pour qu’un pseudo comme « Pluie » ne change pas l’intention.
|
||||
|
||||
L’UUID est retenu dès la demande, puis la présence de ce même joueur et les
|
||||
conditions réelles sont revérifiées à l’échéance. Un autre compte arrivé sous
|
||||
le même nom ne reçoit pas le miracle. La cible doit encore être vivante et
|
||||
connectée. Une mention explicite sur une prière personnelle est refusée.
|
||||
|
||||
Foudre envoie aux clients proches l’éclair natif et applique les dégâts côté
|
||||
serveur à la seule cible. Aucun éclair n’est ajouté à la simulation serveur :
|
||||
le décor, le cuivre, les paratonnerres et les voisins restent hors de cet effet.
|
||||
Les protections et immunités natives aux dégâts restent applicables.
|
||||
Malédiction tire entre lenteur, faiblesse, fatigue de minage, nausée et faim,
|
||||
niveau I. Vengeance tire entre cet éclair, cette malédiction, ou quatre points
|
||||
de dégâts magiques accompagnés du retrait de quatre points de faim.
|
||||
|
||||
Vol sélectionne une pile admissible dans les rangées de stockage actuellement
|
||||
accessibles, hotbar comprise, puis transfère **une unité**, composants conservés.
|
||||
Équipement porté, main secondaire et stockage verrouillé ne sont pas parcourus.
|
||||
Une destination pleine ou un vol sur soi-même est refusé. Désarmement dépose
|
||||
la pile tenue, sans la recopier, avec le délai natif avant ramassage. Un objet
|
||||
endommagé conserve ses composants et son usure pendant ces transferts.
|
||||
|
||||
Les arrivées cherchent un sol, la place debout et l’absence de danger dans
|
||||
un rayon borné de huit blocs et six blocs verticaux. Elles utilisent uniquement
|
||||
les chunks déjà chargés, respectent la frontière et remettent la chute à zéro.
|
||||
Une destination non disponible entraîne un refus. Soleil et Pluie modifient
|
||||
le profil météo courant jusqu’au prochain minuit civil ; sans contrôleur météo
|
||||
actif, la durée native configurée vaut dix minutes par défaut.
|
||||
|
||||
## Récupération et contrat de sauvegarde additif
|
||||
|
||||
Récupération transfère **les objets encore présents**, sans restaurer une copie
|
||||
de l’inventaire de mort. Elle exige le propriétaire, la position et la dimension
|
||||
de la dernière mort natives, ainsi que le numéro de décès de la tombe.
|
||||
Elle recherche les tombes placées dans les neuf chunks déjà chargés autour de
|
||||
cette mort, les têtes flottantes à proximité (24 blocs horizontaux), et les
|
||||
propres têtes de tombe portées dans le stockage accessible du demandeur.
|
||||
Elle ne charge aucun chunk et n’ouvre pas l’inventaire d’un autre joueur.
|
||||
Les objets déjà retirés ne sont pas recréés. Il faut assez de place pour tout
|
||||
le contenu admissible ; sinon aucun transfert ni scellement n’a lieu.
|
||||
|
||||
Un nouveau registre distinct, `<monde>/data/sanctuary-providence-recoveries.json`,
|
||||
**schéma 1**, conserve la correspondance entre UUID de tombe consommée et UUID
|
||||
du bénéficiaire. Son absence signifie qu’aucune récupération Providence n’a
|
||||
encore été scellée. Il est créé au premier transfert, par remplacement atomique,
|
||||
avant la mutation des objets. Il est borné à 8 Mio et 100 000 tombes : à capacité
|
||||
atteinte, les nouvelles récupérations sont refusées. Les sceaux ne sont jamais
|
||||
purgés, rejoués ou retirés automatiquement.
|
||||
|
||||
Ce fichier doit être conservé avec les sauvegardes du monde. Le format des
|
||||
joueurs et des tombes reste inchangé ; aucune conversion ni réécriture générale
|
||||
d’un monde n’est nécessaire. Les interfaces et drops d’une tombe scellée
|
||||
masquent tout ancien contenu, y compris après rechargement d’un vieux chunk
|
||||
ou d’une ancienne copie de tête. Une corruption du registre bloque l’ouverture
|
||||
des tombes plutôt que d’effacer le registre.
|
||||
Les menus de la tombe placée partagent leur conteneur réel ; le propre menu
|
||||
de tombe du bénéficiaire est fermé avant son transfert.
|
||||
|
||||
Le transfert est **au plus une fois**, sans transaction atomique entre tous
|
||||
les fichiers Minecraft. Une interruption après le scellement mais avant la
|
||||
sauvegarde du bénéficiaire peut perdre la restitution : le système ne rejoue
|
||||
pas l’opération et conserve le sceau contre la duplication. Le journal des
|
||||
prières peut alors garder `PENDING`, avec `executed: false`, résultat incertain
|
||||
à examiner manuellement. Cette limite complète le contrat de beta.265.
|
||||
|
||||
## Configurations existantes
|
||||
|
||||
Le chargement ajoute en mémoire les concepts, les nouveaux synonymes des
|
||||
concepts REQUEST/RAIN/TRAVEL et les dix définitions absentes
|
||||
d’une ancienne configuration à quatre prières. Les deux anciens emplacements
|
||||
Récupération/Secours portant exactement `conditions: ["safety_unvalidated"]`
|
||||
reçoivent leurs nouvelles règles, probabilités et activation validées ; leurs
|
||||
cooldowns sont conservés. Une définition déjà valide explicitement désactivée
|
||||
reste désactivée. Les probabilités, cooldowns et dictionnaires existants sont
|
||||
conservés ; aucun fichier édité n’est réécrit par cette mise à niveau.
|
||||
|
||||
Les identifiants des quatre premiers miracles restent stables. Le journal
|
||||
`sanctuary-providence.json` conserve son schéma et sa rétention. Aucun changement
|
||||
de génération, de graine, d’expansion ou de monde personnel.
|
||||
|
||||
## Vérifications
|
||||
|
||||
`check build assemblePack` réussit en **2 min 57 s**, avec les **20 GameTests
|
||||
serveur requis réussis** et les contrôles purs ci-dessous.
|
||||
|
||||
Le parcours client **Vulkan / MoltenVK 1.4.2 / Apple M1** réussit en **1 min 33 s**,
|
||||
avec 8 Gio maximum et un monde de développement neuf, graine 265. La vraie
|
||||
commande réseau météo attend **102 ticks serveur** avant le miracle et sa
|
||||
réponse unique. Une prière ciblée envoyée par la connexion de jeu produit aussi
|
||||
un éclair natif visible après cinq secondes, avec dégâts vérifiés sur le serveur
|
||||
et absence d’éclair dans sa simulation. Les réponses SGA et la lecture normale
|
||||
sont parcourues en FR/EN, GUI 2/3/4. Quatorze captures sont conservées ; les vues
|
||||
d’attente, SGA FR GUI 2, SGA/lecture normale EN GUI 4 et l’éclair ont été inspectés.
|
||||
|
||||
Les contrôles indépendants de Minecraft comptent **146 vérifications** :
|
||||
quatorze définitions, formulations FR/EN, négations, ambiguïtés, mots isolés,
|
||||
ciblage exact sans préfixe ni substitution, anciens dictionnaires/configurations,
|
||||
probabilités, cooldowns, journaux, corruption, écritures concurrentes, sceaux
|
||||
durables et non-rejeu. Les anciens fichiers personnalisés sont comparés avant
|
||||
et après chargement.
|
||||
|
||||
Les tests serveur couvrent les effets des quatorze miracles, les capacités
|
||||
acquises de PV/faim/stockage, le ciblage avec PvP désactivé, les transferts réels,
|
||||
le stockage verrouillé, les tombes placées/portées/flottantes, l’inventaire plein,
|
||||
les copies de tombe obsolètes après relecture des sceaux, les arrivées sûres,
|
||||
les commandes différées et l’absence de substitution d’UUID après départ.
|
||||
Le rechargement d’un JSON volontairement invalide écrit une erreur attendue
|
||||
pour vérifier que la session valide est conservée.
|
||||
|
||||
```sh
|
||||
export JAVA_HOME=$(/usr/libexec/java_home -v 25)
|
||||
./gradlew check build assemblePack \
|
||||
-PsanctuaryFocusedTests=providence265,providence268,graves,progression \
|
||||
-PsanctuaryAtlasOnly=true
|
||||
./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true \
|
||||
-PsanctuaryQuickTests=true -PsanctuaryProvidence265ClientTests=true \
|
||||
-PsanctuaryClientGraphicsBackend=vulkan -PsanctuaryClientHeapGb=8 \
|
||||
-PsanctuaryClientNoVsync=true
|
||||
```
|
||||
|
||||
Les essais utilisent des joueurs simulés côté serveur et une connexion réelle
|
||||
locale côté client ; ils ne constituent pas un essai avec deux clients distants
|
||||
ni une validation Windows. Aucun déploiement personnel ou publication.
|
||||
Journaux et captures ignorés : `build/providence268-check-build-pack-final.log`,
|
||||
`build/providence268-client-vulkan.log`, `build/providence268-screenshots/`.
|
||||
|
||||
Le [pack local beta.268](../build/Sanctuary-beta.268.mrpack) est exporté et
|
||||
vérifié : ZIP intègre, version et dépendances exactes, un seul JAR Sanctuary
|
||||
embarqué identique au build, 33 classes Providence identiques aux sorties
|
||||
compilées, dictionnaires/règles/police/libellés identiques aux sources et
|
||||
absence de classes de test. Les seules classes existantes modifiées depuis
|
||||
beta.267 proviennent de `GraveService`, `WeatherService`, `MiracleExecutor`,
|
||||
`MiracleRegistry`, `MiracleValidator`, `PrayerInterpreter`, `ProvidenceEngine`
|
||||
et `ProvidenceService`, classes internes comprises. Le registre de sceaux,
|
||||
les transferts d’inventaire et le ciblage sont de nouveaux composants.
|
||||
Empreintes et reçu : `build/providence268-validation.json`.
|
||||
@@ -0,0 +1,175 @@
|
||||
# PROVIDENCE-269 — Six issues et leurs couleurs
|
||||
|
||||
Demande du 24 octobre 2026, branche `codex/providence-prayers`, livraison locale
|
||||
**beta.269**, Minecraft **26.3**, Java 25 et Fabric Loader **0.19.5**.
|
||||
|
||||
Providence dispose de six issues. Les couleurs sont appliquées au **SGA et à
|
||||
la lecture normale FR/EN**. Le silence ne produit aucun message, même un texte
|
||||
annonçant que Providence serait silencieuse.
|
||||
|
||||
| Verdict | Couleur | Comportement |
|
||||
| --- | --- | --- |
|
||||
| ✧ Exaucée | Vert `#55FF55` | Le miracle s’exécute juste avant la réponse favorable |
|
||||
| ◇ Différée | Jaune `#FFFF55` | Le serveur annonce l’attente et programme réellement le miracle plus tard |
|
||||
| ✕ Refusée | Rouge `#FF5555` | Aucun miracle n’est accordé |
|
||||
| ? Incomprise | Gris `#AAAAAA` | La demande n’a pas d’intention reconnue unique |
|
||||
| ○ Silence | Aucun affichage | Aucun message visible et aucun miracle ; la décision reste journalisée |
|
||||
| ⌁ Alternative | Violet `#FF55FF` | Une autre aide admissible est réellement accordée au demandeur |
|
||||
|
||||
L’attente initiale de **cinq secondes** de beta.267 est conservée. « Exaucée
|
||||
immédiatement » signifie donc au moment de la réponse, après cette attente.
|
||||
« Différée » ajoute par défaut **trente secondes après la réponse jaune**.
|
||||
Une réponse verte est ensuite envoyée si l’effet aboutit. Une condition devenue
|
||||
impossible produit un refus rouge à cette échéance. Les refus pour cooldown,
|
||||
pouvoir désactivé ou échec sont rouges ; ils ne programment aucun effet futur.
|
||||
Une ambiguïté de formulation rejoint le gris de la demande incomprise.
|
||||
|
||||
## Politique configurable
|
||||
|
||||
Le nouveau fichier `config/sanctuary/providence/responses.json` est créé au
|
||||
premier chargement, sans réécrire `miracles.json`, `concepts.json` ou un fichier
|
||||
`responses.json` existant. `/providence reload` recharge les trois fichiers.
|
||||
Un fichier invalide refuse le rechargement et conserve la session valide.
|
||||
|
||||
```json
|
||||
{
|
||||
"schema": 1,
|
||||
"deferredChance": 0.20,
|
||||
"alternativeChance": 0.25,
|
||||
"silenceChance": 0.15,
|
||||
"deferredSeconds": 30,
|
||||
"alternatives": {
|
||||
"RECOVER_ITEMS": ["RETURN_TO_DEATH", "RESCUE_PLAYER"],
|
||||
"HEAL": ["FEED"],
|
||||
"FEED": ["HEAL"]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Cet extrait est valide ; le fichier distribué contient les quatorze intentions.
|
||||
Les probabilités sont comprises entre zéro et un, et la somme
|
||||
`alternativeChance + silenceChance` doit rester inférieure ou égale à un.
|
||||
`deferredSeconds` est un entier entre **1 et 3 600 secondes**. Chaque seconde
|
||||
correspond à vingt ticks serveur : pause et ralentissements allongent l’attente.
|
||||
Le réglage indépendant `responseDelaySeconds` de `miracles.json` reste entre
|
||||
une et soixante secondes.
|
||||
|
||||
La chance propre du miracle demandé est examinée en premier. Parmi les
|
||||
miracles accordés, 20 % sont différés par défaut, les autres sont exaucés au
|
||||
moment de la réponse. Pour une décision défavorable, un nouveau tirage alloue
|
||||
15 % au silence et 25 % à une tentative d’alternative. Une alternative n’est
|
||||
possible que pour une intention reconnue, active et hors cooldown ; une
|
||||
intention sans besoin actuel peut aussi recevoir une autre aide. Les demandes
|
||||
inconnues, ambiguës, désactivées ou en cooldown ne reçoivent pas d’alternative.
|
||||
Elles peuvent rester silencieuses selon le même réglage.
|
||||
|
||||
L’alternative choisit la première aide configurée qui est active, admissible
|
||||
et hors cooldown. Elle conserve **sa propre probabilité** : un tirage refusé
|
||||
ne déclenche pas de recherche successive d’un autre miracle. Les cooldowns
|
||||
du miracle demandé et de cette autre aide sont réservés avant son tirage,
|
||||
même si celui-ci refuse l’aide. Une autre formulation ou une autre intention
|
||||
ne permet donc pas de contourner le cooldown de cette aide.
|
||||
|
||||
Seules Guérison, Nourriture, Secours, Retour et Réparation peuvent servir
|
||||
d’alternatives ; elles s’adressent au demandeur. La configuration refuse une
|
||||
alternative identique à l’intention initiale, un doublon ou un effet ciblé
|
||||
hostile. Une cible absente, ambiguë ou remplacée n’est pas un prétexte pour
|
||||
accorder une autre aide. Les cinq prières hostiles demandées explicitement
|
||||
restent autorisées contre tous les joueurs connectés, comme en beta.268.
|
||||
|
||||
Le fichier distribué propose Retour puis Secours à la Récupération, Secours
|
||||
au Retour, Nourriture à la Guérison, Guérison à la Nourriture, et Guérison puis
|
||||
Nourriture aux autres intentions. Un joueur sans besoin admissible reçoit
|
||||
un refus ou du silence.
|
||||
|
||||
## Exécution différée et sauvegardes
|
||||
|
||||
Une prière en attente de réponse et un miracle différé occupent **la même
|
||||
place** dans la file : une seule opération par joueur, 1 024 au total.
|
||||
Les répétitions sont ignorées et ne remplacent pas la demande. Aucun thread
|
||||
ne dort. Le rechargement conserve l’échéance, l’intention et la cible déjà
|
||||
retenues ; le miracle n’est pas réinterprété ni tiré à nouveau à son échéance.
|
||||
|
||||
Le serveur revérifie alors l’état vivant du demandeur, la présence du même
|
||||
UUID ciblé, la destination, les objets réels et toutes les conditions du
|
||||
miracle. Il applique la définition active : désactiver ce miracle avant son
|
||||
échéance empêche l’effet. Un autre UUID portant le même pseudo ne
|
||||
remplace jamais la cible. Les arrivées et transferts conservent les protections
|
||||
de beta.268.
|
||||
|
||||
Les cooldowns positifs sont réservés au-delà du rendez-vous annoncé, puis
|
||||
prolongés si l’exécution réelle survient plus tard. Un cooldown global réglé
|
||||
à zéro reste désactivé : un joueur qui attend sa guérison ne bloque pas la
|
||||
guérison des autres joueurs. L’opération ne peut s’exécuter qu’une fois.
|
||||
|
||||
Une déconnexion, une réapparition ou l’arrêt normal du serveur annule le
|
||||
miracle différé, sans effet hors ligne. Les cooldowns réservés sont conservés. Une interruption brutale laisse une
|
||||
trace `DEFERRED` ou `PENDING`, avec `executed: false` ; les opérations en mémoire
|
||||
ne sont jamais reconstruites ou rejouées au redémarrage. Comme auparavant,
|
||||
une interruption pendant un effet peut laisser un résultat incertain.
|
||||
|
||||
Le journal `data/sanctuary-providence.json` garde **son schéma 1** et ses champs
|
||||
existants. Les nouveaux verdicts sont des valeurs du champ texte `decision`.
|
||||
La complétion ou l’annulation met à jour la même entrée, sans dupliquer la
|
||||
prière. Une alternative garde l’intention demandée et ajoute une condition
|
||||
`alternative_<ID>` pour identifier l’aide effectivement tentée.
|
||||
Le scellement permanent des tombes de beta.268 est inchangé. Aucun monde
|
||||
personnel, format de tombe, générateur ou identifiant `sanctuary:*` n’est modifié.
|
||||
|
||||
## Vérifications
|
||||
|
||||
`check build assemblePack` réussit en **2 min 36 s**, avec **191 vérifications
|
||||
Providence indépendantes de Minecraft** (146 existantes et 45 nouvelles) et
|
||||
les **22 GameTests serveur requis**. Les scénarios serveur partagés gardent
|
||||
une politique de test explicite ; le parcours des six nouvelles issues commence
|
||||
après les scénarios existants pour éviter les rechargements concurrents de leur
|
||||
configuration commune.
|
||||
|
||||
Les nouvelles assertions couvrent les six issues, les cinq couleurs dans les
|
||||
deux modes, le silence sans message, la réparation/guérison différée, une autre
|
||||
aide effective, les cooldowns des deux aides y compris un tirage alternatif
|
||||
refusé, l’absence de blocage global quand le cooldown vaut zéro, les échéances
|
||||
conservées après rechargement, les cibles par UUID, les besoins modifiés,
|
||||
la désactivation avant échéance, l’annulation, le non-rejeu, le journal désactivé
|
||||
et la corruption des configurations. Le JSON invalide injecté dans l’ancien
|
||||
scénario de rechargement écrit une erreur attendue dans le journal serveur.
|
||||
|
||||
Le parcours **Vulkan / MoltenVK 1.4.2 / Apple M1** réussit en **1 min 22 s**,
|
||||
avec 8 Gio maximum, dans un monde de développement neuf de graine 265.
|
||||
Les cinq couleurs visibles sont rendues en FR/EN, GUI 2/3/4, SGA et lecture
|
||||
normale. Les commandes passent par la connexion réelle du jeu. La météo
|
||||
attend **102 ticks serveur** avant sa réponse ; un éclair ciblé reste visible.
|
||||
Une nouvelle prière de réparation conserve les cinq secondes d’attente initiale,
|
||||
puis montre une réponse jaune sans réparation. Avec un délai supplémentaire
|
||||
de **deux secondes réservé à cet essai**, l’objet reste endommagé pendant
|
||||
l’attente, puis est réparé et reçoit une réponse verte. Le réglage distribué
|
||||
reste trente secondes.
|
||||
|
||||
Seize captures natives : `build/providence269-screenshots/`. Les vues SGA
|
||||
FR GUI 2, lecture normale EN GUI 4, réparation différée et réparation terminée
|
||||
ont été inspectées : couleurs, police, texte contenu dans le chat et ordre des
|
||||
effets. Les essais concernent macOS local et des joueurs simulés côté serveur ;
|
||||
aucun essai avec deux clients distants ou sur Windows n’est revendiqué.
|
||||
|
||||
```sh
|
||||
export JAVA_HOME=$(/usr/libexec/java_home -v 25)
|
||||
./gradlew check build assemblePack \
|
||||
-PsanctuaryFocusedTests=providence265,providence268,providence269,graves,progression \
|
||||
-PsanctuaryAtlasOnly=true
|
||||
./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true \
|
||||
-PsanctuaryQuickTests=true -PsanctuaryProvidence265ClientTests=true \
|
||||
-PsanctuaryClientGraphicsBackend=vulkan -PsanctuaryClientHeapGb=8 \
|
||||
-PsanctuaryClientNoVsync=true
|
||||
```
|
||||
|
||||
Journaux ignorés : `build/providence269-check-build-pack-final.log` et
|
||||
`build/providence269-client-vulkan.log`.
|
||||
Le [pack local beta.269](../build/Sanctuary-beta.269.mrpack) est exporté et vérifié :
|
||||
ZIP intègre, version et dépendances exactes, un seul JAR Sanctuary identique au
|
||||
build, 36 classes Providence identiques aux sorties compilées, ressources
|
||||
identiques aux sources et absence de classes de test. Depuis beta.268, les
|
||||
classes existantes modifiées proviennent seulement de `PrayerQueue`,
|
||||
`ProvidenceEngine`, `ProvidenceMessages` et `ProvidenceService`, classes internes
|
||||
comprises. `ProvidenceResponses` et les types de réservation/exécution sont
|
||||
nouveaux. Reçu et empreintes : `build/providence269-validation.json`.
|
||||
Aucune publication, avancée du canal ou installation personnelle.
|
||||
@@ -0,0 +1,115 @@
|
||||
# WG-215 — Relais régionaux visibles
|
||||
|
||||
Branche `codex/regional-relays-beta215`, depuis beta.214 (`b82ab37`).
|
||||
|
||||
## Contrat
|
||||
|
||||
Retirer le village Far West des nouvelles générations. Au Sud et au Nord,
|
||||
remplacer le petit marqueur de relais par un monument compact, massif et
|
||||
surélevé, apparenté aux ancres de Sanctuary, avec des matériaux régionaux.
|
||||
La rosace allumée du relais reçoit entièrement la couleur de sa direction ;
|
||||
le bloc originel conserve sa progression indépendante par huit gemmes.
|
||||
Agrandir modérément la pyramide extérieure, sans changer le labyrinthe,
|
||||
les coffres ou les pièges validés.
|
||||
|
||||
Nouveaux profils 215 uniquement ; les profils historiques gardent leur recette.
|
||||
Aucun ancien monde ou chunk n’est retouché, aucune conversion de journal.
|
||||
Les textures communes d’ancre changent d’aspect, sans changement de sauvegarde.
|
||||
Essais autorisés sur des mondes jetables neufs : activation réelle des ancres
|
||||
Nord/Sud, interruption et reprise. Nouvelle visite Vulkan 32 chunks et MRpack
|
||||
local ; aucun canal public ou Prism modifié. Graines prévues : 42 et 0.
|
||||
|
||||
## État
|
||||
|
||||
Implémenté ; essais natifs et assemblage final réussis. Nouvelle visite ouverte.
|
||||
Le rendu reste à apprécier en jeu.
|
||||
|
||||
## Réalisation
|
||||
|
||||
`RegionalRelay215` ajuste un socle octogonal de 13 blocs de large à une surface
|
||||
rocheuse mesurée (feuilles et eau exclues). Recherche limitée à 64 blocs autour
|
||||
du relais, dénivelé maximal de quatre blocs sous le socle, supports courts.
|
||||
L’ancre est cinq blocs au-dessus de la base, accessible par un escalier de
|
||||
largeur trois ; deux pylônes massifs encadrent la direction extérieure.
|
||||
Améthyste sous le verre, tuff sculpté, éclairages limités. Au Sud, terracotta
|
||||
de la strate locale et verre rouge ; au Nord, diorite, calcite, glace compacte
|
||||
et verre bleu clair. Pas de toit masquant le bloc.
|
||||
|
||||
Plan immuable indexé par chunk, réservé avant végétation, compris dans les
|
||||
chunks préparés avant l’annonce SGA. Le manoir du Nord évite cette emprise.
|
||||
Le paiement du relais se réfère à la position surélevée. Aucun calcul permanent
|
||||
ou nouveau format de sauvegarde. Les autres directions conservent leur recette.
|
||||
Le village Far West est limité à son ancien profil 214.
|
||||
|
||||
Pyramide 215 : base 31 × 31 au lieu de 23 × 23, sommet quatre blocs plus haut,
|
||||
même terracotta locale et entrée prolongée. Le gabarit souterrain, les dix
|
||||
coffres et les huit pièges (24 TNT) sont conservés. La recherche contrôle toute
|
||||
la nouvelle base ; une courte fondation raccorde la coque à la roche.
|
||||
|
||||
Les huit textures de relais allumés colorent toutes les gemmes d’une seule
|
||||
teinte directionnelle, échantillonnée au cœur de chaque gemme de l’illustration.
|
||||
Logo central, transparence et état éteint conservés. Les 514 ressources du
|
||||
bloc originel (textures/modèles) sont comparées à l’artefact 214 ; sa progression
|
||||
par gemmes reste indépendante.
|
||||
|
||||
## Essais natifs
|
||||
|
||||
Mondes jetables `south215-verified` (graine 42) et `north215-verified0` (0),
|
||||
île principale Small 512, expansion de 1024. Paiement de l’ancre racine, rejet
|
||||
d’un mauvais paiement et d’un doublon, interruption après réservation puis
|
||||
reprise réussis. Aucun ancien monde utilisé.
|
||||
|
||||
| Relevé | Sud — 42 | Nord — 0 |
|
||||
| --- | --- | --- |
|
||||
| Ancre surélevée | 128, 258, 1224 | 352, 211, -1252 |
|
||||
| Chunks du monument | 4 | 4 |
|
||||
| Blocs comparés au plan | 2326 | 2390 |
|
||||
| Profondeur maximale des supports | 6 | 8 |
|
||||
| Marches d’approche | 5 | 14 |
|
||||
| Chunks préparés | 67 | 58 |
|
||||
|
||||
Tous les blocs du monument, y compris les dégagements et les marches,
|
||||
correspondent aux chunks produits. Le paiement incomplet sur la nouvelle
|
||||
position est refusé avec `required`, confirmant que le relais est reconnu
|
||||
(et non `invalid`). Reconstruction du cache identique après reprise.
|
||||
Le village 214 n’est ni actif ni planifié dans ces profils.
|
||||
|
||||
Au Sud, pyramide en (32, 249, 848), largeur 31, dix coffres, dix piles
|
||||
enchantées et 24 TNT vérifiées. Au Nord, le manoir reste planifié, séparé
|
||||
du monument (origine 364, 255, −635). Pas de nouvelle passe de relief.
|
||||
Ces essais sont fonctionnels : aucun benchmark, test Windows ou jugement
|
||||
esthétique n’est déduit de leurs temps de génération.
|
||||
|
||||
## Vérifications et livraison locale
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack :sanctuary-test:exportDuoLaunch
|
||||
-PsanctuaryFocusedTests=base204,north208,south213,relays215 -PsanctuaryAtlasOnly=true`
|
||||
réussi en 3 min 56 s : contrôles purs et **10 GameTests ciblés**, journal
|
||||
`build/relays215-final-build.log`. La suite historique complète des GameTests
|
||||
n’est pas revendiquée. Tests de placement Nord/Sud sur graines directes 0 et 42,
|
||||
accès à pied, supports bornés, palette et reconstruction déterministe ;
|
||||
contrôle des anciens profils et de l’intérieur de la pyramide.
|
||||
|
||||
La première sélection des teintes pouvait choisir le même reflet clair pour
|
||||
deux secteurs : corrigée par un échantillonnage des huit cœurs de gemmes.
|
||||
Contrôle final : huit images distinctes, 103 pixels colorés chacune,
|
||||
logo central et alpha préservés (`build/relays215-textures.log`). Les trois
|
||||
fichiers de bruit de l’île principale sont identiques à 214.
|
||||
|
||||
MRpack normal : `/Users/koka/Downloads/Sanctuary-beta.215.mrpack`.
|
||||
Intégrité ZIP, métadonnées, JAR exact, modèles et textures corrigées, trois tailles
|
||||
et profils historiques contrôlés ; aucun module Test ou monde inclus.
|
||||
SHA-256 : `8fb19d272fa56b47ac15e79c4ecdba8fcff784280bef0961c8c68c592aa3ba02`.
|
||||
Reçu : `build/relays215-mrpack-receipt.json`. Aucun tag, canal public ou Prism
|
||||
modifié. Une graine dont le terrain ne permet aucun site dans la recherche
|
||||
bornée peut encore refuser le monument ; les quatre placements du test et
|
||||
les deux expansions réelles ci-dessus passent.
|
||||
|
||||
## Visite
|
||||
|
||||
Solo neuf `Sanctuary-South-215-42`, ouvert le 5 octobre 2026 à **07:49:47 CEST**,
|
||||
confirmé par `SOUTH215_VISIT_OPEN`. Départ (150.5, 269, 1200.5), face au relais
|
||||
(128, 258, 1224). Pyramide en (32, 249, 848). Créatif en vol, commandes,
|
||||
32 chunks / simulation 5. Backend Vulkan (MoltenVK 1.4.2) confirmé dans
|
||||
`build/south215-launch.log` ; aucun essai OpenGL. Ancienne visite 214 arrêtée
|
||||
proprement et conservée. Le joueur reste juge du rendu des monuments.
|
||||
@@ -0,0 +1,95 @@
|
||||
# RELEASE-289 — zombies, lumière portée et mise à jour complète
|
||||
|
||||
Branche `codex/release-beta289`. Publication demandée le 26 octobre 2026.
|
||||
État : **publiée et installée le 26 octobre 2026** sur la Beta dédiée,
|
||||
le site et l’instance Prism existante.
|
||||
|
||||
## Contenu
|
||||
|
||||
- Six infectés : Infecté, Charger, Spitter, Boomer, Smoker et Hunter, leurs œufs
|
||||
et leurs familiers adultes miniatures à taille variable, sans infecté bébé.
|
||||
- Neuf tenues fournies par le créateur, choisies par individu et conservées au
|
||||
rechargement ; zombie classique compris. Bras natifs en avant pour tous,
|
||||
Hunter accroupi au sol et bond offensif esquivable.
|
||||
- Correction des lumières portées avec Sodium, reprise du commit `6f44214`.
|
||||
- Réintégration du conditionnement JEI et de la chaîne client/serveur déjà
|
||||
publiée en beta.280, puis des outils de publication Web/Prism du runbook
|
||||
`fb20160e`. Aucun retour aux anciens réglages de carte de cette branche :
|
||||
le dézoom et les relevés de beta.279 restent conservés.
|
||||
|
||||
Le binaire local beta.288 reste immuable. La livraison beta.289
|
||||
contient aussi JEI, comme la Beta dédiée précédente. Minecraft 26.3,
|
||||
Fabric Loader 0.19.5, Fabric API 0.160.5+26.3, JEI 30.32.0-sanctuary.4,
|
||||
Sodium 0.9.2+mc26.3 et Sound Physics 1.5.1+26.3 restent épinglés.
|
||||
|
||||
## Cibles autorisées
|
||||
|
||||
Commit/push des sources, release Gitea immuable, canal packwiz stable client
|
||||
et serveur, CT Beta 350, téléchargement Web CT 320, puis synchronisation de
|
||||
la même instance personnelle Sanctuary Beta. Arrêt propre et sauvegarde de
|
||||
la Beta avant avancement du canal. Alpha CT 300, comptes, permissions,
|
||||
configuration privée, mondes et paramètres de génération conservés.
|
||||
Le site reçoit la publication de distribution ; aucun checkout live global
|
||||
n’est remplacé. Le bouton Télécharger reste le ZIP Prism prêt.
|
||||
|
||||
## Vérification et reçu
|
||||
|
||||
`./gradlew check build assemblePack assembleServerPack
|
||||
-PsanctuaryFocusedTests=recipes,progression,lights,hunter286
|
||||
-PsanctuaryAtlasOnly=true` réussit en **3 min 21 s**, avec **31 tests serveur**
|
||||
et les contrôles de la chaîne serveur/Web. Le parcours des zombies/familiers
|
||||
est rejoué sous Vulkan avec Sodium et beta.289 : réussi en 51 s.
|
||||
|
||||
Les 2 650 classes Sanctuary de beta.288 sont identiques ; le nouveau JAR
|
||||
ajoute le JEI embarqué et ses métadonnées/notices. Un seul JEI exact, côté
|
||||
commun ; aucune classe de test, aucun JEI séparé dans le MRpack. ZIP Prism prêt,
|
||||
kit serveur et archive MRpack contrôlés ; leurs contenus restent hors Git.
|
||||
Les hashes et les journaux se trouvent dans `build/release289/`.
|
||||
Les preuves propres à beta.288 restent dans `docs/dynamic-hand-light-beta288.md`.
|
||||
Elles ne sont pas présentées comme une validation du nouveau conditionnement.
|
||||
|
||||
## Publication et installation effectives
|
||||
|
||||
- Sources et tag `beta.289` : `6821f6ee12095583663f1aafb02c92fbb105683e`,
|
||||
poussés depuis `codex/release-beta289`.
|
||||
- [Release immuable](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.289)
|
||||
et trois archives publiques relues avec leurs SHA-256 exacts, HTTP 200.
|
||||
- Canal packwiz client et serveur :
|
||||
`56e3462a39d6b911c27ec926780ba5eb509e599c`, version `beta.289`.
|
||||
- CT 350 : même service `sanctuary-beta.service`, actif, JAR beta.289 et JEI
|
||||
embarqué confirmés dans le démarrage ; RCON répond, 0/20 joueurs au contrôle.
|
||||
Les 239 fichiers protégés et l’environnement privé sont identiques entre
|
||||
l’arrêt propre et la mise à jour, avant redémarrage.
|
||||
- CT 320 : bascule atomique de la distribution vers
|
||||
`storage/app/distribution/releases/beta.289/prism`. Le code live n’a pas été
|
||||
remplacé. Footer et attribut de survol du bouton public annoncent beta.289.
|
||||
Le ZIP anonyme répond HTTP 200, nom `Sanctuary-Beta.zip`, et le lien MRpack
|
||||
historique répond aussi avec le hash attendu.
|
||||
- Même communauté des deux côtés, métriques fraîches et serveur en marche.
|
||||
L’API d’admission répond 422 à un code volontairement invalide, sans appel
|
||||
de consommation d’un code.
|
||||
- Même instance personnelle **Sanctuary Beta**, dossier historique
|
||||
`Sanctuary-0.1.0-alpha.1` : passage de beta.144 à beta.289, un seul JAR
|
||||
Sanctuary, deux synchronisations identiques. Les 999 fichiers personnels
|
||||
contrôlés et les composants Minecraft/Fabric sont conservés. Aucun monde
|
||||
personnel n’a été ouvert ; l’installation isolée a aussi passé deux cycles.
|
||||
|
||||
Sauvegarde serveur complète avant avancement du canal :
|
||||
`/root/sanctuary-beta-backups/before-beta289-20261026T002155Z`,
|
||||
archive de 167 964 197 octets, SHA-256
|
||||
`724533e56bf4ab5319bbd519d123c6731fc882f684cfc0998d876c34ed09805d`.
|
||||
Sauvegarde locale complète de l’instance avant synchronisation :
|
||||
`sanctuary-backups/before-beta289-20261026T011713/instance.tar.gz`,
|
||||
230 400 000 octets. La publication Web beta.280 reste disponible pour reprise.
|
||||
|
||||
Le ping Minecraft via `beta.sanctuary-minecraft.net` et son SRV 25567 répond
|
||||
en 26.3, 0/20, depuis le Mac sur le LAN. **L’accès depuis un réseau extérieur
|
||||
n’a pas été testé.** Les vérifications graphiques de cette livraison ciblent
|
||||
Vulkan uniquement. Reçus détaillés ignorés sous `build/release289/`.
|
||||
|
||||
## Artefacts vérifiés
|
||||
|
||||
- `Sanctuary-beta.289.mrpack` : 16,715,428 octets ; SHA-256 `7a8935225a97119ba278f8a7ccd51aae7efef588244be782661545c67270b8fc`.
|
||||
- `Sanctuary-Prism-beta.289.zip` : 92,417 octets ; SHA-256 `30dd37f3a6e1d79f8b443f6312918258276c85d5b6a5e7fbdc9c3fea7562dbf2`.
|
||||
- `Sanctuary-Server-beta.289.zip` : 4,036,416 octets ; SHA-256 `5b86b16e9d0fd944363016b79df397391eda88f24dc80b9cf0e2bd2f71fe75d9`.
|
||||
- JAR Sanctuary SHA-256 : `feec13d0b0e708473179ac3234060fb58858d94d19bc9ddf9b7137512875dc41`.
|
||||
@@ -0,0 +1,136 @@
|
||||
# beta.293 — livraison intégrée
|
||||
|
||||
Livraison demandée le **26 octobre 2026** pour essayer le parcours complet :
|
||||
site → ZIP Prism → packwiz avec logo → jeu et serveur Beta.
|
||||
Branche `codex/release-beta293`.
|
||||
|
||||
## Contenu et provenance
|
||||
|
||||
La base conserve les baleines de `a93e2611`, l'habillage packwiz et les quatre
|
||||
mods facultatifs de `97c601cd`. Les Happy Creepers sont repris du commit
|
||||
`0ffd371a` de `codex/happy-creepers`, sans réimplémentation : les règles et la
|
||||
texture restent celles de cette branche dédiée. Les conflits d'intégration
|
||||
portaient sur les versions, les listes de tests et les documents communs.
|
||||
La livraison utilise le prochain compteur libre **beta.293** ; les préparations
|
||||
locales beta.291 et beta.292 ne sont pas publiées séparément.
|
||||
|
||||
[Notes de version](notes-beta293.md), [Happy Creepers](happy-creepers.md),
|
||||
[logo packwiz](packwiz-logo-beta291.md), [mods facultatifs](optional-mods-beta292.md).
|
||||
|
||||
Le test du quota interdimensionnel des baleines attend désormais la fin du
|
||||
chargement des entités du chunk Nether via `waitForEntities`. Ses deux fixtures
|
||||
restent immobiles : l'une au centre du chunk forcé, l'autre en hauteur pour que
|
||||
sa boîte de 36 blocs ne croise pas le nettoyage des tests voisins. Le test
|
||||
d'origine pouvait perdre une fixture avant de vérifier le quota. Le code de
|
||||
jeu reste identique ; **79 tests serveur** passent sur la base réunie, avec
|
||||
Lithium et la voix chargés. Le déplacement de la baleine naturelle reste testé
|
||||
avec son IA active.
|
||||
|
||||
## Cibles de livraison
|
||||
|
||||
- Artefacts immuables et canal client/serveur Gitea ;
|
||||
- CT **350** et service `sanctuary-beta.service`, après arrêt et sauvegarde ;
|
||||
- téléchargement direct de Sanctuary Web, CT **320**, sans modification du code live ;
|
||||
- même instance Prism **Sanctuary Beta**, avec sauvegarde, installateur habillé
|
||||
vérifié et conservation des données personnelles.
|
||||
|
||||
La règle NAT Beta existante `25567 → 192.168.1.122:25565` couvre TCP et UDP.
|
||||
La voix utilise **UDP 25565 dans la CT**, annoncé comme
|
||||
`beta.sanctuary-minecraft.net:25567`. Aucun changement de Bbox, UPnP, Alpha,
|
||||
RCON ou règles des autres serveurs n'est nécessaire.
|
||||
|
||||
## Validation de la livraison
|
||||
|
||||
`check build assemblePack assembleServerPack` : **réussi en 2 min 46 s**,
|
||||
avec les contrôles purs et **79 tests serveur requis**. Profil natif :
|
||||
`whale290,happycreeper,cosmetics,headblocks,recipes,progression,smoker285,hunter286`,
|
||||
`sanctuaryAtlasOnly=true`, `sanctuaryOptional292ServerTests=true`.
|
||||
Journal : `build/release293/check-build-final.log`.
|
||||
|
||||
Parcours Happy Creepers **Vulkan avec Sodium et les quatre mods chargés** :
|
||||
toutes les assertions en jeu réussissent sur deux essais, capture des quatre
|
||||
états inspectée (`build/release293/happy-four-states-vulkan.png`). Équipement et
|
||||
retrait au clavier/souris, fleur exacte synchronisée, visage restauré, IA
|
||||
passive près du joueur et charge indépendante vérifiés. La fermeture du monde
|
||||
reste bloquée dans la synchronisation `Phaser` de Fabric Client GameTest ; ce
|
||||
contrôle graphique n'est donc pas un succès de tâche Gradle. Le premier dump
|
||||
montre le thread de test dans `TestSingleplayerContextImpl.close`, le serveur
|
||||
dans `ThreadingImpl.enterPhase` et le rendu dans `IntegratedServer.halt`.
|
||||
Ce blocage de l'infrastructure de test est consigné séparément des assertions
|
||||
réussies et du build complet réussi. Les parcours des quatre mods avec et sans
|
||||
Sodium ont leur reçu dans [beta.292](optional-mods-beta292.md).
|
||||
|
||||
Les archives ont été contrôlées avant publication : sept dépendances externes
|
||||
et un seul JAR Sanctuary dans le MRpack ; huit mods du client et quatre du
|
||||
serveur ; JEI embarqué, aucun test ni dépendance facultative imposée dans le
|
||||
JAR Sanctuary. Texture happy identique à la branche dédiée, classes creeper
|
||||
et baleine présentes. ZIP Prism sans mods ni sauvegardes personnelles.
|
||||
|
||||
| Artefact | Octets | SHA-256 |
|
||||
| --- | ---: | --- |
|
||||
| `sanctuary-beta.293.jar` | 18171689 | `4a0a3941f651ba3566ec41940c2f4c820d917121312e3aead23b39f99633ebe3` |
|
||||
| `Sanctuary-beta.293.mrpack` | 16761300 | `80e1d9a54165f279738a6486c8c3cd7e5e90ad7ad4ca81d32a4d4a04b15f0e90` |
|
||||
| `Sanctuary-Prism-beta.293.zip` | 3928525 | `95c57f5e70627a2847d1cc2033c8d9f50f44ef4a302ca892bc727e0c37ece0a9` |
|
||||
| `Sanctuary-Server-beta.293.zip` | 4036536 | `5f3135f7f5b5448023f9873c5242e3c2ab9444c197e1b551d356c8b1120bf01d` |
|
||||
|
||||
## État opérationnel
|
||||
|
||||
**Livraison complète effectuée le 26 octobre 2026.**
|
||||
|
||||
| Cible | État vérifié |
|
||||
| --- | --- |
|
||||
| Source et tag `beta.293` | `678d77fb91ef5e3ffee96cac5c88ebafa0a77976` |
|
||||
| Canal client/serveur | `687d07e57ec008e1865a0081f317c4f3e3159e14` |
|
||||
| Release Gitea | [beta.293](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.293), quatre artefacts publics vérifiés |
|
||||
| CT 350 | Service actif, Sanctuary beta.293, Fabric API, Lithium et Voice Chat chargés ; démarrage sans erreur |
|
||||
| CT 320 | Publication atomique `releases/beta.293/prism`, ancienne beta.289 conservée |
|
||||
| Prism personnel | Même instance **Sanctuary Beta**, huit mods et un seul JAR Sanctuary beta.293 ; deux synchronisations identiques |
|
||||
|
||||
Le serveur était vide (0/20) avant arrêt. Sauvegarde complète privée :
|
||||
`/root/sanctuary-beta-backups/before-beta293-20261026T032339Z/instance.tar.gz`,
|
||||
SHA-256 `b9bd9fa7b10d7e54b3595d52061529a3da8a5c9193f1854966a60fda975e9f11`.
|
||||
Les **240 fichiers protégés sont identiques après synchronisation, avant
|
||||
redémarrage**, de même que l'environnement privé. Après redémarrage, Minecraft
|
||||
réécrit le commentaire horodaté de `server.properties` ; toutes les clés et
|
||||
valeurs restent identiques. Seul le nouveau fichier vocal a été configuré :
|
||||
`port=25565`, `bind_address=` vide,
|
||||
`voice_host=beta.sanctuary-minecraft.net:25567`, `force_voice_chat=false`.
|
||||
Aucun changement de monde, de génération ou de format n'est effectué par
|
||||
l'outil de mise à jour ; le serveur reprend son monde existant.
|
||||
|
||||
La voix écoute en UDP 25565. Un ping applicatif vocal valide répond via le
|
||||
nom public et le port 25567 depuis le Mac (68 ms). Le statut Minecraft via
|
||||
DNS/SRV répond également : 26.3, 0/20. Ces contrôles partent du LAN via
|
||||
l'adresse publique : **l'accès depuis un autre réseau et l'audio audible à
|
||||
deux joueurs restent à essayer**. L'authentification vocale dans les mondes de
|
||||
test est réussie ; elle ne remplace pas cet essai vocal distant.
|
||||
L'API d'admission authentifiée refuse le code volontairement invalide
|
||||
(`HTTP 200`, `valid=false`, `reason=invalid`), sans appel à `redeem`.
|
||||
Les métriques Web sont fraîches, en marche, avec le même UUID communautaire
|
||||
`cc6f4f5a-e58d-409a-879f-81daecf59461` et la même base de jeu.
|
||||
|
||||
Le [ZIP direct du site](https://sanctuary-minecraft.net/downloads/sanctuary-prism.zip)
|
||||
répond HTTP 200 sous le nom **Sanctuary-Beta.zip**, avec le hash du tableau.
|
||||
Le lien MRpack historique répond aussi HTTP 200 avec son hash exact.
|
||||
Le bouton, son survol et le footer affichent beta.293. Le code Web live est
|
||||
resté sur `eadc30e8c7b6dda50bc810584af057235e7fdba8` ; les **73 entrées Git
|
||||
préexistantes sont identiques**, sans pull, reset ni reconstruction de cache.
|
||||
Une importation isolée du ZIP a récupéré les huit mods depuis le vrai canal
|
||||
HTTPS, puis une deuxième synchronisation a conservé exactement leurs hashes.
|
||||
|
||||
Sauvegarde Prism complète sous le dossier historique de l'instance :
|
||||
`sanctuary-backups/before-beta293-20261026T030401Z/instance.tar.gz`, SHA-256
|
||||
`9bfc9b963551885d3e124c865aabe0dc9750ecb6cfed89b7d936a3e14abe51bb`.
|
||||
Les **999 fichiers personnels contrôlés sont inchangés**, et aucun monde
|
||||
personnel n'a été ouvert. Seules les deux commandes `PreLaunchCommand` de
|
||||
`instance.cfg` et le JAR de l'installateur ont reçu l'habillage ; les autres
|
||||
lignes de configuration sont identiques. L'outil reste épinglé par
|
||||
`--bootstrap-no-update`, et le pack continue de suivre le canal stable.
|
||||
Sodium et Sound Physics ont gardé leurs sélections ; les quatre nouveaux
|
||||
choix sont activés par défaut et restent facultatifs côté client.
|
||||
Installateur SHA-256 :
|
||||
`9e2912fdd05e5c23721acd58cd5c61bbf13061e453627e8f4df9a4c53f7aa875`.
|
||||
|
||||
Les journaux et reçus détaillés sont sous `build/release293/`, hors de Git.
|
||||
Le worktree original `codex/happy-creepers` est resté propre au commit
|
||||
`0ffd371adac0c4f950237448625673b83a94bee5`.
|
||||
@@ -0,0 +1,103 @@
|
||||
# Sanctuary — serveur Linux avec packwiz
|
||||
|
||||
Prérequis : Java 25, Python 3.11 ou plus récent, Linux et accès HTTPS sortant.
|
||||
Plateforme épinglée : Minecraft **26.3**, Fabric Loader **0.19.5**, Fabric API
|
||||
**0.160.5+26.3**. Le même JAR Sanctuary contient le fork JEI
|
||||
**30.32.0-sanctuary.4**, son réseau commun et son interface client.
|
||||
|
||||
## Préparer le kit
|
||||
|
||||
Dans les sources : `./gradlew check build assemblePack assembleServerPack`.
|
||||
Le kit de la livraison courante est `build/Sanctuary-Server-beta.293.zip` ; les manifestes locaux sont
|
||||
dans `build/packwiz-server/`. Le ZIP est un amorçage : il télécharge les mods
|
||||
depuis le canal au premier démarrage, il n'est pas une copie hors ligne du pack.
|
||||
Il n'est utilisable sur le canal public qu'après publication de cette version.
|
||||
|
||||
Décompresser le kit **une seule fois**, dans un dossier serveur neuf. Pour
|
||||
reprendre une installation existante, arrêter le service, sauvegarder le dossier
|
||||
entier, vérifier Minecraft/Loader et poser uniquement les fichiers du kit en
|
||||
conservant le monde et la configuration. Ne pas écraser un fichier déjà présent
|
||||
sans comparaison. Un ancien JEI externe géré par packwiz est retiré par le nouvel
|
||||
index ; un JAR ajouté manuellement doit être retiré après sauvegarde pour éviter
|
||||
de charger une autre version du fork. Conserver `config/jei/`.
|
||||
|
||||
Canal prévu, publié avec le client dans le même commit de distribution :
|
||||
|
||||
```text
|
||||
https://git.botsu.net/koka/sanctuary-beta/raw/branch/packwiz/server/pack.toml
|
||||
```
|
||||
|
||||
`./server.sh update` synchronise les mods sans démarrer Minecraft.
|
||||
`./server.sh start` synchronise puis lance Fabric en console. En cas d'échec,
|
||||
le serveur ne démarre pas. Accepter l'EULA Minecraft et régler le serveur
|
||||
explicitement avant ouverture aux joueurs ; le kit ne les remplit pas.
|
||||
Le lanceur Fabric télécharge les fichiers Mojang/Loader nécessaires au lancement.
|
||||
|
||||
Les outils de démarrage sont épinglés par hash dans `.tools/platform.json`.
|
||||
Un changement de Minecraft ou Loader est refusé avant mise à jour et exige un
|
||||
nouveau kit et un contrat de migration. Le verrou empêche une mise à jour en
|
||||
parallèle d'un serveur lancé par ce kit. Arrêter aussi tout service historique
|
||||
qui utiliserait un autre lanceur.
|
||||
|
||||
Variables facultatives : `SANCTUARY_JAVA` (chemin du binaire Java),
|
||||
`SANCTUARY_MEMORY` (`4G` par défaut), `SANCTUARY_PACK_URL` (autre canal ou
|
||||
serveur HTTP de laboratoire). Les variables sont héritées de l'environnement ;
|
||||
le script ne charge pas automatiquement un `.env`.
|
||||
|
||||
Un exemple systemd est fourni sous `examples/sanctuary-beta.service`.
|
||||
Installer le kit dans `/srv/minecraft/sanctuary-beta`, créer l'utilisateur
|
||||
`minecraft`, donner ce dossier à cet utilisateur et placer l'environnement
|
||||
privé dans `/etc/sanctuary/beta.env` (root, mode 600). Copier ensuite l'unité
|
||||
dans `/etc/systemd/system/`, recharger systemd et activer le service. Le mode
|
||||
`KillMode=mixed` transmet l'arrêt au lanceur, qui attend la sauvegarde Java
|
||||
avant de rendre le verrou de mise à jour.
|
||||
|
||||
## Relier Sanctuary Web
|
||||
|
||||
L'API d'accueil et la communauté sont deux services existants distincts.
|
||||
Le pack ne contient ni secret ni configuration de production.
|
||||
|
||||
Pour l'accès/candidature, fournir dans l'environnement du service Minecraft :
|
||||
|
||||
```text
|
||||
SANCTUARY_APP_URL=https://sanctuary-minecraft.net
|
||||
SANCTUARY_API_TOKEN=<jeton API du site>
|
||||
```
|
||||
|
||||
Le site doit fournir les POST authentifiés `/api/v1/access-codes/verify` et
|
||||
`/redeem`, avec les reçus d'admission de beta.166. Aucun appel d'essai ne doit
|
||||
consommer un vrai code de joueur. Sans ces deux paramètres, le mod autonome
|
||||
laisse l'accueil sans code ; une configuration partielle ferme l'accueil.
|
||||
|
||||
Pour Gazette/Tableau et les statistiques, reprendre le **serverId existant**
|
||||
dans `config/sanctuary-community.json`, configurer `mode: database`, le JDBC
|
||||
MariaDB, l'utilisateur et `passwordEnv: SANCTUARY_COMMUNITY_DB_PASSWORD`.
|
||||
Le mot de passe est uniquement dans l'environnement. Utiliser le même UUID dans
|
||||
`SANCTUARY_COMMUNITY_SERVER_ID` côté Laravel. L'exemple sous `examples/` doit être
|
||||
complété, puis copié volontairement ; il ne remplace aucune configuration.
|
||||
Garder `online-mode=true` pour l'identité et la liaison des comptes.
|
||||
|
||||
Les migrations SQL sont celles du site et doivent être vérifiées sur la base
|
||||
cible avant activation. Basculer du mode fichier vers MariaDB n'importe pas les
|
||||
anciennes publications : cela demande un contrat de migration séparé.
|
||||
Le kit n'effectue aucune migration SQL ni modification de sauvegarde.
|
||||
|
||||
## Mises à jour et retour arrière
|
||||
|
||||
Arrêter le service, sauvegarder, lancer `./server.sh update`, vérifier les logs,
|
||||
puis redémarrer le même dossier serveur. `packwiz.json` doit rester présent.
|
||||
Depuis la préparation beta.292, le pack serveur possède Fabric API, Sanctuary,
|
||||
Lithium et Simple Voice Chat. Bobby et Entity Culling restent uniquement
|
||||
clients. [Versions, validation et port UDP vocal](optional-mods-beta292.md).
|
||||
Il ne gère ni monde,
|
||||
`server.properties`, `eula.txt`, `config/`, listes de joueurs, permissions,
|
||||
captures ou secrets. Les réglages des opérateurs restent en place.
|
||||
|
||||
Sauvegarder aussi l'identifiant d'admission et ses reçus avec le monde, ainsi
|
||||
que les configurations et l'UUID communautaire. Un retour arrière reprend le
|
||||
dernier artefact immuable et la sauvegarde correspondant à son contrat de
|
||||
données ; ne pas supprimer de journaux pour forcer le chargement.
|
||||
|
||||
Référence : [installation packwiz sur serveur](https://packwiz.infra.link/tutorials/installing/packwiz-installer/#using-a-modpack-with-a-server).
|
||||
Dans le dépôt, consulter aussi `docs/inscription-web-beta166.md` et
|
||||
`docs/community-contract-v1.md` pour les contrats et droits SQL complets.
|
||||
@@ -0,0 +1,223 @@
|
||||
# SHADER-254 — Budget Vulkan et profils de shader
|
||||
|
||||
Socle beta.253 (`833f14d`), livraison locale beta.254, Minecraft 26.3,
|
||||
Java 25, branche `codex/vulkan-shader-optimization`. Demande du 8 octobre
|
||||
2026 : réduire le coût des ombres, sun shafts, minerais émissifs, SSGI et
|
||||
SSR. Le créateur demande explicitement le SSR dans le profil Moyen.
|
||||
Les pertes de 150–300 FPS signalées motivent la passe ; elles ne constituent
|
||||
pas une mesure instrumentée du résultat.
|
||||
|
||||
## Résultat
|
||||
|
||||
**Options → Shaders → Profil** propose Patate, Faible, Moyen, Élevé, Ultra
|
||||
et Personnalisé, en FR/EN. Le shader est nommé **Ambiance** dans le menu
|
||||
et ses infobulles, en français comme en anglais. Sélectionner un profil applique
|
||||
ses effets, intensités, distances et budgets. Modifier un réglage visuel passe en
|
||||
Personnalisé en conservant le budget du dernier profil. L'interrupteur général,
|
||||
l'eau naturelle et les torches chaudes gardent leurs préférences séparées.
|
||||
|
||||
Une installation neuve prépare Moyen, avec SSR, PBR et SSGI, mais conserve
|
||||
l'activation volontaire du shader. Les préférences déjà enregistrées restent
|
||||
Personnalisé avec le budget de référence ; aucune sélection automatique d'un
|
||||
profil ne remplace les choix explicites de l'utilisateur. Ce budget de référence
|
||||
conserve les anciens plafonds d'ombres/GI/SSR et borne désormais l'émission
|
||||
à 256 blocs. Les migrations
|
||||
PBR/eau antérieures restent appliquées selon leur contrat existant.
|
||||
|
||||
| Profil | Ombres : portée / carte maximale / profondeur par pixel | Sun shafts : segments × échantillons | SSGI : résolution / rayons × étapes | PBR et SSR : portée / recherche SSR maximale | Émission : portée |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| Patate | OFF | OFF | OFF | OFF | OFF |
|
||||
| Faible | 32 blocs / 1024² / 4 lectures | OFF | OFF | OFF | 32 blocs |
|
||||
| Moyen | 64 blocs / 2048² / 4 lectures | 8 × 1 | ¼ de chaque dimension / 6 × 6 | 32 blocs / 12 étapes | 32 blocs |
|
||||
| Élevé | 128 blocs / 2048² / 16 lectures | 12 × 4 | ½ de chaque dimension / 8 × 8 | 64 blocs / 16 étapes | 64 blocs |
|
||||
| Ultra | 256 blocs / 4096² / 16 lectures | 24 × 4 | ½ de chaque dimension / 12 × 10 | 128 blocs / 32 étapes | 128 blocs |
|
||||
|
||||
Moyen conserve les ombres, les reflets du paysage et du soleil sur l'eau,
|
||||
le relief PBR, une lumière indirecte à 25 %, des sun shafts à 25 %, un bloom
|
||||
à 20 %, les minerais à 50 %, les lumières colorées et les contours subtils.
|
||||
Les distances s'atténuent avant leur coupure. Faible conserve les ombres,
|
||||
l'émission/bloom et les lumières colorées ; Patate conserve la colorimétrie
|
||||
avec les effets lourds désactivés.
|
||||
|
||||
## Changements de rendu
|
||||
|
||||
- La carte de profondeur commune aux ombres et au volume solaire est
|
||||
conservée tant que les casteurs, l'ancre de caméra de 16 blocs, la portée,
|
||||
la lune/le soleil et la direction lumineuse restent valides. Un déplacement
|
||||
du soleil supérieur à un quart de texel sur les bornes conservatrices impose
|
||||
un redessin. La projection stockée reste celle de la carte effectivement
|
||||
dessinée ; les uniformes de caméra sont actualisés à chaque image.
|
||||
- Le plafond de résolution, le filtre des ombres, les segments du volume,
|
||||
la résolution/rayons/étapes du SSGI et la recherche SSR suivent le budget
|
||||
sélectionné. Le SSR garde ses raffinements d'intersection et sa validation
|
||||
de profondeur. Les effets n'utilisent aucune accumulation temporelle.
|
||||
- Le maillage des émetteurs rejette les sections hors portée avant analyse,
|
||||
avec une garde couvrant les coins. Les fragments s'atténuent dans les
|
||||
derniers 20 % de la portée. Cela limite aussi les halos des sources natives ;
|
||||
la lumière de jeu et les niveaux d'éclairage du serveur restent inchangés.
|
||||
|
||||
La transmission des feuilles reste procédurale. Elle ne correspond pas
|
||||
exactement à l'alpha des textures ; ce ticket ne livre pas d'ombres de feuilles
|
||||
fidèles au pixel. Le SSGI réduit et le SSR borné peuvent perdre de petits
|
||||
détails, particulièrement hors écran ou sur de fines silhouettes.
|
||||
|
||||
## Validation et mesures
|
||||
|
||||
La compilation et `check build assemblePack` finaux passent sur macOS avec Java 25
|
||||
(137 tâches, 2 min 46) :
|
||||
|
||||
```sh
|
||||
./gradlew check build assemblePack \
|
||||
-PsanctuaryFocusedTests=menus -PsanctuaryAtlasOnly=true
|
||||
```
|
||||
|
||||
Les quatre GameTests serveur ciblés, contrôles purs et manifestes du pack
|
||||
passent. Le premier lancement sans `sanctuaryAtlasOnly=true` utilise une
|
||||
configuration de test incompatible avec le générateur attendu et échoue par
|
||||
`ClassCastException` ; aucune modification worldgen n'est introduite pour ce
|
||||
chantier graphique.
|
||||
|
||||
Les essais natifs utilisent exclusivement Vulkan sur Windows 10 Pro,
|
||||
Ryzen 7 3700X, RX 9070 XT, pilote Vulkan `1.4.315 AMD proprietary driver
|
||||
25.10.30 (LLPC)`, Java 25.0.1. La référence et le candidat sont exécutés
|
||||
successivement dans des dossiers de développement distincts, via la session
|
||||
interactive Windows. Aucun monde ou réglage de l'instance Prism personnelle
|
||||
n'est utilisé.
|
||||
|
||||
La scène de mesure est un monde plat neuf, graine 122, zone 49 × 49 avec sol
|
||||
blanc, minerais d'or, feuilles persistantes et eau, caméra fixe, six chunks,
|
||||
1920 × 1080, VSync et plafond FPS désactivés. Chaque effet est chauffé avant
|
||||
une collecte de 100 ticks ; deux balayages inversent l'ordre des effets.
|
||||
Une variante avance le soleil et remet l'heure à 3000 avant chaque collecte.
|
||||
|
||||
Le chronomètre entoure `GameRenderer.renderFrame` : il mesure le temps CPU
|
||||
de rendu/soumission et les attentes rencontrées, **pas une durée GPU isolée ni
|
||||
la durée totale de la boucle de jeu**. Les médianes ne se convertissent pas
|
||||
fiablement en FPS réels et les deltas des effets ne s'additionnent pas.
|
||||
Les mesures statiques avant l'ajout du SSR Moyen sont conservées comme
|
||||
historique ; la validation finale de ce profil utilise le SSR activé.
|
||||
|
||||
Les profils définitifs passent sur le PC : activation volontaire, anciennes
|
||||
préférences conservées, persistance des cinq budgets et du mode Personnalisé,
|
||||
allocation/libération des effets, plafond des cartes, cache réutilisé à caméra
|
||||
fixe puis invalidé après édition, déplacement de 16 blocs et changement de
|
||||
l'heure. Le SSR Moyen produit un reflet dépendant de la couleur du paysage :
|
||||
signal rouge 2,365 contre 0,173 avec la source bleue, avec une intensité de
|
||||
20 %. Les contrôles d'ombres/contours et les suites bloom/minerais/lens flare
|
||||
passent : masques pour 20 textures de minerais, émission et halo indépendants,
|
||||
occlusion par murs, sources natives, éditions, libération des ressources,
|
||||
rechargement et redimensionnement. Le SSGI passe les rebonds rouge/bleu,
|
||||
l'occlusion, la stabilité, un balayage
|
||||
latéral de 12 blocs et les gros plans à sept distances et intensités 35/100.
|
||||
Le PBR passe les normales, textures mises en cache, matériaux mats, relief,
|
||||
petits mouvements, occlusion par toit, rechargement/redimensionnement et quatre transferts de
|
||||
dimension. Le volume solaire passe les salles fermées, ouvertures, feuilles,
|
||||
soleil hors
|
||||
écran, retour de caméra, proximité des murs, rechargement/redimensionnement et libération de la
|
||||
carte partagée. La météo passe les transitions ciel clair/brume/pluie/orage,
|
||||
brouillard natif et restauration du réglage manuel. La suite SSR passe l'eau,
|
||||
le verre transparent, les surfaces solides,
|
||||
les couleurs des sources, les occlusions, les intersections, les déplacements,
|
||||
OFF/zéro et rechargement/redimensionnement. Les contrôles graphiques des effets touchés sont
|
||||
validés. Les temps de rendu et les captures finales sont également collectés.
|
||||
|
||||
Les captures initiales ont aussi révélé des libellés répétés dans les choix
|
||||
Profil, mélange de l'eau et distances PBR/SSR. Le format des valeurs est
|
||||
corrigé ; les aides précisent maintenant les distances du profil Moyen.
|
||||
|
||||
| Configuration statique | beta.253 (ms) | beta.254 (ms) |
|
||||
| --- | ---: | ---: |
|
||||
| Effets OFF | 0.395 | 0.409 |
|
||||
| Ombres 128 blocs | 0.794 | 0.435 |
|
||||
| Sun shafts 128 blocs | 0.816 | 0.404 |
|
||||
| Bloom | 0.460 | 0.465 |
|
||||
| Minerais | 0.454 | 0.398 |
|
||||
| Bloom + minerais | 0.471 | 0.477 |
|
||||
| SSGI, budget de référence | 0.806 | 0.795 |
|
||||
| PBR + SSR, budget de référence | 0.682 | 0.672 |
|
||||
| Tous les effets, réglages de référence | 2.192 | 1.918 |
|
||||
|
||||
Moyenne des médianes des deux balayages (OFF : quatre collectes). Les
|
||||
ombres 128 baissent de 45 %, le volume 128 de 51 % et l'ensemble de 12,5 %.
|
||||
Le SSGI et le SSR au budget de référence évoluent peu ; le gain des profils
|
||||
vient aussi des résolutions, rayons, étapes et portées plus faibles. Les
|
||||
écarts de quelques centièmes de milliseconde sur les effets légers restent
|
||||
dans la variabilité visible des collectes OFF (0,371–0,441 ms côté candidat).
|
||||
|
||||
| Profil beta.254 | Médiane statique (ms) | P95 (ms) |
|
||||
| --- | ---: | ---: |
|
||||
| Patate | 0.373 | 0.507 |
|
||||
| Faible | 0.536 | 0.658 |
|
||||
| Moyen, SSR ON | 1.562 | 1.715 |
|
||||
| Élevé | 1.793 | 1.947 |
|
||||
| Ultra | 1.989 | 2.194 |
|
||||
|
||||
Chaque profil a une collecte de 100 ticks après chauffe. Moyen réduit
|
||||
le temps mesuré de 28,7 % par rapport à l'ancien ensemble, avec des choix
|
||||
visuels différents : portée d'ombres 64 au lieu de 128, PBR/SSR 32 au lieu
|
||||
de 64 et budgets GI/volume réduits. Le SSR reste activé. Ces pourcentages
|
||||
ne sont pas des gains de FPS mesurés dans un monde Sanctuary réel.
|
||||
|
||||
| Soleil mobile, même scène | beta.253 (ms) | beta.254 (ms) |
|
||||
| --- | ---: | ---: |
|
||||
| Effets OFF | 0.388 | 0.335 |
|
||||
| Ombres 128 blocs | 0.804 | 0.374 |
|
||||
| Sun shafts 128 blocs | 0.801 | 0.335 |
|
||||
| Tous les effets, réglages de référence | 2.435 | 1.885 |
|
||||
|
||||
Moyen avec SSR mesure 1.520 ms (P95 1.756 ms),
|
||||
soit 37.6 % de moins que l'ancien ensemble sur cette variante.
|
||||
Le mouvement continu du soleil invalide périodiquement le cache ; son gain
|
||||
ne dépend donc pas uniquement d'une heure figée. Les transitions fréquentes
|
||||
entre ancres/chunks, les grands mondes, les autres pilotes et un parcours
|
||||
de jeu normal n'ont pas encore de comparaison avant/après dans ce ticket.
|
||||
|
||||
Les données brutes, médianes par balayage et P95 sont conservées dans
|
||||
`build/shader254/{baseline,candidate-final,baseline-moving,candidate-moving}-performance.json`
|
||||
et `build/shader254/comparison.json`.
|
||||
|
||||
Les captures finales FR/EN sont relues : « Profil : Moyen » / « Profile: Medium »,
|
||||
avec les valeurs de mélange d'eau et de distances sans libellé répété.
|
||||
Le dernier test de profils passe avec le menu corrigé : « Profil : Moyen »
|
||||
et « Ambiance : Oui » en FR, « Profile: Medium » et « Ambiance: ON » en EN. Reçu :
|
||||
`build/shader254/validation.json`.
|
||||
|
||||
## Reproduction
|
||||
|
||||
Le socle commun des tests natifs est :
|
||||
|
||||
```sh
|
||||
./gradlew :sanctuary:runClientGameTest \
|
||||
-PsanctuaryClientTests=true -PsanctuaryPixelShadows122ClientTests=true \
|
||||
-PsanctuaryClientGraphicsBackend=vulkan -PsanctuaryClientNoVsync=true \
|
||||
-PsanctuaryQuickTests=true
|
||||
```
|
||||
|
||||
Ajouter `-PsanctuaryShaderProfiles254ClientTests=true` pour les profils,
|
||||
persistance, migration et cache, `-PsanctuaryShaderPerformance254=true` pour
|
||||
les temps de rendu, et `-PsanctuaryShaderMovingSun254=true` pour la variante
|
||||
avec soleil mobile. Les suites du volume/météo et du SSR utilisent
|
||||
respectivement `-PsanctuarySunshaft137ClientTests=true` et
|
||||
`-PsanctuarySsrClientTests=true`. Les suites ciblées du bloom, du SSGI et du PBR
|
||||
utilisent `-PsanctuaryBloom130ClientTests=true`,
|
||||
`-PsanctuarySsgi132ClientTests=true` et `-PsanctuaryPbr134ClientTests=true`.
|
||||
|
||||
La suite historique a été arrêtée d'abord sur les anciens défauts 128/32
|
||||
blocs, puis parce que le test bloom effaçait les préférences sans réactiver
|
||||
le shader. Ses attentes sont alignées sur Moyen et sa préparation active
|
||||
explicitement le shader. Les vérifications restantes sont lancées par effet,
|
||||
sans désactiver leurs assertions d'image.
|
||||
|
||||
Artefacts et logs locaux ignorés : `build/shader254/`,
|
||||
`build/shader254-check-build-pack-ambiance.log`,
|
||||
`mods/sanctuary/build/libs/sanctuary-beta.254.jar`,
|
||||
`build/Sanctuary-beta.254.mrpack`. Les sources et le manifeste portent
|
||||
beta.254. Publication, canal stable et installation personnelle ne sont pas
|
||||
modifiés dans ce ticket.
|
||||
|
||||
Le MRpack final contient un seul JAR Sanctuary, la bonne version Fabric,
|
||||
Minecraft 26.3 et Fabric Loader 0.19.5. Intégrité ZIP et identité du JAR
|
||||
embarqué vérifiées : **16 481 181 octets**, SHA-256
|
||||
`1b070a3a5dd86f006167fc37276504aea3de9de47c6b4b76962ddd4677df3327`.
|
||||
Copie identique conservée dans `%LOCALAPPDATA%\SanctuaryDev` sur Windows.
|
||||
Les tâches Windows temporaires de validation sont supprimées après collecte.
|
||||
@@ -0,0 +1,92 @@
|
||||
# ZOMBIES-285 — Smoker, lasso et traction en tyrolienne
|
||||
|
||||
Branche `codex/smoker`, sur le socle local beta.284 conservé. État : implémenté et vérifié localement en beta.285.
|
||||
|
||||
## Contrat demandé
|
||||
|
||||
Le Smoker doit toucher réellement sa cible avec un lasso avant de la ramener
|
||||
vers lui par un trajet de tyrolienne. Le projectile garde sa direction de tir :
|
||||
une esquive pendant le vol, un obstacle ou un tir trop court peut le faire rater.
|
||||
|
||||
- Modèle adulte du zombie vanilla 26.3, t-shirt gris clair et pantalon vert
|
||||
olive recolorés par script, tête/peau/chaussures/UV/alpha conservés.
|
||||
Identifiants `sanctuary:smoker` et `sanctuary:smoker_spawn_egg`. Aucun bébé,
|
||||
y compris via œuf, données chargées ou proxy du familier ; pas de noyé.
|
||||
- Sauvage : 10 PV, vitesse 0,23, mêlée 3, poursuite 36 blocs. Tir à 4–14 blocs
|
||||
avec ligne de vue, préparation de 18 ticks, lasso à 1,05 bloc/tick, recharge
|
||||
de 160 ticks engagée au lancer, même si le lasso rate.
|
||||
- Un câble visible relie le Smoker au lasso en vol, puis à la cible touchée.
|
||||
Un seul câble par source et une seule traction par victime. La source reste
|
||||
immobile. Traction à **0,58 bloc/tick**, même vitesse que les tyroliennes,
|
||||
jusqu'à environ 1,8 bloc de la source, sans pendule et sans dégâts périodiques.
|
||||
- Le volume complet de la victime est vérifié tous les 0,20 bloc : mur, bordure,
|
||||
hauteur invalide ou chunk non chargé arrêtent la traction. Aucun passage à
|
||||
travers les blocs, aucune génération de terrain ou installation de poulie.
|
||||
La gravité reprend ensuite normalement ; les chutes restent possibles.
|
||||
- Blesser la source, frapper le crochet, tuer la source, quitter la dimension,
|
||||
téléporter l'un des acteurs ou dépasser la durée coupe le câble. Le trajet
|
||||
hostile impose le déplacement après une touche ; s'accroupir ne le désactive
|
||||
pas. Les montures/passagers, créatifs/spectateurs et boss ne sont pas capturés.
|
||||
- Familier rare, adulte miniature à taille variable persistante : 12 PV,
|
||||
vitesse 0,26, lasso automatique et G à 14 blocs. Le tir doit aussi toucher ;
|
||||
dégâts d'impact et contrôle passent par les protections communes des familiers
|
||||
(propriétaire, alliés, claims, duels et résistance aux contrôles répétés).
|
||||
- Œuf créatif, apparition rare dans les habitats de zombies de l'Overworld,
|
||||
poids 4, un individu. Recharge sauvegardée ; câble et trajet transitoires non
|
||||
sauvegardés. Aucun identifiant ou format existant remplacé.
|
||||
|
||||
## Vérification
|
||||
|
||||
- **19 tests ciblés Smoker** réussis : 18 nouveaux scénarios et le contrôle
|
||||
du framework. Œuf/profil/spawn, adulte, préparation et recharge au lancer,
|
||||
contact réel préalable au déplacement, vitesse 0,58, esquive en vol, mur,
|
||||
obstacle bas sur le corps, blessure de la source même après guérison, crochet
|
||||
coupé, source retirée/déplacée, téléportation et créatif, exclusivité des
|
||||
trajets, sauvegarde sans corde/bébé, chunk non chargé, G avec dégâts/contrôle
|
||||
communs, raté sans remboursement, annulation par ordre, propriétaire/animaux/
|
||||
boss protégés, arrêt avant une cellule interdite et tailles 120 à 6000.
|
||||
- **77 régressions** réussies dans une autre session neuve : tyroliennes fixes
|
||||
et portatives, Boomer, Spitter, Charger, Infecté et socle des familiers. Les
|
||||
deux suites incluent chacune le contrôle du framework. Le mélange des fixtures
|
||||
de joueurs simulés du Smoker avec les scénarios d'IA asynchrones a provoqué
|
||||
des interférences dans un monde partagé ; les suites sont donc isolées,
|
||||
sans modifier les tests des infectés précédents. Journaux :
|
||||
`build/smoker285-check-build-pack.log` et `build/smoker285-regressions.log`.
|
||||
- `./gradlew check build assemblePack` réussi en **2 min 49 s**, avec
|
||||
`-PsanctuaryFocusedTests=smoker285 -PsanctuaryAtlasOnly=true`. Les régressions
|
||||
utilisent `ziplines242,boomer284,spitter283,charger282,infected280,familiar260,companions`
|
||||
avec le même monde plat explicite de graine `0`, dans une session distincte.
|
||||
- Parcours client natif **Vulkan / MoltenVK 1.4.2 / Apple M1**, Java 25,
|
||||
Minecraft 26.3, Loader 0.19.5, monde neuf de graine `285` : réussi avec arrêt
|
||||
normal du client. Appui réel sur G, vol puis touche et traction de l'ennemi,
|
||||
câble natif segmenté, recharge, trois tailles adultes 500/1000/1500 et
|
||||
infobulles/écran FR/EN GUI 2/3/4 vérifiés.
|
||||
- Le même parcours joue le rôle de la victime : un déplacement latéral réel
|
||||
au clavier fait rater le premier lasso. Le second touche réellement, puis
|
||||
transporte le joueur malgré Reculer/Accroupir, jusqu'au Smoker. Position du
|
||||
joueur vérifiée côté serveur et dans le client rendu, câble supprimé à
|
||||
l'arrivée, gravité normale conservée. Le familier reprend son positionnement
|
||||
de combat habituel après avoir achevé sa traction ; l'arrivée est contrôlée
|
||||
par rapport au point d'ancrage effectif du tir.
|
||||
- Texture 64×64 comparée en RGBA au zombie vanilla épinglé : **331 pixels de
|
||||
t-shirt et 239 de pantalon** recolorés, coordonnées/alpha/tête inchangés.
|
||||
Les quatre anciennes textures sont identiques. Œuf 16×16 comparé à sa
|
||||
recoloration attendue, silhouette intacte. Aucun outil de génération d'images.
|
||||
- JAR et export MRpack : ZIP intègres, version beta.285, dépendances exactes,
|
||||
classes, œuf, modèle, texture, profil, butin, tags et traductions présents.
|
||||
Classes de tests exclues ; JAR du pack identique au JAR compilé.
|
||||
Le pack beta.284 précédent est conservé octet pour octet.
|
||||
|
||||
[Pack local beta.285](../build/Sanctuary-beta.285.mrpack), **16 666 919 octets**.
|
||||
SHA-256 : `49dbe9798ecd567f6f53b0482515682b25f4a0dc2c09c24126a3d1579cacf5d0`.
|
||||
[Reçu de validation et empreintes](../build/smoker285-validation.json).
|
||||
|
||||

|
||||

|
||||
|
||||
Livraison locale uniquement : aucun tag/release, canal packwiz, serveur personnel
|
||||
ou instance Prism modifié. Les œufs restent créatifs ; leur acquisition en
|
||||
survie relève d'un autre ticket. Essais de transport sur serveur natif et
|
||||
serveur intégré ; latence de clients distants non couverte. Aucun monde
|
||||
personnel ni format de sauvegarde existant modifié.
|
||||
|
||||
@@ -0,0 +1,114 @@
|
||||
# SOLO-232 — réglages et progression en solo
|
||||
|
||||
Branche `codex/solo-time-building-vein`, base beta.231, Minecraft 26.3.
|
||||
|
||||
## Comportement et contrat de sauvegarde
|
||||
|
||||
`/sanctuary time timezone <fuseau IANA>` choisit le fuseau et sa ville solaire
|
||||
de référence pour ce monde. `timezone auto` reprend le réglage automatique
|
||||
solo ou la configuration dédiée. Le propriétaire solo peut faire ce choix
|
||||
sans Allow Commands ; les autres joueurs et le serveur dédié exigent les
|
||||
droits opérateur. Le statut affiche le fuseau et la commande propose les
|
||||
identifiants disponibles sans accès réseau.
|
||||
|
||||
Le choix persiste dans le champ opaque `reference` du contrat solaire existant,
|
||||
avec le préfixe `timezone:`. Le schéma 1 et les autres champs restent inchangés.
|
||||
Les anciennes références restent lisibles. Le changement réancre le calendrier
|
||||
à son cycle courant, écrit atomiquement avant l'application solaire et ne
|
||||
change jamais `gameTime`. Le mode Vanilla reste Vanilla. `auto` retire le
|
||||
préfixe ; une ancienne version reprendrait sa référence configurée au prochain
|
||||
rechargement. La configuration globale et les autres mondes ne sont pas modifiés.
|
||||
Seule la commande explicitement exécutée par le joueur change son contrat.
|
||||
|
||||
Construction utilise les portées 3 / 3,5 / 4 / 4,5 / 5 / 5,5 / 6 / 7 blocs.
|
||||
Avec un bloc en main principale ou secondaire, la visée suit cette portée :
|
||||
un contour hors portée native reste un support de pose. Minage, contenants,
|
||||
combat, protections, collisions et stock conservent leurs validations propres.
|
||||
Une pose visible peut être refusée pour ces raisons ordinaires, mais pas par
|
||||
une portée de construction différente de celle de la visée.
|
||||
|
||||
R + clic gauche maintenus terminent le groupe verrouillé, puis sélectionnent
|
||||
le nouveau bloc regardé et démarrent un nouveau groupe. Chaque groupe conserve
|
||||
sa durée native, son coût et la validation serveur. Une confirmation serveur
|
||||
de réussite permet la reprise ; refus, outil cassé ou remplacé, interruption,
|
||||
menu ou relâchement arrêtent le geste. Un maintien ne rejoue jamais le même
|
||||
groupe terminé. Aucun groupe n'est lancé sans cible valide.
|
||||
|
||||
## Menu pause et butin de l'île
|
||||
|
||||
Avant l'achat Atlas, aucun widget World Map ni requête
|
||||
de carte n'est créé dans le menu pause. Discovery, Progression, Inhabitant,
|
||||
Faction, Battle, Options, World Options et Save and Quit sont centrés.
|
||||
Gazette est à gauche des boutons et Notice Board à droite, chacune sur toute
|
||||
la hauteur du corps du menu. Calendrier et bulletin conservent leurs emplacements.
|
||||
Après déblocage, la disposition avec carte
|
||||
et les deux fils à droite revient à la prochaine ouverture du menu.
|
||||
|
||||
Les diamants sont retirés lors du premier remplissage
|
||||
des coffres et wagonnets à coffre situés sur l'île initiale du générateur
|
||||
Sanctuary, quelle que soit la table de butin (mines natives comprises).
|
||||
Les expansions, autres dimensions et mondes ordinaires conservent leurs tables.
|
||||
Les coffres déjà ouverts et les objets déposés manuellement sont conservés.
|
||||
Les caches non ouvertes de mondes existants suivent cette nouvelle règle à leur
|
||||
ouverture ; aucune visite ou réécriture de chunks n'a lieu. Aucun minerai ni
|
||||
profil de génération ne change. La graine n'affecte pas l'exclusion des diamants.
|
||||
|
||||
La règle s'applique au générateur courant NoiseBased et à ses trois tailles,
|
||||
ainsi qu'aux anciens profils Sanctuary. Le filtre intercepte uniquement
|
||||
`LootTable.fill`, sans changer les tables elles-mêmes ni leurs autres usages.
|
||||
Les 794 ressources de génération et de butin du JAR beta.231 restent identiques.
|
||||
La génération demeure 231 ; graines de butin vérifiées : 0, 42, 232, puis
|
||||
256 tirages de la table native abandoned_mineshaft.
|
||||
|
||||
## Livraison et vérifications
|
||||
|
||||
Version mod et pack : `beta.232`, Minecraft 26.3, Fabric Loader 0.19.5, Java 25.
|
||||
Le nouveau message serveur `sanctuary:mining_result` autorise la reprise d'un
|
||||
groupe terminé ; client et serveur doivent utiliser cette livraison ensemble.
|
||||
Le client attend aussi la mise à jour du bloc initial avant de recalculer sa
|
||||
visée, car la confirmation peut arriver avant les blocs détruits.
|
||||
|
||||
`./gradlew check build assemblePack -PsanctuaryFocusedTests=realtime,mining,building
|
||||
-PsanctuaryAtlasOnly=true` réussit en 2 min 36 s : 24 GameTests requis et les
|
||||
contrôles purs du dépôt passent. Fuseau persistant/idempotent, fuseau invalide
|
||||
et contrat modifié extérieurement refusés, mode Vanilla et horloge native
|
||||
préservés ; validations serveur du minage et de la construction conservées.
|
||||
Log : `build/solo232-check-build-pack.log`.
|
||||
|
||||
`./gradlew :sanctuary:runGameTest -PsanctuaryFocusedTests=solo232
|
||||
-PsanctuaryTestGeneration=13` réussit en 37 s : 2 GameTests requis, remplissage
|
||||
réel avec le mixin, conservation des diamants déposés et du fer, butin distant
|
||||
et contexte absent préservés, identification des trois profils courants.
|
||||
Log : `build/solo232-loot-native.log`.
|
||||
|
||||
Les contrôles utilisent les modes existants du banc d'essai. Son chemin par
|
||||
défaut tente encore de convertir le preset courant NoiseBased en ancien
|
||||
SanctuaryChunkGenerator et échoue avant les tests. Ce ticket ne corrige pas
|
||||
ce banc historique et ne revendique pas une suite complète de génération.
|
||||
|
||||
`./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true
|
||||
-PsanctuarySolo232ClientTests=true -PsanctuaryClientGraphicsBackend=vulkan`
|
||||
réussit en 1 min 3 s, Vulkan confirmé avec MoltenVK 1.4.2. Un propriétaire
|
||||
Survie sans Allow Commands utilise réellement la commande de fuseau. Deux
|
||||
groupes successifs sont minés avec R + clic gauche maintenus, huit destructions
|
||||
et huit usages natifs d'outil ; un outil cassé interrompt le geste après une
|
||||
destruction sans redémarrer. L'essai Balance080 couvre aussi pose native aux
|
||||
deux mains, portée initiale, contour et pose à 6,75 blocs, refus d'un paquet
|
||||
forgé à 7,25 blocs, indépendance Minage/Construction, contenants, nénuphars,
|
||||
construction groupée et bonus externes.
|
||||
|
||||
Le menu pause est contrôlé avant/après achat Atlas, en FR/EN, aux échelles
|
||||
GUI 2/3/4 dans une fenêtre 1280×960 : huit actions présentes et dans le corps,
|
||||
colonnes sans chevauchement, carte uniquement après achat. Douze captures
|
||||
sont conservées dans `build/solo232-screenshots/`, avec inspection visuelle
|
||||
du mode verrouillé FR/2 et EN/4, et du mode débloqué FR/2. Les libellés longs
|
||||
gardent les infobulles natives aux petites largeurs.
|
||||
Log : `build/solo232-client-vulkan-final.log`, marqueurs `SOLO232_PASS` et
|
||||
`BALANCE080_PASS`. Aucun essai OpenGL ou Windows n'est revendiqué.
|
||||
|
||||
MRpack local : `build/Sanctuary-beta.232.mrpack`, intégrité ZIP, versions,
|
||||
dépendances exactes, JAR construit identique, absence de monde et d'entrée
|
||||
Sanctuary Test vérifiées. Reçu : `build/solo232-mrpack-receipt.json`.
|
||||
SHA-256 pack : `03e588c3866ad513d057162e9fea4ba9ad07e33a522841e2e7bbd66356b153f8`.
|
||||
SHA-256 JAR : `a208ccce6318ceccf04d35d983e4a9ea1d46e872fda202d47a37000faa740d9f`.
|
||||
Aucun monde personnel, installation de jeu ou canal packwiz n'est modifié.
|
||||
@@ -0,0 +1,73 @@
|
||||
# AUDIO-252 — Sound Physics Remastered en option
|
||||
|
||||
Branche `codex/sound-physics-option`, Minecraft **26.3**, livraison **beta.252**.
|
||||
Le socle reprend beta.251 en entier, y compris les habitats des insectes et la
|
||||
protection des maisons. Les sources de cette livraison, encore non commises dans
|
||||
son worktree, sont conservées dans le commit de base `8e51250` sans modifier
|
||||
ce worktree.
|
||||
|
||||
## Résultat
|
||||
|
||||
**Options → Sound Physics Remastered → Acoustique réaliste** active la
|
||||
réverbération, l'absorption et la propagation de Sound Physics Remastered.
|
||||
Le moteur est désactivé pour une configuration neuve ; une configuration
|
||||
existante garde sa valeur d'activation et ses autres préférences.
|
||||
|
||||
Le JAR Fabric officiel **1.5.1+26.3** est inclus dans le JAR Sanctuary.
|
||||
Aucune installation séparée de Sound Physics Remastered, Cloth Config ou
|
||||
Mod Menu n'est nécessaire. La version amont est une bêta destinée explicitement
|
||||
à Minecraft 26.3. Gradle et l'assemblage du pack vérifient son SHA-512, sa présence
|
||||
unique, ses métadonnées et ses notices. Les sources et crédits sont consignés
|
||||
dans `mods/sound-physics-remastered/PROVENANCE.md`, inclus avec la GPL version 3.
|
||||
|
||||
L'interface native FR/EN donne accès aux paramètres d'acoustique, de qualité,
|
||||
de performances, de diagnostic, ainsi qu'à la réflexion et à l'occlusion par
|
||||
matériau. Les réglages vocaux sont également accessibles ; leurs effets
|
||||
nécessitent Simple Voice Chat, qui n'est pas ajouté. Les limites numériques
|
||||
reprennent celles de l'amont, avec refus des valeurs hors plage et non finies.
|
||||
La virgule décimale est acceptée ; Annuler ou Échap ne sauvegarde rien.
|
||||
|
||||
Les changements sont conservés dans les fichiers natifs de
|
||||
`config/sound_physics_remastered/`. Le basculement relance le moteur audio pour
|
||||
retirer les filtres des sons déjà actifs : les sons en cours sont brièvement
|
||||
interrompus. Les autres réglages appliquent les paramètres sans redémarrer
|
||||
le jeu. Les réglages de portée dépendent aussi de l'activation côté serveur
|
||||
ou du solo, conformément au fonctionnement amont.
|
||||
|
||||
Aucune ressource AmbientSounds ni nouvel enregistrement d'ambiance n'est
|
||||
ajouté. La génération, les formats de sauvegarde et les mondes restent ceux
|
||||
du socle beta.251. Le pack est préparé localement ; aucune installation
|
||||
personnelle ni canal public n'est modifié.
|
||||
|
||||
## Vérifications
|
||||
|
||||
Vérifications réussies le 8 octobre 2026, Java 25, Fabric Loader 0.19.5 et
|
||||
Fabric API 0.160.5+26.3 :
|
||||
|
||||
- `./gradlew check build assemblePack assembleTestPack
|
||||
-PsanctuaryFocusedTests=insects245 -PsanctuaryAtlasOnly=true` : 138 tâches,
|
||||
21 GameTests requis, contrôles de ressources et assemblages réussis. Le serveur
|
||||
dédié charge aussi le composant embarqué sans erreur.
|
||||
- `./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true
|
||||
-PsanctuarySound252ClientTests=true -PsanctuaryClientGraphicsBackend=vulkan` :
|
||||
menus FR/EN aux échelles 2 et 4, six catégories accessibles, configuration
|
||||
neuve désactivée, ancien fichier activé conservé, basculement immédiat,
|
||||
sauvegarde relue depuis le disque, validation des bornes et valeurs non
|
||||
finies, virgule décimale et annulation réussis. OpenAL EFX initialise ses
|
||||
quatre effets ; capture du menu dans le dossier de tests ignoré.
|
||||
- Les sources, ressources et tests d'écologie de beta.251 sont comparés
|
||||
octet par octet au worktree d'origine : identiques. Les deux MRpacks ont
|
||||
leur version, leurs dépendances et leur intégrité ZIP vérifiées ; ils
|
||||
embarquent le JAR Sanctuary final, sans JAR SPR séparé ni configuration
|
||||
audio imposée aux préférences utilisateur.
|
||||
|
||||
Logs et reçu ignorés : `build/sound252-client.log`,
|
||||
`build/sound252-check-build-pack.log`, `build/sound252-validation.json`.
|
||||
L'écoute subjective de la réverbération et le coût sur d'autres machines
|
||||
restent à évaluer en partie ; la suite historique complète des GameTests
|
||||
n'est pas revendiquée.
|
||||
|
||||
Artefacts locaux : `build/Sanctuary-beta.252.mrpack` (13 537 390 octets,
|
||||
SHA-256 `0e8ccd8b64c645503167ecb44dbd9cc5227aa182b7aeecec684d08883403ed2a`)
|
||||
et `build/Sanctuary-Test-beta.252.mrpack` (13 951 183 octets,
|
||||
SHA-256 `e1452203375599524383a018246f98283d08183520a911a0c4a231bb33a6e53f`).
|
||||
@@ -0,0 +1,120 @@
|
||||
# WG-209 — premier Sud, canyons multicolores
|
||||
|
||||
Branche `codex/south-badlands-beta209`, depuis beta.208 (`d021341`).
|
||||
Le créateur valide le Nord 208 et demande ce premier prototype jouable du Sud.
|
||||
|
||||
## Contrat
|
||||
|
||||
Expansion Sud de diamètre 1024 : réseau de vallées creusées par Voronoi inversé,
|
||||
mesas à plusieurs altitudes, falaises et petites ouvertures par bruit 3D.
|
||||
La forme et la matière sont indépendantes. Les seize terracottas forment des
|
||||
strates continues, plissées et marbrées ; leur disposition varie avec la graine.
|
||||
Poudre de béton assortie sur les surfaces portantes, avec du sable rouge.
|
||||
Pas de partage fixe en trois secteurs ni de roue chromatique autour de l'île.
|
||||
Pas de nouvelle structure à cette étape : le test porte sur le relief et la matière.
|
||||
|
||||
Nouveaux profils 209 uniquement ; terrain de Sanctuary et Nord 208 conservés.
|
||||
Tous les profils historiques restent disponibles, sans migration. Contrat de
|
||||
test : nouveaux mondes de développement, graines 42 et 0, activation réelle de
|
||||
l'ancre Sud et interruption/reprise de sa préparation. Nouvelle visite solo
|
||||
Vulkan à 32 chunks, sans retoucher une sauvegarde existante. Export MRpack local ;
|
||||
aucune publication de canal ni mise à jour Prism.
|
||||
|
||||
## Réalisation du prototype
|
||||
|
||||
- Sites Voronoi décalés par la graine, domaine déformé à grande échelle.
|
||||
La distance aux frontières creuse un réseau ramifié ; sa largeur et sa
|
||||
profondeur varient. Mesas à différentes altitudes, petits replats sur certains
|
||||
flancs, rares creux sur les tables et alcôves en bruit 3D. Pas de simulation
|
||||
globale d'érosion ou d'hydrologie. Les colonnes sont mises en cache par worker.
|
||||
- Champ de matière indépendant : couches de sept blocs, plissées par deux
|
||||
échelles horizontales et un bruit 3D. Les seize teintes sont groupées en
|
||||
familles dont l'ordre et le sens varient avec la graine, sans secteurs radiaux.
|
||||
- Une couche de poudre de béton assortie sur les surfaces peu inclinées et
|
||||
soutenues ; plages de sable rouge. La terracotta constitue les parois et le
|
||||
support. Végétation sèche native parcimonieuse, aucun lac ni structure ajouté.
|
||||
L'économie des minerais et les temples du Sud restent pour la suite.
|
||||
- Ancre Sud et relais suivants : climat aride, relief canyon et diamètre 1024 ;
|
||||
petit éventail directionnel conservé. Préparation de 49 chunks d'arrivée et
|
||||
neuf près du relais ; exploration progressive du reste. Signal SGA FR/EN.
|
||||
- Presets 209 Small/Medium/Large et défaut Sanctuary. Densités de l'île principale
|
||||
identiques aux fichiers 208 ; Nord délégué aux mêmes classes 208.
|
||||
|
||||
## Vérifications
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack :sanctuary-test:exportDuoLaunch
|
||||
-PsanctuaryFocusedTests=base204,north208,south209 -PsanctuaryAtlasOnly=true` :
|
||||
succès en 5 min 43 s, contrôles purs et huit GameTests ciblés passés.
|
||||
Journal : `build/south209-check-build.log`. Le Sud est contrôlé sur trois graines
|
||||
pour ses vallées réparties, mesas, hauteurs, alcôves, appuis et déterminisme
|
||||
entre workers. La palette conserve seize couleurs et une continuité spatiale ;
|
||||
les anciens profils restent résolubles et les régressions du Nord passent.
|
||||
La suite historique complète des GameTests n'est pas revendiquée.
|
||||
|
||||
Le premier essai natif a révélé un cycle d'ordre de décoration entre
|
||||
`wooded_badlands` et le nouveau biome. La liste locale plaçait les buissons morts
|
||||
avant l'herbe sèche ; elle reprend désormais l'ordre natif. Un GameTest charge
|
||||
la liste complète des biomes de chaque taille et vérifie son tri topologique.
|
||||
Reconstruction avec `:sanctuary:runGameTest build assemblePack assembleTestPack
|
||||
:sanctuary-test:exportDuoLaunch -x :sanctuary:check`, même sélection ciblée :
|
||||
succès en 47 s, neuf GameTests passés. Les contrôles purs précédents ne sont pas
|
||||
répétés pour cette correction de ressource. Journal : `build/south209-order-fix.log`.
|
||||
Les deux essais avortés sont conservés ; les essais finaux utilisent de nouveaux
|
||||
répertoires `south209-b` (42) et `south209-b0` (0).
|
||||
|
||||
Les premiers essais corrigés `south209-b` et `south209-b0` passent : activation
|
||||
réelle, reprise 0/58 → 58 FULL, seize couleurs, sables soutenus et biomes cohérents
|
||||
dans les colonnes inspectées. Une revue finale limite explicitement ce champ au
|
||||
diamètre 1024 : les commandes opérateur de plus petite taille gardent le canyon
|
||||
historique. Le petit socle du relais descend jusqu'à six blocs si un vide local
|
||||
le sépare du terrain. Un contrôle natif vérifie ses neuf appuis.
|
||||
|
||||
Reconstruction finale avec la même commande ciblée : neuf GameTests passés,
|
||||
succès en 34 s (`build/south209-final-build.log`). Les essais finaux sur
|
||||
`south209-final` (42) et `south209-final0` (0) passent également sur le JAR final.
|
||||
Chaque serveur s'arrête proprement après vérification. Paiement réel, refus de
|
||||
l'offrande incorrecte et du doublon, interruption à 0/58, reprise à 58 chunks FULL,
|
||||
relais orienté Sud et message SGA vérifiés.
|
||||
|
||||
| Relevé | Graine 42 | Graine 0 |
|
||||
| --- | --- | --- |
|
||||
| Hauteurs sur la grille intérieure | 147–289 | 144–297 |
|
||||
| Échantillons de vallée / mesa | 618 / 677 | 568 / 703 |
|
||||
| Blocs inspectés dans les colonnes natives | 17 991 | 11 525 |
|
||||
| Couleurs de terracotta observées | 16 | 16 |
|
||||
| Sables inspectés / sans support | 89 / 0 | 120 / 0 |
|
||||
| Colonnes avec biome attendu | 150 / 150 | 150 / 150 |
|
||||
|
||||
Ces relevés sont des échantillons, pas un inventaire de l'île entière. Les essais
|
||||
simultanés ne constituent pas un benchmark de performances. Aucun essai Windows
|
||||
ni validation esthétique n'est déduit de ces contrôles.
|
||||
|
||||
## Distribution et visite
|
||||
|
||||
`build/Sanctuary-beta.209.mrpack`, copié dans `~/Downloads/`. Archive ZIP intacte,
|
||||
JAR identique au build, presets 208 et 209 des trois tailles présents, aucun
|
||||
module Test ni monde embarqué. Minecraft 26.3 / Fabric Loader 0.19.5.
|
||||
Reçu : `build/south209-mrpack-receipt.json`. SHA-256 :
|
||||
`e077ce64f59330c4916408d0ff79f8d0e445bcfb3a972953680ccc93c28392b7`.
|
||||
Aucun canal public, serveur personnel ou instance Prism mis à jour.
|
||||
|
||||
Visite neuve `Sanctuary-South-209-42`, copie de l'essai final arrêté, dans
|
||||
`build/worldgen-lab/south209-visit/small/42/client/saves/`. Vue 32 chunks,
|
||||
simulation 5, créatif en vol et commandes. Position initiale :
|
||||
**(-167.5, 323.13, 585.5)**, regard vers **(-112, 304, 656)**.
|
||||
Arrivée du Sud : **(128, 258, 664)** ; relais : **(104, 241, 1248)**.
|
||||
L'ancienne visite 208 a été arrêtée par son hook de sauvegarde natif ; sa
|
||||
sauvegarde et les anciennes visites sont conservées.
|
||||
|
||||
## Limites du prototype
|
||||
|
||||
Relief et palette à apprécier en jeu. Pas encore de temple, de défi ou de
|
||||
nouvelle distribution de minerais propre au Sud. Les couches et affleurements
|
||||
colorés sont présents ; des gisements spéciaux distincts restent une piste.
|
||||
Le rendu et le coût d'exploration à 32 chunks ne sont pas validés par les mesures
|
||||
de préparation du relais.
|
||||
|
||||
Le client confirme Vulkan sur Apple M1 et `SOUTH209_VISIT_OPEN` le 5 octobre
|
||||
à 04:26:12 en **(-168, 323, 585)**. Vue 32 / simulation 5 confirmées. Le journal
|
||||
indique ensuite le passage du joueur en spectateur ; cela confirme l'accès à la
|
||||
visite, sans constituer une validation esthétique du prototype.
|
||||
@@ -0,0 +1,93 @@
|
||||
# WG-213 — Pyramide camouflée et chambres enterrées
|
||||
|
||||
Branche `codex/south-buried-beta213`, depuis beta.212 (`3941bd4`).
|
||||
|
||||
## Contrat
|
||||
|
||||
R017 valide le relief 212, les récifs relevés et les couleurs radiales. Retirer
|
||||
seulement les sables normal / rouge de surface et les acacias custom du Sud.
|
||||
Remplacer le complexe extérieur par une pyramide de terracotta locale, une
|
||||
descente, environ dix petites salles dans le sol, couloirs étroits et pièges.
|
||||
La taille du complexe vient du nombre de pièces. Le site peut être ailleurs
|
||||
que le centre. Aucun autre changement de paysage ou chantier de jeu.
|
||||
|
||||
Nouveaux profils 213 uniquement : aucun monde existant modifié ou régénéré.
|
||||
Générateur `SouthRelief212` repris sans changement, même graine et bruit ;
|
||||
palette 212 conservée. Le Nord et l'île de départ gardent leur génération.
|
||||
Contrat de vérification : création neuve sur 42/0, ancre réelle, reprise,
|
||||
inspection native et nouvelle visite Vulkan 32 chunks ; MRpack local.
|
||||
Aucun canal public, serveur personnel ou instance Prism modifiés.
|
||||
|
||||
## Réalisation
|
||||
|
||||
- Le sol conserve la terracotta et ses petites zones de terre stérile ; aucun
|
||||
sable ou acacia ajouté par le nouveau profil Sud. Herbes / buissons secs conservés.
|
||||
- Pyramide extérieure de 23 blocs de côté et 10 blocs au-dessus du sol, palette
|
||||
résolue sur les vraies strates de ses coordonnées. Deux niveaux de cinq salles,
|
||||
sols à 16 et 30 blocs sous l'entrée ; intérieurs 5 × 5, hauteur libre 3.
|
||||
- Escaliers et couloirs de deux blocs de large. Dix coffres avec le butin déjà
|
||||
vérifié en 212. Huit poches de trois TNT, déclenchement par plaque ; pas de
|
||||
nappe explosive continue. Les pièces sont creusées dans la roche et bordées
|
||||
d'une enveloppe mince, les anciennes halles / pylônes / arches sont absents.
|
||||
- Recherche déterministe dans l'île : couvre les plafonds des salles et préfère
|
||||
une masse rocheuse assez pleine. Tolère des fissures naturelles localisées.
|
||||
Placement limité au chunk courant, préparation inclut le nouveau complexe.
|
||||
|
||||
## Vérifications de code
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack :sanctuary-test:exportDuoLaunch
|
||||
-PsanctuaryFocusedTests=base204,north208,south212,south213 -PsanctuaryAtlasOnly=true`
|
||||
réussi en 2 min 37 s, contrôles purs et **12 GameTests** passés
|
||||
(`build/south213-final-build.log`). La première passe avait trouvé un accès
|
||||
bloqué sous la première descente : un petit contournement dessert maintenant
|
||||
les chambres du premier niveau (`build/south213-check-build.log`).
|
||||
|
||||
Comparaison exacte des densités et palettes 212/213 sur deux graines : relief
|
||||
et couleurs identiques. Les trois fichiers de bruit de l'île principale sont
|
||||
identiques octet pour octet. Contrôles des profils historiques, du Nord et de
|
||||
l'ancien Sud. Parcours des deux escaliers, accès aux dix chambres et coffres,
|
||||
poches de TNT séparées ; test natif d'amorçage de la plaque conservé dans 212.
|
||||
La suite complète des GameTests historiques n'est pas revendiquée.
|
||||
|
||||
## Essais natifs et distribution
|
||||
|
||||
Nouveaux mondes `south213-final` (42) et `south213-final0` (0), départ Small et
|
||||
expansion Sud 1024. Paiement réel de l'ancre, mauvais paiement / doublon refusés,
|
||||
interruption puis reprise, relais et signal SGA vérifiés. La préparation inclut
|
||||
la pyramide et son sous-sol. Les deux serveurs sont arrêtés proprement avant
|
||||
la copie de la visite ; aucune modification des visites précédentes.
|
||||
|
||||
| Relevé borné | Graine 42 | Graine 0 |
|
||||
| --- | --- | --- |
|
||||
| Hauteur maximale sondée (identique à 212) | 301 | 304 |
|
||||
| Colonnes rehaussées (identiques à 212) | 281 | 211 |
|
||||
| Sable normal / rouge | 0 | 0 |
|
||||
| Troncs / feuilles d'acacia | 0 / 0 | 0 / 0 |
|
||||
| Faces froides colorées exposées | 1485 | 1418 |
|
||||
| Coffres / piles enchantées | 10 / 10 | 10 / 10 |
|
||||
| TNT dans huit poches distinctes | 24 | 24 |
|
||||
| Roche préexistante sondée autour des pièces | 100 % | 95,56 % |
|
||||
| Base de la pyramide | 32, 249, 848 | −112, 249, 944 |
|
||||
|
||||
Le rendu de chaque bloc de terracotta de la pyramide correspond à la palette
|
||||
locale. Les plafonds des pièces sont sous le toit du terrain et leur espace
|
||||
libre est contrôlé dans les chunks réels. Ces mesures sont des échantillons,
|
||||
pas un inventaire de toute l'île ou un benchmark. Aucun test Windows ni
|
||||
validation visuelle du joueur n'est revendiqué. La petite structure a un plan
|
||||
fixe pour cette itération ; son emplacement, orientation et teinte varient.
|
||||
|
||||
MRpack normal exporté, ZIP intact, JAR exact et presets des trois tailles
|
||||
212/213 vérifiés, aucun monde ou module Test inclus. Copie dans
|
||||
`~/Downloads/Sanctuary-beta.213.mrpack`. Minecraft 26.3, Fabric Loader 0.19.5.
|
||||
SHA-256 : `6d11e398a09f6f65c963eb022bc0482906a8126e0c4f67ffbee867cadbe1340c`.
|
||||
Reçu : `build/south213-mrpack-receipt.json`. Aucun tag ou canal public publié.
|
||||
|
||||
Nouvelle visite `Sanctuary-South-213-42`, sous
|
||||
`build/worldgen-lab/south213-visit/small/42/client/saves/`, créatif en vol,
|
||||
commandes, Vulkan, 32 chunks / simulation 5. Départ **(31.5, 263, 810.5)**,
|
||||
face à l'entrée **(32, 250, 837)**. Relais **(128, 251, 1224)**.
|
||||
Client ouvert à **06:32:38 CEST le 5 octobre 2026** : `SOUTH213_VISIT_OPEN`,
|
||||
monde et position attendus. Backend Vulkan et options 32/5 confirmés.
|
||||
Le rendu reste à apprécier par le joueur.
|
||||
|
||||
|
||||
@@ -0,0 +1,137 @@
|
||||
# WG-216 — Forêts et pièges du Sud
|
||||
|
||||
Branche `codex/south-forest-beta216`, depuis beta.215 (`03aab49`).
|
||||
|
||||
## Contrat
|
||||
|
||||
Retirer les torches de la pyramide, disperser davantage de plaques de pression
|
||||
reliées à des pièges dans les salles et passages, conserver l’architecture et
|
||||
le butin validés. Planter de grandes forêts denses sur les nappes de terre du
|
||||
Sud, sans réintroduire les acacias rejetés. Choix de cette passe : chênes
|
||||
ramifiés natifs avec des hauteurs variées et une canopée continue.
|
||||
Le joueur considère le Sud terminé pour le moment après ces ajustements.
|
||||
|
||||
Nouveaux profils 216 uniquement, aucune ancienne sauvegarde ou chunk retouché.
|
||||
Relief, couleurs, Nord et monuments 215 conservés. Mondes jetables neufs sur
|
||||
42 et 0 : activation Sud, interruption et reprise autorisées pour les essais.
|
||||
Nouvelle visite Vulkan 32 chunks et MRpack local, aucun canal public ni Prism.
|
||||
|
||||
## État
|
||||
|
||||
Implémenté ; build, huit GameTests ciblés et essais natifs sur 42/0 réussis.
|
||||
MRpack exporté et vérifié ; nouvelle visite ouverte. Rendu à apprécier en jeu.
|
||||
|
||||
## Complément R022
|
||||
|
||||
Uniquement des arbres classiques, aucun acacia. Ajouter des chemins de terre
|
||||
sur la surface de l’expansion, répartis entre les lieux et secteurs boisés.
|
||||
Implantation sur le relief existant ; détours autour des failles, pas de pont
|
||||
ou terrassement massif ajouté par cette passe.
|
||||
|
||||
Palette R023 : 14 teintes dans 8 couronnes, conservées sur choix explicite du joueur.
|
||||
|
||||
## Réalisation
|
||||
|
||||
La pyramide conserve ses dix salles, ses coffres et son enveloppe de 31 × 31.
|
||||
Le gabarit 216 retire les torches et répartit des plaques dans les chambres et
|
||||
les couloirs ; chacune repose sur un bloc plein, avec une charge TNT cachée
|
||||
en dessous. Les anciens gabarits conservent leur éclairage et leurs pièges.
|
||||
|
||||
Les chênes utilisent le générateur ramifié natif de Minecraft 26.3, avec un
|
||||
tronc de hauteur variable (paramètres 8 + aléas 7/3) et 18 essais de plantation
|
||||
par chunk. Plantation uniquement sur les nappes existantes de terre, terre
|
||||
stérile ou herbe ; réserve autour de la pyramide, du relais, de l’arrivée et
|
||||
des chemins. Aucun acacia ni changement des couleurs de terracotta.
|
||||
|
||||
Les chemins sont calculés une fois par expansion, sur une grille de 16 blocs
|
||||
avec vérification du sol à chaque pas. Dix destinations couvrent le relais,
|
||||
la pyramide et les huit secteurs de l’île. La recherche privilégie les détours
|
||||
praticables, puis peint des sentiers de trois blocs de large, resserrés sur
|
||||
les bords. Les plateaux séparés par le vide ont des réseaux locaux distincts :
|
||||
aucun pont ni remblai ne les raccorde artificiellement. Les destinations sont
|
||||
approchées selon la praticabilité du terrain, sans garantie de liaison complète
|
||||
entre tous les monuments. Plan indexé par chunk ; aucune prégénération de
|
||||
l’île entière, aucun recalcul à chaque tick.
|
||||
|
||||
Les profils 216 Small/Medium/Large et le biome `sanctuary:south_badlands216`
|
||||
isolent cette évolution. Les reliefs, matériaux et anciens profils restent
|
||||
lisibles. Le nouveau biome n’ajoute que le placement des chênes.
|
||||
|
||||
## Vérifications
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack :sanctuary-test:exportDuoLaunch
|
||||
-PsanctuaryFocusedTests=base204,relays215,south216 -PsanctuaryAtlasOnly=true`
|
||||
réussit : contrôles purs et huit GameTests ciblés. Plaque avec déclenchement
|
||||
réel d’une TNT enterrée, accès aux dix chambres, conservation des anciens
|
||||
profils et des relais. Planification directe : dix branches et 4 962 cellules
|
||||
sur la graine 0 ; dix branches et 5 230 cellules sur 42. Parcours vérifiés
|
||||
bloc par bloc, reconstruction identique du plan. Ces graines directes diffèrent
|
||||
des graines dérivées utilisées lors d’une activation depuis Sanctuary.
|
||||
|
||||
Comparaison des ressources : bruit de terrain identique à 215 pour les trois
|
||||
tailles ; préréglages modifiés uniquement pour leur révision et le biome 216.
|
||||
Code de sélection des couleurs strictement identique : 14 teintes, 8 couronnes.
|
||||
|
||||
Les premiers essais ont décelé une recherche de sentiers bloquée dans un petit
|
||||
secteur isolé. La planification distingue désormais les plateaux reliés à pied
|
||||
et produit des réseaux locaux, sans franchissement artificiel du vide.
|
||||
|
||||
## Mondes générés et reprise
|
||||
|
||||
Essais finaux `south216-final` (42) et `south216-final0` (0), après correction
|
||||
du relevé des arbres : les branches horizontales touchant une paroi étaient
|
||||
comptées à tort comme des racines. La règle de plantation n’a pas changé ;
|
||||
le relevé contrôle désormais les troncs verticaux. Le premier contrôle natif
|
||||
avait aussi exigé une pyramide sur 0 alors que la recette conservée n’y trouve
|
||||
pas de site enterré. Ce cas est relevé explicitement, pas converti en réussite
|
||||
de placement. Le contrôle exige toujours la pyramide sur 42.
|
||||
|
||||
Activation par l’ancre Sud, paiement, rejet d’un doublon, interruption et
|
||||
reprise réussis dans les deux mondes. Île principale Small 512, expansion de
|
||||
1024 centrée en (128, 944). Graines dérivées : −6763683964522674921 (42) et
|
||||
3285501279717306940 (0).
|
||||
|
||||
| Relevé natif | 42 | 0 |
|
||||
| --- | ---: | ---: |
|
||||
| Branches de sentiers | 10 | 9 |
|
||||
| Cellules de chemin prévues | 3 509 | 2 106 |
|
||||
| Blocs de chemin vérifiés dans les chunks | 470 | 478 |
|
||||
| Chunks de chemin contrôlés | 10 | 9 |
|
||||
| Troncs dans la zone forestière de 49 × 49 | 69 | 97 |
|
||||
| Chênes avec tronc d’au moins 8 blocs | 61 | 91 |
|
||||
| Colonnes couvertes par les feuilles | 1 657 | 2 177 |
|
||||
| Blocs de feuilles | 13 210 | 17 054 |
|
||||
| Acacias dans le relevé | 0 | 0 |
|
||||
|
||||
Chemins soutenus et deux blocs libres au-dessus ; troncs verticaux sur terre.
|
||||
Les monuments des relais sont comparés au plan bloc par bloc (2 326 / 2 217
|
||||
blocs), avec accès et paiement sur leur position surélevée.
|
||||
|
||||
Pyramide de 42 en (32, 249, 848) : 10 coffres, 10 piles enchantées,
|
||||
40 plaques de pression, 56 TNT et **aucune torche**. Les galeries restent
|
||||
accessibles avant déclenchement. Sur 0, aucune pyramide : limite du placement
|
||||
215 conservé, qui refuse un massif insuffisamment plein. Les routes n’assurent
|
||||
pas une liaison continue à travers toutes les failles. Ces essais ne sont
|
||||
ni un benchmark, ni une validation graphique du rendu, ni un essai Windows.
|
||||
|
||||
## Distribution locale
|
||||
|
||||
`build/Sanctuary-beta.216.mrpack`, également copié dans Downloads, contient le
|
||||
mod normal avec les trois tailles ; aucun module Test ni monde. Intégrité ZIP,
|
||||
version, profils historiques et identité exacte du JAR construit vérifiés.
|
||||
SHA-256 MRpack : `e5c9c6bd9a1a4602f290732a9adf49652c217ab4858db256e3cfe6d8ee1f2bf3`.
|
||||
SHA-256 JAR : `0807809aa1e8c889cb84e56de99e24f8b3702dd72bba5e56f809bbb4854f23d2`.
|
||||
|
||||
Après les corrections de diagnostic uniquement, le module Test a été recompilé
|
||||
et réassemblé ; le JAR principal reste exactement celui du `check build` réussi.
|
||||
Reçus ignorés : `build/south216-static-receipt.json`,
|
||||
`build/south216-mrpack-receipt.json` et rapports `warm.json` des deux essais.
|
||||
|
||||
Nouvelle sauvegarde de visite : `south216-visit-final`,
|
||||
`Sanctuary-South-216-42`, copie neuve du monde vérifié, créatif avec commandes,
|
||||
vue 32 chunks et simulation 5. Départ face à la forêt en (284, 204, 1170),
|
||||
forêt en (256, 172, 1200), relais en (128, 258, 1224).
|
||||
Aucun ancien monde modifié ; aucun canal public, tag ou Prism mis à jour.
|
||||
|
||||
Ouverture confirmée par `SOUTH216_VISIT_OPEN` le 5 octobre 2026 à 08:36:18 CEST,
|
||||
position (284, 204, 1170), backend Vulkan confirmé dans le journal client.
|
||||
@@ -0,0 +1,122 @@
|
||||
# WG-210 — familles de teintes et sols des canyons
|
||||
|
||||
Branche `codex/south-palette-beta210`, depuis beta.209 (`efb1097`).
|
||||
|
||||
## Contrat
|
||||
|
||||
Le créateur accepte le relief du Sud 209 et demande une famille de teintes
|
||||
terreuses par massif, des strates irrégulières moins contrastées, un fond de
|
||||
canyon continu et de la végétation sèche dans les vallées et sur les plateaux.
|
||||
Conserver strictement la densité, les dimensions, les alcôves et les relais.
|
||||
Ni dégradé systématique sombre/clair selon l'altitude ni cycle des seize couleurs.
|
||||
|
||||
Nouveaux profils 210 uniquement ; les mondes et profils historiques restent
|
||||
inchangés. Tests autorisés sur de nouveaux mondes de développement, graines 42
|
||||
et 0 : activation de l'ancre Sud, interruption/reprise, contrôle du terrain
|
||||
natif et nouvelle visite Vulkan à 32 chunks. Export MRpack local. Pas de
|
||||
migration de sauvegarde, publication de canal ou déploiement Prism.
|
||||
|
||||
## État
|
||||
|
||||
Implémentation compilée ; contrôles ciblés et essais natifs 42/0 réussis. Le jugement esthétique
|
||||
reste à apporter en visite ; les contrôles techniques ne valident pas le rendu.
|
||||
|
||||
## Réalisation
|
||||
|
||||
Le champ `SouthRelief209` conserve ses calculs de densité. Il expose seulement
|
||||
l'identifiant du massif Voronoi déjà choisi et le fond théorique de vallée.
|
||||
`SouthTerrain210` réutilise ce champ et les sites d'arrivée/relais 209.
|
||||
|
||||
`SouthPalette210` prépare quatre familles apparentées : rouille, ocre, terre,
|
||||
crème. Pour chaque massif, une roche dominante couvre l'essentiel du volume ;
|
||||
des lits secondaires de 2–6 blocs et des filets de 1–2 blocs interrompent des
|
||||
espacements de 8–26 blocs. Les piles sont indépendantes, déterministes par graine
|
||||
et légèrement plissées. Le pied des massifs reste en terracotta commune.
|
||||
Le cycle des seize teintes et les poudres colorées restent propres au profil 209.
|
||||
|
||||
Les fonds plats reçoivent un sol commun de terre stérile, terre et sable rouge,
|
||||
piloté par un bruit continu indépendant des cellules. Les plateaux reçoivent des
|
||||
plages de sol et conservent des affleurements. Le sable repose sur du grès rouge.
|
||||
Cette passe remplace les blocs solides existants ; elle ne creuse ni ne remplit
|
||||
les vallées. La continuité porte sur le sol, aucune rivière n'est ajoutée.
|
||||
|
||||
L'herbe sèche courte/haute, les buissons morts et quelques cactus sont placés
|
||||
sur les surfaces portantes des vallées et des plateaux. Les règles natives de
|
||||
support sont vérifiées. Les candidats restent à l'intérieur de leur chunk et
|
||||
ne lancent aucune recherche de terrain supplémentaire. Le biome 210 a une liste
|
||||
de features vide : cette décoration locale évite d'ajouter deux fois les plantes.
|
||||
|
||||
Les trois tailles publiques basculent vers des profils 210 avec les mêmes
|
||||
réglages de l'île principale ; le Nord conserve le champ accepté en 208.
|
||||
Les profils 196–209 restent chargeables et ne changent pas de palette.
|
||||
|
||||
## Vérifications de compilation et de comportement
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack :sanctuary-test:exportDuoLaunch
|
||||
-PsanctuaryFocusedTests=base204,north208,south209,south210 -PsanctuaryAtlasOnly=true`
|
||||
réussit en 2 min 49 s : contrôles purs et 11 GameTests ciblés passés.
|
||||
Journal `build/south210-check-build.log`. La suite historique complète des
|
||||
GameTests n'est pas revendiquée.
|
||||
|
||||
Les tests couvrent les densités et relais 209/210 identiques sur trois graines,
|
||||
la dominante par massif, les quatre familles, l'irrégularité des couches, leur
|
||||
continuité spatiale, le sol de vallée indépendant de l'identité du massif et
|
||||
les sols des plateaux. Ils conservent les contrôles du Nord 208, de la palette
|
||||
historique 209 et des trois tailles publiques avec leurs anciens profils.
|
||||
Les trois JSON de densité de l'île principale sont identiques octet pour octet
|
||||
aux profils 209 ; aucune migration n'est effectuée.
|
||||
|
||||
Contrôles natifs réalisés sur de nouveaux mondes 42/0 ; résultats ci-dessous.
|
||||
|
||||
|
||||
Le premier essai 42 passe avec 1 493/1 493 colonnes de vallée éligibles couvertes
|
||||
par le sol et des plantes sèches en vallée comme sur mesa. L'échantillon initial
|
||||
0 n'observait que trois teintes dans les points d'arrivée, du relais et du canyon ;
|
||||
il ne visitait pas les quatre familles. Le contrôle natif inclut désormais une
|
||||
mesa représentative de chaque famille avant de compter les matériaux. Aucun
|
||||
changement du générateur n'est effectué pour ce correctif d'échantillonnage.
|
||||
Reconstruction ciblée : 11 GameTests passés en 17 s, journal
|
||||
`build/south210-final-build.log`. Nouveaux essais `south210-verified` (42) et
|
||||
`south210-verified0` (0), les premières traces étant conservées.
|
||||
|
||||
|
||||
## Résultats natifs finaux
|
||||
|
||||
Les deux essais passent, avec ancre réelle, paiement, refus du mauvais objet et
|
||||
du doublon, interruption à 0/58, reprise à 58 chunks FULL, neuf appuis de relais
|
||||
soutenus et signal SGA. Les serveurs sont arrêtés proprement après contrôle.
|
||||
Les hauteurs et sites de relais correspondent aux relevés 209 des mêmes graines.
|
||||
|
||||
| Relevé | Graine 42 | Graine 0 |
|
||||
| --- | --- | --- |
|
||||
| Hauteurs intérieures | 147–289 | 144–297 |
|
||||
| Colonnes avec biome attendu | 250 | 250 |
|
||||
| Blocs natifs inspectés | 29533 | 24317 |
|
||||
| Teintes observées parmi les quatre familles | 7 | 7 |
|
||||
| Sables inspectés / sans support | 50 / 0 | 4 / 0 |
|
||||
| Sol continu dans la vallée contrôlée | 1493 / 1493 | 1325 / 1325 |
|
||||
| Plantes sèches, secteur vallée | 39 | 29 |
|
||||
| Plantes sèches, secteur mesa | 45 | 18 |
|
||||
|
||||
Les relevés portent sur des échantillons, pas sur l'île entière. Les plantes
|
||||
observées sont des herbes sèches et buissons morts ; les rares cactus prévus
|
||||
n'apparaissent pas dans ces deux petits secteurs. Aucun benchmark, essai Windows
|
||||
ou jugement esthétique n'est déduit des tests serveur.
|
||||
|
||||
## Distribution et visite
|
||||
|
||||
`build/Sanctuary-beta.210.mrpack`, copié dans `~/Downloads/`. Intégrité ZIP,
|
||||
version, identité du JAR construit, trois tailles 209/210 et absence de mondes
|
||||
ou de module Test vérifiées. Minecraft 26.3 / Fabric Loader 0.19.5.
|
||||
Reçu `build/south210-mrpack-receipt.json`. SHA-256 :
|
||||
`eb91fe9f037b52f5ac4ef273d45ee2ad2ce4e85b5b24870ed627ba1672d60ce5`.
|
||||
|
||||
Visite neuve `Sanctuary-South-210-42`, copie de l'essai 42 arrêté, dans
|
||||
`build/worldgen-lab/south210-visit/small/42/client/saves/`. Vulkan, 32 chunks,
|
||||
simulation 5, créatif en vol et commandes. Même départ que la visite 209 :
|
||||
**(-167.5, 323.13, 585.5)**, regard vers **(-112, 304, 656)**.
|
||||
Arrivée **(128, 258, 664)** ; relais **(104, 241, 1248)**.
|
||||
Client ouvert à 05:02:17 CEST le 5 octobre 2026 : marqueur
|
||||
`SOUTH210_VISIT_OPEN`, monde et position attendus, backend Vulkan confirmé.
|
||||
Les anciennes visites sont conservées ; aucun canal public ni instance Prism
|
||||
n'est modifié. Les temples et ressources propres au Sud restent hors de ce lot.
|
||||
@@ -0,0 +1,109 @@
|
||||
# WG-212 — Couronnes des Badlands et complexe du désert
|
||||
|
||||
Branche `codex/south-rings-beta212`, depuis beta.211 (`7375046`).
|
||||
|
||||
## Contrat et retours
|
||||
|
||||
R013 valide la base 211, critique le grand plateau et le cœur coloré invisible.
|
||||
Rendre les couleurs concentriques visibles, ajouter du sable normal, de vrais
|
||||
arbres secs et petits arbres feuillus, relever localement les plateaux.
|
||||
R014–R016 précisent un grand complexe allongé, du butin et beaucoup de TNT.
|
||||
La recherche d'une emprise parfaitement soutenue est abandonnée explicitement :
|
||||
accepter encastrements et surplombs dans le terrain 3D, avec une architecture qui
|
||||
les accompagne. Le complexe peut se décaler du centre.
|
||||
|
||||
Diamètre Sud 1024. Nouveaux profils 212 uniquement ; aucune migration ni
|
||||
régénération des mondes antérieurs. Nord 208 et île principale conservés.
|
||||
Contrat de test : nouvelles graines 42/0, activation réelle et reprise, contrôles
|
||||
natifs, puis nouvelle visite Vulkan 32 chunks et MRpack local. Pas de publication
|
||||
publique, de déploiement Prism ou de serveur personnel.
|
||||
|
||||
## Mise en œuvre
|
||||
|
||||
- Densité 211 conservée en profondeur, et couronnes de mesa localisées au-dessus
|
||||
de roches hautes portantes. Données de cellules Voronoi 209 réutilisées pour le relief,
|
||||
sans ses gradins ni son ancienne dalle. Les fissures 3D continuent dans les ajouts.
|
||||
- Huit familles radiales légèrement déformées, visibles sur les toits et parois.
|
||||
Les bandes natives de `MaterialSystem` choisissent les nuances de chaque famille.
|
||||
- Désert central de sable normal / grès, nappes secondaires et végétation sèche.
|
||||
Acacias dénudés ramifiés et petits arbres feuillus ; placement entier et borné
|
||||
dans le chunk. Le temple réserve sa place avant décoration.
|
||||
- Complexe de grès allongé, chambres latérales, galerie, sanctuaire haut et cache
|
||||
dissimulée. Piliers courts et arches sous les parties suspendues. Six circuits
|
||||
de pièges, 108 TNT et huit coffres : fer enchanté, provisions, minerais et gemmes.
|
||||
Plan déterministe en mémoire, placement limité au chunk courant. Tous ses
|
||||
chunks sont inclus dans la préparation de l'expansion avant le signal SGA.
|
||||
|
||||
## Vérifications de code
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack :sanctuary-test:exportDuoLaunch
|
||||
-PsanctuaryFocusedTests=base204,north208,south211,south212 -PsanctuaryAtlasOnly=true`
|
||||
réussi : contrôles purs et 11 GameTests. Après optimisation du planificateur,
|
||||
restriction des arches à l'emprise construite et ajout d'un test d'amorçage réel,
|
||||
reconstruction avec `:sanctuary:runGameTest build assemblePack assembleTestPack
|
||||
:sanctuary-test:exportDuoLaunch -x :sanctuary:check`, même sélection : **12 tests
|
||||
passés**, build réussi. Traces `build/south212-check-build.log`,
|
||||
`build/south212-final-build.log`, `build/south212-release-build.log`.
|
||||
|
||||
Couverture : profils courants et historiques sans module Test, Nord accepté,
|
||||
ancien Sud, cavités 211 conservées en profondeur, ajouts localisés, vides non
|
||||
rebouchés par le relief, déterminisme entre workers, huit familles radiales,
|
||||
complexe planifié sur deux graines, communication des pièces, contenu des pièges
|
||||
et TNT réellement amorcée par une plaque via son sol. Les trois réglages de
|
||||
bruit de l'île principale sont identiques octet pour octet à ceux de 211.
|
||||
|
||||
Les profils historiques et leurs Java restent inchangés. Le test complet de
|
||||
code n'inclut pas tous les GameTests historiques ; sélection ciblée ci-dessus.
|
||||
Le premier essai natif a révélé une amplitude négligeable des ajouts : le seuil
|
||||
utilisé convenait au champ synthétique du test, mais pas aux densités du bruit
|
||||
réel. Seuil corrigé, assertion ajoutée sur le générateur natif et nouvelle
|
||||
reconstruction ciblée réussie, 12 tests (`build/south212-crowns-build.log`).
|
||||
Les mondes du premier essai sont conservés séparément ; les mesures finales
|
||||
proviennent de mondes neufs avec la bonne empreinte des sources.
|
||||
|
||||
## Essais natifs finaux et distribution
|
||||
|
||||
Mondes neufs `south212-final2` (42) et `south212-final02` (0), île de départ Small
|
||||
et Sud 1024. Ancre réelle, refus du mauvais paiement et du doublon, interruption
|
||||
0/86 puis reprise 86 chunks FULL, relais soutenu et signal SGA vérifiés. Les deux
|
||||
serveurs sont arrêtés proprement avant de copier la visite.
|
||||
|
||||
| Relevé borné | Graine 42 | Graine 0 |
|
||||
| --- | --- | --- |
|
||||
| Hauteur maximale sondée | 301 | 304 |
|
||||
| Ajout maximal théorique | 53,44 | 53,50 |
|
||||
| Colonnes sondées relevées de plus de 8 blocs | 281 | 211 |
|
||||
| Faces colorées froides adjacentes à l'air | 1423 | 1364 |
|
||||
| Sable clair / sans support | 39 / 0 | 36 / 0 |
|
||||
| Troncs / feuilles dans les colonnes sondées | 11 / 28 | 3 / 8 |
|
||||
| Coffres / piles enchantées | 8 / 8 | 8 / 8 |
|
||||
| Blocs TNT dans le complexe | 108 | 108 |
|
||||
| Origine du complexe | 64, 250, 912 | 32, 250, 976 |
|
||||
|
||||
Les huit familles sont testées dans le code ; cinq teintes froides sont
|
||||
observées exposées dans chacun des deux relevés natifs. Ces sondages ne sont
|
||||
ni un inventaire de toute l'île, ni un benchmark. Les essais simultanés ne
|
||||
permettent pas de conclure à un gain de performances. Aucun test Windows ni
|
||||
validation esthétique par le joueur n'est revendiqué.
|
||||
|
||||
Le complexe est un premier plan allongé fixe, dont le site et l'orientation
|
||||
s'adaptent à la graine. Les surplombs sont voulus ; les piliers s'arrêtent au bout
|
||||
de 24 blocs s'ils ne rencontrent pas de roche. Une recherche bornée à 96 positions
|
||||
préfère une attache au terrain sans exiger une emprise parfaitement pleine.
|
||||
L'accessibilité extérieure sur toutes les graines reste à apprécier en jeu.
|
||||
|
||||
MRpack normal exporté localement, ZIP intact, JAR exact vérifié, trois tailles
|
||||
211/212 présentes, aucun monde ni module Test embarqué. Minecraft 26.3,
|
||||
Fabric Loader 0.19.5. Copie `~/Downloads/Sanctuary-beta.212.mrpack`.
|
||||
SHA-256 : `5ba08e99fd9c656df2199f8f0f479ce89cfd442d2e8f5ef00376294b8c5f02be`.
|
||||
Reçu `build/south212-mrpack-receipt.json`. Aucun canal public ou tag publié.
|
||||
|
||||
Visite préparée `Sanctuary-South-212-42`, depuis l'essai final arrêté, sous
|
||||
`build/worldgen-lab/south212-visit2/small/42/client/saves/`. Départ en vol
|
||||
**(8.5, 326, 841.5)** face au temple **(64, 250, 912)** ; créatif, commandes,
|
||||
32 chunks, simulation 5. Arrivée **(120, 249, 680)** ; relais **(128, 251, 1224)**.
|
||||
Client ouvert à **06:10:21 CEST le 5 octobre 2026** : `SOUTH212_VISIT_OPEN`,
|
||||
position et monde attendus. Backend Vulkan et distance 32 confirmés dans les
|
||||
traces / options. Le rendu reste à apprécier par le joueur.
|
||||
|
||||
|
||||
@@ -0,0 +1,113 @@
|
||||
# WG-211 — Sud fracturé, badlands extérieurs et intérieur coloré
|
||||
|
||||
Branche `codex/south-shattered-beta211`, depuis beta.210 (`2ee53e1`).
|
||||
|
||||
## Contrat
|
||||
|
||||
R012 rejette le rendu et la forme 210 : trop uniforme, gradins visibles et
|
||||
cavités tronquées. Repartir du canyon historique et du bruit 3D, sans Voronoi,
|
||||
avec des badlands chauds dehors et des couleurs dedans. Diamètre confirmé à
|
||||
1024 blocs. Hauteur actuelle comme référence ; dessous d'épaisseur variable.
|
||||
Huit teintes internes pour ce prototype, nombre encore ouvert au jugement visuel.
|
||||
|
||||
Nouveaux profils 211 uniquement. Les sauvegardes et profils antérieurs restent
|
||||
inchangés. Contrat de test : nouvelles graines 42/0, activation réelle du Sud,
|
||||
interruption/reprise, inspection native et nouvelle visite Vulkan à 32 chunks.
|
||||
Export MRpack local ; aucun canal public, serveur personnel ou Prism modifié.
|
||||
|
||||
## Références lues
|
||||
|
||||
Code Minecraft 26.3 local : `MaterialSystem.generateBands`, `getBand`,
|
||||
`erodedBadlandsExtension` dans le JAR officiel utilisé par Loom. Les bandes
|
||||
natives seront appelées directement. Le relief flottant réutilise le bruit 3D
|
||||
natif déjà employé par les anciennes expansions, à son échelle en blocs ;
|
||||
il ne remplace pas le monde entier par le générateur Overworld.
|
||||
|
||||
La [présentation officielle des Badlands](https://www.minecraft.net/en-us/article/around-block--badlands)
|
||||
sert de référence d'ambiance ; la compatibilité est vérifiée sur le code 26.3.
|
||||
|
||||
Implémentation compilée et contrôles natifs réussis ; rendu à juger en visite.
|
||||
|
||||
## Réalisation
|
||||
|
||||
- `SouthNoise211` compile le champ flottant natif via `NorthNoise205`, sans
|
||||
les montagnes Voronoi, gradins 209, remappage des plateaux ni canyon axial
|
||||
d'`ExpansionRelief`. Des fissures en bruit 3D déformé traversent plusieurs
|
||||
secteurs ; leurs terminaisons varient aussi en hauteur. La transformation
|
||||
retire de la matière, sans reboucher les vides du champ initial.
|
||||
- Le dessous suit le toit natif avec une épaisseur théorique de 44–102 blocs,
|
||||
modulée continûment puis érodée. Les cavités et surplombs du bruit restent.
|
||||
Caches bornés par worker ; pas de simulation d'hydrologie ni de carte globale.
|
||||
- L'extérieur appelle `MaterialSystem.getBand` du Minecraft installé via un
|
||||
invoker : vraies bandes natives et leur décalage, déterministes par graine.
|
||||
L'intérieur emploie huit terracottas (rouge, orange, jaune, vert clair, cyan,
|
||||
bleu, violet, magenta), en couches inégales légèrement plissées. Leur volume
|
||||
reste sous le toit, au-dessus du dessous et à l'intérieur de la roche native.
|
||||
Les fissures en révèlent des faces ; les peaux extérieures restent chaudes.
|
||||
- Sable rouge soutenu, plages de terre stérile, herbes sèches, buissons morts et
|
||||
cactus sur les surfaces peu inclinées. Aucun ajout de structure à ce lot.
|
||||
- Les trois tailles de Sanctuary utilisent de nouveaux presets 211. Les anciens
|
||||
presets, palettes et sauvegardes sont conservés. L'île de départ conserve ses
|
||||
trois densités identiques ; le Nord continue d'utiliser 208. Expansion Sud 1024.
|
||||
|
||||
## Contrôles de code
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack :sanctuary-test:exportDuoLaunch
|
||||
-PsanctuaryFocusedTests=base204,north208,south210,south211 -PsanctuaryAtlasOnly=true`
|
||||
exécute les contrôles purs, puis 9 des 10 GameTests passent. Le test des fractures
|
||||
échantillonnait uniquement au-dessus de Y230, excluant les sommets plus bas d'un
|
||||
secteur. Le relevé a été corrigé pour examiner les 30 blocs sous chaque toit,
|
||||
sans modifier le générateur. Traces `build/south211-check-build.log` et
|
||||
`build/south211-shape-check.log` conservées.
|
||||
|
||||
Reconstruction ciblée avec `:sanctuary:runGameTest build assemblePack
|
||||
assembleTestPack :sanctuary-test:exportDuoLaunch -x :sanctuary:check`, même sélection :
|
||||
succès en 20 s, **10 GameTests passés** (`build/south211-final-build.log`).
|
||||
Couverture : profils publics/historiques, Nord accepté, ancienne palette 210,
|
||||
soustraction seule du nouveau relief, fissures réparties, ordre des workers,
|
||||
compilation native, huit teintes internes et bandes natives effectivement appelées.
|
||||
La suite historique complète des GameTests n'est pas revendiquée.
|
||||
|
||||
|
||||
## Essais natifs et distribution
|
||||
|
||||
Nouveaux mondes `south211-final` (42) et `south211-final0` (0), profil Small pour
|
||||
l'île de départ et expansion Sud 1024. Ancre réelle, refus du mauvais paiement
|
||||
et du doublon, interruption 0/58, reprise 58 chunks FULL, appuis du relais et
|
||||
signal SGA vérifiés. Les deux serveurs sont arrêtés proprement après leurs tests.
|
||||
|
||||
| Relevé | Graine 42 | Graine 0 |
|
||||
| --- | --- | --- |
|
||||
| Hauteurs de la grille intérieure | 82–254 | 80–254 |
|
||||
| Colonnes rocheuses | 1563 | 1462 |
|
||||
| Ouvertures sondées sous le toit | 583 | 728 |
|
||||
| Colonnes avec biome attendu | 300 | 300 |
|
||||
| Blocs natifs inspectés | 10350 | 9935 |
|
||||
| Blocs de cœur aux teintes froides | 1550 | 2236 |
|
||||
| Dont faces adjacentes à de l’air | 29 | 70 |
|
||||
| Blocs contrôlés dans les peaux chaudes | 3688 | 3460 |
|
||||
| Sables / sans support | 137 / 0 | 74 / 0 |
|
||||
|
||||
Les huit couleurs internes sont contrôlées dans les GameTests. Les cinq teintes
|
||||
froides distinctes de la peau vanilla sont toutes observées dans les deux
|
||||
échantillons natifs. Plantes sèches présentes et soutenues. Ces comptages ne
|
||||
couvrent pas l'île entière et ne valident ni l'esthétique ni les performances.
|
||||
Les essais simultanés ne sont pas un benchmark ; aucun test Windows n'est revendiqué.
|
||||
|
||||
`build/Sanctuary-beta.211.mrpack`, copié dans `~/Downloads/`. Archive ZIP intacte,
|
||||
version et JAR exact vérifiés, trois tailles 210/211 présentes, aucun monde ni
|
||||
module Test embarqué. Minecraft 26.3, Fabric Loader 0.19.5.
|
||||
SHA-256 :
|
||||
`1779f71893b3feb3d72f64e9a262471a58df676b715ec6831213833bd697f96c`.
|
||||
|
||||
Reçu `build/south211-mrpack-receipt.json`. Pas de publication de canal ou de tag,
|
||||
pas de déploiement Prism. Les anciennes visites sont conservées.
|
||||
|
||||
Nouvelle visite `Sanctuary-South-211-42`, copie de l'essai arrêté, sous
|
||||
`build/worldgen-lab/south211-visit/small/42/client/saves/`. Vulkan, 32 chunks,
|
||||
simulation 5, créatif en vol, commandes. Départ **(136.5, 288, 889.5)**, regard
|
||||
vers **(192, 264, 960)**. Arrivée **(128, 249, 664)** ; relais **(128, 251, 1224)**.
|
||||
Une paroi colorée échantillonnée se trouve autour de **(120, 186, 656)**.
|
||||
Client ouvert à 05:27:18 CEST le 5 octobre 2026 : `SOUTH211_VISIT_OPEN`,
|
||||
monde et position attendus, backend Vulkan confirmé. Les temples et minerais propres
|
||||
au Sud restent pour la suite.
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user