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 TryModifyJson(IGraphOwner graphOwner, GameMasterNode node, string newJsonString) { if (node.TryModifyJson(newJsonString)) { node.OnFileChanged(mGameMasterNodes); RefreshGraph(graphOwner); } }