146,305 Commits over 4,444 Days - 1.37cph!
Updated prop renderer transforms for workshop gloves
deleted blockout mesh in folder
1p and 3p attachment positional updates
▅ ▉▅▇ ▋▊▄▅▆▇▉▋ ▄██▄ ▅▇▇ █▌▍▉▇▉▉▇▇ ▋▉▄▉▊ ▇▊ ▇▌▅▇▆▇▍▇▌▇ ▆▉▉▍▋▇▇▍▇▋ ▅▄▋▋ ▅▇▊▇▋ ▆▄▄▋▋▄ ▆▄▄▄▄▌▉ ▊▄▆▄▋█ ▄ ▅▋▊▆▉▉▇▄ █▅▌▊ ▉▊▊▆ ▆▋▌▍ █▇▇▌▆▌▊▇ ▊█▅▊▆▇▉ ██▋ ▅▆▊▅▉ ▌▅█▆▍▍▋▄▇▌▉ ▉▋█▋▍ ▋▌▍▇▍▄ ▆█ ▆▅▅▌ █▉▊▆ ▇▋▉▋▌ ▉▋█▍▇▌ ▋▋▌▋▄ ▋▋█▇▊▋▊▋▌▍▄ ▋▋▍▊▋▆▆▆▍▌▄▅▅▅▉█▉▆▉▋ █▇ ▅▅▊ ▅▆▉▊▅ ▋▌▍▉▍ ▊▍▋▄ ▉█▉▋▅▊▊▇ ▅▅▆▄▉▇▆ ▊█▊ ▌▍ ▊▍▊▊▌ ▅▆▅ ▊▆▍█▌▅ ▄▇▌▉▍█▍ ▋▄█▇▄ ▆█▋ ▌█▍▅ ▋█ ▉▋▍ ▍▄█ ▉▋▍▆ ▋▆▇ ▇▍▌▍ ▋▇▄▌▌
▄ ▍▋▍ ▌▍▅ ▅▍ ▉▅▅▋▇▄▌▇ ▅▆ ▊▉█ ▅▊▇▇▉▅ ▅▍ ▇▄▌▆ ▍▇ ▅▌▄ ▅▌▇▆▊▆▉▌▉ ▋█ ▅██▍▇▊▋▄▉▉▇▄▍▄▆▅▇█▇▋▊ ▉▅ ▅▌▅▆▉█▌█▄▇▋▋▍
Turret uses burst fire if attached gun is forced to use burst fire mode
Fixed egg suit's wrong orientation in paint mode
Fix electric furnace reskin not preserving attached storage adaptors
Re-enable PreserveChildrenWhenReskinning but manually kill the child io entity so it gets recreated
Fix a IOEntity.Reskin_Restore NRE when reskinning to paintable window
Converted ceiling light, smart switch, fuse
Fixed VBSP not being able to "render" LightmappedGeneric_4WayBlend
Hammer tweaks & fixes
* Prevent spam about missing $spriteFrame
* Fixed sprites with the same material only ever rendering with one render mode, even if different sprite entities use different render modes with the same material
* Make env_sprite placeholder box different color from env_sprite_clientside
* Sprite helpers inherit entity color, so env_sprite's show correct color
Fixed Hammer carve wiping all overlay faces, even if they are not carved
* Also fixed undo breaking info_decal preview (NOT OVERLAYS!!!)
merge from excavator_light_fix
Fix static SimpleLight broken material on LOD1, further fix plight.backup.off
S2P both oil rigs, sewer branch, harbor 1, excavator
Cobalt Statue - Minor texture and material edits (concrete pedestal)
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