Пример #1
0
        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);
        }
Пример #2
0
 public NodeGroup Add(NodeGroup group)
 {
     Groups.Add(group);
     return(group);
 }