5,941 Commits over 1,584 Days - 0.16cph!
merge from analytics_signs -> main
Add "frame number" so we know which frame of a neon sign is being modified
Add analytics for signs being painted
merge from sentry_background_thread_errors -> main
Tag background thread errors as "background thread" so we can filter them in sentry
merge from sentry_background_thread_errors -> main
Client timeout 20m, server timeout 5m
Give background thread errors a larger time window so we can guard more against spam
Add ability to turn off background errors by setting -1 in the manifest (incase it completely breaks)
Add additional rate limiting to background errors
- I expect these can be spammy, so limit to 2 errors per minute
- controlled by manifest so it can be increased if we want
Ensure background thread errors get sent to sentry
- we fixed them being silently dropped last month, this month we collect them
Prevent teammates from using the break-in option to break into their teammate's room
Fix teammates not being able to let themselves out of doors when inside them
- caused by apartment rooms losing their reference to the front door after the restart
- while the owner could still go in and out, the "anyone can let themselves out" wouldn't work
- would only happen if the server restarted after you purchased a room
merge from fix_elevator_snapshot_nre -> main
Fix destroyed elevator floor causing NRE in ElevatorStatic.Save()
merge from fix_crash_uploader_release -> main
Fix crashes from previous updates being uploaded despite not having the sentry tags written
- don't upload old crashes (if we made it past bootstrap but didn't write a crash marker)
- still upload crashes that never made it to bootstrap (since this is before crash marker could be written)
- tag crashes that didn't make it to bootstrap as "bootstrap crashes" so we can see what crashes happened really early
- if we find a bunch of crashes happening before bootstrap we will find a way to include the actual changeset (since we don't read changeset until we get to bootstrap)
Fix attempting to transfer water sources between rooms (sinks)
merge from optimize_blueprint_button -> main
Cherrypick CS
160658
- tick blueprint buttons only when crafting menu is open instead of all the time (even when closed)
merge from base_occlusion -> main
merge from fix_sentry_branch_upload -> main
▍ ▊█▆ ▌█▄▍▆▊▅ ▊▊▋▇▆ ▋█▋▍▊▅ ▆█ ▆▌▍▆▅█ ██▅▅▅▋▉ ▍▊ ▆█▍▊▋▋▄▌▅▋ ▋▋▋▇ ▆▇▋█▄ ▍▄ ▉▌▌▋ ▆▊ ▉█▉ ▉▋▋▋ ▉▉▋ █ ▉▋▆▄▌ █▇▋▊▅ ▍▌▇▇▉ ▄▊ ▋▉▅ ▍█▄▉▇▉ ▅▄ ▍▍▋▊▊▇ ▌▆▊▄ ▊▇ █▍▊█▊▉▆▆▅ ▋▅▌▍
- increase the tail log upload from 100KB -> 250KB
- when uploading crashes without a user ID (super early crashes OR old crashes) then use the current steam id (it's almost certainly going to be the same as when the crash happened)
Fix incorrectly tagging release crashes as staging
- will now upload crashes as "unknown" branch if they are untagged (aka old crashes) instead of tagging everything as staging
- remove "release" tag that was passed through code, instead put the release / staging tag directly into the crash marker
- fix failing to parse for the crash marker if timestamps are enabled in the logs
- output crash marker earlier so early crashes can still be tagged correctly
- fix userid / steamid not being set early enough either
merge from main -> base_occlusion
Fix items sometimes not being transferred to new room when upgrading room
- was skipping over an item once it didn't fit in a container instead of trying to fit the item into every container before skipping over it
- fixed mail not being transferred to new room
- added failsafe so if the item really couldn't be fit into the new room (shouldn't be possible since every room has more space but to be safe) it will transfer to the player standing in lobby
merge from fix_steam_init_error -> main
Fix steam not logging the reason steam failed to start in the editor
- sometimes steam is closed, other times it's outdated and needs to be restarted
merge from optimize_json_garbage -> main
Use AddRange() to add converters instead of foreach and Add() per converter
Fix Hash128 and LayerMask incorrect parsing from breaking the rest of the document
Add tests to prove that the code doesn't allocate (not just that it works)
Fix so ints can read float values again (that's the way it used to work before)
merge from main -> optimize_json_garbage
merge from crash_uploader_error_code -> main
Log HTTP error code to console / logs when the crash fails to upload
merge from main -> base_occlusion
Fix individual edits causing more faces to be marked dirty than needed
Optimize worst case pass of the multiple exterior detection so it doesn't balloon execution time
Ok fine allow buildings to define multiple exteriors
- even though theoretically there can only be a single exterior per base it gets funky in it's current implementation when not all building blocks are handled by base occlusion so you can have separate sections of a base that aren't connected with faces but are both outsides (example: connecting external TC with ramps)
Exclude high walls from room occlusion (since they are always considered outside structures)
Fix bases being able to define multiple outsides of the base
- collapse to a single outside when interior rooms incorrectly are flagged as interior