示例#1
0
        public void Hide(PopUpBase popUp)
        {
            int index;

            for (index = _queue.Count - 1; index >= 0; index--)
            {
                if (_queue[index] == popUp)
                {
                    break;
                }
            }

            if (index == 0)
            {
                HideInternal(_queue[0]);
            }

            if (index == 0 && _queue.Count > 1)
            {
                ShowInternal(_queue[1]);
            }

            if (index > -1)
            {
                _queue[index].onClose.RemoveListener(OnPopUpBaseClosed);
                _queue.RemoveAt(index);
            }

            if (_queue.Count == 0)
            {
                BlockerIndexReferenceCounter = 20000;
            }
        }
示例#2
0
        private static void AddPopUp(PopUpBase popUp)
        {
            popUp.ChangingVisibility = !popUp.gameObject.activeSelf;
            popUp.gameObject.SetActive(true);
            popUp.ChangingVisibility = false;

            var blocker = OpenTibiaUnity.GameManager.ActiveBlocker;

            if (blocker != null)
            {
                popUp.queueBlocker = blocker.gameObject;
                blocker.transform.SetAsLastSibling();
                blocker.gameObject.SetActive(true);
            }

            var canvas = OpenTibiaUnity.GameManager.ActiveCanvas;

            if (canvas != null)
            {
                popUp.transform.SetParent(canvas.transform);
            }

            popUp.transform.SetAsLastSibling();
            popUp.canvas.sortingOrder = BlockerIndexReferenceCounter++;
        }
示例#3
0
        public void Show(PopUpBase popUp)
        {
            HideByPriority(popUp.Priority);
            _queue.Add(popUp);
            if (_queue.Count == 1)
            {
                ShowInternal(popUp);
            }

            popUp.onClose.AddListener(OnPopUpBaseClosed);
        }
示例#4
0
        private static void RemovePopUp(PopUpBase popUp)
        {
            popUp.ChangingVisibility = popUp.gameObject.activeSelf;
            popUp.gameObject.SetActive(false);
            popUp.ChangingVisibility = false;

            if (popUp.queueBlocker != null)
            {
                popUp.queueBlocker.SetActive(false);
            }
        }
示例#5
0
        private void ShowInternal(PopUpBase popUp)
        {
            var currentContextMenu = UI.Legacy.ContextMenuBase.CurrentContextMenu;

            if (currentContextMenu != null)
            {
                currentContextMenu.Hide();
            }

            OpenTibiaUnity.InputHandler.CaptureKeyboard = false;
            AddPopUp(popUp);
            CenterPopUp(popUp);
        }
示例#6
0
 private void HideInternal(PopUpBase popUp)
 {
     RemovePopUp(popUp);
     OpenTibiaUnity.InputHandler.CaptureKeyboard = true;
 }
示例#7
0
 public static void CenterPopUp(PopUpBase popUp)
 {
     popUp.transform.localPosition = new Vector3(0, 0, 0);
 }
示例#8
0
 private void OnPopUpBaseClosed(PopUpBase popUp)
 {
     Hide(popUp);
 }