Example #1
0
        int ITezCategoryRootToken.registerFinalToken(ITezCategoryFinalToken token)
        {
            var id = m_FinalTokenList.Count;

            m_FinalTokenList.Add(token);
            m_FinalTokenDic.Add(token.toName, token);
            return(id);
        }
Example #2
0
 public void generate(ITezCategoryFinalToken finalToken, out TezCategory category, TezEventExtension.Function <TezCategory> onGenerate)
 {
     if (!m_Dic.TryGetValue(finalToken.toName, out category))
     {
         category = onGenerate();
         m_Dic.Add(finalToken.toName, category);
         while (finalToken.toID >= m_List.Count)
         {
             m_List.Add(null);
         }
         m_List[finalToken.toID] = category;
     }
 }
Example #3
0
        public static void generate(ITezCategoryRootToken rootToken, ITezCategoryFinalToken finalToken, out TezCategory category, TezEventExtension.Function <TezCategory> onGenerate)
        {
            if (!m_SlotDic.TryGetValue(rootToken.toName, out Slot slot))
            {
                slot = new Slot();
                while (rootToken.toID >= m_SlotList.Count)
                {
                    m_SlotList.Add(null);
                }
                m_SlotList[rootToken.toID] = slot;
                m_SlotDic.Add(rootToken.toName, slot);
            }

            slot.generate(finalToken, out category, onGenerate);
        }
Example #4
0
        /// <summary>
        /// 用FinalToken创建一个共用的Category
        /// </summary>
        private static TezCategory createCategory(ITezCategoryFinalToken finalToken)
        {
            Stack <ITezCategoryBaseToken> stack      = new Stack <ITezCategoryBaseToken>();
            ITezCategoryBaseToken         temp_token = finalToken;

            while (temp_token != null)
            {
                stack.Push(temp_token);
                temp_token = temp_token.parent;
            }

            TezCategory category = new TezCategory();

            category.setToken(stack.ToArray());
            return(category);
        }
Example #5
0
        public static Config getConfig(ITezCategoryRootToken rootToken, ITezCategoryFinalToken finalToken)
        {
            var rid    = rootToken.toID;
            var findex = finalToken.finalRID;

            if (rid < m_ConfigList.Count)
            {
                var list = m_ConfigList[rid];
                if (findex < list.Count)
                {
                    return(list[findex]);
                }
            }

            return(s_Default);
        }
Example #6
0
        public static Config createConfig(ITezCategoryRootToken rootToken, ITezCategoryFinalToken finalToken)
        {
            var rid    = rootToken.toID;
            var findex = finalToken.finalRID;

            while (m_ConfigList.Count <= rid)
            {
                m_ConfigList.Add(new List <Config>());
            }

            var configs = m_ConfigList[rid];

            while (configs.Count <= findex)
            {
                configs.Add(null);
            }

            var config = new Config();

            configs[findex] = config;
            return(config);
        }
Example #7
0
 public static int registerFinalToken(ITezCategoryFinalToken finalToken)
 {
     m_FinalTokenDic.Add(finalToken.toName, finalToken);
     m_CategoryDic.Add(finalToken.toName, createCategory(finalToken));
     return(UID++);
 }
Example #8
0
 public static TezCategory getCategory(ITezCategoryFinalToken finalToken)
 {
     return(getCategory(finalToken.toName));
 }
Example #9
0
 /// <summary>
 /// 进入一个类型的数据库
 /// </summary>
 /// <param name="finalToken"></param>
 public void beginToken(ITezCategoryFinalToken finalToken)
 {
     m_CurrentSlot = m_Slots[finalToken.finalRID];
 }
Example #10
0
        public TezDatabaseGameItem get(ITezCategoryFinalToken finalToken, int index)
        {
            var slot = m_Slots[finalToken.finalRID];

            return(slot.get(index));
        }
Example #11
0
        public TezDatabaseGameItem get(ITezCategoryFinalToken finalToken, string name)
        {
            var slot = m_Slots[finalToken.finalRID];

            return(slot.get(name));
        }