2025-06-29 19:04:36 +02:00
|
|
|
|
#include "DTFluxAssetsEditorModule.h"
|
|
|
|
|
|
#include "IAssetTools.h"
|
|
|
|
|
|
#include "DTFluxAssetModelTypeActions.h"
|
|
|
|
|
|
#include "IAssetTools.h"
|
|
|
|
|
|
#include "AssetToolsModule.h"
|
2025-07-08 16:50:31 +02:00
|
|
|
|
#include "DTFluxModelAssetDetailCustomization.h"
|
|
|
|
|
|
#include "Assets/DTFluxModelAsset.h"
|
2025-06-29 19:04:36 +02:00
|
|
|
|
|
|
|
|
|
|
#define LOCTEXT_NAMESPACE "FDTFluxAssetsEditorModule"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DTFLUXASSETSEDITOR_API DEFINE_LOG_CATEGORY(logDTFluxAssetEditor)
|
2025-07-08 16:50:31 +02:00
|
|
|
|
|
2025-06-29 19:04:36 +02:00
|
|
|
|
void FDTFluxAssetsEditorModule::StartupModule()
|
|
|
|
|
|
{
|
|
|
|
|
|
IAssetTools& AssetToolsModule = FModuleManager::GetModuleChecked<FAssetToolsModule>("AssetTools").Get();
|
|
|
|
|
|
EAssetTypeCategories::Type Category = AssetToolsModule.RegisterAdvancedAssetCategory("DTFlux", INVTEXT("DTFlux"));
|
2025-07-08 16:50:31 +02:00
|
|
|
|
DTFluxAssetModelActions = MakeShareable(new FDTFluxAssetModelTypeActions(Category));
|
2025-06-29 19:04:36 +02:00
|
|
|
|
AssetToolsModule.RegisterAssetTypeActions(DTFluxAssetModelActions.ToSharedRef());
|
2025-07-08 16:50:31 +02:00
|
|
|
|
RegisterCustomizations();
|
2025-06-29 19:04:36 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void FDTFluxAssetsEditorModule::ShutdownModule()
|
|
|
|
|
|
{
|
2025-07-08 16:50:31 +02:00
|
|
|
|
if (DTFluxAssetModelActions.IsValid() && FModuleManager::Get().IsModuleLoaded("AssetTools"))
|
2025-06-29 19:04:36 +02:00
|
|
|
|
{
|
|
|
|
|
|
IAssetTools& AssetToolsModule = FModuleManager::GetModuleChecked<FAssetToolsModule>("AssetTools").Get();
|
|
|
|
|
|
AssetToolsModule.UnregisterAssetTypeActions(DTFluxAssetModelActions.ToSharedRef());
|
|
|
|
|
|
}
|
2025-07-08 16:50:31 +02:00
|
|
|
|
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();
|
|
|
|
|
|
}
|
2025-06-29 19:04:36 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#undef LOCTEXT_NAMESPACE
|
2025-07-08 16:50:31 +02:00
|
|
|
|
|
|
|
|
|
|
IMPLEMENT_MODULE(FDTFluxAssetsEditorModule, DTFluxAssetsEditor)
|