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>
This commit is contained in:
Aaron Kimbrell
2026-10-01 07:45:16 -05:00
parent e8406cc829
commit 50bfa623ca
58 changed files with 181 additions and 132 deletions

View File

@@ -63,7 +63,7 @@ void SkillComponent::StartCooldown(const uint32_t skillID) {
left = std::max(left, skill.cooldown);
}
void SkillComponent::LoadFromXml(const tinyxml2::XMLDocument& doc) {
void SkillComponent::LoadFromSaveData(const tinyxml2::XMLDocument& doc) {
m_CooldownGroups.clear();
const auto* const obj = doc.FirstChildElement("obj");
const auto* const skil = obj ? obj->FirstChildElement("skil") : nullptr;
@@ -81,7 +81,7 @@ void SkillComponent::LoadFromXml(const tinyxml2::XMLDocument& doc) {
}
}
void SkillComponent::UpdateXml(tinyxml2::XMLDocument& doc) {
void SkillComponent::WriteSaveData(tinyxml2::XMLDocument& doc) {
auto* const obj = doc.FirstChildElement("obj");
if (!obj) return;
auto* skil = obj->FirstChildElement("skil");
@@ -184,7 +184,7 @@ void SkillComponent::RegisterPlayerProjectile(const LWOOBJID projectileId, Behav
this->m_managedProjectiles.push_back(entry);
}
void SkillComponent::Update(const float deltaTime) {
void SkillComponent::Run(const float deltaTime) {
for (auto it = m_CooldownGroups.begin(); it != m_CooldownGroups.end();) {
it->second -= deltaTime;
it = it->second <= 0.0f ? m_CooldownGroups.erase(it) : std::next(it);