LifePlay-Revival/Docs/Migration/etat/REL/MAPDL1/MAPDL1-S7-FICHE.md
2026-10-22 21:10:39 +02:00

6.5 KiB

Fiche MAPDL1-S7-IMPL — Niveau N3 — Modèle prévu sonnet — Agent lp-impl — Skills sk-protocol, lp-city, lp-lot, lp-commandlets

MAPDL1-S7 : données ODbL et LICENCE.txt dans la chaîne des anciennes cartes (SPEC-07) (fiche préparée le 2026-10-22, à lancer au signal de Big Boss)

1. Objectif

Les packs repris d'une ancienne carte doivent livrer, en version 1.0.2 :

  • Module\ODbL\<Ville>.geojson : les données de l'ancienne carte, en GeoJSON en coordonnées locales ;
  • Module\ODbL\ODbL.txt ;
  • Module\LICENCE.txt.

Ces fichiers sont produits par la chaîne existante, sans geste à la main. L'outil prépare aussi la recette 1.0.2 du lot 2 (NYC, Mumbai, Tokyo, Bangalore), produit demain.

2. Décisions citées

  • Utilisateur, cité mot pour mot par Big Boss : « approuvés ». C'est sa réponse à SPEC-07 § 7 (GeoJSON en coordonnées locales ; ODbL.txt au texte proposé ; lot 2 directement en 1.0.2) et au texte de licence des packs.
  • Texte de LICENCE.txt, cité tel quel, à recopier à l'identique : « Free pack for LifePlay. Personal use. You may not sell this pack or charge for access to it. You may share it unmodified and free of charge. Third-party content keeps its own licence (OpenStreetMap data: ODbL 1.0; models: see CREDITS.txt). »
  • Spécification : MAPDL1-SPEC-07.md (§ 2 à 4). Elle fait foi pour le format et le texte d'ODbL.txt.

3. Périmètre : fichiers, et seulement ceux-là

Tous sont des outils locaux de Tools\, liés physiquement à D:\Game\LifePlay-Sandbox-5.8\Tools\.

Fichier MD5 avant (2026-10-22)
Tools\LireCarteUE4.py 6BA579413D32AC23128C28980EF0308F
Tools\RepriseCarte.ps1 2042423AE3F52D1E928E831D021F2077
Tools\RecetteCarte.ps1 DF48FF7495741B376DEB2050853DD732

Hors périmètre :

  • ProduirePack.ps1 (STM1) : son étape poser suffit (l. 340-366) ;
  • Source\, Content\, l'index et la fenêtre du jeu : ils passent dans l'IMPL SPEC-06, pour COM32.

4. Travail

  1. LireCarteUE4.py : deux options, --geojson <fichier> et --odbl <dossier>, à partir des dictionnaires déjà décodés par --totaux (l. 228-254).
    • Format de SPEC-07 § 2 :
      • FeatureCollection, avec les membres lifeplay_crs et lifeplay_source ;
      • routes en LineString ; bâtiments, parcs et eaux en Polygon à anneau fermé ;
      • coordonnées en mètres, arrondies au centimètre ;
      • valeurs vides omises ;
      • UTF-8 sans BOM, fins de ligne LF, ensure_ascii=False.
    • --odbl écrit ODbL.txt d'après le gabarit de SPEC-07 § 3, en ASCII, avec des fins de ligne CRLF, comme CREDITS.txt.
    • Ligne de sortie : GEOJSON routes=<n> batiments=<n> parcs=<n> eaux=<n> octets=<n>. Les comptes doivent égaler la ligne TOTAUX ; sinon, code 1.
  2. RepriseCarte.ps1 : nouvelle étape -Etape ODbL, sans moteur.
    • Elle lit l'ancienne carte du dossier de travail de Lire (D:\Game\LifePlay_Data\Mega-essai\MAPDL1-<ville>\).
    • Elle écrit ODbL\<Ville>.geojson et ODbL\ODbL.txt dans ce dossier de travail, et nulle part dans le pack.
    • Elle imprime le SHA-256 des deux fichiers, pour la recette.
    • Si le dossier ODbL\ existe déjà, elle refuse.
    • Elle accepte -ABlanc.
  3. RecetteCarte.ps1 : pour la version 1.0.2 (paramètre de version existant ou ajouté), la recette reçoit, après version et avant demonter, trois étapes poser et une étape remplacer :
    • poser de ${Monte}\Module\ODbL\<Ville>.geojson et de ${Monte}\Module\ODbL\ODbL.txt, depuis le dossier de travail, avec le sha256 de l'étape 2 ;
    • poser de ${Monte}\Module\LICENCE.txt par texte (le texte du § 2 ; poser écrit en CRLF) ;
    • remplacer dans CREDITS.txt : ajout de la ligne From version 1.0.2: the map data is included in ODbL/<Ville>.geojson (ODbL 1.0, see ODbL/ODbL.txt); licence of this pack: LICENCE.txt. Même forme que la ligne de la 1.0.1 ; dans le même appel pour les packs qui reçoivent aussi la 3D classique ;
    • contrôles de l'archive :
      • fichiers installes passe de 6 à 9 ;
      • fourchette d'octets = fourchette actuelle + l'apport du GeoJSON compressé, avec un taux mesuré à l'étape 5 (et non deviné) ;
    • les packs encore en 1.0.0 (lot 2) reçoivent aussi l'étape classique de la 1.0.1 : la 1.0.2 contient la 3D classique et l'ODbL.
  4. Instantané avant toute écriture : Snapshot.ps1 -Lot MAPDL1-S7 -Path Tools\LireCarteUE4.py, Tools\RepriseCarte.ps1, Tools\RecetteCarte.ps1. Écriture EN PLACE : l'outil Edit et l'outil Write rompent le lien physique avec l'addon.
    • Rédiger le nouveau fichier dans le scratchpad.
    • Le recopier par [IO.File]::WriteAllBytes(<fichier de Tools>, [IO.File]::ReadAllBytes(<scratchpad>)), qui tronque le même fichier sans le remplacer.
    • Relire fsutil hardlink list <fichier> : 2 liens attendus. Relire aussi le MD5 côté jeu et côté addon : ils doivent être égaux.
  5. Essais, sans jeton, dans des dossiers de travail neufs : jamais dans ModSources\, ni dans Mods\.
    • LireCarteUE4.py --totaux --geojson --odbl sur Tokyo (la plus grande : 18 340 routes, 129 240 bâtiments) et sur Manila.
    • Relever pour chacune : comptes GEOJSON contre TOTAUX ; taille en clair ; taille dans un zip, mesurée avec 7-Zip ou System.IO.Compression dans le scratchpad, d'où le taux de compression ; validité JSON (python -I -c interdit : un script ponctuel dans Saved\MAPDL1\ ou json.load dans l'outil même).
    • RepriseCarte.ps1 -Etape ODbL -ABlanc sur une ville, puis RecetteCarte.ps1 à blanc pour NYC 1.0.2. Relire la recette produite.

5. Critères de fin

  • Les 3 outils sont écrits en place : liens gardés, ASCII, LF ; MD5 relevés avant et après, des deux côtés.
  • Tokyo et Manila : comptes GEOJSON = TOTAUX ; JSON valide ; tailles et taux de compression mesurés.
  • La recette NYC 1.0.2 est produite à blanc, avec les étapes du § 4.3, et relue.
  • Rien n'est écrit dans ModSources\, Mods\, Source\ ni Content\.

6. Interdits

Les règles de sk-protocol § 2 s'appliquent : aucune commande git qui écrit ; aucune suppression ; aucun jeton UE (ni cuisson, ni commandlet) ; aucun réseau.

7. Livrable

D:\Game\LifePlay-master 5.8\Docs\Migration\etat\REL\MAPDL1\MAPDL1-S7-IMPL.md (en-tête de fiche, MD5, sorties brutes des essais, recette à blanc, mesures, fichiers). PubCheck à 0.

8. Suite

Lot 2 en 1.0.2 (demain) : Big Boss lance ProduireCartes.ps1 avec lp-builder en haiku, sous jeton. Les 10 villes déjà produites passent ensuite en 1.0.2, au rythme des lots.

9. Budget

40 tours.