LifePlay-Revival/Docs/Migration/etat/ST/STE/STE-H5c-IMPL.md
edujiro5972 8084622450 LifePlay UE 5.8 : état de développement au 2026-10-19
Tickets : REP1-T4

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 22:57:42 +02:00

66 lines
4.8 KiB
Markdown

# STE-H5c-IMPL : gardes O1 (Room), O3 (clearScenePersons) et G12 (AddVariable) — 2026-10-10
Orchestrateur LOT STE ; BUILD-GO étapes 1-2 de Big Boss ; décisions de l'utilisateur : Q-H5c-2 = « O1 + O3, ciblées » (après C1,
`STE-J4.md` § 8), G12 = STE-H3c (Q1 = A, Q-H3c-2 = « seulement si un reste »). SPEC : `STE-H5c-DIAG.md` (tableau des options,
O1 / O3), `STE-H3c-SPEC.md` § 2.2 bis (G12).
## 1. État de départ et instantanés (éditeur fermé)
- GI = M1 `4773054E738A0AB166ED1971FD4FA889` (F-a, non commité) ; Room = `D051CE9465FCEB8021F3030BF569F626` (5 723 964 o, propre,
dernier commit 17bf1c7) ; 0 processus.
- `Snapshot.ps1 -Lot STE-H5c` : `D:\Game\LifePlay_Backup_5.5\STE-H5c\Content\BPs\GI.uasset` (4773054E) et `...\Room.uasset`
(D051CE94) ; `Snapshot.ps1 -Lot STE-H3c` : `D:\Game\LifePlay_Backup_5.5\STE-H3c\Content\BPs\GI.uasset` (4773054E). MD5 des
copies contrôlés.
## 2. Écritures MCP (éditeur headless lancé 23:12:28, un appel à la fois)
Journal `scratchpad\editor-STE-H5c.log` (non suivi). Avant chaque `save_assets`, contrôle : seul l'éditeur de cette session tourne.
### O1 — `Room` EventGraph
- Relus : `CallFunction_235` (`Scène|GetSpecific`, `then` → `CallFunction_199.execute`, `PersonToReturn` sortie 1 vers 12
entrées) ; `CallFunction_199` (`Utilitaires|Carte|Add`, `execute` ← `_235.then`) ; `Knot_1` (reroute, entrées ←
`IfThenElse_44.then`, `_40.else`, `_41.else`, `_43.else`, `CallFunction_255.then` ; sortie → `MacroInstance_26`) : `Knot_1` est
le chemin de saut existant (le `else` de `IfThenElse_43`, juste avant `GetSpecific`, y mène déjà).
- Créés : `K2Node_CallFunction_62` (`Utilitaires|IsValid`, fonction pure, `Object` 0 → `ReturnValue` 0) et
`K2Node_IfThenElse_73` (Branche).
- `break_pins` `_235.then` / `_199.execute` ; `_235.then` → `_73.execute` ; `_235.PersonToReturn` → `_62.Object` ;
`_62.ReturnValue` → `_73.Condition` ; `_73.then` → `_199.execute` ; `_73.else` → `Knot_1.InputPin`. Relu conforme.
- Compilation (avertissements en erreurs) sans erreur ni avertissement (journal 21:14:07 UTC) ; `save_assets` true (21:14:15).
### O3 — `GI.clearScenePersons`
- Relus : `MacroInstance_0` (`ForEachLoop`, `LoopBody` → `CallFunction_13.execute` seul, `Array Element` sortie 1 vers 13 entrées) ;
`CallFunction_13` (`clearDaily`, `then` → `IfThenElse_4`).
- Créés : `K2Node_CallFunction_18` (`Utilitaires|IsValid`) et `K2Node_IfThenElse_8` (Branche).
- `break_pins` `MacroInstance_0.LoopBody` / `_13.execute` ; `LoopBody` → `_8.execute` ; `Array Element` → `_18.Object` ;
`_18.ReturnValue` → `_8.Condition` ; `_8.then` → `_13.execute` ; `_8.else` vide (élément nul : tour suivant de la boucle).
Relu conforme.
### G12 — `GI.AddVariable`
- Relus : `IfThenElse_3951` (`then` → `MacroInstance_1960.exec` seul), `MacroInstance_1960` (`Utilities|IsValid`, **`exec` = entrée 0**,
et non 1 comme l'écrit le § 2.2 bis étape 4), `CallArrayFunction_4346` (4 liens entrants), `BreakStruct_1527`
(`Person_24_…` = sortie 6, → `GetArrayItem_2453.Array`).
- Créés : `K2Node_CallArrayFunction_1` (`Utilitaires|Tableau|IsValidIndex`, `TargetArray` 0, `IndexToTest` 1 = `0` relu,
`ReturnValue` 0) et `K2Node_IfThenElse_0` (Branche).
- `break_pins` `_3951.then` / `_1960.exec` ; `_3951.then` → `_0.execute` ; `BreakStruct_1527.Person_24_…` (6) → `_1.TargetArray` ;
`_1.ReturnValue` → `_0.Condition` ; `_0.then` → `_1960.exec` ; `_0.else` → `_4346.execute` (5e lien entrant). Relu conforme
(« Après » du § 2.2 bis).
- Compilation de GI (avertissements en erreurs) sans erreur ni avertissement (21:15:28) ; `save_assets` true (21:15:43).
Éditeur fermé (Stop-Process 28948), `UeState.ps1` = 0.
## 3. Résultat
| Fichier | Avant | Après |
|---|---|---|
| `Content/BPs/GI.uasset` | M1 `4773054E…` (52 545 296 o) | **M3 `16394D438788E986AC23FAEB427402B8` (52 553 784 o)** |
| `Content/BPs/Room.uasset` | `D051CE94…` (5 723 964 o) | **`E8F58B2A4A79DA0D62D8FACC18411CE8` (5 727 427 o)** |
Volume : 6 nœuds (O1 2, O3 2, G12 2), 3 `break_pins`, 14 `connect_pins` (O1 5, O3 4, G12 5 ; « 15 » corrigé après la VAL, écart E1), 0 `set_pin_value`. Nœuds attendus aux dumps de VAL :
Room EventGraph 1008 → 1010, `clearScenePersons` 56 → 58, `AddVariable` 49 → 51 ; GI EventGraph inchangé (6234).
Écart à la SPEC : O1 et O3 posés en **fonction pure `IsValid` + Branche** (2 nœuds chacun, modèle de G-H2, CHG-315), au lieu de
la macro `IsValid` (1 nœud) du DIAG : `find_node_types` « IsValid » donne `Utilitaires|IsValid` = fonction pure ; même
sémantique (valide → chemin d'origine, nul → saut / tour suivant).
Repli : `.\Tools\Restore.ps1 -Lot STE-H5c` éditeur fermé (GI = M1, Room = D051CE94) ; G12 seule : `-Lot STE-H3c` (GI = M1, défait
aussi O3) ; tout STE-H5b/H5c/H3c : `-Lot STE-H5b` (GI = B8B97C46) puis `-Lot STE-H5c` pour Room.