13,751 Commits over 2,466 Days - 0.23cph!
▍▆█▊▍▍ ▊▉▉▋ ▌▉▌▉▅▋▍▋▋▆▅▇▍▍▋█▋▍▄▉▅█▌▅▅▉█▋▄▊▍▅▅
▇▍▋█▉▄ ▅▄▇▇ ▅▋▅▄█▅█▅▋▌▄▅▋▉▊▌▌▇▋▋▋▆█▄▌▉▊▄
▌▊▄▆▄▅ ▋▉▆▄ ▇▍█▉▋▉▄█▋█▌▌▉▆▉▅▄▊█▍▇▍
▇▇▇▄▊▇ ▆▄▅▊ ▊▅▌▍▄▍▊▌▊▄▋▊█▌█▉▅▄▆▅▄▊▊▄▅█
▌▄▊▌▅█ ▌▉▄▆ ▍█▅█▇▆▆▆▊▊▊▇▆▉▇▌▆█▍▇▊█▆
▇▋▍▊▊▉ █▄▌▍ ▅▊█▍▊▊▌▊▊▆█▅▄▅▆▆█▌▊▉▆▅▌
▆▆▉▅▋▌ ▉▄▊▅ ▊▄▄▍▆█▍▇▉▉▆▊▋█▄▍▋▉▅▌▉▊▄▍▋
▋▍▌▍▇▍ ▄▉▉ ▌▍ ▆▇▇ ▉▋▉▋▉ ▅▄█ ▉▅ ▍▇▌▍ ▌▄▅▇▊▍ ▇▆▌▆▊▅▌ ▍▉ ▅ ▊▆▄▊▄ ▍█▇▍▆█▇▇▋▄▄▄ ▄▋█ ▊▉▊█▄▇ ▍▆▅█ ▆▅ ▌ ██▊ ▆▆▍▌▊ ▋█▇█ ▄ ▌▄▅▊▄▋ ▆▅ █▄▉▊ ▉▊▄▅▆ ▉▍▆█▍ ▇█▋ ▌▅▌▌▌▅ ▆▍▍█
▊▇█▉█▅▅▉ ▆▄ █▋▍▇▅▉ ▋▉█▇▌ ▍▆ █▋▄▅▋▆ ██▌▌ ▌▊▅▅▌▇▍ ▇▇█▌▉▉▇▉▌
▅▄▋▇▍▇ ▋ ▄▅▋ ▋▍▇▌█▍ ▆▍█ ▍▊▊▄▄▊▇▆▅▄▊ ▄▉█ ▌▇▅▇▆▅█ ▉▄▌▋ ▄▊ ▄ ▉▋▉▅ ▄▋▊▌█▍ ▋▋ ▉ ▄▉▄█▊▅▉█ ▉▇▉▄▋▄█▊▌▆▄▄▇▋▇█ ▉▄▌▌▄ ▌▅▊█▉▇▍▄▇ ▅ ▌▄▉▄▇▍▄▆▋▅▆ ▊ ▊▋▋▆▇▅▊▍▊▇▋█ ▊▆▍▉▆▊█▉ █▅▅▍▋ ▊▄██ ▌▅▊ ▌▅ █▌▋▆ ▄ ▋██▉▉▇▅ ▇▅▄█ ▄▄▋▊▆▉ ▊▋▉▊▅▅█▌▆▅▊▉▌▅▌▍▉▋▅▄▊▉ ▉▊▇▍ █▍▋▄ ▍▅▍▌ ▆▍▋▇▉▆▍▋▇▆▉ ▌▆ ▌ ▊▄█▍█▆▌▄ ▆▍▇▆ ▋█▄▅ ▆█▉ ▍▌▌▆ ▆ ▅▌▄ ▍▅▇▄█▊▉▆ ▋ ▉▍▊▋▄▅ ▋▌ ▄▇██▋▅ ▍▄▆▇▄▌▌▆ ▌▊ ▅▍▍▌▌▌▊▆▅ ▆▊ ▆▋▌▍▋▄▇▅▌▇▊ ▆ ▍█▄▆▆██▍ ▇▅▄▊▄▆▍ ▍▅▊▆ ▆█▉▊▇▇█ ▆▌█▄▍ ▆▉▋▍█▌ ▊▇ ▋▋▇▇▅▊▆▌▉ ▄▇▄▅ ▅▇ ▋█▋▋▌▌
▄▌▄█▅▌ ▍▄▊ ▆▌▌▉▋▊█ ▊█▇█ ▅▊ ▇ ▊▆▌▌▊▍ █▉ ▉▌▋▍▍▄██▅█▍▉▇▍▄▊▉▇▄▊▆▌▋▄▇ █▇ ▆▇ ▍▆▅▆▊ ▆▄▌▌▋█ ▅▍▅ ▍▆▅▄ ▋▅ ▅▇▇ ▌▋▇▊▄▋
▉▍▍▌▌▅▉▉ ▆▅▉██▅▉▉▇▉▆ ▆▋▍▌▊▍ ▌▆ ▋▄▄ █ ▋▉▊▌▌▉█▍ █▅▅ ▌▍▇█▊█▄▊▇▌▊▅█ ▉▅▆▍▍▍▋ █▆▊▌▌▌ ▇▋ ▄▌▊▌▄▊▅▌▆█▆ ▌▋█▋▊ ▄█▆▇▊▆ ▉▄ ▉▇▊▉▇ ▉▉▌ ▅▆▊ █▆▌▄ ▋█▆▄ █▋▅▄▄▉▄▋ █▉▍▄▋▇▊ ▇▋ ▍▉▉ ▋▍▇▊█▋
Fixed some spraycan regressions when reskinning redirect items
Merge from main (solved StorageAdaptorAllowCollisionGroup conflict)
Added all of the barrel skins to StorageAdaptorAllowCollisionGroup
▋▌▍▆▆█ ▌▄▊ ▋▍▊▉▄▇ ▊▋▌▇ ▅▋ ▅▊▅▌▆▅▅▇▌▍▇▊▆█▋ █▍ ▅▄▊ ▄▇▄▇▄▉█ ▄▌▉█▊▄ ▅▊▆▋▇ ▄▇▋ ▋▋▋ ▊▍▆▉▊▅▋ ▋▆█▋▋▊ ▋▌▊▋ ▅▉▆█ ▊▊▄▌█▋ ▊▄▋▍ ▆▊ ▆▋▄▇▍▇▊▌ ▋▇▉ █▌▊▍▉▇ ▊▉▅█ ▆▍ ▇▅▊ ▆█▅▊█▉█▅
▆▉▆▍▋▊ █▉█ ▇▆▌▌█▊▄▇▆▇▋ ▊▍█▌▋▉ ▆▉▄▄▉▄ ▆▆▅▊ ▊▆▍▉▌▋ ▌▌▌▅ ▆█ ▍▊█▄ ▌▌▍▇▅█▆▆▇▌▉█▋ ▆▉▉▇▄▇▄▇▋▌ ▌▅▉▍▊▇ ▌▊ ▇▉▉▅ █▆▋ ▉▆▄▋▆▍▆▇▅▊ ▉▊ ▄▍▆█ ▋▅▍▄▆▉ █▊▌█▆▅▌ ▅▄▅▇▉█▅ ▍▉▉▌▊▋█ ▇▄▋▋▊▅▅ ▌▄█▅▉▍ ▋█ ▌▋▋ ▅▉▍▊▇▆
▋▆▉▋ ▇▋▍▄▇ ▍▉▄▅ ▍▍ █▌▊▆ ▇ █▊▆█▊▍█▍ ▌▆▆▋▌▅ ▋▊▌ ▊ ▋▍▄█▆▋▇▆▌█▌▉▇▉▅ ▊▋▄▄ ▄▅▇▆▄ ▆▅▋▋▆▍▅▇▊ ▆▌ ▇▆▄ ██▅█▄▄ ▄▆▍▊▊▆█ ▋▊▋█ ▇▊ ▄▅▅▄▊▄▍ ▆█▍▄
▆▍▌▉▌▌ ▉ ▉▆▊▋ ▆██▆ ▌█▍ ▆▍▇█ ▄▅▉▇▉ ▇▉█▌ ▉█▅█ ▉▍▍▉▇▇▅ ▊▊ ▌ ▇▉▇▋█ ▆▅██▉▋▌ ▋▄▉ ▆▆▄▋ ▋▆ ▌▆ ▄▊▌▉█ ▌▊▅▋ █▇▅▋ ▅▉▅▆▋▄▄▊
▊▊▅▇█▍▄▄ ▅▆▄ ▉▋▍ ▉▅▄▇ ▆▉▆ ▅▍▋█▊▋ ▊▆ ▊█▆▄ ▅▄▉▅▆ █▌ ▉▌▄▉▆ █▆▇ ▊▆▅▊▋ ▆▇ ▉▋▇▌▋▆▇▌█
▅██▅▍▅▊▉▍ ▌▇▋▄█▌▉▊ ▋▆▅▄▍▋█▇▄▌▄▍▌▅▍▊ ▅▋█▇▉▆▆▋▊▉ █▋ ▊▌▇▉▅▄▆ ▍▄▅ ▆▊ ▄▋▍▆▉▊▅▋▇▄▍▊▇▆▄▉▍▇██▇▊▋▅█▉▌▌ ▌▄▊▍▉▌▇ ▋▆▄▆▄▇▊ █▉ ▍▊▅▍▍▋▄▊▊▌▇▇▄▌▋▄▋ ▇▌▆█▍ ▅▉▍▆
▊▅▋▍▉▆▅ ▄▌▉▉ ▍▇ ▌▅▍ ▆▅▅▋ ▍▊▉▄▆▇▍ █▋ ▄▋▋▆▄ ▇█▉ ▌▄▊▄▇▍▇▆ ▋▉▇ █▄▌▋ ▆▌▍ ▍▉▊▊
▄▆▊▆ ▅▊▌ ▉▉█▇▉▇▇ ▄▄▍▆▄▊▉▍▄ ▄▍██▉▌▊▊▍▄▄ ▇▇▄▌▉▍▋ ▉▆▍ ▊▄▉▇▅▊▉█▄▅▇ ▅▅▊▇▋▅▆▊ ▌▋█▉▇▍▋▄ ▅▋▅ ▍▄▋▄ ▇▌▍▅█▆▄▆▌ ▌▊ ▆▅ ▇▉▌▋█▌ ▇▆▆▉▆ ▇▇ ▊█ ▋▍▆▇█▄▆█▌▄▌█▌ ▉▉▋ ▊▋▉▊▉▌ ▇ █▆▇▌ ▅▇▋▋▄▊▊ ▉▍▉▇▌▅▅ ▄ ▄▋▊ ▇▉▊▊▋▉▉
Merge from main
Cannon.cs and PlayerModel.cs conflicted, auto merged
Hacked in a simple way for one shot animations to notify a looping animation to rest, so we don't transition back to a loop half way through (mid yawn)
Added property drawer support for referencing animation sub systems, renders them as a dropdown using a new subsystem name field
Refactor RandomLoopAnimSubSystem to just use two handles, release and create them on the fly as needed
Much simpler state handling
"Strip LODS of selected' will no longer delete ObjectMotionVectorFix components
Colour code handles based on their sub system ownership
Track active handles at the subsystem level (not the actual component), automates all releases and should make editor tooling easier
Add support for showing sub systems
Merge from player_model_anim_inspector
Merge from main
Lots of code conflicts, all resolved except for one in PlayerModel.cs, looked fine
Conflicts on binocular.entity, used changes from source (presumably related to refresh?)
OneShotAnimationSubSystem can now pick from a selection of random animations
Hooked up SaleSuccess, EndConvoBoughtNothing, Talk and EndConvoBoughtSomething events
Plays from a selection of animations for each state
Added a priority system, allows us to specify a sub system to use Low, Medium or High priority to take ownership of the player model
Hooked up an additional OneShot system to the test chair, so we're running the random idle as a base and then a one shot to react to events
Added RandomLoopAnimSubSystem, can cycle through an arbitrary amount of looping animations, randomly picking the next one to play
Fixed some pooling issues when going in and out of range of animators running sub systems
Added a new ClientOnPlayerMountedWithPlayerModel callback for mountables, is called the first frame the player has a valid player model
Using this bypasses the recurring issue that ClientOnPlayerMounted is called before a player model exists when coming into network range of a player
Didn't make a matching dismount version as we don't have the same problem when leaving network range
▊▆▌█▍▆ ▉▊▆▌ ▊▊▌▅▊▇▍▄▅▌▆▉▋▆▌█▌▉█▄▌
▊▊█▄ ▄█▊▊▍▅▆▄ █▄▆▄▄▋▅▅▍ ▄█▉▊▅▅▇▌█▅ ▄▆▅▌▇
Piped the in-game debugging readouts into the unity inspector for more visibility while in editor
Added an example OneShotAnimationSubSystem for handling event driven animations
Added debug.animatorsubsystemdebug convar that prints out the currently active sub systems
Each system can add to the debug readout with component specific info (eg. per clip blends)
Added a TwoAnimBlend example
Add general fade in/out support
Exploring a new AnimationSubSystem class to standardise the new player model handle techniques we've been using for various one shots and other features
Replaced the dedicated OnPhone state in the PlayerAnimator with a new TelephoneAnimationSubSystem
Merge from elevator_fixes_apr_26