public List <UPNodeBase> LoadNodeData(JsonTextReader reader) { loadedNodes.Clear(); while (reader.Read() && reader.TokenType != JsonToken.EndArray) { UPNodeBase node = null; NodeType nodeType = (NodeType)(long)reader.Value; switch (nodeType) { case NodeType.Root: node = new RootNode(); break; case NodeType.Dialog: node = new UPNode(); break; case NodeType.Condition: node = new UPNodeCondition(); break; case NodeType.Trigger: node = new UPNodeTrigger(); break; default: node = new UPNode(); break; } reader.Read(); node.nodeID = (int)(long)reader.Value; reader.Read(); node.DialogText = (string)reader.Value; reader.Read(); node.Actor = (string)reader.Value; reader.Read(); node.Translate.X = (double)reader.Value + canvasHalfWidth; Console.Write(node.Translate.X); reader.Read(); node.Translate.Y = (double)reader.Value + canvasHalfHeight; Console.WriteLine(node.Translate.Y); loadedNodes.Add(node.nodeID, node); } return(loadedNodes.Values.ToList()); }
public void SaveNodeData(UPNodeBase node, JsonWriter writer) { //Save node type information writer.WriteValue(node.GetNodeType()); //Save node id writer.WriteValue(node.nodeID); //Save Dialog writer.WriteValue(node.DialogText); ////Save Speaker Name writer.WriteValue(node.Actor); ////Save Node Position writer.WriteValue(node.Translate.X - canvasHalfWidth); writer.WriteValue(node.Translate.Y - canvasHalfHeight); }