feat(entity): NPC minifigures have the client's minifig component

The client makes LWOMiniFigComponent (35) from the registry; DLU had nothing for it. It sends nothing (the client reads the MinifigComponent row itself), so constructions are unchanged; 488 LOTs gain it (LoaderSnapshotTest).

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

View File

@@ -89,6 +89,7 @@
#include "RacingStatsComponent.h"
#include "CollectibleComponent.h"
#include "ItemComponent.h"
#include "MinifigComponent.h"
#include "GhostComponent.h"
#include "AchievementVendorComponent.h"
#include "VanityUtilities.h"
@@ -481,6 +482,11 @@ void Entity::Initialize() {
}
break;
}
case eReplicaComponentType::MINIFIG: {
const auto minifigID = compRegistryTable->GetByIDAndType(m_TemplateID, eReplicaComponentType::MINIFIG);
if (minifigID > 0) AddComponent<MinifigComponent>(minifigID);
break;
}
case eReplicaComponentType::CHARACTER: {
const auto characterID = compRegistryTable->GetByIDAndType(m_TemplateID, eReplicaComponentType::CHARACTER);
if (characterID > 0 || m_Character) {

View File

@@ -0,0 +1,18 @@
#ifndef MINIFIGCOMPONENT_H
#define MINIFIGCOMPONENT_H
#include "Component.h"
#include "eReplicaComponentType.h"
/**
* An NPC minifigure's look (MinifigComponent row: head, torso, legs, colors, decals), as the client's LWOMiniFigComponent
* has it. The client reads it from the CDClient itself: nothing of it is sent.
*/
class MinifigComponent final : public Component {
public:
static constexpr eReplicaComponentType ComponentType = eReplicaComponentType::MINIFIG;
MinifigComponent(Entity* parent, const int32_t componentID) : Component(parent, componentID) {}
};
#endif // MINIFIGCOMPONENT_H