/// <summary> /// Update the Shot Track by deltaTime. Will fire ShotBegins and ShotEnds events. /// </summary> /// <param name="time">The current running time.</param> /// <param name="deltaTime">The deltaTime since the last update.</param> public override void UpdateTrack(float time, float deltaTime) { if (mute) { return; } float previousTime = base.elapsedTime; base.elapsedTime = time; TimelineItem[] items = GetTimelineItems(); for (int i = 0; i < items.Length; i++) { CinemaGlobalAction shot = items[i] as CinemaGlobalAction; float endTime = shot.Firetime + shot.Duration; if ((previousTime <= shot.Firetime) && (base.elapsedTime >= shot.Firetime) && (base.elapsedTime < endTime)) { shot.Trigger(); if (ShotBegins != null) { ShotBegins(this, new ShotEventArgs(shot)); } } else if ((previousTime >= endTime) && (base.elapsedTime < endTime) && (base.elapsedTime >= shot.Firetime)) { shot.Trigger(); if (ShotBegins != null) { ShotBegins(this, new ShotEventArgs(shot)); } } else if ((previousTime >= shot.Firetime) && (previousTime < endTime) && (base.elapsedTime >= endTime)) { shot.End(); if (ShotEnds != null) { ShotEnds(this, new ShotEventArgs(shot)); } } else if ((previousTime > shot.Firetime) && (previousTime < endTime) && (base.elapsedTime < shot.Firetime)) { shot.End(); if (ShotEnds != null) { ShotEnds(this, new ShotEventArgs(shot)); } } } }
/// <summary> /// Initialize the shot track by enabling the first Camera and disabling all others in the track. /// </summary> public override void Initialize() { base.elapsedTime = 0f; CinemaGlobalAction firstCamera = null; TimelineItem[] items = GetTimelineItems(); for (int i = 0; i < items.Length; i++) { CinemaGlobalAction shot = items[i] as CinemaGlobalAction; shot.Initialize(); } for (int i = 0; i < items.Length; i++) { CinemaGlobalAction shot = items[i] as CinemaGlobalAction; if (shot.Firetime == 0) { firstCamera = shot; } else { shot.End(); } } if (firstCamera != null) { firstCamera.Trigger(); if (ShotBegins != null) { ShotBegins(this, new ShotEventArgs(firstCamera)); } } }
/// <summary> /// Update the track to the given time /// </summary> /// <param name="time"></param> public virtual void UpdateTrack(float runningTime, float deltaTime) { if (mute) { return; } float previousTime = elapsedTime; elapsedTime = runningTime; TimelineItem[] items = GetTimelineItems(); for (int i = 0; i < items.Length; i++) { CinemaGlobalEvent cinemaEvent = items[i] as CinemaGlobalEvent; if (cinemaEvent == null) { continue; } if ((previousTime < cinemaEvent.Firetime || previousTime <= 0f) && elapsedTime >= cinemaEvent.Firetime) { cinemaEvent.Trigger(); } else if (previousTime >= cinemaEvent.Firetime && elapsedTime <= cinemaEvent.Firetime) { cinemaEvent.Reverse(); } } for (int i = 0; i < items.Length; i++) { CinemaGlobalAction action = items[i] as CinemaGlobalAction; if (action == null) { continue; } if (((previousTime < action.Firetime || previousTime <= 0f) && elapsedTime >= action.Firetime) && elapsedTime < action.EndTime) { action.Trigger(); } else if ((previousTime <= action.EndTime) && (elapsedTime >= action.EndTime)) { action.End(); } else if (previousTime > action.Firetime && previousTime <= action.EndTime && elapsedTime <= action.Firetime) { action.ReverseTrigger(); } else if ((previousTime > action.EndTime || previousTime >= action.Cutscene.Duration) && (elapsedTime > action.Firetime) && (elapsedTime <= action.EndTime)) { action.ReverseEnd(); } else if ((elapsedTime > action.Firetime) && (elapsedTime < action.EndTime)) { float t = runningTime - action.Firetime; action.UpdateTime(t, deltaTime); } } }
/// <summary> /// Update the track to the given time /// </summary> /// <param name="time"></param> public virtual void UpdateTrack(float runningTime, float deltaTime) { float previousTime = elapsedTime; elapsedTime = runningTime; TimelineItem[] timelineItemArr = GetTimelineItems(); for (int i = 0; i < timelineItemArr.Length; i++) { TimelineItem item = timelineItemArr[i]; CinemaGlobalEvent cinemaEvent = item as CinemaGlobalEvent; if (cinemaEvent == null) { continue; } if ((previousTime < cinemaEvent.Firetime) && (((elapsedTime >= cinemaEvent.Firetime)))) { cinemaEvent.Trigger(); } else if (((previousTime >= cinemaEvent.Firetime) && (elapsedTime < cinemaEvent.Firetime))) { cinemaEvent.Reverse(); } } for (int i = 0; i < timelineItemArr.Length; i++) { TimelineItem item = timelineItemArr[i]; CinemaGlobalAction action = item as CinemaGlobalAction; if (action == null) { continue; } if ((previousTime < action.Firetime && elapsedTime >= action.Firetime) && elapsedTime < action.EndTime) { action.Trigger(); } else if ((previousTime < action.EndTime) && (elapsedTime >= action.EndTime)) { action.End(); } else if (previousTime > action.Firetime && previousTime <= action.EndTime && elapsedTime < action.Firetime) { action.ReverseTrigger(); } else if ((previousTime > (action.EndTime) && (elapsedTime > action.Firetime) && (elapsedTime <= action.EndTime))) { action.ReverseEnd(); } else if ((elapsedTime > action.Firetime) && (elapsedTime < action.EndTime)) { float t = runningTime - action.Firetime; action.UpdateTime(t, deltaTime); } } }
/// <summary> /// Update the track to the given time /// </summary> /// <param name="time"></param> public virtual void UpdateTrack(float runningTime, float deltaTime) { float previousTime = elapsedTime; elapsedTime = runningTime; List <TimelineItem> items = GetAllTimelineItems(); for (int i = 0; i < items.Count; i++) { CinemaGlobalEvent cinemaEvent = items[i] as CinemaGlobalEvent; if (cinemaEvent == null) { continue; } if ((previousTime < cinemaEvent.Firetime || previousTime <= 0f) && elapsedTime >= cinemaEvent.Firetime) { cinemaEvent.Trigger(); } else if (previousTime >= cinemaEvent.Firetime && elapsedTime <= cinemaEvent.Firetime) { cinemaEvent.Reverse(); } } for (int i = 0; i < items.Count; i++) { CinemaGlobalAction action = items[i] as CinemaGlobalAction; if (action == null) { continue; } var actionScene = action.GetCutScene(); if (((previousTime < action.Firetime || previousTime <= 0f) && elapsedTime >= action.Firetime) && elapsedTime < action.EndTime) { action.Trigger(); } else if ((previousTime <= action.EndTime) && (elapsedTime >= action.EndTime)) { action.End(); } else if (previousTime > action.Firetime && previousTime <= action.EndTime && elapsedTime <= action.Firetime) { action.ReverseTrigger(); } else if ((previousTime > action.EndTime || (actionScene != null && previousTime >= actionScene.Duration)) && (elapsedTime > action.Firetime) && (elapsedTime <= action.EndTime)) { action.ReverseEnd(); } else if ((elapsedTime > action.Firetime) && (elapsedTime < action.EndTime)) { float t = runningTime - action.Firetime; action.UpdateTime(t, deltaTime); } } }
static public int Trigger(IntPtr l) { try { CinemaDirector.CinemaGlobalAction self = (CinemaDirector.CinemaGlobalAction)checkSelf(l); self.Trigger(); return(0); } catch (Exception e) { return(error(l, e)); } }
/// <summary> /// The shot track will jump to the given time. Disabling the current shot and enabling the new one. /// </summary> /// <param name="time">The new running time.</param> public override void SetTime(float time) { CinemaGlobalAction previousShot = null; CinemaGlobalAction newShot = null; // Get the old shot and the new shot var items = GetAllTimelineItems(); for (int i = 0; i < items.Count; i++) { CinemaGlobalAction shot = items[i] as CinemaGlobalAction; float endTime = shot.Firetime + shot.Duration; if ((elapsedTime >= shot.Firetime) && (elapsedTime < endTime)) { previousShot = shot; } if ((time >= shot.Firetime) && (time < endTime)) { newShot = shot; } } // Trigger them as appropriate. if (newShot != previousShot) { if (previousShot != null) { previousShot.End(); if (ShotEnds != null) { ShotEnds(this, new ShotEventArgs(previousShot)); } } if (newShot != null) { newShot.Trigger(); if (ShotBegins != null) { ShotBegins(this, new ShotEventArgs(newShot)); } } } elapsedTime = time; }
/// <summary> /// Update the track to the given time /// </summary> /// <param name="time"></param> public virtual void UpdateTrack(float runningTime, float deltaTime) { float previousTime = elapsedTime; elapsedTime = runningTime; { var __array3 = GetTimelineItems(); var __arrayLength3 = __array3.Length; for (int __i3 = 0; __i3 < __arrayLength3; ++__i3) { var item = (TimelineItem)__array3[__i3]; { CinemaGlobalEvent cinemaEvent = item as CinemaGlobalEvent; if (cinemaEvent == null) { continue; } if ((previousTime < cinemaEvent.Firetime) && (((elapsedTime >= cinemaEvent.Firetime)))) { cinemaEvent.Trigger(); } else if (((previousTime >= cinemaEvent.Firetime) && (elapsedTime < cinemaEvent.Firetime))) { cinemaEvent.Reverse(); } } } } { var __array4 = GetTimelineItems(); var __arrayLength4 = __array4.Length; for (int __i4 = 0; __i4 < __arrayLength4; ++__i4) { var item = (TimelineItem)__array4[__i4]; { CinemaGlobalAction action = item as CinemaGlobalAction; if (action == null) { continue; } if ((previousTime < action.Firetime && elapsedTime >= action.Firetime) && elapsedTime < action.EndTime) { action.Trigger(); } else if ((previousTime < action.EndTime) && (elapsedTime >= action.EndTime)) { action.End(); } else if (previousTime > action.Firetime && previousTime <= action.EndTime && elapsedTime < action.Firetime) { action.ReverseTrigger(); } else if ((previousTime > (action.EndTime) && (elapsedTime > action.Firetime) && (elapsedTime <= action.EndTime))) { action.ReverseEnd(); } else if ((elapsedTime > action.Firetime) && (elapsedTime < action.EndTime)) { float t = runningTime - action.Firetime; action.UpdateTime(t, deltaTime); } } } } }
/// <summary> /// Update the track to the given time /// </summary> /// <param name="time"></param> public virtual void UpdateTrack(float runningTime, float deltaTime) { #if PROFILE_FILE Profiler.BeginSample("TimelineTrack.UpdateTrack"); #endif // PROFILE_FILE float previousTime = elapsedTime; elapsedTime = runningTime; #if PROFILE_FILE Profiler.BeginSample("TimelineTrack.UpdateTrack.seg_1"); #endif // PROFILE_FILE var timeLines = GetTimelineItems(); var length = timeLines.Length; for (var i = 0; i < length; i++) { var item = timeLines[i]; CinemaGlobalEvent cinemaEvent = item as CinemaGlobalEvent; if (cinemaEvent == null) { continue; } if ((previousTime < cinemaEvent.Firetime) && (((elapsedTime >= cinemaEvent.Firetime)))) { cinemaEvent.Trigger(); } else if (((previousTime >= cinemaEvent.Firetime) && (elapsedTime < cinemaEvent.Firetime))) { cinemaEvent.Reverse(); } } #if PROFILE_FILE Profiler.EndSample(); #endif // PROFILE_FILE #if PROFILE_FILE Profiler.BeginSample("TimelineTrack.UpdateTrack.seg_2"); #endif // PROFILE_FILE timeLines = GetTimelineItems(); length = timeLines.Length; for (var i = 0; i < length; i++) { var item = timeLines[i]; CinemaGlobalAction action = item as CinemaGlobalAction; if (action == null) { continue; } if ((previousTime < action.Firetime && elapsedTime >= action.Firetime) && elapsedTime < action.EndTime) { action.Trigger(); } else if ((previousTime < action.EndTime) && (elapsedTime >= action.EndTime)) { action.End(); } else if (previousTime > action.Firetime && previousTime <= action.EndTime && elapsedTime < action.Firetime) { action.ReverseTrigger(); } else if ((previousTime > (action.EndTime) && (elapsedTime > action.Firetime) && (elapsedTime <= action.EndTime))) { action.ReverseEnd(); } else if ((elapsedTime > action.Firetime) && (elapsedTime < action.EndTime)) { float t = runningTime - action.Firetime; action.UpdateTime(t, deltaTime); } } #if PROFILE_FILE Profiler.EndSample(); #endif // PROFILE_FILE #if PROFILE_FILE Profiler.EndSample(); #endif // PROFILE_FILE }