private void Load() { if (!LaunchCountdownConfig.Instance.Info.IsSoundEnabled) { _tick = 15; return; } List <AudioClip> audios = GameDatabase.Instance.databaseAudio.Where(x => x.name.Contains(LaunchCountdownConfig.Instance.Info.SoundSet)) .ToList(); CountDownClips.Clear(); EventClips.Clear(); CountDownClips = audios.Where(x => x.name.Contains("/Timer")).ToList(); EventClips = audios.Where(x => x.name.Contains("/Events")).ToList(); if (!CountDownClips.Any()) { _tick = 15; LaunchCountdownConfig.Instance.Info.IsSoundEnabled = false; return; } _tick = CountDownClips.Count; DebugHelper.WriteMessage("tick reload {0}", _tick); }
protected override void OnDestroy() { EventClips.Clear(); CountDownClips.Clear(); LaunchCountdownConfig.Instance.Info.OnChanged -= ConfigChanged; base.OnDestroy(); }
public override void RepeatingWorker() { DebugHelper.WriteMessage("tick {0}", _tick); if (_tick <= 0) { StopRepeatingWorker(); return; } _tick--; if (OnTick != null) { OnTick(this, new LaunchEvenArgs(_tick)); } TryStagingExecute(); if (!LaunchCountdownConfig.Instance.Info.IsSoundEnabled) { return; } var clip = CountDownClips.FirstOrDefault(x => x.name.EndsWith(string.Format("/{0}", _tick))); if (clip == null) { return; } DebugHelper.WriteMessage("Sound played {0}", clip.name); _audioSource.Stop(); _audioSource.clip = clip; _audioSource.Play(); }
internal void Abort() { StopRepeatingWorker(); DisableEngineControl(); DebugHelper.WriteMessage("Vessel aborted"); _tick = CountDownClips.Any() ? CountDownClips.Count : 15; if (OnVesselAborted != null) { OnVesselAborted(this, EventArgs.Empty); } if (!LaunchCountdownConfig.Instance.Info.IsSoundEnabled) { return; } _audioSource.Stop(); _audioSource.clip = EventClips.Single(x => x.name.EndsWith("/Aborted")); _audioSource.Play(); }