Commit Graph

681 Commits

Author SHA1 Message Date
Aaron Kimbrell
2d7b5cca13 refactor(spawner): the spawner object's SpawnerComponent owns its spawner
The zone manager keeps an index of spawners by object ID; the spawner now
belongs to the SpawnerComponent of its LOT 176 object and goes with it (the
component tells the zone manager to stop indexing it). Spawning, timers and
the update order are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 10:31:18 -05:00
Aaron Kimbrell
9da7b11456 feat(entity): the client's spawner component (10) on spawner objects
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 10:19:18 -05:00
Aaron Kimbrell
4a546607f7 feat(entity): the client's pathfinding control component (86) on pets
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 09:37:17 -05:00
Aaron Kimbrell
c65f559b39 feat(entity): the client's physics system component (47)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 09:01:25 -05:00
Aaron Kimbrell
5f77dca7e7 feat(entity): the client's vehicle physics component (46)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 09:01:25 -05:00
Aaron Kimbrell
589a91a1f0 feat(entity): the client's projectile physics component (18)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 09:01:25 -05:00
Aaron Kimbrell
029e601e07 refactor(component): the destroyable loads itself in the client's phases
The DestructibleComponent row moves from Entity::Initialize into
LoadDataFromTemplate and the level keys into LoadConfigData; a character's
save loads after both. Like the client (LWODestroyableComponent::LoadConfigData
reads them for every destroyable), the destroyables added for models and
quickbuilds now also read set_faction, is_smashable and the level loot matrix;
their live defaults become their template. Nothing changes for objects without
those keys.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 08:52:10 -05:00
Aaron Kimbrell
e1c3c19c9a refactor(component): the quickbuild reads its level config and spawns its activator in LoadConfigData
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 08:37:42 -05:00
Aaron Kimbrell
db99190c31 refactor(component): moving platforms load in the client's phases
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 08:36:08 -05:00
Aaron Kimbrell
43b99b730f refactor(component): physics components load in the client's phases
The physics row's collision group in LoadDataFromTemplate and the level's
CollisionGroupID in LoadConfigData; each physics type then reads its own level
keys and makes its physics after that, in the same order as before.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 08:34:28 -05:00
Aaron Kimbrell
a4f1b974c8 refactor(component): combat AI loads its row, skills and level radii in the client's phases
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 08:21:32 -05:00
Aaron Kimbrell
1cdac362ff refactor(component): an object's starting inventory loads in LoadDataFromTemplate
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 08:19:07 -05:00
Aaron Kimbrell
2b8b682a0b refactor(component): activities load their activity in the client's phases
The component ID's activity in LoadDataFromTemplate, the level's activityID in
LoadConfigData; racing control picks its world's activity after both, as before.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 08:15:58 -05:00
Aaron Kimbrell
14a11ac6ce refactor(component): movement AI reads its attached path in LoadConfigData
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 08:12:32 -05:00
Aaron Kimbrell
3d1f7cecb8 refactor(component): the model reads its user model ID in LoadConfigData
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 08:12:32 -05:00
Aaron Kimbrell
da5ce99f5b refactor(component): the render component loads its animation groups in LoadDataFromTemplate
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 08:10:56 -05:00
Aaron Kimbrell
7a0013696b refactor(component): the sound trigger reads its level config in LoadConfigData
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 08:10:56 -05:00
Aaron Kimbrell
e5607ff0c7 refactor(component): the collectible loads its row in LoadDataFromTemplate
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 08:10:56 -05:00
Aaron Kimbrell
3dbbf46876 refactor(component): the bouncer reads its level config in LoadConfigData
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 08:10:56 -05:00
Aaron Kimbrell
6fc19c114d refactor(component): the pet loads its row and preconditions in the client's phases
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 08:08:11 -05:00
Aaron Kimbrell
12efcd259c refactor(component): the switch reads its reset time and factions in LoadConfigData
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 08:08:11 -05:00
Aaron Kimbrell
90c7293189 refactor(component): the mission offer loads its missions in LoadDataFromTemplate
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 08:08:11 -05:00
Aaron Kimbrell
060517920f refactor(component): the donation vendor reads its goal and activity in LoadConfigData
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 08:08:11 -05:00
Aaron Kimbrell
818ad152ca refactor(component): vendors load their stock in LoadDataFromTemplate
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 08:08:11 -05:00
Aaron Kimbrell
8ef3e323fe refactor(component): the property entrance loads its row in LoadDataFromTemplate
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 08:06:12 -05:00
Aaron Kimbrell
87f0e730c8 refactor(component): the multi-zone entrance reads its worlds in LoadConfigData
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 08:06:12 -05:00
Aaron Kimbrell
2519748e2c refactor(component): the possessable loads its row in LoadDataFromTemplate
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 08:06:12 -05:00
Aaron Kimbrell
7577971f43 refactor(component): the rocket launchpad loads its row in LoadDataFromTemplate
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 08:06:12 -05:00
Aaron Kimbrell
47668e623a refactor(component): the rail activator loads its row and level config in the client's phases
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 08:06:12 -05:00
Aaron Kimbrell
7a0dba22a5 refactor(component): use is a RequestUse message handler
Components no longer have a virtual OnUse; each component that reacts to a
use registers a RequestUse handler, like the client's components. The entity
runs the INTERACT trigger and the script, then delivers a RequestUseEvent
(carrying the user) to the handlers. The mission choice of a multi-interact
use goes only to the mission offer, as before. Switches keep a direct
EnterIfResponding for touches and pets.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 07:55:55 -05:00
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
Aaron Kimbrell
e8406cc829 feat(entity): the client's property plaque component (113)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 07:23:03 -05:00
Aaron Kimbrell
0cdf3afe3d feat(entity): the client's roller component (105)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 07:21:13 -05:00
Aaron Kimbrell
e585a035e0 feat(entity): the client's gate rush component (103)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 07:19:31 -05:00
Aaron Kimbrell
d1a778a140 feat(entity): the client's faction trigger component (72)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 07:17:47 -05:00
Aaron Kimbrell
a6381be720 feat(entity): the client's rocket landing component (68)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 07:15:54 -05:00
Aaron Kimbrell
8c5e7ee0e1 feat(entity): the client's generic activator component (64)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 07:14:12 -05:00
Aaron Kimbrell
a286bea854 feat(entity): the client's showcase model handler component (62)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 07:12:31 -05:00
Aaron Kimbrell
4dba9c2aeb feat(entity): the client's custom build assembly component (59)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 07:10:50 -05:00
Aaron Kimbrell
6628aa2d45 feat(entity): the client's package component (53)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 07:09:10 -05:00
Aaron Kimbrell
464dd759fa feat(entity): the client's choice build component (52)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 07:06:54 -05:00
Aaron Kimbrell
bd6e419290 feat(entity): the client's changeling component (51)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 07:05:18 -05:00
Aaron Kimbrell
912f5998ae feat(entity): the client's spring pad component (41)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 07:03:00 -05:00
Aaron Kimbrell
b4c25a2512 feat(entity): the client's model builder component (38)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 07:01:24 -05:00
Aaron Kimbrell
6d185b6e2f feat(entity): the client's arcade component (29)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 06:59:38 -05:00
Aaron Kimbrell
0e37994d6c feat(entity): the client's module (a car or rocket part) component (28)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 06:57:54 -05:00
Aaron Kimbrell
62c770aa56 feat(entity): the client's blueprint component (24)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 06:56:19 -05:00
Aaron Kimbrell
e2b2c4c48d feat(entity): the client's chest component (22)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 06:54:42 -05:00
Aaron Kimbrell
939e30e6a8 feat(entity): the client's rebuild activator component (14)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 06:53:03 -05:00
Aaron Kimbrell
d4cd459747 feat(entity): the client's build controller component (13)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 06:51:13 -05:00