Пример #1
0
 private void PlayTuneStack()
 {
     if (!playingTune)
     {
         playingTune = true;
     }
     if (nextNote.Pluck)
     {
         effectP.worldPos = transform.position;
         effectP.origin   = transform.position;
         effectP.scale    = nextNote.NoteScale;
         EffectNetwork.Send(effectP);
     }
     else
     {
         effectS.worldPos = transform.position;
         effectS.origin   = transform.position;
         effectS.scale    = nextNote.NoteScale;
         EffectNetwork.Send(effectS);
     }
     if (tuneToPlay.Count > 0 && enabled)
     {
         Invoke("PlayTuneStack", nextNote.Delay);
         nextNote = tuneToPlay.Pop();
     }
     else
     {
         if (!enabled)
         {
             tuneToPlay = new Stack <TuneNote>();
         }
         playingTune = false;
     }
 }
Пример #2
0
            public void PlayTune()
            {
                tuneToPlay = new Stack <TuneNote>();
                foreach (var note in curTune.Reverse <TuneNote>())
                {
                    tuneToPlay.Push(note);
                }


                curTune = new List <TuneNote>();
                if (tuneToPlay.Count > 0)
                {
                    nextNote = tuneToPlay.Pop();
                    if (!playingTune)
                    {
                        PlayTuneStack();
                    }
                }
            }
Пример #3
0
            void FixedUpdate()
            {
                float time = Time.realtimeSinceStartup;

                if (input.current.buttons != input.previous.buttons && input.current.buttons != 0 && NextTimeToPress < time)
                {
                    float num_shift = input.WasDown(BUTTON.SPRINT) ? 0.2f : 0;
                    bool  Strum     = input.WasDown(BUTTON.DUCK);
                    //fx/gestures/guitarstrum
                    NextTimeToPress = time + noteTime;
                    float num = (float)Math.Log((input.current.buttons / 262144), 2) / adjust + num_shift + start;
                    //owner.ChatMessage(num.ToString("N2"));
                    if (float.IsInfinity(num))
                    {
                        return;
                    }
                    if (num > 7)
                    {
                        num = 7;
                    }
                    else if (num < -2)
                    {
                        num = -2;
                    }
                    if (!Strum)
                    {
                        effectP.worldPos = transform.position;
                        effectP.origin   = transform.position;
                        effectP.scale    = num;
                        EffectNetwork.Send(effectP);
                    }
                    else
                    {
                        effectS.worldPos = transform.position;
                        effectS.origin   = transform.position;
                        effectS.scale    = num;
                        EffectNetwork.Send(effectS);
                    }
                    if (Recording)
                    {
                        if (recTune == null)
                        {
                            recTune = new List <TuneNote>();
                        }
                        if (recTune.Count == 0)
                        {
                            recTune = new List <TuneNote>();
                            TuneNote curNote = new TuneNote(num, 0f, !Strum);
                            recTune.Add(curNote);
                            nextNoteTime = time;
                        }
                        else
                        {
                            recTune[recTune.Count - 1].Delay = time - nextNoteTime;
                            TuneNote curNote = new TuneNote(num, 0f, !Strum);
                            recTune.Add(curNote);
                            nextNoteTime = time;
                        }
                    }
                }
            }