22,417 Commits over 1,614 Days - 0.58cph!
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
Route asserts to engine so they show up like any other assert
Only call ServiceWorldRequests if map was loaded
Prompt before closing scene/prefab tab with unsaved changes
Make sure Top 2D view isn't flipped 180deg
(Makes everything face upright at default rotation, perfect for 2D games)
We should be able to null these out
Add IBytePackConvert support to Component and GameResource
Add add IBytePackConvert to a class to specify how it should be serialized/deserialized with BytePack (similar to IJsonConvert). Implement for GameObject.
VR: Get skeletal data from OpenXR
VR: Match controller positions with SteamVR ones, which better represent where the controller is
VR Input cleanup
Update Facepunch.XR to d7212d3, fixes broken digital actions
Remove unused from filesystem
IWorldReference doesn't need to be ref counted
Unmount vpk on map unload properly
Call ServiceWorldRequests to finish destroying map instance, create HammerSession
Only serialize NetworkMode, NetworkInterpolation, NetworkOrphaned and OwnerTransfer in GameObject.Serialize if they are not their default values
Fixed static Authority RPC checking permissions against the wrong attribute and messages should be sent to the host and not broadcast
Enable sensors for triggers
Check index is >= 0 or <= Count when using ObservableCollection<T>.Insert in NetList - otherwise use Add instead
Get rid of these single body casts, they're not being used
Izabu has body enable/disable so just use that instead of our shit
Added ResourceLibrary.GetAll<T>. Resolves Facepunch/sbox-issues#4749
Inspector Advanced Network Settings (#1617)
* Start adding support to edit Network Orphaned and Owner Transfer options in Inspector (visible when Network Mode is set to Object) https://files.facepunch.com/conna/1b0311b1/sbox-dev_I7Fk7tfs6K.png
* Make sure NetworkOrphaned and OwnerTransfer modes get serialized / deserialized
* Move over to setting NetworkOrphaned/OwnerTransfer on the GameObject directly (with multi-select)
* Move out to its own widget - this is gonna be a button that drops down for advanced network settings
* Adv network settings button next to Network Mode in inspector - opens drop down menu to set net orphaned mode / owner transfer mode
* Store current val outside scope
* Modify style
* Add RadioSelect widget for use with advanced network settings as it makes sense ( https://files.facepunch.com/conna/1b0911b1/sbox-dev_Ej9Kk8WU3y.mp4 )
* Disable the option to open the menu if NetworkMode is not Object - no point allowing to change these settings for objects that arent networked
Swap bit fields when copying BVH nodes
Adding transformed mesh uses fast path when there's only scale in transform (building BVH is expensive)
Disable the option to open the menu if NetworkMode is not Object - no point allowing to change these settings for objects that arent networked
Add RadioSelect widget for use with advanced network settings as it makes sense ( https://files.facepunch.com/conna/1b0911b1/sbox-dev_Ej9Kk8WU3y.mp4 )
Remove old templates
Map template
Asset browser state is saved per project
Fix Map Instance selector not replacing .vmap with .vpk
Remove unused worldrendermgr stuff
Better VPK loading, find physworld etc properly
AddMeshShape with scale can just do a deep copy of BVH, mesh shapes support scale
Make sure BVH gets destroyed on shape destroy