111,311 Commits over 3,928 Days - 1.18cph!
Client compile fix, code cleanup
Only get item schemas once to speed multiple item processing up, and do it during scene bootstrap.
Initial support for parsing a list of pasted workshop URLS and finding the matching items
Disabled saving on NPCVendingMachine_TravellingVendor, may fix entity leak
Update: Adding Pool.FreeUnmanaged overload for MemoryStream
Since Free got changed to accept IPooled only, it allows us to delete a runtime check in the editor env.
Tests: build only in editor, all targets
Wire deployment cancel condition
Feedback: Replacing bikeshedded emptyArray with Array.Empty<T>
Tests: trivial change, so only built Client+Server
Switch from pinging servers via their IPs to pinging the entire server list via 4 queries
merge from mountable_rotation_fix
merge from fix_convar_defaults_server
merge from optimize_prewarm_doors
merge from triggerbase_fix
Converted the isGestureViewmodel field on viewmodel into a new viewmodel type variable, also has a shield type
Fixes bullet casings ejecting from the players camera while a shield is equipped as well as some clothing issues
Temp model
Added a new shield hands layer to the 3p animator that only masks the left arm, just has an idle for now
Hold RMB to block with the shield (only visible in first person right now)
Cannot attack while blocking
Hide the left arm of viewmodels when a shield is active (rotated off screen)
Hide the viewmodel shield while reloading weapons
Let bike driver wield items
Updated third and first person animations for rock paper scissors gesture.
▆▅█▅▌ ▋▊▅▅▉▌▉█▍▊▊▊▉ -> ▇▄█▄
▋▌▋▍▇▌▅▊▄ ▆▅▋▋█▍▄ ▆▍▆▊ ▆▌▉█▅▄▊_▍▊▍▅▌█▍▅ ▋▇▉▊ ▆▅▍▇
▆▉▄ ▋▍▍▋▅ ▍▌█ ▄▄▌▆█▌▇▆ ▆▅▉▇▅▄▇▋▆▇ ▅▋▊ ▄▍▌ ▋▉▌ █▋▇▊▋▉▅▅▇▄▊ ▄▌▋▄ ▌▇▊ ▅▍▋▉▆ █▋▌▄▌ (▍▅▄▉▌▍▌▉▍█ ▋▌▄▌ ▍▋▊▆ ▆ ▄▉▅ ▊▅▉▉▅▍▉▍ ▍▍█▇). ▅▆▍▄▅, ▍▌█▍▌▌▇▍▌, ▉▉▋█▉, ▄▆▌▉▍▍▆, ▌▍▄▍▉▌▇▊▋, ▋▋▊▅▇, ▆▄▅▋▆.
Rock paper scissors gesture anim progress + backups
Wire ground watch, make sure to cut the trap wire when the entity it is attached to is destroyed
Made a simple shield viewmodel, seems to just work as expected as the shield entity is getting the correct OnDeploy/OnHolster client events
Added a shields inventory loadout for testing
Can now use M92 with shields
Can no longer ADS while a shield is equipped
First pass jungle wall texture for testing brick sizes. Doubled wall thickness in kit. Initial blockout of vertical slice jungle wall segment.
Shifting some lighting things around into culling volumes. Both because paper thin walls, but also performance.
Update: Constraining Pool.Free - Step one
* Primary Pool.Free overload now only accepts IPooled types
* Secondary overloads added to work with collections (not restricted to IPooled yet). They all call Clear() on the returned pooled container.
* Pool.FreeList now just pipes to one of Pool.Free secondary overloads (proper cleanup will be done later - there's 800 occurances of FreeList usage)
* Added Pool.FreeUnmanaged as an escape hatch for types that are in the pool but don't implement IPooled interface.
Motivation: If we want to avoid leaking memory and reduce potential of "improperly-recycled" pooled objects, so we need a more controlling API for Pool that allows users to avoid misusing it and calling the wrong API by accident. We'll get there by providing a stricter API that checks for users whether it's legal to use it in a particular way. This means I have to write a bunch of boilerplate (overloads + variations) and clean up all the use cases we have(both the types that might benefit from IPooled and all the API usage points).
Tests: built all targets for scripts in editor. Didn't do any runtime testing as there's only 1 safe functional change (clearing of collection on return to pool).
▌▉█▄▇ ▅▇▉▌ ▋▆▍▍▉▊▌▉▍▅█▋_▉█▌
frontier hatchet updates
- 3p entity set up
- icon set up
- worldmodel set up
- projectile set up
Clean: Nuking SimpleList.cs
Nothing uses it anymore, and it's superseeded by BufferList.
Tests: All targets in editor built succesfully
Update: Replacing SimpleArray uses with BufferList. BufferList also avoids allocations when default-constructed.
There's 2 reasons for this change: they're functionally the same(with a small change for default BufferList), but BufferList offers more. Also, and the primary reason, it allows me to refer to the type at a lower assembly level (Facepunch) so that I can continue making Pool's API more strict.
Tests: checked all "targets" build in Unity, no runtime tests (well, editor runs this code outside of playmode as well, so there's that)
▌▍▅▍▌ ▉▌▄▉ ▋▆▅▌▊▇▍▊▅▊▄▅_▌▆▅
▇▊█ ▋▇▊█▉ ▇▇█▇▅▅▊▇▅▉ ▊▊▄▊▄▌▄▅ ▇█ ▉▍▆▉█▇▉ ▅▄▇▄ ▄▉▋▌▊▍█'▊ ▅▊ ▄▋▆▋█▄▋▉▊▋ (▆▇▍▄▇ ▅▍▍▋▊ █▇▌ █▉▅▇▋█ ▌▊▉▆▌▉ ▅▄▌▄ ▆▋▉▇▊▋▋▊▋█▉▄▉▌█)
Bike Cargoship Parent -> Main
Clipping check doesn't apply to parent objects
Line of sight checks when placing down the wire
▄▉▊▋▄█▅█▊▅▅█▉ ▌▌▊▇▌▆▆▅▅▊▍▊_▅▆▌
Hot air balloon compile fix
subtracting
101159 - sinceLastBlast compile
Update: Inlining PoolCollection::Fill implementation into Pool
In order for us to unify TakeX/FreeX custom methods into a single overload set, we need to unify their constraints. This removes one new T() call from 2 calls in PoolCollectionm which is first step towards removing new() constraint on PoolCollection(and instead preserving it on Pool APIs).
Also left a note about thread safety - luckily right now everything is used in a safe manner