3,079 Commits over 1,552 Days - 0.08cph!
Add MusicPlayer.Spectrum and MusicPlayer.Amplitude for visualization purposes
▇█▌'▉ ▇▋▄▆ ▆█▌▅▉█▇▍█▆▅█▌▅█▋▊ ▅▊ ▍▊▉▇▇▇▆▇, ▆▋▄▇▇▇▆'▇ ▌▊ ▆▊▌▆█▌/▌▄▅▌▅▍▅▍▆
█▊▍▍▇▋ ▅▅▇▋█▍ ▄▊▇ ▍▊█▄▍ ▉▇▊▋▊▇ ▆▅▊▇▊▋ ▆▆▇█ ▉▌█▊▊▄█▇, ▉▍▍▆ ▆▆▆▌ ▍▍▌▄▍▅▇▍ ▉▍▉ ▍▅▊▊ ▋▆▍▇▋▍▇
Add RootPanel.RenderManual, this gives more flexibility to where UI is rendered, to texture for example
Seal up ScenePanelObject
Add Vector2.Abs, to be consistent with Vector3
Rubikon: LoadUnaligned3SIMD_UnsafeRequiresMemoryPadding -> LoadUnaligned3SIMD in mesh CastRay
Add SoundStream.SampleRate
Start off SceneCustomObject with infinite bounds, users expect something to draw if they forget/don't need bounds
Add skeleton and attachment groups to model inspector https://files.facepunch.com/layla/1b2011b1/sbox_PHaGNadm2y.mp4
Add Model.AnimGraph getter
Display animations and parameters in model inspector https://files.facepunch.com/layla/1b1911b1/sbox_pEsjDw73df.mp4
Animgraph: Default fov back to 60
Animgraph: Save and restore camera settings
▅▅▆ ▄▆█▇▉▉▆▌▄▊▅█▍▄▄▄▋▇▊▅▉██▅▍██▄▇█▍ ▅█ ▅▊▅▉▊▇▋█ █▅ ▅ █▅▇▆▄▄ ▉▋▉▍ ▋▉▌▆█▅
Animgraph: Enable settings button for scene widget to control lighting rigs etc
Animgraph: Hide gizmo and ground plane when locked onto bone. Default fov to 90 (max requested)
▇▌▉ ▊▇▋█▄▅ ▆▋█▄█▋▄ █▅ ▋█▍▍▆▊▇▇.▊▅▇▉▍<█>( ▄▊▇▍<▍> ) ▅▆▇ ▅▆█▅▊█▇▆.▄▌▍▅▄▇▉█▉▍▇▍▅▇▊▊▆▆█<▇>
Animgraph: Add C# model picker instead of going through an ugly dialog and combo box https://files.facepunch.com/layla/1b1611b1/sbox-dev_YSPuTuq24x.mp4
Fix asset publish widget flashing when created
SFM: Fix crash creating projected light
ShaderGraph: Add power node
▍▋▅ █▍▋▋▋▊ ▆▌▍▍█▅▇▆ █▇▋ ▊▇▌█▍▍██▋ ▄▌▆ █▋▅▇▍▆▇▌▅▆▅ ▋▆▅▄/▅▋▊▍/▌▅▄▌
ShaderGraph: Don't stomp vVertexColor, this is used for tint it seems?
ShaderGraph: Set vVertexColor in generated code
Fix jiggle bones in animation helper stomping bone scale animation
Use morph channel index cached in anim container instead of assuming it's the second channel. Fixes scale channel thinking it's the morph channel when there's no morphs.
▅▄▌▇ █▆▅ ▆▋▄▋ █▊▅▉▆▋█▇▌ ▇▄ ▆▇▊▄▊▉ █▆▊▇▊▆
▊▋▅▅ ▍█▊▋ ▊▋▄▊▍▊▌▊ ▇▌▇█▆▋▄▄▉▇ ▋▍ ▅█▆▄.▆▆▋▅█▋▍▌▇▆▍█▋▄▌
ModelDoc: Make sure anim bone scaling isn't applied if not enabled
Public property setters on WorldTextEntity
Opt into using uniform animation scaling data https://files.facepunch.com/layla/1b0911b1/hBJOAzIvqt.mp4
Null check video system before trying to encode audio
Fix potential crash in CBaseAnimating::AddViseme
Null check readable bones in CalcAnimationState, seems to be the cause of our most common crash
Add min max metadata to modeldoc variables #3770
Hammer: Add tile view option to fast texture tool and allow zooming out a bit more
Make GraphicsItem.PrepareGeometryChange public
Fix voxel surface split setting parent instead of parent surface #3771
Delete water ripple on water destroy, fixes #3788
Add utility for playing sound at time (for tools)
Add sound options to meta for sample rate and compression
Rework scene model morph overrides to crossfade with animation morphs
Update viseme editor for morph changes
Add sound editor with properties and simple phoneme editor https://files.facepunch.com/layla/1b0611b1/sbox_yzDLkXR34E.png
Fix unnecessary mesh instance data assert
Add empty decal for water surface, surfaces will always fallback to default
▄▋▆ █▇▄▍▌▅▆▇ █▌ ▌▆▋▅▊▌▆▍▇▋▌▅█▊.█▊▌▍▉█
Dump embedded wav phonemes to sound meta if we don't have a meta, meta takes priority over embedded
Setup model viseme data and phoneme mapping from model keyvalues
Drive faceposer with model viseme data while we have this tool
Update mouth state
Apply visemes to baseanimating with game weights
Flex overrides takes priority over game weights
Add phoneme mapping to model metadata so it doesn't have to be hardcoded in engine
Register model meta as file dependency
Allow managed to add to modeldoc tools menu
Add viseme editor https://files.facepunch.com/layla/1b2511b1/sbox-dev_QrIn49oBOM.mp4
Compile viseme data into citizen model
Fix clothing container causing assert when calling SetBodyGroup on a entity with no model
Rubikon: Sphere shape keeps a unscaled copy so rescale can never be incorrect, fixes sphere scale out of sync on client. Sphere and Capsule refresh debug shape on rescale.
Only call UpdateShadow for physics body if we have a shadow controller, physics body scale is getting stomped