public override void Update(UpdateState state) { base.Update(state); if (Parent.Visible) { var speed = 60f / FSOEnvironment.RefreshRate; FillSpeed += speed * ((TargetFill - AnimFill) / 40f); AnimFill += FillSpeed; FillSpeed *= (float)Math.Pow(0.93f, speed); HFillSpeed += speed * ((HTargetFill - HAnimFill) / 40f); HAnimFill += HFillSpeed; HFillSpeed *= (float)Math.Pow(0.93f, speed); for (int i = 0; i < HighlightIntensity.Length; i++) { if (i == HighlightLevel) { if (HighlightIntensity[i] < 1) { HighlightIntensity[i] += 3f / FSOEnvironment.RefreshRate; } else { HighlightIntensity[i] = 1; } } else { if (HighlightIntensity[i] > 0) { HighlightIntensity[i] -= 3f / FSOEnvironment.RefreshRate; } else { HighlightIntensity[i] = 0; } } } if (MouseOver) { var level = GetHoveredLevel(state); if (HighlightLevel != level) { OnHoveredLevel?.Invoke(level); } } } }
private void MouseHandler(UIMouseEventType type, UpdateState state) { switch (type) { case UIMouseEventType.MouseOver: MouseOver = true; OnHoveredLevel?.Invoke(GetHoveredLevel(state)); break; case UIMouseEventType.MouseOut: MouseOver = false; OnHoveredLevel?.Invoke(-1); break; case UIMouseEventType.MouseDown: OnClickedLevel?.Invoke(GetHoveredLevel(state)); break; } }
private void MouseHandler(UIMouseEventType type, UpdateState state) { switch (type) { case UIMouseEventType.MouseOver: OnHoveredLevel?.Invoke(Level); break; case UIMouseEventType.MouseOut: OnHoveredLevel?.Invoke(-1); break; case UIMouseEventType.MouseDown: Highlight = -0.15f; break; case UIMouseEventType.MouseUp: SetHighlight(false); OnClickedLevel?.Invoke(Level); break; } }