Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Copyright (c) 2016 Artem A. Mavrin
- #pragma once
- #include "Editor/Kismet/Public/BlueprintEditor.h"
- #include "DialogueBlueprint.h"
- #include "PreviewScene.h"
- class FDialogueBlueprintEditor : public FBlueprintEditor
- {
- public:
- DECLARE_MULTICAST_DELEGATE(FOnDialogueTreeSaved)
- DECLARE_MULTICAST_DELEGATE(FOnSelectedNodesChanged)
- public:
- FDialogueBlueprintEditor();
- virtual ~FDialogueBlueprintEditor();
- void InitDialogueTreeBlueprintEditor(const EToolkitMode::Type Mode, const TSharedPtr< IToolkitHost >& InitToolkitHost, const TArray<UBlueprint*>& InBlueprints, bool bShouldOpenInDefaultsMode);
- /** FBlueprintEditor interface */
- virtual void Tick(float DeltaTime) override;
- virtual void PostUndo(bool bSuccessful) override;
- virtual void PostRedo(bool bSuccessful) override;
- /** FGCObjectInterface */
- virtual void AddReferencedObjects(FReferenceCollector& Collector) override;
- /** @return The dialogue tree blueprint currently being edited in this editor */
- class UDialogueBlueprint* GetDialogueTreeBlueprintObj() const;
- TSharedPtr<class FDialogueBlueprintEditorToolbar> GetDialogueTreeToolbarBuilder() { return DialogueTreeToolbar; }
- /** Restores the dialogue tree graph we were editing or creates a new one if none is available */
- void RestoreDialogueTree();
- void OnGraphChanged(const FEdGraphEditAction& EditAction);
- UDialogue* GetDialogue() const;
- void UpdateDialogue(UBlueprint* InBlueprint);
- int32 GetSelectedNodesCount() { return SelectedNodesCount; }
- void UpdateSelectedNodesCount(int32 InSelectedNodesCount) { SelectedNodesCount = InSelectedNodesCount; }
- TSharedRef<SGraphEditor> CreateGraphEditorWidget();
- // commands
- void BindCommands();
- void OnCreateComment();
- void SelectAllNodes_Dialogue();
- bool CanSelectAllNodes_Dialogue();
- void DeleteSelectedNodes_Dialogue();
- bool CanDeleteNodes_Dialogue();
- void CopySelectedNodes_Dialogue();
- bool CanCopyNodes_Dialogue();
- void DeleteSelectedDuplicatableNodes_Dialogue();
- void CutSelectedNodes_Dialogue();
- bool CanCutNodes_Dialogue();
- void PasteNodes_Dialogue();
- void PasteNodesHere_Dialogue(class UEdGraph* DestinationGraph, const FVector2D& GraphLocation);
- bool CanPasteNodes_Dialogue();
- void DuplicateNodes_Dialogue();
- bool CanDuplicateNodes_Dialogue();
- // End commands
- void OnNodeTitleCommitted(const FText& NewText, ETextCommit::Type CommitInfo, UEdGraphNode* NodeBeingChanged);
- void OnSelectedNodesChanged(const TSet<class UObject*>& NewSelection);
- TSharedPtr<SGraphEditor> GraphEditor;
- /** Command list for the graph editor */
- TSharedPtr<FUICommandList> GraphEditorCommands;
- FOnSelectedNodesChanged OnSelectedNodesChangedDelegate;
- protected:
- FOnGraphChanged::FDelegate MyRegisteredGraphChangedDelegate;
- FDelegateHandle MyRegisteredGraphChangedDelegateHandle;
- protected:
- // Begin FBlueprintEditor
- virtual void RegisterApplicationModes(const TArray<UBlueprint*>& InBlueprints, bool bShouldOpenInDefaultsMode, bool bNewlyCreated = false) override;
- virtual FGraphAppearanceInfo GetGraphAppearance(class UEdGraph* InGraph) const override;
- // End FBlueprintEditor
- UDialogueTree* DialogueTree;
- private:
- /** The toolbar builder associated with this editor */
- TSharedPtr<class FDialogueBlueprintEditorToolbar>DialogueTreeToolbar;
- /** The preview scene that owns the preview GUI */
- FPreviewScene PreviewScene;
- UDialogueBlueprint* DialogueBlueprint;
- mutable TWeakObjectPtr<UDialogue> DialoguePtr;
- FOnDialogueTreeSaved OnDialogueTreeSaved;
- bool bIsSimulateEnabled;
- bool bIsRealTime;
- int32 SelectedNodesCount;
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement