/// <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); }
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); }