public TimeSpan GetTimeUntil(DateTime current, StoryTimeReference referenceMoment = StoryTimeReference.StartTime) { switch (referenceMoment) { case StoryTimeReference.StartTime: return(startTime - current); case StoryTimeReference.EndTime: return(endTime - current); case StoryTimeReference.MiddleTime: return(MiddleTime - current); case StoryTimeReference.FirstTimelineMoment: StoryMoment ftm = timeline != null && timeline.Count != 0 ? timeline[0] : null; return((ftm != null ? ftm.time : startTime) - current); case StoryTimeReference.LastTimelineMoment: StoryMoment ltm = timeline != null && timeline.Count != 0 ? timeline[timeline.Count - 1] : null; return((ltm != null ? ltm.time : startTime) - current); default: return(startTime - current); } }
public bool FindMoment(string momentName, out StoryMoment outMoment) { outMoment = null; if (momentName == null || timeline == null) { return(false); } outMoment = timeline.Find(o => string.Compare(momentName, o.name, StringComparison.InvariantCultureIgnoreCase) == 0); return(outMoment != null); }
public DateTime MatchStartTimeToTimeline() { if (timeline == null || timeline.Count == 0) { return(startTime); } StoryMoment moment = timeline[0]; if (moment != null) { startTime = moment.time; } return(startTime); }
public DateTime MatchEndTimeToTimeline() { if (timeline == null || timeline.Count == 0) { return(endTime); } StoryMoment moment = timeline[timeline.Count - 1]; if (moment != null) { endTime = moment.time; } return(endTime); }
public bool FindEventMoment(string momentName, out StoryMoment outMoment) { outMoment = null; if (momentName == null || events == null) { return(false); } LoadAllContents(); foreach (ContentAccessor eventCA in events) { if (eventCA.content != null && eventCA.content is StoryEvent se && se.FindMoment(momentName, out outMoment)) { return(true); } } return(false); }