134,110 Commits over 4,262 Days - 1.31cph!
Bugfix: Add missing Native collection disposal in GamePhysics
Audited all of GamePhysics, looks to be the only cases that slipped in
Tests: unit tests + built a boat with tickmode 1
Optim: use persistent buffers for TriggerParent::RunCustomJobsQueue
- codegen
Tests: with tickmode 1 - built a boat, jumped on-off
▆▋▅█▅█ █▌█▆█ ▇▊ ▍▌▌▌▊▇▅▆▋ ▊▆█▋ ▄▋ ▋▅▍▅▍▆
exported latest paintaball gun vm anims
▉▅▌ ▉▄▉█ ▇▇▌▌▇ █▆ ▉▆▄▄▄▊ ▄▉▄▄▉ ▍▇ ▅▆▌▉▋▇▄▋ ▉▍▅ ▉▌▅▊▅ ▅▌▄ ▆▊▄▆▆▄ ▆▍▅▍▄
merge from fix_containerioentity_item_syncing -> main
Fixed ContainerIOEntities not syncing inventories with item when picked up
Clean: rip out tickmode 1 and 2, rename Jobs mode as tickmode 1
- codegen
Out of all versions it's fastest, so only going to continue with it vs baseline 0
Tests: compiles
Reintroduced inventory.quickcraftdelay
This prevents you from spam clicking a quick craft button if the menu has recently refreshed, preventing misclicks.
Added a menu item, so its adjustable not just with a convar
main -> quick_craft_improvements
Flame turret code cleanup
▇▄▅▍▄ █▉▌█ █▍▅▅▅▌▍▄▌_▆▊▍▍▌_▆▉▄▊_▍▋
▌▋█▊▊▉ ▄▆▇▄ ▆▇ █▉▅▆▊▅▆▆ ▌▋ ▊▍██ ▌▇ █▅▋ ▇█▆▉▅ █▇ ▅▊▉▋▌█▍▌ ▇▅▍▍▉▊▍█▋▅
- ▄▉▆▆▋▋▌▆▇▍ ▍▆▄ ▍▌ ▆▄▉▊ ▄▌▆▍▊ ▄▋'██ ▉▅▇▍ ██▅▍▅▌▍▌▌ ▉▅▄▍ ▅▄▍▅▇ ▉█▋▊▆▌▉ ▊▆▄ ▆█▊▅▉▍ ▋▉▌▌▅
merge from linerenderer_lod_fix
Fixed RendererLOD not working with line renderers, HasValidMesh was returning false all the time
Fixes invisible string lights wires
changes on salvaged axe deploy sound
Only use the nearest planeFitPoint to the shore when determining if beached or not
CurrentThrust uses the Anchored bool not list traversal of anchors
setup paintball viewmodel prefab with skinning mesh render on meshes and culling set to always animate
merge from spacestation_storepages (new space station building skin video to store ui prefabs)
updated space station building skin video added to store prefabs
Do the same for the death screen, button is hidden when deep sea is closed
Always show the buttons if we are in the deep sea, even if closed
Only show the deep sea toggle map button if the deep sea is open
Fixed PatrolHelicopter.UpdateEffects NRE when entering/leaving deep sea with patrol heli active
The "Follow player" map button now automatically switches to the correct view (deepsea/mainland)
Merge: from triggerparentdelayedexit_optim
- Bugfix: properly cleanup TriggerParent and TriggerParentDelayedExit to avoid invalid invokes running
Tests: built & finished a boat, jumped around while moving, put it into edit, finished, jumped around - no errors, no extra invokes
Bugfix: properly clean-up TriggerParent and TriggerParentDelayedExit when it gets disabled
Reimplements intents of `139965`.
Tests: built & finished a boat, jumped around while moving, put it into edit, finished, jumped around - no errors, no extra invokes
Merge: from triggerparentdelayedexit_optim
- Bugfix: mitigate double trigger exit call on TriggerParent
- Bugfix: TriggerParentDelayedExit leaving invalid invokes when editing already existing boat
Tests: built a boat, spawned a player on it, edited - no more errors, no extra invokes running
Undo of Undo:
139927 (merge: from triggerparentdelayedexit_optim)
Will apply the fixes on top with merge
Bugfix: TriggerParentDelayedExit - skip entity-delay logic when trigger gets disabled
This left invalid invokes running when editing existing player boat, inflating the perf cost
Tests: edited existing boat, checked profiler - saw no perf samples gor persistent queue
(WIP) Large refactor: Make BaseEntity responsible for calling StartMotion / StopMotion with (potentially) a single array of numbers to mitigate spikes when large entities set into motion.
Bugfix: early out when double-remove happens
Not sure why yet, but saw the same with double-add before, so going to replicate. Also noticed that we can be tracked, but have null-entitycontents, which leads to wasted Invokes, adding overhead - checking
Tests: built boat, spawned npc, went to edit mode - no more errors
Fixed slim gap in half wall hard side
Added brutalist skin roof top line mesh and conditional prefabs
Flagged steering wheel lock model and effects as dynamic
Make cooking tests editor only for now
Update tests to better reflect new update flow
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
Split Autoturret into multiple work queues:
Ammo,
Scan,
Tick
Keep Aiming/Rotating code in the 66hz loop
Move TargetAquisition/Thinking/Firing to a 10hz work queue scheduling loop
Around a 0.3ms in improvement (in spikes) on idle with 500 turrets.
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
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
Split off autoturret ammo updating into its own queue