public static Script Deserialize(BinaryReader reader) { var c = new[] { reader.ReadChar(), reader.ReadChar(), reader.ReadChar(), reader.ReadChar() }; if (c[0] != 'T' || c[1] != 'o' || c[2] != 'e' || c[3] != 'S') { throw new FormatException(); } var script = new Script(); var Major = reader.ReadInt32(); var Minor = reader.ReadInt32(); var Build = reader.ReadInt32(); var Revision = reader.ReadInt32(); script.Version = new Version(Major, Minor, Build, Revision); var numNodes = reader.ReadInt32(); for (var i = 0; i < numNodes; i++) { var n = new ScriptNode(); n.Deserialize(reader); script.Nodes.Add(n); } var numGroups = reader.ReadInt32(); for (var i = 0; i < numGroups; i++) { var n = new NodeGroup(); n.Deserialize(reader); script.Groups.Add(n); } var hasLayout = reader.ReadBoolean(); if (hasLayout) { script.Layout = new ScriptLayout(); script.Layout.Deserialize(reader); } return(script); }
public NodeGroup Add(NodeGroup group) { Groups.Add(group); return(group); }