138,442 Commits over 4,474 Days - 1.29cph!
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
Fixed bind_default not being bind realms aware (fixes +prevskin and +nextskin not bound by default)
Added some visual electric cables in airfield tower to display current flow to fuseboxes, computers
airfield S2P
Added information sign in airfield tower to explain the computers drop logic
set up material randomiser for spray
Hooked up testing patrol path
Update walk states
Dolly edit context menus, clean up transitions, a bunch of ux improvements
New LIvestockAnimal class, Cow now derives from that
Merge from skin_randomiser
Added support for builtin skins to have a random selection of materials
Exposed as MaterialRandomSet, stores an array of material arrays
Randomised based on world position so it should consistent between clients
Add gradients for rust utk, add them to timeline/options panel
Merge from attachment_fx_fix
Refactor ItemModSound to apply it's sounds client side based on UI drag/drop as opposed to after the fact on the server side
Fixes attachment equip/unequip sounds being audible by other players - no other item movement logic in the inventory causes sounds like this
Also saves a message being sent from the server every time an attachment is equipped so a mild bandwidth improvement as well
Fix puppets not compiling in client-only mode
merge from shield on back
Turn shield on back into a bind
merge from shield_on_back