// Token: 0x06001413 RID: 5139 RVA: 0x0006FFC4 File Offset: 0x0006E1C4
    public bool ChangeMenuItem()
    {
        Vector2 normalized = Core.Input.Axis.normalized;

        if (!this.CurrentMenuItem)
        {
            return(false);
        }
        Vector2        b = this.CurrentMenuItem.Transform.position;
        CleverMenuItem cleverMenuItem = this.CurrentMenuItem;
        float          num            = Mathf.Cos(this.AngleTolerance * 0.0174532924f);

        foreach (CleverMenuItemSelectionManager.NavigationData navigationData in this.Navigation)
        {
            if ((navigationData.Condition == null || navigationData.Condition(navigationData)) && navigationData.From == this.CurrentMenuItem && navigationData.To.IsVisible)
            {
                Vector2 normalized2 = (navigationData.To.Transform.position - b).normalized;
                float   num2        = Vector2.Dot(normalized, normalized2);
                if (num2 > num)
                {
                    num            = num2;
                    cleverMenuItem = navigationData.To;
                }
            }
        }
        if (cleverMenuItem != this.CurrentMenuItem)
        {
            this.SetCurrentMenuItem(cleverMenuItem);
            return(true);
        }
        return(false);
    }
    // Token: 0x06002678 RID: 9848 RVA: 0x000ABA80 File Offset: 0x000A9C80
    private void AddChildren(Transform childTransform)
    {
        int childCount = childTransform.childCount;

        for (int i = 0; i < childCount; i++)
        {
            Transform            child     = childTransform.GetChild(i);
            TransparencyAnimator component = child.GetComponent <TransparencyAnimator>();
            if (component != null)
            {
                this.m_childTransparencyAnimators.Add(component);
            }
            else
            {
                CleverMenuItem component2 = child.GetComponent <CleverMenuItem>();
                if (component2 != null && component2.AnimateColors)
                {
                    if (this.m_cleverMenuItems == null)
                    {
                        this.m_cleverMenuItems = new List <CleverMenuItem>();
                    }
                    this.m_cleverMenuItems.Add(component2);
                }
                this.AddChild(child);
                this.AddChildren(child);
            }
        }
    }
    // Token: 0x0600267A RID: 9850 RVA: 0x000ABB78 File Offset: 0x000A9D78
    private void ManuallyRegister(Transform child)
    {
        if (!base.IsInitialized)
        {
            return;
        }
        TransparencyAnimator component = child.GetComponent <TransparencyAnimator>();

        if (component)
        {
            this.m_childTransparencyAnimators.Add(component);
            return;
        }
        CleverMenuItem component2 = child.GetComponent <CleverMenuItem>();

        if (component2 != null && component2.AnimateColors)
        {
            if (this.m_cleverMenuItems == null)
            {
                this.m_cleverMenuItems = new List <CleverMenuItem>();
            }
            this.m_cleverMenuItems.Add(component2);
            return;
        }
        this.AddChild(child);
        this.AddChildren(child);
        this.ApplyTransparency(true);
    }
예제 #4
0
    // Token: 0x06003886 RID: 14470 RVA: 0x000E6E6C File Offset: 0x000E506C
    public void AddButton(string caption, Action onClick)
    {
        CleverMenuItem cleverMenuItem = this.AddItem("");

        cleverMenuItem.gameObject.name = "Button (" + caption + ")";
        cleverMenuItem.gameObject.transform.Find("text/stateText").GetComponent <MessageBox>().SetMessage(new MessageDescriptor(caption));
        cleverMenuItem.PressedCallback += onClick;
    }
예제 #5
0
 // Token: 0x06000275 RID: 629 RVA: 0x00036308 File Offset: 0x00034508
 public void AddItem(CleverMenuItem item, CleverMenuItemGroupBase itemGroup)
 {
     CleverMenuItemGroup.CleverMenuItemGroupItem cleverMenuItemGroupItem = new CleverMenuItemGroup.CleverMenuItemGroupItem
     {
         ItemGroup = itemGroup,
         MenuItem  = item
     };
     cleverMenuItemGroupItem.ItemGroup.IsActive = false;
     itemGroup.OnBackPressed = (Action)Delegate.Combine(itemGroup.OnBackPressed, new Action(this.OnOptionBackPressed));
     this.Options.Add(cleverMenuItemGroupItem);
 }
    // Token: 0x0600141C RID: 5148 RVA: 0x00070414 File Offset: 0x0006E614
    public void AddMenuItem(string label, int index, CleverMenuItemLayout layout, Action onPress)
    {
        CleverMenuItem cleverMenuItem = UnityEngine.Object.Instantiate <CleverMenuItem>(this.MenuItems[0]);

        cleverMenuItem.gameObject.name = label;
        cleverMenuItem.transform.SetParent(this.MenuItems[1].transform.parent);
        cleverMenuItem.PressedCallback += onPress;
        cleverMenuItem.gameObject.GetComponentInChildren <MessageBox>().SetMessage(new MessageDescriptor(label));
        cleverMenuItem.ApplyColors();
        this.MenuItems.Insert(index, cleverMenuItem);
        layout.AddItem(cleverMenuItem, index);
    }
예제 #7
0
    // Token: 0x06003888 RID: 14472 RVA: 0x000E6FE4 File Offset: 0x000E51E4
    public void AddControllerBind(string label, Func <PlayerInputRebinding.ControllerButton[]> getKeys, Action <PlayerInputRebinding.ControllerButton[]> setKeys)
    {
        CleverMenuItem cleverMenuItem = this.AddItem(label);

        cleverMenuItem.gameObject.name = "Controller Bind (" + label + ")";
        ControllerBindControl kc = cleverMenuItem.gameObject.AddComponent <ControllerBindControl>();

        kc.Init(getKeys, setKeys, this);
        cleverMenuItem.PressedCallback += delegate
        {
            this.SetFakeTooltip("Start: finish editing");
            kc.BeginEditing();
        };
    }
예제 #8
0
    // Token: 0x06003883 RID: 14467 RVA: 0x000E6D94 File Offset: 0x000E4F94
    public void AddKeybind(string label, Func <KeyCode[]> getKeys, Action <KeyCode[]> setKeys)
    {
        CleverMenuItem cleverMenuItem = this.AddItem(label);

        cleverMenuItem.gameObject.name = "Keybind (" + label + ")";
        KeybindControl kc = cleverMenuItem.gameObject.AddComponent <KeybindControl>();

        kc.Init(getKeys, setKeys, this);
        cleverMenuItem.PressedCallback += delegate
        {
            this.SetFakeTooltip("Backspace: remove bind\nEnter: finish editing");
            kc.BeginEditing();
        };
    }
    public void CreateNavigationStructureFromCageTool()
    {
        List <CleverMenuItem> list = UnityEngine.Object.FindObjectsOfType(typeof(CleverMenuItem)).Cast <CleverMenuItem>().ToList <CleverMenuItem>();
        Dictionary <CageStructureTool.Vertex, CleverMenuItem> dictionary = new Dictionary <CageStructureTool.Vertex, CleverMenuItem>();

        foreach (CageStructureTool.Vertex vertex in this.CopyFromCage.Vertices)
        {
            Vector3        a     = this.CopyFromCage.transform.TransformPoint(vertex.Position);
            float          num   = float.MaxValue;
            CleverMenuItem value = null;
            foreach (CleverMenuItem cleverMenuItem in list)
            {
                float num2 = Vector3.Distance(a, cleverMenuItem.transform.position);
                if (num2 < num)
                {
                    value = cleverMenuItem;
                    num   = num2;
                }
            }
            dictionary[vertex] = value;
        }
        this.Navigation.Clear();
        foreach (CageStructureTool.Edge edge in this.CopyFromCage.Edges)
        {
            CageStructureTool.Vertex key  = this.CopyFromCage.VertexByIndex(edge.VertexA);
            CageStructureTool.Vertex key2 = this.CopyFromCage.VertexByIndex(edge.VertexB);
            this.Navigation.Add(new CleverMenuItemSelectionManager.NavigationData
            {
                From = dictionary[key],
                To   = dictionary[key2]
            });
            this.Navigation.Add(new CleverMenuItemSelectionManager.NavigationData
            {
                From = dictionary[key2],
                To   = dictionary[key]
            });
        }
        this.MenuItems.Clear();
        foreach (CleverMenuItemSelectionManager.NavigationData navigationData in this.Navigation)
        {
            if (!this.MenuItems.Contains(navigationData.From))
            {
                this.MenuItems.Add(navigationData.From);
            }
        }
    }
예제 #10
0
    // Token: 0x06003887 RID: 14471 RVA: 0x000E6ECC File Offset: 0x000E50CC
    private CleverMenuItem AddItem(string label)
    {
        GameObject gameObject = UnityEngine.Object.Instantiate <GameObject>(SettingsScreen.Instance.transform.Find("highlightFade/pivot/damageText").gameObject);

        gameObject.transform.SetParent(this.pivot);
        CleverMenuItem component = gameObject.GetComponent <CleverMenuItem>();

        this.selectionManager.MenuItems.Add(component);
        this.layout.AddItem(component);
        this.layout.Sort();
        component.OnUnhighlight();
        TransparencyAnimator[] componentsInChildren = component.transform.GetComponentsInChildren <TransparencyAnimator>();
        for (int i = 0; i < componentsInChildren.Length; i++)
        {
            componentsInChildren[i].Reset();
            componentsInChildren[i].enabled = true;
        }
        foreach (object obj in gameObject.transform.FindChild("glowGroup"))
        {
            TransparencyAnimator.Register((Transform)obj);
        }
        gameObject.transform.Find("text/nameText").GetComponent <MessageBox>().SetMessage(new MessageDescriptor(label));
        return(component);
    }
    // Token: 0x06001410 RID: 5136 RVA: 0x0006FB30 File Offset: 0x0006DD30
    public void FixedUpdate()
    {
        if (this.IsSuspended)
        {
            return;
        }
        if (!GameController.IsFocused)
        {
            return;
        }
        if (!this.IsVisible)
        {
            if (this.FadeAnimator && this.FadeAnimator.AnimatorDriver.IsReversed && !this.FadeAnimator.AnimatorDriver.IsPlaying)
            {
                base.gameObject.SetActive(false);
            }
            return;
        }
        if (this.CurrentMenuItem && this.CurrentMenuItem.IsPerforming())
        {
            return;
        }
        if (this.IsLocked)
        {
            return;
        }
        if (Core.Input.LeftClick.OnPressed)
        {
            CleverMenuItem cleverMenuItemUnderCursor = this.CleverMenuItemUnderCursor;
            if (cleverMenuItemUnderCursor)
            {
                this.SetCurrentMenuItem(cleverMenuItemUnderCursor);
                this.PressCurrentItem();
                return;
            }
        }
        if (Core.Input.CursorMoved && this.HighlightOnMouseOver)
        {
            CleverMenuItem cleverMenuItemUnderCursor2 = this.CleverMenuItemUnderCursor;
            if (cleverMenuItemUnderCursor2 && cleverMenuItemUnderCursor2 != this.CurrentMenuItem)
            {
                this.SetCurrentMenuItem(cleverMenuItemUnderCursor2);
            }
            if (this.UnhighlightOnMouseLeave && cleverMenuItemUnderCursor2 == null && this.CurrentMenuItem.IsHighlighted)
            {
                this.CurrentMenuItem.OnUnhighlight();
            }
            if (this.HighlightOnMouseOver && cleverMenuItemUnderCursor2 != null && !cleverMenuItemUnderCursor2.IsHighlighted)
            {
                this.CurrentMenuItem.OnHighlight();
            }
        }
        if (!this.IsActive)
        {
            return;
        }
        switch (this.ItemDirection)
        {
        case CleverMenuItemSelectionManager.Direction.LeftToRight:
            if (Core.Input.MenuLeft.OnPressed)
            {
                this.MoveSelection(false);
                this.m_holdRemainingTime = 0.4f;
            }
            if (Core.Input.MenuRight.OnPressed)
            {
                this.MoveSelection(true);
                this.m_holdRemainingTime = 0.4f;
            }
            if (Core.Input.MenuLeft.Pressed || Core.Input.MenuRight.Pressed)
            {
                this.m_holdRemainingTime -= Time.deltaTime;
                if (this.m_holdRemainingTime < 0f)
                {
                    if (Core.Input.MenuLeft.Pressed)
                    {
                        this.MoveSelection(false);
                    }
                    if (Core.Input.MenuRight.Pressed)
                    {
                        this.MoveSelection(true);
                    }
                }
            }
            break;

        case CleverMenuItemSelectionManager.Direction.TopToBottom:
            if (Core.Input.MenuUp.OnPressed)
            {
                this.MoveSelection(false);
                this.m_holdRemainingTime = 0.4f;
            }
            if (Core.Input.MenuDown.OnPressed)
            {
                this.MoveSelection(true);
                this.m_holdRemainingTime = 0.4f;
            }
            if (Core.Input.MenuUp.Pressed || Core.Input.MenuDown.Pressed)
            {
                this.m_holdRemainingTime -= Time.deltaTime;
                if (this.m_holdRemainingTime < 0f)
                {
                    if (Core.Input.MenuUp.Pressed)
                    {
                        this.m_holdRemainingTime = 0.04f;
                        this.MoveSelection(false);
                    }
                    if (Core.Input.MenuDown.Pressed)
                    {
                        this.m_holdRemainingTime = 0.04f;
                        this.MoveSelection(true);
                    }
                }
            }
            break;

        case CleverMenuItemSelectionManager.Direction.NavigationCage:
            this.HandleNavigationCage();
            break;
        }
        if (Core.Input.ActionButtonA.OnPressed && !Core.Input.ActionButtonA.Used)
        {
            if (this.m_buttonPressDelay <= 0f)
            {
                this.m_buttonPressDelay       = this.ButtonPressDelay;
                Core.Input.ActionButtonA.Used = true;
                Core.Input.Jump.Used          = true;
                this.PressCurrentItem();
            }
            return;
        }
        this.m_buttonPressDelay = Mathf.Max(0f, this.m_buttonPressDelay - Time.deltaTime);
        if (Core.Input.Cancel.OnPressed && !Core.Input.Cancel.Used)
        {
            Core.Input.Cancel.Used    = true;
            Core.Input.SoulFlame.Used = true;
            this.OnBackPressed();
        }
    }
    // Token: 0x0600140C RID: 5132 RVA: 0x0006FA18 File Offset: 0x0006DC18
    public void SetCurrentMenuItem(CleverMenuItem menuItem)
    {
        int currentItem = this.MenuItems.FindIndex((CleverMenuItem a) => a == menuItem);

        this.SetCurrentItem(currentItem);
    }
예제 #13
0
 // Token: 0x060013F0 RID: 5104 RVA: 0x000114AA File Offset: 0x0000F6AA
 public void AddItem(CleverMenuItem item, int index)
 {
     this.MenuItems.Insert(index, item);
     this.Sort();
 }
예제 #14
0
 // Token: 0x060013EF RID: 5103 RVA: 0x00011496 File Offset: 0x0000F696
 public void AddItem(CleverMenuItem item)
 {
     this.MenuItems.Add(item);
     this.Sort();
 }