145,551 Commits over 4,413 Days - 1.37cph!
Fixed error when spawning server-side corpse
Add the industrial barrels to the StorageAdaptorAllowCollisionGroup
progress on billboard/particle lighting conversion to RRP
Add a CaveNetworkGroupLayerOverride to cave_large_sewers_hard to fix network layer issues
Rebake height map to fix terrain issues
S2P
Avoid various allocs in ResourceDispenser.DoGather
Cache an invoke action + item def harvest stat key, get rid of linq, pool hit info
merge from editor_rpc_kick_convar
Add editor only convar debug.prevent_rpc_error_kick - stops RPC errors from kicking the player
merge from spraycan_reskin_refactor
Improved way to reposition socketed child entities when reskinning - look for the matching female socket on the new entity with the same name, fall back to the closest if needed
Fixes door controller attached to an high external gate swapping sides when reskinned
Add StringEx.EqualsAfterLastSeparator
some set dressing/foliage polish in playground area
killing more shadow casters, disabled shadow casting corridor interior
Add instancing setup calls to forward passes in Rust/Standard
industrial electric furnace;
- cleanup redundant materials, reassigned material to assets.
killing more shadow casters, disabled shadow casting on a dozen of pointlights
Disabled automatic lightmap baking in all scenes (this can be overwritten in case of any conflicts in .unity files)
Improved placement of industrial torch on weapon racks
apartment shadow casters and proxy optimizations
added presets for cinematic textures
Industrial Storage - removed duplicate gibs file
- Add a serverside convar to be able to toggle it on/off
- Parameter-less constructor to Deque so it can be pooled
- Codegen
Initial attempt at mountable rollback to fix 'projectile invalid' when attacking a player thats on a mini or zipline etc.
We cheat by only storing player relative positions to avoid rolling back mountables physics positions
Each client will allocate and store the last 16 ticks. 192 bytes for each mounted player, which is reused via the pool.
Retain old behaviour if not mounted hit or if the last 16 ticks aren't available
demo_scrubbing_optimizations -> main
Rename PathMeshLOD -> RailMeshLOD, less generic but much clearer what it does
Fix the AddToHeightMap at the end of GenerateRailMeshes not having a collider available due to the client deferring the generation of meshes & therefore mesh colliders
- still generate meshes for colliders right away on servers
- generate the lowest LOD in the rare case that a client is generating a map (and not loading a cached map)
- keep PathMeshLOD components disabled until procgen finishes to ensure they don't update LODs mid-map generation and start deleting the colliders
Rename CreatePathMeshJob -> PathMeshTemplate to make it clearer
Defer the integration of the generated mesh by sending it to the load balance
- it would be quick but Unity doesn't letting us assign the UV distribution float manually from C# so we have to call mesh.RecalculateUVDistributionMetrics() on main thread which takes 0.8ms
Add `printrails` command to print all the railroad meshes currently active
Add profiling markers
Destroy mesh instead of assigning to MeshLOD if the railroad LOD is hidden before the mesh generation request finishes
Fixed DDraw text spacing being affected by the predefined GUISkin font size (15 -> 5)
https://files.facepunch.com/raul/1b2311b1/ddraw_text_spacing.png
Fixed DDraw text color grey tint
https://files.facepunch.com/raul/1b2311b1/tint_fix.png
Fix broken collision + material on an excavator light
S2P excav
PressButton merge, compile fix
merge from main -> optimize_train_track_meshes
Fix CommentComponent being reserialized with different line breaks due to Unity clamping yaml string length in prefabs to 80 characters
- normalize every line break to \n so it can't change when saved on different platforms
- this fixes RidableHorse constantly wanting to be commited
More progress
- generate meshes right away when running on server (so they can be assigned to colliders) while keeping it defered on the client so we only generated meshes when in LOD range
- create PathMeshLOD which is MeshLOD + request mesh generation when the lowest LOD becomes visible & destroy when no LOD is visible
- fix the "job" version creating a job per mesh segment instead of batching every 5 segments together
- some more fixes with the mesh generation (stuff like handling both 16bit and 32bit indicies instead of assuming every mesh is <65k verts)
Skin viewer ticks the viewmodel components so we can have the space lr300 ammo counter working, default ammo for rpg etc
General store view fixes
Added arrow buttons to switch to the next item in the store from the skin viewer (limited tab only)
Industrial Torch - Updated textures (still wip lads)
merge from deformhair_enum_cleanup