using System; using UnityEngine.Audio; using UnityEngine.Playables; namespace UnityEngine.Timeline { // Token: 0x0200000B RID: 11 internal class ScheduleRuntimeClip : RuntimeClipBase { // Token: 0x06000053 RID: 83 RVA: 0x0000431A File Offset: 0x0000251A public ScheduleRuntimeClip(TimelineClip clip, Playable clipPlayable, Playable parentMixer, double startDelay = 0.2, double finishTail = 0.1) { this.Create(clip, clipPlayable, parentMixer, startDelay, finishTail); } // Token: 0x1700000E RID: 14 // (get) Token: 0x06000054 RID: 84 RVA: 0x00004338 File Offset: 0x00002538 public override double start { get { return Math.Max(0.0, this.m_Clip.start - this.m_StartDelay); } } // Token: 0x1700000F RID: 15 // (get) Token: 0x06000055 RID: 85 RVA: 0x00004370 File Offset: 0x00002570 public override double duration { get { return this.m_Clip.duration + this.m_FinishTail + this.m_Clip.start - this.start; } } // Token: 0x06000056 RID: 86 RVA: 0x000043AA File Offset: 0x000025AA public void SetTime(double time) { this.m_Playable.SetTime(time); } // Token: 0x17000010 RID: 16 // (get) Token: 0x06000057 RID: 87 RVA: 0x000043BC File Offset: 0x000025BC public TimelineClip clip { get { return this.m_Clip; } } // Token: 0x17000011 RID: 17 // (get) Token: 0x06000058 RID: 88 RVA: 0x000043D8 File Offset: 0x000025D8 public Playable mixer { get { return this.m_ParentMixer; } } // Token: 0x17000012 RID: 18 // (get) Token: 0x06000059 RID: 89 RVA: 0x000043F4 File Offset: 0x000025F4 public Playable playable { get { return this.m_Playable; } } // Token: 0x0600005A RID: 90 RVA: 0x0000440F File Offset: 0x0000260F private void Create(TimelineClip clip, Playable clipPlayable, Playable parentMixer, double startDelay, double finishTail) { this.m_Clip = clip; this.m_Playable = clipPlayable; this.m_AudioClipPlayable = (AudioClipPlayable)clipPlayable; this.m_ParentMixer = parentMixer; this.m_StartDelay = startDelay; this.m_FinishTail = finishTail; clipPlayable.SetPlayState(PlayState.Paused); } // Token: 0x17000013 RID: 19 // (set) Token: 0x0600005B RID: 91 RVA: 0x0000444C File Offset: 0x0000264C public override bool enable { set { PlayState playState = ((!value) ? PlayState.Paused : PlayState.Playing); PlayState playState2 = this.m_Playable.GetPlayState(); if (playState != playState2) { this.m_Playable.SetPlayState(playState); if (playState == PlayState.Paused && this.m_ParentMixer.IsValid()) { this.m_ParentMixer.SetInputWeight(this.m_Playable, 0f); } } this.m_Started = this.m_Started && value; } } // Token: 0x0600005C RID: 92 RVA: 0x000044C4 File Offset: 0x000026C4 public override void EvaluateAt(double localTime, FrameData frameData) { if (frameData.timeHeld) { this.enable = false; } else { bool flag = frameData.seekOccurred || frameData.timeLooped || frameData.evaluationType == FrameData.EvaluationType.Evaluate; if (localTime <= this.start + this.duration - this.m_FinishTail) { float num = this.clip.EvaluateMixIn(localTime) * this.clip.EvaluateMixOut(localTime); if (this.mixer.IsValid()) { this.mixer.SetInputWeight(this.playable, num); } if (!this.m_Started || flag) { double num2 = this.clip.ToLocalTime(Math.Max(localTime, this.clip.start)); double num3 = Math.Max(this.clip.start - localTime, 0.0) * this.clip.timeScale; double num4 = this.m_Clip.duration * this.clip.timeScale; this.m_AudioClipPlayable.Seek(num2, num3, num4); this.m_Started = true; } } } } // Token: 0x04000017 RID: 23 private TimelineClip m_Clip; // Token: 0x04000018 RID: 24 private Playable m_Playable; // Token: 0x04000019 RID: 25 private AudioClipPlayable m_AudioClipPlayable; // Token: 0x0400001A RID: 26 private Playable m_ParentMixer; // Token: 0x0400001B RID: 27 private double m_StartDelay; // Token: 0x0400001C RID: 28 private double m_FinishTail; // Token: 0x0400001D RID: 29 private bool m_Started = false; } }