138,461 Commits over 4,474 Days - 1.29cph!
thickened up X sprays and set O sprays to white
Update: move OrientableLight interpolation invoke from Save to rpc + ondeply
Scheduling invokes won't be safe in MT
Tests: none
Fix hit animation not working
adding for Damian to check
Update: avoid transform call in TravellingVendor.Save when it's following a spline
Tests: none
Supply signal animation updates
Update: move Privelege caching from DisplayingBoxStorage.Save to OnPrivelegeUpdated
We can't have it in Save as it is self-modifying and can call Vis.Entities - lets see how this holds
Tests: none
No longer create pie close action if there isn't a closing command
- Added a fast path for root canvas toggling, that lets us toggle the main menu root canvas without triggering a lot of stuff on every graphic
- Graphic::CacheCanvas walks up and stops at the first enabled canvas instead of doing a nasty GetComponentsInParent, saves ~560KB of GC per menu toggle
- Each main menu page now has a canvas component too
Toggling the menu:
- ~134ms → ~45ms
- GC ~600KB -> 24KB
Update: force TimeZone caching in WipeTimer.ServerInit
While smashing TestMTSave(WipeTimer) I saw it NRE while resolving timezone. Couldn't repro again, but this should make it safe
Tests: none, trivial change
Update: get rid of WipeTimer rounding to second, just pass DateTime from external source
Old version would always have a sporadic fails when serialization test would run across second boundary, this way we can control it in tests
Tests: a bunch of times for hacked version of TestMTSave(WipeTimer) that has 1k serialization tasks
fix double free on pooled array in sculpting
Pooltable:
Show 'turn processing' if the balls are still moving. Have reset game as a second option
Dont show reset game if players are mounted to the pool table
merge from vehicle_emojis
Improved emoji search in chat
- Can search for items with their display name (had to guess their shortname before), works in different languages
- Emoji autocomplete now also works with Contains instead of just StartsWith
Fix car and chassis vehicle items having whitespace in their shortname - its bad and breaks using them as emojis in chat
Changing shortnames is cursed but these are only used for the f1 vehicle tab and I've applied the FreezeItemId tag so the id will stay the same
Update(tests): add various missing TestServer setup and unit testing bypass for entity logic
Tests: ran all TestMTSave, no sporadic failures, except WipeTimer - guess my prev fix didn't work >.>
SoftMask optims:
- Don't bother updating disabled soft masks from OnCanvasHierarchyChanged
- NearestMask cache disabled masks, so we can skip the second walk
SoftMask.OnCanvasHierarchyChanged 30ms -> 0.03ms when opening the main menu
Better snapping.
Can also now snap placement of a new fence to a post of an existing fence.
TryFindNearbySnapPost uses the grid too.
Folder setup and start of initial greyboxing for underground player basement blocks (WIP and continuing)
Merge from render_pipeline_testing
Added missing shader passes back to all main subshaders
Update: made MarketTerminal.Save MT friendly
- get rid of TimeUntil aliases from Entity.proto
- ran protobuf gen
Doesn't need protocol update, as the underlying type/serialization doesn't change
Tests: TestMTSave - all 636 tests pass, though gotta work on cleanup consistency
merge from Increase_spoiled_produce_stacksize
merge from SnowJacketBuff
Addding squirrel asset for test implementations. Added materials, textrures, prefabs, animations and models.
Merge from render_pipeline_testing
Added the shadow caster pass back to the cloth shaders
Update: WipeTimer now returns time rounded to a second
No change for gameplay, but makes serialization tests consistent
Tests: 20 runs of TestMTSave(WipeTimer), all pass
Update(tests): TestMTSave - move protobuf serialization to worker threads to catch more invalid API usages
Revealed 2 failures
Tests: ran all TestMTSave - MarketTerminal (TimeUnitl) and WipeTimer(missmatching stream) failed
Bugfix: avoid Time call in ChickenCoop.Save to make it MT friendly
- added chicken as part of test setup to trigger this path
Tests: TestMTSave pass
Updating m92 viewmodel mesh
Also updated wire slack and snap attraction point game tip to use tokenized binds
Added support for tokenized phrase in settings tooltips, updated deployable snapping tooltip to use [+snapping]
Update: BasePlayer - don't mutate own model state on save
We modify the copy as we send it, and the original value should be modified on every tick, so should be safe
Tests: none, trivial change
Update: make ItemBlueprint.FindBlueprint MT friendly
GetComponent is not thread safe, so caching item->blueprint pairs at init time
Tests: setup TC, made sure it has right upkeep calculated
Added snapping to the keybinds menu
Added a dedicated realmed bind for snapping, used by the wire tool and deployable snapping
Fixed autorun causing issues with wire tools
First pass on adding events to cover apartment and shop usage
Fix for Tooltip references breaking on Jenkins builds
Fixed no domain reload editor topbar button disappearing constantly
merge from defaultbinds_fix