feat(entity): the client's 3D ambient sound component (56)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Aaron Kimbrell
2026-10-01 06:41:32 -05:00
parent ba748d17d2
commit e37f919700
2 changed files with 24 additions and 0 deletions

View File

@@ -90,6 +90,7 @@
#include "CollectibleComponent.h"
#include "ItemComponent.h"
#include "MinifigComponent.h"
#include "SoundAmbient3DComponent.h"
#include "SoundAmbient2DComponent.h"
#include "SoundRepeaterComponent.h"
#include "GhostComponent.h"
@@ -945,6 +946,12 @@ void Entity::Initialize() {
if (id > -1) AddComponent<SoundAmbient2DComponent>(id);
break;
}
case eReplicaComponentType::SOUND_AMBIENT_3D: {
// LWOSoundAmbient3DComponent: the client makes it from the registry
const auto id = compRegistryTable->GetByIDAndType(m_TemplateID, eReplicaComponentType::SOUND_AMBIENT_3D, -1);
if (id > -1) AddComponent<SoundAmbient3DComponent>(id);
break;
}
default:
break;
}

View File

@@ -0,0 +1,17 @@
#ifndef SOUNDAMBIENT3DCOMPONENT_H
#define SOUNDAMBIENT3DCOMPONENT_H
#include "Component.h"
#include "eReplicaComponentType.h"
/**
* A 3D ambient sound the client plays, as the client's LWOSoundAmbient3DComponent; the server sends nothing for it.
*/
class SoundAmbient3DComponent final : public Component {
public:
static constexpr eReplicaComponentType ComponentType = eReplicaComponentType::SOUND_AMBIENT_3D;
SoundAmbient3DComponent(Entity* parent, const int32_t componentID) : Component(parent, componentID) {}
};
#endif // SOUNDAMBIENT3DCOMPONENT_H