You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
- Added specific "subtree" states which can be linked to via a "linked" state - Subtrees can only bind data back to the their root state (or tree "global" data) - Added property bag based parameters to subtree and linked states - Update (transient) property bag structs before resolving property paths - Linked states reflect their parameters from the state they link to - Added property binding to and from parameters - Relaxed the property binding to fail if the source data is not available - Allow enter conditions to bind to tasks, and fail the expression if trying to access unaccessible data - Added icon for linked and subtree states - Added source type for all binding source structs - Added UStateTreeEditorData::VisitHierarchy to simplify iterating over all states #jira UE-147507 #rb Yoan.StAmant #preflight 626a47182d28b9d0f77223f5 [CL 19954567 by mikko mononen in ue5-main branch]
79 lines
2.6 KiB
C++
79 lines
2.6 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "StateTreeState.h"
|
|
#include "Widgets/Views/STableRow.h"
|
|
|
|
class UStateTreeEditorData;
|
|
class SStateTreeView;
|
|
class SInlineEditableTextBlock;
|
|
class FStateTreeViewModel;
|
|
|
|
class SStateTreeViewRow : public STableRow<UStateTreeState*>
|
|
{
|
|
public:
|
|
|
|
SLATE_BEGIN_ARGS(SStateTreeViewRow)
|
|
{
|
|
}
|
|
SLATE_END_ARGS()
|
|
|
|
void Construct(const FArguments& InArgs, const TSharedRef<STableViewBase>& InOwnerTableView, UStateTreeState* InState, TSharedRef<FStateTreeViewModel> InStateTreeViewModel);
|
|
void RequestRename();
|
|
|
|
private:
|
|
|
|
FSlateColor GetTitleColor() const;
|
|
FText GetStateDesc() const;
|
|
|
|
EVisibility GetConditionVisibility() const;
|
|
EVisibility GetSelectorVisibility() const;
|
|
FText GetSelectorDesc() const;
|
|
|
|
EVisibility GetEvaluatorsVisibility() const;
|
|
FText GetEvaluatorsDesc() const;
|
|
|
|
EVisibility GetTasksVisibility() const;
|
|
FText GetTasksDesc() const;
|
|
|
|
EVisibility GetLinkedStateVisibility() const;
|
|
FText GetLinkedStateDesc() const;
|
|
|
|
EVisibility GetCompletedTransitionVisibility() const;
|
|
FText GetCompletedTransitionsDesc() const;
|
|
FText GetCompletedTransitionsIcon() const;
|
|
|
|
EVisibility GetSucceededTransitionVisibility() const;
|
|
FText GetSucceededTransitionDesc() const;
|
|
FText GetSucceededTransitionIcon() const;
|
|
|
|
EVisibility GetFailedTransitionVisibility() const;
|
|
FText GetFailedTransitionDesc() const;
|
|
FText GetFailedTransitionIcon() const;
|
|
|
|
EVisibility GetConditionalTransitionsVisibility() const;
|
|
FText GetConditionalTransitionsDesc() const;
|
|
|
|
FText GetTransitionsDesc(const UStateTreeState& State, const EStateTreeTransitionEvent Event) const;
|
|
FText GetTransitionsIcon(const UStateTreeState& State, const EStateTreeTransitionEvent Event) const;
|
|
EVisibility GetTransitionsVisibility(const UStateTreeState& State, const EStateTreeTransitionEvent Event) const;
|
|
|
|
bool HasParentTransitionForEvent(const UStateTreeState& State, const EStateTreeTransitionEvent Event) const;
|
|
|
|
bool IsRootState() const;
|
|
bool IsSelected() const;
|
|
|
|
bool VerifyNodeTextChanged(const FText& NewLabel, FText& OutErrorMessage);
|
|
void HandleNodeLabelTextCommitted(const FText& NewLabel, ETextCommit::Type CommitType);
|
|
|
|
FReply HandleDragDetected(const FGeometry&, const FPointerEvent&);
|
|
TOptional<EItemDropZone> HandleCanAcceptDrop(const FDragDropEvent& DragDropEvent, EItemDropZone DropZone, UStateTreeState* TargetState);
|
|
FReply HandleAcceptDrop(const FDragDropEvent& DragDropEvent, EItemDropZone DropZone, UStateTreeState* TargetState);
|
|
|
|
TSharedPtr<FStateTreeViewModel> StateTreeViewModel;
|
|
TWeakObjectPtr<UStateTreeState> WeakState;
|
|
TSharedPtr<SInlineEditableTextBlock> NameTextBlock;
|
|
};
|