Ver Fonte

增加Tab和临时按钮

maboren há 3 meses atrás
pai
commit
2327dac74f

+ 2 - 1
Ability/Plugins/EzAbility/Source/EzAbilityEditor/EzAbilityEditor.Build.cs

@@ -45,7 +45,8 @@ public class EzAbilityEditor : ModuleRules
 				"StructUtilsEditor",
 				"GameplayTags",
 				"EzAbility",
-                "Kismet"
+                "Kismet",
+                "AdvancedPreviewScene"
             }
 			);
 			

+ 13 - 30
Ability/Plugins/EzAbility/Source/EzAbilityEditor/Private/EzAbilityEditorApplicationMode.cpp

@@ -7,54 +7,31 @@
 #include "SBlueprintEditorToolbar.h"
 #include "EzAbilityViewModule.h"
 #include "Modules/ModuleManager.h"
-#include "../Public/EzAbilityEditor.h"
-
-//#include "ModuleManager.h"
+#include "EzAbilityEditor.h"
+#include "EzAbilityTabSpawners.h"
+#include "AdvancedPreviewScene.h"
+#include "PreviewScene.h"
 
 #define LOCTEXT_NAMESPACE "EzAbilityEditorApplicationModeh"
 
-
-//FEzAbilityEditorApplicationMode::FEzAbilityEditorApplicationMode(TSharedPtr<class FEzAbilityEditor> InEzAbilityEditor)
-//: FBlueprintEditorApplicationMode(InEzAbilityEditor, FEzAbilityEditor::EzAbilityEditorMode, FEzAbilityEditor::GetLocalizedMode, false , false)
 FEzAbilityEditorApplicationMode::FEzAbilityEditorApplicationMode(const TSharedRef<class FWorkflowCentricApplication>& InHostingApp, TSharedPtr<class FEzAbilityEditor> InEzAbilityEditor)
 	: FBlueprintEditorApplicationMode(InEzAbilityEditor, FEzAbilityEditor::EzAbilityEditorMode, FEzAbilityEditor::GetLocalizedMode, false , false)
 {
 	EzAbilityEditor		= InEzAbilityEditor;
 	HostingAppPtr		= InHostingApp;
 
-	FEzAbilityViewModule& AbilityViewModule = FModuleManager::LoadModuleChecked<FEzAbilityViewModule>("AbilityView");
-
-	//EzAbilityEditorTabFactories.RegisterFactory(AbilityViewModule.CreateAdvancedPreviewSceneTabFactory(EzAbilityEditor, ));
+	//FEzAbilityViewModule& AbilityViewModule = FModuleManager::LoadModuleChecked<FEzAbilityViewModule>("AbilityView");
+ 	PreviewScene = MakeShareable(new FAdvancedPreviewScene(FPreviewScene::ConstructionValues()));
+ 	EzAbilityEditorTabFactories.RegisterFactory(CreateAdvancedPreviewSceneTabFactory(InHostingApp,  PreviewScene.ToSharedRef()));
 
 }
 
 
 void FEzAbilityEditorApplicationMode::RegisterTabFactories(TSharedPtr<class FTabManager> InTabManager)
 {
-	
   	TSharedPtr<FEzAbilityEditor> EzAbilityEditorPtr = EzAbilityEditor.Pin();
 	EzAbilityEditorPtr->RegisterToolbarTab(InTabManager.ToSharedRef());
 	EzAbilityEditorPtr->PushTabFactories(EzAbilityEditorTabFactories);
-
-//  	EzAbilityEditorPtr->RegisterTabSpawners(InTabManager.ToSharedRef());
-// 	EzAbilityEditorPtr->PushTabFactories(EzAbilityEditorTabFactories);
-// 	TSharedPtr<FWorkflowCentricApplication> HostingApp = HostingAppPtr.Pin();
-// 	HostingApp->RegisterTabSpawners(InTabManager.ToSharedRef());
-// 	HostingApp->PushTabFactories(EzAbilityEditorTabFactories);
-
-// 	FBlueprintEditorApplicationMode::RegisterTabFactories(InTabManager);
-// 	check(DialogueDeductionGraphEditor.IsValid());
-// 	TSharedPtr<FDialogueDeductionGraphEditor> DialogueEditorPtr = DialogueDeductionGraphEditor.Pin();
-// 
-// 	DialogueEditorPtr->RegisterToolbarTab(InTabManager.ToSharedRef());
-// 
-// 	DialogueEditorPtr->DocumentManager->RegisterDocumentFactory(MakeShareable(new FDialogueGaraphEditorSummoner(DialogueEditorPtr)));
-// 
-// 	// Mode-specific setup
-// 	DialogueEditorPtr->PushTabFactories(DialogueEditorTabFactories);
-// 
-	//FApplicationMode::RegisterTabFactories(InTabManager);
- 	//FBlueprintEditorApplicationMode::RegisterTabFactories(InTabManager);
 }
 
 void FEzAbilityEditorApplicationMode::AddTabFactory(FCreateWorkflowTabFactory FactoryCreator)
@@ -70,4 +47,10 @@ void FEzAbilityEditorApplicationMode::RemoveTabFactory(FName TabFactoryID)
 	EzAbilityEditorTabFactories.UnregisterFactory(TabFactoryID);
 }
 
+TSharedRef<FWorkflowTabFactory> FEzAbilityEditorApplicationMode::CreateAdvancedPreviewSceneTabFactory(const TSharedRef<class FWorkflowCentricApplication>& InHostingApp, const TSharedRef<FAdvancedPreviewScene>& InPreviewScene) const
+{
+	return MakeShareable(new FEzAdvancedPreviewSceneTabSummoner(InHostingApp, InPreviewScene));
+}
+
+
 #undef LOCTEXT_NAMESPACE

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

@@ -12,6 +12,8 @@
 #include "WorkflowOrientedApp/WorkflowUObjectDocuments.h"
 #include "EditorStyleSet.h"
 #include "../Public/EZAbilityBlueprint.h"
+#include "EzAbilityEditorApplicationMode.h"
+#include "EzAbilityEditor.h"
 //#include "DialogueEditorTabs.h"
 //#include "SEditorViewport.h"
 //#include "SDialogueEditorViewport.h"

+ 29 - 19
Ability/Plugins/EzAbility/Source/EzAbilityEditor/Private/EzAbilityTabSpawners.cpp

@@ -6,6 +6,7 @@
 #include "Widgets/Text/STextBlock.h"
 #include "Styling/AppStyle.h"
 #include "Styling/CoreStyle.h"
+#include "SAdvancedPreviewDetailsTab.h"
 
 #define LOCTEXT_NAMESPACE "AbilityModes"
 
@@ -14,15 +15,15 @@
 
 const FName FAbilityTabs::EzAdvancedPreviewSceneSettingsID("EzAdvancedPreviewTab");
 
-FEzAdvancedPreviewSceneTabSummoner::FEzAdvancedPreviewSceneTabSummoner(TSharedPtr<class FAssetEditorToolkit> InHostingApp, const TSharedRef<IPersonaPreviewScene>& InPreviewScene)
+FEzAdvancedPreviewSceneTabSummoner::FEzAdvancedPreviewSceneTabSummoner(TSharedPtr<class FAssetEditorToolkit> InHostingApp, const TSharedRef<FAdvancedPreviewScene>& InPreviewScene)
 	: FWorkflowTabFactory(FAbilityTabs::EzAdvancedPreviewSceneSettingsID, InHostingApp)
 	, PreviewScene(InPreviewScene)
 {
-	TabLabel = LOCTEXT("PreviewSceneSettingsTab", "Preview Scene Settings");
-	TabIcon = FSlateIcon(FAppStyle::GetAppStyleSetName(), "LevelEditor.Tabs.Details");	
+	TabLabel = LOCTEXT("AbilityTab", "AbilityView");
+	TabIcon = FSlateIcon(FAppStyle::GetAppStyleSetName(), "LevelEditor.Tabs.Details");
 	bIsSingleton = true;
-	
-	ViewMenuDescription = LOCTEXT("AdvancedPreviewScene", "Preview Scene Settings");
+
+	ViewMenuDescription = LOCTEXT("AdvancedPreviewScene", "AbilityView");
 	ViewMenuTooltip = LOCTEXT("AdvancedPreviewScene_ToolTip", "Shows the advanced preview scene settings");
 }
 
@@ -43,20 +44,29 @@ FEzAdvancedPreviewSceneTabSummoner::FEzAdvancedPreviewSceneTabSummoner(TSharedPt
 // 	return MakeShareable(new FPreviewMeshCollectionEntryCustomization(PreviewScene.Pin().ToSharedRef()));
 // }
 
-// TSharedRef<SWidget> FEzAdvancedPreviewSceneTabSummoner::CreateTabBody(const FWorkflowTabSpawnInfo& Info) const
-// {
-// 	return SNew();
-// // 	TSharedRef<FAnimationEditorPreviewScene> PreviewSceneRef = StaticCastSharedRef<FAnimationEditorPreviewScene>(PreviewScene.Pin().ToSharedRef());
-// // 
-// // 	TArray<FAdvancedPreviewSceneModule::FDetailCustomizationInfo> DetailsCustomizations;
-// // 	TArray<FAdvancedPreviewSceneModule::FPropertyTypeCustomizationInfo> PropertyTypeCustomizations;
-// // 
-// // 	DetailsCustomizations.Add({ UPersonaPreviewSceneDescription::StaticClass(), FOnGetDetailCustomizationInstance::CreateSP(const_cast<FAdvancedPreviewSceneTabSummoner*>(this), &FAdvancedPreviewSceneTabSummoner::CustomizePreviewSceneDescription) });
-// // 	PropertyTypeCustomizations.Add({ FPreviewMeshCollectionEntry::StaticStruct()->GetFName(), FOnGetPropertyTypeCustomizationInstance::CreateSP(const_cast<FAdvancedPreviewSceneTabSummoner*>(this), &FAdvancedPreviewSceneTabSummoner::CustomizePreviewMeshCollectionEntry) });
-// // 
-// // 	FAdvancedPreviewSceneModule& AdvancedPreviewSceneModule = FModuleManager::LoadModuleChecked<FAdvancedPreviewSceneModule>("AdvancedPreviewScene");
-// // 	return AdvancedPreviewSceneModule.CreateAdvancedPreviewSceneSettingsWidget(PreviewSceneRef, PreviewSceneRef->GetPreviewSceneDescription(), DetailsCustomizations, PropertyTypeCustomizations);
-// }
+
+TSharedRef<SWidget> FEzAdvancedPreviewSceneTabSummoner::CreateTabBody(const FWorkflowTabSpawnInfo& Info) const
+{
+// 	const TSharedPtr<FAdvancedPreviewScene> &InPreviewScene = PreviewScene.Pin();
+// 	return SNew(SAdvancedPreviewDetailsTab, InPreviewScene);
+
+	return SNew(SButton)
+		.VAlign(VAlign_Center)
+		.HAlign(HAlign_Center)
+		.Text(LOCTEXT("SplitSprites", "Split Sprites"))
+		.ToolTipText(LOCTEXT("SplitSprites_Tooltip", "Splits all sprite instances into separate sprite actors or components"));
+
+// 	TSharedRef<FAnimationEditorPreviewScene> PreviewSceneRef = StaticCastSharedRef<FAnimationEditorPreviewScene>(PreviewScene.Pin().ToSharedRef());
+// 
+// 	TArray<FAdvancedPreviewSceneModule::FDetailCustomizationInfo> DetailsCustomizations;
+// 	TArray<FAdvancedPreviewSceneModule::FPropertyTypeCustomizationInfo> PropertyTypeCustomizations;
+// 
+// 	DetailsCustomizations.Add({ UPersonaPreviewSceneDescription::StaticClass(), FOnGetDetailCustomizationInstance::CreateSP(const_cast<FAdvancedPreviewSceneTabSummoner*>(this), &FAdvancedPreviewSceneTabSummoner::CustomizePreviewSceneDescription) });
+// 	PropertyTypeCustomizations.Add({ FPreviewMeshCollectionEntry::StaticStruct()->GetFName(), FOnGetPropertyTypeCustomizationInstance::CreateSP(const_cast<FAdvancedPreviewSceneTabSummoner*>(this), &FAdvancedPreviewSceneTabSummoner::CustomizePreviewMeshCollectionEntry) });
+// 
+// 	FAdvancedPreviewSceneModule& AdvancedPreviewSceneModule = FModuleManager::LoadModuleChecked<FAdvancedPreviewSceneModule>("AdvancedPreviewScene");
+// 	return AdvancedPreviewSceneModule.CreateAdvancedPreviewSceneSettingsWidget(PreviewSceneRef, PreviewSceneRef->GetPreviewSceneDescription(), DetailsCustomizations, PropertyTypeCustomizations);
+}
 
 FText FEzAdvancedPreviewSceneTabSummoner::GetTabToolTipText(const FWorkflowTabSpawnInfo& Info) const
 {

+ 3 - 0
Ability/Plugins/EzAbility/Source/EzAbilityEditor/Private/EzAbilityViewModule.cpp

@@ -17,3 +17,6 @@ TSharedRef<class FWorkflowTabFactory> FEzAbilityViewModule::CreateAdvancedPrevie
 {
 	return MakeShareable(new FEzAdvancedPreviewSceneTabSummoner(InHostingApp, InPreviewScene));
 }
+
+
+#undef LOCTEXT_NAMESPACE

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

@@ -6,6 +6,7 @@
 #include "WorkflowOrientedApp/WorkflowTabManager.h"
 #include "WorkflowOrientedApp/ApplicationMode.h"
 #include "BlueprintEditorModes.h"
+#include "AdvancedPreviewScene.h"
 
 /**
  * 
@@ -22,9 +23,28 @@ protected:
 
 	virtual void AddTabFactory(FCreateWorkflowTabFactory FactoryCreator) override;
 	virtual void RemoveTabFactory(FName TabFactoryID) override;
+
+
+
+	/** Create a tab factory used to configure preview scene settings */
+	virtual TSharedRef<FWorkflowTabFactory> CreateAdvancedPreviewSceneTabFactory(
+		const TSharedRef<class FWorkflowCentricApplication>& InHostingApp,
+		const TSharedRef<FAdvancedPreviewScene>& InPreviewScene
+	) const;
+
+	/** Gets the extensibility managers for outside entities to extend persona editor's menus and toolbars */
+	virtual TSharedPtr<FExtensibilityManager> GetMenuExtensibilityManager() { return MenuExtensibilityManager; }
+	virtual TSharedPtr<FExtensibilityManager> GetToolBarExtensibilityManager() { return ToolBarExtensibilityManager; }
+
 protected:
 	TWeakPtr<class FEzAbilityEditor> EzAbilityEditor;
 	TWeakPtr<class FWorkflowCentricApplication>	HostingAppPtr;
-	// Set of spawnable tabs in behavior tree editing mode
+
 	FWorkflowAllowedTabSet EzAbilityEditorTabFactories;
+
+	TSharedPtr<FAdvancedPreviewScene> PreviewScene;
+
+private:
+	TSharedPtr<FExtensibilityManager> MenuExtensibilityManager;
+	TSharedPtr<FExtensibilityManager> ToolBarExtensibilityManager;
 };

+ 4 - 3
Ability/Plugins/EzAbility/Source/EzAbilityEditor/Public/EzAbilityTabSpawners.h

@@ -19,6 +19,7 @@
 #include "AnimationEditorViewportClient.h"
 #include "SSingleObjectDetailsPanel.h"
 #include "PersonaTabs.h"
+#include "AdvancedPreviewSceneModule.h"
 
 #define LOCTEXT_NAMESPACE "AbilityMode"
 
@@ -40,8 +41,8 @@ struct FAbilityTabs
 struct FEzAdvancedPreviewSceneTabSummoner : public FWorkflowTabFactory
 {
 public:
- 	FEzAdvancedPreviewSceneTabSummoner(TSharedPtr<class FAssetEditorToolkit> InHostingApp, const TSharedRef<IPersonaPreviewScene>& InPreviewScene); 
-	//virtual TSharedRef<SWidget> CreateTabBody(const FWorkflowTabSpawnInfo& Info) const override;
+ 	FEzAdvancedPreviewSceneTabSummoner(TSharedPtr<class FAssetEditorToolkit> InHostingApp, const TSharedRef<FAdvancedPreviewScene>& InPreviewScene); 
+	virtual TSharedRef<SWidget> CreateTabBody(const FWorkflowTabSpawnInfo& Info) const override;
 	virtual FText GetTabToolTipText(const FWorkflowTabSpawnInfo& Info) const override;
 
 private:
@@ -52,7 +53,7 @@ private:
 	TSharedRef<class IPropertyTypeCustomization> CustomizePreviewMeshCollectionEntry();
 
 private:
-	TWeakPtr<class IPersonaPreviewScene> PreviewScene;
+	TWeakPtr<class FAdvancedPreviewScene> PreviewScene;
 };