예제 #1
0
        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);
        }
예제 #2
0
 void OnCreateGetVarNodeHandler(object pos)
 {
     GraphData.AddNode(new GetVarNode((Vector2)pos));
 }