146,290 Commits over 4,444 Days - 1.37cph!
shadow fix's for new anim content
move scoring to in-world screen to prepare for chalkboard,
scoreboard working for 1p and 2p games,
- refactored to keep track of scores per turn, for better easier handling on scoreboard and coming in/out of network range
fixes to 2player games
- no longer have to wait for both players to register to the game, only 1 is needed.
- 1st player takes their turn, then the next player to mount registers as 2nd player and takes their turn afterwards
- fixed nonregistered players being able to play/mount, and added convar for being able to play 2p against yourself (for debugging)
- various other fixes
▊ ▄▋▊▌█▅ ▄▉▆▇▉▍▍▄▇▍▋▋▍▌▉▋▋███▋ ▊▌ ▍▋▌▋▄█▊▅▉▋ █▌▋▇▋▍▄▆▋ ▋▌█▍▍▇ ▄▆▄▆█ ▄ ██▋▆ ▊▋▆▍ ▉▋▋▅▍█▄ ▋█▍▉▇ ▅▍▌▍▉▌ ▍█▍▅▉▍ ▅▋▄█▄▅▄ ▅▌▆▆▄ ▄▆▍█▆▇▌▄▋ ▄▌█▉ ▋▊▌▌▋▄█ ▅▋▍▆█ ▊ ▊▆▌ ▇▉▌▋▋▍▆▌ █▅▉▆█▆▅▌ ▉▌▇█▆▇▄ ▆▋▍▆▇▋ ▄▊▊▊▆▇█▄▋▋▌ █▄▇▉█▅▊ ▉▋█▍▋▇ ▋▊▍ █▊▍▌▊▌▄█▉ ▍▊▆▌▋▌ ▋▄▉▄▆▄█▋▊▆ ▋▊▇▄▌▇▌ ▊▇▍▇▋▍▅▉ ▍▌▄▉▉ █▊▄▊▅▋▋ ▋▇▍▍▍▇▉ ▌▆▋▇ ▊▉▋▊█
Removed non HeldEntity error log from ItemModEntity::OnRemove, we have a few legit non HeldEntity using this (weapon attachments)
Setup Keyboard Folder Structure
Imported Keyboard Viewmodel and Textures
Setup Keyboard Materials and Viemodel FBX
merge from pool_analyzer_non_caching_methods
█ ▇▉▇▅▆ █▄▋▍▍▌▌▌▌▉ █▄▉ ▉▄▄▋▊ ▌▉▆▄
Update Rust.CodeAnalyzer again - switched the way methods are marked to an attribute [PoolAnalyzerNonCaching]
Mark all RPC method overloads with it
Update Rust.SourceGenerator.Rpc to add it to the autogenerated RPC methods too
Clean: remove NetWrite.BytesWithSize(byte[]...) overloads
Tests: editor compiles
Clean: remove acouple obsolete things
- Get rid of IStreamReader/Writer - they're not used anywhere
- get rid of NetWrite.Bytes(byte[]) overload - superceded by Bytes(ReadOnlySpan<byte>)
Tests: editor compiles
▌ ▆▊▌▍▄▇ ▉▍█▌█▄▆▍▆█▊▇▌▅▇▉ ▅▅ ▄▆▊▄ ▇▅▇▊ ██▌▌▇▇▇█▆▇ ▍▌█▊▄▉▄▇▉█▆▋█▊ ▉▋ ▌▌▊█ ▉▆█▌▉ ▋ ▄▇▅ ▆▍█▍▄▊ ▆▊█▅▅ ▍▄ ▊▌▇▋ ▍▆▇ ▊█▉▌▋▋▊ ▇▊▄▆ █▋▅ ▆▉ ▌▋█▍▆▄█▊▉▉▉▊
▋ ▊▆█▄▇ █▉▊▊▇▌▊▅▉▍ ▊█▇▅▌▌ ▆█ ▍▌▉█▉▋█▋▌▇▋▋▅▍▄▆▍▊▅ ▊▌▋ ▍▄▇▌▄▊▄▌▇▍█ ▌█▆ ▌▄▄▍▆▉▄▆█▋▋▊
▆ ▇▉▆▊█ ▍▄▉▇▉▄▍▊▌▇ ▆▌▆▋▋▊▄▅▌ ▅▊▌▆▍ ▄▉▇ ▇█▋▇▆▌▊ ▅▇▊▉▇▌▊▍ ▆▊▍▆▇▊▅ ▊▇█▇ █▌▅▌▊▆▄▊▊▆▄ ▍▍▍▉▉▇ ▍▉▌ ▄▉▊▊▉▍▌▆ ▋▆▋█▍▍▇▌▍▉ ▄▇▆▅ ▄▋▅▋▄▆▋▄
▋ ▄▌▄ ▅▉▉▉ █▍▌ ▇▆▅▅▋▋▅▆▇▊▇▍▋ ▋▉▋▅▍ ▅▊ ▆▍▇▄▋▉▉▊ ▅█▅ ▄█▋▍▆▍▅ ▉▌▋▉ █▍▇ ▅▅▆▊▌▇▉▆▆ ▉▇▍ ▄█▅▅▉ ▅▍▉▇ █▍▌▆▌▄█▆▍▊▉█▊▉█▇▄▆▄▉▋▆▅ ▊▇▍▋▇▊▆
▅▆▋▇▌▍▆ ▄▄▌▊▍▆▉ ▄ ▌▉▇▅▅▆▊ █▋█▉▆▇ ▅▋▉█▋▆ ▄▉▄▉▅█▅ ▆▇▅▅▇ ▆▍▌▅ ▉█▇▌▇▉▌▄▍▆▋ ▌▍▇▆▅▅▍▉█ ▋▍▅ ▋▄▍▆▆▉▅▇▆ ▉▍▆ ▅▄▍ ▍█▋▍
- renamed wordmodel
- added static (linked) mesh to worldmodel prefab
- removed rail from renderers (hidden) in worldmodel prefab
- updated weapon rack to large pegs
▄ █▉▄ ▅▋▉▄▆▊▆ ▆▄█▌▅ ▄▊▄▌█▅▇▊ ▌▋▄ ▊█▌▇▌▇
▉ ▅▌▌▊▌▄▉▅ ▆███▍▅█▉▍▍█▆▍▆▆▋▄▅▍▅▄▄▊ ▍▄▉▆ ▆▋▍█▋▇▇ ▇▉ ▅▌▌▅▆ ▊▆▇█▍▊▍▊▄▉▊▄▇ ▅▆▌ ▉▇▇▌▆▌ ▄▉▋▍▉▌ ▋▊▆▇▌▍ ▇▋▇▉▅▍▇▊ ▊▇▋▊▄▆▄▊ ▊▉ █▆▄▌▆▋▊▍ ▄▄ ▌ █▇▇▆▇▋█▉▍▅▇▉▉ ▅▊▋▄ ▍▇▌▅▄ ▊▍▉
Industrial Storage - closed gaps under barrels and adjusted distance to floor
█ ▉██▋▅▅▉▍ ▉▄▍▄▍▋▆▋▋▍ ▊▄ █▌▉▉▋ █▋▊█ ▆▄▅▄▌ ▅▊█▊▆▅ ▋▅▅█▇▅▋▍ ▍█▇▌ ▍▉ ▄▊ ▍▌▍▊█▌ █▆▍▋▍▄▉ ▊▇▅▊█▆▆▋▅ ▆▊▊▌▊ ▍▍▆▅▉▌ ▉▊▉▊▊ ▋▌▋▌▉▊ ▅▋█▇ ▅▆▆▉▆▌ ▌▋ ▊▇▍ ▊▆█▇▊ ▉█ ▅▄▍▋ █▍▋▇ ▉▍ ▉▉█▍█▇▌▊▄ ▊▆▄▊ ▌▌▇▊▅▊▆▉ ▌▄▋▉▇ ▇▇▋▆▋▍
More fixes to viewmodel mag & shell visibility
Update Rust.CodeAnalyzer
Brings an upgrade to the pool static analyzer, letting us mark certain methods as "non-caching" via .editorconfig - for example ClientRPC / ServerRPC are guaranteed to not cache or free pooled arguments.
Doing so tells MissingFree to keep analyzing after calls to that method (instead of treating the pooled variable as escaped).
This found 6 pool leaks which are also fixed in this commit (inside BasePlayer-Spectating, BasePlayer-MapInfo, DisplayingBoxStorage, GrowableEntity-Server, WireTool, IndustrialConveyor).
Cleanup, remove legacy IO code of already converted entities
Converted NeonSign to the new IO system
- Fix simple handmade sight not enabling sight rail
- Fix some sights not always enabling sight rail on viewmodel
- Fix sight rail not always showing when holstered on back
- Fix worldmodel using the LR300 mesh
merged from tovector3_parse_format_fix
Viewmodel fixes
- re-added shell to chamber
- adjusted visibility settings of mag1 during alt reload
▊ ▅▄▆ ▍ ▄█▍▄▍ ▍▆ ▋▅▆▌██ ▉▌▄▋▇▇▅▅▉██▇▋ ▅▅▊▊ ▉▅▅▄▋▊▊▊█
merge from additional_hairstyles
▉▍▆▇▅▉▊▍▉▉▄▅▍▄█▇▋▍█▇▉▋▊▍▋▉▅▍▇▅▆▄▉ ▉▆ ▇▌█▇ ▉▊▉▇▍█▊▋█ ▄█▆▋▄▅
▄ ▋▉▅▋▊▆█ █ ▅▆▇▆ ▉▋▋ ▇▇▇▍▇▉▉▉ ▊▍▆ ▇▅▇▌▌▅▉ ▍▇ ▄▋▆▍▌▆▋▌ ▍▋ ▇█▍ ▇▅ ▇▇▍▉▉▅▍ ▉ ▋▇ ▌▇▅▆ █▅▋▉ ▇▋▉ ▅█▅ ▅▋▊▊▌▉▋ ▇▋▆▉▉▆▄▇ ▅▅▆█▉ ▍▌▊▉█▉ ▊▌▉▊ ▉▆▌▌▇▋▉▆ ▊▆▉█▉▌▋▍▍▋ ▆▆▉▇▋▌▅▆▅▄▆▆▍▍▋▅▊▇▊▇▊▊▉ ▌▉▅▄ ▉▆▋ ▌▉▉▍▊▇▄ ▆█▄▋▄▊█ ▄█ ▇▊▊▇▆▇▇▊▄▉▊ ▋ ▋ ▉▌▉▄▇▆▋▊▄▆█ ▅▇▌▊▊ ▉▄▅▌▅▌▇▌ ▌▉█ ▆▍▌▅▊▆█▍ ▅▅▄▆ ▆▆▋▇ █▆▆▌▉▊▍ █▉▉▌▊▋█▋▅▌
Reduced the extra Replace alloc as suggested by Dan, added instead a fallback indexof lookup
merge from industrial_dlc
Use HasGreatlyChanged() for temp and comfort
Removed the legacy electricity IO queue
Adjusted auburn crewcut material
Only set metabolism has changed provided there has been a slight variation rather than an exact one.
This prevents HasChanged() from firing if its like a 4th decimal place that changes
Fixed Vector3 parsing in formats such as "10 10 10" (it's now 1:1 to the old behaviour)
https://files.facepunch.com/raul/1b0111b1/vec3_parse_test.png
Update vm attachment prefab to use complete new FBX asset
edited 3p relaxed gun pose on weapons that spawned npc's use. Lr300, M429, military flame thrower, minigun, mp5,sap, spas,
▄ ▍█▆▇▉ ▍▍▊▊ ▇▇█▉ ▊▇ ▊▄▋▄▇▌▊▉▇▅▉▅▋▌▇▋▌▍▌▇▍▅▆▌▅▌▉▆▋▉▉▅▋▆