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; } }
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(); } } }
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; } } } }