public static Dictionary <long, StoreTreeNode> getStoreTreeNodeFromList(List <ITreeNode> treeNodeList) { Dictionary <long, StoreTreeNode> treeNodeDict = new Dictionary <long, StoreTreeNode>(); foreach (var node in treeNodeList) { StoreTreeNode wNode = (StoreTreeNode)node; treeNodeDict.Add(wNode.index, wNode); } return(treeNodeDict); }
public IEnumerable <StoreTreeNode> LoadStore(string canViewStores) { // 查询一级区域 var areaRows = this._query.FindAll <Area>(n => n.Level == 1); dynamic param = new ExpandoObject(); string where = ""; if (!string.IsNullOrEmpty(canViewStores)) { where += "and t0.Id in @CanViewStore "; param.CanViewStore = canViewStores.Split(',').ToIntArray(); } string sql = "select * from Store t0 where 1=1 {0}"; sql = string.Format(sql, where); var stores = this._query.FindAll <Store>(sql, param) as List <Store>; // 组装ztree树形结构 List <StoreTreeNode> list = new List <StoreTreeNode>(); foreach (var area in areaRows) { // 找当前区域门店 var areaID = area.Id.Substring(0, 2); var areaStores = stores.Where(n => n.AreaId.IndexOf(areaID) == 0); //只加载有门店的区域 if (!areaStores.Any()) { continue; } List <StoreTreeNode> storelist = new List <StoreTreeNode>(); foreach (var store in areaStores) { var secondLayer = new StoreTreeNode() { id = store.Id, code = store.Code, name = store.Name }; storelist.Add(secondLayer); } var firtLayer = new StoreTreeNode() { id = Convert.ToInt32(area.Id), code = area.FullName, name = area.Name }; firtLayer.children = storelist; list.Add(firtLayer); } return(list); }
//given a gameDataSet, and global flags, return the list of items (and prices) sold //dont return items with 0 price (specials, etc) public List <StoreItem> getSellList(GameDataSet gameDataSet, Random r) { List <StoreItem> storeList = new List <StoreItem>(); var infoNode = treeNodeDictionary[1]; foreach (var branch in infoNode.getBranchList(this)) { StoreTreeNode storeNode = (StoreTreeNode)this.getNode(branch.linkIndex); if (storeNode.content.nodeType == StoreNodeType.ItemClass) { storeList.AddRange(getSellItemTypeList(storeNode.content.itemType, storeNode.content.sellPrice, storeNode.content.count, storeNode.content.linkIndex, gameDataSet, r)); } else if (storeNode.content.nodeType == StoreNodeType.ItemIndex) { storeList.Add(getSellItem(storeNode.content.linkIndex, storeNode.content.sellPrice, storeNode.content.count, gameDataSet)); } } return(storeList); }
private static ITreeNode getTreeNodeFromDataStr(string nodeDataStr, TreeType treeType) { var dataList = ParseHelper.getSplitList(nodeDataStr, Environment.NewLine); ITreeNode node = null; switch (treeType) { case TreeType.World: var worldTreeNode = new WorldTreeNode(Int64.Parse(dataList[0]), dataList[1], null, null, (WorldNodeContent)getTreeNodeContentFromStr(dataList[2], treeType)); node = worldTreeNode; break; case TreeType.Zone: var zoneTreeNode = new ZoneTreeNode(Int64.Parse(dataList[0]), dataList[1], null, null, (ZoneNodeContent)getTreeNodeContentFromStr(dataList[2], treeType)); node = zoneTreeNode; break; case TreeType.Dialog: var dialogTreeNode = new DialogTreeNode(Int64.Parse(dataList[0]), dataList[1], null, null, (DialogNodeContent)getTreeNodeContentFromStr(dataList[2], treeType)); node = dialogTreeNode; break; case TreeType.Quest: var questTreeNode = new QuestTreeNode(Int64.Parse(dataList[0]), dataList[1], null, null, (QuestNodeContent)getTreeNodeContentFromStr(dataList[2], treeType)); node = questTreeNode; break; case TreeType.Battle: var battleTreeNode = new BattleTreeNode(Int64.Parse(dataList[0]), dataList[1], null, null, (BattleNodeContent)getTreeNodeContentFromStr(dataList[2], treeType)); node = battleTreeNode; break; case TreeType.Info: var infoTreeNode = new InfoTreeNode(Int64.Parse(dataList[0]), dataList[1], null, null, (InfoNodeContent)getTreeNodeContentFromStr(dataList[2], treeType)); node = infoTreeNode; break; case TreeType.Store: var storeTreeNode = new StoreTreeNode(Int64.Parse(dataList[0]), dataList[1], null, null, (StoreNodeContent)getTreeNodeContentFromStr(dataList[2], treeType)); node = storeTreeNode; break; case TreeType.Cutscene: var cutsceneTreeNode = new CutsceneTreeNode(Int64.Parse(dataList[0]), dataList[1], null, null, (CutsceneNodeContent)getTreeNodeContentFromStr(dataList[2], treeType)); node = cutsceneTreeNode; break; default: break; } if (dataList.Count > 3) { node.flagSetList = getFlagSetFromDataStr(dataList[3]); } if (dataList.Count > 4) { node.actionList = getTreeNodeActionListFromDataStr(dataList[4]); } return(node); }
private static ITreeNode getTreeNodeFromDataStr(string nodeDataStr, TreeType treeType) { var dataList = ParseHelper.getSplitList(nodeDataStr, Environment.NewLine); ITreeNode node = null; switch(treeType) { case TreeType.World: var worldTreeNode = new WorldTreeNode(Int64.Parse(dataList[0]), dataList[1], null, null, (WorldNodeContent)getTreeNodeContentFromStr(dataList[2], treeType)); node = worldTreeNode; break; case TreeType.Zone: var zoneTreeNode = new ZoneTreeNode(Int64.Parse(dataList[0]), dataList[1], null, null, (ZoneNodeContent)getTreeNodeContentFromStr(dataList[2], treeType)); node = zoneTreeNode; break; case TreeType.Dialog: var dialogTreeNode = new DialogTreeNode(Int64.Parse(dataList[0]), dataList[1], null, null, (DialogNodeContent)getTreeNodeContentFromStr(dataList[2], treeType)); node = dialogTreeNode; break; case TreeType.Quest: var questTreeNode = new QuestTreeNode(Int64.Parse(dataList[0]), dataList[1], null, null, (QuestNodeContent)getTreeNodeContentFromStr(dataList[2], treeType)); node = questTreeNode; break; case TreeType.Battle: var battleTreeNode = new BattleTreeNode(Int64.Parse(dataList[0]), dataList[1], null, null, (BattleNodeContent)getTreeNodeContentFromStr(dataList[2], treeType)); node = battleTreeNode; break; case TreeType.Info: var infoTreeNode = new InfoTreeNode(Int64.Parse(dataList[0]), dataList[1], null, null, (InfoNodeContent)getTreeNodeContentFromStr(dataList[2], treeType)); node = infoTreeNode; break; case TreeType.Store: var storeTreeNode = new StoreTreeNode(Int64.Parse(dataList[0]), dataList[1], null, null, (StoreNodeContent)getTreeNodeContentFromStr(dataList[2], treeType)); node = storeTreeNode; break; case TreeType.Cutscene: var cutsceneTreeNode = new CutsceneTreeNode(Int64.Parse(dataList[0]), dataList[1], null, null, (CutsceneNodeContent)getTreeNodeContentFromStr(dataList[2], treeType)); node = cutsceneTreeNode; break; default: break; } if (dataList.Count > 3) { node.flagSetList = getFlagSetFromDataStr(dataList[3]); } if (dataList.Count > 4) { node.actionList = getTreeNodeActionListFromDataStr(dataList[4]); } return node; }