using System;
using System.Collections.Generic;
using System.Text;
public class BlinkButtonManager
{
// List containing all blinking buttons:
private List<BlinkData> m_BlinkingButtons = new List<BlinkData>();
public void BlinkButton(string buttonName)
{
BlinkData blinkData = new BlinkData(buttonName);
this.m_BlinkingButtons.Add(blinkData);
}
// Every frame, this function will be called to update any blinking buttons:
public void Update(float elapsedTime)
{
// I count backwards because I'm modifying the size of list while iterating:
for (int i = this.m_BlinkingButtons.Count - 1; i >= 0; i--)
{
if (this.m_BlinkingButtons[i].m_IsJournalBlinking)
{
this.m_BlinkingButtons[i].m_JournalElapsedTime += elapsedTime;
this.m_BlinkingButtons[i].m_JournalElapsedTimeIncrement += elapsedTime;
if (this.m_BlinkingButtons[i].m_JournalElapsedTime > 1.5)
{
this.m_BlinkingButtons[i].m_IsJournalBlinking = false;
}
if (this.m_BlinkingButtons[i].m_JournalElapsedTimeIncrement > .15)
{
this.m_BlinkingButtons[i].m_JournalElapsedTimeIncrement = 0.0f;
if (TerraAegrus.Buttons[this.m_BlinkingButtons[i].m_ButtonName].ButtonState == GenericButton.STATE.IsRollOver)
{
TerraAegrus.Buttons[this.m_BlinkingButtons[i].m_ButtonName].ButtonState = GenericButton.STATE.IsPressed;
}
else
{
TerraAegrus.Buttons[this.m_BlinkingButtons[i].m_ButtonName].ButtonState = GenericButton.STATE.IsRollOver;
}
}
}
else
{
TerraAegrus.Buttons[this.m_BlinkingButtons[i].m_ButtonName].ButtonState = GenericButton.STATE.IsUnpressed;
this.m_BlinkingButtons.RemoveAt(i);
}
}
}
// Private data class containing information on a blinking button:
private class BlinkData
{
public bool m_IsJournalBlinking = false;
public float m_JournalElapsedTime = 0.0f;
public float m_JournalElapsedTimeIncrement = 0.0f;
public string m_ButtonName;
public BlinkData(string buttonToBlink)
{
this.m_IsJournalBlinking = true;
this.m_JournalElapsedTime = 0.0f;
this.m_JournalElapsedTimeIncrement = 0.0f;
this.m_ButtonName = buttonToBlink;
// I don't like doing this, but it works:
TerraAegrus.Buttons[buttonToBlink].ButtonState = GenericButton.STATE.IsRollOver;
}
};
}
Return to Beta Testers and Bugs
Users browsing this forum: No registered users and 1 guest