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

3.2 KiB
Raw Blame History

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