public static void CloseRadialMenu() { current.gameObject.SetActive(false); current = null; open = false; hand = ActionMenuHand.Invalid; onClose.Invoke(radialPuppetValue); }
public static void Setup() { radialPuppetMenuLeft = Utilities .CloneGameObject("UserInterface/ActionMenu/MenuL/ActionMenu/RadialPuppetMenu", "UserInterface/ActionMenu/MenuL/ActionMenu").GetComponent <RadialPuppetMenu>(); radialPuppetMenuRight = Utilities .CloneGameObject("UserInterface/ActionMenu/MenuR/ActionMenu/RadialPuppetMenu", "UserInterface/ActionMenu/MenuR/ActionMenu").GetComponent <RadialPuppetMenu>(); }
private static System.Collections.IEnumerator WaitForRadialMenu() { while (GameObject.Find("UserInterface/ActionMenu/MenuR/ActionMenu/RadialPuppetMenu") == null) { yield return(null); } radialPuppetMenuLeft = Utilities.CloneGameObject("UserInterface/ActionMenu/MenuL/ActionMenu/RadialPuppetMenu", "UserInterface/ActionMenu/MenuL/ActionMenu").GetComponent <RadialPuppetMenu>(); radialPuppetMenuRight = Utilities.CloneGameObject("UserInterface/ActionMenu/MenuR/ActionMenu/RadialPuppetMenu", "UserInterface/ActionMenu/MenuR/ActionMenu").GetComponent <RadialPuppetMenu>(); yield break; }
public static void UpdateArrow(this RadialPuppetMenu radialPuppet, float angleOriginal, float eulerAngle) { //MelonLogger.Msg($"Original: {angleOriginal}, Euler Angle:{eulerAngle}"); radialPuppet.GetArrow().transform.localPosition = new Vector3( 120 * Mathf.Cos(angleOriginal / Constants.RAD_TO_DEG), 120 * Mathf.Sin(angleOriginal / Constants.RAD_TO_DEG), radialPuppet.GetArrow().transform.localPosition.z); radialPuppet.GetArrow().transform.localEulerAngles = new Vector3( radialPuppet.GetArrow().transform.localEulerAngles.x, radialPuppet.GetArrow().transform.localEulerAngles.y, 180 - eulerAngle); }
public static void CloseRadialMenu() { if (current == null) { return; } CallUpdateAction(); current.gameObject.SetActive(false); current = null; open = false; hand = ActionMenuHand.Invalid; }
GetRadialArrowGameObject( RadialPuppetMenu radialPuppetMenu) //Build 1088 radialPuppetMenu.field_Public_GameObject_0 { if (radialPuppetArrowProperty != null) { return(getRadialArrowGameObjectDelegate(radialPuppetMenu)); } radialPuppetArrowProperty = typeof(RadialPuppetMenu) .GetProperties(BindingFlags.Public | BindingFlags.Instance).Single( p => p.PropertyType == typeof(GameObject) && ((GameObject)p.GetValue(radialPuppetMenu)).name.Equals("Arrow") ); getRadialArrowGameObjectDelegate = getRadialArrowGameObjectDelegate = (Func <RadialPuppetMenu, GameObject>)Delegate.CreateDelegate(typeof(Func <RadialPuppetMenu, GameObject>), radialPuppetArrowProperty.GetGetMethod()); return(getRadialArrowGameObjectDelegate(radialPuppetMenu)); }
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 void OpenRadialMenu(float startingValue, Action <float> close, string title) { 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; } Input.ResetInputAxes(); onClose = close; current.gameObject.SetActive(true); current.GetFill().field_Public_Single_3 = startingValue; onUpdate = onClose; current.GetTitle().text = title; current.GetCenterText().text = (Math.Round(radialPuppetMenuRight.GetFill().field_Public_Single_3 / 360 * 100)) + "%"; current.GetFill().UpdateGeometry(); current.transform.localPosition = new Vector3(-256f, 0, 0); double angleOriginal = (startingValue / 100) * 360; double eulerAngle = Utilities.ConvertFromDegToEuler(angleOriginal); current.UpdateArrow(angleOriginal, eulerAngle); }
public static void UpdateDisplay(this RadialPuppetMenu radialPuppet) { //MelonLogger.Msg($"Original: {radialPuppet.GetFill().field_Public_Single_3}, Math:{(radialPuppet.GetFill().field_Public_Single_3 / 360f)*100f}"); radialPuppet.GetCenterText().text = Math.Round(radialPuppet.GetFill().GetFillAngle() / 360f * 100f) + "%"; radialPuppet.GetFill().UpdateGeometry(); }
public static PedalGraphic GetFill(this RadialPuppetMenu radialPuppetMenu) => radialPuppetMenu.field_Public_PedalGraphic_0;
public static void SetAngle(this RadialPuppetMenu radialPuppet, float angle) { radialPuppet.GetFill().SetFillAngle(angle); radialPuppet.UpdateDisplay(); }
public static void SetValue(this RadialPuppetMenu radialPuppet, float value) { radialPuppet.GetFill().SetFillAngle(value / 100 * 360); radialPuppet.UpdateDisplay(); }
public static TextMeshProUGUI GetTitle(this RadialPuppetMenu radialPuppetMenu) { return(((PuppetMenu)radialPuppetMenu).field_Public_TextMeshProUGUI_0); //only one }
public static TextMeshProUGUI GetCenterText(this RadialPuppetMenu radialPuppetMenu) { return(radialPuppetMenu.field_Public_TextMeshProUGUI_0); //only one }
public static GameObject GetArrow(this RadialPuppetMenu radialPuppetMenu) { return(GetRadialArrowGameObject(radialPuppetMenu)); }
public static PedalGraphic GetFill(this RadialPuppetMenu radialPuppetMenu) { return(radialPuppetMenu.field_Public_PedalGraphic_0); //only one }
public static GameObject GetArrow(this RadialPuppetMenu radialPuppetMenu) => radialPuppetMenu.field_Public_GameObject_1;
public static TextMeshProUGUI GetTitle(this RadialPuppetMenu radialPuppetMenu) => ((PuppetMenu)radialPuppetMenu).field_Public_TextMeshProUGUI_0;
public static TextMeshProUGUI GetCenterText(this RadialPuppetMenu radialPuppetMenu) => radialPuppetMenu.field_Public_TextMeshProUGUI_0;
public static void SetAngle(this RadialPuppetMenu radialPuppet, float angle) { radialPuppet.GetFill().field_Public_Single_3 = angle; radialPuppet.UpdateDisplay(); }
public static void SetValue(this RadialPuppetMenu radialPuppet, float value) { radialPuppet.GetFill().field_Public_Single_3 = (value / 100) * 360; radialPuppet.UpdateDisplay(); }
public static void UpdateArrow(this RadialPuppetMenu radialPuppet, double angleOriginal, double eulerAngle) { radialPuppet.GetArrow().transform.localPosition = new Vector3((float)(120 * Math.Cos(angleOriginal / Constants.radToDeg)), (float)(120 * Math.Sin(angleOriginal / Constants.radToDeg)), radialPuppet.GetArrow().transform.localPosition.z); radialPuppet.GetArrow().transform.localEulerAngles = new Vector3(radialPuppet.GetArrow().transform.localEulerAngles.x, radialPuppet.GetArrow().transform.localEulerAngles.y, (float)(180 - eulerAngle)); }
public static void UpdateDisplay(this RadialPuppetMenu radialPuppet) { radialPuppet.GetCenterText().text = (Math.Round(radialPuppet.GetFill().field_Public_Single_3 / 360 * 100)) + "%"; radialPuppet.GetFill().UpdateGeometry(); }
public static GameObject GetCursor(this RadialPuppetMenu radialPuppetMenu) { return(GetRadialCursorGameObject(radialPuppetMenu)); }
public static GameObject GetCursor(this RadialPuppetMenu radialPuppetMenu) => radialPuppetMenu.field_Public_GameObject_0;