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.txtau 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 étapeposersuffit (l. 340-366) ;Source\,Content\, l'index et la fenêtre du jeu : ils passent dans l'IMPL SPEC-06, pour COM32.
4. Travail
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 membreslifeplay_crsetlifeplay_source;- routes en
LineString; bâtiments, parcs et eaux enPolygonà 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écritODbL.txtd'après le gabarit de SPEC-07 § 3, en ASCII, avec des fins de ligne CRLF, commeCREDITS.txt.- Ligne de sortie :
GEOJSON routes=<n> batiments=<n> parcs=<n> eaux=<n> octets=<n>. Les comptes doivent égaler la ligneTOTAUX; sinon, code 1.
- Format de SPEC-07 § 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>.geojsonetODbL\ODbL.txtdans 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.
- Elle lit l'ancienne carte du dossier de travail de
RecetteCarte.ps1: pour la version 1.0.2 (paramètre de version existant ou ajouté), la recette reçoit, aprèsversionet avantdemonter, trois étapesposeret une étaperemplacer:poserde${Monte}\Module\ODbL\<Ville>.geojsonet de${Monte}\Module\ODbL\ODbL.txt, depuis le dossier de travail, avec lesha256de l'étape 2 ;poserde${Monte}\Module\LICENCE.txtpartexte(le texte du § 2 ;poserécrit en CRLF) ;remplacerdansCREDITS.txt: ajout de la ligneFrom 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 installespasse 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
classiquede la 1.0.1 : la 1.0.2 contient la 3D classique et l'ODbL.
- 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.
- Essais, sans jeton, dans des dossiers de travail neufs : jamais dans
ModSources\, ni dansMods\.LireCarteUE4.py --totaux --geojson --odblsur Tokyo (la plus grande : 18 340 routes, 129 240 bâtiments) et sur Manila.- Relever pour chacune : comptes
GEOJSONcontreTOTAUX; taille en clair ; taille dans un zip, mesurée avec 7-Zip ouSystem.IO.Compressiondans le scratchpad, d'où le taux de compression ; validité JSON (python -I -cinterdit : un script ponctuel dansSaved\MAPDL1\oujson.loaddans l'outil même). RepriseCarte.ps1 -Etape ODbL -ABlancsur une ville, puisRecetteCarte.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\niContent\.
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.