Files
UnrealEngineUWP/Engine/Source/Editor/LevelInstanceEditor/Private/LevelInstanceEditorModule.h
patrick enfedaque 1d8c2498eb Fix Level Instance Edit Mode not exiting properly
#rb richard.malo
#preflight 61e04dd8797757aace804c8d

#ROBOMERGE-AUTHOR: patrick.enfedaque
#ROBOMERGE-SOURCE: CL 18597993 in //UE5/Release-5.0/... via CL 18598082 via CL 18598156
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Test -> Main) (v899-18417669)

[CL 18598204 by patrick enfedaque in ue5-main branch]
2022-01-13 11:53:38 -05:00

51 lines
1.6 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "LevelInstance/ILevelInstanceEditorModule.h"
#include "Tools/Modes.h"
class AActor;
class ULevel;
enum class EMapChangeType : uint8;
/**
* The module holding all of the UI related pieces for LevelInstance management
*/
class FLevelInstanceEditorModule : public ILevelInstanceEditorModule
{
public:
virtual ~FLevelInstanceEditorModule(){}
/**
* Called right after the module DLL has been loaded and the module object has been created
*/
virtual void StartupModule();
/**
* Called before the module is unloaded, right before the module object is destroyed.
*/
virtual void ShutdownModule();
virtual void ActivateEditorMode() override;
virtual void DeactivateEditorMode() override;
virtual void BroadcastTryExitEditorMode() override;
DECLARE_DERIVED_EVENT(FLevelInstanceEditorModule, ILevelInstanceEditorModule::FExitEditorModeEvent, FExitEditorModeEvent);
virtual FExitEditorModeEvent& OnExitEditorMode() override { return ExitEditorModeEvent; }
DECLARE_DERIVED_EVENT(FLevelInstanceEditorModule, ILevelInstanceEditorModule::FTryExitEditorModeEvent, FTryExitEditorModeEvent);
virtual FTryExitEditorModeEvent& OnTryExitEditorMode() override { return TryExitEditorModeEvent; }
private:
void OnEditorModeIDChanged(const FEditorModeID& InModeID, bool bIsEnteringMode);
void OnLevelActorDeleted(AActor* Actor);
void CanMoveActorToLevel(const AActor* ActorToMove, const ULevel* DestLevel, bool& bOutCanMove);
void ExtendContextMenu();
FExitEditorModeEvent ExitEditorModeEvent;
FTryExitEditorModeEvent TryExitEditorModeEvent;
};