newly added updated FMODStudio plugin for migration

This commit is contained in:
Ji Yoon Rhee
2025-02-02 00:16:31 +09:00
parent 38b2151bb3
commit 2467ad7d4c
171 changed files with 2900 additions and 0 deletions

View File

@ -0,0 +1,15 @@
// Copyright (c), Firelight Technologies Pty, Ltd. 2024-2024.
using UnrealBuildTool;
using System;
public struct FMODAudioLinkEditor
{
public static void Apply(UnrealBuildTool.Rules.FMODStudio FMODModule, ReadOnlyTargetRules Target)
{
if (Target.bBuildEditor)
{
FMODModule.AddModule("FMODAudioLinkEditor", false);
}
}
}

View File

@ -0,0 +1,60 @@
// Copyright (c), Firelight Technologies Pty, Ltd. 2024-2024.
#include "FMODAudioLinkSettingsFactory.h"
#include "FMODAudioLinkSettings.h"
#include "AssetTypeCategories.h"
#include "UObject/ObjectMacros.h"
#include "UObject/Object.h"
#define LOCTEXT_NAMESPACE "AssetTypeActions"
FText FAssetTypeActions_FMODAudioLinkSettings::GetName() const
{
return LOCTEXT("AssetTypeActions_FMODAudioLinkSettings", "FMOD AudioLink Settings");
}
FColor FAssetTypeActions_FMODAudioLinkSettings::GetTypeColor() const
{
return FColor(100, 100, 100);
}
const TArray<FText>& FAssetTypeActions_FMODAudioLinkSettings::GetSubMenus() const
{
static const TArray<FText> SubMenus
{
LOCTEXT("AssetAudioLinkSubMenu", "AudioLink")
};
return SubMenus;
}
UClass* FAssetTypeActions_FMODAudioLinkSettings::GetSupportedClass() const
{
return UFMODAudioLinkSettings::StaticClass();
}
uint32 FAssetTypeActions_FMODAudioLinkSettings::GetCategories()
{
return EAssetTypeCategories::Sounds;
}
UFMODAudioLinkSettingsFactory::UFMODAudioLinkSettingsFactory(const FObjectInitializer& ObjectInitializer)
: Super(ObjectInitializer)
{
SupportedClass = UFMODAudioLinkSettings::StaticClass();
bCreateNew = true;
bEditorImport = true;
bEditAfterNew = true;
}
UObject* UFMODAudioLinkSettingsFactory::FactoryCreateNew(UClass* Class, UObject* InParent, FName Name, EObjectFlags Flags, UObject* Context, FFeedbackContext* Warn)
{
return NewObject<UFMODAudioLinkSettings>(InParent, Name, Flags);
}
uint32 UFMODAudioLinkSettingsFactory::GetMenuCategories() const
{
return EAssetTypeCategories::Sounds;
}
#undef LOCTEXT_NAMESPACE

View File

@ -0,0 +1,30 @@
// Copyright (c), Firelight Technologies Pty, Ltd. 2024-2024.
#pragma once
#include "Factories/Factory.h"
#include "AssetTypeActions_Base.h"
#include "AssetToolsModule.h"
#include "FMODAudioLinkSettingsFactory.generated.h"
UCLASS(hidecategories = Object, MinimalAPI)
class UFMODAudioLinkSettingsFactory : public UFactory
{
GENERATED_UCLASS_BODY()
virtual UObject* FactoryCreateNew(UClass* Class, UObject* InParent, FName Name, EObjectFlags Flags, UObject* Context,
FFeedbackContext* Warn) override;
virtual uint32 GetMenuCategories() const override;
};
class FAssetTypeActions_FMODAudioLinkSettings : public FAssetTypeActions_Base
{
public:
virtual FText GetName() const override;
virtual FColor GetTypeColor() const override;
virtual const TArray<FText>& GetSubMenus() const override;
virtual UClass* GetSupportedClass() const override;
virtual uint32 GetCategories() override;
};

View File

@ -0,0 +1,39 @@
// Copyright (c), Firelight Technologies Pty, Ltd. 2024-2024.
#include "Modules/ModuleInterface.h"
#include "FMODAudioLinkSettingsFactory.h"
#include "FMODAudioLinkSettings.h"
#include "ISettingsModule.h"
class FAssetTypeActions_FMODAudioLinkSettings;
class FFMODAudioLinkEditorModule
{
public:
FFMODAudioLinkEditorModule()
{
// Register asset types
IAssetTools& AssetTools = FAssetToolsModule::GetModule().Get();
{
AssetActions = MakeShared<FAssetTypeActions_FMODAudioLinkSettings>();
AssetTools.RegisterAssetTypeActions(AssetActions.ToSharedRef());
if (ISettingsModule* SettingsModule = FModuleManager::Get().GetModulePtr<ISettingsModule>("Settings"))
{
SettingsModule->RegisterSettings("Project", "Plugins", "FMOD AudioLink", NSLOCTEXT("FMODAudioLink", "FMOD AudioLink", "FMOD AudioLink"),
NSLOCTEXT("FMODAudioLink", "Configure AudioLink for FMOD Settings", "Configure AudioLink for FMOD Settings"), GetMutableDefault<UFMODAudioLinkSettings>());
}
}
}
~FFMODAudioLinkEditorModule()
{
if (FAssetToolsModule::IsModuleLoaded())
{
IAssetTools& AssetTools = FAssetToolsModule::GetModule().Get();
AssetTools.UnregisterAssetTypeActions(AssetActions.ToSharedRef());
}
AssetActions.Reset();
}
private:
TSharedPtr<FAssetTypeActions_FMODAudioLinkSettings> AssetActions;
};