Charge le plugin via AdditionalPluginDirectories, conserve ShowCouple et les commandlets anim côté jeu, et documente les lots S0–S8 (CHG-212 à CHG-220). Co-authored-by: Cursor <cursoragent@cursor.com>
68 lines
3.2 KiB
Markdown
68 lines
3.2 KiB
Markdown
# S3-IMPL-L — Purge sandbox côté jeu + branchement plugin LPSandbox
|
||
|
||
- **Date :** 2026-10-06
|
||
- **Fiche :** S3-T3 | **Agent :** A-IMPL-L | **Modèle :** composer-2.5-fast (M0)
|
||
- **Amont :** `S3/S3-IMPL-H.md` (transfert addon S3-T2)
|
||
- **Statut :** implémenté — compilation UBT non relancée dans cette fiche
|
||
|
||
---
|
||
|
||
## 1. Lanceurs sandbox (`Tools/debug/*_sandbox.bat`)
|
||
|
||
| Fichier | Changement |
|
||
|---|---|
|
||
| `LifePlay_pair_sandbox.bat` | `?game=/Script/LPSandbox.LPPairSandboxGameMode` |
|
||
| `LifePlay_interaction_sandbox.bat` | idem |
|
||
| `LifePlay_measure_sandbox.bat` | idem |
|
||
|
||
Entry map (`/Engine/Maps/Entry`), stub `GameInstanceClass=/Script/Engine.GameInstance` et écriture `Saved/sandbox_mode.txt` (Mesure) inchangés.
|
||
|
||
`Tools/BuildMod.ps1 -Target sandbox -Open` délègue toujours à `LifePlay_interaction_sandbox.bat` : aucune modification du script PowerShell.
|
||
|
||
## 2. Jonctions (temporaires, avant submodule T4)
|
||
|
||
| Jonction | Cible | Résultat |
|
||
|---|---|---|
|
||
| `D:\Game\LifePlay-Sandbox\Content` → `D:\Game\LifePlay-master 5.5\Content` | **créée** | addon lit le Content du jeu |
|
||
| `d:\Game\LifePlay-master 5.5\Plugins\LPSandbox` → `D:\Game\LifePlay-Sandbox\Plugins\LPSandbox` | **créée** | jeu charge le plugin depuis l’addon |
|
||
|
||
Si une jonction existait déjà au chemin, `mklink /J` échoue (fichier/répertoire existant) — documenter et ne pas écraser.
|
||
|
||
## 3. Fichiers supprimés du repo jeu
|
||
|
||
- `Source/LifePlay/LPPairSandbox.h` / `.cpp`
|
||
- `Source/LifePlay/LPInteractionSandbox.h` / `.cpp`
|
||
- `Source/LifePlay/LPSandboxConfig.h` / `.cpp`
|
||
- `Source/LPAnimMeasure/` (module entier, 11 fichiers)
|
||
|
||
**Conservé :** `Config/LPSandbox.ini` (contrat S1, lu par le plugin sur le projet hôte).
|
||
|
||
## 4. `LifePlay.uproject`
|
||
|
||
- Retiré : module `LPAnimMeasure` dans `Modules[]`.
|
||
- Ajouté : plugin `{ "Name": "LPSandbox", "Enabled": true }` (chemin physique = jonction §2 ; T4 = submodule).
|
||
|
||
## 5. Cibles et modules
|
||
|
||
| Fichier | Action |
|
||
|---|---|
|
||
| `Source/LifePlay.Target.cs` | `ExtraModuleNames` : `LifePlay` seul |
|
||
| `Source/LifePlayEditor.Target.cs` | retrait de `LPAnimMeasure` |
|
||
| `Source/LifePlay/LifePlay.Build.cs` | **`PublicDependencyModuleNames.Add("LPAnimMeasure")` conservé** (module fourni par le plugin) |
|
||
| `Source/LifePlayEditorTools/LifePlayEditorTools.Build.cs` | inchangé (`LPAnimMeasure` via plugin) |
|
||
|
||
## 6. Injection `SetUALRoot`
|
||
|
||
- **`Source/LifePlay/LifePlay.cpp`** : retour à `FDefaultGameModuleImpl` (plus d’appel `SetUALRoot` / `LPSandboxConfig`).
|
||
- **`Plugins/LPSandbox/Source/LPSandbox/LPSandbox.cpp`** (addon) : `FLPSandboxModule::StartupModule()` appelle `LPAnimRedirect::SetUALRoot(FLPSandboxConfig::Get().QuaterniusUALRoot)` — commit addon séparé.
|
||
|
||
## 7. Code jeu laissé tel quel (volontaire)
|
||
|
||
- `LPDirectControlSubsystem.cpp` : détection sandbox par `GetName().Contains("LPPairSandbox")` — nom de classe inchangé, compatible module `LPSandbox`.
|
||
- Pas de submodule git (lot T4).
|
||
|
||
## 8. Prochaine validation recommandée
|
||
|
||
1. `Build.bat LifePlayEditor Win64 Development` (jeu + plugin jonction).
|
||
2. `Tools/debug/LifePlay_pair_sandbox.bat` — chambre `work___vin01`, menu Pair.
|
||
3. Vérifier `LogLPAnimMeasure` / clips sous `/Game/Quaternius/UAL` (ini chargée).
|