usermattcancel
reposboxcancel

1,460 Commits over 1,157 Days - 0.05cph!

3 Years Ago
Remove extra EndGlobalSection from .sln - fixes Rider being unable to open solution When upgrading .addon to new schema default SharedAssets to `*.*`
3 Years Ago
Fix hanging from SetParent, forgot to stage this fix oops
3 Years Ago
Don't allow entities to try and become children of their children, throw a warning for creators - fixes infinite recursion crash.
3 Years Ago
Fix InputBuilder.Pressed/Up not working properly with controller input
3 Years Ago
Add optional argument to Input.GetGlyph specifying glyph size. ( Small: 32px, Med: 64px, Large: 128px ) Input.GetGlyph( InputButton ) will now return glyphs in the same knockout style as controller glyphs https://files.facepunch.com/matt/1b1311b1/glyphs.png Clear all cached handles when a new Steam Input config is loaded
3 Years Ago
Whitelist ZipArchive properly so you can pass a Stream and whitelist various System.IO exceptions.
3 Years Ago
Small fix with controller config (exporter missed a #?)
3 Years Ago
Update Steamworks SDK 1.53 Resolve deprecated SteamNetworkingSockets usage Controller API in Sandbox.Engine wrapping Steam Input internally with proper async glyph loading Better controller support in C# Input system with Steam Input. New methods: * Input.UsingController - true if the last input from a user was from a controller (accessible serverside too) * Input.GetAxis( InputAnalog ) - get the raw analog axis from a controller, move / look / triggers. * Input.GetGlyph( InputButton / InputAnalog ) - Get a controller-specific glyph texture for the bound InputButton ( if using controller ) * Input.GetButtonOrigin( InputButton / InputAnalog ) - Get context specific button, e.g InputButton.Jump would return 'SPACE' or 'A Button' Users can bind any InputButton to various controller devices by opening the binding panel from the settings menu. Default configurations for Xbox One and PS4 controllers, other devices should derive nicely from these, let us know if not. InputButton: Obsolete a bunch of unused/unbound buttons that made no sense. Strip native InputSystem of legacy code for XInput / Joystick / Steam Controller.
3 Years Ago
Final code/doc cleanup, fix Controller.All returning disconnected ones
3 Years Ago
Add Input.GetAnalog( InputAnalog ) returns a Vector2 of either Move, Look or Trigger - can be used serverside too. Strip XInput / Joystick methods completely from InputSystem, remove workarounds / hacks around it since we just do it all in C# now Add Input.GetGlyph( InputAnalog ) - split InputAnalog.Trigger into LeftTrigger, RightTrigger so you can get the glyphs Add action manifest file with PS4 / Xbox One configs ( other controllers should derive nicely from these ) Very simple controller settings button in main menu to open bindings Don't cache invalid handles in the Controller API, seems to be a few ms where handles are invalid when a controller is plugged in.
3 Years Ago
Update Steamworks SDK 1.53 Resolve deprecated SteamNetworkingSockets usage Controller API in Sandbox.Engine wrapping Steam Input internally with proper async glyph loading Use Controller API for Input, all InputButton are bindable from Steam Input. New methods: * Input.UsingController - true if the last input from a user was from a controller (accessible serverside too) * Input.GetGlyph( InputButton ) - Get a controller-specific glyph texture for the bound InputButton ( if using controller ) * Input.GetButtonOrigin( InputButton ) - Get context specific button, e.g InputButton.Jump would return 'SPACE' or 'A Button' InputButton: Obsolete a bunch of unused/unbound buttons that made no sense Remove old Steam Controller initialization from C++ engine and disable XInput Remove dead or legacy code / tidy InputSystem/UserCmd
3 Years Ago
Disable videomode settings when in tools as it's handled by the widget (prevents user getting into an infinitely tiling window state)
3 Years Ago
Fix generated ISteamInput interface not handling arrays for originsOut which would just crash if a user has multiple buttons for an action Remove InputButton enums that were completely unused and unbound to avoid API confusion Ditch seperate DigitalAction enum, let Steam Input bind any InputButton as a digital action. Make Controller an internal class that we use from the public Input class instead Add clientside Input.GetGlyph( InputButton ) and Input.GetButtonOriginName( InputButton ) which return dependent on active input device. ( Need to source some M+KB glyphs really )
3 Years Ago
Throw a nicer exception if you try to add children to something that shouldn't have them ( <text>, <img> )
3 Years Ago
Update Steamworks SDK 1.53 Resolve deprecated SteamNetworkingSockets usage Add ISteamInput interface to managed and callback forwarders Controller API using Steam Input; glyph textures, multiple controller support, analog states, etc. Use C# Controller API in InputBuilder to replicate default Source behaviour with Steam Input & disable XInput devices in C++ engine Don't spam the Event.Controller events if Steam Input spams us, derive Controller hash code from handle, add missing AnalogAction glyph getter Add action manifest files and load them, add default configs for Xbox One / PS4 controllers ( I think everything else should derive from this )
3 Years Ago
Fix NRE on unsized Image panel with no texture
3 Years Ago
<img> panel will now default size to their Texture size
3 Years Ago
When rendering an Image panel mimick background-size: cover instead of contain - fix it looking shit at edges
3 Years Ago
Add Open Visual Studio & Regenerate Solution options to editor window
3 Years Ago
Fix InputBuilder From/To UserCmd wrongly using static instance which meant you couldn't manipulate it properly on bots Remove long obsolete InputBuilder.CursorAim/CursorOrigin ( Use InputBuilder.Cursor instead )
3 Years Ago
Update Steamworks SDK 1.53 Resolve deprecated SteamNetworkingSockets usage Add ISteamInput interface to managed and callback forwarders Controller API using Steam Input; glyph textures, multiple controller support, analog states, etc. Use C# Controller API in InputBuilder to replicate default Source behaviour with Steam Input & disable XInput devices in C++ engine
3 Years Ago
Ignore uncompiled texture .jpg when sending files to client Parse CSS floats / ints with InvariantCulture in generated code too, should fix remaining issues with odd regional setups
3 Years Ago
Add ISteamInput interface from Facepunch.Steamworks Initialize Steam Input from managed Add dispatch events to SteamInput for device callbacks dis/connected, these are always called for already connected controllers Update Steamworks 1.53 for Steam Input improvements including Steam Deck support Update networksystem to resolve removal of deprecated funcs / renaming in Steamworks 1.58 SteamInput.EnableDeviceCallbacks() - should be giving us controller connected / disconnected events but isn't, steamworks bug? Basic action manifest with menu & ingame controls sets, in future we could provide a lot more versatile sets for different genres Start exposing a Controller class in Sandbox.Game, let's make them easily grabbable so we can do UI or BuildInput with them directly Chuck up some debug panels in the input settings menu for each connected controller to debug features Async steam input glyph texture loader Generalize Steam Input into a Controller API, abstract all actions into enums close to our pre-existing IN_ actions Quick button prompt panel e.g `<ControllerActionHint ActionName="Jump">`, uses relevant user's bound controller glyphs. Forward SteamInput callbacks to C# Steamworks properly Poll action handles until they're non zero, workaround for a known bug where we shouldn't be needing to do this Update IGA file to match enums and action manifest, add a basic PS4 controller manifest Remove dead code Manage controller connected with callbacks and add events for connected / disconnected, this should keep handles in place too on reconnects Controller.TriggerVibration: accept normalized floats instead of 0 <-> ushort.MaxValue and support Xbox trigger impusle rumble. Disable XInput init / polling in inputsystem, handle it all in managed via Steam Input Controller API Init/Poll in Sandbox.Client too Iterate more on Controller API, replicate Down/Pressed/Up methods of InputBuilder, document more shit Create controller input in InputBuilder from managed Controller API ( maybe this should be in base instead so the user can override it for whatever reason? ) Initial work on UI navigation with controller
3 Years Ago
Use InvariantCulture when parsing time in scss too
3 Years Ago
Fix initial fgd autogen needing config folder to exist
3 Years Ago
Remove dead code Manage controller connected with callbacks and add events for connected / disconnected, this should keep handles in place too on reconnects Controller.TriggerVibration: accept normalized floats instead of 0 <-> ushort.MaxValue and support Xbox trigger impusle rumble.
3 Years Ago
Forward SteamInput callbacks to C# Steamworks properly Poll action handles until they're non zero, workaround for a known bug where we shouldn't be needing to do this Update IGA file to match enums and action manifest, add a basic PS4 controller manifest
3 Years Ago
Add ISteamInput interface from Facepunch.Steamworks Initialize Steam Input from managed Add dispatch events to SteamInput for device callbacks dis/connected, these are always called for already connected controllers Update Steamworks 1.53 for Steam Input improvements including Steam Deck support Update networksystem to resolve removal of deprecated funcs / renaming in Steamworks 1.58 SteamInput.EnableDeviceCallbacks() - should be giving us controller connected / disconnected events but isn't, steamworks bug? Basic action manifest with menu & ingame controls sets, in future we could provide a lot more versatile sets for different genres Start exposing a Controller class in Sandbox.Game, let's make them easily grabbable so we can do UI or BuildInput with them directly Chuck up some debug panels in the input settings menu for each connected controller to debug features Async steam input glyph texture loader Generalize Steam Input into a Controller API, abstract all actions into enums close to our pre-existing IN_ actions Quick button prompt panel e.g `<ControllerActionHint ActionName="Jump">`, uses relevant user's bound controller glyphs.
3 Years Ago
If we surpass MAX_ACTUAL_RENDERTARGETS don't try to allocate more, fixes buffer overflow crashes (cherry picked from commit 124a7d351686733fe63d829c49ee65f18aec8359) Double MAX_ACTUAL_RENDERTARGETS to 256, with people making their own tools 128 would easily get hit (cherry picked from commit 08628fb0f855688c84909b976a2d3b3c3cd678da)
3 Years Ago
Backport engine fix for debug scratch rendertargets running out
3 Years Ago
Support loading font files with SemiLight (350) or ExtraBlack (950) names Fix NRE in stylesheet parser if an invalid file is requested Parse floats properly in stylesheets with InvariantCulture Add WaterSceneObject's PlanarReflection as a scene object child properly
3 Years Ago
Support loading font files with SemiLight (350) or ExtraBlack (950) names Add ISteamInput interface from Facepunch.Steamworks Initialize Steam Input from managed Add dispatch events to SteamInput for device callbacks dis/connected, these are always called for already connected controllers Update Steamworks 1.53 for Steam Input improvements including Steam Deck support Update networksystem to resolve removal of deprecated funcs / renaming in Steamworks 1.58 SteamInput.EnableDeviceCallbacks() - should be giving us controller connected / disconnected events but isn't, steamworks bug? Basic action manifest with menu & ingame controls sets, in future we could provide a lot more versatile sets for different genres Start exposing a Controller class in Sandbox.Game, let's make them easily grabbable so we can do UI or BuildInput with them directly Chuck up some debug panels in the input settings menu for each connected controller to debug features
3 Years Ago
▊▇▉ ▇▅ #▆▊▉▅▇ ▋▅█▅▄▇ ▄▉ ▅▆ ▌▆▉▌█▌▉▅▍ ▆▇▋▋▅▋█ ▊▍▋▌█▇▌ ▍▍▊▄▋ █▊▇▉, ▊▆▉ ▇▌▊▌ ▇▊█▊ ▍▍ ▍ ▇▇▇ ▊▋▅▋▇ ▋█▇▉▍▋ ▋▌▊▆▍▌▅█▉
3 Years Ago
▆▍▇ ▍▉▅▅▍▇▍▄▋▊ ▌▋▄▊▇▄ ▅▊▊▍▆ ▊▋ ▄_▍▅▌▍█▄▅▅▋▇::▇▄▊▉▉▉█, ▇▇▋▅▊ ▉▋▍▇▇ ▋▉ ▄▄▇▌▅▅▌▉▍ ▉▊█▊/▄▊▆▆█▊ ▅▅█▍ ▆▍▌▇▊▄▍ ▅▋▇▊▋▆▍ ▆▉▇▊▄▉ ▌▋▇█▊▌▉▋ ▍▋▊ █▊▅▄▌▆▌▅█ ▍▇ ▌ ▄▄▆█▇▄▌▆█▄▍▄▉▊█ ▊▌▉▆▆▄▋▅ ▄▅▌▇ ▇▉█ ▉▉█▌▆█▇█ ▅▊ ▄█▆▇▋▄█, ▆▋▆▇▍▋▄▌ ▇▌▅▆█▊█▋▍ ██▊▋█▄▆ █▇▊▅▊▉ ▋▇▄█▅▉▇ ▅▊▋▇▍▌▉▆ ▅▋▄▊▊▆▍▇█▋ ▋▋ ▍▍▉▄▌▆▋▅, ▌▆▄█▌ █▌▌ ▊▆▋▉█▄▆▉▉▉▍ ▆▌ ▄▊▊ ▇▋▇▅ ▄▋█▋ ▄▇▇▍▋ ▉▋▆█▄▋▅▍ ▆▇ ▍▊▄ █▇▆▉▆▋ ▉▇▄▄ ▄▊▋▌▋▍█▄▊ ▇▌ ▄ ▌▊▌▋▇█▋▅ ██ █▄▆▅▉▉▅▊▇▇█ ▊▅▋▇▌▇ ▍ ▋▆▆▆▅ ██ ▉▊▉ █▅▊ ▍▊▊▅▋▊▊█ ▍▍ ▄▄▉▊▆▉▄█▉ ▅▋█ ▆▆▅▍▋▋▍ ▍▊▅▆▋. ▉▄▉▉▊▅▋█ ▌▆▅▆▊▌ ▆▄▉▄ ▍▍▌▉ ▇█▄ ▋▍▌▉▍▇▍ ▌▋ ▅▅▄ ▉▋▇▇ ▆▉▄▄▍ ▇▍█▌▇▉▆ = ▆▌▍▋▄▉▌
3 Years Ago
Remove redundant inherited member on MainMenuPanel
3 Years Ago
Don't render panels on invisible overlay panels 🤦 optimize some other code paths too
3 Years Ago
OpenVR update 1.10.20 -> 1.16.8, resolve deprecated crap Interopgen OpenVR's IVROverlay to managed engine Add VROverlayPanel - these are panels rendered in local VR space over the world, input is automatically simulated VR.Init() in MenuDll, set VR.Enabled in Init only since it never changes When in VR create a main menu with an VROverlayPanel, make this wide and 4k so it doesn't look ass Basic interop of IVRInput to managed, get action origins & add VROverlay.SetTransformRelative( VRTrackedDevice ) Add console commands from Sandbox.Menu dll making menu_reload work again Add missing internals to a couple OpenVR structs Add float.MeterToInch / float.InchToMeter extension methods Make main menu VR overlay properly show when ingame Make the loading screen show in VR, add VROverlay.SortOrder, add RootPanel.IsVR set when a RootPanel is owned by a VROverlay If VR is enabled make the GameList.ControlTag default to VR Add 4k & 8k render target sizes to be used as scratch ( dx11 max texture size = 16k ) Use a copy of the current viewport instead of framebuffer when rendering panel backdrop filters Adjust main menu vr size / scaling to a more square aspect ratio and scale it bigger so it's not difficult to read
3 Years Ago
Adjust main menu vr size / scaling to a more square aspect ratio and scale it bigger so it's not difficult to read
3 Years Ago
If VR is enabled make the GameList.ControlTag default to VR Add 4k & 8k render target sizes to be used as scratch ( dx11 max texture size = 16k ) Use a copy of the current viewport instead of framebuffer when rendering panel backdrop filters
3 Years Ago
Add console commands from Sandbox.Menu dll making menu_reload work again Add missing internals to a couple OpenVR structs Add float.MeterToInch / float.InchToMeter extension methods Make main menu VR overlay properly show when ingame Make the loading screen show in VR, add VROverlay.SortOrder, add RootPanel.IsVR set when a RootPanel is owned by a VROverlay
3 Years Ago
OpenVR update 1.10.20 -> 1.16.8, resolve deprecated crap Interopgen OpenVR's IVROverlay to managed engine Add VROverlayPanel - these are panels rendered in local VR space over the world, input is automatically simulated VR.Init() in MenuDll, set VR.Enabled in Init only since it never changes When in VR create a main menu with an VROverlayPanel, make this wide and 4k so it doesn't look ass Basic interop of IVRInput to managed, get action origins & add VROverlay.SetTransformRelative( VRTrackedDevice )
3 Years 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, 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
3 Years Ago
Network Client.IsBot so it works clientside
3 Years 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
3 Years 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
3 Years 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
3 Years 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
3 Years 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
3 Years 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
3 Years 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.