/// <summary> /// Kills a note at a specific index of the object pool. /// </summary> /// <param name="index"></param> public void KillPoolObject(GameplayHitObjectKeys gameplayHitObject) { // Change the sprite color to dead. gameplayHitObject.Kill(); // Add to dead notes pool DeadNoteLanes[gameplayHitObject.Info.Lane - 1].Enqueue(gameplayHitObject); }
/// <summary> /// Kills a hold pool object. /// </summary> /// <param name="gameplayHitObject"></param> public void KillHoldPoolObject(GameplayHitObjectKeys gameplayHitObject) { // Change start time and LN size. gameplayHitObject.InitialTrackPosition = GetPositionFromTime(CurrentAudioPosition); gameplayHitObject.CurrentlyBeingHeld = false; gameplayHitObject.UpdateLongNoteSize(gameplayHitObject.InitialTrackPosition); gameplayHitObject.Kill(); // Add to dead notes pool DeadNoteLanes[gameplayHitObject.Info.Lane - 1].Enqueue(gameplayHitObject); }
/// <summary> /// Recycles a pool object. /// </summary> /// <param name="index"></param> public void RecyclePoolObject(GameplayHitObjectKeys gameplayHitObject) { var lane = HitObjectQueueLanes[gameplayHitObject.Info.Lane - 1]; if (lane.Count > 0) { var info = lane.Dequeue(); gameplayHitObject.InitializeObject(this, info); ActiveNoteLanes[info.Lane - 1].Enqueue(gameplayHitObject); } else { gameplayHitObject.Destroy(); } }
/// <summary> /// Changes a pool object to a long note that is held at the receptors. /// </summary> /// <param name="index"></param> public void ChangePoolObjectStatusToHeld(GameplayHitObjectKeys gameplayHitObject) { // Add to the held long notes. HeldLongNoteLanes[gameplayHitObject.Info.Lane - 1].Enqueue(gameplayHitObject); gameplayHitObject.CurrentlyBeingHeld = true; }