20,865 Commits over 1,522 Days - 0.57cph!
Fix issues with loading compiled resource json in editor space
Only override states if target layer wants it so, otherwise subcontext just uses the default rasterizer and depth stencil state, fixes worldpanels with depth test, pass attributes from rendercontext rather than layer
ActionGraph: Double-click on an input to start editing it
https://files.facepunch.com/ziks/1b1811b1/sbox-dev_Gea8n5mihG.mp4
Remove pragma optimize off
Add IRenderContext::GetSubContext() to get or create a sub context for a new thread, use it in managedsceneobject
Render contexts can never be passed between threads; they can only be used on the thread that created them. The thread index will be set in the constructor and can't change after that.
This causes a problem in our current implementation of SceneCustomObject that reuses the threaded render context on the main thread and expects we can add things,modify and render it from there, for D3D11 it is not a problem since the implementation or driver seems to have a mutex for command lists, but on Vulkan that gives validation errors and causes crashes.
Valve has the concept of Secondary RenderContexts but doesn't fit what we need
This implements the concept of SubThreads to RenderContext, a very simple way to pass the render context around and consume it in a timely manner, it creates a new render context with the same characteristics as the parent one in a new thread and submits it when the parent context is released
EditorSplashScreen remove StaysOnTopHint - intrusive to all other OS windows and hides exception dialogs
Bail starting tools if our base projects fail to compile because nothing will work and it's impossible to recover
String table, empty entry unit test
Handle empty entry in StringTable
Don't try to multiple Term GameObjects
Differentiate between Network Root objects and network objects in tree
Fix network object serialization
Better errors when component deserialize errors
Don't network spawn disabled objects
Actually use the sky_camera offset/angle/scale in native
Delete unused 2d skybox tracking CSceneWorld::m_skyboxes
Restore deleted 3d skybox view layers
Delete SceneCamera.Skybox - this was a stupid way to do it
Add internal SceneSkybox3D, create this from skybox_reference in SceneMapLoader using its own MapLoader
SkyboxMapLoader loads 2d skybox
When serializing network objects, don't include child network objects
Updated Facepunch.ActionGraph
Handle exceptions in Panel.FinalLayout
Add Model.Cube, Sphere, Error
Add Particle.Get, Set for storing extra data
Add ParticleEffect.OnParticleCreated, OnParticleDestroyed
Fix panel NRE
Send ClientReady after snapshot load
Fix not waiting for OnLoad when joining server
Trim debug output
Refactor SteamLobby
Update SteamLobbyConnection id from ConnectionInfo
Fix NRE when reporting project errors
Remove some unused properties from voice
All sounds can compute amplitude now, add Voice.Amplitude and SoundHandle.Amplitude
ActionGraph: Output plug labelling
https://files.facepunch.com/ziks/1b1711b1/sbox-dev_U6sndV7yzy.mp4
Expose Editor.Application.FocusWidget
Update Facepunch.ActionGraph
Simplify ActionPlug<T>
Split up ActionNode.cs
Implement EnumControlWidget.IsControlActive
ControlSheet: return created widgets
ActionGraph: Fix some undo edge cases
Initial experiment to see if we can turn shaders into a normal compiled resource
Clean up
Always spew info for now
Don't need ShaderHooks stuff anymore
We will need another way to selectively compile in fast mode in future
Remove useless asserts
Load/reload prefabs with SmallNetworkFiles. Read compiled json with c# fs instead of using native (#1440)
Citizen/animgraph: do some move/wish trickery to improve the look of changing direction while swimming (sort of like leaning while running)
We don't need to route EngineLoop.Exiting via native
Fix engine convars not saving
Citizen/animgraph: added Swim_S, updated Swim_N, new Swim_Idle
Warnings as errors in PRs to match main CI
Load/reload prefabs with SmallNetworkFiles. Read compiled json with c# fs instead of using native
Remove PartyLobby (it's all broken, lets remove it and re-implement when we implement it)
Simplify ActionPlug<T>
Split up ActionNode.cs
Reset launch args when joining a server
Join active session by default, on map list
Make steam's richPresence kind of work
Move GameNetworkSystem.QueryLobbies to Networking.*
Don't initialize Id and Ip sockets yet, it's gonna cause confusion
Set the lobby map name better
Map instance loads particles
ActionGraph: Undo / redo
ActionGraph: Undo / redo property changes
Add GameObject.Network.OwnerConnection
Extract VoiceManager from VoiceComponent
Add Application.IsMicrophoneListening, IsMicrophoneRecording
Mic overlay
Add IsValidType and use that for now instead of IsValueType on the property. Support using `string` for Sync
Delete rendering world session, not used anymore
Don't support FIELD_VARIANT (not used) to get entity2 usage out of tier2
Don't include entitykeyvalues where it's not needed
CharacterController Sync vars don't have to be query now we have codegen
NetworkHelper respawn will auto use SpawnPoint components if available
Replace entitykeyvalues with keyvalues3 for map game data node
Trim down entitykeyvalues some more