2,815 Commits over 2,011 Days - 0.06cph!
Speed up writing to sv.files.db
More reliable check to see if a mugshot is loaded before displaying on the UI
Some mugshot rotation improvements
Automatically delete mugshots from sv.files.db
FileStorage cache is now backed by a MruDictionary instead of Dictionary (LMK if this breaks stuff in any demos)
Auto-refresh mugshots once in a while
Pooling fixes
Don't render mugshots if the player isn't visible
Only set targetId in death notifications if the killer was a player (previously included NPCs)
▆█▊ ▊▍▋▆▅▆▉▆ ▉▌▆ ▌▌█▉█▊▅ ▍▉▉▉▉ ▄▌▊▄▇▆▋ ▇ ▍▋▍▋
▆▅▋ ▊▅▅▋▇▅█ ▅▅▌▋▌▊ ▊▇ ▍▄▅█-▊▇█▅▅▄▋█ ▇▅▌▋▇▆ (▍█▋█▋▆/▇▊▋█▆▉)
▄██▇▋▊ ▅▄▌▋▅ ▉▄█▄ ▌▍█ ▆▆▌▇█▄█ ▋▍▄ (██▆▆▌ ▉▉▆▋ ▊▊▅▄▉█▇▉ -> ▄█▉▆▇://▅▄▄█▊▊.▄█▍/▄▊▄▉▇█▍▋▉/▌▌▅▆▌/▄▅▇▍/▄▉█)
▉▅▋▅ ▇▋▋▉▋▇█▋ ▇▍▇▆▉▌▆ ▌▋▅ ▆▋▇▄▅█ ▆▊▍▍▇█▅▅▍▍ █▉▆▆▌▆▍ ▅▄▉▅▆▄▉▇▆██
▍▋▊▍ ▄▉▉▉▋▅▇▌ ▌▄ ▌▉▄▉▋▌▍ ▌▄▊ ██▇▆▆▄ ▊▄▋ ▉▅ ▉▄▆ ▉▋█▋▊▊▌▋▍ ▉▇ ▉█▊ █▄█▅▋
Add nexus.redirect - a client command that makes the client switch to a different server, runnable from the server
Disable immediately unloading unused mipmap levels + clarified texture.stats a bit more
Add net.visibilityradiusfaroverride and net.visibilityradiusnearoverride to override the networking radius of entities
Note that this affects everyone on the server so you should never need to change it (but should be useful for demo recording)
Value is specified in grid cells which are currently 32x32m and the default value is 8 (or 256m), values <= 0 will disable the override
Far is the normal view and near is the secondary view (CCTV etc)
Update computer station UI textures because they were NPOT so couldn't be compressed
Experiment with unloading more of the higher resolution mipmaps (if there's pop in let's try increasing budget before reverting)
Enable streaming mipmaps on a bunch of newer deployables
Add texture.streamingBudgetOverride to specify your own budget for streaming textures (instead of the defaults from graphics quality)
Add a bit more stuff to texture.stats
Texture import analyzer highlights deployables to enable streaming mips
rocket_factory_ceiling_support_b needs to be readable (no separate collision mesh)
yolo disable read/write on a ton of meshes that have collision meshes so shouldn't need read/write
enable compression on some textures
adjust some audio import settings (mostly ambience - no decompress on load)
Ignore TerrainFormer folder in texture import analyzer
Disable autofix button in analyzer UIs
Update model import analyzer to point out when a render mesh has R/W enabled but there seems to be a matching collision mesh
▅▅██▌▊▉ █▌▋▆'▌ ▊▆▌▇█ ▊▍▌▆▄ ▍▋▄▉▍▋ ▍█ ▋▍▉▊ █▆ ▉▌▇▊
▌▍▇▋█://█▊▊▆▊.▋▅▌▍▉▄▅▋█.▆▋▋/█▇▍▆▇/▍▋▉▋/▊▇▆▄▆/▊▅_▇▉-▌▇-▉▇▋▊▅▉▄▇▄▌█▄▌.▄▉▄
Include type field in smart alarm notification data
Add targetId and targetName fields to team login and death notifications
Check for long form flag when toggling ExceptionReporter
▊▋▍▇▄▌▇ ▆▉▊▆▇▊▆▋▆▊ ▌▉ ▅▆▋▄▋▍ ▉▋▉▆▉▍▋▍
Refactor MonumentInfo and DungeonInfo to derive from a new LandmarkInfo class
LandmarkInfo is now the source for monument/train tunnel map markers
Mugshot texture loading stuff
Refactoring so PlayerRelationshipInfo can preserve state on the client (and pool properly)
Fix mugshots reloading when not needed
Fix mugshots loading for the wrong player sometimes?
Fix mugshot rendering messing up the player multimesh
Fixing some mugshot file storage logic, add method to delete them on the server
Expanding BaseEntity file storage stuff so it's easier to load stuff without duplicating logic all over the place
Marked the old RequestFileFromServer as deprecated
Code to capture player mugshot images and save them on the server
Delete 95% of the CCTVRender code (RIP)
Recycle the rest for rendering special screenshots
▋▅█▌▌▇█▄▍ ▊▉ ▄▉▅▌▌▅▄▇▅▆ (▆▇▄▄▄▊▍▄▌.▌█▇▄▄ ███ ▆▇▋ ▍▉▋▉▌ ▄▊)
Code review fixes
Remove generator implementation of GetEnumerator in BufferList and ListHashSet (returns boxed enumerator struct instead)
Fix PersistentPlayer so it pools and is cached (used for blueprints)
Get rid of allocations in NetworkQueueList.Clear
Better implementation of GetEnumerator for BufferList<T> and ListHashSet<T> to get rid of enumerator allocations
Genericized List.Compare so it can take advantage of specialized enumerators instead of boxing them
Subtract the changes back to life
Implement NetWrite.Read and NetWrite.ReadByte so demo recording works
Merge main -> random_opt_2
Big update to the in-game news UI so it now shows the entire post, with images and youtube links
Also scrolls much better with the mouse wheel now