// Project Lab - NHTV IGAD ////////////////////////////////////////// // Author: Yoshi van Belkom - 130118 ////////////////////////////////////////// // The Skill Tree Editor main viewport. // Can be used for editing a Skill Tree // and a Skill. ////////////////////////////////////////// #pragma once #include "SkillTreeEditorViewport.h" #include "SceneViewport.h" #include "AssetEditorModeManager.h" #include "PreviewScene.h" #include "ScopedTransaction.h" #include "AssetData.h" #include "SkillTreeObject.h" class FSkillTreeEditorViewportClient : public FEditorViewportClient { public: FSkillTreeEditorViewportClient( TWeakPtr a_skillTreeEditor, TWeakPtr a_skillTreeEditorViewportPtr ); // FViewportClient interface virtual void Draw( const FSceneView* a_view, FPrimitiveDrawInterface* a_drawInterface ) override; virtual void DrawCanvas( FViewport& a_viewport, FSceneView& a_view, FCanvas& a_canvas ) override; virtual void Tick( float a_deltaSeconds ) override; // End of FViewportClient interface // FEditorViewportClient interface virtual void ProcessClick( FSceneView& a_view, HHitProxy* a_hitProxy, FKey a_key, EInputEvent a_event, uint32 a_hitX, uint32 a_hitY ) override; virtual void MouseMove( FViewport* a_viewport, int32 a_mouseX, int32 a_mouseY ) override; virtual FLinearColor GetBackgroundColor() const override; // End of FEditorViewportClient interface //virtual void RequestFocusOnSelection( bool a_instant ); void EnterViewMode() { InternalActivateNewMode( ); } bool IsInViewMode() const { return true; } void UpdateRelatedSpritesList(); void ActivateEditMode(); // Set the current state of the Viewport. void IsSkill( bool a_state ) { m_state = a_state; } private: // The ID of the current hovered Skill. int32 m_hoverY = -1; // The current state of the Viewport. // True = Skill // False = Skill Tree bool m_state = false; // The Viewport screen size. FIntPoint m_screenSize; // The preview scene. FPreviewScene m_ownedPreviewScene; // Skill Tree Editor that owns this viewport. TWeakPtr m_skillTreeEditorPtr; // Pointer back to the Skill Tree viewport control that owns this. TWeakPtr m_skillTreeEditorViewportPtr; // The radius of the Hexagons. float m_hexSize = 20; void InternalActivateNewMode(); };