Files
rex hill 909e711d57 Add ability to hide empty level template
#preflight 635ab5337515720a5f730acf
#rb lauren.barnes, jason.stasik

[CL 22823214 by rex hill in ue5-main branch]
2022-10-27 23:21:04 -04:00

70 lines
3.1 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "Widgets/SWidget.h"
#include "Modules/ModuleInterface.h"
#include "Editor/UnrealEdEngine.h"
struct FTemplateMapInfo;
/**
* New Level Dialog module
*/
class FNewLevelDialogModule : public IModuleInterface
{
public:
/**
* Control if 'Empty Level' template should appear or not
*/
enum class EShowEmptyTemplate : uint8
{
Show,
Hide
};
/**
* Called right after the plugin DLL has been loaded and the plugin object has been created
*/
virtual void StartupModule();
/**
* Called before the plugin is unloaded, right before the plugin object is destroyed.
*/
virtual void ShutdownModule();
/**
* Creates and show a window with an SNewLevelDialog
*
* @param ParentWidget - The parent widget for the modal window showing the dialog
* @param OutTemplateName - (out) The package name of the template map selected by the user. Empty if blank map selected.
* @param bShowPartitionedTemplates - If true, we allow partitioned world templates to be shown in the dialog.
* @param bOutPartitionedWorld - (out) If true and OutTemplateName is empty, the empty map should be partitioned.
* @param OutTemplateMapInfo - (out) If not null, will be set to the template map selected by the user.
* @param ShowEmptyTemplate - Control if 'Empty Level' template should appear or not
* @return true if the user selected a valid item, false if the user canceled
*/
virtual bool CreateAndShowNewLevelDialog( const TSharedPtr<const SWidget> ParentWidget, FString& OutTemplateMapPackageName, bool bShowPartitionedTemplates, bool& bOutPartitionedWorld, FTemplateMapInfo* OutTemplateMapInfo = nullptr, EShowEmptyTemplate ShowEmptyTemplate = EShowEmptyTemplate::Show);
/**
* Creates and show a window with an SNewLevelDialog
*
* @param ParentWidget - The parent widget for the modal window showing the dialog
* @param Title - The dialog's title
* @param Templates - The list of template to be shown in the dialog
* @param OutTemplateName - (out) The package name of the template map selected by the user. Empty if blank map selected.
* @param bShowPartitionedTemplates - If true, we allow partitioned world templates to be shown in the dialog.
* @param bOutPartitionedWorld - (out) If true and OutTemplateName is empty, the empty map should be partitioned.
* @param OutTemplateMapInfo - (out) If not null, will be set to the template map selected by the user.
* @param ShowEmptyTemplate - Control if 'Empty Level' template should appear or not
* @return true if the user selected a valid item, false if the user canceled
*/
virtual bool CreateAndShowTemplateDialog(const TSharedPtr<const SWidget> ParentWidget, const FText& Title, const TArray<FTemplateMapInfo>& Templates, FString& OutTemplateMapPackageName, bool bShowPartitionedTemplates, bool& bOutPartitionedWorld, FTemplateMapInfo* OutTemplateMapInfo = nullptr, EShowEmptyTemplate ShowEmptyTemplate = EShowEmptyTemplate::Show);
/** New Level Dialog app identifier string */
static const FName NewLevelDialogAppIdentifier;
};