2,251 Commits over 549 Days - 0.17cph!
▅ █▅▌▅▌▄▉ ▊▆▌▊▊▋▍▊█▆▉▄▅▉▋▊▋▄▊▌█▇ ▊ ▌▊▄▉ ▍▌█▉ ▇▍ ▊▉▇▄▄▊█▋▅▉▆▆▉▋▉▊▉▄▅▆▅▅▇▉▍▍▊ ▅▄▋▍▋▆▅ █ ▍█▉▋█ ▆▅ ▇▋█▉▄▆▄▆▇▇▇▄▋ ▉▆▋▅▄▄▆ ▋▇▉█ ▄█▇▊▆▄▆▋
Optim: FinalizeTickParallel - use a burst job to gather players to validate for tick history
- Cleaned up a bunch of code by switching to NativeList from NativeArray
- more TickInterpolatorCache usage
Tests: staging demo playback
▍ ▅▉▅▉▌█ ▉▊▆▍▇▅▉▇▊▄▇▇▍▄▉█▌ ▄ ▍▋▍▆▌▋▋ █▌▋▉▆▍▅▋ ▌█▍ █▌▍▍▆▍ ▄▉▊█▍ ▅▇▊▋ ▅▊▅▉▇ ▋▉▅▍▇▋▋▇▄▅▉ ▅▉▉ ▄▍▄▍ █▍ ▅▆ ▅▇█▊█▌ ▉▌█▊▆▅▅ ▌▋▄▉█▆▋▉ █▍▌▉▋▊▋ ▅▊▊▊▅ ▉▇▌█ ▊▇▌▌▆ ▊▍▍█▇▅▆▄ █▍▋█ ▋▊█▊▅ ▊▆▋ ▋▌▄▊▍▊█ ▌▉▍▅ ▇▌▆▋▍▍▄█
▇ ▊▄▄▇▉▆ ▄▄█▆█▋▍▌█▍▆▆▄▇▇▉▄▉▋█▌ ▌▌▌ ██▊▄▇ ▅▉▆▍▍▄▅ ▌▆▉▆▅█▇ ▄▇▌▍▅▍▄▄▉ ▊▄█ ▆▆▉▋▄▄ ▍ █▇▇▍▆▄▇ ▆▋ ▌▍█▆ ▇█▌▉▊█▉ ▄▇▅▄ ▊▌▉▌▍ ▇█▉▅ ▆▄▄▊█▉ ▌▌ ▋▇▅▊▅▌▄▋▇▍ ▅▉█▌▅▆▇ ▆▇ ▉█▆█▇█ ▆▍▇█▆▅ ▄▉▋ ▆▍▍▇ ▉▄█▅▉ ▇▆▍▋ ▇▌▋▆▅▅▇ ▇█ ▍▋▅ ▌▌▋▇▅▌▄▍ ▋▉▅▆▍▊▆ ▄▇ ▋▄▅█▉▊▉▊▍▍▌▆▇▋▄▆▆ ▊▆▋▋██▅ ▄▍▌ ▊▉▆ ▉▌▇▄▋▌▊ ▊▆▅▆▊▅ ▍▆▋▇▋▅▄▋ ▄ ▄▆▉▇▊▍█▊ ▌▌ ▅▋█▍▌▇▄▆▉▉█▄▉▅ ▆▉▍ ▆▉▄██▉ █▌ ▄▉█▆▋▅▊▇▇▉█▉▆▌▄▋ ▌▉▅ ▊▍▋█▄▅▍ ▆▄▌▇▊
▅ ▇█▇▋▉▊ ▄▄█▇▆▆▌▆█▊▆▄▍▇▇▆▆ ▋ ▉▉▌▊▇▍▇ ▆ █▆▄█▅▍█▌▌▉▍▄ ▉▉▄▊▇▄▋▄▇▉ ▋▄▆▊ ▅ ▍▋█▊▉▍▄▋▉▆▍█▇▊▅█▌▆▆ ▆▄▉▅▇ ▇▅ ▇▌ ▍█▍▆ █ ▋█▄█▌█▄█▋▉█▇▉██ ▆▄ ▍▋▍█ ▄█▊▄▇▇▊ ▅▋▄▆▊▍ ▉▅▄ ▄▍▌▆ ▋▆▄ ▊▍▋▋ ▍▊▌▉▅▇▄▊▄ █▇ ▉▄▇▇▍█▅▊▊▌▆▅▄▄ ▌▊▋▌ █▍▅▊▉ ▋█▌ ▉▅▇▍▌▅▊ ▊▇▌▌ ▇▆▉█▇▅▍▊
▋ ▉▋▋▌▊▍ ▍▅▌▆▆▆▉█▉▋▉▆▅▌▊█▍ █ ▇▉▆▍▌▇▉ █ ▌▍▆█▉ ▍▄ ▊▄▍▋▆▅▋ ▄█▌▊▌ ▉▆▋▄ ▅▌▆█▄ ▋▍▆▉▋▋▇▊▅▄▅ ▊▆█▋▋ ▋▊▇ ▊█▋ ▄▆█▍ ▆ ▅▌▅▊▆▉▄▍▄▊▅▉▇▇ █▆ ▌█▆▇ ▌▍▆▇▅▍▋ ▉▄▌▄▅▋▉ ▅▋▄ ▇▍▄▅ ▉▊▄▉ ▄▍ ▆▄▉▆▋▅▊▇▅▉▋ █▇▋█▍▆▉▍ ▌▋▆▋ ▅ █▉▆▅▆▇ ▆▌▄▄█ ▉█▊▆ ▄▄ ▆▍▅▇▍▊▆▋▊█▉▉▆▅▄▇ ▇▋▆▌ ▉▄▌▇ ▍▇▆▇
▌ ▉▌▄▅▋▇ ▇▄▊▊▍▉▊ ▉▍▉▄▌▉▉█▉▍▋█▍▊▆▅▄▄▊█▍▉█▍ ▄ █▊ ▇▆▋▇ ▅ ▍▌▋▊▊ ▆▅▌▇▇▍ ▌▇▊▌▊▅▌▉▊▇▄▋ ▄█▊▍█▍▆ ▆▋▊ ▊▉ ▅▌▊ ▉▌▌▌ ▅ ▊▉▉▊▇▊▍▆▇▆▊▌▌▄ ▋▅ ▄▆▋▌ ▅▄▆▆▊▅▊▋▉▇▋▋▉▍ ▄▉▍▍ ▊▋▍▄▍▉▄▋ ▊▄▅ ▉█▉▅ ▍▄▊▆
▇ ▄██▆▉▉ ▇▇██▌█▆▅▅▇▇▆▄▊▅▌▇ ▊ ▇▄▄▅█▍▆ ▋▍▆▉▅▍▆▍▋▆▊▆▋▌██▊▋▅▇▅▇▍▆ ▆ ▅▋ ▌██▅ ▌▉▆▄ ▉ ▍▉▍▇▅▆▆ ██▉▉▌▌▉██▇▉▄█ ▄▄▇▍▅▇█ ▆▄▋▋█ ▋▍▉ ▄▋▋ ▆▌▄▉ ▋ ▋▊▍▄▍▄▋▉▍▅▉▉ ▌▆ ▍▅▋▌ ▍▇▋▌▅▄▌▄▇▋▊▇▅█ █▇▉▇ ▆▇▉▆ ▇ ▆▋▆▆█▊▋ ▋▉▉ ▄▄▅▄▌█▌▅
▄ ▉▅▌▋▄▅▇ ▌▄▊█▅▍▋▊▆▍▍█▄▅▌▅█ ▉ ▋▊▌▋█▄▍▊▅▄▆▋▆▅▉▍▋▍▇▆ ▇▆█▅ ▋▍█▌▉▍▋▍▇ ▅▇▉█▄▉▉█▉▌▋█▉▋▋ ▌▅█ ▌▋▆▆█▅▋▄▉▊▄▅▅▆▆▇▄▋▄█▋▇▌▋ ▌▇ ▋▊▆▅ ▊▄ ▇█▌▆ ▅▍▌▇ ▋▍ ▄ ▍▇█▊█ ▅▅▊ ▍▌▋▋▉▍ █▇▄▇▄ ▌▇▍▄▋▊▇▍▆ ▄▌▊▊▋▇▌▇▇▊▇▉▄▉▊▅▊ ▋▇ ▇▊▉▌▍ ▊▅ ▊▍ ▇ ▋▄▄▆▌▊▄▅▄▍▅▄▄ ▄▇▄▉ ▋▌▆▌▄ ▍▄▊ ▉█▄▊▍▊▋ ▌▄▊▊ ▆▆▅▌▉▄▊▌
▍ ▄▌▊▊▊▅ ▋▆▇▆▋▆▍█▉▄▍▅▅ ▅ ▄▍▍ ▊▍▋▊▌ █▋█▇ ▌▍ ▋▆▍▆▊ ▆▌▅▊▄▊▉ ▌▊▆ ▇▌▇▍▋▌▅▌▄▋▍█▍▌▉▌█▇▍▊▇▄▋ █▌▇▌▆▌ ▍█▍▄▉▄▍ ▄▇▅ ▅▊ ▇▍▉ ▋▋▍▇▄▆ ▆▅▌▍ ▍ ▆▅▍▄ ▇▍ ▍▍▅▇▍ █▇ ▋▊▋▅ ▅▌▄▍▅▅▋▅█▉▅▊▋▆ ▄▄▊▌ ▋▅▆▌ ▅▋▇ ▌▅▋▇▉▊▇ █▄▍▄ ▍▍▅▍▅▍▍█
▄ ▅▆▊▅▇▌▅ ▊▌▇▅▇▅▋█ █▅█▉ ▄▄▉▊▊▋ ▇▌ ▄▇▆▇▋▇▊▅▊█▌▄█ ▌▆▋ ▍▍▋▌▊▆▆▇▄▉█▍▉▉▍█▄▍▅▇ ▊▍▇▍ █▊▋▄▇█▅ ▅▌▌▋▊▍█▅▋▄▍ ▇▆▌▋▉ ▅█▇▍█ ▋▌▅▍▉ ▌▇▄█▆▄▉█▇▅▋▋▇▉▉▋█▇▋▊▅▄▋▄▊ ▉▍█▊█ ▍▋▋▄▅▅▅ ▇▋▌▋▋▉▉
▄ ▉▌▆▆▊▍ ▅█▅▌▊▍▅▇▆▉▍█▋▌▉▆▍ █ █▊▊ █▊▉▌▍▇▍▄▄▄█▌▍▇▅▉▌▆▄▌█▍▄█▉▅▄█▇ ▌▋ ▌ ▄▆▋▋▊▄ ▊▊▅▇▅▉█▉ ▌██ ▋▄▆ ▇▋ ▅█▊▄▆▌▆ ▉▋▅▇▊▌▊ ▊▇ ▌▌▉█▊▅ ▋█▄▄▆▊ ▍▉▋▉█ ▆ ▅▆▄▉▋▌█ ▉▉▍▆▋▊▆ ▌▅▌▆ ▊▌▅▍▋▅▄ ▅▉▊▊ ▅█▋ ▅▊█▇▆▇▄▋▄▄▊ ▌▆▆▇▄ ▋▌▋▉▌▊▅▆▉▍█ ▉▆▌▍█ ▉█ ▊▄▌█ ▌█▅▌▌▄ ▇▌▍▌▌▉▌▌▇▍▍ ▉█▆▌▇▌▉ ▉▆ ▅▅▆▌ ▉▆▆▆ ▍▆ ▇▍▋▅ ▌▊▄▊▋▋▍▅▄ ▉▉▄▊▉▊▉▊▊▇▊▍▅ ▊▄▆▉ ▆▊▌▅▉ ▍ ▋▇▇▅▇▆▋ ▋▆▍▅ ▋▆█▊▊▉█ ▊▋▉▅
▇ ▄▇▅▍▆▊ ▊▌▆▅▋█▉▌▄█▌▆▌▅▇█▆ ▍ ▆▇▉▄▊ ▊▉▍▅▆▌▌▊▊▄▄▍▆▍▆▌▇▋▍▇█▅▍▅▄▄ ▊▄▅ ▋ ▍▅▊ ▅▊▊▋▇▆▄▆▌▅▆▋ ▆▅ █▍▅▌▉ ▉▋▆█▉▌▄▆▅▌█▌▄▍ ▇▄▇▉▄▄ █▍▅▊▄ ▋▇▌ ▍▆▅ ▄▍▇▊▌▍▅▄ ▍▆▄▌▇▇▇▅ ▌▌▄▅▇▄▋▅▉▊▊█▌ █▆▆▌▋█▌▊ ▆▉▅▅ ▉▅▌▇▄ ▋▆▊ ▉▉▄▌▅▋▍ ▆▆▄▅ ▇▊▆█▄▌▍▊
▄ ▍▉▅▊▄▇ ▊▄▅▌▋▌▆▄▇▊▅▍█▆▍▄▇ ▉ ▆▆▌ ▆▇▉ ▌▇▌▇▆▆▅▆▄▇▄▆ ▇▌ █ ▊▉▊█▌▌ ▋▆▆▅▍▅▉█▋▉ █▋▊ ▄█▄▍ ▌▄█▍▌ ▄▆▊ ▊█ ▅▉▋ ▆▋▉▊ ▄▄ ▉▅▆▅▉▋▇▋▊ ▉▋▌▄▉▊▋█▇▍▍ ▅▄█▆▋ █▌▄ ▇▊ ▅▄▍▇▉▋ ▉▍▍▅ █▇▊▅▍▊ ▄▄▅█▇▆▊▄▌█▋▍▇▄ ▌▇█▍ ▇▋▌▊▄ ▍ ▆█▇▌█▌█ ▇▇▄▇ ▌▍▍▇▌▇▍▉
▋ ▌▋▅▇▋▅ ▊▇▍▉▌▆▍▆▊▋█▉▍██▊█ ▆ ▅▆▅▇▅▇▅ ▋██ ▊▊▉▌▅▉▅▆▋█▅▌▇▆▊▅▉▊██▆ ▆▆▍▅▉ ▍▆ ▆▊▇ ▅▋▉▊▍▅▊▇█▆▆▌▍▄▇▍▍▋▍ ▋▉▆▍▅██▊▊▉ ▊▌▍ ▅▄▄▄▌▊ ▊▄▍▆ ▄▆▄▇▇ ▌▌▊▄ ▉▇▌▌▌ ▋▇ ▆▉ ▉▍▋▌▇▆▋ ▌▄▆▅▆▄▌▌▇▆▋ ▅▄ ▄▋▌▍▉▇▊▆▆▅▇█ ▇▅▉▍ █▆▌▋▉ █ ▌▉▉▋▉█▄ ▉▉▍▅ ▅█▋▅▌▆▄▊
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: Adding last missing API - TickInterpolatorCache.TransformEntries
- added tests to cover it
Tests: ran unit tests
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
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
Bugfix: avoid writes past the end of the buffer
Tests: ran unit tests
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
Tests: Add more edge case testing
- Testing 1 tick only
- Testing up to capacity ticks
Tests: ran unit tests