Ejemplo n.º 1
0
        public static PedalOption AddRadialPedalToSubMenu(Action <float> onUpdate, string text = "Button Text", float startingValue = 0, Texture2D icon = null)
        {
            ActionMenuOpener actionMenuOpener = Utilities.GetActionMenuOpener();

            if (actionMenuOpener == null)
            {
                return(null);
            }
            PedalOption pedalOption = actionMenuOpener.GetActionMenu().AddOption();

            pedalOption.setText(text);
            pedalOption.setIcon(icon);
            pedalOption.field_Public_ActionButton_0.prop_String_1             = $"{Math.Round(startingValue)}%";
            pedalOption.field_Public_ActionButton_0.prop_Texture2D_2          = Utilities.GetExpressionsIcons().typeRadial;
            pedalOption.field_Public_MulticastDelegateNPublicSealedBoUnique_0 = DelegateSupport.ConvertDelegate <PedalOptionTriggerEvent>(new Action(delegate
            {
                Action <float> combinedAction = (System.Action <float>) Delegate.Combine(new Action <float>(delegate(float f)
                {
                    startingValue = f;

                    pedalOption.field_Public_ActionButton_0.prop_String_1 = $"{Math.Round(startingValue)}%";
                }), onUpdate);
                RadialPuppetManager.OpenRadialMenu(startingValue, combinedAction, text);
            }));
            return(pedalOption);
        }
Ejemplo n.º 2
0
        public static PedalOption AddTogglePedalToSubMenu(Action <bool> onToggle, bool startingState, string text, Texture2D icon = null)
        {
            ActionMenuOpener actionMenuOpener = Utilities.GetActionMenuOpener();

            if (actionMenuOpener == null)
            {
                return(null);
            }
            PedalOption pedalOption = actionMenuOpener.GetActionMenu().AddOption();

            pedalOption.setText(text);
            pedalOption.setIcon(icon);
            if (startingState)
            {
                pedalOption.field_Public_ActionButton_0.prop_Texture2D_2 = Utilities.GetExpressionsIcons().typeToggleOn;
            }
            else
            {
                pedalOption.field_Public_ActionButton_0.prop_Texture2D_2 = Utilities.GetExpressionsIcons().typeToggleOff;
            }
            pedalOption.field_Public_MulticastDelegateNPublicSealedBoUnique_0 = DelegateSupport.ConvertDelegate <PedalOptionTriggerEvent>(new Action(delegate
            {
                startingState = !startingState;
                if (startingState)
                {
                    pedalOption.field_Public_ActionButton_0.prop_Texture2D_2 = Utilities.GetExpressionsIcons().typeToggleOn;
                }
                else
                {
                    pedalOption.field_Public_ActionButton_0.prop_Texture2D_2 = Utilities.GetExpressionsIcons().typeToggleOff;
                }
                onToggle.Invoke(startingState);
            }));
            return(pedalOption);
        }
Ejemplo n.º 3
0
        public static PedalOption AddButtonPedalToSubMenu(Action triggerEvent, string text = "Button Text", Texture2D icon = null)
        {
            ActionMenuOpener actionMenuOpener = Utilities.GetActionMenuOpener();

            if (actionMenuOpener == null)
            {
                return(null);
            }
            PedalOption pedalOption = actionMenuOpener.GetActionMenu().AddOption();

            pedalOption.setText(text);
            pedalOption.setIcon(icon);
            pedalOption.field_Public_MulticastDelegateNPublicSealedBoUnique_0 = DelegateSupport.ConvertDelegate <PedalOptionTriggerEvent>(triggerEvent);
            return(pedalOption);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// If you create a custom Submenu you can use this to add your pedals to it
        /// </summary>
        /// <param name="triggerEvent">Called on pedal click</param>
        /// <param name="text">Pedal Text</param>
        /// <param name="icon">Pedal Icon</param>
        public PedalOption AddPedalToCustomMenu(System.Action triggerEvent, string text = "Button Text", Texture2D icon = null)
        {
            ActionMenuOpener actionMenuOpener = GetActionMenuOpener();

            if (actionMenuOpener == null)
            {
                return(null);
            }
            PedalOption pedalOption = actionMenuOpener.field_Public_ActionMenu_0.AddOption();

            pedalOption.setText(text); //    VVV
            pedalOption.setIcon(icon); //Pretty self explanatory
            pedalOption.field_Public_MulticastDelegateNPublicSealedBoUnique_0 = DelegateSupport.ConvertDelegate <PedalOptionTriggerEvent>(triggerEvent);

            return(pedalOption);
        }
Ejemplo n.º 5
0
        public static PedalOption AddFourAxisPedalToSubMenu(string text, Vector2 startingValue, Action <Vector2> onUpdate, Texture2D icon = null, string topButtonText = "Up",
                                                            string rightButtonText = "Right", string downButtonText = "Down", string leftButtonText = "Left")
        {
            ActionMenuOpener actionMenuOpener = Utilities.GetActionMenuOpener();

            if (actionMenuOpener == null)
            {
                return(null);
            }
            PedalOption pedalOption = actionMenuOpener.GetActionMenu().AddOption();

            pedalOption.setText(text);
            pedalOption.setIcon(icon);
            pedalOption.field_Public_ActionButton_0.prop_Texture2D_2          = Utilities.GetExpressionsIcons().typeAxis;
            pedalOption.field_Public_MulticastDelegateNPublicSealedBoUnique_0 = DelegateSupport.ConvertDelegate <PedalOptionTriggerEvent>(new Action(delegate
            {
                FourAxisPuppetManager.OpenFourAxisMenu(startingValue, v => startingValue = v, text, onUpdate);
                FourAxisPuppetManager.current.GetButtonUp().SetButtonText(topButtonText);
                FourAxisPuppetManager.current.GetButtonRight().SetButtonText(rightButtonText);
                FourAxisPuppetManager.current.GetButtonDown().SetButtonText(downButtonText);
                FourAxisPuppetManager.current.GetButtonLeft().SetButtonText(leftButtonText);
            }));
            return(pedalOption);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// This function will handle the main override of the ActionMenuOpener object according
        /// to the configuration supplied by MelonPrefs
        /// </summary>
        /// <param name="__0">Target state for the ActionMenu, either open or close</param>
        /// <param name="__instance">Instance of ActionMenuOpener __instance.name gives the MenuL or MenuR needed to determine hand</param>
        public static bool OnActionMenuOpen(bool __0, ref ActionMenuOpener __instance)
        {
            //MelonLogger.Log($"ActionMenuOpener OpenActionMenu Called OpenerName: {__instance.name}, BoolState: {__0}");
            if ((MelonPreferences.GetEntryValue <bool>(settingsCategory, rightHandSetting) && __instance.name.Equals("MenuR")) || (MelonPreferences.GetEntryValue <bool>(settingsCategory, leftHandSetting) && __instance.name.Equals("MenuL")))
            {
                if (__0)
                {
                    HandGestureController.Method_Public_Static_Void_Boolean_0(!HandGestureController.Method_Public_Static_Boolean_0());
                }
                else
                {
                    HandGestureController.Method_Public_Static_Void_Boolean_0(__0);
                }
                return(false); //Skip original function
            }

            //Check if action menu is disabled for hand
            if ((MelonPreferences.GetEntryValue <bool>(settingsCategory, rightHandActionDisable) && __instance.name.Equals("MenuR")) || (MelonPreferences.GetEntryValue <bool>(settingsCategory, leftHandActionDisable) && __instance.name.Equals("MenuL")))
            {
                return(false);
            }

            return(true);
        }
Ejemplo n.º 7
0
 public static ActionMenu GetActionMenu(this ActionMenuOpener actionMenuOpener)
 {
     return(actionMenuOpener.field_Public_ActionMenu_0);
 }
Ejemplo n.º 8
0
 public static bool isOpen(this ActionMenuOpener actionMenuOpener)
 {
     return(actionMenuOpener.field_Private_Boolean_0); //only bool on action menu opener, shouldnt change
 }
Ejemplo n.º 9
0
 public static bool isOpen(this ActionMenuOpener actionMenuOpener)
 {
     return(actionMenuOpener.field_Private_Boolean_0);
 }
Ejemplo n.º 10
0
 public static ActionMenu GetActionMenu(this ActionMenuOpener actionMenuOpener) => actionMenuOpener.field_Public_ActionMenu_0;