refactor(gameserver): move placement + corpse-decay logic out of World (HARD GATE) #94
No reviewers
Labels
No labels
alpha:wave-0
alpha:wave-1
alpha:wave-2
alpha:wave-3
area:assets
area:combat
area:ecology
area:infra
area:render
area:scripting
area:ui
area:world
enhancement
epic
migration
post-alpha
roadmap
tech-debt
type:bug
type:chore
type:design
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
marco/IsoMmo!94
Loading…
Reference in a new issue
No description provided.
Delete branch "refactor/world-hard-gate"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Code-review follow-up (STD-1, STD-2, part of STD-3). Two
Worldmethods held logic the HARD GATE forbids (a World method may only delegate or do trivial get/set):AddPlayer/SpawnCreaturecomputed the walkable-or-spawn start tile inline (a duplicated formula) → newMovementSystem.ResolveStart; both now delegate.currentTick + corpseDecayTickswas computed inWorldin three places →CorpseRegistrynow ownsdecayTicksand itsSpawn/SpawnFortake onlycurrentTick;Worlddrops the_corpseDecayTicksfield.Also fixes the stale "serializes under its single lock" comments in the two touched components to the single-simulation-thread wording (#54 — no lock).
Behaviour unchanged — existing placement/decay tests cover it (157 GameServer green, zero warnings).
Definition of Done
World.cscontains no walkability formula and no corpse-decay arithmetic — both delegate to a component.