# DEV-033 — Sanctuary Test, monde plat et intro passée Le petit module facultatif `sanctuary_test` dépend du vrai mod Sanctuary. Il permet de tester les fonctionnalités réelles sur un terrain plat natif, sans générer Sanctuary Island ni jouer les 29,5 secondes de cinématique. Client natif validé sur la graine `42`, Minecraft **26.3-pre-2**, Java 25. ## Contrat du profil de développement Le pack normal n’embarque pas ce module. Avec le module présent côté serveur, les nouveaux mondes plats peuvent ouvrir la progression Sanctuary. La protection des mondes déjà habités reste la même : aucune activation implicite sur une ancienne sauvegarde qui n’a pas de contrat Sanctuary. Le preset `sanctuary_test:flat` remplit seulement 64 couches natives : une bedrock, 60 pierres, deux terres et une herbe. Pas de structures, lacs ou décorations supplémentaires. Les dimensions Nether et End gardent leurs générateurs natifs, et ne génèrent leurs chunks qu’à leur visite. Graine libre ; aucun changement apporté au preset Sanctuary ni à sa génération. Le formulaire d’habitant et l’admission restent réels, suivis du même échange réseau d’introduction. Le serveur de test signale le mode rapide au client, qui accuse immédiatement la fin de l’intro. Pas de délai, musique ou flash. Sur un monde Sanctuary normal, l’intro complète reste active même si ce module est installé. `/sanctuary intro` permet toujours de revoir la cinématique. Le client propose le preset de test par défaut à la création d’un nouveau monde, sans réimposer ce choix après un changement volontaire ou un redimensionnement. Conserver le module pour jouer ses mondes de test. Ne pas confondre ceux-ci avec les mondes du pack normal ; aucune installation personnelle modifiée par les outils. ## Lancer une partie d’essai Importer [Sanctuary-Test-beta.033.mrpack](../build/Sanctuary-Test-beta.033.mrpack) dans un lanceur compatible, puis créer un **nouveau monde**. Le type **Sanctuary — Test rapide** est présélectionné. Valider la fiche d’habitant : l’arrivée suit directement, sans cinématique. Choisir le mode de jeu et les commandes selon le test souhaité ; les règles de progression restent réelles. Le [pack normal beta.033](../build/Sanctuary-beta.033.mrpack) contient les mêmes corrections et fonctionnalités, sans le module facultatif. Le petit JAR `mods/sanctuary-test/build/libs/sanctuary-test-beta.033.jar` nécessite Sanctuary beta.033 ; ce n’est pas une copie autonome du jeu. ## Développement `./gradlew :sanctuary-test:runClient` lance une instance isolée dans `mods/sanctuary-test/run/quick-test`. Créer un nouveau monde avec le preset de test. La fiche d’habitant n’apparaît qu’à la première arrivée, comme dans le pack normal. Les GameTests client peuvent ajouter `-PsanctuaryQuickTests=true` ; ils gardent les vrais mods et utilisent explicitement le preset plat. Leurs données restent dans les dossiers de développement ignorés. Les tests du terrain et de la cinématique complète continuent d’utiliser leurs profils habituels. ## Vérifications du profil rapide Trois parcours client natifs ont créé un monde plat de graine `42`, conservé la création d’identité et ouvert les véritables menus Sanctuary. L’essai final vérifie aussi le preset présélectionné, l’absence d’écran Intro, le générateur `FlatLevelSource` et la session serveur de progression active. La création jusqu’à l’admission a pris **7 293 ms**, **8 935 ms**, puis **8 735 ms** sur cette machine, avec validation automatisée de la fiche. Ces mesures commencent après le chargement du client ; elles ne décrivent pas le démarrage du lanceur, la saisie humaine ou une garantie de durée sur d’autres machines. Commande de contrôle client : ```sh ./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true \ -PsanctuaryMenusClientTests=true -PsanctuaryQuickTests=true \ -PsanctuaryFocusedTests=menus ``` Journaux : `build/menus033-quick-client-final.log` et `build/menus033-quick-client-history.log` (avec le bouton History final). Le parcours normal conserve le preset Sanctuary et sa séquence d’introduction (`build/menus033-client2.log`). Le monde plat facilite les essais d’interfaces et de mécaniques ; les essais d’îles et d’expansions doivent conserver leur générateur Sanctuary. ## Distribution vérifiée Le module mesure **21 504 octets** ; il est la seule différence de contenu entre les deux packs (outre le nom du manifeste). Le JAR Sanctuary est identique, ainsi que JEI et Demeure. Archives, métadonnées et classes compilées vérifiées ; reçu : `build/quick033-artifact.json`. Aucun serveur ni installation personnelle n’a été mis à jour. La distribution normale n’embarque pas `sanctuary_test`.