Example #1
0
        private static string GetPromptPath(EControllerActionOrigin origin)
        {
            string name;

            switch (origin)
            {
            case EControllerActionOrigin.k_EControllerActionOrigin_None:
            {
                return(null);
            }

            case EControllerActionOrigin.k_EControllerActionOrigin_Gyro_Move:
            case EControllerActionOrigin.k_EControllerActionOrigin_Gyro_Pitch:
            case EControllerActionOrigin.k_EControllerActionOrigin_Gyro_Yaw:
            case EControllerActionOrigin.k_EControllerActionOrigin_Gyro_Roll:
            {
                name = "gyro";
                break;
            }

            default:
            {
                name = origin.ToString().Substring("k_EControllerActionOrigin_".Length).ToLowerUnderscored();
                break;
            }
            }
            return("gui/prompts/steam_controller/" + name + ".png");
        }
Example #2
0
        public string GetJoystickPromptPath(string id, string actionSetID)
        {
            var origins    = new EControllerActionOrigin[global::Steamworks.Constants.STEAM_CONTROLLER_MAX_ORIGINS];
            int numOrigins = global::Steamworks.SteamController.GetAnalogActionOrigins(
                m_handle,
                m_owner.GetActionSetHandle((actionSetID != null) ? actionSetID : m_currentActionSet),
                m_owner.GetAnalogActionHandle(id),
                origins
                );

            if (numOrigins > 0)
            {
                return(GetPromptPath(GetBestOrigin(origins, numOrigins)));
            }
            return(null);
        }
 /// <summary>
 /// <para> Get a local path to art for on-screen glyph for a particular origin</para>
 /// </summary>
 public static string GetGlyphForActionOrigin(EControllerActionOrigin eOrigin)
 {
     InteropHelp.TestIfAvailableClient();
     return(InteropHelp.PtrToStringUTF8(NativeMethods.ISteamController_GetGlyphForActionOrigin(CSteamAPIContext.GetSteamController(), eOrigin)));
 }
Example #4
0
 /// <summary>
 /// <para> Convert an origin to another controller type - for inputs not present on the other controller type this will return k_EControllerActionOrigin_None</para>
 /// </summary>
 public static EControllerActionOrigin TranslateActionOrigin(ESteamInputType eDestinationInputType, EControllerActionOrigin eSourceOrigin)
 {
     InteropHelp.TestIfAvailableClient();
     return(NativeMethods.ISteamController_TranslateActionOrigin(CSteamAPIContext.GetSteamController(), eDestinationInputType, eSourceOrigin));
 }
    public void RenderOnGUI()
    {
        GUILayout.BeginArea(new Rect(Screen.width - 200, 0, 200, Screen.height));
        GUILayout.Label("Variables:");
        GUILayout.Label("m_ControllerInitialized: " + m_ControllerInitialized);
        GUILayout.Label("m_nControllers: " + m_nControllers);
        GUILayout.EndArea();

        GUILayout.BeginVertical("box");
        m_ScrollPos = GUILayout.BeginScrollView(m_ScrollPos, GUILayout.Width(Screen.width - 215), GUILayout.Height(Screen.height - 33));

        if (!m_ControllerInitialized)
        {
            return;
        }

        //SteamController.Shutdown() // Called in OnDisable()

        //SteamController.RunFrame() // N/A - This is called automatically by SteamAPI.RunCallbacks()

        {
            m_nControllers = SteamController.GetConnectedControllers(m_ControllerHandles);
            GUILayout.Label("GetConnectedControllers(m_ControllerHandles) : " + m_nControllers);
        }

        for (int i = 0; i < m_nControllers; ++i)
        {
            GUILayout.Label("Controller " + i + " - " + m_ControllerHandles[i]);

            if (GUILayout.Button("ShowBindingPanel(m_ControllerHandles[i])"))
            {
                bool ret = SteamController.ShowBindingPanel(m_ControllerHandles[i]);
                print("SteamController.ShowBindingPanel(" + m_ControllerHandles[i] + ") : " + ret);
            }

            //SteamController.GetActionSetHandle() // Called in Precache()

            for (int j = 0; j < m_nActionSets; ++j)
            {
                if (GUILayout.Button("ActivateActionSet(m_ControllerHandles[i], m_ActionSets[j])"))
                {
                    SteamController.ActivateActionSet(m_ControllerHandles[i], m_ActionSets[j]);
                    print("SteamController.ActivateActionSet(" + m_ControllerHandles[i] + ", " + m_ActionSets[j] + ")");
                }
            }

            GUILayout.Label("GetCurrentActionSet(m_ControllerHandles[i]) : " + SteamController.GetCurrentActionSet(m_ControllerHandles[i]));

            //SteamController.GetDigitalActionHandle() // Called in Precache()

            GUILayout.Label("InGameControls Digital Actions:");
            for (int j = 0; j < m_nInGameControlsDigitalActions; ++j)
            {
                ControllerDigitalActionData_t ret = SteamController.GetDigitalActionData(m_ControllerHandles[i], m_InGameControlsDigitalActions[j]);
                GUILayout.Label("GetDigitalActionData(" + m_ControllerHandles[i] + ", " + m_InGameControlsDigitalActions[j] + ") - " + ret.bState + " -- " + ret.bActive + " -- " + m_InGameControlsDigitalActionNames[j]);
            }

            GUILayout.Label("MenuControls Digital Actions:");
            for (int j = 0; j < m_nMenuControlsDigitalActions; ++j)
            {
                ControllerDigitalActionData_t ret = SteamController.GetDigitalActionData(m_ControllerHandles[i], m_MenuControlsDigitalActions[j]);
                GUILayout.Label("GetDigitalActionData(" + m_ControllerHandles[i] + ", " + m_MenuControlsDigitalActions[j] + ") - " + ret.bState + " -- " + ret.bActive + " -- " + m_MenuControlsDigitalActionNames[j]);
            }

            if (GUILayout.Button("GetDigitalActionOrigins(m_ControllerHandles[i], m_ActionSets[(int)EActionSets.InGameControls], m_InGameControlsDigitalActions[(int)EDigitalActions_InGameControls.fire], origins)"))
            {
                EControllerActionOrigin[] origins = new EControllerActionOrigin[Constants.STEAM_CONTROLLER_MAX_ORIGINS];
                int ret = SteamController.GetDigitalActionOrigins(m_ControllerHandles[i], m_ActionSets[(int)EActionSets.InGameControls], m_InGameControlsDigitalActions[(int)EDigitalActions_InGameControls.fire], origins);
                print("SteamController.GetDigitalActionOrigins(" + m_ControllerHandles[i] + ", " + m_ActionSets[(int)EActionSets.InGameControls] + ", " + m_InGameControlsDigitalActions[(int)EDigitalActions_InGameControls.fire] + ", " + origins + ") : " + ret);
                print(ret + " origins for: " + m_ActionSetNames[(int)EActionSets.InGameControls] + "::" + m_InGameControlsDigitalActionNames[(int)EDigitalActions_InGameControls.fire]);
                for (int j = 0; j < ret; ++j)
                {
                    print(j + ": " + origins[j]);
                }
            }

            //SteamController.GetAnalogActionHandle() // Called in Precache()

            GUILayout.Label("InGameControls Analog Actions:");
            for (int j = 0; j < m_nInGameControlsAnalogActions; ++j)
            {
                GUILayout.Label("GetAnalogActionData(m_ControllerHandles[i], m_InGameControlsAnalogActions[j]) : " + SteamController.GetAnalogActionData(m_ControllerHandles[i], m_InGameControlsAnalogActions[j]));
            }

            if (GUILayout.Button("GetAnalogActionOrigins(m_ControllerHandles[i], m_ActionSets[(int)EActionSets.InGameControls], m_InGameControlsAnalogActions[(int)EAnalogActions_InGameControls.Throttle], origins)"))
            {
                EControllerActionOrigin[] origins = new EControllerActionOrigin[Constants.STEAM_CONTROLLER_MAX_ORIGINS];
                int ret = SteamController.GetAnalogActionOrigins(m_ControllerHandles[i], m_ActionSets[(int)EActionSets.InGameControls], m_InGameControlsAnalogActions[(int)EAnalogActions_InGameControls.Throttle], origins);
                print("SteamController.GetAnalogActionOrigins(" + m_ControllerHandles[i] + ", " + m_ActionSets[(int)EActionSets.InGameControls] + ", " + m_InGameControlsAnalogActions[(int)EAnalogActions_InGameControls.Throttle] + ", " + origins + ") : " + ret);
                print(ret + " origins for: " + m_ActionSetNames[(int)EActionSets.InGameControls] + "::" + m_InGameControlsAnalogActionNames[(int)EAnalogActions_InGameControls.Throttle]);
                for (int j = 0; j < ret; ++j)
                {
                    print(j + ": " + origins[j]);
                }
            }

            GUILayout.Label("InGameControls Analog Actions:");
            for (int j = 0; j < m_nInGameControlsAnalogActions; ++j)
            {
                if (GUILayout.Button("StopAnalogActionMomentum(m_ControllerHandles[i], m_InGameControlsAnalogActions[j])"))
                {
                    SteamController.StopAnalogActionMomentum(m_ControllerHandles[i], m_InGameControlsAnalogActions[j]);
                    print("SteamController.StopAnalogActionMomentum(" + m_ControllerHandles[i] + ", " + m_InGameControlsAnalogActions[j] + ")");
                }
            }

            if (GUILayout.Button("TriggerHapticPulse(m_ControllerHandles[i], ESteamControllerPad.k_ESteamControllerPad_Right, 5000)"))
            {
                SteamController.TriggerHapticPulse(m_ControllerHandles[i], ESteamControllerPad.k_ESteamControllerPad_Right, 5000);
                print("SteamController.TriggerHapticPulse(" + m_ControllerHandles[i] + ", " + ESteamControllerPad.k_ESteamControllerPad_Right + ", " + 5000 + ")");
            }

            if (GUILayout.Button("TriggerRepeatedHapticPulse(m_ControllerHandles[i], ESteamControllerPad.k_ESteamControllerPad_Right, 5000, 0, 0, 0)"))
            {
                SteamController.TriggerRepeatedHapticPulse(m_ControllerHandles[i], ESteamControllerPad.k_ESteamControllerPad_Right, 5000, 0, 0, 0);
                print("SteamController.TriggerRepeatedHapticPulse(" + m_ControllerHandles[i] + ", " + ESteamControllerPad.k_ESteamControllerPad_Right + ", " + 5000 + ", " + 0 + ", " + 0 + ", " + 0 + ")");
            }

            if (GUILayout.Button("TriggerVibration(m_ControllerHandles[i], ushort.MaxValue, ushort.MaxValue)"))
            {
                SteamController.TriggerVibration(m_ControllerHandles[i], ushort.MaxValue, ushort.MaxValue);
                print("SteamController.TriggerVibration(" + m_ControllerHandles[i] + ", " + ushort.MaxValue + ", " + ushort.MaxValue + ")");
            }

            if (GUILayout.Button("SetLEDColor(m_ControllerHandles[i], 0, 0, 255, (int)ESteamControllerLEDFlag.k_ESteamControllerLEDFlag_SetColor)"))
            {
                SteamController.SetLEDColor(m_ControllerHandles[i], 0, 0, 255, (int)ESteamControllerLEDFlag.k_ESteamControllerLEDFlag_SetColor);
                print("SteamController.SetLEDColor(" + m_ControllerHandles[i] + ", " + 0 + ", " + 0 + ", " + 255 + ", " + (int)ESteamControllerLEDFlag.k_ESteamControllerLEDFlag_SetColor + ")");
            }

            GUILayout.Label("GetGamepadIndexForController(m_ControllerHandles[i]) : " + SteamController.GetGamepadIndexForController(m_ControllerHandles[i]));

            GUILayout.Label("GetControllerForGamepadIndex(0) : " + SteamController.GetControllerForGamepadIndex(0));

            GUILayout.Label("GetMotionData(m_ControllerHandles[i]) : " + SteamController.GetMotionData(m_ControllerHandles[i]));

            if (GUILayout.Button("ShowDigitalActionOrigins(m_ControllerHandles[i], m_InGameControlsDigitalActions[0], 1, 0, 0)"))
            {
                bool ret = SteamController.ShowDigitalActionOrigins(m_ControllerHandles[i], m_InGameControlsDigitalActions[0], 1, 0, 0);
                print("SteamController.ShowDigitalActionOrigins(" + m_ControllerHandles[i] + ", " + m_InGameControlsDigitalActions[0] + ", " + 1 + ", " + 0 + ", " + 0 + ") : " + ret);
            }

            if (GUILayout.Button("ShowAnalogActionOrigins(m_ControllerHandles[i], m_InGameControlsAnalogActions[0], 1, 0, 0)"))
            {
                bool ret = SteamController.ShowAnalogActionOrigins(m_ControllerHandles[i], m_InGameControlsAnalogActions[0], 1, 0, 0);
                print("SteamController.ShowAnalogActionOrigins(" + m_ControllerHandles[i] + ", " + m_InGameControlsAnalogActions[0] + ", " + 1 + ", " + 0 + ", " + 0 + ") : " + ret);
            }
        }

        GUILayout.Label("GetStringForActionOrigin(EControllerActionOrigin.k_EControllerActionOrigin_XBoxOne_A) : " + SteamController.GetStringForActionOrigin(EControllerActionOrigin.k_EControllerActionOrigin_XBoxOne_A));

        GUILayout.Label("GetGlyphForActionOrigin(EControllerActionOrigin.k_EControllerActionOrigin_XBoxOne_A) : " + SteamController.GetGlyphForActionOrigin(EControllerActionOrigin.k_EControllerActionOrigin_XBoxOne_A));

        GUILayout.EndScrollView();
        GUILayout.EndVertical();
    }
Example #6
0
 public static EControllerActionOrigin GetActionOriginFromXboxOrigin(ControllerHandle_t controllerHandle, EXboxOrigin eOrigin) => default;             // 0x000000018094CB20-0x000000018094CB80
 public static EControllerActionOrigin TranslateActionOrigin(ESteamInputType eDestinationInputType, EControllerActionOrigin eSourceOrigin) => default; // 0x000000018094D980-0x000000018094D9E0
Example #7
0
 public static string GetGlyphForActionOrigin(EControllerActionOrigin eOrigin) => default;                                                                                                                                          // 0x000000018094D4F0-0x000000018094D550
 public static string GetStringForActionOrigin(EControllerActionOrigin eOrigin) => default;                                                                                                                                         // 0x000000018094D680-0x000000018094D6E0
Example #8
0
 public static int GetAnalogActionOrigins(ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerAnalogActionHandle_t analogActionHandle, EControllerActionOrigin[] originsOut) => default;    // 0x000000018094CF50-0x000000018094D030
 public static string GetGlyphForActionOrigin(EControllerActionOrigin eOrigin) => default;                                                                                                                                          // 0x000000018094D4F0-0x000000018094D550
		/// <summary>
		/// <para> Get the origin(s) for an analog action within an action set. Returns the number of origins supplied in originsOut. Use this to display the appropriate on-screen prompt for the action.</para>
		/// <para> originsOut should point to a STEAM_CONTROLLER_MAX_ORIGINS sized array of EControllerActionOrigin handles</para>
		/// </summary>
		public static int GetAnalogActionOrigins(ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerAnalogActionHandle_t analogActionHandle, EControllerActionOrigin[] originsOut) {
			InteropHelp.TestIfAvailableClient();
			return NativeMethods.ISteamController_GetAnalogActionOrigins(controllerHandle, actionSetHandle, analogActionHandle, originsOut);
		}
		public static extern IntPtr ISteamController_GetGlyphForActionOrigin(EControllerActionOrigin eOrigin);
		/// <summary>
		/// <para> Get a local path to art for on-screen glyph for a particular origin</para>
		/// </summary>
		public static string GetGlyphForActionOrigin(EControllerActionOrigin eOrigin) {
			InteropHelp.TestIfAvailableClient();
			return InteropHelp.PtrToStringUTF8(NativeMethods.ISteamController_GetGlyphForActionOrigin(eOrigin));
		}
Example #12
0
 /// Convert an origin to another controller type - for inputs not present on the other controller type this will return k_EControllerActionOrigin_None</para>
 public static EControllerActionOrigin TranslateActionOrigin(ESteamInputType eDestinationInputType, EControllerActionOrigin eSourceOrigin)
 {
     return((EControllerActionOrigin)0);
 }
Example #13
0
 /// Returns a localized string (from Steam's language setting) for the specified origin - this call is serialized</para>
 public static string GetStringForActionOrigin(EControllerActionOrigin eOrigin)
 {
     return("");
 }