201,435 Commits over 4,171 Days - 2.01cph!
Commit bunch of stuff
- setup faces & edges when setting up entity links (edges are essentially groups of entity links)
- add 'printfaces' command to debug what faces are closest and what edges are considered connected
- after a "bit" of trial and error grab the old "CalculateAngle()" method from previous hackweek and rewrite it
- be greedy and recalculate all closest faces whenever links change (instead of being smart with caching, it's a hackweek)
- all that should be left is debugging why certain faces don't want to consider themselves connection candidates
▉▉▅▊▌ ▍▌▌▄ ▇▅▋_▍▊▌_▊▍▄▆▅▋
Improvised walkways more meshes
▍▄▋▉▊ ▉▊▇▇▉█▋█▄▇▉ & ▌▍▅▆▄▅█▍ ▊▋▅█▆
work around crash when undoing changes on Sky Dome when playing
Clean: ServerOcclusionJobs.Algorithm uses int3 instead of SubGrid
Simplifies the code a bit
Tests: ran unit tests
Clean: get rid of non-burst CalculatePathBetweenGrids
- Also removed obsolete tests
We've been using burst version for a bit, and with current fixes it balooned to too many lines of code
Tests: ran unit tests
Missile Tiki Torch - Added textures, updated model, added gibs, colliders, LODs, Icon, wind shader, sounds, tweaked lights and fire
https://files.facepunch.com/mauroavalos/1b1311b1/13_15-17-UntimelyCuttlefish.mp4
Bug fixes following Phrase english field set to non serialized
saving bunker blockout wip
added model, materials and textures for charity plushie 2 and 3
Added custom wooden door for farm barge kiosk (mesh still WIP and not merged)
Bugfix: apply same neighbour occlusion fix to jobs
Perf tests of 100k paths show degradation (serial +25%, parallel +52%), but perf tests for 10k baseplayer occlusion show negligeble impact (serial -9%, parallel +1%).
Tests: occlusion unit tests pass
Bugfix: reimplement occlusion neighbour logic in non-burst flow
- Added anothed optim todo now that we have axis-count-specific neighbour checks
This partially fixes the failing test (it still fails since now it trips up in burst version)
Tests: ran unit tests
▍▋▆▆▇▋█▋ ▆▇▄▆▆▄▌▍, ▇██▉▋ ▄▅▆▅▊▊
Update: Re-enable sorted pair occlusiuon visibility caching
Tests: none, I know it's borked
Merge: from baseplayer_serverupdateparallel
Prototype crosshair editor section in the options menu, lets you configure your crosshair with a live preview:
https://files.facepunch.com/cipeaX/2025/August/13_16-47-NiftyUlyssesbutterfly.mp4
Update: disable bidirectional occlusion caching for now
- Left a couple optim/safety todos
This fixes the batch vs serial baseplayer occlusion consistency test, but one CantSee fails as expected. Going to fix it in a child branch, as that currently blocks more optims.
Tests: ran relevant unit tests
prison update, prison barge made into prefab
Moved files around and renamed some classes
Added LocalizationToken attribute, use that everywhere instead. Much easier
LocalizeText use the new localization drawer
Removed its English field
Added a warning saying its obsolete
RustTextEditor and PhraseDrawer share the same drawing code
Phrase adding flow
Split crude profiler and memory tally into separate files as they should
- Add more ConVars and explainations to indirect instancing
- Disable indirect instancing by default
- Disable debug info by default
- Fix multiple NREs when returning to the main menu
- Add assertions to catch use after free with the crude profiler / memory tally
Backup of repurposed blood impacts from snowball impacts
Holding a lit torch provides some warmth, comfort, and slowly dries wetness
https://files.facepunch.com/cipeaX/2025/August/13_13-59-NeglectedGreatargus.mp4
Starting the blockout again from scratch since my PC bluescreened
Added exact match to PhraseSearchWindow and improved performance
fix_server_browser_missing_servers -> main
Check for AVX2 support instead of FMA because Burst won't compile for FMA specifically.
Check for AVX2 support instead of FMA because Burst won't compile for FMA specifically.
Instanced snow tiles based on terrain maps with simple displacement
English field of phrases is now non serialized, removed English from RustText
Added a button on PhraseDrawer to edit a phrase, opens a window that will amend changes to the json file directly
Phrases update now only collect phrases declared in code
tutorial_mission_reset_nre_fix -> main
Ensure logic still works if the skipped mission was the active mission
tutorial_mission_reset_nre_fix -> main
Dont serialize null missions
Dont serialize default state missions