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