mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2024-12-26 07:23:34 +00:00
2cc13c6499
* Make serialize actually virtual * fix serialize and make update virutal * Update VendorComponent.h * Remove flag var * Update SoundTriggerComponent.h --------- Co-authored-by: Aaron Kimbrell <aronwk.aaron@gmail.com>
77 lines
1.7 KiB
C++
77 lines
1.7 KiB
C++
#pragma once
|
|
#include "dCommonVars.h"
|
|
#include "Entity.h"
|
|
#include "GUID.h"
|
|
#include "Component.h"
|
|
#include "eReplicaComponentType.h"
|
|
|
|
struct MusicCue {
|
|
std::string name;
|
|
uint32_t result;
|
|
float boredomTime;
|
|
|
|
MusicCue(std::string name, float boredomTime = -1.0, uint32_t result = 1){
|
|
this->name = name;
|
|
this->result = result;
|
|
this->boredomTime = boredomTime;
|
|
};
|
|
|
|
void Serialize(RakNet::BitStream* outBitStream);
|
|
};
|
|
|
|
struct MusicParameter {
|
|
std::string name;
|
|
float value;
|
|
|
|
MusicParameter(std::string name, float value = 0.0){
|
|
this->name = name;
|
|
this->value = value;
|
|
}
|
|
|
|
void Serialize(RakNet::BitStream* outBitStream);
|
|
};
|
|
|
|
struct GUIDResults{
|
|
GUID guid;
|
|
uint32_t result;
|
|
|
|
GUIDResults(std::string guidString, uint32_t result = 1){
|
|
this->guid = GUID(guidString);
|
|
this->result = result;
|
|
}
|
|
|
|
void Serialize(RakNet::BitStream* outBitStream);
|
|
};
|
|
|
|
struct MixerProgram{
|
|
std::string name;
|
|
uint32_t result;
|
|
|
|
MixerProgram(std::string name, uint32_t result = 0){
|
|
this->name = name;
|
|
this->result = result;
|
|
}
|
|
|
|
void Serialize(RakNet::BitStream* outBitStream);
|
|
};
|
|
|
|
|
|
class SoundTriggerComponent : public Component {
|
|
public:
|
|
static const eReplicaComponentType ComponentType = eReplicaComponentType::SOUND_TRIGGER;
|
|
explicit SoundTriggerComponent(Entity* parent);
|
|
void Serialize(RakNet::BitStream* outBitStream, bool bIsInitialUpdate) override;
|
|
void ActivateMusicCue(const std::string& name, float bordemTime = -1.0);
|
|
void DeactivateMusicCue(const std::string& name);
|
|
|
|
private:
|
|
|
|
std::vector<MusicCue> m_MusicCues = {};
|
|
std::vector<MusicParameter> m_MusicParameters = {};
|
|
std::vector<GUIDResults> m_2DAmbientSounds = {};
|
|
std::vector<GUIDResults> m_3DAmbientSounds = {};
|
|
std::vector<MixerProgram> m_MixerPrograms = {};
|
|
|
|
bool m_Dirty = false;
|
|
};
|