change summary:
- added a new "InternalUseParam" UFUNCTION() meta to support tagging function parameters as internal use only (=> hidden | not connectable)
- added a UK2Node_CallFunction::IsConnectionDisallowed() override method; returns 'true' if the 'bNotConnectable' flag is set on the node's pin (and will emit a compile error in existing projects if something is connected to it)
- modified FBlueprintEditorUtils::GetHiddenPinsForFunction() to accept an optional 'InternalPins' TSet as an output; on return, this will contain the subset of hidden pins that are marked as "InternalUseParam"
- modified UK2Node_CallFunction::CreatePinsForFunctionCall() to set the 'bNotConnectable' pin attribute to 'true' if "InternalUseParam == '<PinName>'" is included within the UFunction metadata
- modified the AActor::AddComponent UFUNCTION() decl to switch the "HidePin" meta to "InternalUseParam" for the 'ComponentTemplateContext' parameter (because it should not be connectable)
- modified UK2Node_CallFunction::NotifyPinConnectionListChanged() to refresh the node to hide pins corresponding to internal-only params once the (invalid) connection in an existing project has been broken
#codereview Mike.Beach
[CL 2606203 by Phillip Kavan in Main branch]
The change is mostly backward-compatible, but any code using the tags map in a non-const fashion will break.
#codereview Bob.Tellez,Jamie.Dale
[CL 2604067 by James Hopkin in Main branch]
The BP class potentially had the type info in front of it, so it was never passing the "GameModeClass->GetPathName() != ClassName" check, and was always re-getting the class.
[CL 2602626 by Jamie Dale in Main branch]
#jira UE-16405 - Hitch occurs when undoing BSP manipulations
Summary of changes:
- Added 'fuzzy map' for quick look up of nearly equal FVectors, improving the BSP rebuild algorithm from O(n^4) to O(n*m) where m is much smaller than n.
- Added 'fuzzy map' for quick look up of nearly equal FPlanes, improving plane merging from O(n^2) to O(n).
- Changed TTransArrays in UModel to regular arrays, to remove a lot of transaction modifies during BSP rebuild.
- UModel array allocations are now allocated upfront where possible, instead of constant dynamic resizing.
- Optimized algorithm used by UModelComponent::GenerateElements to reduce allocations and simplify map lookups.
- Removed call to ULevel::CommitModelSurfaces in UModelComponent::PostEditUndo, which was causing an enormous amount of unnecessary work on each undo operation. It is now done, as ever, by UWorld::Tick.
#reviewedby Matt.Kuhlenschmidt
[CL 2600444 by Richard TalbotWatkin in Main branch]
- Automatically upgraded all materials
When using the UI material domain the material editor and material instance editor is streamlined and only displays parts of the UI that are relevant:
- Changes to a preview material rendered with the UI shader
- Removes non-UI specific settings
- Renames some output pins and hides irrelevant ones
- Shows stats for UI shader
[CL 2596027 by Matt Kuhlenschmidt in Main branch]
- UE-14092 Cannot create a return node with an execution pin only for a function
- UE-7849 Being able to have multiple return nodes for a function
- minor fixes
#codereview Nick.Whiting, Mike.Beach
[CL 2595496 by Maciej Mroz in Main branch]
UETOOL-332 - Collections 2.0
UETOOL-369 - Want nested collections with collapsing
We now have version 2 collections which maintain a persistent GUID for each collection. Existing collections will be lazily updated to this version when they need to be re-saved.
This GUID is used by child collections to keep track their parents, and the collections view (as well as the quick asset management) now show a tree of collections. Collections in the main collection view tree can be re-parented via drag and drop.
Performing Content Browser searches against a given collection will also test to see if an object exists in child collections, and the asset view will now show you folder entries for child collections when viewing a parent (if folders are enabled in your Content Browser view settings).
[CL 2593321 by Jamie Dale in Main branch]
+ Keys are only added under the mouse when there is only one curve to edit.
+ When multiple curves are available clicking on a curve will add a key inline on that curve, and clicking off of the curve will add keys too all curves.
+ Changed the text of the menu item to make it clear what's going to happen.
Jira: UE-15095
[CL 2592320 by Frank Fella in Main branch]
This arranges all emitters in an SDetailView with some customization.
Primary benefit of this is that hooking things into the UI will require almost no work and elements can still be customized for a good UX.
Previous UI is still available and should work exactly as before.
Quite a bit of refactoring was needed to acheive this but much of it was needed for other things anyway and/or has some nice additonal benefits.
E.g.
- All constant types are supported easily.
- You can now create a default data object in the graph which will propagate through to the effect editor.
- Adding new data object types will be very easy.
Also added a delete and duplicate button for emitters in both UIs.
#codereview olaf.piesche
[CL 2590057 by Simon Tovey in Main branch]
The piloting was overwriting the viewport transition code resulting in no movement.
UE-7376
#codereview Matt.Kuhlenschmidt
[CL 2586227 by Timothy Reynolds in Main branch]
- Reworked UI hierarchy to better afford input on its constituent panels
- Added scroll-zoom/pan support to the track area and curve editor (using CTRL and SHIFT mouse wheel modifiers)
- View range no longer zooms when changing the size of the sequencer window
[CL 2585565 by Andrew Rodham in Main branch]
Option only appears when available, will pull the default value over.
#jira UE-6273 - BLUEPRINTS: Add "promote to local var" context menu option
[CL 2584770 by Michael Schoell in Main branch]
#jira UE-16765 - Details panel is blank when selecting BSP surfaces if 'Clicking BSP Enables Brush' is disabled.
[CL 2584208 by Richard TalbotWatkin in Main branch]
Added the ability to display an error popup on the node if text verification fails. The code existed for this but was non-functional
[CL 2583007 by Matt Kuhlenschmidt in Main branch]