mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-04-06 05:03:52 +00:00
refactor(game): apply SOLID phases 2-6 to EntityController
- split applyUpdateObjectBlock into handleCreateObject, handleValuesUpdate, handleMovementUpdate - extract concern helpers — createEntityFromBlock, applyPlayerTransportState, applyUnitFieldsOnCreate/OnUpdate, applyPlayerStatFields, dispatchEntitySpawn, trackItemOnCreate, updateItemOnValuesUpdate, syncClassicAurasFromFields, detectPlayerMountChange, updateNonPlayerTransportAttachment - UnitFieldIndices, PlayerFieldIndices, UnitFieldUpdateResult structs with static resolve() — eliminate repeated fieldIndex() calls - IObjectTypeHandler strategy interface; concrete handlers UnitTypeHandler, PlayerTypeHandler, GameObjectTypeHandler, ItemTypeHandler, CorpseTypeHandler registered in typeHandlers_ map; handleCreateObject and handleValuesUpdate now dispatch via getTypeHandler() — adding a new object type requires zero changes to existing handler methods - PendingEvents member bus; all 27 inline owner_.fireAddonEvent() calls in the update path replaced with pendingEvents_.emit(); events flushed via flushPendingEvents() at the end of each handler, decoupling field-parse logic from the addon callback system entity_controller.cpp: 1520-line monolith → longest method ~200 lines, cyclomatic complexity ~180 → ~5; zero duplicated CREATE/VALUES blocks
This commit is contained in:
parent
f5757aca83
commit
b0a07c2472
2 changed files with 1537 additions and 1444 deletions
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue