Files
UnrealEngineUWP/Engine/Source/Editor/LevelInstanceEditor/Public/LevelInstanceEditorSettings.h
patrick enfedaque 283348fcbd Level Instance: Sub Actor Selection support
- SceneOutliner: allow to select Level Instance sub actors in the outliner in a read only way (allows copy/pasting of actors and properties)
- Viewport: allow sub selection through "Shift+ Scroll Up/Down"
- Gated by new settings in ULevelInstanceEditorPerProjectUserSettings

#rb Richard.Malo
#rnx

[CL 32897459 by patrick enfedaque in ue5-main branch]
2024-04-11 13:47:04 -04:00

75 lines
3.2 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "UObject/ObjectMacros.h"
#include "UObject/Object.h"
#include "Editor/UnrealEdEngine.h"
#include "Engine/DeveloperSettings.h"
#include "LevelInstance/LevelInstanceTypes.h"
#include "LevelInstanceEditorSettings.generated.h"
UCLASS(config = Editor, defaultconfig, meta = (DisplayName = "Level Instance"))
class ULevelInstanceEditorSettings : public UDeveloperSettings
{
GENERATED_BODY()
public:
ULevelInstanceEditorSettings();
/** List of info for all known LevelInstance template maps */
UPROPERTY(config)
TArray<FTemplateMapInfo> TemplateMapInfos;
UPROPERTY(config)
FString LevelInstanceClassName;
UPROPERTY(config, EditAnywhere, Category="World Partition", meta = (ToolTip="Create World Partition Level Instances with Streaming Enabled/Disabled by default"))
bool bEnableStreaming;
UPROPERTY(config, EditAnywhere, Category="World Partition", meta = (ToolTip="Allow Editing Level Instances with Streaming Enabled"))
bool bIsEditInPlaceStreamingEnabled;
};
UCLASS(config = EditorPerProjectUserSettings, meta = (DisplayName = "Level Instance"))
class ULevelInstanceEditorPerProjectUserSettings : public UDeveloperSettings
{
GENERATED_BODY()
public:
ULevelInstanceEditorPerProjectUserSettings();
static void UpdateFrom(const FNewLevelInstanceParams& Params);
/** Gets the category for the settings, some high level grouping like, Editor, Engine, Game...etc. */
virtual FName GetCategoryName() const override { return TEXT("ContentEditors"); }
/** If false, create dialog will not be shown and last settings will be used. */
UPROPERTY(config, EditAnywhere, Category = Create)
bool bAlwaysShowDialog;
UPROPERTY(config, EditAnywhere, Category = Pivot)
ELevelInstancePivotType PivotType;
/** If true, allows read only selection of actors inside a Level Instance */
UPROPERTY(config, EditAnywhere, Category = "Selection", meta = (ToolTip = "Allow Read Only Selection of Level Instance Level Actors"))
bool bIsSubSelectionEnabled;
/** If true, allows read only selection of actors inside a Level Instance through the viewport */
UPROPERTY(config, EditAnywhere, Category = "Selection", meta = (DisplayName = "Is Viewport Sub Selection Enabled (Shift + Mouse Scroll Up/Down)", ToolTip = "Allow Read Only Selection of Level Instance Level Actors in the Viewport (Shortcut: Shift + Mouse Scroll Up/Down)"))
bool bIsViewportSubSelectionEnabled;
/**
* When the Level Instance is broken via "Level->Break..", its actors will be placed inside the folder the LI is
* inside of, under a subfolder with the name of the Level Instance, and also keeping their original folder structure.
* So if i.e. the Level Instance Actor is called "Desert/LI_House2", and an actor inside is named "Lights/Light_Sun",
* the actor will be moved to "Desert/LI_House2/Lights/Light_Sun" in the outer level.
*
* If this flag is not set, actors will be placed either in the root folder of the outer level (but their original
* folders from the LI kept), or, if "Current Folder" is set, they'll be moved there without any subfolders.
*/
UPROPERTY(config, EditAnywhere, Category = Break)
bool bKeepFoldersDuringBreak = false;
};