Files

467 lines
17 KiB
C++
Raw Permalink Normal View History

// Copyright Epic Games, Inc. All Rights Reserved.
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209340) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3209340 on 2016/11/23 by Ben.Marsh Convert UE4 codebase to an "include what you use" model - where every header just includes the dependencies it needs, rather than every source file including large monolithic headers like Engine.h and UnrealEd.h. Measured full rebuild times around 2x faster using XGE on Windows, and improvements of 25% or more for incremental builds and full rebuilds on most other platforms. * Every header now includes everything it needs to compile. * There's a CoreMinimal.h header that gets you a set of ubiquitous types from Core (eg. FString, FName, TArray, FVector, etc...). Most headers now include this first. * There's a CoreTypes.h header that sets up primitive UE4 types and build macros (int32, PLATFORM_WIN64, etc...). All headers in Core include this first, as does CoreMinimal.h. * Every .cpp file includes its matching .h file first. * This helps validate that each header is including everything it needs to compile. * No engine code includes a monolithic header such as Engine.h or UnrealEd.h any more. * You will get a warning if you try to include one of these from the engine. They still exist for compatibility with game projects and do not produce warnings when included there. * There have only been minor changes to our internal games down to accommodate these changes. The intent is for this to be as seamless as possible. * No engine code explicitly includes a precompiled header any more. * We still use PCHs, but they're force-included on the compiler command line by UnrealBuildTool instead. This lets us tune what they contain without breaking any existing include dependencies. * PCHs are generated by a tool to get a statistical amount of coverage for the source files using it, and I've seeded the new shared PCHs to contain any header included by > 15% of source files. Tool used to generate this transform is at Engine\Source\Programs\IncludeTool. [CL 3209342 by Ben Marsh in Main branch]
2016-11-23 15:48:37 -05:00
#include "K2Node_InputKey.h"
#include "GraphEditorSettings.h"
#include "EdGraphSchema_K2.h"
#include "EdGraphSchema_K2_Actions.h"
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209340) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3209340 on 2016/11/23 by Ben.Marsh Convert UE4 codebase to an "include what you use" model - where every header just includes the dependencies it needs, rather than every source file including large monolithic headers like Engine.h and UnrealEd.h. Measured full rebuild times around 2x faster using XGE on Windows, and improvements of 25% or more for incremental builds and full rebuilds on most other platforms. * Every header now includes everything it needs to compile. * There's a CoreMinimal.h header that gets you a set of ubiquitous types from Core (eg. FString, FName, TArray, FVector, etc...). Most headers now include this first. * There's a CoreTypes.h header that sets up primitive UE4 types and build macros (int32, PLATFORM_WIN64, etc...). All headers in Core include this first, as does CoreMinimal.h. * Every .cpp file includes its matching .h file first. * This helps validate that each header is including everything it needs to compile. * No engine code includes a monolithic header such as Engine.h or UnrealEd.h any more. * You will get a warning if you try to include one of these from the engine. They still exist for compatibility with game projects and do not produce warnings when included there. * There have only been minor changes to our internal games down to accommodate these changes. The intent is for this to be as seamless as possible. * No engine code explicitly includes a precompiled header any more. * We still use PCHs, but they're force-included on the compiler command line by UnrealBuildTool instead. This lets us tune what they contain without breaking any existing include dependencies. * PCHs are generated by a tool to get a statistical amount of coverage for the source files using it, and I've seeded the new shared PCHs to contain any header included by > 15% of source files. Tool used to generate this transform is at Engine\Source\Programs\IncludeTool. [CL 3209342 by Ben Marsh in Main branch]
2016-11-23 15:48:37 -05:00
#include "K2Node_AssignmentStatement.h"
#include "K2Node_TemporaryVariable.h"
#include "Kismet2/BlueprintEditorUtils.h"
#include "K2Node_InputKeyEvent.h"
#include "KismetCompiler.h"
#include "BlueprintNodeSpawner.h"
#include "EditorCategoryUtils.h"
#include "BlueprintActionDatabaseRegistrar.h"
#include "Styling/AppStyle.h"
#include "GameFramework/InputSettings.h"
#include "Editor.h" // for FEditorDelegates::OnEnableGestureRecognizerChanged
#include "Blueprint/UserWidget.h"
#define LOCTEXT_NAMESPACE "UK2Node_InputKey"
UK2Node_InputKey::UK2Node_InputKey(const FObjectInitializer& ObjectInitializer)
: Super(ObjectInitializer)
{
bConsumeInput = true;
bOverrideParentBinding = true;
#if PLATFORM_MAC && WITH_EDITOR
if (IsTemplate())
{
FProperty* ControlProp = GetClass()->FindPropertyByName(GET_MEMBER_NAME_CHECKED(UK2Node_InputKey, bControl));
FProperty* CommandProp = GetClass()->FindPropertyByName(GET_MEMBER_NAME_CHECKED(UK2Node_InputKey, bCommand));
ControlProp->SetMetaData(TEXT("DisplayName"), TEXT("Command"));
CommandProp->SetMetaData(TEXT("DisplayName"), TEXT("Control"));
}
#endif
}
void UK2Node_InputKey::PostLoad()
{
Super::PostLoad();
if (GetLinkerUEVersion() < VER_UE4_BLUEPRINT_INPUT_BINDING_OVERRIDES)
{
// Don't change existing behaviors
bOverrideParentBinding = false;
}
}
void UK2Node_InputKey::PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent)
{
Super::PostEditChangeProperty(PropertyChangedEvent);
CachedNodeTitle.Clear();
CachedTooltip.Clear();
}
void UK2Node_InputKey::AllocateDefaultPins()
{
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 3716594) #lockdown Nick.Penwarden ============================ MAJOR FEATURES & CHANGES ============================ Change 3623720 by Phillip.Kavan #jira UE-49239 - Temp fix for QAGame animations not updating in a nativized build. Change summary: - Temporarily excluded all AnimBP assets from nativization as a workaround. Change 3626305 by Phillip.Kavan #jira UE-49269 - Workaround fix for crash after packaging a nativized QAGame build with all AnimBP assets disabled for nativization by default. Change 3629145 by Marc.Audy Don't hide developer nativization tool behind ini Change 3630849 by Marc.Audy Fix nativization uncompilable code when using a non-referenceable term in a switch statement. #jira UE-44085 Change 3631037 by Marc.Audy (4.17.2) Fix crash when nativizing blueprint with MakeMap or MakeSet node in it #jira UE-49440 Change 3631206 by Marc.Audy Make NAME_None == TEXT("") behave the same as NAME_None == FName(TEXT("")) Change 3631232 by Marc.Audy Remove outdated diagnostic code throwing false positives #jira UE-47986 Change 3631573 by Marc.Audy Fix containers of vector, rotator, or transform placing a space between the type and the pluralization 's' Change 3633168 by Lukasz.Furman fixed behavior tree changing its state during latent abort, modified order of operations during abort to: abort & wait -> change aux nodes -> execute Change 3633609 by Marc.Audy Don't get unneeded string Change 3633691 by Marc.Audy Fix copy-pasting of a collapsed graph containing a map input losing the value type #jira UE-49517 Change 3633967 by Ben.Zeigler Actor.h header cleanup, fix various comments and reorganize some members, saves 80 bytes per actor in a cooked Win64 build bRunningUserConstructionScript is now private, exposed with IsRunningUserConstructionScript Fixed a few other fields to be private that were accidentally made public in 4.17 Change 3633984 by Michael.Noland Blueprints: Fixed a potential crash when collapsing nodes to a function when a potential entry pin had no links Change 3634464 by Ben.Zeigler Header cleanups for Pawn, Controller, Character, and PlayerController Change 3636858 by Marc.Audy In preview worlds don't display the light error sprite #jira UE-49555 Change 3636903 by Marc.Audy Fix numerous issues with copy/pasting editable pin bases #jira UE-49532 Change 3638898 by Marc.Audy Allow right-click creation of local variables in blueprint function libraries #jira UE-49590 Change 3639086 by Marc.Audy PR #4006: Mark UEdGraphSchema::BreakSinglePinLink as const (Contributed by leyyin) #jira UE-49591 Change 3639445 by Marc.Audy Fix mistaken override and virtual markup on niagara schema function. Change 3641202 by Marc.Audy (4.17.2) Fix crash undoing pin changes with split pins #jira UE-49634 Change 3643825 by Marc.Audy (4.17.2) Fix crash right clicking a struct pin when the struct it represented has been deleted #jira UE-49756 Change 3645110 by mason.seay Fixed up QA-ClickHUD map so it's usable and makes more sense Change 3646428 by Dan.Oconnor Fix for UbergraphFrame layout changing during bytecode recompile, which would cause actual ubergraph frame layout to mismatch reflection data #jira None Change 3647298 by Marc.Audy PR #4016: Rename argument name for SetInputMode (Contributed by projectgheist) #jira UE-49748 Change 3647815 by Marc.Audy Minor performance improvements Change 3648931 by Lina.Halper #Compiler : fixed so that each type of BP can provide module info, and compiler info - Moved out AnimBlueprint Compiler - Refactored WidgetBlueprint - DUPE - Merging using ControlRig_Dev-Framework Change 3654310 by Marc.Audy Shrink USkinnedMeshComponent 64 bytes Shrink USkeletalMeshComponent 224 bytes (160 bytes internal) Change 3654636 by Lina.Halper Fix crashing on shutdown #jira: UE-50004 Change 3654960 by Lina.Halper - Fix with automation test of creation/duplication - Fixed shut down crash with editor again due to uobject GCed #jira: UE-50028 Change 3655023 by Ben.Zeigler #jira UE-50101 Fix level streaming transform when PIE-duplicating a level that has been preloaded but not made visible in the editor. Instead of always saying actors have been moved we copy the source level's flag Change 3655426 by Ben.Zeigler #jira UE-50019 Fix issue where StreamableManager could return objects that are partially loaded if called from PostLoad. StreamableManager never wants half-loaded objects, so change it to explicitly skip them Change 3657627 by Ben.Zeigler #jira UE-50157 Fix EDL load dependency issue where the simple construction script/ICH are not guaranteed to be serialized in time for subobject construction Change 3662086 by Mieszko.Zielinski Fixed navmesh not loading properly in PIE when owning world has been duplicated-for-play #UE4 This can happen when navigation containing level is loaded via AsyncLoadPrimaryAssetList #jira UE-50101 Change 3662294 by Ben.Zeigler Fix enum redirects to handle non-class enums properly where a value redirect is not specified. It needs to convert from EOldEnum::Value to ENewEnum::Value before doing the name check Change 3662825 by Mieszko.Zielinski Fixed VisLog debug drawing crashing when using UI to change log lines to be displayed #UE4 there was a loop iterating over elements of a map and was modifying the map as it went, which is a big no-no Change 3664424 by Marc.Audy UE-50076 test assets #rb none #rnx Change 3664441 by Mieszko.Zielinski PR #3993: UE-25907: Added logging to Log Text, Log Location, and Log Box Shape (Contributed by projectgheist) Piggybacking on this PR I've redone how visual log is using categories. Now it's using FName rather than FLogCategoryBase to indicated log category. All UE_VLOG macros have been updated. Change 3664506 by Phillip.Kavan #jira UE-47852 - Fix various issues with both UAT/UBT-driven and manually-configured code/data build workflows involving nativized Blueprint assets. Change summary: - UAT: Removed '-nativizedAssets' command-line option. It's no longer required to specify this flag when cooking/building in order to enable nativization. - UAT: Removed AutomationTool.ProjectParams.BlueprintPluginPaths. - UAT: Modified AutomationTool.ProjectParams.ProjectParams() to initialize the 'RunAssetNativization' field based on the current 'BlueprintNativizationMethod' config setting. This flag is now used just to direct UAT to defer invoking UBT for '-build' until after the '-cook' stage has finished. - UAT: Modified BuildCookRun.DoBuildCookRun() to remove the 'bWarnIfPackagedWithoutNativizationFlag' case (since we removed the '-nativizedAssets' command-line option). - UAT: Removed Project.AddBlueprintPluginPathArgument() and Project.GetBlueprintPluginPathArgument(). These utility functions are no longer needed. - UAT: Modified Project.Cook() to remove the registration of each NativizedAssets plugin path for '-build' along with the addition of the '-nativizedAssets' argument with the platform-agnostic path to the NativizedAssets plugin when invoking UE4Editor.exe for '-cook'. This is now handled by the UE4Editor cook commandlet instead. - UAT: Modified Project.Build() to remove the addition of the '-plugin' argument with the path to the NativizedAssets plugin when invoking UBT for '-build'. This is now handled by UBT instead. - UBT: Modified UnrealBuildTool.ProjectFileGenerator.DiscoverExtraPlugins() to remove the previously-added search for intermediate plugin assets based on the 'AdditionalPluginDirectories' optionally found in the .uproject file. Instead, this search is now handled via a Plugins.EnumeratePlugins() LINQ query. It is also gated by a new Advanced project setting in DefaultGame.ini that defaults to off, but this way users can still add generated assets into the solution file. - UBT: Added UnrealBuildTool.UEBuildTarget.ShouldIncludeNativizedAssets() as a utility method for checking the current 'BlueprintNativizationMethod' setting in the game's config file. - UBT: Modified UnrealBuildTool.UEBuildTarget.CreateTarget() to confirm the existence of a NativizedAssets plugin (generated at cook time) when the project is configured for nativization. If the plugin is found, it is added to the RulesAssembly chain and the ProjectDescriptor.ForeignPlugins list. If the plugin is not found, then a BuildException is thrown informing the user that the plugin must exist in order to build (with a note to make sure to cook the target platform first). - UE4: Added 'Lex' namespace utility functions for converting PlatformInfo::EPlatformType to/from an FString. Note: Lex::FromString() is simply a proxy to the already-existing PlatformInfo::EPlaformTypeFromString() API, but it was included for completeness. - UE4: Removed the UProjectPackagingSettings::bWarnIfPackagedWithoutNativizationFlag. This is no longer needed since the '-nativizedAssets' command-line option has been removed. - UE4: Added UProjectPackagingSettings::bIncludeNativizedAssetsInProjectGeneration (advanced setting). This defaults to 'false' (off). When true, running GenerateProjects.bat will also generate project files for any NativizedAssets plugins previously generated at cook time. This gives advanced users/engineers an option to include nativized Blueprint class sources in the set of generated C++ code projects for faster browsing, etc. - UE4: Modified UProjectPackagingSettings::PostEditChangeProperty() to remove the case that handles the 'BlueprintNativizationMethod' property. When this value changes, we no longer make an attempt to modify the .uproject file. - UE4: Removed BlueprintNativeCodeGenManifestImpl::PlatformPlaceholderPattern. This pattern string is no longer in use. Also modified the FBlueprintNativeCodeGenPaths ctor to remove the replacement logic for the pattern string. - UE4: Modified FBlueprintNativeCodeGenPaths::GetDefaultCodeGenPaths() to construct and return a new directory pattern for the generated NativizedAssets plugin. This is now generated to: Intermediate/Plugins/NativizedAssets/<Platform>/<Type:Game|Client|Server>. - UE4: Modified FBlueprintNativeCodeGenPaths::PluginRootDir() to no longer append "NativizedAssets" to the end of the path to the generated NativizedAssets plugin. - UE4: Removed FCookByTheBookStartupOptions::bNativizeAssets and NativizedPluginPath (no longer in use since the '-nativizeAssets' command-line option has been removed). - UE4: Modified UCookCommandlet::CookByTheBook() to remove initialization of the 'bNativizeAssets' field in the startup options (since the corresponding command-line argument has been removed). - UE4: Removed FNativeCodeGenData::DestPluginPath and modified FBlueprintNativeCodeGenModule::Initialize() to remove the check for it. - UE4: Added FBlueprintNativeCodeGenModule::ShutdownModule(). This now handles cleanup for the nativization module after the cook process has finished. - UE4: Modified UCookCommandlet::CookByTheBook() to no longer look for the '-nativizedAssets' command-line option as well as to remove the initialization of the nativization-related startup option flags that were removed. - UE4: Modified UCookOnTheFlyServer::StartCookByTheBook() to check the 'BlueprintNativizationMethod' config setting in order to determine whether or not to nativize assets. This replaces the '-nativizedAssets' command-line flag. - UE4: Modified UCookOnTheFlyServer::StartCookByTheBook() to remove the case that previously handled the 'bWarnIfPackagedWithoutNativizationFlag' check. This is no longer needed since the '-nativizedAssets' flag was removed. - UE4: Modified UCookOnTheFlyServer::CookByTheBookFinished() to unload the IBlueprintNativeCodeGenModule instance after cooking, in order to reset module state for another potential pass within the same process context. - UE4: Modified UWidgetBlueprintGeneratedClass::InitializeTemplate() to append 'REN_ForceNoResetLoaders' to the Rename() flags so that when we shift the OldArchetype object into the transient package, it doesn't invalidate the outer package's linker. We need that to remain valid so that multiple nativized cooks within the same process don't fail. - UE4: Modified FMainFrameActionCallbacks::PackageProject() to remove the addition of '-nativizedAssets' to the UAT command line based on project settings (this is no longer needed, as it is now handled internally by UAT). - UE4: Modified SaveWorld() to append 'REN_ForceNoResetLoaders' to the Rename() flags so that when we rename the world instead of duplicating it, it no longer triggers a reset of *all* object loaders. Notes: - After this change, all nativization workflows (e.g. UAT, UBT and UE4Editor) now look to the 'BlueprintNativizationMethod' flag in the Project settings (UProjectPackagingSettings). This unifies everything on a single flag by default, and removes the feature added in 4.17 that touched the .uproject file when that setting changed (which itself introduced a couple of new regressions in that release). - Advanced users and build engineers can override this value per task. Instructions to do that are as follows: - For UAT/UBT/UE4Editor.exe tasks, adding '-ini:Game:[/Script/UnrealEd.ProjectPackagingSettings]:BlueprintNativizationMethod=<Disabled|Inclusive|Exclusive>' will allow the current setting to be overridden on the command line. - When '-cook' is included on the RunUAT BuildCookRun command line, the above needs to also be embedded within the '-AdditionalCookerOptions' command-line argument. This means that if both '-cook' and '-build' are included, then both the '-ini' argument shown above as well as the same '-ini' argument embedded inside the '-AdditionalCookerOptions' argument will need to be included for the build pipeline to work properly. - We should add a release note instructing users to check their .uproject file and remove any 'AdditionalPluginDirectories' entries that list the "Intermediate/Plugins" path. This will avoid issues when building the cooked target with UBT. - We should also add a release note and/or documentation to explain the "advanced" build pipeline options (i.e. the '-ini' argument noted above). Change 3665061 by Phillip.Kavan Fix crash on load in a nativized build caused by a reference to a BP class containing a nativized enum. Mirrored from //UE4/Release-4.18 (CL# 3664993). #3969 #jira UE-49233 Change 3665108 by Marc.Audy (4.18) Fix crash when diffing a blueprint whose older version's parent blueprint has been deleted + additional code cleanup #jira UE-50076 Change 3665114 by Marc.Audy Minor change that could potentially improve performance in some cases Change 3665410 by Mieszko.Zielinski Fixed naming of Vislog's BP API #UE4 Change 3665634 by Ben.Zeigler #jira UE-50045 Mark PIE-duplicated packages as explicitly fully loaded to fix PIE networking crash. These used to be accidentally treated as fully loaded because it was checking the wrong package name on disk Change 3666970 by Phillip.Kavan Do not emit a BOM when generating nativized Blueprint asset source files encoded as UTF-8. #jira UE-46814 Change 3667058 by Phillip.Kavan Ensure that '-build' is always passed to BuildCookRun automation for projects configured with Blueprint nativization enabled so that it doesn't skip that stage. Mirrored from //UE4/Release-4.18 (CL# 3667043). #jira UE-50403 Change 3667150 by Mieszko.Zielinski PR #4042: BT CompositeDecorator node clears RF_Transient flag for all owned Decorator nodes. (Contributed by BibbitM) Minor tweak from the original PR - made UBehaviorTreeDecoratorGraphNode_Decorator::ResetNodeOwner protected and added UBehaviorTreeGraphNode_CompositeDecorator class a a friend. #jira UE-50249 Change 3667152 by Mieszko.Zielinski PR #4047: Clearing RF_Transient flag when reseting EQS node owner - single change. (Contributed by BibbitM) #jira UE-50298 Change 3667166 by Mieszko.Zielinski Fixed FRichCurve baking so that it doesn't loose its curvature #UE4 Also, added some baking sanity checking (like if the range is larger than a single point). Change 3668025 by Dan.Oconnor Added a step to the compilation manager to skip recompilation of classes that are dependent on a given classes function signatures when those signatures have not changed #jira UE-50453 Change 3672063 by Ben.Zeigler #jira UE-49049 Fix issue with StreamableHandle ParentHandles array being modified during iteration, I had already fixed the Cancel case but not the complete case Change 3672306 by Ben.Zeigler #jira UE-50571 Fix issue where PrimaryAsset blueprints would be incorrectly added to the dictionary if their base class had an active class redirect referencing it Change 3672683 by Marc.Audy Code cleanup Change 3672749 by Ben.Zeigler Fix issue where deleting a source package would not cause the generated cooked package to get deleted while doing an incremental build Change 3672831 by Ben.Zeigler #jira UE-50507 Add a cook/save warning when a registered PrimaryAssetId does not match the object's real exported PrimaryAssetId. Make PrimaryDataAsset blueprintable so you can make primary assets in a blueprint-only project Change 3673551 by Ben.Zeigler #jira UE-50029 Fix it so data-only blueprints will never create a UCS function in the final class. If you manually compiled the blueprint or it got recompiled due to inheritance it would create a UCS function that just calls its parent, which could cause problems later on when it did not create a UCS function during normal load Change 3675074 by mason.seay Test map for VisLog Testing Change 3675084 by Mieszko.Zielinski Fixed BT editor constantly marking BT asset as dirty if it has a "RunBehavior" node #UE4 #jira UE-43430 Change 3676490 by Ben.Zeigler #jira UE-50635 Fix it so directly blueprinting PrimaryDataAsset will give you a useful PrimaryAssetType. Unless overridden the Type of a PrimaryDataAsset will be the first native class found in the hierarchy, or the the blueprint class that directly blueprints PrimaryDataAsset Change 3676579 by Lukasz.Furman fixed crash in behavior tree's search rollback Change 3676586 by Lukasz.Furman added local scope mode to behavior tree's composite nodes Change 3676587 by Ben.Zeigler Swap PrimaryAssetId property customization to use the same ui as the Pin customization. This one better handles objects that aren't loaded into memory, the old Property one would show None in that case Add browse, use selected, and clear buttons, and make ID selector font the normal property font Change 3676715 by Lukasz.Furman changed order of behavior tree's aux node ticking Change 3676867 by Ben.Zeigler #jira UE-50665 Fix issue where resolving Soft Object Ptrs that are stored inside static assets or Blueprint CDOs from PIE will return the editor actor, not the PIE actor. So when resolving a path/ptr during PIE add a failsafe to do a PIE fixup Fix issue where Lazy pointer fixup could corrupt Soft Object Ptrs by applying the PIE fixup too early Change 3677892 by Ben.Zeigler Fix crash when additional level viewport sprites are added after level editor module is loaded. This is basically the same fix as CL #3491406, but for sprites Change 3678247 by Marc.Audy Fix static analysis warning Change 3678357 by Ben.Zeigler #jira UE-50696 Add some container variables to diff test to track down crashes Change 3678385 by Ben.Zeigler #jira UE-50696 Fix crash diffing blueprints where array properties were changed. It needs to not run the generic identical check until it's sure the container types match Change 3678600 by Ben.Zeigler #jira UE-50703 Fix crash when a soft actor reference is not actually pointing to an actor, treat it like a broken reference Change 3679075 by Dan.Oconnor Mirror 3679030 from Release-4.18 Fix crash when compiling a level blueprint that has delegates to a blueprint that it also has a direct dependency on #jira UE-48692 Change 3679087 by Dan.Oconnor Filter out unnecessary relink jobs from the compilation manager #jira None Change 3680221 by Ben.Zeigler #jira UE-50764 Fix crash when converting a property from a soft object reference to hard, it needs to validate the class after the conversion and null if necessary Change 3680561 by Lukasz.Furman fixed unsafe StopTree calls in behavior tree #jira nope Change 3680788 by Ben.Zeigler Fix issue where scrubbing sequencer in simulate would not modify actors. We need to temporarily set the PIE context global when doing this specific type of actor bind Change 3683001 by mason.seay Submitting various test maps and assets Change 3686837 by Mieszko.Zielinski Fixed NavMeshBoundsVolume not updating navmesh when its location gets changed via the Transform Details widget #Orion #jira UE-50857 Change 3688451 by Marc.Audy Fix up new material expression to work with String -> Name refactor Change 3689097 by Mason.Seay Test content for nativization and enum testing Change 3689106 by Mieszko.Zielinski Made NavMeshBoundsVolume react to undo in the editor #Orion #jira UE-51013 Change 3689347 by Mieszko.Zielinski Fixed a crash on FAIDynamicParam creation resulting from uninitialized member variables #UE4 Manual merge of CL#3689316 over from 4.18 #jira UE-51019 Change 3692524 by mason.seay Moved some assets to folder for org, fixed up redirectors Change 3692540 by mason.seay Renaming test maps so they are clearly indicated for testing nativization Change 3692577 by mason.seay Deleted a bunch of old assets I created specifically for various bugs reported. All issues are closed so they're no longer needed Change 3692724 by mason.seay Deleting handful of assets found in developer folders of those no longer with the team. Moved assets that are still used by test maps Change 3693184 by mason.seay Assets for testing nativization with structs Change 3693367 by mason.seay Improvements to test content Change 3695395 by Dan.Oconnor Fix for rare linker issue, IsBlueprintFinalizationPending would return true when we were trying to force load subobjects that were now ready to be loaded. This would prevent some placeholder objects from being replaced #jira None Change 3695484 by Marc.Audy Fix sound cue connection drawing policy not getting returned. #jira UE-51032 Change 3695494 by mason.seay More test content for nativization testing Change 3697829 by Mieszko.Zielinski PR #4104: Fixed a typo CaclulateMaxTilesCount to CalculateMaxTilesCount (Contributed by YuchenMei) Change 3700541 by mason.seay Test map for containers with function bug Change 3703459 by Marc.Audy Remove poorly named InverseLerp Fix degenerate behavior returning bad value #jira UE-50295 Change 3703803 by Marc.Audy Clean up autos Minor improvement to ShouldGenerateCluster Change 3704496 by Mason.Seay More test content for testing nativization Change 3706314 by Marc.Audy PR #4085: GetDefaultPawnClassForController -> BlueprintCallable (Contributed by Allar) #jira UE-50874 Change 3707502 by Mason.Seay Final changes to nativization test content (hopefully) Change 3709478 by Marc.Audy PR #4144: Exposed MassageAxisInput for inheritence (Contributed by jackknobel) Same as CL# 3689702 implemented in Fortnite #jira UE-51453 Change 3709967 by Marc.Audy PR #4139: fixed a typo in a comment (Contributed by derekvanvliet) #jira UE-51372 Change 3709970 by Marc.Audy PR #4150: Fixed a typo in movement override comment (Contributed by ruffenman) #jira UE-51495 Change 3709971 by Marc.Audy PR #4149: Fixing typo on movement pawn component (Contributed by celsodantas) #jira UE-51492 Change 3710041 by Marc.Audy Minor code cleanup Change 3711223 by Phillip.Kavan Move some Blueprint nativization log spam into the verbose category. #jira UE-49770 Change 3713398 by Marc.Audy PR #4157: Renamed AActor::InternalTakePointDamage function's parameter. (Contributed by BibbitM) #jira UE-51517 Change 3713601 by Marc.Audy Fix merge error Change 3713994 by Marc.Audy (4.18) Just mark level script actor pending kill when the level script blueprint has been recompiled, instead of trying to send it through the destroy actor lifecycle event. #jira UE-50738 Change 3714270 by Marc.Audy Fix crashes with tickables as a result of virtuals not being usable in constructors/destructors #jira UE-51534 Change 3714406 by Marc.Audy Fix dumb inverted boolean check Change 3716594 by Dan.Oconnor Integrate 3681301 from 4.18 Only run OnLevelScriptBlueprintChanged when explicitly compiling a level blueprint, this matches the old behavior #jira UE-50780, UE-51568 Change 3686450 by Marc.Audy PinCategory, PinSubcategory, and PinName are now stored as FName instead of FString. CreatePin has several simplified overrides so you can only specify Subcategory or SubcategoryObject or neither. CreatePin also takes a parameter bundle for reference, const, container type, index, and value terminal type rather than a long list of default parameters. Material Expressions now store input and output names as FName instead of FString FNiagaraParameterHandle now stores the parameter handle, namespace, and name as FName instead of FString Most existing pin related functions using string have been deprecated. Change 3713796 by Marc.Audy Added virtual GetTickableType function to FTickableBaseObject that can return Conditional (default), Always, or Never. Tickable Never objects will not get added to the tickable array or ever evaluated. Tickable Always objects do not call IsTickable and assume it will return true. Tickable Conditional objects work as in the past with IsTickable called each frame to make the determination whether to call Tick or not. IsTickable no longer a pure virtual (defaults to true). Applied fixes to avoid array corruption when a FTickableEditorObject is deleted during the tick phase consistent with previous fixes to FTickableGameObject. Change 3638554 by Marc.Audy Add enum expansion functional test to validate that the metadata ExpandEnumAsExecs works as expected. Change 3676502 by Ben.Zeigler Add Blueprint-only primary asset type to EngineTest, to cover testing UE-50635 [CL 3718205 by Marc Audy in Main branch]
2017-10-25 09:30:36 -04:00
CreatePin(EGPD_Output, UEdGraphSchema_K2::PC_Exec, TEXT("Pressed"));
CreatePin(EGPD_Output, UEdGraphSchema_K2::PC_Exec, TEXT("Released"));
CreatePin(EGPD_Output, UEdGraphSchema_K2::PC_Struct, FKey::StaticStruct(), TEXT("Key"));
Super::AllocateDefaultPins();
}
FLinearColor UK2Node_InputKey::GetNodeTitleColor() const
{
return GetDefault<UGraphEditorSettings>()->EventNodeTitleColor;
}
FName UK2Node_InputKey::GetModifierName() const
{
FString ModName;
bool bPlus = false;
if (bControl)
{
ModName += TEXT("Ctrl");
bPlus = true;
}
if (bCommand)
{
if (bPlus) ModName += TEXT("+");
ModName += TEXT("Cmd");
bPlus = true;
}
if (bAlt)
{
if (bPlus) ModName += TEXT("+");
ModName += TEXT("Alt");
bPlus = true;
}
if (bShift)
{
if (bPlus) ModName += TEXT("+");
ModName += TEXT("Shift");
bPlus = true;
}
return FName(*ModName);
}
FText UK2Node_InputKey::GetModifierText() const
{
#if PLATFORM_MAC
const FText CommandText = NSLOCTEXT("UK2Node_InputKey", "KeyName_Control", "Ctrl");
const FText ControlText = NSLOCTEXT("UK2Node_InputKey", "KeyName_Command", "Cmd");
#else
const FText ControlText = NSLOCTEXT("UK2Node_InputKey", "KeyName_Control", "Ctrl");
const FText CommandText = NSLOCTEXT("UK2Node_InputKey", "KeyName_Command", "Cmd");
#endif
const FText AltText = NSLOCTEXT("UK2Node_InputKey", "KeyName_Alt", "Alt");
const FText ShiftText = NSLOCTEXT("UK2Node_InputKey", "KeyName_Shift", "Shift");
const FText AppenderText = NSLOCTEXT("UK2Node_InputKey", "ModAppender", "+");
FFormatNamedArguments Args;
int32 ModCount = 0;
if (bControl)
{
Args.Add(FString::Printf(TEXT("Mod%d"),++ModCount), ControlText);
}
if (bCommand)
{
Args.Add(FString::Printf(TEXT("Mod%d"),++ModCount), CommandText);
}
if (bAlt)
{
Args.Add(FString::Printf(TEXT("Mod%d"),++ModCount), AltText);
}
if (bShift)
{
Args.Add(FString::Printf(TEXT("Mod%d"),++ModCount), ShiftText);
}
for (int32 i = 1; i <= 4; ++i)
{
if (i > ModCount)
{
Args.Add(FString::Printf(TEXT("Mod%d"), i), FText::GetEmpty());
}
Args.Add(FString::Printf(TEXT("Appender%d"), i), (i < ModCount ? AppenderText : FText::GetEmpty()));
}
Args.Add(TEXT("Key"), GetKeyText());
return FText::Format(NSLOCTEXT("UK2Node_InputKey", "NodeTitle", "{Mod1}{Appender1}{Mod2}{Appender2}{Mod3}{Appender3}{Mod4}"), Args);
}
FText UK2Node_InputKey::GetKeyText() const
{
return InputKey.GetDisplayName();
}
FText UK2Node_InputKey::GetNodeTitle(ENodeTitleType::Type TitleType) const
{
if (bControl || bAlt || bShift || bCommand)
{
if (CachedNodeTitle.IsOutOfDate(this))
{
FFormatNamedArguments Args;
Args.Add(TEXT("ModifierKey"), GetModifierText());
Args.Add(TEXT("Key"), GetKeyText());
// FText::Format() is slow, so we cache this to save on performance
CachedNodeTitle.SetCachedText(FText::Format(NSLOCTEXT("K2Node", "InputKey_Name_WithModifiers", "{ModifierKey} {Key}"), Args), this);
}
return CachedNodeTitle;
}
else
{
return GetKeyText();
}
}
FText UK2Node_InputKey::GetTooltipText() const
{
if (CachedTooltip.IsOutOfDate(this))
{
FText ModifierText = GetModifierText();
FText KeyText = GetKeyText();
// FText::Format() is slow, so we cache this to save on performance
if (!ModifierText.IsEmpty())
{
CachedTooltip.SetCachedText(FText::Format(NSLOCTEXT("K2Node", "InputKey_Tooltip_Modifiers", "Events for when the {0} key is pressed or released while {1} is also held."), KeyText, ModifierText), this);
}
else
{
CachedTooltip.SetCachedText(FText::Format(NSLOCTEXT("K2Node", "InputKey_Tooltip", "Events for when the {0} key is pressed or released."), KeyText), this);
}
}
return CachedTooltip;
}
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 2973866) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 2937390 on 2016/04/07 by Cody.Albert #jira UE-29211 Fixed slider to properly bubble unhandled OnKeyDown events Change 2939672 on 2016/04/11 by Richard.TalbotWatkin Made a change to how file check out notifications work. Now the dirty package state is processed at the end of every tick, meaning that packages which are dirtied and then cleaned again are not processed. This fixes an issue where a number of child blueprints were flagged as needing checkout when a parent blueprint was compiled. This also allows multiple packages which are dirtied at the same time to be treated as one transaction. #jira UE-29193 - "Files need check-out" prompt spams Blueprint users Change 2939686 on 2016/04/11 by Richard.TalbotWatkin A number of further improvements to mesh vertex color painting: * Lower LODs are now automatically fixed up for instances which were created in a previous bugged version of the engine. * Since lower LODs cannot currently have their vertex colors edited, their vertex colors are always derived from LOD0. * Fixed a bug when building lower LODs so that vertices in neighboring octree nodes are considered when looking for the nearest vertex from LOD0 which corresponds. * Fixed issue where static meshes with imported LODs would not have the lower LODs' override colors set when "Copy instance vertex colors to source mesh" was used (static meshes with generated LODs were always getting correct override colors). #jira UE-28563 - Incorrectly displayed LOD VertexColor until paint mode is selected Change 2939906 on 2016/04/11 by Nick.Darnell Automation - Adding several enhancements to the automation framework and improving the UI. * Tests in the UI now have a link to the source and line where they orginate. * There's now a general purpose latent lambda command you can use to run arbitrary code latently. * Added Inlined AddCommand for regular and networked commands to the base automation class, to avoid the use of the macro, which prevents breakpoints from working in lambda code. * Front end now has better column displays offering more room to the test name * Changed several events to the automation controller to multicast delegates so that many could hook them. * The UI now refreshes the selection after tests finish so that the output log updates. Change 2939908 on 2016/04/11 by Nick.Darnell Automation - The editor import/export tests are now a complex test and actually sperate out all the tests that can be run, some trickiness was required on the filenames so that they didn't expand into more child tests in the UI. (replacing .'s with _'s) Change 2940028 on 2016/04/11 by Nick.Darnell Automation - Removing the search box from the toolbar. It's now inlined above the test tree. Tweaking the padding to make it look more other windows and make everything not look so squished. Recursive expansion now works on tests. Change 2940066 on 2016/04/11 by Nick.Darnell Automation - Moving the filter group dropdown out of the toolbar and onto the line with the search box above the treeview - additional tweaks to it. Change 2940092 on 2016/04/11 by Jamie.Dale PR #2248: Datatable select next row (Contributed by FineRedMist) Change 2940093 on 2016/04/11 by Jamie.Dale PR #2248: Datatable select next row (Contributed by FineRedMist) Change 2940157 on 2016/04/11 by Jamie.Dale Fixing FTextTest due to some changes made to how currency is formatted Change 2940694 on 2016/04/12 by Richard.TalbotWatkin Fixed issue where vertex override colors were not being propagated correctly for generated lower LODs. #jira UE-29360 - Override Colors not propagated correctly to generated lower LODs Change 2942379 on 2016/04/13 by Richard.TalbotWatkin Fixed issue where entering PIE while selecting an actor in Mesh Paint mode could lead to a MeshPaintStaticMeshAdapter holding onto an invalid pointer to an old mesh component, and causing a crash upon leaving the mode. This can happen because, when loading a new streaming level, the proxy actor can be selected when starting PIE, which will subsequently be added to the tool's internal lists. This needs to be added as a GC reference so that it can be NULLed when forcibly destroyed. #jira UE-29345 - Crash occurs exiting the editor after enabling mesh paint mode and PIEing Change 2942947 on 2016/04/13 by Richard.TalbotWatkin Fixed crash when pasting a material function call node from one project to another in which it is not defined. #jira UE-27087 - Crash when pasting MaterialFunctionCall expressions into the material editor between projects Change 2943452 on 2016/04/14 by Richard.TalbotWatkin Updated F4 debug key binding to match what's in ShowFlags.cpp PR #2197 (contributed by mfortin-bhvr) Change 2943824 on 2016/04/14 by Alexis.Matte #jira UE-29090 Make sure we cannot open the color picker when a property is edit const Change 2943841 on 2016/04/14 by Alexis.Matte #jira UE-28924 tooltip was add for every hierarchy import option Change 2943927 on 2016/04/14 by Alexis.Matte #jira UE-29423 Add Obj support for scene importer Github PR #2272 Change 2943967 on 2016/04/14 by Richard.TalbotWatkin Added relevant fields from FBodyInstance to the FoliageType customizations. #jira UE-20138 - FoliageType has a FBodyInstance but only shows Collision Presets and not other FBodyInstance properties Change 2948397 on 2016/04/19 by Andrew.Rodham Moved FSlateIcon definition to SlateCore It was previously declared as SLATE_API, despite its header residing inside SlateCore. Reviewed by Jamie Dale. Change 2948805 on 2016/04/19 by Andrew.Rodham Editor: Deprecated FName UEdGraphNode::GetPaletteIcon(FLinearColor&); in favor of FSlateIcon UEdGraphNode::GetIconAndTint(FLinearColor&); to allow for icons in external style sets to be used. - Previously, all icons were assumed to reside within FEditorStyle, which is not the case and would create broken icons in the graph editor. All relevant code has been updated to use FSlateIcon structures instead of a simple name. - This change required a significant overhaul to FClassIconFinder to support FSlateIcons. To keep the API clean, FSlateIconFinder now deals with FSlateIcon class icon finding operations, and FClassIconFinder for the most part just adds actor specific logic. #jira UE-26502 Change 2950658 on 2016/04/20 by Alexis.Matte #jira UE-24333 Skinxx workflow, we now output an error if there is mix of material with skinxx and some with no skinxx suffix Change 2950663 on 2016/04/20 by Alexis.Matte #jira UE-29582 When exporting to fbx we have to export each material instance as one fbx material Change 2951240 on 2016/04/21 by Alexis.Matte #jira UE-28473 Make sure light are render properly after importing a fbx scene Change 2951421 on 2016/04/21 by Alexis.Matte #jira UE-29773 fbx skeletalmesh import now support mesh hierarchy Change 2955873 on 2016/04/26 by Richard.TalbotWatkin PR #2225: Fix working package directory from the launch profiles (Contributed by projectgheist) Change 2955965 on 2016/04/26 by Nick.Darnell Merging //UE4/Dev-Main to Dev-Editor (//UE4/Dev-Editor) Change 2956717 on 2016/04/26 by Andrew.Rodham Editor: World Outliner now correctly calls ProcessEditDelete on editor modes that have asked to process delete operations #jira UE-26968 Change 2956822 on 2016/04/26 by Andrew.Rodham Editor: Fixed actors not being removed from the scene outliner when they are added and removed on the same frame #jira UE-7777 Change 2956931 on 2016/04/26 by Nick.Darnell New Module - UATHelper - Moving the UAT launching code from the MainFrame module into a reusable module other modules can trigger. Change 2956932 on 2016/04/26 by Nick.Darnell Plugins - Now allowing you to package a plugin from the plugin browsing view. Still work in progress. Change 2957164 on 2016/04/26 by Nick.Darnell Hot Reload - Fixing hot reload, it no longer creates a temporary copy of the module manager. Making the copy constructor private on the module manager to prevent this in the future. Change 2957165 on 2016/04/26 by Nick.Darnell Fixing the Editor Mode plugin sample, it no longer provides a bad starting example for where to create your widgets. #jira UE-28456 Change 2957510 on 2016/04/27 by Nick.Darnell PR #2198: Git Plugin implement the Sync operation to update local files using the git pull --rebase command (Contributed by SRombauts) #jira UE-28763 Change 2957511 on 2016/04/27 by Andrew.Rodham Editor: Make favorites button on details panel non-focusable - This was preventing users being able to tab between value fields on the details panel Change 2957610 on 2016/04/27 by Nick.Darnell PR #1836: Git plugin: make initial commit when initializing new project (Contributed by SRombauts) #jira UE-24190 Change 2957667 on 2016/04/27 by Jamie.Dale Fixed crash that could happen in FTextLayout::GetLineViewIndexForTextLocation if passed a bad location #jira OR-18634 Change 2958035 on 2016/04/27 by Nick.Darnell Fixing the DesignerRebuild flag detection so that we can just refresh the slate widget without recreating the preview UObject, which causes the destruction of the details panel, and the slate widget recreation was the only part that was required. Change 2958272 on 2016/04/27 by Jamie.Dale Added FAssetData::GetTagValue to handle getting asset tag values in a type-correct way This allows type-conversion using LexicalConversion, and also has specializations for FString, FText, and FName. #jira UE-12096 Change 2958348 on 2016/04/27 by Jamie.Dale PR #2282: Slate font shutdown order fix (Contributed by FineRedMist) Change 2958352 on 2016/04/27 by Jamie.Dale Fixed the subtitle manager updating the wrong list of subtitles #jira UE-29511 Change 2958390 on 2016/04/27 by Jamie.Dale Removed some old placement-new style array insertions Change 2959360 on 2016/04/28 by Richard.TalbotWatkin Fixed potential crash when mesh painting actors whose geometry adapters are no longer registered. #jira UE-29615 - [CrashReport] UE4Editor_MeshPaint!FEdModeMeshPaint::DoPaint() [meshpaintedmode.cpp:1127] Change 2959724 on 2016/04/28 by Cody.Albert Merging hardware survey gating logic from 4.10 #jira UE-28666 Change 2959807 on 2016/04/28 by Cody.Albert Removed deprecated function call #jira UE-28666 Change 2959894 on 2016/04/28 by Cody.Albert Fix for scroll offset being clamped by content size, not scroll max #jira UE-20676 Change 2960048 on 2016/04/28 by Jamie.Dale Added FAssetData::GetTagValueRef to go along with FAssetData::GetTagValue #jira UE-12096 Change 2960782 on 2016/04/29 by Jamie.Dale Updating code to use the new FText aware asset registry tag functions #jira UE-12096 Change 2960885 on 2016/04/29 by Jamie.Dale Updating code to use the new FText aware asset registry tag functions #jira UE-12096 Change 2961170 on 2016/04/29 by Jamie.Dale Updating code to use the new FText aware asset registry tag functions #jira UE-12096 Change 2961171 on 2016/04/29 by Jamie.Dale Updating code to use the new FText aware asset registry tag functions #jira UE-12096 Change 2961173 on 2016/04/29 by Jamie.Dale Removed some inline duplication on the specialized template functions #jira UE-12096 Change 2963124 on 2016/05/02 by Jamie.Dale FExternalDragOperation can now contain both text and file data at the same time This better mirrors what the OS level drag-and-drop operations are capable of, and some applications will actually give you both bits of data at the same time. #jira UE-26585 Change 2963175 on 2016/05/02 by Jamie.Dale Updated some font editor tooltips to be more descriptive #jira UE-17429 Change 2963290 on 2016/05/02 by Jamie.Dale The Localise UAT command can now be run with a null localisation provider Change 2963305 on 2016/05/02 by Jamie.Dale Fixed minor typo Change 2963402 on 2016/05/02 by Jamie.Dale Cleaned up all the current localization key conflicts and warnings from gathering Engine code #jira UE-25833 Change 2963415 on 2016/05/02 by Jamie.Dale Rephrased a message that could generate a CIS warning #jira UE-25833 Change 2964184 on 2016/05/03 by Jamie.Dale Fixed duplicate "Font" entry in asset picker menu This was caused by PropertyCustomizationHelpers::GetNewAssetFactoriesForClasses using CanCreateNew rather than ShouldShowInNewMenu, as UFont has two factories, but one is supposed to be hidden from the UI. We also now make sure the factories are sorted by display name before being shown in the UI. #jira UE-24903 Change 2966108 on 2016/05/04 by Nick.Darnell Engine - Rearranging the order of ELoadingPhase's enums so that they match the loading order of modules. Change 2966113 on 2016/05/04 by Nick.Darnell [Engine Loop Change] UEngine now defines a Start() function, that subclasses can use to start game related things after initialization of the engine. This is done so that after the Init() call on UEngine, we can then perform a module load for the ELoadingPhase::PostEngineInit phase of loading, then inform the UEngine that it's time to start the game. Therefore, UGameEngine now tells the GameInstance to Start during this phase now. Change 2966121 on 2016/05/04 by Jamie.Dale Config writing improvements when dealing with property values This updates FConfigFile::ShouldExportQuotedString to make sure that a property value containing any characters that FParse::LineExtended will consume when parsing back in the config file (such as { and }, or a trailing \) cause the string to be quoted. This also adds FConfigFile::GenerateExportedPropertyLine to generate the INI key->value lines in a consistent and correctly escaped way, and makes sure that everything that writes out lines to a config file uses it. FConfigCacheIni::SetString and FConfigCacheIni::SetText have been updated to update the value even if it only differs by case. UObject::SaveConfig and UObject::LoadConfig have had some code whitespace fix-up (from a bad merge). Change 2966122 on 2016/05/04 by Jamie.Dale Added a setting to control dialogue wave audio filenames Change 2966481 on 2016/05/04 by Jamie.Dale PR #2336: BUGFIX: Selection of objects in the Content browser from WorldSettings (Contributed by projectgheist) Change 2966887 on 2016/05/04 by Jamie.Dale PR #2336: BUGFIX: Selection of objects in the Content browser from WorldSettings (Contributed by projectgheist) Change 2967488 on 2016/05/05 by Ben.Marsh Changes to support packaging plugins from the editor. * UBT now has an option to explicitly disable hot-reloading in any circumstances. * When running with -module arguments for a monolithic target, UBT will no longer try to relink the executable in source builds (so it's possible to compile plugin libs outside of an installed engine build without having already built UE4Game). * When packaging, a temporary host project is always generated in the output directory to avoid invalidating intermediates in the source directory. * An empty Config\FilterPlugin.ini file is written out with instructions on how to list additional files to package if it is not already present. Change 2967947 on 2016/05/05 by Nick.Darnell PR #2358: Properly display Mip Level Count and Format for UTexture2DDynamic Textures (Contributed by Allegorithmic) #jira UE-30371 Change 2968333 on 2016/05/05 by Jamie.Dale Fixed MultiLine not working with arrays of string or text properties - The detail customizations for FString and FText properties now read the meta-data off the correct property. - The UDS editor now lets you set the "MultiLine" meta-data on arrays of FString and FText properties. - Fixed changing the "MultiLine" flag on a UDS property not rebuilding the default value editor. - Fixed the default values panel in the UDS editor having a title area. #jira UE-30392 Change 2968999 on 2016/05/06 by Jamie.Dale Fixed infinite loop in the editor if a directory that is being watched is deleted #jira UE-30172 Change 2969105 on 2016/05/06 by Richard.TalbotWatkin Fixed issue where opening a submenu while the parent menu had a text box focused would lead to a crash. The graph node comment text widget now only dismisses all menus if the text commit info implies that it was committed by some user action. #jira UE-29086 - Crash When Typing a Node Comment and Hovering Over the Alignment Option Change 2969440 on 2016/05/06 by Jamie.Dale Significant performance improvements when pasting a large amount of text #jira UE-19712 Change 2969619 on 2016/05/06 by Andrew.Rodham Auto-reimport is now disabled inside an editor running in unattended mode Change 2969621 on 2016/05/06 by Jamie.Dale Added the ability to override the subtitle used on a dialogue wave This is useful for effort sounds, plus some other cases, such as characters speaking in a foreign language not known to the player. #jira UETOOL-795 Change 2970588 on 2016/05/09 by Chris.Wood Fix typo in operator expression in UEndUserSettings::SetSendAnonymousUsageDataToEpic() [UE-26958] - GitHub 2056 : Fixing typo in the operator #2056 Change 2971151 on 2016/05/09 by Chris.Wood Logging ensure fails as errors. Automated tests with ensure fails will be unsuccessful. [UE-19579] - If an ensure() fails within an automated test, the test can still show a positive result. [UE-26575] - GitHub 2030 : Add error-severity message to log on ensure. PR #2030 Change 2971267 on 2016/05/09 by Alexis.Matte Wrong parameter when calling GetImportOptions #jira UE-30299 Change 2972073 on 2016/05/10 by Richard.TalbotWatkin Fixed UModel methods which make surfaces as modified. #jira UE-28831 - Unable to undo material placement on BSP Change 2972329 on 2016/05/10 by Nick.Darnell Merging //UE4/Dev-Main to Dev-Editor (//UE4/Dev-Editor) Change 2972887 on 2016/05/10 by Alexis.Matte #jira UE-30167 We now import the geometric transform also when we uncheck the absolute transform in the vertex. Change 2973664 on 2016/05/11 by Nick.Darnell Merging //UE4/Dev-Main to Dev-Editor (//UE4/Dev-Editor) Change 2973717 on 2016/05/11 by Nick.Darnell Fixing compiler issues from main merge. #jira UE-30590 Change 2973846 on 2016/05/11 by Jamie.Dale Exposed FConfigValue::ExpandValue and added FConfigValue::CollapseValue These are both static and can be used to expand or collapse the macros used in our config files (mostly when dealing with paths), in code that has to deal with the config system, but isn't internal to the config system (mostly things that deal with default configs outside of UObjects). The old non-static version of FConfigValue::ExpandValue is now FConfigValue::ExpandValueInternal, which just calls FConfigValue::ExpandValue on SavedValue and ExpandedValue. This also changes some code that was using FString.Replace to use FString.ReplaceInline. This reduces allocations, and also allows us to avoid another string comparison to see whether the strings are identical (as ReplaceInline returns the number of replacements that were made). Change 2973847 on 2016/05/11 by Jamie.Dale Changing the loading phase in the localization dashboard now writes to the default config #jira UE-30482 Change 2973866 on 2016/05/11 by Jamie.Dale Deprecated some functions that were taking an unused position. These unused parameters caused confusion and lead to UE-30276. The old versions have been deprecated, and new versions without those parameters have been added. Existing code has been updated to call the non-deprecated version. - FViewportFrame::ResizeFrame - FSceneViewport::ResizeFrame - FSceneViewport::ResizeViewport [CL 2973886 by Nick Darnell in Main branch]
2016-05-11 11:05:13 -04:00
FSlateIcon UK2Node_InputKey::GetIconAndTint(FLinearColor& OutColor) const
{
return FSlateIcon(FAppStyle::GetAppStyleSetName(), EKeys::GetMenuCategoryPaletteIcon(InputKey.GetMenuCategory()));
}
bool UK2Node_InputKey::IsCompatibleWithGraph(UEdGraph const* Graph) const
{
// This node expands into event nodes and must be placed in a Ubergraph
EGraphType const GraphType = Graph->GetSchema()->GetGraphType(Graph);
bool bIsCompatible = (GraphType == EGraphType::GT_Ubergraph);
if (bIsCompatible)
{
UBlueprint* Blueprint = FBlueprintEditorUtils::FindBlueprintForGraph(Graph);
UEdGraphSchema_K2 const* K2Schema = Cast<UEdGraphSchema_K2>(Graph->GetSchema());
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 3716594) #lockdown Nick.Penwarden ============================ MAJOR FEATURES & CHANGES ============================ Change 3623720 by Phillip.Kavan #jira UE-49239 - Temp fix for QAGame animations not updating in a nativized build. Change summary: - Temporarily excluded all AnimBP assets from nativization as a workaround. Change 3626305 by Phillip.Kavan #jira UE-49269 - Workaround fix for crash after packaging a nativized QAGame build with all AnimBP assets disabled for nativization by default. Change 3629145 by Marc.Audy Don't hide developer nativization tool behind ini Change 3630849 by Marc.Audy Fix nativization uncompilable code when using a non-referenceable term in a switch statement. #jira UE-44085 Change 3631037 by Marc.Audy (4.17.2) Fix crash when nativizing blueprint with MakeMap or MakeSet node in it #jira UE-49440 Change 3631206 by Marc.Audy Make NAME_None == TEXT("") behave the same as NAME_None == FName(TEXT("")) Change 3631232 by Marc.Audy Remove outdated diagnostic code throwing false positives #jira UE-47986 Change 3631573 by Marc.Audy Fix containers of vector, rotator, or transform placing a space between the type and the pluralization 's' Change 3633168 by Lukasz.Furman fixed behavior tree changing its state during latent abort, modified order of operations during abort to: abort & wait -> change aux nodes -> execute Change 3633609 by Marc.Audy Don't get unneeded string Change 3633691 by Marc.Audy Fix copy-pasting of a collapsed graph containing a map input losing the value type #jira UE-49517 Change 3633967 by Ben.Zeigler Actor.h header cleanup, fix various comments and reorganize some members, saves 80 bytes per actor in a cooked Win64 build bRunningUserConstructionScript is now private, exposed with IsRunningUserConstructionScript Fixed a few other fields to be private that were accidentally made public in 4.17 Change 3633984 by Michael.Noland Blueprints: Fixed a potential crash when collapsing nodes to a function when a potential entry pin had no links Change 3634464 by Ben.Zeigler Header cleanups for Pawn, Controller, Character, and PlayerController Change 3636858 by Marc.Audy In preview worlds don't display the light error sprite #jira UE-49555 Change 3636903 by Marc.Audy Fix numerous issues with copy/pasting editable pin bases #jira UE-49532 Change 3638898 by Marc.Audy Allow right-click creation of local variables in blueprint function libraries #jira UE-49590 Change 3639086 by Marc.Audy PR #4006: Mark UEdGraphSchema::BreakSinglePinLink as const (Contributed by leyyin) #jira UE-49591 Change 3639445 by Marc.Audy Fix mistaken override and virtual markup on niagara schema function. Change 3641202 by Marc.Audy (4.17.2) Fix crash undoing pin changes with split pins #jira UE-49634 Change 3643825 by Marc.Audy (4.17.2) Fix crash right clicking a struct pin when the struct it represented has been deleted #jira UE-49756 Change 3645110 by mason.seay Fixed up QA-ClickHUD map so it's usable and makes more sense Change 3646428 by Dan.Oconnor Fix for UbergraphFrame layout changing during bytecode recompile, which would cause actual ubergraph frame layout to mismatch reflection data #jira None Change 3647298 by Marc.Audy PR #4016: Rename argument name for SetInputMode (Contributed by projectgheist) #jira UE-49748 Change 3647815 by Marc.Audy Minor performance improvements Change 3648931 by Lina.Halper #Compiler : fixed so that each type of BP can provide module info, and compiler info - Moved out AnimBlueprint Compiler - Refactored WidgetBlueprint - DUPE - Merging using ControlRig_Dev-Framework Change 3654310 by Marc.Audy Shrink USkinnedMeshComponent 64 bytes Shrink USkeletalMeshComponent 224 bytes (160 bytes internal) Change 3654636 by Lina.Halper Fix crashing on shutdown #jira: UE-50004 Change 3654960 by Lina.Halper - Fix with automation test of creation/duplication - Fixed shut down crash with editor again due to uobject GCed #jira: UE-50028 Change 3655023 by Ben.Zeigler #jira UE-50101 Fix level streaming transform when PIE-duplicating a level that has been preloaded but not made visible in the editor. Instead of always saying actors have been moved we copy the source level's flag Change 3655426 by Ben.Zeigler #jira UE-50019 Fix issue where StreamableManager could return objects that are partially loaded if called from PostLoad. StreamableManager never wants half-loaded objects, so change it to explicitly skip them Change 3657627 by Ben.Zeigler #jira UE-50157 Fix EDL load dependency issue where the simple construction script/ICH are not guaranteed to be serialized in time for subobject construction Change 3662086 by Mieszko.Zielinski Fixed navmesh not loading properly in PIE when owning world has been duplicated-for-play #UE4 This can happen when navigation containing level is loaded via AsyncLoadPrimaryAssetList #jira UE-50101 Change 3662294 by Ben.Zeigler Fix enum redirects to handle non-class enums properly where a value redirect is not specified. It needs to convert from EOldEnum::Value to ENewEnum::Value before doing the name check Change 3662825 by Mieszko.Zielinski Fixed VisLog debug drawing crashing when using UI to change log lines to be displayed #UE4 there was a loop iterating over elements of a map and was modifying the map as it went, which is a big no-no Change 3664424 by Marc.Audy UE-50076 test assets #rb none #rnx Change 3664441 by Mieszko.Zielinski PR #3993: UE-25907: Added logging to Log Text, Log Location, and Log Box Shape (Contributed by projectgheist) Piggybacking on this PR I've redone how visual log is using categories. Now it's using FName rather than FLogCategoryBase to indicated log category. All UE_VLOG macros have been updated. Change 3664506 by Phillip.Kavan #jira UE-47852 - Fix various issues with both UAT/UBT-driven and manually-configured code/data build workflows involving nativized Blueprint assets. Change summary: - UAT: Removed '-nativizedAssets' command-line option. It's no longer required to specify this flag when cooking/building in order to enable nativization. - UAT: Removed AutomationTool.ProjectParams.BlueprintPluginPaths. - UAT: Modified AutomationTool.ProjectParams.ProjectParams() to initialize the 'RunAssetNativization' field based on the current 'BlueprintNativizationMethod' config setting. This flag is now used just to direct UAT to defer invoking UBT for '-build' until after the '-cook' stage has finished. - UAT: Modified BuildCookRun.DoBuildCookRun() to remove the 'bWarnIfPackagedWithoutNativizationFlag' case (since we removed the '-nativizedAssets' command-line option). - UAT: Removed Project.AddBlueprintPluginPathArgument() and Project.GetBlueprintPluginPathArgument(). These utility functions are no longer needed. - UAT: Modified Project.Cook() to remove the registration of each NativizedAssets plugin path for '-build' along with the addition of the '-nativizedAssets' argument with the platform-agnostic path to the NativizedAssets plugin when invoking UE4Editor.exe for '-cook'. This is now handled by the UE4Editor cook commandlet instead. - UAT: Modified Project.Build() to remove the addition of the '-plugin' argument with the path to the NativizedAssets plugin when invoking UBT for '-build'. This is now handled by UBT instead. - UBT: Modified UnrealBuildTool.ProjectFileGenerator.DiscoverExtraPlugins() to remove the previously-added search for intermediate plugin assets based on the 'AdditionalPluginDirectories' optionally found in the .uproject file. Instead, this search is now handled via a Plugins.EnumeratePlugins() LINQ query. It is also gated by a new Advanced project setting in DefaultGame.ini that defaults to off, but this way users can still add generated assets into the solution file. - UBT: Added UnrealBuildTool.UEBuildTarget.ShouldIncludeNativizedAssets() as a utility method for checking the current 'BlueprintNativizationMethod' setting in the game's config file. - UBT: Modified UnrealBuildTool.UEBuildTarget.CreateTarget() to confirm the existence of a NativizedAssets plugin (generated at cook time) when the project is configured for nativization. If the plugin is found, it is added to the RulesAssembly chain and the ProjectDescriptor.ForeignPlugins list. If the plugin is not found, then a BuildException is thrown informing the user that the plugin must exist in order to build (with a note to make sure to cook the target platform first). - UE4: Added 'Lex' namespace utility functions for converting PlatformInfo::EPlatformType to/from an FString. Note: Lex::FromString() is simply a proxy to the already-existing PlatformInfo::EPlaformTypeFromString() API, but it was included for completeness. - UE4: Removed the UProjectPackagingSettings::bWarnIfPackagedWithoutNativizationFlag. This is no longer needed since the '-nativizedAssets' command-line option has been removed. - UE4: Added UProjectPackagingSettings::bIncludeNativizedAssetsInProjectGeneration (advanced setting). This defaults to 'false' (off). When true, running GenerateProjects.bat will also generate project files for any NativizedAssets plugins previously generated at cook time. This gives advanced users/engineers an option to include nativized Blueprint class sources in the set of generated C++ code projects for faster browsing, etc. - UE4: Modified UProjectPackagingSettings::PostEditChangeProperty() to remove the case that handles the 'BlueprintNativizationMethod' property. When this value changes, we no longer make an attempt to modify the .uproject file. - UE4: Removed BlueprintNativeCodeGenManifestImpl::PlatformPlaceholderPattern. This pattern string is no longer in use. Also modified the FBlueprintNativeCodeGenPaths ctor to remove the replacement logic for the pattern string. - UE4: Modified FBlueprintNativeCodeGenPaths::GetDefaultCodeGenPaths() to construct and return a new directory pattern for the generated NativizedAssets plugin. This is now generated to: Intermediate/Plugins/NativizedAssets/<Platform>/<Type:Game|Client|Server>. - UE4: Modified FBlueprintNativeCodeGenPaths::PluginRootDir() to no longer append "NativizedAssets" to the end of the path to the generated NativizedAssets plugin. - UE4: Removed FCookByTheBookStartupOptions::bNativizeAssets and NativizedPluginPath (no longer in use since the '-nativizeAssets' command-line option has been removed). - UE4: Modified UCookCommandlet::CookByTheBook() to remove initialization of the 'bNativizeAssets' field in the startup options (since the corresponding command-line argument has been removed). - UE4: Removed FNativeCodeGenData::DestPluginPath and modified FBlueprintNativeCodeGenModule::Initialize() to remove the check for it. - UE4: Added FBlueprintNativeCodeGenModule::ShutdownModule(). This now handles cleanup for the nativization module after the cook process has finished. - UE4: Modified UCookCommandlet::CookByTheBook() to no longer look for the '-nativizedAssets' command-line option as well as to remove the initialization of the nativization-related startup option flags that were removed. - UE4: Modified UCookOnTheFlyServer::StartCookByTheBook() to check the 'BlueprintNativizationMethod' config setting in order to determine whether or not to nativize assets. This replaces the '-nativizedAssets' command-line flag. - UE4: Modified UCookOnTheFlyServer::StartCookByTheBook() to remove the case that previously handled the 'bWarnIfPackagedWithoutNativizationFlag' check. This is no longer needed since the '-nativizedAssets' flag was removed. - UE4: Modified UCookOnTheFlyServer::CookByTheBookFinished() to unload the IBlueprintNativeCodeGenModule instance after cooking, in order to reset module state for another potential pass within the same process context. - UE4: Modified UWidgetBlueprintGeneratedClass::InitializeTemplate() to append 'REN_ForceNoResetLoaders' to the Rename() flags so that when we shift the OldArchetype object into the transient package, it doesn't invalidate the outer package's linker. We need that to remain valid so that multiple nativized cooks within the same process don't fail. - UE4: Modified FMainFrameActionCallbacks::PackageProject() to remove the addition of '-nativizedAssets' to the UAT command line based on project settings (this is no longer needed, as it is now handled internally by UAT). - UE4: Modified SaveWorld() to append 'REN_ForceNoResetLoaders' to the Rename() flags so that when we rename the world instead of duplicating it, it no longer triggers a reset of *all* object loaders. Notes: - After this change, all nativization workflows (e.g. UAT, UBT and UE4Editor) now look to the 'BlueprintNativizationMethod' flag in the Project settings (UProjectPackagingSettings). This unifies everything on a single flag by default, and removes the feature added in 4.17 that touched the .uproject file when that setting changed (which itself introduced a couple of new regressions in that release). - Advanced users and build engineers can override this value per task. Instructions to do that are as follows: - For UAT/UBT/UE4Editor.exe tasks, adding '-ini:Game:[/Script/UnrealEd.ProjectPackagingSettings]:BlueprintNativizationMethod=<Disabled|Inclusive|Exclusive>' will allow the current setting to be overridden on the command line. - When '-cook' is included on the RunUAT BuildCookRun command line, the above needs to also be embedded within the '-AdditionalCookerOptions' command-line argument. This means that if both '-cook' and '-build' are included, then both the '-ini' argument shown above as well as the same '-ini' argument embedded inside the '-AdditionalCookerOptions' argument will need to be included for the build pipeline to work properly. - We should add a release note instructing users to check their .uproject file and remove any 'AdditionalPluginDirectories' entries that list the "Intermediate/Plugins" path. This will avoid issues when building the cooked target with UBT. - We should also add a release note and/or documentation to explain the "advanced" build pipeline options (i.e. the '-ini' argument noted above). Change 3665061 by Phillip.Kavan Fix crash on load in a nativized build caused by a reference to a BP class containing a nativized enum. Mirrored from //UE4/Release-4.18 (CL# 3664993). #3969 #jira UE-49233 Change 3665108 by Marc.Audy (4.18) Fix crash when diffing a blueprint whose older version's parent blueprint has been deleted + additional code cleanup #jira UE-50076 Change 3665114 by Marc.Audy Minor change that could potentially improve performance in some cases Change 3665410 by Mieszko.Zielinski Fixed naming of Vislog's BP API #UE4 Change 3665634 by Ben.Zeigler #jira UE-50045 Mark PIE-duplicated packages as explicitly fully loaded to fix PIE networking crash. These used to be accidentally treated as fully loaded because it was checking the wrong package name on disk Change 3666970 by Phillip.Kavan Do not emit a BOM when generating nativized Blueprint asset source files encoded as UTF-8. #jira UE-46814 Change 3667058 by Phillip.Kavan Ensure that '-build' is always passed to BuildCookRun automation for projects configured with Blueprint nativization enabled so that it doesn't skip that stage. Mirrored from //UE4/Release-4.18 (CL# 3667043). #jira UE-50403 Change 3667150 by Mieszko.Zielinski PR #4042: BT CompositeDecorator node clears RF_Transient flag for all owned Decorator nodes. (Contributed by BibbitM) Minor tweak from the original PR - made UBehaviorTreeDecoratorGraphNode_Decorator::ResetNodeOwner protected and added UBehaviorTreeGraphNode_CompositeDecorator class a a friend. #jira UE-50249 Change 3667152 by Mieszko.Zielinski PR #4047: Clearing RF_Transient flag when reseting EQS node owner - single change. (Contributed by BibbitM) #jira UE-50298 Change 3667166 by Mieszko.Zielinski Fixed FRichCurve baking so that it doesn't loose its curvature #UE4 Also, added some baking sanity checking (like if the range is larger than a single point). Change 3668025 by Dan.Oconnor Added a step to the compilation manager to skip recompilation of classes that are dependent on a given classes function signatures when those signatures have not changed #jira UE-50453 Change 3672063 by Ben.Zeigler #jira UE-49049 Fix issue with StreamableHandle ParentHandles array being modified during iteration, I had already fixed the Cancel case but not the complete case Change 3672306 by Ben.Zeigler #jira UE-50571 Fix issue where PrimaryAsset blueprints would be incorrectly added to the dictionary if their base class had an active class redirect referencing it Change 3672683 by Marc.Audy Code cleanup Change 3672749 by Ben.Zeigler Fix issue where deleting a source package would not cause the generated cooked package to get deleted while doing an incremental build Change 3672831 by Ben.Zeigler #jira UE-50507 Add a cook/save warning when a registered PrimaryAssetId does not match the object's real exported PrimaryAssetId. Make PrimaryDataAsset blueprintable so you can make primary assets in a blueprint-only project Change 3673551 by Ben.Zeigler #jira UE-50029 Fix it so data-only blueprints will never create a UCS function in the final class. If you manually compiled the blueprint or it got recompiled due to inheritance it would create a UCS function that just calls its parent, which could cause problems later on when it did not create a UCS function during normal load Change 3675074 by mason.seay Test map for VisLog Testing Change 3675084 by Mieszko.Zielinski Fixed BT editor constantly marking BT asset as dirty if it has a "RunBehavior" node #UE4 #jira UE-43430 Change 3676490 by Ben.Zeigler #jira UE-50635 Fix it so directly blueprinting PrimaryDataAsset will give you a useful PrimaryAssetType. Unless overridden the Type of a PrimaryDataAsset will be the first native class found in the hierarchy, or the the blueprint class that directly blueprints PrimaryDataAsset Change 3676579 by Lukasz.Furman fixed crash in behavior tree's search rollback Change 3676586 by Lukasz.Furman added local scope mode to behavior tree's composite nodes Change 3676587 by Ben.Zeigler Swap PrimaryAssetId property customization to use the same ui as the Pin customization. This one better handles objects that aren't loaded into memory, the old Property one would show None in that case Add browse, use selected, and clear buttons, and make ID selector font the normal property font Change 3676715 by Lukasz.Furman changed order of behavior tree's aux node ticking Change 3676867 by Ben.Zeigler #jira UE-50665 Fix issue where resolving Soft Object Ptrs that are stored inside static assets or Blueprint CDOs from PIE will return the editor actor, not the PIE actor. So when resolving a path/ptr during PIE add a failsafe to do a PIE fixup Fix issue where Lazy pointer fixup could corrupt Soft Object Ptrs by applying the PIE fixup too early Change 3677892 by Ben.Zeigler Fix crash when additional level viewport sprites are added after level editor module is loaded. This is basically the same fix as CL #3491406, but for sprites Change 3678247 by Marc.Audy Fix static analysis warning Change 3678357 by Ben.Zeigler #jira UE-50696 Add some container variables to diff test to track down crashes Change 3678385 by Ben.Zeigler #jira UE-50696 Fix crash diffing blueprints where array properties were changed. It needs to not run the generic identical check until it's sure the container types match Change 3678600 by Ben.Zeigler #jira UE-50703 Fix crash when a soft actor reference is not actually pointing to an actor, treat it like a broken reference Change 3679075 by Dan.Oconnor Mirror 3679030 from Release-4.18 Fix crash when compiling a level blueprint that has delegates to a blueprint that it also has a direct dependency on #jira UE-48692 Change 3679087 by Dan.Oconnor Filter out unnecessary relink jobs from the compilation manager #jira None Change 3680221 by Ben.Zeigler #jira UE-50764 Fix crash when converting a property from a soft object reference to hard, it needs to validate the class after the conversion and null if necessary Change 3680561 by Lukasz.Furman fixed unsafe StopTree calls in behavior tree #jira nope Change 3680788 by Ben.Zeigler Fix issue where scrubbing sequencer in simulate would not modify actors. We need to temporarily set the PIE context global when doing this specific type of actor bind Change 3683001 by mason.seay Submitting various test maps and assets Change 3686837 by Mieszko.Zielinski Fixed NavMeshBoundsVolume not updating navmesh when its location gets changed via the Transform Details widget #Orion #jira UE-50857 Change 3688451 by Marc.Audy Fix up new material expression to work with String -> Name refactor Change 3689097 by Mason.Seay Test content for nativization and enum testing Change 3689106 by Mieszko.Zielinski Made NavMeshBoundsVolume react to undo in the editor #Orion #jira UE-51013 Change 3689347 by Mieszko.Zielinski Fixed a crash on FAIDynamicParam creation resulting from uninitialized member variables #UE4 Manual merge of CL#3689316 over from 4.18 #jira UE-51019 Change 3692524 by mason.seay Moved some assets to folder for org, fixed up redirectors Change 3692540 by mason.seay Renaming test maps so they are clearly indicated for testing nativization Change 3692577 by mason.seay Deleted a bunch of old assets I created specifically for various bugs reported. All issues are closed so they're no longer needed Change 3692724 by mason.seay Deleting handful of assets found in developer folders of those no longer with the team. Moved assets that are still used by test maps Change 3693184 by mason.seay Assets for testing nativization with structs Change 3693367 by mason.seay Improvements to test content Change 3695395 by Dan.Oconnor Fix for rare linker issue, IsBlueprintFinalizationPending would return true when we were trying to force load subobjects that were now ready to be loaded. This would prevent some placeholder objects from being replaced #jira None Change 3695484 by Marc.Audy Fix sound cue connection drawing policy not getting returned. #jira UE-51032 Change 3695494 by mason.seay More test content for nativization testing Change 3697829 by Mieszko.Zielinski PR #4104: Fixed a typo CaclulateMaxTilesCount to CalculateMaxTilesCount (Contributed by YuchenMei) Change 3700541 by mason.seay Test map for containers with function bug Change 3703459 by Marc.Audy Remove poorly named InverseLerp Fix degenerate behavior returning bad value #jira UE-50295 Change 3703803 by Marc.Audy Clean up autos Minor improvement to ShouldGenerateCluster Change 3704496 by Mason.Seay More test content for testing nativization Change 3706314 by Marc.Audy PR #4085: GetDefaultPawnClassForController -> BlueprintCallable (Contributed by Allar) #jira UE-50874 Change 3707502 by Mason.Seay Final changes to nativization test content (hopefully) Change 3709478 by Marc.Audy PR #4144: Exposed MassageAxisInput for inheritence (Contributed by jackknobel) Same as CL# 3689702 implemented in Fortnite #jira UE-51453 Change 3709967 by Marc.Audy PR #4139: fixed a typo in a comment (Contributed by derekvanvliet) #jira UE-51372 Change 3709970 by Marc.Audy PR #4150: Fixed a typo in movement override comment (Contributed by ruffenman) #jira UE-51495 Change 3709971 by Marc.Audy PR #4149: Fixing typo on movement pawn component (Contributed by celsodantas) #jira UE-51492 Change 3710041 by Marc.Audy Minor code cleanup Change 3711223 by Phillip.Kavan Move some Blueprint nativization log spam into the verbose category. #jira UE-49770 Change 3713398 by Marc.Audy PR #4157: Renamed AActor::InternalTakePointDamage function's parameter. (Contributed by BibbitM) #jira UE-51517 Change 3713601 by Marc.Audy Fix merge error Change 3713994 by Marc.Audy (4.18) Just mark level script actor pending kill when the level script blueprint has been recompiled, instead of trying to send it through the destroy actor lifecycle event. #jira UE-50738 Change 3714270 by Marc.Audy Fix crashes with tickables as a result of virtuals not being usable in constructors/destructors #jira UE-51534 Change 3714406 by Marc.Audy Fix dumb inverted boolean check Change 3716594 by Dan.Oconnor Integrate 3681301 from 4.18 Only run OnLevelScriptBlueprintChanged when explicitly compiling a level blueprint, this matches the old behavior #jira UE-50780, UE-51568 Change 3686450 by Marc.Audy PinCategory, PinSubcategory, and PinName are now stored as FName instead of FString. CreatePin has several simplified overrides so you can only specify Subcategory or SubcategoryObject or neither. CreatePin also takes a parameter bundle for reference, const, container type, index, and value terminal type rather than a long list of default parameters. Material Expressions now store input and output names as FName instead of FString FNiagaraParameterHandle now stores the parameter handle, namespace, and name as FName instead of FString Most existing pin related functions using string have been deprecated. Change 3713796 by Marc.Audy Added virtual GetTickableType function to FTickableBaseObject that can return Conditional (default), Always, or Never. Tickable Never objects will not get added to the tickable array or ever evaluated. Tickable Always objects do not call IsTickable and assume it will return true. Tickable Conditional objects work as in the past with IsTickable called each frame to make the determination whether to call Tick or not. IsTickable no longer a pure virtual (defaults to true). Applied fixes to avoid array corruption when a FTickableEditorObject is deleted during the tick phase consistent with previous fixes to FTickableGameObject. Change 3638554 by Marc.Audy Add enum expansion functional test to validate that the metadata ExpandEnumAsExecs works as expected. Change 3676502 by Ben.Zeigler Add Blueprint-only primary asset type to EngineTest, to cover testing UE-50635 [CL 3718205 by Marc Audy in Main branch]
2017-10-25 09:30:36 -04:00
bool const bIsConstructionScript = (K2Schema != nullptr) ? UEdGraphSchema_K2::IsConstructionScript(Graph) : false;
bIsCompatible = (Blueprint != nullptr) && Blueprint->SupportsInputEvents() && !bIsConstructionScript && Super::IsCompatibleWithGraph(Graph);
}
return bIsCompatible;
}
UEdGraphPin* UK2Node_InputKey::GetPressedPin() const
{
return FindPin(TEXT("Pressed"));
}
UEdGraphPin* UK2Node_InputKey::GetReleasedPin() const
{
return FindPin(TEXT("Released"));
}
void UK2Node_InputKey::ValidateNodeDuringCompilation(class FCompilerResultsLog& MessageLog) const
{
Super::ValidateNodeDuringCompilation(MessageLog);
if (!InputKey.IsValid())
{
MessageLog.Warning(*FText::Format(NSLOCTEXT("KismetCompiler", "Invalid_InputKey_Warning", "InputKey Event specifies invalid FKey'{0}' for @@"), FText::FromString(InputKey.ToString())).ToString(), this);
}
else if (InputKey.IsAnalog())
{
MessageLog.Warning(*FText::Format(NSLOCTEXT("KismetCompiler", "Axis_InputKey_Warning", "InputKey Event specifies axis FKey'{0}' for @@"), FText::FromString(InputKey.ToString())).ToString(), this);
}
else if (InputKey.IsDeprecated())
{
MessageLog.Warning(*FText::Format(NSLOCTEXT("KismetCompiler", "Deprecated_InputKey_Warning", "InputKey Event specifies FKey'{0}' which has been deprecated for @@"), FText::FromString(InputKey.ToString())).ToString(), this);
}
else if (!InputKey.IsBindableInBlueprints())
{
MessageLog.Warning( *FText::Format( NSLOCTEXT("KismetCompiler", "NotBindanble_InputKey_Warning", "InputKey Event specifies FKey'{0}' that is not blueprint bindable for @@"), FText::FromString(InputKey.ToString())).ToString(), this);
}
}
void UK2Node_InputKey::ExpandNode(FKismetCompilerContext& CompilerContext, UEdGraph* SourceGraph)
{
Super::ExpandNode(CompilerContext, SourceGraph);
UEdGraphPin* InputKeyPressedPin = GetPressedPin();
UEdGraphPin* InputKeyReleasedPin = GetReleasedPin();
struct EventPinData
{
EventPinData(UEdGraphPin* InPin,TEnumAsByte<EInputEvent> InEvent ){ Pin=InPin;EventType=InEvent;};
UEdGraphPin* Pin;
TEnumAsByte<EInputEvent> EventType;
};
TArray<EventPinData> ActivePins;
if(( InputKeyPressedPin != nullptr ) && (InputKeyPressedPin->LinkedTo.Num() > 0 ))
{
ActivePins.Add(EventPinData(InputKeyPressedPin,IE_Pressed));
}
if((InputKeyReleasedPin != nullptr) && (InputKeyReleasedPin->LinkedTo.Num() > 0 ))
{
ActivePins.Add(EventPinData(InputKeyReleasedPin,IE_Released));
}
const UEdGraphSchema_K2* Schema = CompilerContext.GetSchema();
// If more than one is linked we have to do more complicated behaviors
if( ActivePins.Num() > 1 )
{
// Create a temporary variable to copy Key in to
static UScriptStruct* KeyStruct = FKey::StaticStruct();
UK2Node_TemporaryVariable* KeyVar = CompilerContext.SpawnIntermediateNode<UK2Node_TemporaryVariable>(this, SourceGraph);
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 3716594) #lockdown Nick.Penwarden ============================ MAJOR FEATURES & CHANGES ============================ Change 3623720 by Phillip.Kavan #jira UE-49239 - Temp fix for QAGame animations not updating in a nativized build. Change summary: - Temporarily excluded all AnimBP assets from nativization as a workaround. Change 3626305 by Phillip.Kavan #jira UE-49269 - Workaround fix for crash after packaging a nativized QAGame build with all AnimBP assets disabled for nativization by default. Change 3629145 by Marc.Audy Don't hide developer nativization tool behind ini Change 3630849 by Marc.Audy Fix nativization uncompilable code when using a non-referenceable term in a switch statement. #jira UE-44085 Change 3631037 by Marc.Audy (4.17.2) Fix crash when nativizing blueprint with MakeMap or MakeSet node in it #jira UE-49440 Change 3631206 by Marc.Audy Make NAME_None == TEXT("") behave the same as NAME_None == FName(TEXT("")) Change 3631232 by Marc.Audy Remove outdated diagnostic code throwing false positives #jira UE-47986 Change 3631573 by Marc.Audy Fix containers of vector, rotator, or transform placing a space between the type and the pluralization 's' Change 3633168 by Lukasz.Furman fixed behavior tree changing its state during latent abort, modified order of operations during abort to: abort & wait -> change aux nodes -> execute Change 3633609 by Marc.Audy Don't get unneeded string Change 3633691 by Marc.Audy Fix copy-pasting of a collapsed graph containing a map input losing the value type #jira UE-49517 Change 3633967 by Ben.Zeigler Actor.h header cleanup, fix various comments and reorganize some members, saves 80 bytes per actor in a cooked Win64 build bRunningUserConstructionScript is now private, exposed with IsRunningUserConstructionScript Fixed a few other fields to be private that were accidentally made public in 4.17 Change 3633984 by Michael.Noland Blueprints: Fixed a potential crash when collapsing nodes to a function when a potential entry pin had no links Change 3634464 by Ben.Zeigler Header cleanups for Pawn, Controller, Character, and PlayerController Change 3636858 by Marc.Audy In preview worlds don't display the light error sprite #jira UE-49555 Change 3636903 by Marc.Audy Fix numerous issues with copy/pasting editable pin bases #jira UE-49532 Change 3638898 by Marc.Audy Allow right-click creation of local variables in blueprint function libraries #jira UE-49590 Change 3639086 by Marc.Audy PR #4006: Mark UEdGraphSchema::BreakSinglePinLink as const (Contributed by leyyin) #jira UE-49591 Change 3639445 by Marc.Audy Fix mistaken override and virtual markup on niagara schema function. Change 3641202 by Marc.Audy (4.17.2) Fix crash undoing pin changes with split pins #jira UE-49634 Change 3643825 by Marc.Audy (4.17.2) Fix crash right clicking a struct pin when the struct it represented has been deleted #jira UE-49756 Change 3645110 by mason.seay Fixed up QA-ClickHUD map so it's usable and makes more sense Change 3646428 by Dan.Oconnor Fix for UbergraphFrame layout changing during bytecode recompile, which would cause actual ubergraph frame layout to mismatch reflection data #jira None Change 3647298 by Marc.Audy PR #4016: Rename argument name for SetInputMode (Contributed by projectgheist) #jira UE-49748 Change 3647815 by Marc.Audy Minor performance improvements Change 3648931 by Lina.Halper #Compiler : fixed so that each type of BP can provide module info, and compiler info - Moved out AnimBlueprint Compiler - Refactored WidgetBlueprint - DUPE - Merging using ControlRig_Dev-Framework Change 3654310 by Marc.Audy Shrink USkinnedMeshComponent 64 bytes Shrink USkeletalMeshComponent 224 bytes (160 bytes internal) Change 3654636 by Lina.Halper Fix crashing on shutdown #jira: UE-50004 Change 3654960 by Lina.Halper - Fix with automation test of creation/duplication - Fixed shut down crash with editor again due to uobject GCed #jira: UE-50028 Change 3655023 by Ben.Zeigler #jira UE-50101 Fix level streaming transform when PIE-duplicating a level that has been preloaded but not made visible in the editor. Instead of always saying actors have been moved we copy the source level's flag Change 3655426 by Ben.Zeigler #jira UE-50019 Fix issue where StreamableManager could return objects that are partially loaded if called from PostLoad. StreamableManager never wants half-loaded objects, so change it to explicitly skip them Change 3657627 by Ben.Zeigler #jira UE-50157 Fix EDL load dependency issue where the simple construction script/ICH are not guaranteed to be serialized in time for subobject construction Change 3662086 by Mieszko.Zielinski Fixed navmesh not loading properly in PIE when owning world has been duplicated-for-play #UE4 This can happen when navigation containing level is loaded via AsyncLoadPrimaryAssetList #jira UE-50101 Change 3662294 by Ben.Zeigler Fix enum redirects to handle non-class enums properly where a value redirect is not specified. It needs to convert from EOldEnum::Value to ENewEnum::Value before doing the name check Change 3662825 by Mieszko.Zielinski Fixed VisLog debug drawing crashing when using UI to change log lines to be displayed #UE4 there was a loop iterating over elements of a map and was modifying the map as it went, which is a big no-no Change 3664424 by Marc.Audy UE-50076 test assets #rb none #rnx Change 3664441 by Mieszko.Zielinski PR #3993: UE-25907: Added logging to Log Text, Log Location, and Log Box Shape (Contributed by projectgheist) Piggybacking on this PR I've redone how visual log is using categories. Now it's using FName rather than FLogCategoryBase to indicated log category. All UE_VLOG macros have been updated. Change 3664506 by Phillip.Kavan #jira UE-47852 - Fix various issues with both UAT/UBT-driven and manually-configured code/data build workflows involving nativized Blueprint assets. Change summary: - UAT: Removed '-nativizedAssets' command-line option. It's no longer required to specify this flag when cooking/building in order to enable nativization. - UAT: Removed AutomationTool.ProjectParams.BlueprintPluginPaths. - UAT: Modified AutomationTool.ProjectParams.ProjectParams() to initialize the 'RunAssetNativization' field based on the current 'BlueprintNativizationMethod' config setting. This flag is now used just to direct UAT to defer invoking UBT for '-build' until after the '-cook' stage has finished. - UAT: Modified BuildCookRun.DoBuildCookRun() to remove the 'bWarnIfPackagedWithoutNativizationFlag' case (since we removed the '-nativizedAssets' command-line option). - UAT: Removed Project.AddBlueprintPluginPathArgument() and Project.GetBlueprintPluginPathArgument(). These utility functions are no longer needed. - UAT: Modified Project.Cook() to remove the registration of each NativizedAssets plugin path for '-build' along with the addition of the '-nativizedAssets' argument with the platform-agnostic path to the NativizedAssets plugin when invoking UE4Editor.exe for '-cook'. This is now handled by the UE4Editor cook commandlet instead. - UAT: Modified Project.Build() to remove the addition of the '-plugin' argument with the path to the NativizedAssets plugin when invoking UBT for '-build'. This is now handled by UBT instead. - UBT: Modified UnrealBuildTool.ProjectFileGenerator.DiscoverExtraPlugins() to remove the previously-added search for intermediate plugin assets based on the 'AdditionalPluginDirectories' optionally found in the .uproject file. Instead, this search is now handled via a Plugins.EnumeratePlugins() LINQ query. It is also gated by a new Advanced project setting in DefaultGame.ini that defaults to off, but this way users can still add generated assets into the solution file. - UBT: Added UnrealBuildTool.UEBuildTarget.ShouldIncludeNativizedAssets() as a utility method for checking the current 'BlueprintNativizationMethod' setting in the game's config file. - UBT: Modified UnrealBuildTool.UEBuildTarget.CreateTarget() to confirm the existence of a NativizedAssets plugin (generated at cook time) when the project is configured for nativization. If the plugin is found, it is added to the RulesAssembly chain and the ProjectDescriptor.ForeignPlugins list. If the plugin is not found, then a BuildException is thrown informing the user that the plugin must exist in order to build (with a note to make sure to cook the target platform first). - UE4: Added 'Lex' namespace utility functions for converting PlatformInfo::EPlatformType to/from an FString. Note: Lex::FromString() is simply a proxy to the already-existing PlatformInfo::EPlaformTypeFromString() API, but it was included for completeness. - UE4: Removed the UProjectPackagingSettings::bWarnIfPackagedWithoutNativizationFlag. This is no longer needed since the '-nativizedAssets' command-line option has been removed. - UE4: Added UProjectPackagingSettings::bIncludeNativizedAssetsInProjectGeneration (advanced setting). This defaults to 'false' (off). When true, running GenerateProjects.bat will also generate project files for any NativizedAssets plugins previously generated at cook time. This gives advanced users/engineers an option to include nativized Blueprint class sources in the set of generated C++ code projects for faster browsing, etc. - UE4: Modified UProjectPackagingSettings::PostEditChangeProperty() to remove the case that handles the 'BlueprintNativizationMethod' property. When this value changes, we no longer make an attempt to modify the .uproject file. - UE4: Removed BlueprintNativeCodeGenManifestImpl::PlatformPlaceholderPattern. This pattern string is no longer in use. Also modified the FBlueprintNativeCodeGenPaths ctor to remove the replacement logic for the pattern string. - UE4: Modified FBlueprintNativeCodeGenPaths::GetDefaultCodeGenPaths() to construct and return a new directory pattern for the generated NativizedAssets plugin. This is now generated to: Intermediate/Plugins/NativizedAssets/<Platform>/<Type:Game|Client|Server>. - UE4: Modified FBlueprintNativeCodeGenPaths::PluginRootDir() to no longer append "NativizedAssets" to the end of the path to the generated NativizedAssets plugin. - UE4: Removed FCookByTheBookStartupOptions::bNativizeAssets and NativizedPluginPath (no longer in use since the '-nativizeAssets' command-line option has been removed). - UE4: Modified UCookCommandlet::CookByTheBook() to remove initialization of the 'bNativizeAssets' field in the startup options (since the corresponding command-line argument has been removed). - UE4: Removed FNativeCodeGenData::DestPluginPath and modified FBlueprintNativeCodeGenModule::Initialize() to remove the check for it. - UE4: Added FBlueprintNativeCodeGenModule::ShutdownModule(). This now handles cleanup for the nativization module after the cook process has finished. - UE4: Modified UCookCommandlet::CookByTheBook() to no longer look for the '-nativizedAssets' command-line option as well as to remove the initialization of the nativization-related startup option flags that were removed. - UE4: Modified UCookOnTheFlyServer::StartCookByTheBook() to check the 'BlueprintNativizationMethod' config setting in order to determine whether or not to nativize assets. This replaces the '-nativizedAssets' command-line flag. - UE4: Modified UCookOnTheFlyServer::StartCookByTheBook() to remove the case that previously handled the 'bWarnIfPackagedWithoutNativizationFlag' check. This is no longer needed since the '-nativizedAssets' flag was removed. - UE4: Modified UCookOnTheFlyServer::CookByTheBookFinished() to unload the IBlueprintNativeCodeGenModule instance after cooking, in order to reset module state for another potential pass within the same process context. - UE4: Modified UWidgetBlueprintGeneratedClass::InitializeTemplate() to append 'REN_ForceNoResetLoaders' to the Rename() flags so that when we shift the OldArchetype object into the transient package, it doesn't invalidate the outer package's linker. We need that to remain valid so that multiple nativized cooks within the same process don't fail. - UE4: Modified FMainFrameActionCallbacks::PackageProject() to remove the addition of '-nativizedAssets' to the UAT command line based on project settings (this is no longer needed, as it is now handled internally by UAT). - UE4: Modified SaveWorld() to append 'REN_ForceNoResetLoaders' to the Rename() flags so that when we rename the world instead of duplicating it, it no longer triggers a reset of *all* object loaders. Notes: - After this change, all nativization workflows (e.g. UAT, UBT and UE4Editor) now look to the 'BlueprintNativizationMethod' flag in the Project settings (UProjectPackagingSettings). This unifies everything on a single flag by default, and removes the feature added in 4.17 that touched the .uproject file when that setting changed (which itself introduced a couple of new regressions in that release). - Advanced users and build engineers can override this value per task. Instructions to do that are as follows: - For UAT/UBT/UE4Editor.exe tasks, adding '-ini:Game:[/Script/UnrealEd.ProjectPackagingSettings]:BlueprintNativizationMethod=<Disabled|Inclusive|Exclusive>' will allow the current setting to be overridden on the command line. - When '-cook' is included on the RunUAT BuildCookRun command line, the above needs to also be embedded within the '-AdditionalCookerOptions' command-line argument. This means that if both '-cook' and '-build' are included, then both the '-ini' argument shown above as well as the same '-ini' argument embedded inside the '-AdditionalCookerOptions' argument will need to be included for the build pipeline to work properly. - We should add a release note instructing users to check their .uproject file and remove any 'AdditionalPluginDirectories' entries that list the "Intermediate/Plugins" path. This will avoid issues when building the cooked target with UBT. - We should also add a release note and/or documentation to explain the "advanced" build pipeline options (i.e. the '-ini' argument noted above). Change 3665061 by Phillip.Kavan Fix crash on load in a nativized build caused by a reference to a BP class containing a nativized enum. Mirrored from //UE4/Release-4.18 (CL# 3664993). #3969 #jira UE-49233 Change 3665108 by Marc.Audy (4.18) Fix crash when diffing a blueprint whose older version's parent blueprint has been deleted + additional code cleanup #jira UE-50076 Change 3665114 by Marc.Audy Minor change that could potentially improve performance in some cases Change 3665410 by Mieszko.Zielinski Fixed naming of Vislog's BP API #UE4 Change 3665634 by Ben.Zeigler #jira UE-50045 Mark PIE-duplicated packages as explicitly fully loaded to fix PIE networking crash. These used to be accidentally treated as fully loaded because it was checking the wrong package name on disk Change 3666970 by Phillip.Kavan Do not emit a BOM when generating nativized Blueprint asset source files encoded as UTF-8. #jira UE-46814 Change 3667058 by Phillip.Kavan Ensure that '-build' is always passed to BuildCookRun automation for projects configured with Blueprint nativization enabled so that it doesn't skip that stage. Mirrored from //UE4/Release-4.18 (CL# 3667043). #jira UE-50403 Change 3667150 by Mieszko.Zielinski PR #4042: BT CompositeDecorator node clears RF_Transient flag for all owned Decorator nodes. (Contributed by BibbitM) Minor tweak from the original PR - made UBehaviorTreeDecoratorGraphNode_Decorator::ResetNodeOwner protected and added UBehaviorTreeGraphNode_CompositeDecorator class a a friend. #jira UE-50249 Change 3667152 by Mieszko.Zielinski PR #4047: Clearing RF_Transient flag when reseting EQS node owner - single change. (Contributed by BibbitM) #jira UE-50298 Change 3667166 by Mieszko.Zielinski Fixed FRichCurve baking so that it doesn't loose its curvature #UE4 Also, added some baking sanity checking (like if the range is larger than a single point). Change 3668025 by Dan.Oconnor Added a step to the compilation manager to skip recompilation of classes that are dependent on a given classes function signatures when those signatures have not changed #jira UE-50453 Change 3672063 by Ben.Zeigler #jira UE-49049 Fix issue with StreamableHandle ParentHandles array being modified during iteration, I had already fixed the Cancel case but not the complete case Change 3672306 by Ben.Zeigler #jira UE-50571 Fix issue where PrimaryAsset blueprints would be incorrectly added to the dictionary if their base class had an active class redirect referencing it Change 3672683 by Marc.Audy Code cleanup Change 3672749 by Ben.Zeigler Fix issue where deleting a source package would not cause the generated cooked package to get deleted while doing an incremental build Change 3672831 by Ben.Zeigler #jira UE-50507 Add a cook/save warning when a registered PrimaryAssetId does not match the object's real exported PrimaryAssetId. Make PrimaryDataAsset blueprintable so you can make primary assets in a blueprint-only project Change 3673551 by Ben.Zeigler #jira UE-50029 Fix it so data-only blueprints will never create a UCS function in the final class. If you manually compiled the blueprint or it got recompiled due to inheritance it would create a UCS function that just calls its parent, which could cause problems later on when it did not create a UCS function during normal load Change 3675074 by mason.seay Test map for VisLog Testing Change 3675084 by Mieszko.Zielinski Fixed BT editor constantly marking BT asset as dirty if it has a "RunBehavior" node #UE4 #jira UE-43430 Change 3676490 by Ben.Zeigler #jira UE-50635 Fix it so directly blueprinting PrimaryDataAsset will give you a useful PrimaryAssetType. Unless overridden the Type of a PrimaryDataAsset will be the first native class found in the hierarchy, or the the blueprint class that directly blueprints PrimaryDataAsset Change 3676579 by Lukasz.Furman fixed crash in behavior tree's search rollback Change 3676586 by Lukasz.Furman added local scope mode to behavior tree's composite nodes Change 3676587 by Ben.Zeigler Swap PrimaryAssetId property customization to use the same ui as the Pin customization. This one better handles objects that aren't loaded into memory, the old Property one would show None in that case Add browse, use selected, and clear buttons, and make ID selector font the normal property font Change 3676715 by Lukasz.Furman changed order of behavior tree's aux node ticking Change 3676867 by Ben.Zeigler #jira UE-50665 Fix issue where resolving Soft Object Ptrs that are stored inside static assets or Blueprint CDOs from PIE will return the editor actor, not the PIE actor. So when resolving a path/ptr during PIE add a failsafe to do a PIE fixup Fix issue where Lazy pointer fixup could corrupt Soft Object Ptrs by applying the PIE fixup too early Change 3677892 by Ben.Zeigler Fix crash when additional level viewport sprites are added after level editor module is loaded. This is basically the same fix as CL #3491406, but for sprites Change 3678247 by Marc.Audy Fix static analysis warning Change 3678357 by Ben.Zeigler #jira UE-50696 Add some container variables to diff test to track down crashes Change 3678385 by Ben.Zeigler #jira UE-50696 Fix crash diffing blueprints where array properties were changed. It needs to not run the generic identical check until it's sure the container types match Change 3678600 by Ben.Zeigler #jira UE-50703 Fix crash when a soft actor reference is not actually pointing to an actor, treat it like a broken reference Change 3679075 by Dan.Oconnor Mirror 3679030 from Release-4.18 Fix crash when compiling a level blueprint that has delegates to a blueprint that it also has a direct dependency on #jira UE-48692 Change 3679087 by Dan.Oconnor Filter out unnecessary relink jobs from the compilation manager #jira None Change 3680221 by Ben.Zeigler #jira UE-50764 Fix crash when converting a property from a soft object reference to hard, it needs to validate the class after the conversion and null if necessary Change 3680561 by Lukasz.Furman fixed unsafe StopTree calls in behavior tree #jira nope Change 3680788 by Ben.Zeigler Fix issue where scrubbing sequencer in simulate would not modify actors. We need to temporarily set the PIE context global when doing this specific type of actor bind Change 3683001 by mason.seay Submitting various test maps and assets Change 3686837 by Mieszko.Zielinski Fixed NavMeshBoundsVolume not updating navmesh when its location gets changed via the Transform Details widget #Orion #jira UE-50857 Change 3688451 by Marc.Audy Fix up new material expression to work with String -> Name refactor Change 3689097 by Mason.Seay Test content for nativization and enum testing Change 3689106 by Mieszko.Zielinski Made NavMeshBoundsVolume react to undo in the editor #Orion #jira UE-51013 Change 3689347 by Mieszko.Zielinski Fixed a crash on FAIDynamicParam creation resulting from uninitialized member variables #UE4 Manual merge of CL#3689316 over from 4.18 #jira UE-51019 Change 3692524 by mason.seay Moved some assets to folder for org, fixed up redirectors Change 3692540 by mason.seay Renaming test maps so they are clearly indicated for testing nativization Change 3692577 by mason.seay Deleted a bunch of old assets I created specifically for various bugs reported. All issues are closed so they're no longer needed Change 3692724 by mason.seay Deleting handful of assets found in developer folders of those no longer with the team. Moved assets that are still used by test maps Change 3693184 by mason.seay Assets for testing nativization with structs Change 3693367 by mason.seay Improvements to test content Change 3695395 by Dan.Oconnor Fix for rare linker issue, IsBlueprintFinalizationPending would return true when we were trying to force load subobjects that were now ready to be loaded. This would prevent some placeholder objects from being replaced #jira None Change 3695484 by Marc.Audy Fix sound cue connection drawing policy not getting returned. #jira UE-51032 Change 3695494 by mason.seay More test content for nativization testing Change 3697829 by Mieszko.Zielinski PR #4104: Fixed a typo CaclulateMaxTilesCount to CalculateMaxTilesCount (Contributed by YuchenMei) Change 3700541 by mason.seay Test map for containers with function bug Change 3703459 by Marc.Audy Remove poorly named InverseLerp Fix degenerate behavior returning bad value #jira UE-50295 Change 3703803 by Marc.Audy Clean up autos Minor improvement to ShouldGenerateCluster Change 3704496 by Mason.Seay More test content for testing nativization Change 3706314 by Marc.Audy PR #4085: GetDefaultPawnClassForController -> BlueprintCallable (Contributed by Allar) #jira UE-50874 Change 3707502 by Mason.Seay Final changes to nativization test content (hopefully) Change 3709478 by Marc.Audy PR #4144: Exposed MassageAxisInput for inheritence (Contributed by jackknobel) Same as CL# 3689702 implemented in Fortnite #jira UE-51453 Change 3709967 by Marc.Audy PR #4139: fixed a typo in a comment (Contributed by derekvanvliet) #jira UE-51372 Change 3709970 by Marc.Audy PR #4150: Fixed a typo in movement override comment (Contributed by ruffenman) #jira UE-51495 Change 3709971 by Marc.Audy PR #4149: Fixing typo on movement pawn component (Contributed by celsodantas) #jira UE-51492 Change 3710041 by Marc.Audy Minor code cleanup Change 3711223 by Phillip.Kavan Move some Blueprint nativization log spam into the verbose category. #jira UE-49770 Change 3713398 by Marc.Audy PR #4157: Renamed AActor::InternalTakePointDamage function's parameter. (Contributed by BibbitM) #jira UE-51517 Change 3713601 by Marc.Audy Fix merge error Change 3713994 by Marc.Audy (4.18) Just mark level script actor pending kill when the level script blueprint has been recompiled, instead of trying to send it through the destroy actor lifecycle event. #jira UE-50738 Change 3714270 by Marc.Audy Fix crashes with tickables as a result of virtuals not being usable in constructors/destructors #jira UE-51534 Change 3714406 by Marc.Audy Fix dumb inverted boolean check Change 3716594 by Dan.Oconnor Integrate 3681301 from 4.18 Only run OnLevelScriptBlueprintChanged when explicitly compiling a level blueprint, this matches the old behavior #jira UE-50780, UE-51568 Change 3686450 by Marc.Audy PinCategory, PinSubcategory, and PinName are now stored as FName instead of FString. CreatePin has several simplified overrides so you can only specify Subcategory or SubcategoryObject or neither. CreatePin also takes a parameter bundle for reference, const, container type, index, and value terminal type rather than a long list of default parameters. Material Expressions now store input and output names as FName instead of FString FNiagaraParameterHandle now stores the parameter handle, namespace, and name as FName instead of FString Most existing pin related functions using string have been deprecated. Change 3713796 by Marc.Audy Added virtual GetTickableType function to FTickableBaseObject that can return Conditional (default), Always, or Never. Tickable Never objects will not get added to the tickable array or ever evaluated. Tickable Always objects do not call IsTickable and assume it will return true. Tickable Conditional objects work as in the past with IsTickable called each frame to make the determination whether to call Tick or not. IsTickable no longer a pure virtual (defaults to true). Applied fixes to avoid array corruption when a FTickableEditorObject is deleted during the tick phase consistent with previous fixes to FTickableGameObject. Change 3638554 by Marc.Audy Add enum expansion functional test to validate that the metadata ExpandEnumAsExecs works as expected. Change 3676502 by Ben.Zeigler Add Blueprint-only primary asset type to EngineTest, to cover testing UE-50635 [CL 3718205 by Marc Audy in Main branch]
2017-10-25 09:30:36 -04:00
KeyVar->VariableType.PinCategory = UEdGraphSchema_K2::PC_Struct;
KeyVar->VariableType.PinSubCategoryObject = KeyStruct;
KeyVar->AllocateDefaultPins();
for (auto PinIt = ActivePins.CreateIterator(); PinIt; ++PinIt)
{
UEdGraphPin *EachPin = (*PinIt).Pin;
// Create the input touch event
UK2Node_InputKeyEvent* InputKeyEvent = CompilerContext.SpawnIntermediateNode<UK2Node_InputKeyEvent>(this, SourceGraph);
const FName ModifierName = GetModifierName();
if ( ModifierName != NAME_None )
{
InputKeyEvent->CustomFunctionName = FName( *FString::Printf(TEXT("InpActEvt_%s_%s_%s"), *ModifierName.ToString(), *InputKey.ToString(), *InputKeyEvent->GetName()));
}
else
{
InputKeyEvent->CustomFunctionName = FName( *FString::Printf(TEXT("InpActEvt_%s_%s"), *InputKey.ToString(), *InputKeyEvent->GetName()));
}
InputKeyEvent->InputChord.Key = InputKey;
InputKeyEvent->InputChord.bCtrl = bControl;
InputKeyEvent->InputChord.bAlt = bAlt;
InputKeyEvent->InputChord.bShift = bShift;
InputKeyEvent->InputChord.bCmd = bCommand;
InputKeyEvent->bConsumeInput = bConsumeInput;
InputKeyEvent->bExecuteWhenPaused = bExecuteWhenPaused;
InputKeyEvent->bOverrideParentBinding = bOverrideParentBinding;
InputKeyEvent->InputKeyEvent = (*PinIt).EventType;
InputKeyEvent->EventReference.SetExternalDelegateMember(FName(TEXT("InputActionHandlerDynamicSignature__DelegateSignature")));
InputKeyEvent->bInternalEvent = true;
InputKeyEvent->AllocateDefaultPins();
// Create assignment nodes to assign the key
UK2Node_AssignmentStatement* KeyInitialize = CompilerContext.SpawnIntermediateNode<UK2Node_AssignmentStatement>(this, SourceGraph);
KeyInitialize->AllocateDefaultPins();
Schema->TryCreateConnection(KeyVar->GetVariablePin(), KeyInitialize->GetVariablePin());
Schema->TryCreateConnection(KeyInitialize->GetValuePin(), InputKeyEvent->FindPinChecked(TEXT("Key")));
// Connect the events to the assign key nodes
Schema->TryCreateConnection(Schema->FindExecutionPin(*InputKeyEvent, EGPD_Output), KeyInitialize->GetExecPin());
// Move the original event connections to the then pin of the key assign
CompilerContext.MovePinLinksToIntermediate(*EachPin, *KeyInitialize->GetThenPin());
// Move the original event variable connections to the intermediate nodes
CompilerContext.MovePinLinksToIntermediate(*FindPin(TEXT("Key")), *KeyVar->GetVariablePin());
}
}
else if( ActivePins.Num() == 1 )
{
UEdGraphPin* InputKeyPin = ActivePins[0].Pin;
EInputEvent InputEvent = ActivePins[0].EventType;
if (InputKeyPin->LinkedTo.Num() > 0)
{
UK2Node_InputKeyEvent* InputKeyEvent = CompilerContext.SpawnIntermediateNode<UK2Node_InputKeyEvent>(this, SourceGraph);
const FName ModifierName = GetModifierName();
if ( ModifierName != NAME_None )
{
InputKeyEvent->CustomFunctionName = FName( *FString::Printf(TEXT("InpActEvt_%s_%s_%s"), *ModifierName.ToString(), *InputKey.ToString(), *InputKeyEvent->GetName()));
}
else
{
InputKeyEvent->CustomFunctionName = FName( *FString::Printf(TEXT("InpActEvt_%s_%s"), *InputKey.ToString(), *InputKeyEvent->GetName()));
}
InputKeyEvent->InputChord.Key = InputKey;
InputKeyEvent->InputChord.bCtrl = bControl;
InputKeyEvent->InputChord.bAlt = bAlt;
InputKeyEvent->InputChord.bShift = bShift;
InputKeyEvent->InputChord.bCmd = bCommand;
InputKeyEvent->bConsumeInput = bConsumeInput;
InputKeyEvent->bExecuteWhenPaused = bExecuteWhenPaused;
InputKeyEvent->bOverrideParentBinding = bOverrideParentBinding;
InputKeyEvent->InputKeyEvent = InputEvent;
InputKeyEvent->EventReference.SetExternalDelegateMember(FName(TEXT("InputActionHandlerDynamicSignature__DelegateSignature")));
InputKeyEvent->bInternalEvent = true;
InputKeyEvent->AllocateDefaultPins();
CompilerContext.MovePinLinksToIntermediate(*InputKeyPin, *Schema->FindExecutionPin(*InputKeyEvent, EGPD_Output));
CompilerContext.MovePinLinksToIntermediate(*FindPin(TEXT("Key")), *InputKeyEvent->FindPin(TEXT("Key")));
}
}
// Widget blueprints require the bAutomaticallyRegisterInputOnConstruction to be set to true in order to receive callbacks
CompilerContext.AddPostCDOCompiledStep([](const UObject::FPostCDOCompiledContext& Context, UObject* NewCDO)
{
if (UUserWidget* Widget = Cast<UUserWidget>(NewCDO))
{
Widget->bAutomaticallyRegisterInputOnConstruction = true;
}
});
}
void UK2Node_InputKey::GetMenuActions(FBlueprintActionDatabaseRegistrar& ActionRegistrar) const
{
TArray<FKey> AllKeys;
EKeys::GetAllKeys(AllKeys);
auto CustomizeInputNodeLambda = [](UEdGraphNode* NewNode, bool bIsTemplateNode, FKey Key)
{
UK2Node_InputKey* InputNode = CastChecked<UK2Node_InputKey>(NewNode);
InputNode->InputKey = Key;
};
auto RefreshClassActions = []()
{
FBlueprintActionDatabase::Get().RefreshClassActions(StaticClass());
};
// actions get registered under specific object-keys; the idea is that
// actions might have to be updated (or deleted) if their object-key is
// mutated (or removed)... here we use the node's class (so if the node
// type disappears, then the action should go with it)
UClass* ActionKey = GetClass();
const bool bAllowGestures = GetDefault<UInputSettings>()->bEnableGestureRecognizer;
// to keep from needlessly instantiating a UBlueprintNodeSpawner (and
// iterating over keys), first check to make sure that the registrar is
// looking for actions of this type (could be regenerating actions for a
// specific asset, and therefore the registrar would only accept actions
// corresponding to that asset)
if (ActionRegistrar.IsOpenForRegistration(ActionKey))
{
// Refresh the action database of this node when the input settings are changed
static bool bRegisterOnce = true;
if (bRegisterOnce)
{
bRegisterOnce = false;
FEditorDelegates::OnEnableGestureRecognizerChanged.AddStatic(RefreshClassActions);
}
for (const FKey& Key : AllKeys)
{
// Do not show gesture keys if they are not enabled in the settings
const bool bInvalidGestureKey = !bAllowGestures && Key.IsGesture();
// these will be handled by UK2Node_GetInputAxisKeyValue and UK2Node_GetInputVectorAxisValue respectively
if (!Key.IsBindableInBlueprints() || Key.IsAnalog() || bInvalidGestureKey)
{
continue;
}
UBlueprintNodeSpawner* NodeSpawner = UBlueprintNodeSpawner::Create(GetClass());
check(NodeSpawner != nullptr);
NodeSpawner->CustomizeNodeDelegate = UBlueprintNodeSpawner::FCustomizeNodeDelegate::CreateStatic(CustomizeInputNodeLambda, Key);
ActionRegistrar.AddBlueprintAction(ActionKey, NodeSpawner);
}
}
}
FText UK2Node_InputKey::GetMenuCategory() const
{
static TMap<FName, FNodeTextCache> CachedCategories;
const FName KeyCategory = InputKey.GetMenuCategory();
const FText SubCategoryDisplayName = FText::Format(LOCTEXT("EventsCategory", "{0} Events"), EKeys::GetMenuCategoryDisplayName(KeyCategory));
FNodeTextCache& NodeTextCache = CachedCategories.FindOrAdd(KeyCategory);
if (NodeTextCache.IsOutOfDate(this))
{
// FText::Format() is slow, so we cache this to save on performance
NodeTextCache.SetCachedText(FEditorCategoryUtils::BuildCategoryString(FCommonEditorCategory::Input, SubCategoryDisplayName), this);
}
return NodeTextCache;
}
FBlueprintNodeSignature UK2Node_InputKey::GetSignature() const
{
FBlueprintNodeSignature NodeSignature = Super::GetSignature();
NodeSignature.AddKeyValue(InputKey.ToString());
return NodeSignature;
}
TSharedPtr<FEdGraphSchemaAction> UK2Node_InputKey::GetEventNodeAction(const FText& ActionCategory)
{
TSharedPtr<FEdGraphSchemaAction_K2InputAction> EventNodeAction = MakeShareable(new FEdGraphSchemaAction_K2InputAction(ActionCategory, GetNodeTitle(ENodeTitleType::EditableTitle), GetTooltipText(), 0));
EventNodeAction->NodeTemplate = this;
return EventNodeAction;
}
#undef LOCTEXT_NAMESPACE