3,309 Commits over 945 Days - 0.15cph!
merge from analytics_disable_performance_server -> main
Stop performance data from being collected on the server when `performance_analytics` is disabled on the server
- it was disabling flushing, fix it not disabling collection too
merge from main -> full_server_demo_client_reader
merge from fix_analytics_uploader_nre
Fix bulk uploader NRE when no events are submitted
Write length of each packet in output demo data
Fix `ProtocolParser.staticBuffer` being uninitialzied on other threads when not writing network data
- surprised this didn't throw errors before
Implement writing Protobuf header of demos for the final merged player demo
Merge from main -> full_server_demo_client_reader
Merge from monument_scenes -> main
- enable with `monument_scenes` convar (default: false)
Remove all [MapGeneration] component since it's unused
- in future we are going to remove components from map gen scene in a different way
merge from main -> monument_scenes
merge from fix_cached_browser_query_parallel -> main
Switch cached browser queries to run in sequence instead of by parallel
- add `cached_browser_parallel` convar (default: false) to modify this behavior
- randomly scramble the order of the queries
merge from fix_steamworks_gcs -> main
Update Facepunch.Streamworks with fixes that reduce allocations when querying large amount of servers from steam
Fix serverlist query allocating a large amount of memory when a large amount of servers are pending
Change codegen to make interface classes partial
Codegen
Add ISteamMatchmakingServers.HasServerResponded() to partial class instead
Automatically get the field offset of gameserveritem_t.HasSuccessfulResponse instead of hardcoding it
Merge from fix_serverlist_query_allocations -> master
Put all servers that failed to respond to the query into a "Unqueried" list intead of "Unresponsive"
Fix IpList queries not cancelling when disposed
Merge from temp_browser_fix -> master
- make IPList disposable
- list Unresponsive vs Unqueried servers seperately)
Merge from analytics_event_record_overloads -> main
Tests showed missing ushort overload
Expand tests to cover all overloads of EventRecord.AddField()
Add overloads without any key for CSV
Change existing overloads for BasePlayer, BaseEntity, etc to use the new 2 string key overloads instead of new EventRecordField(key1,key2)
Add a bunch of overloads that take two keys and concat them later with zstring instead of having to manually add new EventRecordField( key1, key2 )
Merge from gizmo_light_occludee_nre
Fix NRE when gizmos are enabled from LightOccludee.cs
Merge from analytics_zstring -> main
Fix compile error from merge
Merge from main -> analytics_zstring
merge from runtime_profiling_disable_pooling -> main
Merge from main -> runtime_profiling_disable_pooling
Actually test that the values of each field of the JSON or CSV value match to confirm all the serialization and escaping is correct
Ensure escaping handles both JSON and CSV rules differently (assuming the CSV is always comma seperated)
Simplify overloads for byte,short,etc -> long
Mark AddField(string,char) as unsupported instead of silently casting to int
Escape all CSV columns with double quotes
Added tests to confirm serialization works
Fix DateTime formatting having to use 'O' instead of 'o'
Switch WebAPI serialization using ZStringWriter instead of Utf8ValueStringBuilder
Switch from StreamWriter to Utf8ValueStringBuilder
- ensure the struct is passed by ref
- Clear() instead of creating a new one for each upload
Remove TMP extension overwrites because our TMP is outdated and it won't compile
merge from main -> monument_scenes
Automatically get the field offset of gameserveritem_t.HasSuccessfulResponse instead of hardcoding it
Change codegen to make interface classes partial
Codegen
Add ISteamMatchmakingServers.HasServerResponded() to partial class instead
Fix serverlist query allocating a large amount of memory when a large amount of servers are pending
Merge from main -> monument_scenes
Merge from hot_reload_unity -> main
Merge from hot_reload_unity -> main
Add hotreload package manually since specifying the package link requires a git client on PC