20,790 Commits over 1,522 Days - 0.57cph!
Small improvements
Min. radius set on selecting samples. Improved angular distribution (starting angle now function of screen space position so not constant across screen pixels ). Couple of math ops optimised away.
Shift + click to recursively expand treeview nodes, resolves Facepunch/sbox-issues#5642
Terrain: add flatten sculpt tool (https://files.facepunch.com/tony/1b1111b1/sbox-dev_bCkllHylC8.mp4)
Update how superluminal instrumentation works, avoid allocations, wrong names
Don't render widgets that we can't see (!)
Remove BytePack.ISerializer from Connection for now - need to solve something first
Initial commit for Network Priority for Network Objects. The idea is that you can mark a networked object as Low, Medium or High (default) network priority, this will dictate how frequency updates are sent out about that object.
Compute shaders for Auto Exposure - not yet used
For generating the histogram for auto-exposure as used by tonemapping. These 2 shaders will geenerate the histogram and weighted average. They are not yet used. Currently Valve use occlusion queries and generate it as part of tonemapping.cpp. These shaders may prove better than that system.
Inspector properties: increase context-menu area beyond label text, let control handle copy/pasting to match what's displayed (eg pasting colors from hexcode), exclude quotation marks when copying
Add Graphics.CameraPosition
Make sure SceneCamera is not null in UpdateSceneCameraTransform
BytePack.ISerializer implementation for Connection. Also make sure we clear Connection._mockConnections on ResetEnvironment because I think this dictionary would never clear otherwise. Remove long-time unused net_lerptime ConVar.
Remove publish types, fall back to asset
"display: none" the main menu when we're not using it
Add AllowModifiers to KeyBind widget, set to true for Editor Keybinds Page (Allows you to bind CTRL+SHIFT+ALT+Whatever)
Some FileOption binds, but they dont auto-update yet. Will need to find a good way to do that for Option entries
Create shortcut for EditorCycleViewMode
Make Keybinds page scrollable, add Reset to Default button, and add Are You Sure popup to Reset button
Use TitleAttribute for keybind names
https://files.facepunch.com/CarsonKompon/2024/July/10_22-23-FakeGourami.png
Remove more unused from interface
Created EditorKeybinds.cs with a few starting keybinds
Move Keybinds into EditorPreferences since that makes more sense
Add RegisterShortcuts() function whenever shortcuts are registered and use the EditorPreferences keybind instead of hardcoded string
Added Editor Keybinds page to EditorPreferencesWindow
Subscribe all RegisterShortcut voids to keybinds.update EditorEvent
https://files.facepunch.com/CarsonKompon/2024/July/10_21-46-TautDuck.mp4
ApplyLinearImpulseAtWorldSpace just uses ApplyLinearImpulseAt, same thing
Get rid of all this shit, it's no good
Hulls sweep with a radius
Resolve hit penetration (should add to trace API?)
Trace direction is wrong way around
Panel background rendering optimizations
Do 'external changes detected' prompt for open prefabs too, refresh popup a bit
Grab triangle on base mesh so that it should work for both mesh and heightmap
Use our filtering in cast callbacks
Initial VR scene for main menu
https://files.facepunch.com/alexguthrie/1b2011b1/sbox_pKFaTyqkgq.png
UI: Fix worldpanel depth issues, treat worldpanel roots as layers
Render VR menu at 4k, scale down to fit
Basic VR world input component, menu works properly
https://files.facepunch.com/alexguthrie/1b2511b1/Desktop%202024.06.25%20-%2015.51.37.05.mp4
Line hands up better in VR menu scene
Quick little test map just so I'm not staring at an orange texture
CManagedSceneObject main thread is optional
Remove mainthread enforcement from "safe" internal managed sceneobjects
Make grabbedTextures a thread static
ParticleSpriteRenderer builds verts in render thread
Use CustomEditor for Transform, make presentation/ux consistent with components, add copy/paste world transform context menu options
Change project open file filter from ".sbproj" -> "*.sbproj" to find named project files
Byte Pack Convert - Networked GameObject, Component, GameResource References (#1618)
* Add add IBytePackConvert to a class to specify how it should be serialized/deserialized with BytePack (similar to IJsonConvert). Implement for GameObject.
* Add IBytePackConvert support to Component and GameResource
* We should be able to null these out
* Some comments on ConverterPacker to describe its use
* Let's move it out of Sandbox and call it BytePack.ISerializer - it won't be exposed to public API (for now?)
* Makes sense to rename to SerializerPacker so it matches ISerializer
* Explicit implementations of BytePackRead and BytePackWrite means we can have these non-public
* Add test for BytePack.ISerializer with MySerializedClass
* Some minor doc change
* Tidy
Don't serialize component [Property] variables if they have [JsonIgnore] attribute
Some comments on ConverterPacker to describe its use
Let's move it out of Sandbox and call it BytePack.ISerializer - it won't be exposed to public API (for now?)
Makes sense to rename to SerializerPacker so it matches ISerializer
Explicit implementations of BytePackRead and BytePackWrite means we can have these non-public
Add test for BytePack.ISerializer with MySerializedClass
Fix navmesh usage before initialized
Move trace solve to cast callback so everything can use it
Run a trace solver on hit shape to get the proper hit fraction and start in solid
Avoid some errors when closing
Load WorldRendererMgr in unit tests
For backwards compatibility, when loading a vpk look in the maps/ folder too
Allow map loading during tests
Remove warnings
PackageManagement test cleanup, make a bit more resiliant
Fix project templates (oops)
Fix New Project button in Editor Launcher
Try casting box with a small hull skin to avoid getting stuck
Remove GetBboxFromProxies
These cast functions aren't used either
Hook up joint break callback, disable joint on break
Disable this contact assert, doesn't make sense