57 lines
1.5 KiB
C++
57 lines
1.5 KiB
C++
// Copyright (c), Firelight Technologies Pty, Ltd.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
|
|
namespace FMOD
|
|
{
|
|
namespace Studio
|
|
{
|
|
class System;
|
|
}
|
|
} // namespace FMOD
|
|
|
|
class UFMODAsset;
|
|
class UFMODBankLookup;
|
|
class UFMODSettings;
|
|
|
|
class FFMODAssetBuilder
|
|
{
|
|
public:
|
|
~FFMODAssetBuilder();
|
|
|
|
/** Create studio system for asset building */
|
|
void Create();
|
|
|
|
/** Process FMOD banks into UE4 assets */
|
|
void ProcessBanks();
|
|
|
|
/** Path of strings bank */
|
|
FString GetMasterStringsBankPath();
|
|
|
|
private:
|
|
struct AssetCreateInfo
|
|
{
|
|
UClass *Class;
|
|
FGuid Guid;
|
|
FString StudioPath;
|
|
FString AssetName;
|
|
FString PackagePath;
|
|
FString Path;
|
|
};
|
|
|
|
void BuildBankLookup(const FString &AssetName, const FString &PackagePath, const UFMODSettings &InSettings, TArray<UObject*>& AssetsToSave);
|
|
void BuildAssets(const UFMODSettings &InSettings, const FString &AssetLookupName, const FString &AssetLookupPath, TArray<UObject*>& AssetsToSave,
|
|
TArray<UObject*>& AssetsToDelete);
|
|
|
|
FString GetAssetClassName(UClass *AssetClass);
|
|
bool MakeAssetCreateInfo(const FGuid &AssetGuid, const FString &StudioPath, AssetCreateInfo *CreateInfo);
|
|
UFMODAsset *CreateAsset(const AssetCreateInfo& CreateInfo, TArray<UObject*>& AssetsToSave);
|
|
void SaveAssets(TArray<UObject*>& AssetsToSave);
|
|
void DeleteAssets(TArray<UObject*>& AssetsToDelete);
|
|
|
|
FMOD::Studio::System *StudioSystem{};
|
|
UFMODBankLookup *BankLookup{};
|
|
};
|