usermattcancel
branchsbox/steaminputcancel

11 Commits over 31 Days - 0.01cph!

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
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
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
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
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
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
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