244,189 Commits over 3,898 Days - 2.61cph!
Add `MaxItemsInUse` to pool
- lets you know the maximum amount of items taken from the pool at once
Add `reset_max_pool_counter` command to reset the maximum item counter per pool
- allows you to reset the pool count incase it gets set to a really high value during 24hr window
Particle sprite alignment mode
Created whitelist system to allow only certain vehicles to be accepted in an elevator
Range check UpdateMesh on the C# side instead so the user knows they fucked it
Allow vehicles to be parented to static elevators. Primarily affecting bikes, snowmobiles etc
exported wolf run hit 3 rm animation
Fix error when startup scene is set but not immediately recognized
Fixed ruin wall caps to reduce overhand and improve blending
added some more convar helper functions for ragdoll testing
Message and remove toast if the download has been cancelled
Fix ambient light hanging around and stomping
Do the same for UpdateMeshShape because this is likely where the crash is coming from (grubs)
Check BVH indexing outside of vertex list, if this is still getting hit then something else is at fault
Improved AO darkening on flat surfaces with narrow camera angles
ditto
Merge branch 'master' of sbox
Update: Making Pool.Free capable of "deep freeing"
Motivation: Since we're getting rid of custom "FreeList" calls, then we should also remove FreeListAndItems, the last custom func in the "Free" set.
- Collections-related Free overload now can deep-free - calling Free on all elements of a collection.
- Marked FreeListAndItems as obsolete (with error) and piped it over to Free overload
- Updated 4 callsites of FreeListAndItems to use Free(T, true) instead
Tests: built all targets.
Bike Cargoship Parent -> Main
Option to stop unity play mode on completion.
Option to automatically open the render output root folder in explorer/finder when batch rendering has finished.
User definable output fulder name.
Added a context menu to open render folder.
Actually use the new ByteStream
Update: Further constraining Pool - Step 3
Now that all usecases of Pool's API have been redirected to new methods, I can further constrain and annotate the API.
- Further constrained all container-like Free overloads to only accept ref-types with default ctor and IPooled interface
- Marked FreeList<T> as obsolete (with errors) and piped it into FreeUnmanaged overload (this is dangerous/leaky, but I've updated all existing calls to Free/FreeList)
- Marked ClearList as obsolete (with errors) - also inlined it's logic at the only callsite in the project
- Removed Clear call from GetList, since now we always clear lists via overloads
- Removed checks from main Free overload
Tests: built all targets. No runtime tests. Ran around on CraggyIsland in 2 player multiplayer, did minor spawning of items, constructions, shooting, player damage.
Possible fix for queued messages not sending
Add download progress notice for cloud assets in editor, Facepunch/sbox-issues#5639
https://files.facepunch.com/solw/2024/July/23_15-25-OverduePekingese.png
cleaned up some ragdoll-specific code in the player we get for free with it being a mountable
Automated lighting config can now be enabled/disabled at batch and individual item levels.
Put text area for URL pasting at the top of the inspector area.
Update: Replacing all cases of Pool.FreeList - non-controversial cases
This modifies the remaining(after previous 2 unsafe submissions) set of cases where we had FreeList(292 files) - they all either fall into FreeUnmanaged(don't implement IPooled) or Free(implements IPooled). The replacement has been done by constraining FreeList<T> with T : IPooled first, this revealed ~560 build errors which got fixed with FreeUnmanaged. Then all the remaining FreeLists that weren't producing an error should've been replaced with Free calls.
Tests: built all targets in Unity. Ran around on CraggyIsland in 2 player multiplayer (built a tiny house), checked bullet decals spawning/despawning properly.
Added Different Food Cache Variants
Basic Prefab Setup for the other Food Cache Variants
Added Materials, Textures, Colliders, FBX's For Food Cache Variants
Setup Food Cache Variants LODS and Colliders
Automate lighting group toggling for each item in the batch render process.
Scripts for configuring and enabling/disabling per-item lighting rigs.
Add Scene.GetAllComponents( Type ) overload
Assert and bail when trying to set physics body to invalid transform
Switched from showing `KK` -> `M` for millions and `B` for billions
Adding `--raw` to `print_memory` will print out the raw number counts instead of rounding them to thousands, millions or billions
Update: Migration to "unsafe" FreeUnmanaged - Interface Code
This CL contains all cases where we call FreeUnmanaged with T : interface - this is dangerous because we don't know whether T is IPooled or not. If/when in the future we make FreeUnmanaged to skip invoking OnPoolEnter, this will lead to leaks/bugs.
Tests: Built all targets.
Fix Facepunch/sbox-issues#5896
Moved the oil rig prevent building volumes under the gameobject holding the MonumentInfo, so GetMonument does not return null and deploy volumes ignoring monument can work properly
This fixes tin can alarms not deployable on oil rigs
Also fixed the BBQ sitting in the water following the recent missing prefab fix
S2P
Update: Migration to "unsafe" usage of FreeUnmanaged - Generic Code
These cases are part of generic code that either provides containers/algos for other parts of logic or part of currently-dead code. They're unsafe because if they start getting used with T : IPooled, then in the future if/when we change Unmanaged to not check IPooled it might leak/bug out.
Tests: Built all targets.
Prefab instances must be updated to have at least the tags specified in their prefab (Fixes Facepunch/sbox-issues#5729)
Merge from gameplay_analytics_convar -> main
Don't download package dlls
Compile package on download
Ask for confirmation before deleting animation w/ right click
Added .Copy() functions to Tile and Layer classes
TilesetToolInspector NRE fix
Added Context Menu to TilesetLayerControl
https://files.facepunch.com/CarsonKompon/2024/July/23_07-52-ImperfectAmphibian.mp4
Fix TilesetLayerListControl Height
Create TilesetSceneObject for drawing tiles in a single Graphics.Draw call.
Replace Delete IconButton with Lock Button.
https://files.facepunch.com/CarsonKompon/2024/July/23_08-49-GrowingMastiff.png
Fix NRE when opening PublishPage directly
Tweaked and relaxed the not-inside checks to fix invalid placements on slopes
Added Warning to Publishing Wizard telling you which issues need to be resolved in order to upload. Don't allow upload if startup scene is not set or is set and does not exist.
https://files.facepunch.com/CarsonKompon/2024/July/23_07-24-LovablePaintedladybutterfly.png
Not deployable on harbor swing bridge and containers
- Changed the swing bridge layer from 'World' to 'Vehicle Large'
- Added a prevent building volume to the containers
Update: New CodeGenerator for Pool.FreeUnmanaged<MemoryStream> change
* CodeGenerator built with a3cd77f3 from FreeList-Depr branch
* This replaces all uses of Pool.FreeMemoryStream in Rust.Data/generated/ProtocolBuffers.Serializer.cs
Tests: built all targets in editor.
Removed some spam now I've tracked down issues.