69 lines
3.2 KiB
Markdown
69 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).
|