Пример #1
0
        public static ButtonLookupTable <T> NewLookupTableFromDefs <T>(List <ButtonDef <T> > defs)
        {
            ButtonLookupTable <T> lookupTable = new ButtonLookupTable <T>();

            for (int i = 0; i < defs.Count; i++)
            {
                SetupVirtualMap(ref lookupTable, defs[i].rawButton, Button.Any);

                for (int j = 0; j < defs[i].virtualButtons.Length; j++)
                {
                    if (defs[i].virtualButtons[j] != (Button.None | Button.Any))
                    {
                        SetupVirtualMap(ref lookupTable, defs[i].rawButton, defs[i].virtualButtons[j]);
                    }
                }
            }
            return(lookupTable);
        }
Пример #2
0
        public static void SetupVirtualMap <T>(ref ButtonLookupTable <T> table, T rawButton, TBInput.Button virtualButton)
        {
            switch (virtualButton)
            {
            case Button.PrimaryTrigger:
                BindVirtualMapToButton <T>(ref table.PrimaryTrigger, rawButton);
                break;

            case Button.SecondaryTrigger:
                BindVirtualMapToButton <T>(ref table.SecondaryTrigger, rawButton);
                break;

            case Button.Start:
                BindVirtualMapToButton <T>(ref table.Start, rawButton);
                break;

            case Button.Options:
                BindVirtualMapToButton <T>(ref table.Options, rawButton);
                break;

            case Button.Action1:
                BindVirtualMapToButton <T>(ref table.Action1, rawButton);
                break;

            case Button.Action2:
                BindVirtualMapToButton <T>(ref table.Action2, rawButton);
                break;

            case Button.Action3:
                BindVirtualMapToButton <T>(ref table.Action3, rawButton);
                break;

            case Button.Action4:
                BindVirtualMapToButton <T>(ref table.Action4, rawButton);
                break;

            case Button.DpadUp:
                BindVirtualMapToButton <T>(ref table.DpadUp, rawButton);
                break;

            case Button.DpadDown:
                BindVirtualMapToButton <T>(ref table.DpadDown, rawButton);
                break;

            case Button.DpadLeft:
                BindVirtualMapToButton <T>(ref table.DpadLeft, rawButton);
                break;

            case Button.DpadRight:
                BindVirtualMapToButton <T>(ref table.DpadRight, rawButton);
                break;

            case Button.Touchpad:
                BindVirtualMapToButton <T>(ref table.Touchpad, rawButton);
                break;

            case Button.Joystick:
                BindVirtualMapToButton <T>(ref table.Joystick, rawButton);
                break;

            case Button.LeftTrigger:
                BindVirtualMapToButton <T>(ref table.LeftTrigger, rawButton);
                break;

            case Button.RightTrigger:
                BindVirtualMapToButton <T>(ref table.RightTrigger, rawButton);
                break;

            case Button.LeftBumper:
                BindVirtualMapToButton <T>(ref table.LeftBumper, rawButton);
                break;

            case Button.RightBumper:
                BindVirtualMapToButton <T>(ref table.RightBumper, rawButton);
                break;

            case Button.LeftStick:
                BindVirtualMapToButton <T>(ref table.LeftStick, rawButton);
                break;

            case Button.RightStick:
                BindVirtualMapToButton <T>(ref table.RightStick, rawButton);
                break;

            case Button.Any:
                BindVirtualMapToButton <T>(ref table.Any, rawButton);
                break;
            }
        }
Пример #3
0
        /// <summary>
        /// Gets an array of raw (SDK-based) buttons for a given TBInput button type. Returns based on configured button maps.
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="virtualButton"></param>
        /// <param name="lookupTable"></param>
        /// <returns></returns>
        public static T[] GetRawButtons <T>(Button virtualButton, ButtonLookupTable <T> lookupTable)
        {
            switch (virtualButton)
            {
            case Button.PrimaryTrigger:
                return(lookupTable.PrimaryTrigger);

            case Button.SecondaryTrigger:
                return(lookupTable.SecondaryTrigger);

            case Button.Start:
                return(lookupTable.Start);

            case Button.Options:
                return(lookupTable.Options);

            case Button.Action1:
                return(lookupTable.Action1);

            case Button.Action2:
                return(lookupTable.Action2);

            case Button.Action3:
                return(lookupTable.Action3);

            case Button.Action4:
                return(lookupTable.Action4);

            case Button.DpadUp:
                return(lookupTable.DpadUp);

            case Button.DpadDown:
                return(lookupTable.DpadDown);

            case Button.DpadLeft:
                return(lookupTable.DpadLeft);

            case Button.DpadRight:
                return(lookupTable.DpadRight);

            case Button.Touchpad:
                return(lookupTable.Touchpad);

            case Button.Joystick:
                return(lookupTable.Joystick);

            case Button.LeftTrigger:
                return(lookupTable.LeftTrigger);

            case Button.RightTrigger:
                return(lookupTable.RightTrigger);

            case Button.LeftBumper:
                return(lookupTable.LeftBumper);

            case Button.RightBumper:
                return(lookupTable.RightBumper);

            case Button.LeftStick:
                return(lookupTable.LeftStick);

            case Button.RightStick:
                return(lookupTable.RightStick);

            case Button.Any:
                return(lookupTable.Any);
            }

            UnityEngine.Debug.LogError("Button " + virtualButton + " isn't defined in the lookup table! This is a core TButt error, please report it.");
            return(null);
        }