Esempio n. 1
0
        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);
            });
        }
Esempio n. 2
0
 public virtual void AddScheduledSound(ScheduledSound scheduledSound)
 {
 }
Esempio n. 3
0
 public override void AddScheduledSound(ScheduledSound schedule)
 {
     AddScheduledSound(schedule, null);
 }
 public override void AddScheduledSound(ScheduledSound schedule)
 {
     Play(schedule);
 }
Esempio n. 5
0
 public override void AddScheduledSound(ScheduledSound schedule)
 {
     _schedules.Add(schedule);
     Play(schedule);
 }