Files
2025-05-18 13:04:45 +08:00

67 lines
1.7 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "Modules/ModuleInterface.h"
#include "Modules/ModuleManager.h"
#include "PropertyEditorModule.h"
#include "ToolPresetAsset.h"
#define LOCTEXT_NAMESPACE "FToolPresetAssetModule"
/**
* Implements the PresetAsset module.
*/
class FToolPresetAssetModule
: public IModuleInterface
{
public:
//~ IModuleInterface interface
virtual void StartupModule() override;
virtual void ShutdownModule() override;
virtual void OnPostEngineInit();
virtual bool SupportsDynamicReloading() override
{
return true;
}
protected:
TArray<FName> ClassesToUnregisterOnShutdown;
};
// This function will execute after your module is loaded into memory; the exact timing is specified in the .uplugin file per-module
void FToolPresetAssetModule::StartupModule()
{
FCoreDelegates::OnPostEngineInit.AddRaw(this, &FToolPresetAssetModule::OnPostEngineInit);
}
// This function may be called during shutdown to clean up your module. For modules that support dynamic reloading,
// we call this function before unloading the module.
void FToolPresetAssetModule::ShutdownModule()
{
// Unregister customizations
FPropertyEditorModule* PropertyEditorModule = FModuleManager::GetModulePtr<FPropertyEditorModule>("PropertyEditor");
if (PropertyEditorModule)
{
for (FName ClassName : ClassesToUnregisterOnShutdown)
{
PropertyEditorModule->UnregisterCustomClassLayout(ClassName);
}
}
}
void FToolPresetAssetModule::OnPostEngineInit()
{
ClassesToUnregisterOnShutdown.Reset();
FPropertyEditorModule& PropertyModule = FModuleManager::LoadModuleChecked<FPropertyEditorModule>("PropertyEditor");
}
IMPLEMENT_MODULE(FToolPresetAssetModule, ToolPresetAsset);
#undef LOCTEXT_NAMESPACE