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);
}
}