//MouseState previousMouse; public override void Update(float deltaTime) { if (!Visible) { return; } if (flashTimer > 0.0f) { flashTimer -= deltaTime; } if (!Enabled) { return; } if (rect.Contains(PlayerInput.MousePosition) && Enabled && (MouseOn == null || MouseOn == this || IsParentOf(MouseOn) || MouseOn.IsParentOf(this))) { state = ComponentState.Hover; if (PlayerInput.LeftButtonClicked()) { Select(); OnSelected?.Invoke(this, Keys.None); } } else { state = ComponentState.None; } if (CaretEnabled) { caretTimer += deltaTime; caretVisible = ((caretTimer * 1000.0f) % 1000) < 500; } if (keyboardDispatcher.Subscriber == this) { state = ComponentState.Selected; Character.DisableControls = true; if (OnEnterPressed != null && PlayerInput.KeyHit(Keys.Enter)) { string input = Text; Text = ""; OnEnterPressed(this, input); } #if LINUX else if (PlayerInput.KeyHit(Keys.Back) && Text.Length > 0) { Text = Text.Substring(0, Text.Length - 1); } #endif } else if (Selected) { Deselect(); } textBlock.State = state; textBlock.Update(deltaTime); }