Browse Source

梳理增加节点流程

maboren 2 months ago
parent
commit
28eae09ecc

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

@@ -5,6 +5,7 @@
 #include "EZAbilityBlueprint.h"
 #include "EZAbility.h"
 #include "Kismet2/KismetEditorUtilities.h"
+#include "EzAbilityEditorData.h"
 
 
 #define LOCTEXT_NAMESPACE "EZAbilityAssetFactory"
@@ -17,7 +18,12 @@ UEZAbilityAssetFactory::UEZAbilityAssetFactory()
 
 UObject* UEZAbilityAssetFactory::FactoryCreateNew(UClass* Class, UObject* InParent, FName Name, EObjectFlags Flags, UObject* Context, FFeedbackContext* Warn)
 {
-	UEzAbility* NewEzAbilityTree = NewObject<UEzAbility>(InParent, Class, Name, Flags);
+	UEzAbility*				NewEzAbilityTree		= NewObject<UEzAbility>(InParent, Class, Name, Flags);
+	UEzAbilityEditorData*	EditorData				= NewObject<UEzAbilityEditorData>(NewEzAbilityTree, FName(), RF_Transactional);
+	EditorData->AddRootState();
+
+	NewEzAbilityTree->EditorData = EditorData;
+	
 
 	return NewEzAbilityTree;
 }

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

@@ -39,17 +39,13 @@ FEzAbilityEditor::~FEzAbilityEditor()
 
 void FEzAbilityEditor::InitEzAbilityEditor(const EToolkitMode::Type Mode, const TSharedPtr< class IToolkitHost >& InitToolkitHost,  UEzAbility* InEzAbilityAsset)
 {
-	//EzAbilityDataAsset = InEzAbilityAsset;
 	EzAbilityAsset = InEzAbilityAsset;
 
-	// TODO::因为最初使用了Blueprint,此处临时做了处理
-	EzAbilityAsset->EditorData = NewObject<UEzAbilityEditorData>();
 	AbleTreeViewOperationMode = MakeShared<FEzAbleTreeViewOperationMode>();
 
-	if (EzAbilityAsset->EditorData != nullptr)
+	if (UEzAbilityEditorData* EditorData =  Cast<UEzAbilityEditorData>(EzAbilityAsset->EditorData))
 	{
-		UEzAbilityEditorData* InTreeData = Cast<UEzAbilityEditorData>(EzAbilityAsset->EditorData);
-		AbleTreeViewOperationMode->Init(InTreeData);
+		AbleTreeViewOperationMode->Init(EditorData);
 	}
 
 	/* 这里面需要注册FPersonaModule 之类的东西 */

+ 8 - 35
Ability/Plugins/EzAbility/Source/EzAbilityEditor/Private/SEzAbleTreeViewWidget.cpp

@@ -26,10 +26,10 @@ void SEzAbleTreeViewWidget::Construct(const FArguments& InArgs, TSharedPtr<FEzAb
 
 	AbleTreeViewOperationMode->GetSubTrees(Subtrees);
 
-	UEzAbilityState* AbilityState = NewObject<UEzAbilityState>();
-	UEzAbilityState* AbilitySub = NewObject<UEzAbilityState>();
-	TestStrongState.Add(AbilityState);
-	TestState.Add(TestStrongState[0]);
+// 	UEzAbilityState* AbilityState = NewObject<UEzAbilityState>();
+// 	UEzAbilityState* AbilitySub = NewObject<UEzAbilityState>();
+// 	TestStrongState.Add(AbilityState);
+// 	TestState.Add(TestStrongState[0]);
 
 	TreeView = SNew(STreeView<TWeakObjectPtr<UEzAbilityState>>)
 		.OnGenerateRow(this, &SEzAbleTreeViewWidget::HandleGenerateRow)
@@ -132,12 +132,10 @@ FReply SEzAbleTreeViewWidget::HandleAddStateButton()
 // 		// Add root state at the lowest level.
 // 		StateTreeViewModel->AddState(nullptr);
 // 	}
-
+	
 	AbleTreeViewOperationMode->AddState(nullptr);
 
 	return FReply::Handled();
-// 	UE_LOG(LogTemp, Log, TEXT("SEzAbleTreeViewWidget::HandleAddStateButton"));
-// 	return FReply::Handled();
 }
 
 TSharedRef<ITableRow> SEzAbleTreeViewWidget::HandleGenerateRow(TWeakObjectPtr<UEzAbilityState> InState, const TSharedRef<STableViewBase>& InOwnerTableView)
@@ -148,9 +146,9 @@ TSharedRef<ITableRow> SEzAbleTreeViewWidget::HandleGenerateRow(TWeakObjectPtr<UE
 void SEzAbleTreeViewWidget::HandleGetChildren(TWeakObjectPtr<UEzAbilityState> InParent, TArray<TWeakObjectPtr<UEzAbilityState>>& OutChildren)
 {
 	//Test Code.
-	UE_LOG(LogTemp, Log, TEXT("EZAbleTreeViewWidget HandleGetChildren"));
+	//UE_LOG(LogTemp, Log, TEXT("EZAbleTreeViewWidget HandleGetChildren"));
 
-	InParent->AddChildState(FName());
+	//InParent->AddChildState(FName());
 
 	if (const UEzAbilityState* Parent = InParent.Get())
 	{
@@ -161,37 +159,12 @@ void SEzAbleTreeViewWidget::HandleGetChildren(TWeakObjectPtr<UEzAbilityState> In
 
 void SEzAbleTreeViewWidget::UpdateTree(bool bExpandPersistent /*= false*/)
 {
-
-// 	TArray<TWeakObjectPtr<UEzAbilityState>> TestState;
-// 	UEzAbilityState* AbilityState = NewObject<UEzAbilityState>();
-// 	TestState.Add(AbilityState);
-	TreeView->SetTreeItemsSource(&TestState);
-	//TreeView->GenerateNewWidget(AbilityState);
-	//TreeView->WidgetFromItem(AbilityState);
 	TreeView->RequestTreeRefresh();
-
-
 }
 
 void SEzAbleTreeViewWidget::HandleModelStateAdded(UEzAbilityState* ParentState, UEzAbilityState* NewState)
-{
-// 	TreeView->SetItemSelection(NewState, true);
-// 	TreeView->SetItemExpansion(NewState, true);
-	
-	//Test code.
-	if (TestState.Num() >= 2)
-	{
-		TreeView->SetItemSelection(TestState[1], true);
-	}
-
-	UEzAbilityState* AbilityState = NewObject<UEzAbilityState>();
-	TestStrongState.Add(AbilityState);
-	TestState.Add(AbilityState);
-
-
+{	
 	TreeView->RequestTreeRefresh();
-// 	TreeView->RequestScrollIntoView(TestAddState);
-// 	TreeView->RequestTreeRefresh();
 }
 
 #undef LOCTEXT_NAMESPACE