usermattcancel

92 Commits over 31 Days - 0.12cph!

Yesterday
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, do basic render & input for main menu. These transparently handle the differing coordinate systems from Source to OpenVR. Add VROverlayPanel<T> where T : RootPanel, acts like a normal VROverlay but automatically renders UI to it Render VR menu from menu addon using VROverlayPanel, render in 4K so it doesn't look shit Store VROverlays with WeakRef, sort out IDisposable to delete VROverlayPanel.RootPanel VROverlay input system for UI using input data from OpenVR Handle scroll events on vr overlays, turn it into InputData for UI Custom OpenVR interop bindings, grab the OpenVR interfaces from engine Lets us cut out loads of bullshit making things way simpler and neater. Restore viewport after rendering in VROverlayPanel Simulate VR overlay mouse position properly from scale Make engine construct OpenVR texture handles instead since they're graphics API specific Update MouseScale properly on vr panel overlays Update vr overlay panel render texture when panel bounds change Hide vr overlays if vr dashboard is open Document on when you should use an overlay vs a worldpanel Dispose of all vr overlays on game end that may not have been picked up by GC yet Prevent redundant calls to OpenVR in property setters Expose TriggerLaserMouseHapticVibration for VR overlays, add quick test case to pulse when hovering panels tidy up, unfuck namespaces / class names / docs Fix vr overlays crashing from wrong thread by using a device thread callback ( even though we were in a render thread anyway? ) Make VR overlays work in-game, hide them when the main menu overlay is showing Fix interop issues from rebase/squash Decide if VROverlayPanel does input from pointer-events Allow absolute overlay transforms from seated or standing origins Add relative overlay transforms from other overlays (they inherit visibility too) Add Overlay.SetHudTransform( Transform ), set it relative to system.HeadsetView overlay view Start exposing IVRInput to the managed engine, let us interact with actions internally ( shit like /user/hand/right ) Add relative overlays to tracked devices misc mark shit as internal, fixes, tidy up
2 Days Ago
Network Client.IsBot so it works clientside
3 Days Ago
tidy up, unfuck namespaces / class names / docs Fix vr overlays crashing from wrong thread by using a device thread callback ( even though we were in a render thread anyway? ) Make VR overlays work in-game, hide them when the main menu overlay is showing
5 Days Ago
Dispose of all vr overlays on game end that may not have been picked up by GC yet Prevent redundant calls to OpenVR in property setters Expose TriggerLaserMouseHapticVibration for VR overlays, add quick test case to pulse when hovering panels
5 Days Ago
Make engine construct OpenVR texture handles instead since they're graphics API specific Update MouseScale properly on vr panel overlays Update vr overlay panel render texture when panel bounds change Hide vr overlays if vr dashboard is open Document on when you should use an overlay vs a worldpanel
7 Days Ago
Use our own interop bindings for OpenVR, grab interface from engine Refactor VROverlay, just set stuff once in property setters instead of in render thread No need for a separate MainMenuPanel impl for VR, just make a VROverlayPanel of it Restore viewport after rendering in VROverlayPanel Simulate VR overlay mouse position properly from scale
9 Days Ago
Store VROverlays with WeakRef, sort out IDisposable to delete VROverlayPanel.RootPanel VROverlay input system for UI using input data from OpenVR Handle scroll events on vr overlays, turn it into InputData for UI Make vr controllers scroll UI the right way and consume the delta after it's used VR mainmenu, split out the lobby bar into a seperate offset overlay
10 Days Ago
VROverlay: handle key management automatically internally Add VROverlayPanel<T> where T : RootPanel, acts like a normal VROverlay but automatically renders UI to it Render VR menu from menu addon using VROverlayPanel, render in 4K so it doesn't look shit
12 Days Ago
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 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 Iterate on VROverlay API, make the coordinate system match engine, poll events and simulate input in the menu.
12 Days Ago
Fix Event.Hotload not calling on the server, fixes network tables not updating on hotload and probably other shit
14 Days Ago
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
14 Days Ago
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
15 Days Ago
Make sure we update our GameAssembly hash on initial load, fixes all networking errors
15 Days Ago
Make non public and inherited methods register for events again
16 Days Ago
fix build log discord post on long message commits
16 Days Ago
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.
20 Days Ago
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.
20 Days Ago
Fix missing game lobby settings
20 Days Ago
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.
21 Days Ago
Allow RootPanel.Parent = null though
21 Days Ago
Throw if trying to set RootPanel.Parent Fix a couple of NREs preventing -dedicated from working
22 Days Ago
Expose and doc more on WorldInput public class; UseMouseInput allows nice usage with Input.Cursor rays
22 Days Ago
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
23 Days Ago
SetProperty fallback on [Property] attributes, fixes map entities not working from having their properties not set
23 Days Ago
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
23 Days Ago
Fix coding errors, remove obsolete and unused shit
23 Days Ago
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
24 Days Ago
Add a rotating camera around the hole after you putt ScoreFeed handle hole in ones correctly
26 Days Ago
Add transform: scalex, scaley (scale was already supported)
26 Days Ago
Add scss transform: translate( <length>, <length>? ) ( translateX, translateY were already supported )
26 Days Ago
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.
26 Days Ago
Fix player par being set on the wrong index
27 Days Ago
Uncomplicate course info bullshit, shouldn't fall over on a full update either now too
27 Days Ago
Cleanup PowerArrow on Ball destruction
27 Days Ago
Don't write empty modeldata.fgd
27 Days Ago
Add [Net] support for generic IDictionary<TKey, TVal>
27 Days Ago
Add tests for combinations of [Net] IDictionary<TKey, TVal>
27 Days Ago
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>
27 Days Ago
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
28 Days Ago
Cleanup and simplify replicated lists code gen, give better feedback if using List<T>
28 Days Ago
Remove obsolete crap Ball traces should collide with PLAYER_CLIP Special case hole in one text, split all scores onto seperate lines Stop freecam when in play or cupped, add UI indicator of free cam, experiment with limiting time to challenge users on tricky hole layouts Add a basic stencil mask to the ball so we can see it behind walls Remove more obsolete PhysicsBody code Track ball position before shot and reset to that on out of bounds
28 Days Ago
Add [Net] support for IDictionary<U, object> where U in unmanaged initially
28 Days Ago
31 Days Ago
Use Global.Lobby to wait for all lobby members to load ( start anyway after 60s ) If a client joins late, mark them as a latecomer and give them a shitty score Don't submit latecomers scores to GameServices Don't transmit water trigger to clients, fix error models Add VisGroup.Trigger to all trigger-like map entities
31 Days Ago
Apply big friction when in water, remove redundant calls to PhysicsBody, add water splash + dev texture auto apply Fix out of bounds applying to cupped balls
31 Days Ago
Hook up out of bounds with forgiveness time Update out of bounds UI to use intro/outro pseudo classes
31 Days Ago
Show the right par header for each hole in the scoreboard Color scores on scoreboard below & over par, leave holes not scored on yet as -
31 Days Ago
AutoApplyMaterial dev textures to hole boundary entities
31 Days Ago
custom physics impact effects Nudge out along the hit normal slightly so we don't have to constantly unfuck ourself, also allows spheres to be used for movement project velocity onto ground plane to remove gravity when on ground Apply friction based on ground surface, rotate ball from velocity, trace ignore golf_ball tags, turn off prediction for movement solver, remove obsolete physics code Use RealTime for power input Water oob: turn off prediction and run serverside only
31 Days Ago
Apply friction based on ground surface, rotate ball from velocity, trace ignore golf_ball tags, turn off prediction for movement solver, remove obsolete physics code Use RealTime for power input