1,460 Commits over 1,157 Days - 0.05cph!
Fix Event.Hotload not calling on the server, fixes network tables not updating on hotload and probably other shit
Basic VROverlay in Sandbox.Menu with a render target texture of the menu UI - probably a shit place for it but can be moved easily.
https://files.facepunch.com/matt/1b1811b1/vrmonitor_A6tO3ufJP9.png
OpenVR update 1.10.20 -> 1.16.8, resolve deprecated crap
Add internal managed code bindings for OpenVR interfaces to Sandbox.Engine
VROverlay class in managed with rendering props and render update loop
Make sure we update our GameAssembly hash on initial load, fixes all networking errors
Make non public and inherited methods register for events again
fix build log discord post on long message commits
Ensure resident model resources get added to the manifest, fixes error models from missing resources in manifest.
This would specifically happen if a server starts a game / map a second time, the resources would remain resident,
so when a client does their initial join these models are missing from the manifest resulting in an error.
If the client had previously joined on the first time their resources would already be resident and not error.
Simplest way to do it, rather then change (and slow down) how the rest of the resource system works.
If a resource we try to preload returns an error handle, don't keep the handle alive. Map resources specifically will become valid and load automatically after this.
Change WorldInput API to instances to resolve issues and allow simultaneous inputs.
* Replace WorldInput.Update with instanced WorldInput fixing hovering and clicking issues as well as allowing simultaneous inputs.
* Resolved various issues with WorldPanel.RayToLocalPosition not using the right axis, being inverted and not scaling.
* Simulate double click and mousemove events for world inputs.
* Fix right clicks not working on WorldInput.
Fix missing game lobby settings
Fix world panel input by changing WorldInput.Update to [Event.WorldInput.Build] called from the input system.
WorldPanel.RayToLocalPosition: fix wrong local position being used for inside checks
Simulate right (and middle) mouse button properly in world panel input.
Iterate on WorldInput, allow multiple simulated inputs at the same time by migrating state to games
Fix inverted x pos and lack of world scale awareness in WorldPanel ray to local code
Use WeakReferences of WorldInputs to iterate, gives addon state full ownership and lets GC work nicely.
Clear WorldInput reference list on LoopEvent.Init/Shutdown
Expose and doc more on WorldInput public class; UseMouseInput allows nice usage with Input.Cursor rays
Simulate ondoubleclick & onmousemove events, add WorldInput.Enabled for toggling easily, tidy and refactor UISystem a bit fix potential NREs, small optimizations.
Allow RootPanel.Parent = null though
Throw if trying to set RootPanel.Parent
Fix a couple of NREs preventing -dedicated from working
Expose and doc more on WorldInput public class; UseMouseInput allows nice usage with Input.Cursor rays
Fix world panel input by changing WorldInput.Update to [Event.WorldInput.Build] called from the input system.
WorldPanel.RayToLocalPosition: fix wrong local position being used for inside checks
Simulate right (and middle) mouse button properly in world panel input.
Iterate on WorldInput, allow multiple simulated inputs at the same time by migrating state to games
Fix inverted x pos and lack of world scale awareness in WorldPanel ray to local code
Use WeakReferences of WorldInputs to iterate, gives addon state full ownership and lets GC work nicely.
Clear WorldInput reference list on LoopEvent.Init/Shutdown
SetProperty fallback on [Property] attributes, fixes map entities not working from having their properties not set
Generator error if you try to [Net] a static property
INetworkSerializer.Read: use ref of NetRead
NetWrite.Write don't try to blindly write ref or containing ref types
Fix world panel input by changing WorldInput.Update to [Event.WorldInput.Build] called from the input system.
WorldPanel.RayToLocalPosition: fix wrong local position being used for inside checks
Simulate right (and middle) mouse button properly in world panel input.
Iterate on WorldInput, allow multiple simulated inputs at the same time by migrating state to games
Fix inverted x pos and lack of world scale awareness in WorldPanel ray to local code
Add transform: scalex, scaley (scale was already supported)
Add scss transform: translate( <length>, <length>? ) ( translateX, translateY were already supported )
Fix world panel input by changing WorldInput.Update to [Event.WorldInput.Build] called from the input system.
WorldPanel.RayToLocalPosition: fix wrong local position being used for inside checks
Simulate right (and middle) mouse button properly in world panel input.
Don't write empty modeldata.fgd
Add [Net] support for generic IDictionary<TKey, TVal>
Make [Net] work on IList<T>, deprecate List<T> to prevent confusing behaviour
Use VarUnmanagedList on ITypeSymbol.IsUnmanagedType
Cleanup and simplify replicated lists code gen, give better feedback if using List<T>
Add [Net] support for IDictionary<U, object> where U in unmanaged initially
Add support for generic dictionaries where key/val both support unmanaged or class constraints
Cleanup and simplify replicated lists code gen, give better feedback if using List<T>
Add [Net] support for IDictionary<U, object> where U in unmanaged initially
Allow static array initializers
NetRead.ReadObject: read floats correctly
If text-stroke-color is not set default to color
Add `text-stroke <length> <color>` shorthand
Fix local client's steamid being incorrect serverside in singleplayer games
Clear a panel's input focus when it is deleted
Whitelist
System.Collections.ObjectModel.*
System.MidpointRounding*
System.Runtime.CompilerServices.IsByRefLikeAttribute
System.EventArgs* & System.EventHandler*
Trace: Fix AnyTags behaving same as AllTags, WithoutTags accepts multiple string params
Texture.Load respect warnOnMissing when FileNotFoundException is thrown
If no FOV is set by Camera use the default one from engine CameraSetup (default_fov convar)
Stop engine forcing default_fov to 70 every frame
Video settings:add default fov slider
Fix Panel translation transform transitions, make default length unit match
BaseGamePanel: Check if Package.Config is null
SceneObject use CRenderAttributes to match Render.Set functionality ( SceneObject.SetValue now accepts int, string, Vector2, Matrix )
SceneObject use CRenderAttributes to match Render.Set functionality ( SceneObject.SetValue now accepts int, string, Vector2, Matrix )
Obsolete Material.GetName() use Material.Name
Download ignore .obj and other png material source files (normal, rough, etc.)
Experiments
Default override Player.ShouldLagCompensate to return true
This tells the lag compensation to record this entity, ShouldLagCompensateForClient says if we should rewind.
Don't automatically add all pawns to lag compensation, let them opt in ( Base Player defaults to true )
Add debug prints to make sure we're actually back tracking
Don't automatically add all pawns to lag compensation, let them opt in ( Base Player defaults to true )
Add debug prints to make sure we're actually back tracking
Default override Player.ShouldLagCompensate to return true
This tells the lag compensation to record this entity, ShouldLagCompensateForClient says if we should rewind.
Fix NRE crash when calling null YogaNode on a deleted panel
TaskSource.IsValid internal setter
Don't allow default maxplayers to exceed MAX_PLAYERS
Fix rare access violation in CSceneSystem::DeleteSceneObjectAtFrameEnd
SendNetMessage: assert we're in the main thread, catch any potential fuck ups again
Only release particles in main thread, fixes disconnect errors caused by sending net messages from background GC thread