LifePlay-Revival/Source/LifePlayEditorTools/LPFixZeroScaleActorsCommandlet.h

40 lines
1.6 KiB
C
Raw Normal View History

// Portage UE 5.5 (2026.9 beta) - remediation R-06.
//
// /Game/Scenes/CentralLondon:PersistentLevel.Wall.StaticMeshComponent0 porte une echelle
// (X=0.000, Y=12.562, Z=5.750). Une composante nulle produit un corps physique degenere :
// le moteur emet « has a component set to zero, which will result in a bad body instance »
// a chaque cook, un MapCheck: Error, et l'inversion de la matrice de transformation declenche
// un ensure « TMatrix::InverseFast() ... results in NaNs » en session d'edition.
//
// La commandlet parcourt les cartes de /Game/, signale toute composante d'echelle nulle avec
// le maillage concerne et ses dimensions (pour pouvoir juger de la valeur de remplacement),
// puis corrige si on le lui demande.
//
// Usage :
// UnrealEditor-Cmd.exe <projet> -run=LPFixZeroScaleActors (rapport seul)
// UnrealEditor-Cmd.exe <projet> -run=LPFixZeroScaleActors -Fix [-Scale=1.0]
//
// ATTENTION sous PowerShell : « -Scale=0.1 » non guillemete est coupe en « -Scale=0 » et
// « .1 », la commandlet recevrait 0. Ecrire "-Scale=0.1". Le garde-fou sur la valeur nulle
// est la pour attraper le cas.
//
// Le rapport est le mode par defaut : contrairement aux autres commandlets du projet, la
// valeur de remplacement est un choix de niveau, pas une equivalence mecanique.
#pragma once
#include "CoreMinimal.h"
#include "Commandlets/Commandlet.h"
#include "LPFixZeroScaleActorsCommandlet.generated.h"
UCLASS()
class ULPFixZeroScaleActorsCommandlet : public UCommandlet
{
GENERATED_BODY()
public:
ULPFixZeroScaleActorsCommandlet();
virtual int32 Main(const FString& Params) override;
};