Files
DarkflameServer/dGame/dComponents/ModuleAssemblyComponent.cpp
Aaron Kimbrell 50bfa623ca refactor(component): the client's component lifecycle
Components get the client's per-component functions: LoadDataFromTemplate,
PrepareConfigData, LoadConfigData, LoadFromSaveData, Startup, Run,
OnEnterScope, OnLeaveScope, Preshutdown and Shutdown, called by the entity in
the client's order. Update is renamed Run, LoadFromXml LoadFromSaveData and
UpdateXml WriteSaveData. Nothing sent changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 07:45:16 -05:00

71 lines
1.6 KiB
C++

#include "ModuleAssemblyComponent.h"
ModuleAssemblyComponent::ModuleAssemblyComponent(Entity* parent, const int32_t componentID) : Component(parent, componentID) {
m_SubKey = LWOOBJID_EMPTY;
m_UseOptionalParts = false;
m_AssemblyPartsLOTs = u"";
}
ModuleAssemblyComponent::~ModuleAssemblyComponent() {
}
void ModuleAssemblyComponent::SetSubKey(LWOOBJID value) {
m_SubKey = value;
}
LWOOBJID ModuleAssemblyComponent::GetSubKey() const {
return m_SubKey;
}
void ModuleAssemblyComponent::SetUseOptionalParts(bool value) {
m_UseOptionalParts = value;
}
bool ModuleAssemblyComponent::GetUseOptionalParts() const {
return m_UseOptionalParts;
}
void ModuleAssemblyComponent::SetAssemblyPartsLOTs(const std::u16string& value) {
std::u16string val{};
val.reserve(value.size() + 1);
for (auto character : value) {
if (character == '+') character = ';';
val.push_back(character);
}
val.push_back(';');
m_AssemblyPartsLOTs = val;
}
const std::u16string& ModuleAssemblyComponent::GetAssemblyPartsLOTs() const {
return m_AssemblyPartsLOTs;
}
void ModuleAssemblyComponent::Serialize(RakNet::BitStream& outBitStream, bool bIsInitialUpdate) {
if (bIsInitialUpdate) {
outBitStream.Write1();
outBitStream.Write(m_SubKey != LWOOBJID_EMPTY);
if (m_SubKey != LWOOBJID_EMPTY) {
outBitStream.Write(m_SubKey);
}
outBitStream.Write(m_UseOptionalParts);
outBitStream.Write<uint16_t>(m_AssemblyPartsLOTs.size());
for (char16_t character : m_AssemblyPartsLOTs) {
outBitStream.Write(character);
}
}
}
void ModuleAssemblyComponent::Run(float deltaTime) {
}