3,309 Commits over 945 Days - 0.15cph!
Added VarUInt read & write methods because protobuf serializes strings different than NetRead & NetWrite does
Ensure stream position is correctly offset when writing strings & variable length int
▇▌▄▌ ▍█ ▋▍▇▇▋ ▉ ▄▊▌▅, █▉▋▄▇ ▍▇ ▌▊▇▆ ▌ ▇▅▍ ▇▄▅▇▊▍ ▊▉▌▋ ▅█▉▇ ▍▉▌ ▆█▌ █▆█▌▇█ ▅▅▊▆▍▊▅
██▉ ▊▅▇, ▄██▌▊▌▋▌▇, ▋▅▆▇.▆▇▆▌▊▆ & ▊▇▉▆.▅█▇▄▋▅▍▉█▄▆▆▄▌▌ █▋ █▉▌█▅▊ ▇█▌▆▊▌█▉▍
▍▅▌█▋█ ▊▍▇█▍▄▄▇▊ ▅▋▊▇ ▌▅▄▊ ▆▅▄ █▍▍▆▄▅▊ ▋▋▍▊, ▋▌▋ █▋ ▇▋▍▌▄▉ ▋▇▄
! ▆▊▆ ▊▍█▉ ▇▋▍▋▄▄█ ▌█▇▉▊█ ▍▌▊▇█▋▌, ▇▆▍ ▍▅▉▆ ▌██▄▌█▅█▅▋ ▋▋▆ ▇▄█▋ ▄▄▌▄█▄▌▆▆, ▊▅▄ ▋▄▉█ ▌▉█▍ ▆▊▆ ▇▉▊
Added [ThreadStatic] to staticBuffer
Try to use NetRead and NetWrite directly instead of the staticBuffer when serializing protobuf
Add IStreamReader and IStreamWriter, inherit for NetRead and NetWrite
Move Defines to Rust.Data and rename to NetworkDefines
Update references to account for moved Defines.cs
Fix armored door not being blocked by debris
Increase building block trigger of debris so that wall debris will block building of floors attached to the same point
Merge from main -> trap_optimize
Add `auto_turret_budget_ms` and `gun_trap_budget_ms` to configure the budgeting (default 0.5ms per frame)
Move AutoTurret to PersistantObjectWorkQueue<> (instead of invokes that requeue each frame)
Add `GunTrapScanWorkQueue` to make shotgun traps budgetted to 0.5ms / frame
Register turrets & shotgun traps with their budgeted queues when they are spawned & unregister when destroyed
Change List<> in PersistantObjectWorkQueue to ListHashset<> (incase many entities in the "queue" cause a slowdown)
Iterate with the Array instead of ListHashSet[] because of comment claiming Array[] is 2x faster to iterate than List<> (in mono?)
Optimize shotgun traps by using the TC of the shotgun trap instead of the player it is trying to shoot at
Cache the TC for 3 seconds in shotgun trap (we still check auth normally)
Optimize turrets on the server by caching if there are any un-authed target in range & skip scanning targets if that is the case
Mark auth as dirty when players are removed from auth or come into trigger range while unauthed
Add Action onto TriggerBase for OnEntityEnterTrigger() and OnEntityLeaveTrigger()
▌▇▅ ▅▌▇ ▉▅▉▅ ▆█▄, ▋▇▋▌▌▋ ▅▌▋ █▌▇▋▋▅▇ ▇▊█ ▊▇▋▉▊▄▌▄▆▍ █▄██▄▇▋
▇▄█ ▍█▉▅▊ █▋▉▊ ▇▆▊ ▅█▆▋ ▋▋▉▇█▆▄▌▉ ▄▉▆▅▆ ▇▇▉▌ ▇▋██▋▍▍▍ ▊▋▆▊ ▊█▍▌▊
! ▄▌▋▍▊ ▇▊▊▉▌█ '██▄▌▅-▇▄▉▇-▆▄▊' ▇▉▊▇ ▉▌▇▄▇▆▉▆▉-▌▌▊▇-▌
▋▅▇ ▆▄▌▋▅▄▊▇▆▆▊▉▆▅, ▇▊▉▇▋▌█▍, ▅▆▊▆▅▅▇▍▆▇█▇▆▆▋▅ ▌▅▊▇ ▍▋ ▆▇▆▄▉ ▋▄█▍▇▍▇▍▊
! ▅▌▍█▍▆ ▄▇▅ ▍▌▅▍▇█
merge from main -> global_networked_bases
Reset index of trianglebuffer & indexbuffer when creating geometry buffer
Fix cache button visual defaulting to true even though it is false
Prioritize pinging serers that have never been seen / cached first
Unlock ping DB when playmode stops (so you can debug db in editor)
Use cached ping value to sort servers (since we can't update a struct's ping)
Set default ping of server to cached value
Add 'use cache' button back to server browser
Reimplement code that uses cache vs steam browser
Reimplement cached browser in a much simplier format
Submit single query for ping after cached serverlist is downloaded instead of prioritizing pinging servers that are currently visible on screen
Add method to VirtualScroll that updates items that are visible
Set ping text to '?' every frame until the cache is populated (rather than complicated tasks and callbacks)
Merge from main -> cached_server_browser
Fix SLOD of standard cliff material as well
Change arid cliff lowest quality LOD from `Standard` -> `Rust/Standard` shader
Fix global networking using excessive amounts of bandwidth
▍▆▋██▅▆▄▉▅ █▄█▉▊ (▄▋▊ ▌▍▌▉ ▉▅▍▌▅▄ ▍▋█▆▉▄)
▌▊▇ ▄▉▇▇ ▄▇▇▍█▄ ▉▆▌▌ █▋ ▅▊▄ ▆█ ▋▉█▌▇▅▋ (▊▊▍█ ▅▌▄ ▌▍▊█ ▍▇▌▆▋▄ ▆▌ ▌▇▊▄▊ ▌█ ▌▇▄ ▍▉▊▅▊)
▆▋▄▄ `▅▍▋▉▌▉_▅▅▌▊█▋▇▉▉_▆█▄▊▇▊_▋▍▋▌` ▍ ▄▋▋▋▊█ ▊▄▄▌▄▋ ▋██▋▊▆▌ ▆▊ ▍▅▍▆▅ ▄▋██▄▄
▊▌▉▇ ▇▄▄▍ `▄▆█▋▅▊▇▆▍` ▌ ▄▊▌▊▇▅ ▊▌▉██▍ ▉▊ ▋▄▄▍▍▅▇ ▉▆▌ ▅▇█ ▇▋▉▌▋▌▉▇ ▇▅ ▄█ ▇▊▉▉ ▉▉▅▊ ▌▍▅▉▇▇ (▋▉▉▇▍█ ▄▊▆▄▍▉▊▅▄▇ ▇▌▄█▉█▌▍ ▋▇▄▊▊ ▇▉▍██)
▅█▊ "▊▉▋█▉▍▇▌▌▉▌▉▍▆▉█▍▅▇()" ▇▊▊█▍▍▇▆ ▊▌▆ ▋▊ ▊▋▉ ▍▋▅█▊▅▄▉ ▄▍▅▇▉ ▇▊ ▋█▋▄▄▄▅▌█ ▆▊▊ ▄▉▌▅▍▆▊ ▊▋▋▋▋▆
Enable emmisive on root combiner & branch lights
Fix upgrade gibs & destroy gibs for shipping container being rainbow colored
Merge from main -> global_networked_bases
Fix steam browser stopping query after 10s by returning every server that didn't respond and showing ? ping
(why does steam source query the servers if it already serves all the data from the master server?)
Put all servers that failed to respond to the query into a "Unqueried" list intead of "Unresponsive"
Update global_networked_bases/2021
Disable RendererBatch component on all container skin prefabs
Tool to disable render batching for container skin
Merge from main -> global_networked_bases
Remove LOD2 from stone wall frame
Don't render submeshes without a material (used to use the last material)
Fixes ramps having texture atlas at lower LOD
Fix wood ramp using Standard material instead of Rust/Standard
Move back to manually requesting mipmap of textures from materials (ShaderUtil is editor only)
Add detail layer textures
#CLIENT out material changes
Update global_networked_bases/2021
Change stone wall frame shadow material to shadow material
Add tool to list all prefabs with incorrect shadow material
Move MaterialCache to a separate .cs file
Request the highest mipmap every single texture attached to a material (to handle both standard and blend shaders)
Update global_networked_bases/2021