private void Update(UpdateState state)
{
Vector2 pt = Target.GetMousePosition(state.MouseState);
var pt2 = new Microsoft.Xna.Framework.Point((int)pt.X, (int)pt.Y);
if (m_active)
{
if (m_fade < 1) m_fade += 0.1f;
if (m_fade > 1) m_fade = 1;
state.UIState.TooltipProperties.Show = true;
state.UIState.TooltipProperties.Color = Color.Black;
state.UIState.TooltipProperties.UpdateDead = false;
state.UIState.TooltipProperties.Position = m_position;
state.UIState.TooltipProperties.Opacity = m_fade;
state.UIState.Tooltip = Target.Tooltip;
/** fade in **/
if (!Target.GetBounds().Contains(pt2) || !GameFacade.Focus || !Target.WillDraw())
{
m_active = false;
state.UIState.TooltipProperties.Show = false;
state.UIState.TooltipProperties.Opacity = 0;
m_fade = 0;
}
}
else
{
if (Target.GetBounds().Contains(pt2) && Target.Tooltip != null && Target.WillDraw() && GameFacade.Focus)
{
m_active = true;
state.UIState.TooltipProperties.Show = true;
state.UIState.TooltipProperties.Color = Color.Black;
state.UIState.TooltipProperties.Opacity = 0;
state.UIState.TooltipProperties.UpdateDead = false;
state.UIState.Tooltip = Target.Tooltip;
m_fade = 0;
m_position = new Vector2(state.MouseState.X, Target.LocalPoint(new Vector2(0, 0)).Y); //at top of element
}
}
}