public static VisualGraphData Read(byte[] bytes) { VisualGraphData data = new VisualGraphData(); ByteBuffer bfs = new ByteBuffer(bytes); int count = bfs.ReadInt32(); for (int i = 0; i < count; ++i) { VisualNode.NodeType type = (VisualNode.NodeType)bfs.ReadShort(); if (type == VisualNode.NodeType.SetVar) { data.AddNode(SetVarNode.Read(bfs.ReadBytes())); } else if (type == VisualNode.NodeType.GetVar) { data.AddNode(GetVarNode.Read(bfs.ReadBytes())); } else if (type == VisualNode.NodeType.Func) { data.AddNode(FuncNode.Read(bfs.ReadBytes())); } else if (type == VisualNode.NodeType.AddOp) { data.AddNode(AddOpNode.Read(bfs.ReadBytes(), new AddOpNode())); } else if (type == VisualNode.NodeType.MinusOp) { data.AddNode(MinusOpNode.Read(bfs.ReadBytes(), new MinusOpNode())); } else if (type == VisualNode.NodeType.MultiplyOp) { data.AddNode(MultiplyOpNode.Read(bfs.ReadBytes(), new MultiplyOpNode())); } else if (type == VisualNode.NodeType.DivisionOp) { data.AddNode(DivisionOpNode.Read(bfs.ReadBytes(), new DivisionOpNode())); } else if (type == VisualNode.NodeType.Proc) { data.AddNode(ProcNode.Read(bfs.ReadBytes())); } } return(data); }
void OnCreateGetVarNodeHandler(object pos) { GraphData.AddNode(new GetVarNode((Vector2)pos)); }