More handler work
This commit is contained in:
@@ -18,7 +18,7 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
UCLASS(meta=(HalfBaked))
|
||||
UCLASS()
|
||||
class UMCP_AnimBlueprint_Create : public UObject, public IMCPHandler
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
UCLASS(meta=(HalfBaked))
|
||||
UCLASS()
|
||||
class UMCP_AnimBlueprint_ListSlotNames : public UObject, public IMCPHandler
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
UCLASS(meta=(HalfBaked))
|
||||
UCLASS()
|
||||
class UMCP_AnimBlueprint_ListSyncGroups : public UObject, public IMCPHandler
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
@@ -30,7 +30,7 @@ struct FBlendSpaceSampleEntry
|
||||
float Y = 0.0f;
|
||||
};
|
||||
|
||||
UCLASS(meta=(HalfBaked))
|
||||
UCLASS()
|
||||
class UMCP_AnimBlueprint_SetBlendSpaceSamples : public UObject, public IMCPHandler
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
UCLASS(meta=(HalfBaked))
|
||||
UCLASS()
|
||||
class UMCP_BlendSpace_Create : public UObject, public IMCPHandler
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
UCLASS(meta=(HalfBaked))
|
||||
UCLASS()
|
||||
class UMCP_BlueprintGraph_Create : public UObject, public IMCPHandler
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
UCLASS(meta=(HalfBaked))
|
||||
UCLASS()
|
||||
class UMCP_BlueprintGraph_Delete : public UObject, public IMCPHandler
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
UCLASS(meta=(HalfBaked))
|
||||
UCLASS()
|
||||
class UMCP_BlueprintGraph_Rename : public UObject, public IMCPHandler
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
UCLASS(meta=(HalfBaked))
|
||||
UCLASS()
|
||||
class UMCP_Blueprint_AddComponent : public UObject, public IMCPHandler
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
@@ -32,7 +32,7 @@ struct FDispatcherParamEntry
|
||||
FString Type;
|
||||
};
|
||||
|
||||
UCLASS(meta=(HalfBaked))
|
||||
UCLASS()
|
||||
class UMCP_Blueprint_AddEventDispatcher : public UObject, public IMCPHandler
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
UCLASS(meta=(HalfBaked))
|
||||
UCLASS()
|
||||
class UMCP_Blueprint_AddFunctionParameter : public UObject, public IMCPHandler
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
UCLASS(meta=(HalfBaked))
|
||||
UCLASS()
|
||||
class UMCP_Blueprint_AddInterface : public UObject, public IMCPHandler
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
UCLASS(meta=(HalfBaked))
|
||||
UCLASS()
|
||||
class UMCP_Blueprint_AddVariable : public UObject, public IMCPHandler
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
UCLASS(meta=(HalfBaked))
|
||||
UCLASS()
|
||||
class UMCP_Blueprint_ChangeFunctionParameterType : public UObject, public IMCPHandler
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
UCLASS(meta=(HalfBaked))
|
||||
UCLASS()
|
||||
class UMCP_Blueprint_ChangeVariableType : public UObject, public IMCPHandler
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
UCLASS(meta=(HalfBaked))
|
||||
UCLASS()
|
||||
class UMCP_Blueprint_Compile : public UObject, public IMCPHandler
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
UCLASS(meta=(HalfBaked))
|
||||
UCLASS()
|
||||
class UMCP_Blueprint_Create : public UObject, public IMCPHandler
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
UCLASS(meta=(HalfBaked))
|
||||
UCLASS()
|
||||
class UMCP_Blueprint_Diff : public UObject, public IMCPHandler
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
UCLASS(meta=(HalfBaked))
|
||||
UCLASS()
|
||||
class UMCP_Blueprint_Dump : public UObject, public IMCPHandler
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
UCLASS(meta=(HalfBaked))
|
||||
UCLASS()
|
||||
class UMCP_Blueprint_ListComponents : public UObject, public IMCPHandler
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
UCLASS(meta=(HalfBaked))
|
||||
UCLASS()
|
||||
class UMCP_Blueprint_ListEventDispatchers : public UObject, public IMCPHandler
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
UCLASS(meta=(HalfBaked))
|
||||
UCLASS()
|
||||
class UMCP_Blueprint_ListInterfaces : public UObject, public IMCPHandler
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
UCLASS(meta=(HalfBaked))
|
||||
UCLASS()
|
||||
class UMCP_Blueprint_RefreshAllNodes : public UObject, public IMCPHandler
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
UCLASS(meta=(HalfBaked))
|
||||
UCLASS()
|
||||
class UMCP_Blueprint_RemoveComponent : public UObject, public IMCPHandler
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
UCLASS(meta=(HalfBaked))
|
||||
UCLASS()
|
||||
class UMCP_Blueprint_RemoveFunctionParameter : public UObject, public IMCPHandler
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
UCLASS(meta=(HalfBaked))
|
||||
UCLASS()
|
||||
class UMCP_Blueprint_RemoveInterface : public UObject, public IMCPHandler
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
UCLASS(meta=(HalfBaked))
|
||||
UCLASS()
|
||||
class UMCP_Blueprint_RemoveVariable : public UObject, public IMCPHandler
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
UCLASS(meta=(HalfBaked))
|
||||
UCLASS()
|
||||
class UMCP_Blueprint_Reparent : public UObject, public IMCPHandler
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
UCLASS(meta=(HalfBaked))
|
||||
UCLASS()
|
||||
class UMCP_Blueprint_Search : public UObject, public IMCPHandler
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
UCLASS(meta=(HalfBaked))
|
||||
UCLASS()
|
||||
class UMCP_Blueprint_SearchContents : public UObject, public IMCPHandler
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
// HandleListClasses — discover available UClasses
|
||||
// ============================================================
|
||||
|
||||
UCLASS(meta=(HalfBaked))
|
||||
UCLASS()
|
||||
class UMCP_Class_Search : public UObject, public IMCPHandler
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
UCLASS(meta=(HalfBaked))
|
||||
UCLASS()
|
||||
class UMCP_Class_ShowProperties : public UObject, public IMCPHandler
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
UCLASS(meta=(HalfBaked))
|
||||
UCLASS()
|
||||
class UMCP_Enum_Create : public UObject, public IMCPHandler
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
UCLASS(meta=(HalfBaked))
|
||||
UCLASS()
|
||||
class UMCP_MaterialFunction_Create : public UObject, public IMCPHandler
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
UCLASS(meta=(HalfBaked))
|
||||
UCLASS()
|
||||
class UMCP_Material_Compile : public UObject, public IMCPHandler
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
UCLASS(meta=(HalfBaked))
|
||||
UCLASS()
|
||||
class UMCP_Material_Create : public UObject, public IMCPHandler
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
UCLASS(meta=(HalfBaked))
|
||||
UCLASS()
|
||||
class UMCP_Material_DumpParameters : public UObject, public IMCPHandler
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
UCLASS(meta=(HalfBaked))
|
||||
UCLASS()
|
||||
class UMCP_StateMachine_AddState : public UObject, public IMCPHandler
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
UCLASS(meta=(HalfBaked))
|
||||
UCLASS()
|
||||
class UMCP_StateMachine_AddTransition : public UObject, public IMCPHandler
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
UCLASS(meta=(HalfBaked))
|
||||
UCLASS()
|
||||
class UMCP_StateMachine_RemoveState : public UObject, public IMCPHandler
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
UCLASS(meta=(HalfBaked))
|
||||
UCLASS()
|
||||
class UMCP_StateMachine_SetAnimation : public UObject, public IMCPHandler
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
UCLASS(meta=(HalfBaked))
|
||||
UCLASS()
|
||||
class UMCP_StateMachine_SetBlendSpace : public UObject, public IMCPHandler
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
UCLASS(meta=(HalfBaked))
|
||||
UCLASS()
|
||||
class UMCP_StateMachine_SetTransitionRule : public UObject, public IMCPHandler
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
@@ -30,7 +30,7 @@ struct FStructPropertyEntry
|
||||
FString Type;
|
||||
};
|
||||
|
||||
UCLASS(meta=(HalfBaked))
|
||||
UCLASS()
|
||||
class UMCP_Struct_Create : public UObject, public IMCPHandler
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#include "AssetRegistry/IAssetRegistry.h"
|
||||
#include "HAL/FileManager.h"
|
||||
#include "UObject/LinkerLoad.h"
|
||||
#include "UObject/Package.h"
|
||||
#include "Asset_Delete.generated.h"
|
||||
|
||||
|
||||
@@ -16,7 +17,7 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
UCLASS(meta=(HalfBaked))
|
||||
UCLASS()
|
||||
class UMCP_Asset_Delete : public UObject, public IMCPHandler
|
||||
{
|
||||
GENERATED_BODY()
|
||||
@@ -77,34 +78,32 @@ public:
|
||||
UMCPServer::Printf(TEXT("WARNING: Force-deleting despite %d referencer(s).\n"), Referencers.Num());
|
||||
}
|
||||
|
||||
if (Force)
|
||||
// Mark the package, and all the objects in it, as NOT
|
||||
// GC Roots. Also, make them undiscoverable.
|
||||
UPackage* Package = FindPackage(nullptr, *Asset);
|
||||
if (Package)
|
||||
{
|
||||
UPackage* Package = FindPackage(nullptr, *Asset);
|
||||
if (Package)
|
||||
// Collect all objects in this package
|
||||
TArray<UObject*> ObjectsInPackage;
|
||||
GetObjectsWithPackage(Package, ObjectsInPackage);
|
||||
|
||||
// Clear flags and remove from root to allow GC
|
||||
for (UObject* Obj : ObjectsInPackage)
|
||||
{
|
||||
// Collect all objects in this package
|
||||
TArray<UObject*> ObjectsInPackage;
|
||||
GetObjectsWithPackage(Package, ObjectsInPackage);
|
||||
|
||||
// Clear flags and remove from root to allow GC
|
||||
for (UObject* Obj : ObjectsInPackage)
|
||||
if (Obj)
|
||||
{
|
||||
if (Obj)
|
||||
{
|
||||
Obj->ClearFlags(RF_Standalone | RF_Public);
|
||||
Obj->RemoveFromRoot();
|
||||
}
|
||||
Obj->ClearFlags(RF_Standalone | RF_Public);
|
||||
Obj->RemoveFromRoot();
|
||||
}
|
||||
Package->ClearFlags(RF_Standalone | RF_Public);
|
||||
Package->RemoveFromRoot();
|
||||
|
||||
// Reset loaders to release file handles
|
||||
ResetLoaders(Package);
|
||||
// Force garbage collection to free the objects
|
||||
CollectGarbage(GARBAGE_COLLECTION_KEEPFLAGS);
|
||||
}
|
||||
Package->ClearFlags(RF_Standalone | RF_Public);
|
||||
Package->RemoveFromRoot();
|
||||
}
|
||||
|
||||
// The loader that loaded the package might still
|
||||
// have a file lock on it. Unlock the file.
|
||||
ResetLoaders(Package);
|
||||
|
||||
// Delete the file on disk
|
||||
bool bDeleted = IFileManager::Get().Delete(*PackageFilename, false, true);
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
UCLASS(meta=(HalfBaked))
|
||||
UCLASS()
|
||||
class UMCP_Asset_FindReferences : public UObject, public IMCPHandler
|
||||
{
|
||||
GENERATED_BODY()
|
||||
@@ -14,7 +14,7 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
UCLASS(meta=(HalfBaked))
|
||||
UCLASS()
|
||||
class UMCP_Asset_Rename : public UObject, public IMCPHandler
|
||||
{
|
||||
GENERATED_BODY()
|
||||
@@ -53,7 +53,8 @@ public:
|
||||
|
||||
for (UClass* Class : MCPUtils::CollectHandlerClasses())
|
||||
{
|
||||
if (Class->HasMetaData(TEXT("HalfBaked")) != bHalfBaked)
|
||||
bool bIsHalfBaked = Class->GetMetaData(TEXT("ModuleRelativePath")).StartsWith(TEXT("HalfBaked/"));
|
||||
if (bIsHalfBaked != bHalfBaked)
|
||||
continue;
|
||||
|
||||
FString ToolName = MCPUtils::GetHandlerName(Class);
|
||||
|
||||
Reference in New Issue
Block a user