예제 #1
0
        public SerializedCase Serialized()
        {
            List <Edge> edges = new List <Edge>();

            foreach (Scene s in scenes)
            {
                foreach (int bSide in s.Connections)
                {
                    Edge e = new Edge {
                        a = s.ID,
                        b = bSide
                    };

                    if (!edges.Contains(e))
                    {
                        edges.Add(e);
                    }
                }
            }

            SerializedCase serCase = new SerializedCase {
                id         = ID,
                title      = Title,
                x          = X,
                y          = Y,
                scenes     = Scenes.Select(s => s.Serialized()).ToArray(),
                sceneEdges = edges.ToArray()
            };

            return(serCase);
        }
예제 #2
0
        public void Deserialize(SerializedCase obj)
        {
            ID    = obj.id;
            Title = obj.title;
            X     = obj.x;
            Y     = obj.y;

            scenes.Clear();
            foreach (var scene in obj.scenes)
            {
                Scene s = new Scene();
                s.Deserialize(scene);
                scenes.Add(s);
            }

            foreach (Edge e in obj.sceneEdges)
            {
                Scene a = GetSceneByID(e.a);
                Scene b = GetSceneByID(e.b);

                a.Connect(e.b);
                b.Connect(e.a);
            }
        }