Beispiel #1
0
    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);
        }
    }
Beispiel #2
0
    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);
    }
Beispiel #3
0
    public DateTime MatchStartTimeToTimeline()
    {
        if (timeline == null || timeline.Count == 0)
        {
            return(startTime);
        }
        StoryMoment moment = timeline[0];

        if (moment != null)
        {
            startTime = moment.time;
        }
        return(startTime);
    }
Beispiel #4
0
    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);
    }
Beispiel #5
0
    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);
    }