118 Commits

Author SHA1 Message Date
jurre debaare
cf263f69ef Closing the last opened tab in the StateTree Editor hides the toolbar buttons on the remaining open tabs
- Retrieve current state-tree editor mode through UAssetEditorToolkitMenuContext rather than capturing
- Added menu profile to disable state-tree toolbar entries (used by workspace editor)
- Added delegate to _extend_ workspace toolmenu context (used by AnimNextStateTree)

#jira UE-227088
#rb aditya.ravichandran, brooke.hubert
#swarm 37091915

[CL 37102342 by jurre debaare in 5.5 branch]
2024-10-14 16:57:17 -04:00
patrick boutot
92b3e3e6fa StateTree: Compile the StateTree after each load in the editor. That ensures the data is valid when cooking and that if the cpp code changed, the new properties are properly converted. Do not mark the asset as dirty when it compiles. It should only mark the asset dirty when a user does the manipulation. Any automatic conversion should be transparent for the user.
#jira UE-222447
#rb Yoan.StAmant
#p4v-cherrypick 36157962

[CL 36331606 by patrick boutot in 5.5 branch]
2024-09-17 08:06:50 -04:00
patrick boutot
b91643374e StateTree: Add "reset to default" on bindings. Hide parent when a member has a binding. Change the test of the parent and color of the parent binding.
#rb Yoan.StAmant

[CL 35966298 by patrick boutot in ue5-main branch]
2024-09-03 10:04:08 -04:00
patrick boutot
8a281ad746 StateTree: Update the editor subsystem viewmodel cache. The cache is alive forever but the uobject can be GCed or reinstanciated. Update the cache if the found StateTree is not valid anymore.
#jira UE-222464
#rb Yoan.StAmant

[CL 35821675 by patrick boutot in ue5-main branch]
2024-08-27 07:06:07 -04:00
patrick boutot
d07344e54c SlateTree: Update the editor data when the state tree changes.
#jira UE-222447
#rb Mieszko.Zielinski

[CL 35800997 by patrick boutot in ue5-main branch]
2024-08-26 11:58:42 -04:00
jurre debaare
731555d181 Add ability to set StateTree schema class used by its asset factory
#rb Patrick.Boutot

[CL 35691792 by jurre debaare in ue5-main branch]
2024-08-21 05:19:17 -04:00
jacob wang
d403fdf2ca [State Tree] Added state weight to scale final utility score
#rb sigurdur.gunnarsson

[CL 35635292 by jacob wang in ue5-main branch]
2024-08-19 15:41:09 -04:00
patrick boutot
bda9871ba9 StateTree: Set the extension on the DetailView before any object is set.
#jira UE-220080
#rb Jurre.deBaare

[CL 35599640 by patrick boutot in ue5-main branch]
2024-08-16 13:30:56 -04:00
jurre debaare
1454040a2b StateTree editor
- StateTreeEditorMode, which now holds all of the state-tree editing behavior previously part of StateTreeEditor
- StateTreeEditorModeToolkit, responsible for UI/widgets used by StateTreeEditorMode
- StateTreeEditorModeUILayer used to host StateTreeEditorMode inside of the StateTreeEditor
- Exposed StateTreeViewModel
- Introduced IStateTreeEditorHost, interface to-be implemented for supporting StateTreeEditorMode within an Asset editor
- Moved compilation/validation to UStateTreeEditingSubsystem (editor sub system)
- Added layout extensions for StateTreeEditor

#rb Patrick.Boutot

[CL 35491719 by jurre debaare in ue5-main branch]
2024-08-13 09:09:54 -04:00
mikko mononen
abb4bccc2e StateTree: Fixed providing incorrect instance data during bindings compilation. (contributed)
[CL 35208559 by mikko mononen in ue5-main branch]
2024-07-31 05:21:07 -04:00
jacob wang
0fa5fd8e36 [State Tree] Utility Selector Runtime First Pass
#rb mikko.mononen

[CL 34362979 by jacob wang in ue5-main branch]
2024-06-13 22:57:49 -04:00
juan portillo
c9897fb3e5 State Tree: Added binding creation support in Binding Extension
- this also considers property refs

#rb mikko.mononen

[CL 34266628 by juan portillo in ue5-main branch]
2024-06-11 03:39:06 -04:00
juan portillo
f2a5e74381 State Tree: Modified extension point for prop handlers to pass in a details view ref instead
#rb mikko.mononen

[CL 34230862 by juan portillo in ue5-main branch]
2024-06-10 03:22:50 -04:00
juan portillo
ca06915df9 State Tree: Added extension handler create func
#rb mikko.mononen
#jira UE-215806

[CL 34129795 by juan portillo in ue5-main branch]
2024-06-05 12:56:26 -04:00
mikko mononen
54eb8e271f StateTree: Introduced PropertyFunctions (contributed) (take2)
- Added property functions which can be executed and chained during property binding to set values of properties

[CL 34087989 by mikko mononen in ue5-main branch]
2024-06-04 03:56:38 -04:00
justin peterson
4b5e90f42a [Backout] - CL33856504 - CIS Cook Warning
[FYI] mikko.mononen
Original CL Desc
-----------------------------------------------------------------
StateTree: Introduced PropertyFunctions (contributed)
- Added property functions which can be executed and chained during property binding to set values of properties

[CL 33868630 by justin peterson in ue5-main branch]
2024-05-23 14:06:53 -04:00
mikko mononen
8fb0559486 StateTree: Introduced PropertyFunctions (contributed)
- Added property functions which can be executed and chained during property binding to set values of properties

[CL 33856515 by mikko mononen in ue5-main branch]
2024-05-23 04:48:59 -04:00
mikko mononen
d54b7d2b59 StateTree: Fixed bug where renaming a state parameter would remove bindings to it.
#rb Yoan.StAmant

[CL 33681188 by mikko mononen in ue5-main branch]
2024-05-16 03:47:06 -04:00
jacob wang
d0a9f7e6de [State Tree] Utility Selector Editor Representation First Pass
- Editor View and Operations(debugger support not yet)
- Basic Utility Consideration Base
- Built-in Float Parameter Consideration
- Basic Blueprint Support
#rb mikko.mononen

[CL 33665793 by jacob wang in ue5-main branch]
2024-05-15 14:50:35 -04:00
mikko mononen
ef8f978f83 StateTree: Various fixes how the binding sources are displayed.
- Added editor only StatePath to FStateTreeBindableStructDesc to help error reporting
- Friendlify user defined struct property names in FStateTreePropertyPath::ToString()
- Fixed FStateTreeEditorNode::GetName() to return the BP node name instead of the wrapper name
- Categorize binding sources based on state (including one section for global) in the binding popup

#jira UE-212418, UE-209016
#rb Yoan.StAmant

[CL 33623462 by mikko mononen in ue5-main branch]
2024-05-14 02:41:50 -04:00
jacob wang
4697f33318 Fix deprecation errors in StateTreeEditorNode.h
[CL 33615026 by jacob wang in ue5-main branch]
2024-05-13 21:25:08 -04:00
jacob wang
c7a6fe6ffa [State Tree] Renaming common elements between Condition and the upcoming Utility Consideration
- Renamed EStateTreeConditionOperand and properties of that type.
- Renamed FStateTreeEditorNode::Indent Property.
- Corrected a few tooltips
#rb mikko.mononen, Yoan.StAmant

[CL 33614033 by jacob wang in ue5-main branch]
2024-05-13 20:48:39 -04:00
yoan stamant
08b5314641 [StateTreeDebugger] replaced WITH_STATETREE_DEBUGGER by WITH_STATETREE_TRACE and WITH_STATETREE_TRACE_DEBUGGER to allow different targets to use only one of the two functionalities. For example consoles can only output traces while Desktop targets can output traces and analyse them.
#rb Mieszko.Zielinski

[CL 33398309 by yoan stamant in ue5-main branch]
2024-05-02 11:47:26 -04:00
mikko mononen
ef148ecd80 StateTree: StateTree UI spring clean.
- Added icons and icon colors for ST nodes
- Implemented icons for some common ST nodes
- Small update to ST logic icons
- Added icons to the task list in State treeview row, adjusted task list BG color to make icons visible
- Fixed ST editor tabs icons and names (e.g. there were two tabs that had the same label)
- Moved ST node picker to separate class
- Moved category array customization to common helper function
- Added node icons to the ST node picker
- Add node button is not node selector too (simila to Niagara)
- Consolidated the add button style across all lists
- Cleaned up the node customization
  - Moved type selector, debug, and property controls into one menu at right
  - The combined menu can be also summoned using right click
  - Renaming now has to be triggered via the menu
  - Replacing node happens via menu
  - Most of the row was left "clickable" to later use it for selection
  - Improved the visualization and controls for the expression indentation
- Cleaned up state customization
  - Moved parameters to own category (similar to the tree params)
  - Moved event to the enter conditions category
- Cleaned up transition customization
  - Improved the transition display
  - Consolidated add button styles

#jira UE-180608
#rb Juan.Portillo, Mieszko.Zielinski

[CL 33030431 by mikko mononen in ue5-main branch]
2024-04-17 03:01:36 -04:00
mikko mononen
2b93815d0a StateTree: Improved event handling
- Added support for shared event buffer, so that multiple instance data can use the same
- Added API to consume events
- Removed double buffering from events
- Treat TriggerTransitions() as event handler (events flushed after each call to the method)
- Event handlers (including tasks) are executed in priority order
- Transitions and event capturing states can consume events on successful selection
- Added API to tick a StateTree in two passes (update tasks and trigger transitions)
- Change parallel tree tasks to do the task update in Tick(), and event handling in TriggerTransitions()
- Small improvements to the ST debugger to display events
- NOTE: this is breaking change for implementations that has relied events emitted during tick to be available on next EnterState()

#okfirgithub public
#rb Yoan.StAmant

[CL 32924765 by mikko mononen in ue5-main branch]
2024-04-12 06:04:01 -04:00