H3d : metadonnees des mods, avertissement de version, paquet lpr_hair_pocolov (12 coiffures)
- LPModInfoSubsystem : metadonnees des .lpmod ; fenetre d'avertissement quand un mod actif
a ete construit pour une autre version du jeu (Slate, sans Blueprint).
- NewMod/BuildMod : MODULE_VERSION, _CREATED, _LICENSE, _AUTHOR_LINK, _PRICE, _PACKAGED,
_GAME_VERSION ; ordre des 3 premieres lignes controle ; prix et licences controles.
- lpr_hair_pocolov 1.0 : les 12 coiffures Pocolov CC BY ; lp_Revival et les 6 Pocolov
retires du jeu de base ; mod d'essai LPHairSample retire.
Valide en jeu le 2026-10-03 (CHG-106, CHG-107).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 08:14:37 +00:00
|
|
|
// Portage UE 5.5 - lot H3d (metadonnees des modules, Docs/Migration/16_H3_Mods_Paquets.md §8).
|
|
|
|
|
//
|
|
|
|
|
// Lit les metadonnees de chaque module (Content/Modules/<id>/<id>.lpmod, lignes "CLE: valeur"). Le jeu (GI) ne lit que
|
|
|
|
|
// les trois premieres lignes, par position (MODULE_UNIQUEID, MODULE_NAME, MODULE_AUTHOR) ; le gestionnaire de mods
|
|
|
|
|
// affiche le fichier entier. Cles ajoutees (facultatives, apres la ligne 3) :
|
|
|
|
|
// MODULE_VERSION, MODULE_CREATED, MODULE_PACKAGED (dates AAAA-MM-JJ), MODULE_LICENSE, MODULE_AUTHOR_LINK,
|
|
|
|
|
// MODULE_PRICE, MODULE_GAME_VERSION (version du jeu contre laquelle les assets du mod ont ete cuits, ecrite par
|
DC3 : atelier de mods hors du jeu, dans l'addon LifePlay-Sandbox (CHG-236)
Retrait de BuildMod, NewMod, EditMod, ModSource, HairPipeline et leurs .py, Tools/anim,
Tools/hairs, Tools/mods, ModSources, AnimSources, Config/LPSandbox.ini, lanceurs sandbox et
guide des moddeurs (57 fichiers suivis ; contenu disque deplace vers la sauvegarde DC3).
References et docs mises a jour. Pin addon 79f0205. Validation : DC3-VAL PASS (cuisson
lpr_anim_freeanims depuis l'addon identique au mod publie, tournee identique a SB2-REF).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 17:53:13 +00:00
|
|
|
// LifePlay-Sandbox/Tools/BuildMod.ps1, atelier de mods de l'addon), MODULE_DEFAULT_ENABLED (lu par LPHairstyleSubsystem).
|
H3d : metadonnees des mods, avertissement de version, paquet lpr_hair_pocolov (12 coiffures)
- LPModInfoSubsystem : metadonnees des .lpmod ; fenetre d'avertissement quand un mod actif
a ete construit pour une autre version du jeu (Slate, sans Blueprint).
- NewMod/BuildMod : MODULE_VERSION, _CREATED, _LICENSE, _AUTHOR_LINK, _PRICE, _PACKAGED,
_GAME_VERSION ; ordre des 3 premieres lignes controle ; prix et licences controles.
- lpr_hair_pocolov 1.0 : les 12 coiffures Pocolov CC BY ; lp_Revival et les 6 Pocolov
retires du jeu de base ; mod d'essai LPHairSample retire.
Valide en jeu le 2026-10-03 (CHG-106, CHG-107).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 08:14:37 +00:00
|
|
|
//
|
|
|
|
|
// Avertissement : un module ACTIF dont MODULE_GAME_VERSION differe de la version du jeu (ProjectVersion) declenche une
|
|
|
|
|
// fenetre (Slate, independante des Blueprints, aussi sur l'ecran titre), une fois par module et par session.
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include "CoreMinimal.h"
|
|
|
|
|
#include "Containers/Ticker.h"
|
|
|
|
|
#include "Subsystems/GameInstanceSubsystem.h"
|
|
|
|
|
#include "LPModInfoSubsystem.generated.h"
|
|
|
|
|
|
|
|
|
|
class SWidget;
|
|
|
|
|
|
|
|
|
|
UCLASS()
|
|
|
|
|
class LIFEPLAY_API ULPModInfoSubsystem : public UGameInstanceSubsystem
|
|
|
|
|
{
|
|
|
|
|
GENERATED_BODY()
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
virtual void Initialize(FSubsystemCollectionBase& Collection) override;
|
|
|
|
|
virtual void Deinitialize() override;
|
|
|
|
|
|
|
|
|
|
/** Valeur d'une cle du .lpmod d'un module (vide si absente). */
|
|
|
|
|
UFUNCTION(BlueprintCallable, Category = "LifePlay|Mods")
|
|
|
|
|
FString GetModuleMetadata(const FString& Module, const FString& Key) const;
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
bool Tick(float DeltaTime);
|
|
|
|
|
bool IsModuleEnabled(const FString& Module) const;
|
|
|
|
|
void ShowWarning(const TArray<FString>& Lines);
|
|
|
|
|
void CloseWarning();
|
|
|
|
|
|
|
|
|
|
/** Module -> (cle en majuscules -> valeur). */
|
|
|
|
|
TMap<FString, TMap<FString, FString>> Metadata;
|
|
|
|
|
FString GameVersion;
|
|
|
|
|
TSet<FString> Warned;
|
|
|
|
|
TSharedPtr<SWidget> Popup;
|
|
|
|
|
FTSTicker::FDelegateHandle TickHandle;
|
|
|
|
|
double NextCheck = 0.0;
|
|
|
|
|
};
|