5,880 Commits over 1,584 Days - 0.15cph!
merge from base_occlusion -> main
Fix compile error (even though it's editor only it still can mess up editor if it switches realms)
merge from base_occlusion -> main
Fix formatting of Visibility.cs
merge from main -> base_occlusion
Fix room export tool not writing to the temp directory in the editor
Mark the room exporter (base -> JSON) as editor only
- used so we can run tests on bases without having to spawn the entire base (which is slow)
Disable TCs from room occlusion
- if you hide the TC from the client then you don't know if your authed on the base
- re-enable later once we move auth networking out of the TC itself (we could only network to players authed but then we still need to know if a TC is attached to a building)
Set room occlusion and the admin bypass for it to be saved in editor
- avoid us having to keep turning it on & disable the admin bypass every time we enter play mode but keep the feature disabled by default in standalone builds
Add support for convars to only be saved in the editor
merge from main -> base_occlusion
▌▍ ▉▊▇▇▆▆ ▄▄▍▋▅ ▋▊▌▌▋ ▉▇▋▋▊█ ▉▍▊▊ ▌▅▉▆▉ ▊▉▌▉▆▋█▅▅▊▆▄▍ █▄▌ ▌ ▋█▆▍▌▄ ▇▅▅ █▋ ▉▇▌█▊▅ ▉▅▌ ▆▊▍▅▆ ▊▄▇▇▉█▉▋▄ █▄▄ ▊▋▉ ██▅▇▊▉▌▋▋▇ ▋▍▌▄▉▅█▄▋▆▍▍▋ ▉▍▆ ▌▇██ ▊▉▋▊▇▌▉▊ █▊▌▇▊▍▌▉ ▊▋▉▆▉▍ ▍▉▉▉▊▉ ▇█▋█▆▇
Optimizations
- add spatial grid for rooms (just like network grids) so we don't murder performance networking every room within 32m (because we actually testing this large scale now, not craggy)
- fix every room being checked on the server instead of only the room that the entity was deleted from
Make sure that disabling room occlusion after enabling it cleans everything up
- we want all face definitions to be destroyed after disabling so we can re-initalize everything properly
- if initialization fails, only try once instead of getting stuck trying every frame
Add base occlusion to runtime profiling so we can monitor how much main thread time it spends on room occlusion per frame
Improve the warning if the spatial network grid IDs will overlap the reserved room ids
- change the encoding from hardcoded values to constants (confirmed behavior is identical)
Make room network group IDs static similar to the other reserved values instead of instance field
- first 1024 IDs are for global groups
- last 6.5M IDs reserved for base occlusion
Cleaned up entity face registeration so only BaseEntity calls RoomOcclusionManager.OnFacesRefreshed(entity)
- used to subscribe to both DecayEntity and BuildingBlock so it could work on doors & building blocks
- get rid of needing to register all faces explicitly in SaveRestore & copy paste
Update doors to only call into base occlusion when their open/closed state is changed (via flags) instead of needing to remember 3x different places it called into base occlusion
Cleanup network subscription logic so it all happens in a single place
merge from main -> base_occlusion
▄ ▊▊▌▋▌ ▌▅█▍ ▄▊█▋▇█▋▍▉█▋▆▆█▇▉▇▄▍▄▇▄▅▇▋▌ ▍▋ ▉▌▌▊
▉ ▇▍▊▇▄█ ▊▇▉▇ ▌▋ ▆▊▋▇ ▇▉ ▄▊▍ ▅▅▆ ▍█▇▊▆▍ ▋▋▇ ▇▋ ▄▄█▇▄ ▇▍▇▍▄▉▆▋▍ ▌▋▇▉▋▉▆▋ ▇█▉▄▍ ▅▊▉▄ █▌▌▊▆▍ ▆▄ ▆▄ ▋▅▅▇▆ ▊▋█▆█▆ ▉▌█▇ ▊▄▌ ▄█▌▋█▍ ▅▇▌▆▉▋ ▄▉▉ ▉▉ ▉▆▄▆▇▅▊█ ▄▌▌▄▇ ▇ ▉▍▇▍▌
▋ ▅▆▆▇▇▉▄▍▉▆ ▆▆ ▉▍▍▊▉▆ ▌▅▆▆▇▅▌▄▉▊▇▌▌ ▇▄ ▉▆▍▉▉▄▊▇▊▅▅▇▌▅▊█▉▋▇▇▉
merge from fix_automated_test_game_view -> main
Fix automated test runner not working if the test runner window is open when play mode is entered
- caused by WaitForEndOfFrame() in a coroutine stalling until the game renders the next scene
- instead of chaing every usage of that in the project (and the side effects it may cause) make the test runner window focus game view
▅ ▄▌▍▌█ ▆▍▄▍ ▆▄▋▄ ▉▍ █▍▆▍▉▊▄▅▅▉▅▍▋▇▆▍▇▆▇▅▇█▅▆▇▇
merge from fix_recursive_log -> main
- fix InvalidOperationException from iterating through connections while closing socket
- prevent extra error messages from being logged after a connection is closed as the connection is kicked after any exception
Add tests to prove the threaded logging system is still working with the new fix
Add 10k queued log message cap & prevent exceptions thrown while sending messages to RCON from being logged to RCON itself
- unity already protected against main thread log callback calling invoking the callback recursively but we need extra protection for RCON
▊▊ ▋▊▊▅▅ ▍▄▌▅ ▅▅▆▄▆▄▊ ▋▍ ▋▇▌▅▆▍▇ ▋▋▊▄▍▋ ▇█ ▉▇▌ ▆▇▉▌▆▇▅ ▉▅▄▌ ▇▉▇▄█▄▆ ▋▉ █▊▌▇▆▇▌ ▅█▌ ▌▉▌▅▇██▍ ▄▉▍▊ ▌▆▍█▅▊▌▆▆▅▋▋▇ ▉█▆ ▉▌▉▍▅▇ ▆▇ █▇▍▊ ▄▅▅ ▆▊▋▌▊▇▋▆▅▆ ▅▉▊▋▄ ▌▋▍▆▇▆ ▍▍██▄ ▊▍
merge from fix_editor_logthread_nre -> main
Add try catch to the OutputHandler so if an exception SOMEHOW happens it can't kill the process (since it runs in the finalizer thread)
Fix log thread throwing ObjectDisposedException in editor
- also fix the Task exceptions not being flattened fully
merge from sentry_upload -> main
Re-add the "max 3 uploads per session" logic that got removed accidently
Add missing catch {} to a try statement that only had a finally {} block
Fix HttpContent being double disposed
merge from main -> sentry_upload