Created
October 29, 2019 13:41
-
-
Save verborghs/699320b73a7ebde2ad69e60c322eded1 to your computer and use it in GitHub Desktop.
TimedQueue
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class TimedQueue | |
{ | |
private float _dequeueTimer; | |
private readonly float _dequeueDelay; | |
private float _emptyTimer; | |
private readonly float _emptyDelay; | |
private readonly Queue<string> _messageQueue = new Queue<string>(); | |
public TimedQueue( float dequeueDelay = 0.5f, float emptyDelay = 2.0f) | |
{ | |
_dequeueDelay = dequeueDelay; | |
_dequeueTimer = dequeueDelay + 0.1f; | |
_emptyDelay = emptyDelay; | |
_emptyTimer = _emptyDelay + 0.1f; | |
} | |
public void Update(float deltaTime) | |
{ | |
if (_messageQueue.Count > 0) | |
{ | |
_emptyTimer = 0; | |
if (_dequeueTimer > _dequeueDelay) | |
{ | |
// Notify the user that we have (_messageQueue.Dequeue()) ready | |
_dequeueTimer = 0; | |
} | |
_dequeueTimer += deltaTime; | |
} | |
else | |
{ | |
if (_emptyTimer < _emptyDelay) | |
{ | |
_emptyTimer += deltaTime; | |
if (_emptyTimer > _emptyDelay) | |
{ | |
//Notify the user the queue is empty | |
} | |
} | |
} | |
} | |
public void Enqueue(string t) | |
{ | |
_messageQueue.Enqueue(t); | |
_emptyTimer = 0.0f; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment