Files
PHY/Plugins/GMS/Source/GenericMovementEditor/Private/GenericMovementEditor.cpp
2026-03-03 01:23:02 +08:00

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)