Files
sanctuary-beta/docs/gems-beta126.md
2026-09-17 17:11:59 +02:00

8.5 KiB
Raw Permalink Blame History

GEM-01 — Gemmes, argile et découvertes — beta.126

Contrat du 17 septembre 2026, branche codex/gems-beta126, Minecraft 26.3.

Deux gemmes natives complètent l'émeraude : sanctuary:ruby et sanctuary:sapphire. Chaque famille comprend un bloc de stockage, un minerai ordinaire et un minerai des abîmes. Les huit PNG du créateur sont copiés à l'identique ; leurs empreintes figurent dans tools/gems-textures-beta126.json. Les noms des fichiers français saphir sont associés aux identifiants anglais stables sapphire, sans modifier les pixels. Les deux items utilisent les fichiers de remplacement Desktop/ruby.png et Desktop/saphir.png fournis en fin de livraison.

L'ordre créatif est émeraude, rubis, saphir : ingrédients, blocs de stockage, minerais ordinaires et minerais des abîmes dans leurs onglets natifs respectifs. Minage à la pioche de fer ou mieux, résistance et expérience comme l'émeraude, Fortune, Toucher de soie, cuisson/four à fusion et conversion 9 gemmes ↔ 1 bloc. Les blocs peuvent former un socle de balise et les gemmes servir de paiement. Les recettes rejoignent la collection actuelle de l'émeraude, sans ajouter de transactions de villageois. Libellés français et anglais, tags communs c:.

Génération procédurale et contrat de compatibilité

Profil initial gemmes 1 / beta.126 : quatre tentatives par chunk et par gemme, filons natifs de taille 3, hauteur uniforme Y0256, probabilité de rejet au contact de l'air de 0,25. Ces nombres sont un réglage initial à équilibrer lors de la future refonte ; aucun quota de gemmes par chunk n'est garanti. Les variantes ordinaires remplacent les roches du tag vanilla stone_ore_replaceables, les variantes des abîmes celles de deepslate_ore_replaceables.

Les fichiers worldgen/feature/ore_<gemme>.json, worldgen/placed_feature/ore_<gemme>.json et les tags de biomes has_ore/<gemme> séparent les cibles, la forme, la fréquence, la hauteur et les régions. Un datapack peut les remplacer sans recompiler le mod. Le code réutilise OreFeature et le hasard natif issu de la graine ; il limite ces filons aux mondes utilisant SanctuaryChunkGenerator. Les biomes vanilla partagés avec Sanctuary restent compatibles sans ajouter les gemmes aux mondes vanilla, au Nether ou à l'End.

Cette évolution additive est autorisée pour les nouveaux chunks uniquement. Aucun remplissage rétrospectif, aucune régénération, aucun remplacement de chunk sauvegardé ni activation d'expansion. Les codecs du relief, les dimensions et le format des sauvegardes restent inchangés. Les filons suivent les protections existantes de la décoration native. Les anciens profils expérimentaux précédant le générateur Sanctuary unifié ne sont pas étendus.

Argile spéciale dans le Clay Workshop

Le bloc d'argile vanilla conserve les couleurs échantillonnées sur le modèle original, animal découvert ou import GLB. Les argiles colorées et les autres blocs continuent à transférer leur palette de texture. Une même règle est appliquée à l'aperçu client et au résultat serveur. Le changement de matériau invalide le résultat même si les deux palettes sont identiques. Le texte de l'atelier explique l'exception en français et en anglais.

Une sculpture coûte toujours un bloc ; aucune recette, découverte, donnée de sculpture déjà fabriquée ni règle de placement n'est modifiée.

Commande de découverte commune

/sanctuary discovery all découvre tous les blocs, objets et espèces enregistrés. Les variantes blocks all, items all et mobs all ciblent une catégorie ; block <identifiant>, item <identifiant> et mob <identifiant> ciblent une entrée avec la complétion native. Un sélecteur de joueurs en fin de commande est facultatif ; sans cible, elle s'applique au joueur qui l'exécute.

Exemples :

/sanctuary discovery all
/sanctuary discovery mobs all
/sanctuary discovery block minecraft:stone
/sanctuary discovery item minecraft:diamond
/sanctuary discovery mob minecraft:cow
/sanctuary discovery all @a

La permission suit « Autoriser les commandes » en solo et les droits opérateur sur serveur. La console doit préciser la cible. Les identifiants invalides, l'air et les types d'entités sans espèce découvrable sont refusés.

Les blocs passent par le registre de découvertes et son événement existant ; les objets passent par RecipeService.discover. Les collections et recettes sont ensuite recalculées normalement. Les espèces rejoignent seen_mobs, la même donnée que l'observation naturelle, consommée par les familiers, le Métabli et le Clay Workshop. Il n'existe aucun drapeau de déblocage parallèle. Les catalogues déjà ouverts sont à rouvrir après la commande.

La commande conserve les quantités possédées et les compteurs de combat, minage, pose et fabrication. Elle ne donne pas d'objets, n'achète pas les skills et n'attribue pas d'advancements. Les recettes réservées aux opérateurs gardent leurs règles. Les historiques personnels sont enrichis sans changer leur schéma ; la commande refuse les données illisibles plutôt que les remplacer.

Vérifications

Client natif Minecraft 26.3 / Java 25, Gems126ClientChecks, réussi en 1 min 08 s. Les mondes sont jetables, sans sauvegarde personnelle ouverte :

  • Les huit items et six blocs sont présents, avec les huit textures exactes. Quatre groupes créatifs respectent émeraude → rubis → saphir, sans doublons.
  • Douze recettes natives, découverte du bloc de stockage, outil fer minimum, Fortune III, Toucher de soie et balises passent les contrôles serveur.
  • Graine 126, profil gemmes 1, 81 chunks autour de l'origine : 7 rubis dans la pierre et 8 dans la roche des abîmes ; 15 saphirs dans la pierre et 10 dans la roche des abîmes. La génération est refusée dans le monde plat vanilla. Les minerais persistent à la reconnexion, et un minerai retiré ne réapparaît pas.
  • L'argile conserve exactement les couleurs des voxels d'une vache et d'un GLB texturé. Bois et argile colorée transfèrent toujours leur palette. Le retour à l'argile, l'égalité aperçu/résultat et le coût d'un bloc en survie sont vérifiés.
  • La commande native respecte « Autoriser les commandes », accepte une cible et la console, refuse les identifiants invalides et permet une espèce, un bloc, un objet, toutes les espèces ou tout le contenu. Les recettes liées sont recalculées. La répétition est idempotente et les découvertes survivent à la reconnexion sans inventer de compteurs de combat ou de possession.

Logs et captures dans build/gems126-client.log et mods/sanctuary/build/run/clientGameTest/screenshots/. Le GameTest dédié reste exclu conformément au refus antérieur de son EULA. Le build complet et les archives sont vérifiés séparément avant publication.

Build final ./gradlew check build assemblePack assembleTestPack -x :sanctuary:runGameTest réussi en 2 min 10 s, 126 tâches. Les contrôles natifs de gameplay précèdent uniquement le remplacement final des deux PNG d'items ; les huit fichiers livrés sont vérifiés à l'octet près contre les sources, tous en 16 × 16. Les JAR de sources correspondent aux sources courantes. L'audit entre les binaires beta.125 et beta.126 ne trouve que les 112 entrées de production prévues. Les archives normal/Test contiennent le même mod et le template reproduit exactement ses ressources exportables.

Artefact SHA-256
Sanctuary-beta.126.mrpack 716221ce24549781ab91f5437ad2310497b198a4b61c43c40c67a27984365ae5
Sanctuary-Test-beta.126.mrpack bbf22d7dd72e6746538b4ec28686f699225d4a59372304e5db42140a80e88bd1
sanctuary-beta.126.jar 85dbe1b41d98751029bb62e87d259522f8609758896c797b1e02fa7656ec0342

Publication et synchronisation

Release beta.126 publiée depuis 99860af312a1737d938812f3515fcc4acb4291b2 ; artefacts immuables retéléchargés et vérifiés. Canal packwiz : 31749b95d21ce5bced6b9e5759499da6f8a67e6e. Deux synchronisations isolées, puis deux synchronisations de l'instance existante Sanctuary Beta ont réussi. Un seul JAR Sanctuary beta.126, correspondant à l'empreinte ci-dessus. Les 923 fichiers personnels suivis sont conservés, sauvegardes restées fermées ; copie préalable dans sanctuary-backups/before-beta.126/.

Packs normal/Test et template copiés et vérifiés dans sanctuary-beta/build/. Reçus locaux : build/gems126-artifact.json, build/gems126-isolated.json, build/gems126-prism.json et build/gems126-publication.log.