public void RefreshGraph(IGraphOwner graphOwner) { mGraph = new Graph(); mGraph.Directed = true; mGraph.LayoutAlgorithmSettings = new SugiyamaLayoutSettings(); if (mCurrentGraphRoot != null) { HashSet <GameMasterNode> campaignNodes = new HashSet <GameMasterNode>(); mCurrentGraphRoot.NodeData.GetRelatedNodes(campaignNodes); foreach (GameMasterNode node in campaignNodes) { GameMasterNodeType nodeType = node.NodeType; if (nodeType == GameMasterNodeType.CAMP_PIECE || nodeType == GameMasterNodeType.UNKNOWN) { // Do not add camp pieces or unknown node types. continue; } if (node.NodeData != null) { node.NodeData.UpdateGraph(mGraph); } } graphOwner.SetGraph(mGraph); } }
public ICollection <GameMasterNode> GetAllNodesOfType(GameMasterNodeType type) { List <GameMasterNode> result = new List <GameMasterNode>(); foreach (GameMasterNode node in mGameMasterNodes.Values) { if (node.NodeType == type) { result.Add(node); } } return(result); }
public void OnFileChanged(Dictionary <string, GameMasterNode> allNodes) { JToken fileTypeToken = Json["type"]; string fileType = fileTypeToken != null?fileTypeToken.ToString().ToUpper() : ""; GameMasterNodeType newNodeType = GameMasterNodeType.UNKNOWN; foreach (GameMasterNodeType nodeType in Enum.GetValues(typeof(GameMasterNodeType))) { if (fileType.Equals(nodeType.ToString())) { newNodeType = nodeType; } } if (newNodeType != mNodeType) { mNodeType = newNodeType; switch (mNodeType) { case GameMasterNodeType.ENCOUNTER: mNodeData = new EncounterNodeData(); break; case GameMasterNodeType.ARC: mNodeData = new ArcNodeData(); break; case GameMasterNodeType.CAMPAIGN: mNodeData = new CampaignNodeData(); break; case GameMasterNodeType.CAMP_PIECE: mNodeData = new CampPieceNodeData(); break; default: Console.WriteLine("unknown encounter node type for file " + Path); mNodeData = new UnknownNodeData(); break; } } if (mNodeData != null) { mNodeData.NodeFile = this; mNodeData.LoadData(allNodes); } }
public void OnFileChanged(Dictionary<string, GameMasterNode> allNodes) { JToken fileTypeToken = Json["type"]; string fileType = fileTypeToken != null ? fileTypeToken.ToString().ToUpper() : ""; GameMasterNodeType newNodeType = GameMasterNodeType.UNKNOWN; foreach (GameMasterNodeType nodeType in Enum.GetValues(typeof(GameMasterNodeType))) { if (fileType.Equals(nodeType.ToString())) { newNodeType = nodeType; } } if (newNodeType != mNodeType) { mNodeType = newNodeType; switch (mNodeType) { case GameMasterNodeType.ENCOUNTER: mNodeData = new EncounterNodeData(); break; case GameMasterNodeType.ARC: mNodeData = new ArcNodeData(); break; case GameMasterNodeType.CAMPAIGN: mNodeData = new CampaignNodeData(); break; case GameMasterNodeType.CAMP_PIECE: mNodeData = new CampPieceNodeData(); break; default: Console.WriteLine("unknown encounter node type for file " + Path); mNodeData = new UnknownNodeData(); break; } } if (mNodeData != null) { mNodeData.NodeFile = this; mNodeData.LoadData(allNodes); } }