1,348 Commits over 365 Days - 0.15cph!
▋▉▋▋▌: ▊▍▍▅▌▆▆▆▉█▉▋▉▆▅▌▊ - █▍█▇▉▆▍ ▌ ▇▉█▌▍ ▆█ ▉▍▄▊▄▍▋ ▆▅▋▄█ ▌▊▌▉ ▆▋▄▅▌ ▆█▄▋
▍▆▉▋▋ ▇.▊▅▄ ▅▊▆ █▋▋ ▋▊▇▊ - █▋.▄▆█->▍▆.▅▌▅ ▊▆ ▉▄▍▄ ▊▅▉▇▇█. ▆▌█▆▇▌▍ ▆▇▅ ▍▋▉▄ ▌▄▅▋ ▉▅ ▋▄▇▍▄▅▉▊▄▉▄ ▍▆▄▉▆▋▅. ▊▇▅▉ ▋ █▇▋█▍▆ ▉▍▌▋▆ ▋▅█▉ ▆▅ ▆▇▆▌▄▄█▉
█▊▆▄▄: ▆▍▅▇ ▍▊▆▋ ▊█▉▉
▌▉▌▄▅: ▋▇▇▄▊▊▍ ▉▊▉▍▉▄▌▉▉█▉.▍▋█▍▊(▆▅▄▄▊█ > ▍) ▉█▍▄ █ ▊▇▆▋▇ ▅▍▌▋▊▊ ▆▅▌▇
▇▍▌▇▊▌ ▊▅▌▉▊▇▄ ▋▄█ ▊▍ █▍▆ ▆▋▊▊ - ▉▅.▌▊▉->▌▌.▌▅▊ ▉▉ ▊▇▊▍ ▆▇▆▊▌▌
▄▋▅▄▆: ▋▌▅▄ ▆▆▊▅▊▋▉▇ ▋▋▉ ▍▄▉▍ ▍▊▋▍
▇▄██▆: ▉▉▇▇██▌█▆▅▅▇▇▆▄▊▅ - ▌▇▊▇▄▄▅ █▍▆▋▍▆▉▅▍▆▍.▋▆▊▆▋(▌██▊▋▅ = ▇) ▅▇▍▆ ▆▅▋▌ █ █▅▌▉▆▄▉ ▍▉▍▇▅
▆▆██▉▉ ▌▌▉██▇▉ ▄.█▄▄ ▇▍▅ ▇█▆ ▄▋▋█ - ▋▍▉▄->▋▋.▆▌▄ ▉▋ ▋▊▍▄ ▍▄▋▉▍▅
▉▉▌▆▍: ▅▋▌▍ ▇▋▌▅ + ▄▌▄▇▋▊▇ ▅██ ▇▉▇▆▇▉▆▇
▄▉▅▌▋▄: ▅▇▌▄▊█▅▍▋▊▆▍▍█▄▅▌ - ▅█▉▋▊▌▋█▄▍▊▅▄▆▋▆▅▉▍▋ ▍▇▆▇ ▆█▅▋▍█▌▉▍ ▋▍▇▅▇▉█▄▉▉█▉▌▋█ ▉▋▋ ▌▅█▌▋▆▆█▅▋▄▉▊▄▅▅▆▆
▇▄▋▄ █▋ ▇▌▋▌ ▇▋ ▊▆▅▊ ▄▇█▌ ▆▅ ▍ ▌▇▋▍▄ ▍▇█ ▊█▅▅▊. ▍▌▋▋, ▉▍█▇▄▇▄▌▇ ▍▄▋▊▇▍▆▄▌▊▊.▋▇▌▇▇ ▊▇ ▉▄▉▊▅ ▊▋ ▇▇ ▊ ▉▌▍▊▅
▊▍▇▋▄: ▄▆▌▊ ▄▅▄▍▅ ▄▄▄ ▇▄▉▋▌▆▌ ▄▍▄▊ ▉█▄▊▍▊▋▌
▍▄▌▊▊: ▊▅▋▆▇▆▋▆▍█▉▄▍ - ▅▅▅ ▄▍▍▊▍ ▋▊▌█ ▋█ ▇▌▍▋▆ ▍▆▊▆▌▅▊ ▄▊▉ ▌▊▆▇▌▇▍▋▌▅▌▄▋▍█▍▌
▉▌█▇ ▍▊▇▄▋█ ▌▇▌▆▌▍█ ▍▄▉ ▄▍ ▄▇▅ ▅▊▇▍▉▋ ▋▍▇▄ - ▆▆▅▌ -> ▍▍▆▅, ▍▄ ▇▍▍▍ ▅▇▍█▇▋
▊▋▅▅▌: ▄▍▅▅ ▋▅█▉ ▅▊▋ ▆▄▄▊▌▋▅ ▆▌▅▋ ▇▌▅▋▇▉▊▇
▄▅▆▊▅▇: ▌▅▊▌▇▅▇▅ ▋██▅ █▉▄▄▉▊ ▊▋ ▇▌▄▇▆▇▋▇▊▅▊█▌ ▄█▌ ▆▋▍▍▋▌▊▆▆▇▄▉█▍▉▉▍
- █▄▍▅ ▇▊▍▇▍█▊ ▋▄▇█▅▅▌▌▋▊▍ █▅▋▄▍ ▇▆▌▋▉ ▅█▇▍█ ▋▌▅▍▉▌▇▄█▆.▄▉█▇▅▋
▋▇▉▉▋: █▇▋▊, ▅▄▋▄▊▉▍ █▊█▍▋▋▄
▄▉▌▆▆: ▊▍▅█▅▌▊▍▅▇▆▉▍█▋▌▉ - ▆▍█ █▊▊█▊▉▌.▍▇▍▄▄▄█▌▍▇▅▉▌▆▄▌█▍▄█▉ ▅▄ █ ▇▌▋▌▄▆ ▋▋▊▄▊
- ▊▅▇ ▅▉█ ▉▌ ██▋▄▆▇▋ ▅█▊▄▆▌▆ ▉▋ ▅▇▊▌▊▊ ▇▌▌▉█▊ ▅▋█▄▄ - ▆▊▍▉▋▉█ ▆▅▆▄▉▋▌ █▉▉▍ ▆▋▊▆▌▅▌ ▆▊▌▅ ▍▋▅ ▄▅▉▊
▊▅█▋▅ ~▊█▇, ▆▇▄▋->▄▄▊▌. ▆▆▇▄▋ ▌▋ ▉▌▊▅ ▆▉▍█▉▆ ▌▍█▉█▊▄▌█▌█ ▅▌▌▄▇▌▍ ▌▌ ▉▌'▌ ▇▍▍▉ █▆ ▌▇▌▉ ▉▆▅▅▆▌▉▆▆ ▆▍▆▇.
▍▋▅▌▊: ▄▊▋▋ ▍▅▄▉▉ + ▄▊▉▊▉▊▊ ▇▊▍▅ ▊▄▆▉▆▊▌ ▅▉▍▋
▇▄▇▅▍: ▆▊▊▌▆▅▋█▉▌▄█▌▆▌▅▇ - █▆▍▆▇ ▉▄▊▊▉▍▅▆▌▌▊.▊▄▄▍▆▍▆▌▇▋▍▇█▅ ▍▅▄ ▄ ▊▄▅ ▋▍▅▊▅▊▊▋▇▆▄▆ ▌▅ ▆▋▆▅█ ▍▅▌▉▉▋▆
█▉▌▄▆ ▅▌█▌▄▍ ▇.▄▇▉ ▄▄█ ▍▅▊ ▄▋▇▌▍▆▅, ▄▍▇▊▌▍▅▄ ▍▆.▄▌▇->▇▇▅▌.
▌▄▅▇▄: ▋▅▉▊ ▊█▌█▆ ▆▌▋ █▌▊▆▉▅▅ ▉▅▌▇ ▄▋▆▊▉▉▄▌
▄▍▉▅▊: ▄▇▊▄▅▌▋▌▆▄▇▊▅▍█▆▍ - ▄▇▉ ▆▆▌ ▆▇▉▌▇▌▇▆▆▅▆▄ ▇▄ ▆ ▇▌█▊▉▊ █▌▌▋▆
▆▅▍ ▅▉█ ▋▉█▋ ▊▄█▄▍ ▌▄% █▍ ▌▄▆ ▊▊█▅ ▉▋ ▆▋▉▊▄▄▉▅, ▆▅▉▋->▇▋▊▉. ▋▌'▄▉ ▊▋█ ▇▍ ▍▅▄█▆▋ █▌▄▇ ▊▅▄▍▇▉ (▋▉▍▍)
▅█▇▊▅: ▍▊▄▄ ▅█▇▆▊ + ▄▌█▋▍▇▄ ▌▇█▍ ▇▋▌▊▄▍▆█
▋▌▋▅▇: ▋▅▊▇▍▉▌▆▍▆▊▋█▉▍██ - ▊█▆▅▆▅▇ ▅▇▅ ▋██▊▊▉▌▅▉▅▆▋█▅▌▇▆▊▅▉▊ ██▆▆▆ ▍▅ ▉▍▆ ▆▊▇▅▋▉▊▍▅▊▇█▆▆▌▍▄▇▍ ▍▋▍▋▉
▆▍▅ ██▊ ▊▉▊▌▍▅ ▄▄▄▌ ▊▊▄▍▆ ~▄▆% ▄▇▇▌▌ ▊▄ ▉▇ ▌▌▌▋▇▆, ▉▉▍▋▌->▇▆▋▌ ▄▆ ▅▆▄▌
▌▇▆▋▅: ▄▄▋▌ ▍▉▇▊▆ + ▆▅▇█▇▅▉ ▍█▆▌ ▋▉█▌▉▉▋▉
Update: adding HandleIgnoreTerrain that works on a batch of positions
- also ninja-fixing a bug in batch overload of HandleIgnoreCollisions that screwed layermasks - good thing it wasn't used anywhere
Tests: ran unit tests
█▌▅▋▅▅: ▅▉▅▉▌ ▉▇▋▊▇▇█▍▉▋ ▆▌▅▉▌▇ ▆▇ █▍▌▇▄▆▅▊▄▌▆▄▄▄▆▌▄
▅█▉▍ ███▊ ▌▅ ▍▄▆▆▋▍▆ ▋▊▍▅ ▇▉ ▉▋▆▉▋ █▊▆▊▆█▋▍ ▊▇▍██▋▅▄▅▊▋▊█▅▌▆▉▍▌ ▋▌▄▆▅, ▌▋▅▅▍ ▇▋ ▌▉▋ ▆▌▌ ▅▉█▅▉ █▄▉▍▆ ▇▌▍ ▄▇▉▍▅
▊▅▋▊▊: ▊▍▄ ▋▍▍▅ ▊▌▄█
▊▄▅▄▆▋: ▇▄▉ ▋▆██▄▉▆ ▌█▉▉▍ ▄▊ ▊▆▉▅▅▋ ▍▅█▅▊▊▉▌▅▊ ▌▄█▊▋▄▊ ▋▆▇▆▍ ▉▄▍▆▉▇ █▋▋▉▅▆▊▊▋▆ ▋▇ ▄▇▊▋▋
- █▉█▍ ▉▊▌▍ ▌▉▍▉ █▅█▄▅ ██▌▆ ▍▅ ▍▄▆ ▇▍▌ ▇▌▆▌ ▆▉ ▋▅█▌▅▍▉ ▆▋▊▅▇▄▇▆
▌▍▆▌ ▉▉▇█▌ ▇▆▌▅▉▊▋▋▅▊▋▍▋ ▉▇▍ ▋▊▇▇▍▌▆▊▉█ ▌▍▍▋ ▄▇▊▊▉▌▄█▋ ▅▍▇ ▅▇▉▇ ▅█▍▍ - ▋▌▍▅▌ █▍ ▆▊▄▋▋ ▋█▊ ▇▆▅. ▄█▌▆▍ ▆▇▉▋▌ ▄▅▇█▄ ▄▍▅▇█▋▄▌▌ ▋▊▇▅▉'▋ ▋▅▄▄█▉ ▄█ ▍▋▌▆▋ ▄▅█▋ ▇▊ ▋▉█▄▌▇▍▉▄█▆▍▆.
▄▄▅▌▅: ▆▄▉ ▄█▆▊ ▊█▇▌▊ ▇▌▍ █▌▅▆▅▆▊ ▉▍▍▍▊▋▉ ▆▊▍▆▇█▇▅ ▋▄▆█ ▆▌▉▋▇▅ ▇▍▋ ▅▌▍▋▌▊▉▊
▉▌▇▅█▆: ▉▄▄▇▆▆ ▊▍▋▋▅▍█▍█ ▄▄▆▌ ▍▋▊▊▋ ▊▇▉ ▉▆▇▉█▍▉▄.▇▇▆▍▅▇▅▍▊█▋▅ ▅██ ▌▄▆▉▉▌▇▇.▊▌▋▄▊▇▅▋▍▍▍▅▋
- ▋▇▋▊ ▊▋ ▍▆ ▌▆█ ▅▋██▅█▄ ▅▍▍▊ ▄ ▇▆█▉█ ▋▌ ▅▅▇▋▅▋▉
▍▌▄█▅ ▋▊▇▍ ▍▌ ▊▉▉ ▌▋▅▌▄▆█ ▇▅▆██▄▅▆▌▄▇▋▊ ▉▅ ▅▉ ▌▌█▄▆▉ - ▊▌▅▆▆ █▅ ▌▅█▅
▉▋▌▄▊: ▋█▅ ▅▌▉ ▍▍▍ ▋▊▊▄ ▆▌▇▄▉
▋█▌▍▋: ▅▋█▆▋▆ ▉▇▅▆▇ ▌▊▄▅███▄.▇▇▌▇█▊ ▅█▉▆ ▄▋▅▆ █▄█▅▋▊▄▌▆▍ █▋▋▄▅▄█▇▄▌▉ █▆ █▍▉▊▋▄▅▅▉▆▊▆ ▄▊▇ ▊▌▍█▄▍▍▋▌▄▆█▋
- ▊▋▇▊▄▋▄▅▅ ▍ ▆ ▌▄▋▍ █▄▋▅█▅▊ ▅▌ ▄▇▇█▆▋▉▉ ▊▇█▌▍▍▆▆
▉▅▉▍▋'▊ ▍▅▄▇▌ ▇▄▄ ▊▄▉ █▊▊█ ▊▍█▇▊, ▅▊▇ ▄▉▅▉▌▌ ▄▅▆▅ ▇▇▅█▍ ▌▆█ ▊▋▇▆█▇▉ ▌▍▅▄▉▄█▇
▋▍▋▋▋: ▆▅▉ ▍▇▇ ▆▇▆ ▅▄▉▅ ▅▉▌▍
Merge: from parallel_validatemove/stable_playercache
Promoting stable player cache version as main dev direction
Tests: none, no conflicts
▉▌▄▉▍▌: ▆▌▋▇▉ ██▄▇▇ ▉▍▄ ▇▆▉█▅▌▋ ▊▊▆▊▊▅▉ ▆▅▇▇ ▋▆▇▇▋▊▌█ ▄▄▊▍▉
▋▇▆▇'▄ ▍█, ▍▊▅ ▅▊▊ ▄▋▇▍▅▍ ▍▍▋ ▊▊▍█, ▌▉▊ ▋ ▋▍▋▊ ▌▇ ▍▅▆▅▍ █▄▄▅▋▅▉▅▄ ▅▌▋▍ ▉▄▊▉█ ▉▅▌▆▍/█▆▌▍
▆▇█▋▍: ▋▄█▊▊▉ ▅▇▆▇ ▉▉▌▆▋▄▋ ▋▇▋▊
▆▇▊▍▉▇: ▍▌▆ ▍▊▅▅▌▍▌█ █▊▊ ▊▉█▍▊▄, ▇▆▌▍ ▆▍▋▍▍ ▌█▉▅▉▅█▌ ▉▅ ▉▍▉▋▍ ▇▌▉ ▍▊▊▍▋▆█
▄▊▍▆ ▋▊▇▆▌▄ ▇▌▆▅ ▉▆▋▌▌▅▅ ▌█ ▍▉ ▇█▋, ▇▆▍ ▋▇▊██ ▉▉ ▌█▅▋▊▊ ▉▉ ▊▇██▍▄▍ ▅▇ ▆▅▍▋▇ ▅▊▌▊ ▅▊▉▊▊
▄▊▆▄▇: ▄▇▆▌▇▄ ▋▅▇▍ ▇▌▌▅▇▆▇ ▉▌█▆
▄▄▄▆▍▇: ▇▌▆▄▋ ▌▊▊▇▌▅▉ █▉▉▊▄▅▌▍ █▆▊▉ ▇▌▉▋▅ ▉▋▅▋▍▄▆ ▆▊▌█▆▇▍▌█▆▋ ▇▄█ ▍▍▇▍▍
▄▅▋▋▌: ▇▍▉ ▌▄▍▋█▉▇ ▇█▆█
Clean: consolidate some work buffers
Tests: ran staging demo
▊▉▋▍▇▆: ▌▆█▊▄ █▌▇ ▄█▋▇█ ██▄ ██▄▌▍▅▍ ▅▍▊▌ ▌▉ ▌█▉▅▌▄▇▍▆▇▅▍▋▅▋▍▋
▇▇▆▊▄ ▆▌█ ▇ ▋▇▇▋█ ▉▄ ▌▆ ▍▅▆▉█ ▄▅▆▅▍ ▌▅▍ ▅▅▅ ▆█▉▌▋, ▆▊▊ █▇'▄ ▊█▌▉▌▍▍▋▋ ▉▋▍ ▆▉▌▅▍▊ ▆▋▅▅
▉▅▅█▍: ▉▋█▉▅▄ ▍█▋▆ ▇▍▆▄█▇▊ ██▇▇ - ▍▅▋ ▄▆▉▌█▍▋██▍ █▄▆▍▊▍▆▄▄▌
▍▍█▍▆█: ▌▋▆▇█▇▊ ▋▋▌▍▋ ▅▄▆▌▍▇▅▄▅▉█▌▉▆▆▉▇ █▄█▉▋▅▌▋▅▉▆▍▊▆ ▉▌▊▌
- ▉█▅▍ ▅▌▆ ▆▆▇█▋▅▅▅▇▇▌ ▉▅█▌▇▄▋▋ ▍▅▉▆▌▍ ▍█▊▅▆█▍ ▊▇█▌ ▉▇██▄▋▇▍ ▋▇ █▇▋▅▄▆▇▌ ▄▊▄██ ▌▋▉▍▄ ▌▍▍▋▍▍
▋▋▇▇ ▍▇▆ ▆▅▉█▄ ▍▄▅▆
▉▋▇▋▌: ▅▌▊▊▉▌ ▆▅▌█ ▊▇▋▇▇▌▄ ▌▋█▋ - ▆▌▇▊▉▌▍▊▇▅ █▅▄ ▉▌▊▊ █▉▍▅▇▅▋▊ ▅▋▋
▄▇▅▍▊▌: ▇▆▍▇█ ▉▊▌█▍▍▍▊▊▊▅▋▋▇▌▌▋ ▅▉▉▆ ▉▅▋▊▆█▇▍ ▉▊▍▄▉██▇█ ▄▊▄▄▊ - ▊▌▊█▊▌▍▉▄▇▋▅ ▍▉▄ ▌▊█▊▋▄▄▆▋▅▌▇▉▇ ▅▌█▆▌
█▌▄ ▌▌█▍ ▄▉▉▆▇█ ▍▆▉▇▆█▆▊▉
▊▍▇▋█: █▅▌ ▉▆▍▄▄▅ ▌▌ ▊▅▋▄█▋ █▋▇█ ▆▋▋▊▄ ▍▆▍▆▄█▄▄▉▌▋▄▄ █▇▌ ▄▋█▉▆▉▉▄▌ █▉█▍▆█ ▄▌▆▄▌▄ + ▍▋▇▉▅▆ ▅▋▋▇ ▇▍▉▅▄▇▄ ▋█▊▌
Update: merge NativeList.Expand and NativeList.ExpandAndClear
- Rewrote the Expand branching logic to be simpler
Realized that Expand(false) always leads to a Clear - so there's no point in having ExpandAndClear
Update: Add NativeList.ExpandAndClear
- also fixed invalid check in NativeList.Expand that was comparing against list length instead of capacity, potentially causing more reallocs than necessary
Tests: none, trivial change
Clean: variable rename
Tests: none, trivial change
▄▇▌▇▅█: ▄▄▉▇▊▋▇▍ ▄▉▆▍▅▄█▊▆▉▇▊▋ ▋▋█▊ ▄▉▌▊ ▊▄ ▋▉▊▍▄▆▊▄█▅▌ █▌▍▊▅▍▅▇▅▇▄█▊▇▆▄▋
- ▊▅▉▇ ██▉▇█▄█▇▉▉▌, ▉▌'▇ ▌█▍▌▊ ▊▆█▋▋▄ - ▄▊▋ ▅▌█▆▉▉▄ ██▆▊▌ ▋▄ ▉▌▅ ▍▌▍▇▊▌ ▋▉▍▄
▍▊▋▆█: █▊▅▋▄▉ ▍▆▇█ ▍▊▅▋▌▅▌ ▍▊▅▆
▌▄▆▉▉█: ▉▄▉'█ ▋█▌▋█▉▍▍ ▍ ▍▇▊▌▋ ▉▉▌▌▉▄ ▊▌▇▊▌▆█▇▅▅▌▌▊▋▌██
- ▋▊▌▄▄▇▇ ▉▅▅▉ ▄ ▄▉▊█▉ ▋▌▅ ▆▍▅▄ ▉▋▋▅ ▉ ▍▅▍▅▄▅ ▅▋▍▊▉▄ - ▄▊'▅ ▍▆▅▉▅▇, ▅▍▍ ▆▅▌█▋█▆ ▉▅▄▆
▄▉▍▍█: ▉▋▉▅▆▄ ▆▆▄▅ ▇▉▆▍▆▌▅ ▍▌▍▆
▌▌▊▅▄▄: ▄█▍▊▆▄█ ▌▋█▄▍▇▋▊ █▆ ██▄▌▌▋▅▌▇▍▄▉▇ ▄▄▉▆ ▊▍▊▇▋▍▆█▊▄▊ ▉▄▄▇▇▉▅▊▄▆ ▆▋▌▋▌▅▇
▇▇▇▄ ▇▅▅▊▌▍ ▊▉ ▋▇ ▅▋█▇▆ ▌▊▅▌▌▇▉ ▍█▆▌▉▌▋▌▄▆▊▉▆▍▍▋▉
▊▉▅▇▌: ▄▄▇█▊▆ ▊▆▉█ ▋▋▅▋▇▄▇ ▌▌▌▇ - ▍▄▍▅▇▍▍ ▊▆▇▆ ▆▄▇▆█▄▆█▅▌
Bugfix: NativeList.Expand now properly clean us old list
Tests: none, trivial change
▅▄▊▋█: ▌▊█▆▊▅ ▊▌▆▋▊█_▇▉▅▊▅▆▍▉▋▄ >= ▆ █▍▌█▌▇
▄▄ ▆▉█ ▅▊▊▉▍ ▍█▄ ▍▊▄▅ ▄▆ ▍▇▄▌ ▊▅▋▌█▍ (▇▌▋▌▉ <▆)
▊█▍▌▇: ▉▍▊▆, ▄▄▊▄▉▇▌ ▋▅▍▍▍▆
▊▋▍▉▄▍: ▆▍▅▆█▌▅▋▄▄▄▋▉ - ▋█▌▄▊ █▄▅▉▅▅█ ▅█ ▆▊▄▇▌▆▊▌▇▍▌█
- ▊▋▍▉▍▄▉ ▉▋▅▋ ▊▇▄▍▌▊▋▍.▌▆█▌▄▄▊▅█▍▌▅▍
▆▅▌▇▆▄▆▅▌▊ ▋▅'▍ ▇▄▌▇▋ ▆▊▍ ▄▅▅▌▍▉▆▌ - ▅'▊▌ ▄▌█ ▅▆ ▊▊▉█ ▌▍▉▋▋ ▅▋▊▇▅▅▊█▄▅▍ ▊█▇█▍▆▋▄▍▄▄▌▌▉
▊▅▊▅▄: ▄▊█▅▋▌ ▊█▄▉ ▅▉▌▆▅▊▅ ▆▅▉▊ - ▆▉▋ ▊▄▌▋▌█▍▍ ▇▍▄▇▅▇▉ ▊▇ ▋▊▉▋█▆ ▉▋▌█▍▉▊█▌▄
Update: TickInterpolatorCache exposes state via ReadOnly property
- Reroute all accessors and logic via static methods that take in ReadOnlyState
This enables to pass entire TickInterpolatorCache into a burst job
Tests: ran unit tests
Update: mark a bunch of BasePlayer functions as static
Makes it easier to build Burst jobs
Tests: editor compiles
▍▋▍▍█▄: ▅▆█▉▄ ▆▌▇ ▍▋▍ ▄▊██▌▌▊█▄ ▆▍▋▍▊▉▍▋ ▋▌▍█▌█▅▊▅ ▊▄▊▄▋▊▄█ ▅▊▉▉ ▅▍ ▇▉'▇ ▌▅▉ █▌▉▇▅
▉▅▌▉▆: ▆▇▌▊▆▊ ▋▄▉▇ ▊▉▉ ▍▇▅▊▍▉▌ █▊▍▅
▆▋▅█▇▍: ▄▊▉▍▍ ▋▄▋ ▄▇▄▋█▋▉▄▋ ▆▋▉▆▊▋▇▄ ▊▅▉▇ ▉▅▊▊█▋▋▅▌▇ ▉▊▊▍▅
▉▍▉▅▅: ▆▄▌▋▋▋ ▇▍▆▌ ▆▊█▇▉▆▇ ▅▄▍▌
▋▌▄▌▍▆: ▊▅▆▌▋█▍▅▍ █▋▌ ▇▉▅▇▆▅█▊▊ ▋▍▍▍▌▍█▆ ▇▊▊ ▄▋█▌█▉ ▋▌▊▉▊▋
▆▊▇▉▉: ▇▊▌ █▇▊▌▆▆▌ ▌▉▉▌ ▉▌▅▋▊▅▆▍
▉▉█▅▇▆: ▄▅▆ ▌▌▅█▍▇▉ ▇▍▅█ ▄▇ ▌▇▊▉ ▋▌▋█▄▋ ▊▆█▄▄ ▅▋▅▆▊▌▊▉.▌▍█▌▊▇▄▉
▍▍▅▊▄: █▌▉▆
Update: Split various tick validation functions into smaller loops
- Added a couple small extension utils to NativeList
This helps isolate code that we'll be able to run as Burst jobs - there's a bit more to split
Tests: Staging demo playback - got comparable results
Update: Integrate TickInterpolatorCache into the server flow
Tests: played back staging demo, once with it enabled from start, another with disabling-enabling it multiple times during playback. Both cases had comparable telemetry numbers
Bugfix: avoid writes past the end of the buffer
Tests: ran unit tests
Update: Adding last missing API - TickInterpolatorCache.TransformEntries
- added tests to cover it
Tests: ran unit tests
Optim: TickInterpolator.TestConsistency - Replace Assert.IsTrue with AssertTrue wrapper that doesn't allocate
- Sprinkled some scopes for future
Speeds up the unit test 20x times and avoids 3.6GB of garbage
Tests: ran the unit tests
Clean: add a comment
Tests: none, trivial change
Tests: validate PlayerTickIterator in it's initial state
Tests: ran unit tests
Tests: Add more edge case testing
- Testing 1 tick only
- Testing up to capacity ticks
Tests: ran unit tests
Bugfix: TickInterpolatorCache now properly handles "Reset" position
- Fixed unit tests
Tests: ran unit tests - all tests now pass
Update: Adding TickInterpolatorCache.PlayerTickIterator to help with code migration
- Expanded unit tests to cover the new util and a couple more code paths
Tests: none. Tests are currently failing as I uncovered a different issue - will fix in next CL
Update: translate ValidateMove to batched ValidateMoves
Internally it's the same logic for now, as I've yet to properly intergrate TickInterpolatorCache and need to convert a lot of internal methods
Tests: played back staging demo - got same numbers and no new errors
Update: made some caches stable across frames
Tests: played back staging demo - no new errors and stats match expected