Files
koka 01a82c3c93
Verification 26.2 / check (pull_request) Canceled after 0s
merge: align Alpha Indev release with alpha.219
2026-08-30 04:17:04 +02:00

3.9 KiB
Raw Permalink Blame History

Portails Sanctuary — contrat v2

I Like To Move It possède le transport et les liens. Sanctuary possède les identifiants et les générateurs. Le schéma v2 ajoute une destination dépendant de la topologie enregistrée du monde ; les routes fixes v1 restent lisibles.

Définition de route

Une route est un JSON sous data/<namespace>/sanctuary_portal/<id>.json :

{
  "schema_version": 2,
  "source_dimension": "minecraft:overworld",
  "destination_dimension": "sanctuary:alpha",
  "destination_resolver": "fixed",
  "frame_blocks": ["minecraft:mossy_cobblestone"],
  "preferred_frame_block": "minecraft:mossy_cobblestone",
  "activation_items": ["minecraft:flint_and_steel"],
  "coordinate_scale": 1.0,
  "arrival": { "type": "surface" },
  "priority": 100
}
  • frame_blocks accepte plusieurs blocs, ce qui permet les cadres mixtes.
  • preferred_frame_block sert uniquement lors de la création de la moitié distante.
  • activation_items permet d'ajouter d'autres activateurs sans changer Java.
  • coordinate_scale transforme X/Z vers la destination et son inverse est appliqué au retour.
  • destination_resolver vaut fixed par défaut. overworld_pair est réservé à la paire principale et résout sa destination depuis sanctuary:world_profile.
  • arrival.type vaut surface, matched_y ou fixed_y; ce dernier exige arrival.y.
  • priority départage deux routes acceptant le même cadre.

Les neuf routes historiques restent déclarées pour la compatibilité. Depuis l'alpha.219, trois routes sont actives : terre vers la paire Sanctuary/Overworld, pierre vers sanctuary:caverns et cobblestone moussue vers sanctuary:alpha. Sheep Land, Skeleton Waste, Lost City, Painted Canyons, Breaker Sea et Laputa restent réservées mais ne sont pas chargeables.

La route en terre est la seule route v2 dynamique. Dans le profil Sanctuary, elle relie minecraft:overworld à sanctuary:overworld. Dans le profil Overworld, elle relie minecraft:overworld à sanctuary:main. Le choix appartient à la sauvegarde, jamais à une préférence cliente.

Persistance et cycle de vie

iliketomoveit:portal_links est un SavedData global de version 1, stocké avec le monde principal. Chaque moitié conserve un UUID, sa route, sa dimension, l'origine et l'axe du cadre, son état actif et l'UUID de sa moitié liée.

  1. L'allumage réactive l'identité déjà connue au même cadre ou crée un endpoint.
  2. La première traversée réutilise une moitié libre, sinon elle crée une arrivée sûre puis lie les deux UUID.
  3. La destruction d'une moitié la désactive et délie l'autre.
  4. Reconstruire le même cadre réactive son endpoint; la traversée suivante régénère un lien.
  5. Une destination absente refuse la traversée proprement. Elle ne crée aucune dimension et n'endommage pas la sauvegarde.

La route Alpha exige un cadre extérieur de 4 × 5 avec un intérieur vide de 2 × 3, entièrement en cobblestone moussue, puis un briquet. Le serveur valide le cadre, l'activateur et la présence de sanctuary:alpha avant de l'allumer. Sa première moitié distante utilise l'arrivée sûre calculée par l'API publique de Sanctuary, hors de la maison Indev ; le client ne choisit ni la destination ni les coordonnées. L'Atlas découvre le bloc de portail actif comme les autres points d'intérêt locaux.

Le bloc intérieur actif est iliketomoveit:portal. Les neuf anciens blocs portals:*_portal restent enregistrés comme compatibilité de lecture; une première utilisation les rattache au nouvel index.

État des générateurs

Le générateur principal Sanctuary et sa paire Overworld sont actifs depuis l'alpha.71. Caverns et Alpha sont également générés ; Alpha est le monde Indev fini 128 × 128 × 64 possédé par Sanctuary. Sheep Land, Skeleton Waste, Lost City, Painted Canyons, Breaker Sea et Laputa restent réservés mais non générés. Une traversée vers une destination absente est refusée proprement dès l'allumage.