Пример #1
0
 public MusicHandler(GuildHandler GuildHandler)
 {
     this.GuildHandler = GuildHandler;
     voiceChannel      = null;
     queue             = new MusicQueue(this);
     player            = new MusicPlayer(GuildHandler, this);
 }
Пример #2
0
    void Start()
    {
        musicQueue = new MusicQueue(musicClips);

        musicSource = GetComponent <AudioSource>();

        StartMusic();
    }
Пример #3
0
        /// <summary>
        /// Plays the next music track in the music queue
        /// </summary>
        public void NextMusicTrack()
        {
            // stop the current track
            StopMusic();
            switch (PlayerState)
            {
            // play track queue in order
            case MusicPlayerState.Ordered:
                if (MusicQueue != null && MusicQueue.Count > 0)
                {
                    SoundEffect nextTrack = MusicQueue.Dequeue();
                    PlayMusic(nextTrack);
                }
                else
                {
                    OnMusicQueueEnded(new SoundEffectEventArgs(null));
                }
                break;

            // play a random track from the queue
            case MusicPlayerState.Shuffle:
                if (MusicQueue != null && MusicQueue.Count > 0)
                {
                    int         i         = RandomHelper.Next(0, MusicQueue.Count);
                    SoundEffect nextTrack = MusicQueue.Get(i);
                    if (nextTrack != null)
                    {
                        PlayMusic(nextTrack);
                    }
                }
                else
                {
                    PlayMusic(currentMusicEffect);
                }
                break;

            // play the music queue over and over
            case MusicPlayerState.RepeatOrder:
                if (currentQueueNode.Next == null)
                {
                    currentQueueNode = MusicQueue.First;
                }
                else
                {
                    currentQueueNode = currentQueueNode.Next;
                }
                PlayMusic(currentQueueNode.Value);
                break;

            // play the same track over and over
            case MusicPlayerState.RepeatOne:
                PlayMusic(currentMusicEffect);
                break;

            default:
                break;
            }
        }
Пример #4
0
        // Support for music. Not finished
        public void StopMusic()
        {
            MusicQueue.Clear();

            if (MusicEmitter)
            {
                MusicEmitter.Stop();
                MusicEmitter = null;
            }
        }
Пример #5
0
        private void Bot_ChangedMusicQueue(object sender, MusicQueue e)
        {
            this.Invoke(new MethodInvoker(() =>
            {
                listMusicLink.Clear();
                listMusicTitle.Clear();

                foreach (var p in e.List)
                {
                    listMusicLink.Items.Add(p.Link);
                    listMusicTitle.Items.Add(p.Title);
                }
            }));
        }
Пример #6
0
    void Start()
    {
        //AudioListener.volume = PlayerPrefs.GetFloat("MasterVolume");
        //if (!PlayerPrefs.HasKey("MasterVolume")){AudioListener.volume = 0.3f;}

        //volume = PlayerPrefs.GetFloat("MusicVolume");
        //if (!PlayerPrefs.HasKey("MusicVolume")){volume = 0.3f; }

        musicPlayerAudio        = GameObject.Find("Music").GetComponent <AudioSource>();
        musicPlayerAudio.volume = volume;
        // audioMixer.SetFloat("MusicVolume", volume);
        musicQueue  = new MusicQueue(musicClips);
        musicSource = GetComponent <AudioSource>();
        StartMusic();
    }
Пример #7
0
        public void Update()
        {
            // Update the music queue
            if (MusicQueue.Count > 0)
            {
                if (string.IsNullOrEmpty(CurrentMusicEvent))
                {
                    PlayMusic(MusicQueue.Dequeue());
                }
            }

            //Delete any dead emitters
            LinkedListNode <AudioEmitter> currentNode = ActiveEmitters.First;

            while (currentNode != null)
            {
                if (currentNode.Value.Finished)
                {
                    var node = currentNode;
                    currentNode = currentNode.Next;
                    GameObject.Destroy(node.Value.gameObject);
                    ActiveEmitters.Remove(node);
                }
                else
                {
                    currentNode = currentNode.Next;
                }
            }

#if UNITY_EDITOR
            if (LogBankRefCounts)
            {
                foreach (KeyValuePair <string, int> kvp in BankReferenceCounts)
                {
                    Debug.Log(kvp.Key.ToString() + ":" + kvp.Value.ToString());
                }
                LogBankRefCounts = false;
            }
#endif
        }