Files
DTFluxAPI/Source/DTFluxAssetsEditor/Private/DTFluxAssetsEditorModule.cpp

63 lines
2.1 KiB
C++

#include "DTFluxAssetsEditorModule.h"
#include "IAssetTools.h"
#include "DTFluxAssetModelTypeActions.h"
#include "IAssetTools.h"
#include "AssetToolsModule.h"
#include "DTFluxModelAssetDetailCustomization.h"
#include "Assets/DTFluxModelAsset.h"
#define LOCTEXT_NAMESPACE "FDTFluxAssetsEditorModule"
DTFLUXASSETSEDITOR_API DEFINE_LOG_CATEGORY(logDTFluxAssetEditor)
void FDTFluxAssetsEditorModule::StartupModule()
{
IAssetTools& AssetToolsModule = FModuleManager::GetModuleChecked<FAssetToolsModule>("AssetTools").Get();
EAssetTypeCategories::Type Category = AssetToolsModule.RegisterAdvancedAssetCategory("DTFlux", INVTEXT("DTFlux"));
DTFluxAssetModelActions = MakeShareable(new FDTFluxAssetModelTypeActions(Category));
AssetToolsModule.RegisterAssetTypeActions(DTFluxAssetModelActions.ToSharedRef());
RegisterCustomizations();
}
void FDTFluxAssetsEditorModule::ShutdownModule()
{
if (DTFluxAssetModelActions.IsValid() && FModuleManager::Get().IsModuleLoaded("AssetTools"))
{
IAssetTools& AssetToolsModule = FModuleManager::GetModuleChecked<FAssetToolsModule>("AssetTools").Get();
AssetToolsModule.UnregisterAssetTypeActions(DTFluxAssetModelActions.ToSharedRef());
}
UnregisterCustomizations();
}
void FDTFluxAssetsEditorModule::RegisterCustomizations()
{
// Enregistrer la customization pour DTFluxModelAsset
FPropertyEditorModule& PropertyModule = FModuleManager::LoadModuleChecked<FPropertyEditorModule>("PropertyEditor");
PropertyModule.RegisterCustomClassLayout(
UDTFluxModelAsset::StaticClass()->GetFName(),
FOnGetDetailCustomizationInstance::CreateStatic(&FDTFluxModelAssetCustomization::MakeInstance)
);
PropertyModule.NotifyCustomizationModuleChanged();
}
void FDTFluxAssetsEditorModule::UnregisterCustomizations()
{
if (FModuleManager::Get().IsModuleLoaded("PropertyEditor"))
{
FPropertyEditorModule& PropertyModule = FModuleManager::GetModuleChecked<FPropertyEditorModule>(
"PropertyEditor");
PropertyModule.UnregisterCustomClassLayout(UDTFluxModelAsset::StaticClass()->GetFName());
PropertyModule.NotifyCustomizationModuleChanged();
}
}
#undef LOCTEXT_NAMESPACE
IMPLEMENT_MODULE(FDTFluxAssetsEditorModule, DTFluxAssetsEditor)