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); }
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); }
public static void OpenFourAxisMenu(string title, Action <Vector2> update, PedalOption pedalOption) { if (open) { return; } switch (Utilities.GetActionMenuHand()) { case ActionMenuHand.Invalid: return; case ActionMenuHand.Left: current = fourAxisPuppetMenuLeft; hand = ActionMenuHand.Left; open = true; break; case ActionMenuHand.Right: current = fourAxisPuppetMenuRight; hand = ActionMenuHand.Right; open = true; break; } Input.ResetInputAxes(); onUpdate = update; current.gameObject.SetActive(true); current.GetTitle().text = title; current.transform.localPosition = pedalOption.GetActionButton().transform.localPosition; }
private static void AddPedalsInList(List <PedalStruct> pedalStructs, ActionMenu instance) { foreach (PedalStruct pedalStruct in pedalStructs) { PedalOption pedalOption = instance.AddOption(); pedalOption.setText(pedalStruct.text); // VVV pedalOption.setIcon(pedalStruct.icon); //Pretty self explanatory pedalOption.field_Public_MulticastDelegateNPublicSealedBoUnique_0 = DelegateSupport.ConvertDelegate <PedalOptionTriggerEvent>(pedalStruct.triggerEvent); } }
public static void AddPedalsInList(List <PedalStruct> list, ActionMenu instance) { foreach (var pedalStruct in list) { PedalOption pedalOption = instance.AddOption(); switch (pedalStruct.Type) { case PedalType.Button: pedalOption.setText(pedalStruct.text); pedalOption.setIcon(pedalStruct.icon); pedalOption.field_Public_MulticastDelegateNPublicSealedBoUnique_0 = DelegateSupport.ConvertDelegate <PedalOptionTriggerEvent>(pedalStruct.triggerEvent); break; case PedalType.SubMenu: pedalOption.setText(pedalStruct.text); pedalOption.setIcon(pedalStruct.icon); pedalOption.field_Public_ActionButton_0.prop_Texture2D_2 = GetExpressionsIcons().typeFolder; pedalOption.field_Public_MulticastDelegateNPublicSealedBoUnique_0 = DelegateSupport.ConvertDelegate <PedalOptionTriggerEvent>(pedalStruct.triggerEvent); break; case PedalType.RadialPuppet: PedalRadial pedalRadial = (PedalRadial)pedalStruct; pedalOption.setText(pedalStruct.text); pedalOption.setIcon(pedalStruct.icon); pedalOption.field_Public_ActionButton_0.prop_Texture2D_2 = GetExpressionsIcons().typeRadial; pedalOption.field_Public_ActionButton_0.prop_String_1 = $"{Math.Round(pedalRadial.currentValue)}%"; pedalRadial.pedal = pedalOption; pedalOption.field_Public_MulticastDelegateNPublicSealedBoUnique_0 = DelegateSupport.ConvertDelegate <PedalOptionTriggerEvent>(pedalStruct.triggerEvent); break; case PedalType.Toggle: PedalToggle pedalToggle = (PedalToggle)pedalStruct; pedalOption.setText(pedalStruct.text); if (pedalToggle.toggled) { pedalOption.field_Public_ActionButton_0.prop_Texture2D_2 = GetExpressionsIcons().typeToggleOn; } else { pedalOption.field_Public_ActionButton_0.prop_Texture2D_2 = GetExpressionsIcons().typeToggleOff; } pedalOption.setIcon(pedalToggle.icon); pedalToggle.pedal = pedalOption; pedalOption.field_Public_MulticastDelegateNPublicSealedBoUnique_0 = DelegateSupport.ConvertDelegate <PedalOptionTriggerEvent>(pedalStruct.triggerEvent); break; case PedalType.FourAxisPuppet: pedalOption.setText(pedalStruct.text); pedalOption.setIcon(pedalStruct.icon); pedalOption.field_Public_ActionButton_0.prop_Texture2D_2 = GetExpressionsIcons().typeAxis; pedalOption.field_Public_MulticastDelegateNPublicSealedBoUnique_0 = DelegateSupport.ConvertDelegate <PedalOptionTriggerEvent>(pedalStruct.triggerEvent); break; } } }
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); }
/// <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); }
SetButtonPercentText(this PedalOption pedalOption, string text) //pedalOption.GetActionButton().prop_String_1 { if (actionButtonPercentProperty != null) { actionButtonPercentProperty.SetValue(pedalOption.GetActionButton(), text); return; } var button = pedalOption.GetActionButton(); actionButtonPercentProperty = typeof(ActionButton) .GetProperties(BindingFlags.Public | BindingFlags.Instance).Single( p => p.PropertyType == typeof(string) && ((string)p.GetValue(button)).Equals("100%") ); actionButtonPercentProperty.SetValue(pedalOption.GetActionButton(), text); }
public static void OpenRadialMenu(float startingValue, Action <float> onUpdate, string title, PedalOption pedalOption, bool restricted = false) { if (open) { return; } switch (Utilities.GetActionMenuHand()) { case ActionMenuHand.Invalid: return; case ActionMenuHand.Left: current = radialPuppetMenuLeft; hand = ActionMenuHand.Left; open = true; break; case ActionMenuHand.Right: current = radialPuppetMenuRight; hand = ActionMenuHand.Right; open = true; break; } RadialPuppetManager.restricted = restricted; Input.ResetInputAxes(); current.gameObject.SetActive(true); current.GetFill().SetFillAngle(startingValue * 360); //Please dont break RadialPuppetManager.onUpdate = onUpdate; currentValue = startingValue; current.GetTitle().text = title; current.GetCenterText().text = $"{Mathf.Round(startingValue * 100f)}%"; current.GetFill().UpdateGeometry(); ; current.transform.localPosition = pedalOption.GetActionButton().transform.localPosition; //new Vector3(-256f, 0, 0); var angleOriginal = Utilities.ConvertFromEuler(startingValue * 360); var eulerAngle = Utilities.ConvertFromDegToEuler(angleOriginal); current.UpdateArrow(angleOriginal, eulerAngle); }
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); }
public static void SetPedalTriggerEvent(this PedalOption pedalOption, PedalOptionTriggerEvent triggerEvent) { pedalOption.field_Public_MulticastDelegateNPublicSealedBoUnique_0 = triggerEvent; //only one }
public static ActionButton GetActionButton(this PedalOption pedalOption) { return(pedalOption.field_Public_ActionButton_0); //only one }
//Only texture2d prop on PedalOption. shouldnt change unless drastic changes are made to the action menu public static void SetForegroundIcon(this PedalOption pedal, Texture2D icon) { pedal.prop_Texture2D_0 = icon; }
public static void SetBackgroundIcon(this PedalOption pedal, Texture2D icon) { pedal.GetActionButton().prop_Texture2D_0 = icon; }
public static Texture2D getIcon(this PedalOption pedal) { return(pedal.prop_Texture2D_0); }
public static void SetPedalTypeIcon(this PedalOption pedalOption, Texture2D icon) { pedalOption.GetActionButton().prop_Texture2D_2 = icon; //No choice needs to be hardcoded in sadly }
public static string setText(this PedalOption pedal, string text) { return(pedal.prop_String_0 = text); //Likewise... should be safe }
public static string getText(this PedalOption pedal) { return(pedal.prop_String_0); //Likewise... should be safe }
public PedalControl(PedalOption pedalOption) { _pedalOption = pedalOption; }
public void Add(PedalControl pedalTrkOption) { _pedalOption = pedalTrkOption.PedalOption; }
public static void SetPedalAction(this PedalOption pedalOption, Action action) { pedalOption.field_Public_MulticastDelegateNPublicSealedBoUnique_0 = DelegateSupport.ConvertDelegate <PedalOptionTriggerEvent>(action); }
public static void Lock(this PedalOption pedalOption) { pedalOption.prop_Boolean_0 = true; ResourcesManager.AddLockChildIcon(pedalOption.GetActionButton().gameObject.GetChild("Inner")); }
public static void SetText(this PedalOption pedal, string text) { pedal.prop_String_0 = text; }
public static string GetText(this PedalOption pedal) { return (pedal.prop_String_0); //Only string prop on PedalOption. shouldnt change unless drastic changes are made to the action menu }
public static Texture2D setIcon(this PedalOption pedal, Texture2D icon) { //PropertyInfo texture = typeof(PedalOption).GetProperties().Where(p => p.PropertyType == typeof(Texture2D)).First(); meh return(pedal.prop_Texture2D_0 = icon); }