Пример #1
0
        public void CloseWindows(Stack <IWindowUT> stack, WindowCloseModes closeMode)
        {
            switch (closeMode)
            {
            case WindowCloseModes.CloseNothing:
                break;

            case WindowCloseModes.CloseNonSolid:
                while (ActivePanel != null && !ActivePanel.IsSolid)
                {
                    stack.Pop().Close();
                }

                break;

            case WindowCloseModes.CloseEverything:
                while (stack.Count > 0)
                {
                    stack.Pop().Close();
                }

                break;

            default:
                throw new System.Exception("Non registered mode!");
            }
        }
Пример #2
0
 public T AddNewFrame <T>(WindowCloseModes mode = WindowCloseModes.CloseNonSolid) where T : MonoBehaviour
 {
     foreach (var window in WindowsHolder.Windows)
     {
         if (window.GetType() == typeof(T))
         {
             return(AddNewFrame(window as IWindowUT, mode) as T);
         }
     }
     Debug.LogError("There is no window prefab with class " + typeof(T).ToString());
     return(null);
 }
Пример #3
0
        public IWindowUT OpenNewPanel(IWindowUT prefab, WindowCloseModes mode = WindowCloseModes.CloseNonSolid)
        {
            var newPanel = CreateWindow(mainRoot, prefab, mode);

            panels.Push(newPanel);
            allWindows.Add(newPanel);
            Listen(newPanel);

            newPanel.Init();

            return(newPanel);
        }
Пример #4
0
        public IWindowUT AddNewFrame(IWindowUT prefab, WindowCloseModes mode = WindowCloseModes.CloseNonSolid)
        {
            var newFrame = CreateWindow(auxiliaryRoot, prefab, mode);

            frames.Push(newFrame);
            allWindows.Add(newFrame);
            Listen(newFrame);

            newFrame.Init(false, false);

            return(newFrame);
        }
Пример #5
0
        private IWindowUT CreateWindow(Transform parent, IWindowUT prefab, WindowCloseModes mode = WindowCloseModes.CloseNonSolid, bool isPanel = true)
        {
            if (isPanel)
            {
                ClosePanels(mode);
            }
            else
            {
                CloseFrames(mode);
            }

            if (ActivePanel != null)
            {
                ActivePanel.IsInteractable = false;
                ActivePanel.IsFocused      = false;
            }

            return(GameObject.Instantiate(prefab as MonoBehaviour, parent) as IWindowUT);
        }
Пример #6
0
 public void ClosePanels(WindowCloseModes closeMode = WindowCloseModes.CloseEverything)
 {
     CloseWindows(panels, closeMode);
 }
Пример #7
0
 public void CloseFrames(WindowCloseModes closeMode = WindowCloseModes.CloseEverything)
 {
     CloseWindows(frames, closeMode);
 }