userJarryd Campicancel
reporust_rebootcancel

13,009 Commits over 2,376 Days - 0.23cph!

27 Days Ago
Fixed every impact fx in the deep sea being sand
27 Days Ago
Merge from oven_optim
27 Days Ago
Compile fixes
27 Days Ago
Merge from parent
27 Days Ago
Merge from main
28 Days Ago
Merge from naval_update
28 Days Ago
Make cooking tests editor only for now
28 Days Ago
Merge from naval_update
28 Days Ago
Industrial NRE checks
28 Days Ago
Update tests to better reflect new update flow
28 Days Ago
Cache HasAttachedStorageAdaptor Don't mark items as dirty every update, only when they pass a 5s increment Eliminates most of the MarkDirty calls and brings the 1000 oven test case under the 0.25ms budget some of the time
28 Days Ago
Convert ovens to a persistent work queue, budgeted to 0.25ms by default In the 1000 oven test case this caps out at processing around 40-50 ovens a frame
28 Days Ago
Added quick add paths for creating byproducts (charcoal) and cooking results (cooked meat or frags, sulphur, etc) This skips creating a new item and triggering the MoveToContainer process if there is already a stack of that item that we can stack onto Reorder ConsumeFuel so that the fuel item is only marked dirty once (was happening twice) Takes the worst case oven cycle for 1000 ovens creating a new item in the same frame from 270kb alloc and 18.3ms to 0b alloc and 4.62ms
28 Days Ago
Added debug.spawnOvenStressTest, spawns 1000 ovens with wood and metal ore and turns them on
28 Days Ago
Basic cooking tests, checks smelting ore and cooking food on all ovens
28 Days Ago
Merge from naval_update
28 Days Ago
Fixed tutorial island error
29 Days Ago
Merge from naval_update
29 Days Ago
Added GetMaterialAtPosition to MeshTerrainRoot, hooked up to evaluate when a position is in the deep sea This solves footstep sounds and impact fx on the deep sea islands not working as expected Had to emulate the SetupSplatLookup process from TerrainSplatMap This will be skipped on the server as MeshTerrainRoot is an IClientComponent, which I believe should be fine since we largely use this for fx S2P all islands
29 Days Ago
Fixed GroundWatch not working on small ramps
29 Days Ago
Merge from main Merged PlayerModel.IK.cs and party_hat.prefab automatically
32 Days Ago
Merge from naval_update
32 Days Ago
Merge from main
32 Days Ago
Merge from naval_update/industrial_optim
32 Days Ago
Formatting fixes
32 Days Ago
Rework buffer transfers, all tests now pass
32 Days Ago
Fixed a bunch of tests, buffer transfers still failing
32 Days Ago
Merge from naval_update
32 Days Ago
Added 15 industrial tests to the test suite Covers basic item transfers, splitting, filtering and filter fail/pass IO passthrough scenarios
33 Days Ago
Profiling
33 Days Ago
Parse the conveyor's filters into item/blueprint/category dictionaries for faster lookups Takes 800 filter checks from 1.4ms to 0.12ms
33 Days Ago
Disable pipe shadows at 25% of the cull distance Cuts out a lot of shadow casters on big industrial bases
33 Days Ago
Fixed some allocations
33 Days Ago
Big scary industrial conveyor refactor Main goal here is to try and reduce how many loops are inside loops, as this scales poorly with large item containers (every slot from every input container is iterating over every slot on every output container) Do a single prepass over all of the input items and run them through the conveyor filters, resulting in a single list of items that we can process, then attempt to move them to the output containers Improved GetTotalItemAmount as this was a major time sink when using filters with min/max amounts. Now iterates over the items directly rather than using GetSlots (which triggers another full loop over the container for every slot) Added an IEqualityComparer to ItemDefinition that just compares itemid, should speed things up when comparing ItemDefinitions
34 Days Ago
Wrapped the new time tracking in editor defines
34 Days Ago
TC's now cache their allowed construction items in a ListHashSet for faster checks Not really worth doing in normal circumstances but it seems common to have junk items attempting to transfer into a TC constantly, this saves about 0.01ms on each attempt
34 Days Ago
Added an Input and Output item list that is populated during a conveyor move, allowing us to read and write items faster without having to use GetSlot (which could potentially iterate over the whole container each call) Restructure some of the iterators in IndustrialConveyor.Move to iterate over the item list directly instead of using GetSlot This removes all usages of GetSlot in the conveyor move system which can be called over 3k times in a bad conveyor move Added a shortcut for LookAtIOEnt to resolve what item a storge cotnainer is attached to when holding the wire tool, resolves the multi second freeze in the editor (was faster in builds, but this should still be faster)
34 Days Ago
Merge from main
35 Days Ago
Fix GetUnmountedWaterFactor NRE
35 Days Ago
Still run UpdateCelestials in headless mode (needed to set IsDay and IsNight on the server which things like solar panels use)
35 Days Ago
Merge from naval_update
35 Days Ago
Fixed magnet crane not marked as Can Sleep (I swear I did this last week)
35 Days Ago
Merge from main
35 Days Ago
Merge from naval_update
35 Days Ago
Early return from the DroppedItem underwater check if the attached rigidbody is sleeping (it's unlikely to change submerged state while sleeping)
35 Days Ago
Removed Vis.Entities from the artificial light and temperature calculations for growables, now queries a Grid of light and temperature sources These paths are now completely physics free
35 Days Ago
Merge from relationship_optim
35 Days Ago
Added PersistentObjectWorkQueueListBacked, a new version of PersistentObjectWorkQueue that can be provided with a separate list to iterate over Handy for situations where we don't want to maintain a separate list of objects to iterate over, we can now just provide a list and the work queue will iterate over it Doesn't have Add or Remove methods as it only reads the list Updated RelationshipUpdateQueue to iterate over player list instead of a separate, identical list Added an experimental fast path to UpdateAcquaintancesFor that checks the server occlusion state to see if two players can see each other rather than raycasting Much faster than a raycast, although it will still fall back to that if the server doesn't have occlusion enabled, can be disabled with BasePlayer.allowRelationshipServerOcclusion
35 Days Ago
Move UpdateContacts in RelationshipManager to a PersistentObjectWorkQueue, budgeted to 0.05ms by default (BasePlayer.relationshipUpdateQueueFrameBudgetMs) This used to iterate over every player on the server every 1s so would scale poorly, will now gradually update relationships over time
35 Days Ago
Merge from botcollider_optim