240,415 Commits over 3,867 Days - 2.59cph!
Add Preferences class with sensitivity and fov
Input uses sensitivity preference
CharacterController uses SceneTrace, added GroundObject, GroundCollider, TraceDirection( dir ), added auto IgnoreGameObjectHierarchy
CharacterControllerHelper uses SceneTrace
Link to new documentation on the welcome screen
Fix CitizenAnimationHelper NRE's
Custom method-implemented nodes can read named variables directly
With [Variable] attribute on a parameter
Variables can have default values
Test for accessing variable default values
Default value variable validation fix
Default value variable expression building
Handle func_brush creation
Handle prop_physics etc
Fix and tidy up terrain data serialization
Set SceneObject shadow casting flag before setting model / transform so we don't need to update the object again
Fix serializing references to the scene object
Re-plug in speech synthesizer play return
Fixed drag select height
Don't fill on every frame 🤦
Framing a GameObject switches to SceneView
Add GameObjectFlags.Deserializing when deserializing
Fix performance hit by setting SceneObject properties unnecessarily
Only draw envmap bbox when selected
Scene.GetAllComponents<T> can find interfaces
Use GetAllComponents where we were doing recursive ActiveScene.Components.GetAll
Removed SceneObject.Angles (Rotation works exactly the same)
Don't render game view when not visible (fixed)
Clear QPixmap on create so it's not full of uninitialized data
Updates
Fixed Copying and Move rotation not being correct
Widget style tweaks
Fixed fill not using current floor level
Add InitializeFromLegacy for SkyBox2D
Add InitializeFromLegacy for VolumetricFogVolume
Add InitializeFromLegacy for EnvmapProbe
Handle env_combined_light_probe_volume
Guard unnessecary transform change in managed instead of native
Leaderboard backup, run #8644
Fix build failing, can't access TerrainData cref in sandbox.engine
Only set body group defaults on model change when sceneobject exists so it doesn't get reset on deserialize
Gizmo warning
More gizmos
Compress TerrainData heightmap/controlmap data with deflate, simple rle is probably best
Apply final rotation offset to bow
Fixed bow hold, was missing a slot on the animator override and I forgot to disable the legacy spine IK system
Shadergraph: Transform Normal can output in tangent or world space (default is tangent to match material output)
Don't save the file 9 times everytime in Asset.SaveToDisk
Store TerrainData in a versioned gameresource with custom serialization, so we can reuse it in multiple scenes and not have absurd file sizes
If the collider is static, make the rigidbody static, fixes colliders trying to add keyframed body twice
WIP setup for 3qrs bow hold, still not quite working
Notify transform change when changing parent #4386
Widget Tweaks
https://files.facepunch.com/louie/1b0411b1/2024-01-04%2023-30-04.mp4
Added a left hand look at rig, exposed the option on held entities to use a left/right/none look at mode
Merge from PlayerRigUpdate
Removed all RendererBatch, AddToHeightMap and InstancedMeshFilter from cliff objects on island (fixes incorrect terrain splat lookup)
GetAuthToken returns string without quotes
Fixes sbox-issues/issues/4381
Fixed figurines lodding incorrectly when parented to tugboats
▋▌▄▄▊ "▉▇▌▌▇▌ ▌▌▄▆▌▋▅▄ ▌▋█ █ ▍▊!!!" ▅▇▌▊▄▋▅ ▍▉▇▊▌▅▅ ▇▅ ▌▍▅▊▉▌▊▆▇ ▌
▄▅▄▍ ▆█▅ ▇█▅▉▆▋▊ ▊▌▇ ▊▉▍▉ ▄▋▊ ▍█▆ ▆▅▆▋▊▆▆ (▊▍▌) ▉▅▅▋▌▊ ▅▊▉▆█▄▊▉
▄▊█▆▄█▇▄▌ ▅▌▆▆█▍▍▉▍/*.▊▍▋ ▉█▆ ▋█▊▄▇▆▋ ▆█▋▋▍▌▍ ▊▉ ▉▉▆ ▍▌▉▇▊
▋▊▋ ▉▇▋▌█ ▆▅▉▊ ▌▇▊▉█ ▊▋▉▋▍ ▅▉▆▅█▅▆█▇▅ ▄▍▆▋▉▆ ▍▋▌▆▋ ▊█▄▋▅▍▋
!▉▆▌▌▌▌█ ▅▆▅▇▊ ▅▌▋▇ ▊▌▄_▍▍▅▊▍▊▉_▆█▅▆ ▇▆▆ ▉▌▅_▇▅▄█▆█▍▋█
▅▄▍▌▅█▍ ▄▍▋ ▇▉▌▆ ▇▊▄▄ ▄▌▄█ ▊▍▊▄█▋▊▋▉▆▌▉, ██▆▉▍▌█ ▅▆▋█ ▉█
▍▋▌ ▆ ▇▍▍ █▋▇▍▆▅▍▅ █▆ ▅▅▊ ▆▋▌▇█▄▅▇▌ ▆▍█▄ ▉█▄▌ ▉▆▆▍▅▋ ▅▇▆ ▌▌▇▋▍ ▉▇ ▍▅▅▌█▋
▇▋▉▉█▇█▆▉█ ▄▊▋▍▌▋▅ ▄▋ ▍▅▅_▇▄▄▆█▅▄_▇▆▆▇ ▋▌ █▇▉ ▆▋▌▄ ▇▇▆▅ ▆▉█ ▅▄ ▅▄▉▊▅█▉ █▆▍▇▆▆▅▋▆▍▅▇▇
▉▋▄▄▅ ▌▍ ▋▍▄▌▊ ▌▆▅▆▌ ▅▋▍▋ ▄▍▋ ▉▌▄▅ █▌ ▆█▄_▌█▇▄██▇_▉▌▉▆ ▄▊▇▄▄ ▉█▌ ▇▇▉▉ ▋▆ █▇▌
!▋▆▄▋█▉▄ ▌▋▆▇ ▊▇█▍▉▋▋▍█▄ ▅▌█ ▇▄▋▆ ▍▉▋▍▅▉▌▉ ██▉▄ ▆▅▇▇▄▅
!▍▍▉▍ ▄▉▉▌▋.▊▇▊▇▇▌▌▍▅██
!▉▌▊█▅▇▅▍ ▆▌▋▉▇▆▄▋ ▊▍▉_▆█▆ ▋▅▅▋▄▅ ▅█▆▆ ▍▊▊_▄▇▅▌▊▇
! ▉▊▍▌ ▌▇▅▇▅▆▍▉ ▅▄▆▅█▇▇▇▍
▋▋▉▉▊▋▉▍█▉ ▅▍▍▌▊▋ ▆▆█▌▌▄▆ ▇▊▋▉█▍ ▌▋ "█▇▇▋▌▇▇▆▊" ▊▇▊ "▊▋▊▆▆▊" ▇▆▄ ▍█ ▄▋▉ ▆▍▌▅▅▄
▊▋▋▊ ▉▄▋█▍▄▋▆▉ ▇▉▊▄█ ▇▌▉ ▊▋█▌▆▍ ▆▅█▇██▆ ▄▍ ▍▄▋▅▌ ▍▆▍▅▆.▉█▄ ▉▌ █▋▇ ▉▍▍▇▋▆▄█▇█ ▊▇▋▆▆▉
▊▄▊ ▅▍▉▇▋ ▆▊▋▉▆▉ ▉▍▊ ▅▋▅▄▊▆▉ ▅▇ ▊▋▇▌ █▆▆▉ ▍▌▋▊▇▍ ▊▅ ▄▅▉▉
▅▉▇▌▅ "▋▍▇▋▄▄ ▄▅▉▉▅▇▉▄ █▊▅ ▆ ▊▉!!!" █▉▆▇▆▇▌ ▉▉▄▉▄█▍ ▋█ ▉▇▄▅▊▉▊▅▆ ▋
▊█▌▋ ▄▇▋ ▆▊▅▊▍█▊ ▆█▊ █▍▅▌ ▉▆▄ ▄▋▆ █▍▍▌▄▅▉ (▋█▊) ▋▄▆▆▆▆ ▉▋▉▍▇▍▅▌
▅▆▄▌▄▅▋▊▆ ▅▇▇▋▇▉▌▌▌/*.▋▋▌ █▊▍ ▉▇▋▇▉▌▌ █▋▄▋▌▄▊ ▋▇ ▌▅▌ ▅▌▍▉▆
▅▊▄ ▉▅█▍▋ ▉▅▇▋ ██▅▇▆ ▌▉▊▉▋ ▌▆▅█▌▋▊▉▄▊ ▋█▆▌▋▇ ▆▇▄▍▇ ▌▇▄▌█▍█
!▌▄▇▌▊█▋ ▌▇▋▉▆ ▄▄▅▊ ▍▄▆_▆▉▍▉▆▉▊_▇▍▌▄ ▊█▋ ▅▊▍_▇▍▋▋▄▍▍▉▌
▌▍▇▋▊▅▌ ▆▋▌ ▌█▅▇ ▄▄▌▍ ▇▅▅█ ▍▇▅▇▄▆█▅▊▄▍▇, ▊▊▄▆▅▍▋ ▅▄▆▌ ▉▅
▉▊▋ ▆ ▍▊█ ▊█▍▄▊▇▅▉ ▋▊ ▆▌█ ▋▊▇▄▉▋▇▇▍ ▇▊█▊ ▅█▉▊ ▌▊█▉▋▅ ▋▍▊ ▌▌▅▇█ ▄▄ ▄█▍▇▊▋
▆▇▄▋▅▇▉▄▆▊ ▄▅▋▉▇▍▄ █▊ ▄▍▍_█▅▉▍▉█▊_▋▉▆▄ ▅█ ▅█▍ ▄▇█▉ ▊▆▅▆ ▊▉▊ ▄▇ █▊▉▋▆▌▌ ▅▅▋▄██▅▌▄▉▄▆█
▄█▆▊▇ ▇▆ ▄▆▆▄▌ ▉▇▄▉█ █▅▆▉ ▌▌▊ ▇▅▅▄ ▇▅ ▄▉█_▉▇▍▇▍▇▍_▊▌▌▍ ▋▆▌▅▅ ▆▊▅ ▌▍▌▆ ▉▊ ▆▅▆
▅▋▄▅▉█ ▍▍▄ ▅█▄▆▊▋ ▍▍▍▅▇▍ ▍▄█▌▊█▊
!▅█▋▊▅▋█ ▅▋▋▆ ▌▍▅▄▄▆▅▊▇▅ ▆▊▊ ▅▌▆▆ ▊▊▆▌▄▆▌▊ █▌▌█ ▅▊▅▅▋▇
!█▌▌▄ ▆▋▄▄▉.▌▌▄█▇▉▅█▅█▇
!▌▊▆▇▊█▆▅ ▆█▅█▍▌█▇ ▇▉▇_▉▌▍ ▋▄▌▇▇▉ ▍▍▅▍ ▊▇▉_▋▉██▌█
! ▌▌▄▊ ▇▄▊▌▅▌▌▌ ▍▉▌▍▆▉▆▄▋
▆▆▆ ▆▋▊▇▊ ▌▌▅█▄▍ ▅▊▇ █▆▊▊▋▅▆ ▄▋ ▌▊▌▇ ▍▅▋▋ ▉▉▌█▉█ ▇▆ ▇▍▋█
UI: Apply `image-rendering` mode to masks
Duplicator stores current health in "CurHealth" not "Health" key on the entity
Also correctly merge NPC tables instead of using table.Add on non sequential tables
Fix saves really not working on maps with spaces in them
player update water bucket meta fiile
player update. exported/set up water bucket anim set and populated its override contoller with the new anims
Don't need this log anymore
Add launcher tag if using launchMode Launcher