Lost_Edge/Plugins/FMODStudio/Source/FMODStudioEditor/Private/FMODAssetBroker.h

40 lines
1.1 KiB (Stored with Git LFS)
C++

// Copyright (c), Firelight Technologies Pty, Ltd. 2012-2024.
#pragma once
#include "ComponentAssetBroker.h"
#include "FMODEvent.h"
//////////////////////////////////////////////////////////////////////////
// FFMODAssetBroker
class FFMODAssetBroker : public IComponentAssetBroker
{
public:
UClass *GetSupportedAssetClass() override { return UFMODEvent::StaticClass(); }
virtual bool AssignAssetToComponent(UActorComponent *InComponent, UObject *InAsset) override
{
if (UFMODAudioComponent *AudioComp = Cast<UFMODAudioComponent>(InComponent))
{
UFMODEvent *Event = Cast<UFMODEvent>(InAsset);
if ((Event != NULL) || (InAsset == NULL))
{
AudioComp->Event = Event;
return true;
}
}
return false;
}
virtual UObject *GetAssetFromComponent(UActorComponent *InComponent) override
{
if (UFMODAudioComponent *AudioComp = Cast<UFMODAudioComponent>(InComponent))
{
return AudioComp->Event;
}
return NULL;
}
};