public void Play(ScheduledSound schedule) { if (!schedule.Play) { return; } if (Random == null) { Random = new Random(Owner.Uid.GetHashCode() ^ DateTime.Now.GetHashCode()); } Timer.Spawn((int)schedule.Delay + (Random.Next((int)schedule.RandomDelay)), () => { if (!schedule.Play) { return; // We make sure this hasn't changed. } if (_audioSystem == null) { _audioSystem = IoCManager.Resolve <IEntitySystemManager>().GetEntitySystem <AudioSystem>(); } _audioSystem.Play(schedule.Filename, Owner, schedule.AudioParams); if (schedule.Times == 0) { _schedules.Remove(schedule); return; } if (schedule.Times > 0) { schedule.Times--; } Play(schedule); }); }
public virtual void AddScheduledSound(ScheduledSound scheduledSound) { }
public override void AddScheduledSound(ScheduledSound schedule) { AddScheduledSound(schedule, null); }
public override void AddScheduledSound(ScheduledSound schedule) { Play(schedule); }
public override void AddScheduledSound(ScheduledSound schedule) { _schedules.Add(schedule); Play(schedule); }