newly added updated FMODStudio plugin for migration
This commit is contained in:
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
@ -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
|
@ -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;
|
||||
};
|
@ -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;
|
||||
};
|
Reference in New Issue
Block a user