mirror of
https://github.com/Facepunch/Facepunch.Steamworks.git
synced 2025-04-11 03:50:05 +03:00
Add SteamInput Get(Analog|Digital)ActionOrigin; SteamUtils ShowFloatingKeyboardTextInput
This commit is contained in:
parent
a6677dbe04
commit
0c3f4ec5fc
@ -216,7 +216,7 @@ namespace Steamworks
|
|||||||
var returnValue = _GetDigitalActionOrigins( Self, inputHandle, actionSetHandle, digitalActionHandle, ref originsOut );
|
var returnValue = _GetDigitalActionOrigins( Self, inputHandle, actionSetHandle, digitalActionHandle, ref originsOut );
|
||||||
return returnValue;
|
return returnValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
#region FunctionMeta
|
#region FunctionMeta
|
||||||
[DllImport( Platform.LibraryName, EntryPoint = "SteamAPI_ISteamInput_GetStringForDigitalActionName", CallingConvention = Platform.CC)]
|
[DllImport( Platform.LibraryName, EntryPoint = "SteamAPI_ISteamInput_GetStringForDigitalActionName", CallingConvention = Platform.CC)]
|
||||||
private static extern Utf8StringPointer _GetStringForDigitalActionName( IntPtr self, InputDigitalActionHandle_t eActionHandle );
|
private static extern Utf8StringPointer _GetStringForDigitalActionName( IntPtr self, InputDigitalActionHandle_t eActionHandle );
|
||||||
|
@ -1048,7 +1048,7 @@ namespace Steamworks
|
|||||||
//
|
//
|
||||||
// EInputActionOrigin
|
// EInputActionOrigin
|
||||||
//
|
//
|
||||||
internal enum InputActionOrigin : int
|
public enum InputActionOrigin : int
|
||||||
{
|
{
|
||||||
None = 0,
|
None = 0,
|
||||||
SteamController_A = 1,
|
SteamController_A = 1,
|
||||||
@ -1996,7 +1996,7 @@ namespace Steamworks
|
|||||||
Count = 386,
|
Count = 386,
|
||||||
MaximumPossibleValue = 32767,
|
MaximumPossibleValue = 32767,
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// ESteamControllerLEDFlag
|
// ESteamControllerLEDFlag
|
||||||
//
|
//
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
using System;
|
using System;
|
||||||
using Steamworks.Data;
|
using Steamworks.Data;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
using System.Diagnostics;
|
||||||
|
|
||||||
namespace Steamworks
|
namespace Steamworks
|
||||||
{
|
{
|
||||||
@ -11,6 +14,8 @@ namespace Steamworks
|
|||||||
{
|
{
|
||||||
internal static ISteamInput Internal => Interface as ISteamInput;
|
internal static ISteamInput Internal => Interface as ISteamInput;
|
||||||
|
|
||||||
|
internal static int STEAM_INPUT_MAX_ORIGINS = 16;
|
||||||
|
|
||||||
internal override bool InitializeInterface( bool server )
|
internal override bool InitializeInterface( bool server )
|
||||||
{
|
{
|
||||||
SetInterface( server, new ISteamInput( server ) );
|
SetInterface( server, new ISteamInput( server ) );
|
||||||
@ -82,6 +87,24 @@ namespace Steamworks
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Return an array of all origins mapped to the provided analog action
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static InputActionOrigin[] GetAnalogActionOrigins( Controller controller, string action )
|
||||||
|
{
|
||||||
|
InputActionOrigin[] origins = new InputActionOrigin[STEAM_INPUT_MAX_ORIGINS];
|
||||||
|
|
||||||
|
Internal.GetAnalogActionOrigins(
|
||||||
|
controller.Handle,
|
||||||
|
Internal.GetCurrentActionSet( controller.Handle ),
|
||||||
|
GetAnalogActionHandle( action ),
|
||||||
|
ref origins[0]
|
||||||
|
);
|
||||||
|
return origins;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Return an absolute path to the PNG image glyph for the provided digital action name. The current
|
/// Return an absolute path to the PNG image glyph for the provided digital action name. The current
|
||||||
/// action set in use for the controller will be used for the lookup. You should cache the result and
|
/// action set in use for the controller will be used for the lookup. You should cache the result and
|
||||||
@ -93,18 +116,37 @@ namespace Steamworks
|
|||||||
public static string GetDigitalActionGlyph( Controller controller, string action )
|
public static string GetDigitalActionGlyph( Controller controller, string action )
|
||||||
{
|
{
|
||||||
InputActionOrigin origin = InputActionOrigin.None;
|
InputActionOrigin origin = InputActionOrigin.None;
|
||||||
|
InputActionOrigin[] origins = new InputActionOrigin[16];
|
||||||
|
|
||||||
Internal.GetDigitalActionOrigins(
|
int originCount = Internal.GetDigitalActionOrigins(
|
||||||
controller.Handle,
|
controller.Handle,
|
||||||
Internal.GetCurrentActionSet(controller.Handle),
|
Internal.GetCurrentActionSet(controller.Handle),
|
||||||
GetDigitalActionHandle(action),
|
GetDigitalActionHandle(action),
|
||||||
ref origin
|
ref origin
|
||||||
);
|
);
|
||||||
|
|
||||||
return Internal.GetGlyphForActionOrigin_Legacy(origin);
|
return Internal.GetGlyphForActionOrigin_Legacy(origin);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Return an array of all origins mapped to the provided digital action
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static InputActionOrigin[] GetDigitalActionOrigins( Controller controller, string action )
|
||||||
|
{
|
||||||
|
InputActionOrigin[] origins = new InputActionOrigin[STEAM_INPUT_MAX_ORIGINS];
|
||||||
|
|
||||||
|
Internal.GetDigitalActionOrigins(
|
||||||
|
controller.Handle,
|
||||||
|
Internal.GetCurrentActionSet( controller.Handle ),
|
||||||
|
GetDigitalActionHandle( action ),
|
||||||
|
ref origins[0]
|
||||||
|
);
|
||||||
|
return origins;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Return an absolute path to the PNG image glyph for the provided digital action name. The current
|
/// Return an absolute path to the PNG image glyph for the provided digital action name. The current
|
||||||
/// action set in use for the controller will be used for the lookup. You should cache the result and
|
/// action set in use for the controller will be used for the lookup. You should cache the result and
|
||||||
@ -119,6 +161,14 @@ namespace Steamworks
|
|||||||
return Internal.GetGlyphPNGForActionOrigin( origin, size, 0 );
|
return Internal.GetGlyphPNGForActionOrigin( origin, size, 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Return an absolute path to the PNG image glyph for the provided action origin
|
||||||
|
/// </summary>
|
||||||
|
public static string GetPngActionGlyphForOrigin( InputActionOrigin origin, GlyphSize size )
|
||||||
|
{
|
||||||
|
return Internal.GetGlyphPNGForActionOrigin( origin, size, 0 );
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Return an absolute path to the SVF image glyph for the provided digital action name. The current
|
/// Return an absolute path to the SVF image glyph for the provided digital action name. The current
|
||||||
/// action set in use for the controller will be used for the lookup. You should cache the result and
|
/// action set in use for the controller will be used for the lookup. You should cache the result and
|
||||||
|
@ -30,6 +30,7 @@ namespace Steamworks
|
|||||||
Dispatch.Install<LowBatteryPower_t>( x => OnLowBatteryPower?.Invoke( x.MinutesBatteryLeft ), server );
|
Dispatch.Install<LowBatteryPower_t>( x => OnLowBatteryPower?.Invoke( x.MinutesBatteryLeft ), server );
|
||||||
Dispatch.Install<SteamShutdown_t>( x => SteamClosed(), server );
|
Dispatch.Install<SteamShutdown_t>( x => SteamClosed(), server );
|
||||||
Dispatch.Install<GamepadTextInputDismissed_t>( x => OnGamepadTextInputDismissed?.Invoke( x.Submitted ), server );
|
Dispatch.Install<GamepadTextInputDismissed_t>( x => OnGamepadTextInputDismissed?.Invoke( x.Submitted ), server );
|
||||||
|
Dispatch.Install<FloatingGamepadTextInputDismissed_t>( x => OnFloatingGamepadTextInputDismissed?.Invoke(), server );
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void SteamClosed()
|
private static void SteamClosed()
|
||||||
@ -60,6 +61,10 @@ namespace Steamworks
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public static event Action<bool> OnGamepadTextInputDismissed;
|
public static event Action<bool> OnGamepadTextInputDismissed;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Invoked when floating keyboard invoked from ShowFloatingGamepadTextInput has been closed.
|
||||||
|
public static event Action OnFloatingGamepadTextInputDismissed;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Returns the number of seconds since the application was active.
|
/// Returns the number of seconds since the application was active.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -191,6 +196,14 @@ namespace Steamworks
|
|||||||
return Internal.ShowGamepadTextInput( inputMode, lineInputMode, description, (uint)maxChars, existingText );
|
return Internal.ShowGamepadTextInput( inputMode, lineInputMode, description, (uint)maxChars, existingText );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Opens a floating keyboard over the game content and sends OS keyboard keys directly to the game
|
||||||
|
/// </summary>
|
||||||
|
public static bool ShowFloatingGamepadTextInput( TextInputMode mode, int left, int top, int width, int height )
|
||||||
|
{
|
||||||
|
return Internal.ShowFloatingGamepadTextInput( mode, left, top, width, height );
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Returns previously entered text.
|
/// Returns previously entered text.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -295,10 +308,5 @@ namespace Steamworks
|
|||||||
/// Steam Input translate the controller input into mouse/kb to navigate the launcher
|
/// Steam Input translate the controller input into mouse/kb to navigate the launcher
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static void SetGameLauncherMode( bool mode ) => Internal.SetGameLauncherMode( mode );
|
public static void SetGameLauncherMode( bool mode ) => Internal.SetGameLauncherMode( mode );
|
||||||
|
|
||||||
//public void ShowFloatingGamepadTextInput( TextInputMode mode, int left, int top, int width, int height )
|
|
||||||
//{
|
|
||||||
// Internal.ShowFloatingGamepadTextInput( mode, left, top, width, height );
|
|
||||||
//}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user