45 lines
1.6 KiB
C++
45 lines
1.6 KiB
C++
// Copyright 2025 https://yuewu.dev/en All Rights Reserved.
|
|
|
|
#include "GenericMovementEditor.h"
|
|
#include "AssetToolsModule.h"
|
|
#include "Factories/GMS_AssetTypeActions.h"
|
|
|
|
#define LOCTEXT_NAMESPACE "FGenericMovementEditorModule"
|
|
|
|
TArray<TSharedPtr<IAssetTypeActions>> FGenericMovementEditorModule::AssetTypeActions = {
|
|
MakeShared<FGMS_AssetTypeAction_MovementDefinition>(),
|
|
MakeShared<FGMS_AssetTypeAction_AnimGraphSetting>(),
|
|
MakeShared<FGMS_AssetTypeAction_MovementControlSetting_Default>(),
|
|
MakeShared<FGMS_AssetTypeAction_AnimLayerSetting_States_Default>(),
|
|
MakeShared<FGMS_AssetTypeAction_AnimLayerSetting_Overlay_PoseStack>(),
|
|
MakeShared<FGMS_AssetTypeAction_AnimLayerSetting_Overlay_SequenceStack>()
|
|
};
|
|
|
|
EAssetTypeCategories::Type FGenericMovementEditorModule::AssetsCategory;
|
|
|
|
|
|
void FGenericMovementEditorModule::StartupModule()
|
|
{
|
|
IAssetTools& AssetTools = FModuleManager::LoadModuleChecked<FAssetToolsModule>("AssetTools").Get();
|
|
AssetsCategory = AssetTools.RegisterAdvancedAssetCategory(FName(TEXT("GenericMovementSystem")), LOCTEXT("GMS_AssetsCategory", "Generic Movement System"));
|
|
for (TSharedPtr<IAssetTypeActions>& Action : AssetTypeActions)
|
|
{
|
|
AssetTools.RegisterAssetTypeActions(Action.ToSharedRef());
|
|
}
|
|
}
|
|
|
|
void FGenericMovementEditorModule::ShutdownModule()
|
|
{
|
|
if (const FAssetToolsModule* AssetTools = FModuleManager::GetModulePtr<FAssetToolsModule>("AssetTools"))
|
|
{
|
|
for (TSharedPtr<IAssetTypeActions>& Action : AssetTypeActions)
|
|
{
|
|
AssetTools->Get().UnregisterAssetTypeActions(Action.ToSharedRef());
|
|
}
|
|
}
|
|
}
|
|
|
|
#undef LOCTEXT_NAMESPACE
|
|
|
|
IMPLEMENT_MODULE(FGenericMovementEditorModule, GenericMovementEditor)
|