Explorar o código

BlueprintAsset转为普通Asset

maboren hai 2 meses
pai
achega
8ee0235856

+ 4 - 2
Ability/Plugins/EzAbility/Source/EzAbilityEditor/Private/AssetDefinition_EZAbilityAsset.cpp

@@ -5,6 +5,7 @@
 #include "EZAbilityBlueprint.h"
 #include "EzAbilityEditorModule.h"
 #include "ThumbnailRendering/SceneThumbnailInfo.h"
+#include "EzAbility.h"
 
 
 #define LOCTEXT_NAMESPACE "AssetDefinition_AbilityAsset"
@@ -18,7 +19,7 @@ FText UAssetDefinition_EZAbilityAsset::GetAssetDisplayName() const
 TSoftClassPtr<UObject> UAssetDefinition_EZAbilityAsset::GetAssetClass() const
 {
 	/* 没有这个不能创建目录 */
-	return UEZAbilityBlueprint::StaticClass();
+	return UEzAbility::StaticClass();
 }
 
 FLinearColor UAssetDefinition_EZAbilityAsset::GetAssetColor() const
@@ -43,7 +44,8 @@ EAssetCommandResult UAssetDefinition_EZAbilityAsset::OpenAssets(const FAssetOpen
 	//Super::OpenAssets(OpenArgs);
 
 	FEzAbilityEditorModule& AbilityEditorModule = FModuleManager::LoadModuleChecked<FEzAbilityEditorModule>("EzAbilityEditor");//这里是Module的名称
-	for (UEZAbilityBlueprint* AbilityAsset : OpenArgs.LoadObjects<UEZAbilityBlueprint>())
+
+	for (UEzAbility* AbilityAsset : OpenArgs.LoadObjects<UEzAbility>())
 	{
 		UAssetEditorSubsystem* AssetEditorSubsystem = GEditor->GetEditorSubsystem<UAssetEditorSubsystem>();
 

+ 4 - 6
Ability/Plugins/EzAbility/Source/EzAbilityEditor/Private/EZAbilityAssetFactory.cpp

@@ -12,16 +12,14 @@
 UEZAbilityAssetFactory::UEZAbilityAssetFactory()
 {
 	/* Asset必须和Definit一致 */
-	SupportedClass = UEZAbilityBlueprint::StaticClass();
+	SupportedClass = UEzAbility::StaticClass();
 }
 
 UObject* UEZAbilityAssetFactory::FactoryCreateNew(UClass* Class, UObject* InParent, FName Name, EObjectFlags Flags, UObject* Context, FFeedbackContext* Warn)
 {
-	UEZAbilityBlueprint* AbilityBlueprint = nullptr;
+	UEzAbility* NewEzAbilityTree = NewObject<UEzAbility>(InParent, Class, Name, Flags);
 
-	AbilityBlueprint = CastChecked<UEZAbilityBlueprint>(FKismetEditorUtilities::CreateBlueprint(UEzAbility::StaticClass(), InParent, Name, BPTYPE_Normal, UEZAbilityBlueprint::StaticClass(), UBlueprintGeneratedClass::StaticClass(), NAME_None));
-
-	return	AbilityBlueprint;
+	return NewEzAbilityTree;
 }
 
 bool UEZAbilityAssetFactory::CanCreateNew() const
@@ -37,7 +35,7 @@ FString UEZAbilityAssetFactory::GetDefaultNewAssetName() const
 FText UEZAbilityAssetFactory::GetDisplayName() const
 {
 	/* 选项中的名字 */
-	return LOCTEXT("Ability", "Ability Asset");
+	return LOCTEXT("EzAbility", "EzAbility Asset");
 }
 
 bool UEZAbilityAssetFactory::ShouldShowInNewMenu() const

+ 10 - 16
Ability/Plugins/EzAbility/Source/EzAbilityEditor/Private/EzAbilityEditor.cpp

@@ -37,21 +37,19 @@ FEzAbilityEditor::~FEzAbilityEditor()
 {
 }
 
-void FEzAbilityEditor::InitEzAbilityEditor(const EToolkitMode::Type Mode, const TSharedPtr< class IToolkitHost >& InitToolkitHost,  UEZAbilityBlueprint* InEzAbilityAsset)
+void FEzAbilityEditor::InitEzAbilityEditor(const EToolkitMode::Type Mode, const TSharedPtr< class IToolkitHost >& InitToolkitHost,  UEzAbility* InEzAbilityAsset)
 {
-	EzAbilityDataAsset = InEzAbilityAsset;
+	//EzAbilityDataAsset = InEzAbilityAsset;
+	EzAbilityAsset = InEzAbilityAsset;
 
 	// TODO::因为最初使用了Blueprint,此处临时做了处理
-	if (EzAbilityAsset =  NewObject<UEzAbility>(InEzAbilityAsset->ParentClass))
+	EzAbilityAsset->EditorData = NewObject<UEzAbilityEditorData>();
+	AbleTreeViewOperationMode = MakeShared<FEzAbleTreeViewOperationMode>();
+
+	if (EzAbilityAsset->EditorData != nullptr)
 	{
-		EzAbilityAsset->EditorData = NewObject<UEzAbilityEditorData>();
-		AbleTreeViewOperationMode = MakeShared<FEzAbleTreeViewOperationMode>();
-
-		if (EzAbilityAsset->EditorData != nullptr)
-		{
-			UEzAbilityEditorData* InTreeData = Cast<UEzAbilityEditorData>(EzAbilityAsset->EditorData);
-			AbleTreeViewOperationMode->Init(InTreeData);
-		}
+		UEzAbilityEditorData* InTreeData = Cast<UEzAbilityEditorData>(EzAbilityAsset->EditorData);
+		AbleTreeViewOperationMode->Init(InTreeData);
 	}
 
 	/* 这里面需要注册FPersonaModule 之类的东西 */
@@ -69,7 +67,7 @@ void FEzAbilityEditor::InitEzAbilityEditor(const EToolkitMode::Type Mode, const
 	//RegisterMenus();
 
 	TArray<UObject*> ObjectsToEdit;
-	ObjectsToEdit.Add((UObject*)EzAbilityDataAsset);
+	ObjectsToEdit.Add(EzAbilityAsset);
 
 	const TSharedRef<FTabManager::FLayout> DummyLayout = FTabManager::NewLayout("NullLayout")->AddArea(FTabManager::NewPrimaryArea());
 	const bool bCreateDefaultStandaloneMenu = true;
@@ -77,14 +75,10 @@ void FEzAbilityEditor::InitEzAbilityEditor(const EToolkitMode::Type Mode, const
 
 	InitAssetEditor(Mode, InitToolkitHost, FEzAbilityEditorModule::AbilityEditorAppId, DummyLayout, bCreateDefaultStandaloneMenu, bCreateDefaultToolbar, ObjectsToEdit);
 
-	TArray<UBlueprint*> EditedBlueprints;
-	EditedBlueprints.Add((UBlueprint*)EzAbilityDataAsset);
-
 	//CommonInitialization(EditedBlueprints, false);		/* 构建Tab 没有的情况下 CreateDefaultTabContents 下个智能指针会崩溃*/
 
 	AddApplicationMode(EzAbilityEditorMode,
 		MakeShareable(new FEzAbilityEditorApplicationMode(SharedThis(this), SharedThis(this))));
-	//AddApplicationMode(EzAbilityEditorMode, MakeShareable(new FDialogueDeEditorApplicationMode(SharedThis(this))));
 
 	RegenerateMenusAndToolbars();
 

+ 1 - 1
Ability/Plugins/EzAbility/Source/EzAbilityEditor/Private/EzAbilityEditorModule.cpp

@@ -11,7 +11,7 @@ DEFINE_LOG_CATEGORY(LogEzAbilityEditor);
 
 const FName FEzAbilityEditorModule::AbilityEditorAppId(TEXT("AbilityEditorApp"));
 
-TSharedRef<class FEzAbilityEditor> FEzAbilityEditorModule::CreateEzAbilityEditor(const EToolkitMode::Type Mode, const TSharedPtr< class IToolkitHost >& InitToolkitHost, class UEZAbilityBlueprint* EzAbilityAsset)
+TSharedRef<class FEzAbilityEditor> FEzAbilityEditorModule::CreateEzAbilityEditor(const EToolkitMode::Type Mode, const TSharedPtr< class IToolkitHost >& InitToolkitHost, class UEzAbility* EzAbilityAsset)
 {
 	TSharedRef< FEzAbilityEditor > NewAbilityEditor(new FEzAbilityEditor());
 	NewAbilityEditor->InitEzAbilityEditor(Mode, InitToolkitHost,EzAbilityAsset);

+ 12 - 0
Ability/Plugins/EzAbility/Source/EzAbilityEditor/Private/EzAbleTreeViewOperationMode.cpp

@@ -105,4 +105,16 @@ void FEzAbleTreeViewOperationMode::AddState(UEzAbilityState* AfterState)
 }
 
 
+void FEzAbleTreeViewOperationMode::GetSubTrees(TArray<TWeakObjectPtr<UEzAbilityState>>& OutSubtrees) const
+{
+	OutSubtrees.Reset();
+	if (UEzAbilityEditorData* TreeData = TreeDataWeak.Get())
+	{
+		for (UEzAbilityState* Subtree : TreeData->SubTrees)
+		{
+			OutSubtrees.Add(Subtree);
+		}
+	}
+}
+
 #undef LOCTEXT_NAMESPACE

+ 3 - 1
Ability/Plugins/EzAbility/Source/EzAbilityEditor/Private/SEzAbleTreeViewWidget.cpp

@@ -24,6 +24,8 @@ void SEzAbleTreeViewWidget::Construct(const FArguments& InArgs, TSharedPtr<FEzAb
 		.Orientation(Orient_Vertical)
 		.Thickness(FVector2D(12.0f, 12.0f));
 
+	AbleTreeViewOperationMode->GetSubTrees(Subtrees);
+
 	UEzAbilityState* AbilityState = NewObject<UEzAbilityState>();
 	UEzAbilityState* AbilitySub = NewObject<UEzAbilityState>();
 	TestStrongState.Add(AbilityState);
@@ -32,7 +34,7 @@ void SEzAbleTreeViewWidget::Construct(const FArguments& InArgs, TSharedPtr<FEzAb
 	TreeView = SNew(STreeView<TWeakObjectPtr<UEzAbilityState>>)
 		.OnGenerateRow(this, &SEzAbleTreeViewWidget::HandleGenerateRow)
 		.OnGetChildren(this, &SEzAbleTreeViewWidget::HandleGetChildren)
-		.TreeItemsSource(&TestState)
+		.TreeItemsSource(&Subtrees)
 		.ItemHeight(32)
 		.AllowOverscroll(EAllowOverscroll::No)
 		.ExternalScrollbar(VerticalScrollBar);

+ 1 - 1
Ability/Plugins/EzAbility/Source/EzAbilityEditor/Public/EzAbilityEditor.h

@@ -21,7 +21,7 @@ public:
 	FEzAbilityEditor();
 	~FEzAbilityEditor();
 
-	void InitEzAbilityEditor(const EToolkitMode::Type Mode, const TSharedPtr< class IToolkitHost >& InitToolkitHost,  UEZAbilityBlueprint* InEzAbilityAsset);
+	void InitEzAbilityEditor(const EToolkitMode::Type Mode, const TSharedPtr< class IToolkitHost >& InitToolkitHost,  UEzAbility* InEzAbilityAsset);
 
 // 	/** IToolkit interface */
 // 	virtual void RegisterTabSpawners(const TSharedRef<class FTabManager>& TabManager) override;

+ 1 - 1
Ability/Plugins/EzAbility/Source/EzAbilityEditor/Public/EzAbilityEditorModule.h

@@ -17,7 +17,7 @@ public:
 
 	static const FName AbilityEditorAppId;
 
-	virtual TSharedRef<class FEzAbilityEditor> CreateEzAbilityEditor(const EToolkitMode::Type Mode, const TSharedPtr< class IToolkitHost >& InitToolkitHost, class UEZAbilityBlueprint* EzAbilityAsset);
+	virtual TSharedRef<class FEzAbilityEditor> CreateEzAbilityEditor(const EToolkitMode::Type Mode, const TSharedPtr< class IToolkitHost >& InitToolkitHost, class UEzAbility* EzAbilityAsset);
 };
 
 EZABILITYEDITOR_API DECLARE_LOG_CATEGORY_EXTERN(LogEzAbilityEditor, Log, All);

+ 1 - 0
Ability/Plugins/EzAbility/Source/EzAbilityEditor/Public/EzAbleTreeViewOperationMode.h

@@ -31,6 +31,7 @@ public:
 
 
 	FOnStateAdded& GetOnStateAdded() { return OnStateAdded; }
+	void GetSubTrees(TArray<TWeakObjectPtr<UEzAbilityState>>& OutSubtrees) const;
 protected:
 
 	TWeakObjectPtr<UEzAbilityEditorData> TreeDataWeak;

+ 2 - 0
Ability/Plugins/EzAbility/Source/EzAbilityEditor/Public/SEzAbleTreeViewWidget.h

@@ -34,6 +34,8 @@ public:
 
 	TSharedPtr<STreeView<TWeakObjectPtr<UEzAbilityState>>> TreeView;
 	TSharedPtr<SScrollBox> ViewBox;
+	TArray<TWeakObjectPtr<UEzAbilityState>>				   Subtrees;
+
 
 	TArray<TWeakObjectPtr<UEzAbilityState>> TestState;
 	TArray<TObjectPtr<UEzAbilityState>>	TestStrongState;