Removing unnecessary uses of MCPAssets
This commit is contained in:
@@ -3,7 +3,6 @@
|
||||
#include "CoreMinimal.h"
|
||||
#include "MCPServer.h"
|
||||
#include "MCPHandler.h"
|
||||
#include "MCPAssets.h"
|
||||
#include "MCPFetcher.h"
|
||||
#include "MCPUtils.h"
|
||||
#include "Animation/AnimSequence.h"
|
||||
@@ -107,9 +106,9 @@ public:
|
||||
UAnimSequence* AnimSeq = nullptr;
|
||||
if (!Entry.AnimationAsset.IsEmpty())
|
||||
{
|
||||
MCPAssets<UAnimSequence> AnimAssets;
|
||||
if (!AnimAssets.Exact(Entry.AnimationAsset).ENone().Load()) return;
|
||||
AnimSeq = AnimAssets.Object();
|
||||
MCPFetcher F2;
|
||||
AnimSeq = F2.Asset(Entry.AnimationAsset).Cast<UAnimSequence>();
|
||||
if (!AnimSeq) return;
|
||||
}
|
||||
|
||||
FVector SampleValue(Entry.X, Entry.Y, 0.0f);
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
#include "CoreMinimal.h"
|
||||
#include "MCPServer.h"
|
||||
#include "MCPHandler.h"
|
||||
#include "MCPAssets.h"
|
||||
#include "MCPUtils.h"
|
||||
#include "Misc/PackageName.h"
|
||||
#include "AssetRegistry/AssetRegistryModule.h"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#include "CoreMinimal.h"
|
||||
#include "MCPServer.h"
|
||||
#include "MCPHandler.h"
|
||||
#include "MCPAssets.h"
|
||||
#include "MCPFetcher.h"
|
||||
#include "MCPUtils.h"
|
||||
#include "AssetToolsModule.h"
|
||||
#include "IAssetTools.h"
|
||||
@@ -34,9 +34,9 @@ public:
|
||||
virtual void Handle() override
|
||||
{
|
||||
// Load the asset
|
||||
MCPAssets<UObject> Assets;
|
||||
if (!Assets.Exact(AssetPath).AllContent().ENone().ETwo().Load()) return;
|
||||
UObject* AssetObj = Assets.Object();
|
||||
MCPFetcher F;
|
||||
UObject* AssetObj = F.Asset(AssetPath).GetObj();
|
||||
if (!AssetObj) return;
|
||||
|
||||
// Parse new path into package path and asset name
|
||||
FString NewPackagePath = FPackageName::GetLongPackagePath(NewPath);
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "MCPHandler.h"
|
||||
#include "MCPAssets.h"
|
||||
#include "MCPFetcher.h"
|
||||
#include "MCPUtils.h"
|
||||
#include "MCPServer.h"
|
||||
@@ -25,7 +24,7 @@ public:
|
||||
UPROPERTY(meta=(Description="Blueprint package path"))
|
||||
FString Blueprint;
|
||||
|
||||
UPROPERTY(meta=(Description="Interface name (e.g. 'BPI_MyInterface') or native UInterface class name"))
|
||||
UPROPERTY(meta=(Description="Native UInterface class name or Blueprint Interface package path"))
|
||||
FString InterfaceName;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
@@ -82,7 +81,7 @@ public:
|
||||
private:
|
||||
// Resolve an interface name to a UClass. Tries loaded UInterface classes
|
||||
// first (for native interfaces), then falls back to loading a Blueprint
|
||||
// Interface asset.
|
||||
// Interface asset by package path.
|
||||
static UClass* FindInterfaceClass(const FString& Name)
|
||||
{
|
||||
// Strategy 1: Search loaded UInterface classes by name
|
||||
@@ -93,17 +92,13 @@ private:
|
||||
return *It;
|
||||
}
|
||||
|
||||
// Strategy 2: Try loading as a Blueprint Interface asset
|
||||
MCPAssets<UBlueprint> IfaceAssets;
|
||||
if (!IfaceAssets.Exact(Name).AllContent().ETwo().Load()) return nullptr;
|
||||
if (!IfaceAssets.Objects().IsEmpty())
|
||||
{
|
||||
UClass* GenClass = IfaceAssets.Object()->GeneratedClass;
|
||||
if (GenClass && GenClass->IsChildOf(UInterface::StaticClass()))
|
||||
return GenClass;
|
||||
}
|
||||
// Strategy 2: Try loading as a Blueprint Interface asset by package path
|
||||
MCPFetcher F;
|
||||
UBlueprint* IfaceBP = F.Asset(Name).Cast<UBlueprint>();
|
||||
if (IfaceBP && IfaceBP->GeneratedClass && IfaceBP->GeneratedClass->IsChildOf(UInterface::StaticClass()))
|
||||
return IfaceBP->GeneratedClass;
|
||||
|
||||
UMCPServer::Printf(TEXT("ERROR: Interface '%s' not found. Provide a Blueprint Interface asset name (e.g. 'BPI_MyInterface') or a native UInterface class name.\n"),
|
||||
UMCPServer::Printf(TEXT("ERROR: Interface '%s' not found. Provide a native UInterface class name or Blueprint Interface package path.\n"),
|
||||
*Name);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
#include "MCPServer.h"
|
||||
#include "MCPHandler.h"
|
||||
#include "MCPFetcher.h"
|
||||
#include "MCPAssets.h"
|
||||
#include "MCPUtils.h"
|
||||
#include "Engine/Blueprint.h"
|
||||
#include "EdGraph/EdGraphPin.h"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#include "CoreMinimal.h"
|
||||
#include "MCPServer.h"
|
||||
#include "MCPHandler.h"
|
||||
#include "MCPAssets.h"
|
||||
#include "MCPFetcher.h"
|
||||
#include "MCPUtils.h"
|
||||
#include "MCPPackageMaker.h"
|
||||
#include "Engine/Blueprint.h"
|
||||
@@ -24,7 +24,7 @@ public:
|
||||
UPROPERTY(meta=(Description="Full asset path for the new Blueprint (e.g. '/Game/Blueprints/BP_MyActor')"))
|
||||
FString AssetPath;
|
||||
|
||||
UPROPERTY(meta=(Description="Parent class name (C++ class name or Blueprint name)"))
|
||||
UPROPERTY(meta=(Description="Parent class: C++ class name or Blueprint package path"))
|
||||
FString ParentClass;
|
||||
|
||||
UPROPERTY(meta=(Optional, Description="Blueprint type: Normal, Interface, FunctionLibrary, or MacroLibrary (default: Normal)"))
|
||||
@@ -40,20 +40,20 @@ public:
|
||||
MCPPackageMaker Maker(AssetPath);
|
||||
if (!Maker.Ok()) return;
|
||||
|
||||
// Resolve parent class — try C++ class first, then Blueprint asset
|
||||
// Resolve parent class — try C++ class first, then Blueprint package path
|
||||
UClass* ParentClassObj = MCPUtils::FindClassByName(ParentClass);
|
||||
|
||||
if (!ParentClassObj)
|
||||
{
|
||||
MCPAssets<UBlueprint> ParentAssets;
|
||||
if (!ParentAssets.Exact(ParentClass).AllContent().ETwo().Load()) return;
|
||||
if (!ParentAssets.Objects().IsEmpty() && ParentAssets.Object()->GeneratedClass)
|
||||
ParentClassObj = ParentAssets.Object()->GeneratedClass;
|
||||
MCPFetcher F;
|
||||
UBlueprint* ParentBP = F.Asset(ParentClass).Cast<UBlueprint>();
|
||||
if (ParentBP && ParentBP->GeneratedClass)
|
||||
ParentClassObj = ParentBP->GeneratedClass;
|
||||
}
|
||||
|
||||
if (!ParentClassObj)
|
||||
{
|
||||
UMCPServer::Printf(TEXT("ERROR: Could not find parent class '%s'. Provide a C++ class name (e.g. 'Actor', 'Pawn') or Blueprint name.\n"),
|
||||
UMCPServer::Printf(TEXT("ERROR: Could not find parent class '%s'. Provide a C++ class name (e.g. 'Actor', 'Pawn') or Blueprint package path.\n"),
|
||||
*ParentClass);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
#include "CoreMinimal.h"
|
||||
#include "MCPHandler.h"
|
||||
#include "MCPFetcher.h"
|
||||
#include "MCPAssets.h"
|
||||
#include "MCPUtils.h"
|
||||
#include "MCPServer.h"
|
||||
#include "Engine/Blueprint.h"
|
||||
@@ -22,15 +21,15 @@ class UMCP_Blueprint_Reparent : public UObject, public IMCPHandler
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
UPROPERTY(meta=(Description="Blueprint name or package path"))
|
||||
UPROPERTY(meta=(Description="Blueprint package path"))
|
||||
FString Blueprint;
|
||||
|
||||
UPROPERTY(meta=(Description="Name of the new parent class (C++ class name or Blueprint name)"))
|
||||
UPROPERTY(meta=(Description="New parent class: C++ class name or Blueprint package path"))
|
||||
FString NewParentClass;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
{
|
||||
return TEXT("Change a Blueprint's parent class. Accepts C++ class names or Blueprint names.");
|
||||
return TEXT("Change a Blueprint's parent class. Accepts C++ class names or Blueprint package paths.");
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
@@ -42,20 +41,20 @@ public:
|
||||
|
||||
FString OldParentName = BP->ParentClass ? MCPUtils::FormatName(BP->ParentClass) : TEXT("None");
|
||||
|
||||
// Find the new parent class: try C++ classes first, then Blueprint assets
|
||||
// Find the new parent class: try C++ classes first, then Blueprint package path
|
||||
UClass* NewParentClassObj = MCPUtils::FindClassByName(NewParentClass);
|
||||
|
||||
if (!NewParentClassObj)
|
||||
{
|
||||
MCPAssets<UBlueprint> ParentAssets;
|
||||
if (!ParentAssets.Exact(NewParentClass).AllContent().ETwo().Load()) return;
|
||||
if (!ParentAssets.Objects().IsEmpty() && ParentAssets.Object()->GeneratedClass)
|
||||
NewParentClassObj = ParentAssets.Object()->GeneratedClass;
|
||||
MCPFetcher F2;
|
||||
UBlueprint* ParentBP = F2.Asset(NewParentClass).Cast<UBlueprint>();
|
||||
if (ParentBP && ParentBP->GeneratedClass)
|
||||
NewParentClassObj = ParentBP->GeneratedClass;
|
||||
}
|
||||
|
||||
if (!NewParentClassObj)
|
||||
{
|
||||
UMCPServer::Printf(TEXT("ERROR: Could not find class '%s'. Provide a C++ class name or Blueprint name.\n"),
|
||||
UMCPServer::Printf(TEXT("ERROR: Could not find class '%s'. Provide a C++ class name or Blueprint package path.\n"),
|
||||
*NewParentClass);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
#include "CoreMinimal.h"
|
||||
#include "MCPServer.h"
|
||||
#include "MCPHandler.h"
|
||||
#include "MCPAssets.h"
|
||||
#include "MCPUtils.h"
|
||||
#include "Engine/UserDefinedEnum.h"
|
||||
#include "Kismet2/EnumEditorUtils.h"
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
#include "CoreMinimal.h"
|
||||
#include "MCPServer.h"
|
||||
#include "MCPHandler.h"
|
||||
#include "MCPAssets.h"
|
||||
#include "MCPUtils.h"
|
||||
#include "Materials/MaterialFunction.h"
|
||||
#include "Factories/MaterialFunctionFactoryNew.h"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#include "CoreMinimal.h"
|
||||
#include "MCPServer.h"
|
||||
#include "MCPHandler.h"
|
||||
#include "MCPAssets.h"
|
||||
#include "MCPFetcher.h"
|
||||
#include "MCPUtils.h"
|
||||
#include "Materials/Material.h"
|
||||
#include "Materials/MaterialInterface.h"
|
||||
@@ -26,7 +26,7 @@ public:
|
||||
UPROPERTY(meta=(Description="Full asset path for the new Material Instance (e.g. '/Game/Materials/MI_GoldShiny')"))
|
||||
FString AssetPath;
|
||||
|
||||
UPROPERTY(meta=(Description="Parent material name or path (Material or Material Instance)"))
|
||||
UPROPERTY(meta=(Description="Parent material package path (Material or Material Instance)"))
|
||||
FString ParentMaterial;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
@@ -39,32 +39,13 @@ public:
|
||||
MCPPackageMaker Maker(AssetPath);
|
||||
if (!Maker.Ok()) return;
|
||||
|
||||
// Load parent material -- try as Material first, then as Material Instance.
|
||||
UMaterialInterface* ParentMaterialObj = nullptr;
|
||||
{
|
||||
MCPAssets<UMaterial> MatAssets;
|
||||
if (MatAssets.Exact(ParentMaterial).ETwo().Load() && !MatAssets.Objects().IsEmpty())
|
||||
{
|
||||
ParentMaterialObj = MatAssets.Object();
|
||||
}
|
||||
else
|
||||
{
|
||||
MCPAssets<UMaterialInstanceConstant> MIAssets;
|
||||
if (MIAssets.Exact(ParentMaterial).ETwo().Load() && !MIAssets.Objects().IsEmpty())
|
||||
{
|
||||
ParentMaterialObj = MIAssets.Object();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Load parent material by package path.
|
||||
MCPFetcher F;
|
||||
UObject* ParentObj = F.Asset(ParentMaterial).GetObj();
|
||||
UMaterialInterface* ParentMaterialObj = ParentObj ? Cast<UMaterialInterface>(ParentObj) : nullptr;
|
||||
if (!ParentMaterialObj)
|
||||
{
|
||||
ParentMaterialObj = LoadObject<UMaterialInterface>(nullptr, *ParentMaterial);
|
||||
}
|
||||
|
||||
if (!ParentMaterialObj)
|
||||
{
|
||||
UMCPServer::Printf(TEXT("ERROR: Parent material '%s' not found\n"), *ParentMaterial);
|
||||
UMCPServer::Printf(TEXT("ERROR: Parent material '%s' not found or not a material\n"), *ParentMaterial);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
#include "CoreMinimal.h"
|
||||
#include "MCPServer.h"
|
||||
#include "MCPHandler.h"
|
||||
#include "MCPAssets.h"
|
||||
#include "MCPUtils.h"
|
||||
#include "Materials/Material.h"
|
||||
#include "MaterialDomain.h"
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
#include "CoreMinimal.h"
|
||||
#include "MCPServer.h"
|
||||
#include "MCPHandler.h"
|
||||
#include "MCPAssets.h"
|
||||
#include "MCPUtils.h"
|
||||
#include "StructUtils/UserDefinedStruct.h"
|
||||
#include "Kismet2/BlueprintEditorUtils.h"
|
||||
|
||||
Reference in New Issue
Block a user