998 Commits over 641 Days - 0.06cph!
Dry fire + auto-reload if trying to shoot an empty gun
Editor: Launch dedicated server option (we probably want some way to join it from editor?)
Move vitals drawing over to hud painter
Gauss fires charged shots even if ammo is low
Tripmine: use broadcast GiveAmmo instead of SetAmmoCount
Grenades spawn closer to player, check throw position to make sure they don't spawn through walls/floors
Make sure the player actually has a tripmine on pickup
Null check everything
Simplify health/armor pickups
More texture mapping fixes
Fix weird texture mapping on shooting range scene
Update USP
Ignore .sbox/
Use human hands for gizmos
sbproj update
VR: More stuttering-related fixes, don't alloc joint data every frame
VR: Improved main menu scene
VR: Only create debug callback if `-vrdebug` is specified as a launch parameter
VR: Deprecate List-based `VRController.GetJointData()`, replace with array-based `VRController.GetJoints()`
VR: clean up logging
VR: Synchronization refactor, update Facepunch.XR to 1c1b65ae7ec5ef89ff2f1e508f4bcdbea58ebd3c
Removes Sync() call, should remove jittering(!), and reduces unnecessary logging
Reduce logging, improve what's left, remove Sync()
Fix missing standalone files
sbox-issues/issues/7241
Generated csproj LangVersion 11 -> 13
Clean up and optimize shader
Clamp to viewport again
Fix undo for envmap probe bounds
Fixes sbox-issues/issues/7181
Fix TreeView not passing skipEvents fully, trigger ItemsSelected at end - fixes Facepunch/sbox-issues#6845
Santa Outfit (#1743)
Wipe my ass layer doing nothing
Unused Occlusion query layer
Remove r_tiled_rendering toggle, it is a requirement of any forward+ pipeline
Tiled culling in managed render pipeline
Depth only prepass very likely doesn't need lighting constants
Lightbinner layer managed
Fix ObjectHighlight.shader
Make sure turning direct/indirect lighting off still works on managed lightbinner layer
memdbgon.h doesn't belong in a .h file
Santa jacket/trousers lods (citizen version)
Searching by filename with extension will test correctly with assets too, fixes Facepunch/sbox-issues#7174
Navigate to project root instead of selecting engine asset when ShowBaseContent is disabled, fixes Facepunch/sbox-issues#7175
Move 'Show Base Content' toggle to asset browser toolbar so people stop acting like I've stolen their car keys
https://files.facepunch.com/solw/2024/December/17_16-46-AquamarineHound.png
Humans: add temporary intercardinal movement animations derived from offset cardinal directions + use new mixed animgraph setup
Santa jacket/trousers lods (human version)
Allow AssetType to get all file extensions, primary and additional
Remove hacky fix for image extension tags, do it properly
Make this readonly list so it can't be fucked with
Santa jacket uses neck_clothing bone to minimise twist deformation
Get safer sceneobject bounds, return zero size bounds for infinite sceneobject bounds - getting infinite bounds is not desired
There's a typo here in ModelRenderer.LocalBounds
Add TagsControlWidget
Don't use bind system for these control widgets, feels like the old way of doing things
Can now drag one or multiple entries directly onto the "+" button in a List instead of having to create the entries and drag individually. Resolves Facepunch/sbox-issues#7197
https://files.facepunch.com/CarsonKompon/2024/December/18_08-58-FocusedMassasauga.mp4
Support non-array drags on ListControlWidget since not all widgets use arrays for single asset drags
vmdl will add animations as a proper source dependency, so they get uploaded ( #1741 )
Fix possible NRE in PathWidget
ListControlWidget now supports multiedit, only showing matching indexes
Add and Remove buttons now work when MultiEditing a List
Added support for re-ordering lists during a Multiselect
https://files.facepunch.com/CarsonKompon/2024/December/18_11-03-AjarBaiji.mp4
Right Click -> Duplicate now works on Multiselect Lists
Merge branch 'master' into gpu-occlusion-culling2
Make culling faster & more accurate by bailing early if we know any corner is visible, use local model bounds converted to world
https://files.facepunch.com/alexguthrie/1b1811b1/sbox-dev_zt7IOESilA.mp4
Clean up, only apply culling if enabled
https://files.facepunch.com/alexguthrie/1b1811b1/sbox-dev_f0PdSpDS9b.mp4
Cache all gameobject bounds, fit parent bounds to children
Readback runs callback, applies culling to sceneobject (tho we should really apply this per-view)
Rather than clamping to viewport, if all corners of bbox are off-screen, cull the object
Cache GameObject bounds
Fix a few things inside occlusion culling render layer
Wrap occlusion objects inside a record
Remove more native occlusion culling stuff
Initial
Use spheres so we only have to send a single list of vec4s over
Gather objects
Split logic into COcclusionCullingStandard
Change order, gather correctly, readback, count visible + culled objects
Reject occluded objects, tweak gather & shader
Improved gather, only select the objects we want
Shader re-write, output object depth and buffer depth for debug
Put debug spew behind convar, tweak shader
Tidy up, add CSceneObjectCullingData, add user-controllable per-camera toggle for occlusion culling
Stash shader before I re-write to use AABB
Switch to using bboxes for slightly more accurate results, hi-z mip checks
Start moving all this over to managed, we can benefit from various things here
Initial
Use spheres so we only have to send a single list of vec4s over
Gather objects
Split logic into COcclusionCullingStandard
Change order, gather correctly, readback, count visible + culled objects
Reject occluded objects, tweak gather & shader
Improved gather, only select the objects we want
Shader re-write, output object depth and buffer depth for debug
Put debug spew behind convar, tweak shader
Tidy up, add CSceneObjectCullingData, add user-controllable per-camera toggle for occlusion culling
Stash shader before I re-write to use AABB
Switch to using bboxes for slightly more accurate results, hi-z mip checks
Stash shader before I re-write to use AABB
Switch to using bboxes for slightly more accurate results, hi-z mip checks
Tidy up, add CSceneObjectCullingData, add user-controllable per-camera toggle for occlusion culling
Put debug spew behind convar
Shader tweaks
Not perfect yet, but definitely a step in the right direction
https://files.facepunch.com/alexguthrie/1b1211b1/NVIDIA_Overlay_J85xCR3e3b.mp4
Improved gather, only select the objects we want
Shader re-write, output object depth and buffer depth for debug
Reject occluded objects, tweak gather & shader
Quite conservative right now and not perfect
Change order, gather correctly, readback, count visible + culled objects
This makes more sense
Gather objects
Split logic into COcclusionCullingStandard
Use spheres so we only have to send a single list of vec4s over
UI: Set Button.Active inside TabContainer rather than setting active class directly (consistent with ButtonGroup)
UI: Fix worldpanel filters, save off default viewport Z range when setting a render target (solves depth issues after pushing/popping worldpanel filters)
https://files.facepunch.com/alexguthrie/1b2911b1/sbox-dev_Nl7AwCZeb5.mp4
VR: more logging, always enable debug callback
VR: add -novr force disable
Update fpxr to 8e70816536da3c657eb9f9a7b815268c5ef7a729, improves headset checks
Improved checks inside HasHeadset
UI: Expose UI.WorldInput.Hovered inside WorldInput component
VR: check for headset in PreInit() instead of Init()
VR: init g_pVrSystem before finishing material system setup
Update Facepunch.XR to 1dce6d64669f0c19b0e43936bf53b1770d50a6f8, cache HasHeadset value
Don't build VR Toggle Widget if there's no headset or runtime
Check if we can actually init OpenXR when calling HasHeadset - makes the call more expensive(!) but more accurate
Update Facepunch.XR and defs to 24b8e70e5c89d04b3f42d8b022bf97e05b82349f, adds check for headset/runtime availablity
VR initialization changes - always load VR extensions if there's a runtime and headset available, so we can init mid-session
Editor: Make ToggleSwitch look nicer
Add toggle switch in editor for VR
https://files.facepunch.com/alexguthrie/1b0711b1/sbox-dev_k3x5LXNKca.png
Remove unused OpenXR launch environment variables
Update Facepunch.XR to ec56d1c119e0251cbc105be8a26792e266b68ed3, fixes some minor launching issues
VR hand component fixes
VR world input component
Remove unused VR bits in MenuSystem
Basic VR scene menu, loads automatically if VR is enabled
Additional checks when loading JSON bindings, don't poll for hand tracking if instance doesn't support it, make sure we have an instance
Clean up EditorUtility.PlayAssetSound a bit
Ignore edging when drawing text outlines, helps with `font-smooth: never;` in combination with `text-stroke`
Facepunch/sbox-issues/issues/6764
EditorUtility.PlayAssetSound supports sound events
Asset browser: Play overlay for sounds