Commit Graph

46 Commits

Author SHA1 Message Date
Jamie Dale
9968a0a15c Some workflow and performance improvements for behavior trees and environmental queries
UETOOL-293 - Behavior Tree Editor is sluggish

- Made the behavior tree and environmental query pins larger so they're easier to grab.
- Adjusted the node padding so that we don't add the padding for the pins when there aren't any pins.
- Added lodding so that node elements are culled out as you zoom out (to improve performance).
- Fixed connections being culled when they were still visible.

[CL 2528547 by Jamie Dale in Main branch]
2015-04-28 11:13:20 -04:00
Ben Cosh
ac6b1e60da This modifies the comment balloons behavior on reroute nodes to be more inline other node comment balloons by enabling a toggle button and displaying by default when a comment is entered in the context menu.
#UE-12866 - Have node comments and reroute node comments act the same
#Branch UE4
#Proj Engine, GraphEditor

#includes some more general comment node / comment bubble fixes

[CL 2528202 by Ben Cosh in Main branch]
2015-04-28 04:58:34 -04:00
Michael Schoell
3f52b7d131 In "Region and Language" you can toggle localization of node and pins in all graph editors.
SNodeTitle no longer compares cached node titles to the title the node wants to be to determine a reconstruction, it checks if the schema wants to purge all cached node titles.

#jira UE-8371 - Change Editor language while leaving Blueprint Editor node & pin names in English

[CL 2508681 by Michael Schoell in Main branch]
2015-04-10 14:37:56 -04:00
Ben Cosh
7ce2a96c63 This change enables comment balloon coloring set in the preferences and restores the comment node option to enable coloring.
#UE-13299 - Comments and comment balloons don't obey colors set in editor preferences
#Branch UE4
#Proj BehaviourTreeEditor, EnvironmentQueryEditor, GraphEditor

#codereview Dan.Oconnor

[CL 2505562 by Ben Cosh in Main branch]
2015-04-08 14:48:01 -04:00
Saul Abreu
79a26091bf Fixed behavior on FString::ParseIntoArray (muliple delimiters overload) functionality to support optionally culling empty strings. Greatly simplified implementation logic. Output parameter now properly named and taken by reference.
#codereview Steve.Robb, Robert.Manuszewski

[CL 2466824 by Saul Abreu in Main branch]
2015-03-02 15:51:37 -05:00
Ben Cosh
5f48b68d5e This adds some code to enable/disable add pin buttons determined by the owning graphnode's state.
#UE-9254 - Can add pins to nodes during PIE
#Branch UE4
#Proj GraphEditor

[CL 2458209 by Ben Cosh in Main branch]
2015-02-24 06:02:55 -05:00
Matthew Griffin
8ccae5aec7 [INTEGRATE] Change 2442643 by Michael.Schoell@Phosphor_M_Schoell on 2015/02/11 19:07:13
Blueprints now start with basic nodes, in a disabled state that will not be compiled. These nodes will auto-enable if you connect another node to them.

	#jira UE-7189 - Make sure that newly created Blueprints always have a nice starting point

[CL 2448803 by Matthew Griffin in Main branch]
2015-02-17 11:23:23 -05:00
Dan Oconnor
700b762cc9 FBlurpint::OnChanged split into OnCompiled and OnChanged. Only difference is that we don't call RefreshEditors in the case of OnCompiled (we manually update displayed error information on the graph nodes)
Added Stats
Fixed bad delegate logic in BlueprintActionDatabase

[CL 2407793 by Dan Oconnor in Main branch]
2015-01-15 15:57:51 -05:00
Nick Atamas
f5e19bef14 Slate : RelativeLayoutScale is now computed in the SlatePrepass(). ComputeDesiredSize() now takes a float parameter. API-breaking change!
[CL 2406629 by Nick Atamas in Main branch]
2015-01-14 19:04:45 -05:00
Jamie Dale
bbb0624bff Fixed code relying on SLATE_TEXT_ATTRIBUTE for tooltips.
UETOOL-213 - Minimize Slate FString -> FText conversion (remove SLATE_TEXT_ATTRIBUTE)

This fixes any editor/engine specific code that was passing text to Slate as FString rather than FText.

[CL 2401019 by Jamie Dale in Main branch]
2015-01-08 11:35:01 -05:00
Jamie Dale
a569f6b356 Fixed code relying on SLATE_TEXT_ATTRIBUTE for STextBlock.
UETOOL-213 - Minimize Slate FString -> FText conversion (remove SLATE_TEXT_ATTRIBUTE)

This fixes any editor/engine specific code that was passing text to Slate as FString rather than FText.

[CL 2399803 by Jamie Dale in Main branch]
2015-01-07 09:52:40 -05:00
Dan Hertzka
c042ddcb94 ---- Merging with SlateDev branch ----
Introduces the concept of "Active Ticking" to allow Slate to go to sleep when there is no need to update the UI.

While asleep, Slate will skip the Tick & Paint pass for that frame entirely.
- There are TWO ways to "wake" Slate and cause a Tick/Paint pass:
    1. Provide some sort of input (mouse movement, clicks, and key presses). Slate will always tick when the user is active.
        - Therefore, if the logic in a given widget's Tick is only relevant in response to user action, there is no need to register an active tick.
    2. Register an Active Tick. Currently this is an all-or-nothing situation, so if a single active tick needs to execute, all of Slate will be ticked.

- The purpose of an Active Tick is to allow a widget to "drive" Slate and guarantee a Tick/Paint pass in the absence of any user action.
    - Examples include animation, async operations that update periodically, progress updates, loading bars, etc.

- An empty active tick is registered for viewports when they are real-time, so game project widgets are unaffected by this change and should continue to work as before.

- An Active Tick is registered by creating an FWidgetActiveTickDelegate and passing it to SWidget::RegisterActiveTick()
    - There are THREE ways to unregister an active tick:
        1. Return EActiveTickReturnType::StopTicking from the active tick function
        2. Pass the FActiveTickHandle returned by RegisterActiveTick() to SWidget::UnregisterActiveTick()
        3. Destroy the widget responsible for the active tick

- Sleeping is currently disabled, can be enabled with Slate.AllowSlateToSleep cvar
- There is currently a little buffer time during which Slate continues to tick following any input. Long-term, this is planned to be removed.
    - The duration of the buffer can be adjusted using Slate.SleepBufferPostInput cvar (defaults to 1.0f)

- The FCurveSequence API has been updated to work with the active tick system
    - Playing a curve sequence now requires that you pass the widget being animated by the sequence
    - The active tick will automatically be registered on behalf of the widget and unregister when the sequence is complete
    - GetLerpLooping() has been removed. Instead, pass true as the second param to Play() to indicate that the animation will loop. This causes the active tick to be registered indefinitely until paused or jumped to the start/end.

[CL 2391669 by Dan Hertzka in Main branch]
2014-12-17 16:07:57 -05:00
Nick Darnell
90e793745c Slate - ESlateCheckBoxState has been renamed to ECheckBoxState.
[CL 2384008 by Nick Darnell in Main branch]
2014-12-10 14:24:09 -05:00
Ben Marsh
149375b14b Update copyright notices to 2015.
[CL 2379638 by Ben Marsh in Main branch]
2014-12-07 19:09:38 -05:00
Matthew Griffin
f1c4513760 Renaming FVector ClampSize and SafeNormal functions for clarity
Used DEPRECATED Macro to keep old names around in case I've missed anything

[CL 2370785 by Matthew Griffin in Main branch]
2014-11-26 10:01:12 -05:00
Ben Cosh
3650f14795 This change makes the comment bubbles interactive widgets which allow the user to double click the comment to edit and have extra optional pinning and visibility options.
#UE-2764 - ROCKET: TASK: K2: PUNTABLE: Allow double clicking on comment bubble to edit it.
#Branch UE4
#Proj Engine, UnrealEd, Slate, GraphEditor, BehaviourTreeEditor, EnvironmentQueryEditor, EditorStyle, ReferenceViewer, WorldBrowser

#codereview Nick.Atamas

[CL 2346951 by Ben Cosh in Main branch]
2014-11-03 10:40:57 -05:00
Thomas Sarkanen
22df8494db Fixed crash selecting sub-nodes in Behavior Trees
Crash was caused by the removal of the call to UpdateGraphNode() in SGraphPanel::AddNode(). This meant that sub-nodes didnt get a valid parent panal pointer set.
Allowing nodes to override SetOwner() lets BT sub-nodes correctly recieve their parent.
Also removed previous checks put in place to try to prevent the crash.

#codereview Mieszko.Zielinski

[CL 2332786 by Thomas Sarkanen in Main branch]
2014-10-17 05:01:49 -04:00
Mieszko Zielinski
7a4baf714d Fixed BTEditor crashing on selecting a service node #UE4
#codereview thomas.sarkanen, nick.atamas

[CL 2332267 by Mieszko Zielinski in Main branch]
2014-10-16 18:45:09 -04:00
Wes Hunt
31e2bb00ac Removed a bunch of stuff from Slate standard include, created SlateBasics.h
* Moved Slate.h into SlateBasics.h and began shifting less commonly used headers into SlateExtras.h.
* Slate.h now simply includes SlateBasics.h and SlateExtras.h.
* Slate.h includes a deprecated warning now to indicate that SlateBasics.h + specific includes should be used instead.
* Moved dozens of inlined functions using Slate widgets into .cpp files to avoid header dependencies.
* All code samples now include SlateBasics.h and SlateExtras.h so future shifts will not break most those projects, but not trigger the deprecation warning of including Slate.h.
#BUN

[CL 2329610 by Wes Hunt in Main branch]
2014-10-14 22:50:06 -04:00
Phillip Kavan
812df33807 [347817] BP perf - Removed a redundant node construction pass on graph panel updates.
- Cuts update timings roughly in half.
- Fixed issue that this change prevously had introduced: we just needed to ensure that all pin widgets are enabled/disabled when the owning node widget is enabled/disabled.

[CL 2329052 by Phillip Kavan in Main branch]
2014-10-14 15:43:17 -04:00
Michael Noland
4e663a66b1 GraphEditor: Fix some node titles (such as material nodes) having extra blank lines due to \\r injected by the text builder class
[CL 2299010 by Michael Noland in Main branch]
2014-09-15 21:53:46 -04:00
Michael Noland
fa7eb3328f GraphEditor: Make various padding values adjustable to iterate on more compact nodes (WIP / Experimental)
#codereview nick.whiting

[CL 2299009 by Michael Noland in Main branch]
2014-09-15 21:48:46 -04:00
Michael Noland
fff6984e40 GraphEditor: Pad the height of multi-line node titles to be a multiple of the graph snap grid taller than single-line nodes, so the pins will still line up if you place the node N cell snaps above
[CL 2298950 by Michael Noland in Main branch]
2014-09-15 19:53:19 -04:00
Thomas Sarkanen
ff9594e679 Right-click menu operations on Behavior Tree sub-nodes now work
Added new GetNodeUnderMouse() call to SGraphNode. This gives each node type the option of returning child nodes, rather than always operating on the top-level node.

TTP# 346150 - AI: BEHAVIORTREE: Unable to delete decorator and service using right click menu

[CL 2293617 by Thomas Sarkanen in Main branch]
2014-09-11 07:02:40 -04:00
bruce nesbit
d60a5de509 Converted widget .Tag instances for tutorials to use MetaData
[CL 2286138 by bruce nesbit in Main branch]
2014-09-05 07:39:52 -04:00