5,949 Commits over 4,079 Days - 0.06cph!
Facepunch.System project automatically includes all its cs files (like the other plugins)
Massively improved InvokeHandler hashing
Fixed OSX / Linux / Win32 debug builds not uploading to Steam
Changed InvokeHandler times from AoS to SoA (performance)
Log game object name when encountering SkinnedMeshCollision without SkinnedMeshCollider (RUST-1645)
Fixed metal chest plate rig in prefab (RUST-1637)
Added OpenGL core to Windows (for asset bundles)
Fixed RustBuilder not building all all platforms as debug build
Fixed metal chest plate (sometimes?) being invisible (RUST-1637)
Added BufferList to Rust.Global (list that exposes its backing array for fast iteration)
Optimized InvokeHandler and UpdateHandler by reducing their iteration overhead
ListHashSet and ListDictionary use BufferList and take an initial capacity in their constructor
Fixed player collision corruption on die / respawn cycle (RUST-1642)
Added UpdateHandler and UpdateBehaviour (offer DeltaUpdate that can efficiently sleep for x seconds)
Optimized LightEx using DeltaUpdate (update rate now decreases smoothly with distance from camera)
Fixed game object creation error in editor when stopping game
Some invoke handler optimizations
Stripped a missing script from UI scene (console input field)
Stripped a missing camera component from some nested cameras
Fixed a bunch of missing script behaviours (RUST-1633 and RUST-1628)
Optimized sound / particle parent disconnects
Added InvokeRandomized (like InvokeRepeating but randomizes the interval on every consecutive call)
Replaced Facepunch.Tick with InvokeHandler calls for now (perf, especially when removing)
Forcefully refresh terrain collider after setting the height map (fixes raycast issues with terrain)
Removed player model convars (exploitable)
TrackIR convars are no longer admin-only
Fixed extinguish sometimes being called twice on fire / water entities
Added pooling support to loot containers and collectables
Profiler sample around Protobuf.Entity.Deserialize
Group profiler by entity name in GroupDestroy
Another ArgumentOutOfRangeException
Stripped Mesh.MarkDynamic entirely because it's retarded
Fixed rare ArgumentOutOfRangeException in InvokeHandler
Merge from invoke_handler
Fixed fucked up profiler sample in SoundManager.RequestSoundInstance
No more Mesh.MarkDynamic (DX9 issue)
More profiler samples for PlayerLoot
Only CancelInvoke when needed inside PlayerLoot
Furthest foliage cell is correctly forced to lowest LOD
Foliage batching cells are as big as the old grass cells
Enforce caching of the mesh from procedural foliage placement in the main thread
Mesh building optimizations
Update plant skin parameters after instantiating the skin (pooling)