Advertisement
artemavrin

DialogueBlueprintEditor.h

Aug 29th, 2016
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.56 KB | None | 0 0
  1. //Copyright (c) 2016 Artem A. Mavrin
  2.  
  3. #pragma once
  4.  
  5. #include "Editor/Kismet/Public/BlueprintEditor.h"
  6. #include "DialogueBlueprint.h"
  7. #include "PreviewScene.h"
  8.  
  9. class FDialogueBlueprintEditor : public FBlueprintEditor
  10. {
  11.  
  12. public:
  13.     DECLARE_MULTICAST_DELEGATE(FOnDialogueTreeSaved)
  14.     DECLARE_MULTICAST_DELEGATE(FOnSelectedNodesChanged)
  15. public:
  16.     FDialogueBlueprintEditor();
  17.  
  18.     virtual ~FDialogueBlueprintEditor();
  19.  
  20.     void InitDialogueTreeBlueprintEditor(const EToolkitMode::Type Mode, const TSharedPtr< IToolkitHost >& InitToolkitHost, const TArray<UBlueprint*>& InBlueprints, bool bShouldOpenInDefaultsMode);
  21.  
  22.     /** FBlueprintEditor interface */
  23.     virtual void Tick(float DeltaTime) override;
  24.     virtual void PostUndo(bool bSuccessful) override;
  25.     virtual void PostRedo(bool bSuccessful) override;
  26.  
  27.     /** FGCObjectInterface */
  28.     virtual void AddReferencedObjects(FReferenceCollector& Collector) override;
  29.  
  30.     /** @return The dialogue tree blueprint currently being edited in this editor */
  31.     class UDialogueBlueprint* GetDialogueTreeBlueprintObj() const;
  32.  
  33.     TSharedPtr<class FDialogueBlueprintEditorToolbar> GetDialogueTreeToolbarBuilder() { return DialogueTreeToolbar; }
  34.  
  35.     /** Restores the dialogue tree graph we were editing or creates a new one if none is available */
  36.     void RestoreDialogueTree();
  37.     void OnGraphChanged(const FEdGraphEditAction& EditAction);
  38.  
  39.     UDialogue* GetDialogue() const;
  40.     void UpdateDialogue(UBlueprint* InBlueprint);
  41.  
  42.     int32 GetSelectedNodesCount() { return SelectedNodesCount; }
  43.     void UpdateSelectedNodesCount(int32 InSelectedNodesCount) { SelectedNodesCount = InSelectedNodesCount; }
  44.  
  45.     TSharedRef<SGraphEditor> CreateGraphEditorWidget();
  46.    
  47.     // commands
  48.     void BindCommands();
  49.     void OnCreateComment();
  50.     void SelectAllNodes_Dialogue();
  51.     bool CanSelectAllNodes_Dialogue();
  52.     void DeleteSelectedNodes_Dialogue();
  53.     bool CanDeleteNodes_Dialogue();
  54.     void CopySelectedNodes_Dialogue();
  55.     bool CanCopyNodes_Dialogue();
  56.     void DeleteSelectedDuplicatableNodes_Dialogue();
  57.     void CutSelectedNodes_Dialogue();
  58.     bool CanCutNodes_Dialogue();
  59.     void PasteNodes_Dialogue();
  60.     void PasteNodesHere_Dialogue(class UEdGraph* DestinationGraph, const FVector2D& GraphLocation);
  61.     bool CanPasteNodes_Dialogue();
  62.     void DuplicateNodes_Dialogue();
  63.     bool CanDuplicateNodes_Dialogue();
  64.     // End commands
  65.  
  66.     void OnNodeTitleCommitted(const FText& NewText, ETextCommit::Type CommitInfo, UEdGraphNode* NodeBeingChanged);
  67.     void OnSelectedNodesChanged(const TSet<class UObject*>& NewSelection);
  68.  
  69.     TSharedPtr<SGraphEditor> GraphEditor;
  70.  
  71.     /** Command list for the graph editor */
  72.     TSharedPtr<FUICommandList> GraphEditorCommands;
  73.     FOnSelectedNodesChanged OnSelectedNodesChangedDelegate;
  74.  
  75. protected:
  76.     FOnGraphChanged::FDelegate MyRegisteredGraphChangedDelegate;
  77.     FDelegateHandle            MyRegisteredGraphChangedDelegateHandle;
  78.  
  79. protected:
  80.     // Begin FBlueprintEditor
  81.     virtual void RegisterApplicationModes(const TArray<UBlueprint*>& InBlueprints, bool bShouldOpenInDefaultsMode, bool bNewlyCreated = false) override;
  82.     virtual FGraphAppearanceInfo GetGraphAppearance(class UEdGraph* InGraph) const override;
  83.     // End FBlueprintEditor
  84.  
  85.     UDialogueTree* DialogueTree;
  86.  
  87. private:
  88.     /** The toolbar builder associated with this editor */
  89.     TSharedPtr<class FDialogueBlueprintEditorToolbar>DialogueTreeToolbar;
  90.     /** The preview scene that owns the preview GUI */
  91.     FPreviewScene PreviewScene;
  92.     UDialogueBlueprint* DialogueBlueprint;
  93.  
  94.     mutable TWeakObjectPtr<UDialogue> DialoguePtr;
  95.     FOnDialogueTreeSaved OnDialogueTreeSaved;
  96.     bool bIsSimulateEnabled;
  97.     bool bIsRealTime;
  98.  
  99.     int32 SelectedNodesCount;
  100. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement