2,970 Commits over 578 Days - 0.21cph!
Fix modded and hapis vending machines only allowing one user to interact with them at a time
Fix boomerang occasionally causing an NRE when attempting to create its world model. Happens if the entity was just destroyed recently before the projectile attempts to stick. (was never an issue clientside)
Scale all damage types rather than bothering with an index
▍▇▉▉█▍▋▆ ▄▍ █▊▇▄▅
█▇▆▇▌ ▋▆▍▊▄ ▍█ ▍▆▇ █▌ ▉▄▋▆▍, ██▆ ▅▆ █▋▅▊ ▉▄ ▉▇▉▊
Route Boomerang catch code through modelstate - like it always should've been
Allow sending sync vars to specific players
Correct send info from client -> server
Turn packing off by default (this is so the server can send packets to different endpoints, eg player x, or y)
Protobuf support for sync vars
Throw error if too many sync vars are defined
Developer logging and disconnect/kick for incorrect replications on both client/server
Some fixes for client authoritative queue packing
Seperate client and server packing queues due to listen servers messing everything up
Client now uses packed sending
Cleanup
Batching system when sending packed sync vars. If all packed syncvars require a larger bitmask then split it over multiple send cycles
Swap syncvar system over to using bytes rather than ushorts. We will never reach max 255 per entity as the current queue limit is 32 (due to the bitmask), even if we split the queue its fine
Server receive packed sync var methods
naval_update ➡️ scientist_rhib
██▌▌█▆██▅_▊▄▉▊▍▆▌▍_█▉▇▆▌▍_▋▋▅ -> ▆▆▇▌
▌▉▋▅▅▊▄▍▌▉ ▌▅ ▊█▅▄▊▊ █▅ ▌▄█▋█ ▆▊█▉█▄ █▅ ▉▍█▌▋▊▄▍ ▆██▆▄▇
Fixed broken terrain setup
Ensured boomerang return arc is more relative to throw direction rather than world direction.
Better boomerang behaviour when thrown straight upwards
Prevent dropped boomerang from slipping behind entities
Ensure boomerang impact effects are always played at the same place
Don't bother trying to handle bones on the server - it never matches
Ensure child classes of SyncVar are picked up in SyncVar Codegen
Initial profiling pass. Virtually no memory overhead for send/receive, and very little for the queue (pooled)
Fix non packed syncvars attempting to use the cheap int ids used with regular packed sync vars (will try and incorporate this before release)
Locally cache a reference to queue sending action for each entity that needs it - use that for invoke repeating and cancel invoke
Cleanup start/stop queue methods
Return hashset to the pool on stop
Conditional sync vars now force sending.
We use force here due to memory. onditionals could be added to the queue for specific values, and then by the time the queue processes it the value may have changed.
Invoking force prevents us from having to maintain a dictionary of values for every entity
Server -> Client Syncvars properly syncing up via a fixed repeating queue
Cancel repeating invoke on entity destroy
Bitmask setup as a uint - 32 sync vars max per class
▋▌▄▍▊▋▇▄▆_▆▇▉_▇▋▆▋▊▆▌_▄▇▇▉█▅▄▋▅ -> ▇▋▉▍
▆▅▋▅▅▊▋▉ ▇▉▅▇▄▆▍▇▄▍▌, ██ ▉▊▋▆▋▉▋ ▊▉▍▆▆█
High quality compression settings
Made waterworld for testing
Remade is broken icon
Old one was looking super low res with higher monitor resolutions
▆▊▊▇▇█▅█▊_▊▆█_▇▇▋▊▋▇▊_▊▇▆▍▊▋▅▄▆ ➡️ ▍█▍▄
▊▋▉▋ ▄▋▌▍▆▉▄▄▇ ▋▊▋█▉ ▉█▍▉ ▇▊ █▆█ █▅▄▌▇▉ ▅▌▇▊▍▍▆ ▆█▉▉▋. ▉▉▆ ▄▌▄▉▊▋▉ ▅▇ ▌▇▌ ▇▇▌▆ ▊▋█▅ ▌▆▄▉ ▉▆▆ ▉▍▌▌ ▌▊▆█▆▄ ▆▊▌▊▋▄.
▋▊▅▍▌▉▇▍▄▄ █▇ ▋▋█▄▇▉▄▅ ▉▍█ ▅▅▍▊▅▇▄ ▊▉▅▆▇ ▍▇▇█▍ ▉▍ ▌▌▅▌▊, █▉▆▆▆ ▉▊ █▋ ▆▄▋▌▍▆▉ ▍▇▍▆ ██ ▉▊▄▅▅▉.
Ensure jungle waterhole is not a viable crash site for the helicopter
Ensure all Lakes/Oasis don't allow heli crash
MonumentInfo 'AllowPatrolHeliCrash' is set to default to false - prevents this happeneing in the future
Some minor fixes
Experimenting with different queue implementation
▋▋▇█▌▉▍▆▋▇▋▍█ ▄▇▊ ▊▍▉ ▆█ ▋▍▉▋ ▅▋▌▄▆▊▉
▋█▌▊▇▊▇ ▇▉▅ ▆▆▆▉▉▉▇█▇██▉▋▍▋▋▋▊ ▌▄▆▉▊▅▆▍▆▊ ▇▄ ▊▆ ▋▇▉ ▋▆▆▊ ▅▉▉ ▍▅▅▅▋▍▌▊▍▊▉
boomerang_demo_timing_fix -> main