// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "StateTree.h" #include "StateTreeViewModel.h" #include "EditorSubsystem.h" #include "StateTreeEditingSubsystem.generated.h" class SWidget; class FStateTreeViewModel; class FUICommandList; struct FStateTreeCompilerLog; UCLASS() class STATETREEEDITORMODULE_API UStateTreeEditingSubsystem : public UEditorSubsystem { GENERATED_BODY() public: UStateTreeEditingSubsystem() {} TSharedRef FindOrAddViewModel(const TNonNullPtr InStateTree); static bool CompileStateTree(const TNonNullPtrInStateTree, FStateTreeCompilerLog& InOutLog); static TSharedRef GetStateTreeView(TSharedRef InViewModel, const TSharedRef& TreeViewCommandList); // Validates asset state static void ValidateStateTree(const TNonNullPtr InStateTree); // Calculates editor data hash of the asset. static uint32 CalculateStateTreeHash(const TNonNullPtr InStateTree); protected: TMap, TSharedPtr> StateTreeViewModels; };