LifePlay-Revival/Docs/Migration/etat/sandbox/S3/S3-IMPL-L.md
edujiro5972 04b053554f Sandbox addon : brancher le jeu sur LifePlay-Sandbox (plugin LPSandbox).
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>
2026-10-06 21:10:53 +02:00

68 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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).