#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]
[UE-8152] - All previously existing drag-and-drop functionality now works with components in the world as follows:
1. If multiple actors are selected and the drop is on one of the selected actors, the dropped object will be applied (if possible) to all components in each selected actor.
2. If multiple components are selected and the drop is on one of the selected components, the dropped object will be applied (if possible) to all selected components.
3. If the drop is onto a component that is not selected, it will apply only to that component.
4. If the drop is onto a component within a selected actor, but only one actor is selected, same as #3.
- Fixed crash when trying to apply material to non-existent slot when applying to multiple actors
[CL 2433465 by Matthew Griffin in Main branch]
- Added GetNumOverrideMaterials to return overriden materials.
- Reverted GetNumMaterials to previous behavior - they return Mesh->Materials count since it can't have more than that but only if Mesh is available.
#code review: Geremy.Mustard, Nick.Penwarden
[CL 2371090 by Lina Halper in Main branch]
* 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]
This addresses TTP#345442 - NUX:Editor: Dropping new actors into totally empty maps adds number suffixes to my actor names
Reviewed by Matt Kuhlenschmidt
[CL 2302272 by Andrew Rodham in Main branch]
Previously this would only have been the case if the "Rotate to Surface Normal" option was disabled, but this was hidden and a little confusing.
I've also changed the actor positioning code to take parameter structs that have construction helpers so as to make the code more flexible to the client, whilst keeping the logic in one place.
I've fixed one or two bugs here as well:
* Fixed vertex snapping helpers not showing up when dragging (they are still hidden when pasting)
* Fixed point lights not having the same spawn offset as spot and directional lights
* Fixed newly placed actors not getting their default rotations when not aligning to a surface
This addresses TTP#342860 - Static meshes that are drag and dropped into a world will have their rotation affected by the object the are dragged over
And TTP#341787 - CRITICAL: Regression: EDITOR: Direction light is at a flat angle by default
[CL 2289354 by Andrew Rodham in Main branch]
#ttp 323078 - Actor drag preview does not respect actor factory spawn position offset
#ttp 309631 - TOOLS FEATURE: Asset placement: Align placed assets with surface placed on
#ttp 335001 - UE4: EDITOR:"Paste here" works inconsistently
#ttp 334066 - EDITOR: PAPER2D: Dragging a mesh into an ortho viewport does not provide a preview
There is a lot of work here:
* I have moved and unified all the prop preview and drag alignment code that attempted to align objects to surfaces in the world to a new class, FActorPositioning. This fixes inconsistent behaviour between the drop previews, actual placement, and drag alignment.
* I have tidied up the methods by which surface alignment is performed in UActorFactory. There is now a virtual method for factories to define *how* an actor should be aligned to the surface. This allows us to specify different alignment routines for things like static meshes, decals and lights.
* Actor factories now create actors with an FTransform rather than specifying pointers to location and rotation vectors. This makes creation simpler and parameter passing less error prone. As far as I can see, the rotation was only used for surface snapping which is now handled by the factory anyway.
* Surface snapping can be controlled by the editor viewport toggle button, or via a keyboard command set in the editor preferences
* It is possible to override the default placement offset when aligning actors to surfaces. SnapOffsetExtent can be found in the editor viewport preferences.
* Finding a valid snap position no longer uses a hitproxy as this was prone to error and does not work correctly when dragging actors that render their own hit proxies.
* ClickLocation and ClickPlane are now more consistently set and managed. I have tried to remove excess assignment to these variables to clarify their use and purpose.
[CL 2223237 by Andrew Rodham in Main branch]
- Added new class metadata Experimental and EarlyAccessPreview, which will trigger a warning section in the actor details panel
Experimental:
- Here be dragons! It's a totally unsupported and undocumented prototype
Early Access Preview:
- While not considered production-ready, it's a step beyond 'experimental' and is being provided as a preview of things to come
[CL 2117581 by Michael Noland in Main branch]