250,300 Commits over 3,959 Days - 2.63cph!
Fix compact player marker not showing player lists when tapped
Implement Razor effects. Added TurretProjectile and moved out target stuff from base projectile class.
▉▅█▊▇▅▇█ -▄▍▌▅▊▇▉ ▇▋▉▊▉▆▆▄▅ ▉▌▆▅ ▍▊▍ ▇▇█▉▍ ▉▋ ▋▅█_█▉▋▍▄▋▆▇▋▋▋▆▉.█▆▄ ▆▅▉▍▅ ██ ▄▉▌▅▌'▊ ▋▍▋█ ▄▋ ▊▇▆█ / ▄▄ ▌▅▍▅▄▌▄▆▌ ▆▊▆▆▇▄▅
▍▌▋█ ▍▇▌▍▍
▉▅▇▍▌ ▌▊▇▍▉ ▅▄▍▍▌█▆ ▇▉▋▌▉
▄▍█▅▌▋ ▅▊▊
█▉▄▆█ ███▌▆▇▉▇ ▇▅▄▍▇▉▋ ▍▋▋█▇▉
▉▍█▄▅▋▉ █▌▌▌██▄▍ ▍▇▉ ▍▆▅▆▅▉
Update items and translations
Expose and doc more on WorldInput public class; UseMouseInput allows nice usage with Input.Cursor rays
Generate valid addon folder name in s&box.sln for linux
Switch sln & csproj generation to use relative paths
Various tweaks to the heat-seeking projectile weapon + fixed a bug where changing weapons on initial loadout spawn didn't work
Give the Razor a projectile life time and reduce up velocity
Added Razor sidearm as an option for some loadouts. A low damage but heat-seaking short-range projectile weapon
Fix world panel input by changing WorldInput.Update to [Event.WorldInput.Build] called from the input system.
WorldPanel.RayToLocalPosition: fix wrong local position being used for inside checks
Simulate right (and middle) mouse button properly in world panel input.
Iterate on WorldInput, allow multiple simulated inputs at the same time by migrating state to games
Fix inverted x pos and lack of world scale awareness in WorldPanel ray to local code
Use WeakReferences of WorldInputs to iterate, gives addon state full ownership and lets GC work nicely.
Clear WorldInput reference list on LoopEvent.Init/Shutdown
Optimization pass for shader when they're not dev shaders
▊▅▉▄▋ ▇▊▌▍▊▇▌▍█ ▊▊▊ ▄▅▍▍▄ ▆▆▌ ▍▊ ▊▆▍▊▌▉▄▉▅
▉▉▅▊▌▉▋ ▌▋▍▌/▇▊█▆█ ▋▋▅▅ ▋▉▌▉▊ ▊▍▇▋ ▇ ▍▆▋▄▌ ▅▌▌▉▇▌ ▅▊▊▍▇ ▇▍█▆▉ (▅█▊▉ ▄▋▊▍▅▊█▅▇ ▄▉▊▉▉)
▅▊▍▆▋▆▉ ▌▆▉▇▇▍▌ █▌▋▌▄█▌▇▅ ▍▇ ▋█▄▇ ▉▇▋▋▇▇▊▊ ▍▋▇▄ ▅█▄▉▌▊▉
Remove debug optimize guard
Merge from FirstPersonSpectate
Fix light constants not being filled properly if not using cascade light, use data from baked sunlight from lightbinner
Improved handling of disconnected/sleeping players
Move max range calculation to ServerProjectile. A couple of changes
Improved fishing rod vm while first person spectating
ExplosiveInformationPanel now calculates the true Max Distance to show the user, instead of a semi-fabricated one
Fixed instrument vm's when first person spectating
▌▍▌▊▋ ▋▋▇▊ ▊▆▆█▋▍▌▍/▅▌▊▉▇▇▇_▋▌▅▌▆▅▉▍_▄
Update TryFireProjectile comment now that I've tracked down the cause
▇▄▋▄█▄█▌ ▆▉▄▍▇: ▆▌▍'▋ ▇▋▉▅ ▊▌ ▇▉▍▊▍█ ▋█▅▌▋▊▉▌▊█▉ ▊▌▌▆ ▊▋▆▋▇▊▅▋▋▆ ▅▋ ▆ █▉████ ▉▄▌▄
▊▉'▆▄ ▄▌▆▌▆▌ ▊▋▋▊▌▊ ▋▉▋▇▊▉▍▇ █▅▄▄ ▆█ ▆▆▋ ▊▉▆▄▊▄▍ ▉▇▍▌▊▊▋ ▋▊▌▊▍ ▇▉█ ▅▉▌▊ ▍▌ ▅▊
▋▋▄ ▌▍▆_▍▇▅▅▆▅.▊▊▅▇▇▋▋▅▍▇▊ ▄█ ▆▋▇_▅▍▅▌_█▊▇▉▄▍▇
Fixed boom box and cassette recorder vm errors when first person spectating
Attach dashboardStorageInstance to dashboardStoragePoint, not rocketStoragePoint
▆▍▍▅▉ ▉▊▌▋▄▄▌▊ ▅▄█▄▌▊▍▉ ▊▅▍ ▅▇▅█▇█▄ ▄▆▊▆█▉▍▌ ▇▉▋ ▉▋▉▆▌▊
Revert IPreventSticking interface for sticking stuff to the MLRS (satchel charges etc). Will see if we can do this with the existing bones system.
▅▇▉ ▋▊▌▋ ▌▉ ▇▊▆ ▆▄▊▅▆ ▊▊▅▇▅▌▆▍▄█▆▋▌▆▉█▉ ▉▇▍▉█▅▄▅ ▇▉ ██▅▊▋▌█▄▇▍▍▄█▇▌▊▇.█▄▊▄▄▌, ▊█▇▆▊ ▅█ ▅▅▋ ▆▋█▌▋█▌ █▆ ▅█▉▉▌▉▋ ▌▋▉▅ ▋▉█▊ ▉▅█▊ ▌ ▍▍▌-▌▆▆▉█▋▊ ▍▆▆▌▌▇ ▄▍ █▋▍▇▊ ▉▄▄▋ ▇▋▇▊
Fixed a typo in one of the toasts for capturing outposts
Copy over Layla's fix for MoveHelper
▅▋▅ ▇▋ ▄▌▌▆▉▅▋ ▌▄▆▍ ▇▇▉ █▄▊█▉▋ ▋▋▍▆▆▉▄▊▉, ▌▆▆▆▅ ▄▉▊▆▇ █▋▉▊ ▉▊▆ ▅▍▉▉█▆ ▊▊▄▇▌▊▍▄▅, ▄▇-▅▍▊▅▆▉▌ ██▅ ▅▄▆▄█, ▉▄▇▄▄ ▍█▄ ▊▉ ▅▊▊▄ ▆▆▆▊▅ █▉▍▄▍, █▊▅▄▄ █▊▋▆▇▄ ▍▊ ▄▍█▋▍▄ ▉▅▌▅█▅▌, ▌▇▅ ▊▍ ▊▍█▊▇ ▋▇▍ ▅▍▇ ▇▇▍▆▊ ▆▋▋▋▉ ▌█ ▋▉▉▋▌▆▊▆▊ ▊██▍▅▇▉▊. █▄▍▊ ▋█▌█▌ ▆▉▊▇▍▇▋ █▋▅ ▌▍ █▋▉▊▋▋ ▌▉▇█▍ ▅▄▇█▍ ▌▄▄▊. ▇▄▄ ▄▊▆▋▅ ▊██▅▊ ▊▍▇█▍▄ ▋▄▌▉▋ ▊█▆▉▌ ▌▊ ▋▄
MoveHelper: Nudge move trace endpos along normal by a small margin to avoid next movement thinking we started in solid, stops movement from getting stuck so often
Some score submission retrying edge cases !switch !release
▄▉▇'█ ▍▊▄▌ ▋▄ ▅▉▅▍██ ▊▌█▌▉▊▌▅▇▆▆ ▉▅▄▄ ▍▄██▄▍██▋█ ▉▍ ▌ ▆▅▅▉▅▅ ▋▇▄▋
▉▆▊▆▉ ▋▉▇▊▋█▌█ █▋▌▆ ▆██ ▇█▊▌▆▉█ ▌▌▆▊▋▊
▍▍▍▄▄▌ ▅▌▉▇▋▄▋_▍▄▆▌▊▇ (▄▆▅██▅▍▉▆▉█ ▇█▆▇▌▍▆▅▄)
█▊▆▌▊▍▊▇▇▍▍▆▄█▇▉█▄▇▊ ▅▍▇▅▄▆▋▊▆▊▍ ▅▌▇█▍██▍▄ ▅▊▆▉ ▋▉▅▉▌▋█ (▍▌▅▅▉▇▅▌+▇▆▄▄ ▋▄▋ ▇▋▍ ▇▅▍▅▇, ▉█▋ ▋██▅▅▋▉▆ ▍▇ ▊▅▍)