More handler work

This commit is contained in:
2026-03-15 19:32:09 -04:00
parent a00058736a
commit c68a4ea3b1
49 changed files with 70 additions and 69 deletions

View File

@@ -18,7 +18,7 @@
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
UCLASS(meta=(HalfBaked))
UCLASS()
class UMCP_AnimBlueprint_Create : public UObject, public IMCPHandler
{
GENERATED_BODY()

View File

@@ -14,7 +14,7 @@
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
UCLASS(meta=(HalfBaked))
UCLASS()
class UMCP_AnimBlueprint_ListSlotNames : public UObject, public IMCPHandler
{
GENERATED_BODY()

View File

@@ -14,7 +14,7 @@
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
UCLASS(meta=(HalfBaked))
UCLASS()
class UMCP_AnimBlueprint_ListSyncGroups : public UObject, public IMCPHandler
{
GENERATED_BODY()

View File

@@ -30,7 +30,7 @@ struct FBlendSpaceSampleEntry
float Y = 0.0f;
};
UCLASS(meta=(HalfBaked))
UCLASS()
class UMCP_AnimBlueprint_SetBlendSpaceSamples : public UObject, public IMCPHandler
{
GENERATED_BODY()

View File

@@ -15,7 +15,7 @@
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
UCLASS(meta=(HalfBaked))
UCLASS()
class UMCP_BlendSpace_Create : public UObject, public IMCPHandler
{
GENERATED_BODY()

View File

@@ -18,7 +18,7 @@
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
UCLASS(meta=(HalfBaked))
UCLASS()
class UMCP_BlueprintGraph_Create : public UObject, public IMCPHandler
{
GENERATED_BODY()

View File

@@ -15,7 +15,7 @@
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
UCLASS(meta=(HalfBaked))
UCLASS()
class UMCP_BlueprintGraph_Delete : public UObject, public IMCPHandler
{
GENERATED_BODY()

View File

@@ -15,7 +15,7 @@
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
UCLASS(meta=(HalfBaked))
UCLASS()
class UMCP_BlueprintGraph_Rename : public UObject, public IMCPHandler
{
GENERATED_BODY()

View File

@@ -16,7 +16,7 @@
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
UCLASS(meta=(HalfBaked))
UCLASS()
class UMCP_Blueprint_AddComponent : public UObject, public IMCPHandler
{
GENERATED_BODY()

View File

@@ -32,7 +32,7 @@ struct FDispatcherParamEntry
FString Type;
};
UCLASS(meta=(HalfBaked))
UCLASS()
class UMCP_Blueprint_AddEventDispatcher : public UObject, public IMCPHandler
{
GENERATED_BODY()

View File

@@ -20,7 +20,7 @@
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
UCLASS(meta=(HalfBaked))
UCLASS()
class UMCP_Blueprint_AddFunctionParameter : public UObject, public IMCPHandler
{
GENERATED_BODY()

View File

@@ -15,7 +15,7 @@
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
UCLASS(meta=(HalfBaked))
UCLASS()
class UMCP_Blueprint_AddInterface : public UObject, public IMCPHandler
{
GENERATED_BODY()

View File

@@ -15,7 +15,7 @@
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
UCLASS(meta=(HalfBaked))
UCLASS()
class UMCP_Blueprint_AddVariable : public UObject, public IMCPHandler
{
GENERATED_BODY()

View File

@@ -20,7 +20,7 @@
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
UCLASS(meta=(HalfBaked))
UCLASS()
class UMCP_Blueprint_ChangeFunctionParameterType : public UObject, public IMCPHandler
{
GENERATED_BODY()

View File

@@ -17,7 +17,7 @@
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
UCLASS(meta=(HalfBaked))
UCLASS()
class UMCP_Blueprint_ChangeVariableType : public UObject, public IMCPHandler
{
GENERATED_BODY()

View File

@@ -14,7 +14,7 @@
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
UCLASS(meta=(HalfBaked))
UCLASS()
class UMCP_Blueprint_Compile : public UObject, public IMCPHandler
{
GENERATED_BODY()

View File

@@ -15,7 +15,7 @@
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
UCLASS(meta=(HalfBaked))
UCLASS()
class UMCP_Blueprint_Create : public UObject, public IMCPHandler
{
GENERATED_BODY()

View File

@@ -16,7 +16,7 @@
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
UCLASS(meta=(HalfBaked))
UCLASS()
class UMCP_Blueprint_Diff : public UObject, public IMCPHandler
{
GENERATED_BODY()

View File

@@ -18,7 +18,7 @@
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
UCLASS(meta=(HalfBaked))
UCLASS()
class UMCP_Blueprint_Dump : public UObject, public IMCPHandler
{
GENERATED_BODY()

View File

@@ -15,7 +15,7 @@
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
UCLASS(meta=(HalfBaked))
UCLASS()
class UMCP_Blueprint_ListComponents : public UObject, public IMCPHandler
{
GENERATED_BODY()

View File

@@ -19,7 +19,7 @@
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
UCLASS(meta=(HalfBaked))
UCLASS()
class UMCP_Blueprint_ListEventDispatchers : public UObject, public IMCPHandler
{
GENERATED_BODY()

View File

@@ -13,7 +13,7 @@
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
UCLASS(meta=(HalfBaked))
UCLASS()
class UMCP_Blueprint_ListInterfaces : public UObject, public IMCPHandler
{
GENERATED_BODY()

View File

@@ -17,7 +17,7 @@
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
UCLASS(meta=(HalfBaked))
UCLASS()
class UMCP_Blueprint_RefreshAllNodes : public UObject, public IMCPHandler
{
GENERATED_BODY()

View File

@@ -15,7 +15,7 @@
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
UCLASS(meta=(HalfBaked))
UCLASS()
class UMCP_Blueprint_RemoveComponent : public UObject, public IMCPHandler
{
GENERATED_BODY()

View File

@@ -16,7 +16,7 @@
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
UCLASS(meta=(HalfBaked))
UCLASS()
class UMCP_Blueprint_RemoveFunctionParameter : public UObject, public IMCPHandler
{
GENERATED_BODY()

View File

@@ -14,7 +14,7 @@
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
UCLASS(meta=(HalfBaked))
UCLASS()
class UMCP_Blueprint_RemoveInterface : public UObject, public IMCPHandler
{
GENERATED_BODY()

View File

@@ -14,7 +14,7 @@
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
UCLASS(meta=(HalfBaked))
UCLASS()
class UMCP_Blueprint_RemoveVariable : public UObject, public IMCPHandler
{
GENERATED_BODY()

View File

@@ -15,7 +15,7 @@
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
UCLASS(meta=(HalfBaked))
UCLASS()
class UMCP_Blueprint_Reparent : public UObject, public IMCPHandler
{
GENERATED_BODY()

View File

@@ -14,7 +14,7 @@
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
UCLASS(meta=(HalfBaked))
UCLASS()
class UMCP_Blueprint_Search : public UObject, public IMCPHandler
{
GENERATED_BODY()

View File

@@ -22,7 +22,7 @@
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
UCLASS(meta=(HalfBaked))
UCLASS()
class UMCP_Blueprint_SearchContents : public UObject, public IMCPHandler
{
GENERATED_BODY()

View File

@@ -16,7 +16,7 @@
// HandleListClasses — discover available UClasses
// ============================================================
UCLASS(meta=(HalfBaked))
UCLASS()
class UMCP_Class_Search : public UObject, public IMCPHandler
{
GENERATED_BODY()

View File

@@ -12,7 +12,7 @@
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
UCLASS(meta=(HalfBaked))
UCLASS()
class UMCP_Class_ShowProperties : public UObject, public IMCPHandler
{
GENERATED_BODY()

View File

@@ -15,7 +15,7 @@
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
UCLASS(meta=(HalfBaked))
UCLASS()
class UMCP_Enum_Create : public UObject, public IMCPHandler
{
GENERATED_BODY()

View File

@@ -14,7 +14,7 @@
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
UCLASS(meta=(HalfBaked))
UCLASS()
class UMCP_MaterialFunction_Create : public UObject, public IMCPHandler
{
GENERATED_BODY()

View File

@@ -13,7 +13,7 @@
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
UCLASS(meta=(HalfBaked))
UCLASS()
class UMCP_Material_Compile : public UObject, public IMCPHandler
{
GENERATED_BODY()

View File

@@ -15,7 +15,7 @@
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
UCLASS(meta=(HalfBaked))
UCLASS()
class UMCP_Material_Create : public UObject, public IMCPHandler
{
GENERATED_BODY()

View File

@@ -13,7 +13,7 @@
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
UCLASS(meta=(HalfBaked))
UCLASS()
class UMCP_Material_DumpParameters : public UObject, public IMCPHandler
{
GENERATED_BODY()

View File

@@ -19,7 +19,7 @@
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
UCLASS(meta=(HalfBaked))
UCLASS()
class UMCP_StateMachine_AddState : public UObject, public IMCPHandler
{
GENERATED_BODY()

View File

@@ -17,7 +17,7 @@
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
UCLASS(meta=(HalfBaked))
UCLASS()
class UMCP_StateMachine_AddTransition : public UObject, public IMCPHandler
{
GENERATED_BODY()

View File

@@ -17,7 +17,7 @@
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
UCLASS(meta=(HalfBaked))
UCLASS()
class UMCP_StateMachine_RemoveState : public UObject, public IMCPHandler
{
GENERATED_BODY()

View File

@@ -20,7 +20,7 @@
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
UCLASS(meta=(HalfBaked))
UCLASS()
class UMCP_StateMachine_SetAnimation : public UObject, public IMCPHandler
{
GENERATED_BODY()

View File

@@ -23,7 +23,7 @@
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
UCLASS(meta=(HalfBaked))
UCLASS()
class UMCP_StateMachine_SetBlendSpace : public UObject, public IMCPHandler
{
GENERATED_BODY()

View File

@@ -16,7 +16,7 @@
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
UCLASS(meta=(HalfBaked))
UCLASS()
class UMCP_StateMachine_SetTransitionRule : public UObject, public IMCPHandler
{
GENERATED_BODY()

View File

@@ -30,7 +30,7 @@ struct FStructPropertyEntry
FString Type;
};
UCLASS(meta=(HalfBaked))
UCLASS()
class UMCP_Struct_Create : public UObject, public IMCPHandler
{
GENERATED_BODY()

View File

@@ -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);

View File

@@ -13,7 +13,7 @@
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
UCLASS(meta=(HalfBaked))
UCLASS()
class UMCP_Asset_FindReferences : public UObject, public IMCPHandler
{
GENERATED_BODY()

View File

@@ -14,7 +14,7 @@
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
UCLASS(meta=(HalfBaked))
UCLASS()
class UMCP_Asset_Rename : public UObject, public IMCPHandler
{
GENERATED_BODY()

View File

@@ -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);