Exemple #1
0
    public void Init()
    {
        m_InterfaceDict = UIInterfaceEnumUtil.GetInterfaceInfoDict();
        OpenStack       = new Stack <OpenStackItem>();

        m_CurInterface    = UIInterfaceEnum.None;
        m_LastInterface   = UIInterfaceEnum.None;
        OpenLastInterface = UIInterfaceEnum.None;
        OpenningInterface = UIInterfaceEnum.None;
        OpenedInterface   = UIInterfaceEnum.None;
    }
Exemple #2
0
    public void PushInOpenStack(UIInterfaceEnum name, string sceneName, string mapName, CtrlParams[] pars = null, List <int> specialreturnChain = null)
    {
        var item = new OpenStackItem(name, sceneName, mapName);

        item.pars = pars;
        if (name != UIInterfaceEnum.None)
        {
            if (UIInterfaceEnumUtil.IsRootUIInterfaceEnum(name))
            {
                OpenStack.Clear();
            }

            if (specialreturnChain != null && specialreturnChain.Count > 0 &&
                UIInterfaceEnumUtil.IsRootUIInterfaceEnum((UIInterfaceEnum)specialreturnChain[specialreturnChain.Count - 1]))
            {
                OpenStack.Clear();


                for (int i = specialreturnChain.Count - 1; i >= 0; i--)
                {
                    UIInterfaceEnum specialName = (UIInterfaceEnum)specialreturnChain[i];

                    var specialItem = new OpenStackItem(specialName,
                                                        UIInterfaceEnumUtil.IsRootUIInterfaceEnum(specialName) ? sceneName : sceneName,
                                                        mapName);
                    specialItem.pars = pars;
                    OpenStack.Push(specialItem);
                }
            }

            if (OpenStack.Contains(item))
            {
                while (!item.Equals(OpenStack.Pop()))
                {
                    ;
                }
            }
            OpenStack.Push(item);
        }
    }