int ITezCategoryRootToken.registerFinalToken(ITezCategoryFinalToken token) { var id = m_FinalTokenList.Count; m_FinalTokenList.Add(token); m_FinalTokenDic.Add(token.toName, token); return(id); }
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; } }
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); }
/// <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); }
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); }
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); }
public static int registerFinalToken(ITezCategoryFinalToken finalToken) { m_FinalTokenDic.Add(finalToken.toName, finalToken); m_CategoryDic.Add(finalToken.toName, createCategory(finalToken)); return(UID++); }
public static TezCategory getCategory(ITezCategoryFinalToken finalToken) { return(getCategory(finalToken.toName)); }
/// <summary> /// 进入一个类型的数据库 /// </summary> /// <param name="finalToken"></param> public void beginToken(ITezCategoryFinalToken finalToken) { m_CurrentSlot = m_Slots[finalToken.finalRID]; }
public TezDatabaseGameItem get(ITezCategoryFinalToken finalToken, int index) { var slot = m_Slots[finalToken.finalRID]; return(slot.get(index)); }
public TezDatabaseGameItem get(ITezCategoryFinalToken finalToken, string name) { var slot = m_Slots[finalToken.finalRID]; return(slot.get(name)); }