From 9da7b114566c2f9b3f68ad36ee1109972e95fcd5 Mon Sep 17 00:00:00 2001 From: Aaron Kimbrell Date: Thu, 1 Oct 2026 10:19:18 -0500 Subject: [PATCH] feat(entity): the client's spawner component (10) on spawner objects Co-Authored-By: Claude Opus 5.5 --- dGame/Entity.cpp | 7 +++++++ dGame/dComponents/SpawnerComponent.h | 17 +++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 dGame/dComponents/SpawnerComponent.h diff --git a/dGame/Entity.cpp b/dGame/Entity.cpp index 539d595b2..b18faa990 100644 --- a/dGame/Entity.cpp +++ b/dGame/Entity.cpp @@ -95,6 +95,7 @@ #include "GateRushComponent.h" #include "FactionTriggerComponent.h" #include "RocketLandingComponent.h" +#include "SpawnerComponent.h" #include "PathfindingComponent.h" #include "PhysicsSystemComponent.h" #include "VehiclePhysicsComponent.h" @@ -1020,6 +1021,12 @@ void Entity::Initialize() { if (id > -1) AddComponent(id); break; } + case eReplicaComponentType::SPAWNER: { + // A spawner object's spawner component, from the registry as the client makes it + const auto id = compRegistryTable->GetByIDAndType(m_TemplateID, eReplicaComponentType::SPAWNER, -1); + if (id > -1) AddComponent(id); + break; + } case eReplicaComponentType::ROCKET_LANDING: { // LWORocketAnimationControlComponent: the client makes it from the registry const auto id = compRegistryTable->GetByIDAndType(m_TemplateID, eReplicaComponentType::ROCKET_LANDING, -1); diff --git a/dGame/dComponents/SpawnerComponent.h b/dGame/dComponents/SpawnerComponent.h new file mode 100644 index 000000000..34fabe881 --- /dev/null +++ b/dGame/dComponents/SpawnerComponent.h @@ -0,0 +1,17 @@ +#ifndef SPAWNERCOMPONENT_H +#define SPAWNERCOMPONENT_H + +#include "Component.h" +#include "eReplicaComponentType.h" + +/** + * The spawner component (10) of a spawner object (LOT 176), made from the registry as the client makes it. + */ +class SpawnerComponent final : public Component { +public: + static constexpr eReplicaComponentType ComponentType = eReplicaComponentType::SPAWNER; + + SpawnerComponent(Entity* parent, const int32_t componentID) : Component(parent, componentID) {} +}; + +#endif // SPAWNERCOMPONENT_H