예제 #1
0
        /// <summary>
        ///		Deseralizes the provided serialized timeline.
        /// </summary>
        public static Timeline Deserialize(string s_timeline)
        {
            Timeline timeline = new Timeline("");

            // Splits the data file into chapters.
            string[] s_Chapters = s_timeline.Split(CHAPTERSPACER);

            foreach (string s_Chapter in s_Chapters)
            {
                if (s_Chapter == "")
                {
                    continue;
                }

                // Splits the chapter into data pieces.
                string[] vars = s_Chapter.Split(EVENTSPACER);

                if (vars.Length == 0)
                {
                    continue;
                }

                // A new chapter is created.
                TimelineChapter chapter = new TimelineChapter(
                    int.Parse(vars[0]),
                    vars[1],
                    vars[2],
                    int.Parse(vars[3]));

                // Starts later to skip chapter fields.
                for (int i = 4; i < vars.Length; i++)
                {
                    // converts the var into a TimelineEvent
                    string s_event = vars[i];

                    if (s_event == "")
                    {
                        continue;
                    }

                    TimelineEventData timelineData = JsonUtility.FromJson <TimelineEventData>(s_event);
                    Type t = TimelineEventContainer.TypeOf(timelineData.Type);
                    timelineData = (TimelineEventData)JsonUtility.FromJson(s_event, t);

                    chapter.AddEvent(timelineData);
                }

                timeline.AddChapter(chapter);
            }

            return(timeline);
        }
예제 #2
0
        public TimelineEventData AddEvent(TimelineEventContainer.EventType type)
        {
            if (CurrentChapter == null)
            {
                return(null);
            }

            TimelineEventData timelineEvent = TimelineEventContainer.CreateEventDataOfType(type);

            timelineEvent.Id   = CurrentChapter.NextId();
            timelineEvent.Type = type;
            CurrentChapter.AddEvent(timelineEvent);
            ComponentInterface.Spawn(timelineEvent);

            return(timelineEvent);
        }