4,179 Commits over 1,157 Days - 0.15cph!
Add buoyancy point to fix buoyant dropped items
Added ability for items to inherit the player's rotation (so backpacks always face away from the player when dropped)
Add `buoyancy` option to WorldModel that will add Buoyancy script and assign the rigidbody
Switch RendererLOD to LodGroup for smallbackpack worldmodel
Fix empty backpack not accepted in backpack slot
PLay zipper sound when backpack is dropped but not quite working
Add yellow & orange variants of small backpack (via different textures)
Add zipper sound when dropping backpack
Allow empty backpacks inside normal inventory & chests
Add blue backpack icon the backpack item (instead of saddle bag placeholder)
Add backpack button to drop backpack on the '~' key (backquote)
Must hold button for >0.5s
Change backpack to resizable loot panel (from generic)
Change test backpack size to 24
Cherrypick
85726 (water NRE in editor)
Don't UpdateRenderTarget when the editor is paused (throws NREs)
Reimplement inventory slot for backpack
Change backpack container to a dedicated slot for the backpack instead of the contents of the backpack
Merge from hackweek_backpacks -> hackweek_backpacks_2
Increase stacksizes of water electric components to normalize with increases when durability was removed
Water pump 1 -> 3
Water purifier 1 -> 3
Fluid switch 1 -> 5
Fix so it works when you are making straight connections with no points in between
When disconnecting wires & industrial pipes it will resume the pipe from it's last position, allowing you to reconnect
Merge from global_networked_bases -> aux2
Merge from global_networked_bases -> aux2
Fix instanced meshes with 0 count writing 0 index & the culling system reading "0-700k" as the range for that mesh
Change `sliceIndexes` from a uint to a struct that has `startIndex` and `length` instead of reading the next index
Rename `sliceIndexes` -> `renderSlices`
Rename `sliceLengths` -> `sliceCounts`
Reconvert building blocks for instanced rendering
Mark roofs & windows as "global networked" (again?)
Start removing instanced rendering configs from non building block entities
Move culling mesh counts to GPUCulling class
Remove all workshop skin support since it is causing issues & we can do it properly later
Change test_instanced_culling to spawn prefabs in a predetermined grid shape to identify patterns of meshes that fail to display / disappear
Increase gc.buffer default to 4096 in the editor so big maps don't take forever to load
Update DrawCall buffer from CPU every frame for stability
Fix typo in GPUBuffer<> wrapper
Refactor & organize computebuffers with GpuBuffer<T> wrapper to ensure type safety & standardize the way computebuffers are expanded & created
Always clear the full memory of a ComputeBuffer when it is created
Default copy the existing ComputeBuffer over to the new one when expanding it
Write the entire DrawCall array to the ComputeBuffer when it expands
Some more cleanup
Turns out the fix for clearing buffers somehow got undone which explains all the strange behavior I was seeing
Write IndirectArgs inside a separate compute shader
Fix submeshes not having their indirect args properly offset
Refactor to clean up compute shaders
Clear temp buffer before culling
Adding some debug while chasing down building blocks being rendered with the wrong mesh
Fix flickering by using a separate buffer in the middle of culling & clearing separate buffer with a separate compute shader
Small refactoring of compute shaders
Cherrypick
85500 &
85501 (2021 compile fixes & remove BeginWrite)
Define ComputeBuffer mode in seperate class
Remove `BeginWrite()` and `EndWrite()` because it magically doesn't work and the one ComputeBuffer still using it is pretty small anyways
Update global_networked_bases/2021
Merge gpu_culling into global_networked_bases
Copy original computebuffer when expanding cells
Handle meshes that don't have a shadow proxy
Copy paste LOD scaling back when zooming in & based on "Object Quality" slider
Cull meshes based on camera's frustum & cull shadows based on the "sun's frustum"
Store bools in bit flags inside culling GPU data
Culling shader actually works now!
Fix errors when deleting meshes (related to syncing data to the gpu)
Although culling is completely incorrect, it writes to IndirectArgs correctly inside the computeshader & renders some parts of the base correct
Checkin before I break anything
Grab initial attempt at gpu culling from a shelf
Rename all instanced debug commands & remove redundant ones
Reimplement debugging commands with the new class structure & cell allocator
Merge from global_networked_bases -> aux2
Re-enable burst on culling jobs
Merge from global_networked_bases -> aux2
Fix RendererArray having initial capacity of 32k instead of 512 (typo) causing other arrays not to be resized alongside it
Fix DrawCallArray not resizing immediately after adding draw call
Fix IndirectArgs not scaling to 5x the size of the draw calls (for 5 uint each draw call)
Merge from global_networked_bases -> aux2