public override void Update(GameTime gameTime) { var info = (MouseClickInteractInfo)GetInteractInfo(); if (info.GetInteractType() == MouseInteractType.Unknown) { return; } IClickable best = null; foreach (var clickable in RegisteredInterables.Select(x => (IClickable)x)) { if (clickable.TriggerArea.Contains(info.Position) && (best == null || best.Layer < clickable.Layer)) { best = clickable; } } best?.NotifyInteract(info); }
public override void Update(GameTime gameTime) { var info = (TouchPadInteractInfo)GetInteractInfo(); if (info.GetInteractType() == TouchInteractType.Unknown) { return; } if (info.GetInteractType() == TouchInteractType.Tap) { var tapInfo = (TouchPadTapInteractInfo)info; IClickable best = null; foreach (var tappable in RegisteredInterables.Select(x => (ITappable)x)) { if (tappable.TriggerArea.Contains(tapInfo.Position) && (best == null || best.Layer < tappable.Layer)) { best = tappable; } } best?.NotifyInteract(tapInfo); } }