haxis/Plugins/SkillTree/Source/SkillTreeEditor/Private/SkillTreeEditorViewport.h

72 lines
2.8 KiB
C++

// Project Lab - NHTV IGAD
//////////////////////////////////////////
// Author: Yoshi van Belkom - 130118
//////////////////////////////////////////
// The Skill Tree Editor main class.
//////////////////////////////////////////
#pragma once
#include "Toolkits/AssetEditorToolkit.h"
#include "Toolkits/AssetEditorManager.h"
class SSkillTreeEditorViewport;
class USkillTreeObject;
class USkillObject;
class FSkillTreeEditorViewport : public FAssetEditorToolkit//, public FGCObject
{
public:
//The ID of the selected Skill.
int32 selectedY = -1;
// IToolkit interface
virtual void RegisterTabSpawners( const TSharedRef<class FTabManager>& a_tabManager ) override;
virtual void UnregisterTabSpawners( const TSharedRef<class FTabManager>& a_tabManager ) override;
// End of IToolkit interface
// FAssetEditorToolkit
virtual FName GetToolkitFName() const override;
virtual FText GetBaseToolkitName() const override;
virtual FText GetToolkitName() const override;
virtual FText GetToolkitToolTipText() const override;
virtual FLinearColor GetWorldCentricTabColorScale() const override;
virtual FString GetWorldCentricTabPrefix() const override;
virtual FString GetDocumentationLink() const override;
virtual void SaveAsset_Execute() override;
// End of FAssetEditorToolkit
//Set the Skill to Edit.
void SetSkillBeingEdited( USkillObject* a_skill );
//Get the Current Skill Tree that is being edited.
USkillTreeObject* GetSkillTreeBeingEdited() const { return m_skillTreeBeingEdited; };
//Get the Current Skill that is being edited.
USkillObject* GetSkillBeingEdited() const { return m_skillBeingEdited; };
void InitSkillTreeEditor( const EToolkitMode::Type a_mode, const TSharedPtr< class IToolkitHost >& a_toolkitHost, class USkillTreeObject* a_skillTree, class USkillObject* a_skill = NULL );
void UpdateSkills();
protected:
// A temporary list of Skills to check agains to see if new Skills have been added.
TArray<TSubclassOf<USkillObject>> m_tmpSkills;
// The pointer to the current Skill Tree.
USkillTreeObject* m_skillTreeBeingEdited;
// The pointer to the current Skill.
USkillObject* m_skillBeingEdited = NULL;
// The pointer to the Skill Tree Viewport.
TSharedPtr<SSkillTreeEditorViewport> m_skillTreeViewport;
// The pointer to the Skill Viewport.
TSharedPtr<SSkillTreeEditorViewport> m_skillViewport;
// Functions to spawn the Viewports and Details
TSharedRef<SDockTab> SpawnTab_SKViewport( const FSpawnTabArgs& a_args );
TSharedRef<SDockTab> SpawnTab_SViewport( const FSpawnTabArgs& a_args );
TSharedRef<SDockTab> SpawnTab_SKDViewport( const FSpawnTabArgs& a_args );
TSharedRef<SDockTab> SpawnTab_SDViewport( const FSpawnTabArgs& a_args );
// Creates the toolbar buttons.
void CreateModeToolbarWidgets( FToolBarBuilder& ToolbarBuilder );
};