67 lines
4.8 KiB
Markdown
67 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.
|