protected override void updateMouse() { if (m_bounds.contains(MouseHandler.getCurPos())) { m_currentState = State.Hover; m_text.p_color = m_hoverColor; if (MouseHandler.lmbPressed()) { m_currentState = State.Pressed; playDownSound(); m_text.p_color = m_pressedColor; } if (MouseHandler.lmbUp()) { playUpSound(); if (m_clickEvent != null) { m_clickEvent(this); } m_text.p_color = m_hoverColor; } } else if (!m_bounds.contains(MouseHandler.getCurPos()) && m_bounds.contains(MouseHandler.getPrePos())) { m_currentState = State.Normal; m_text.p_color = m_normalColor; } }
protected virtual void updateMouse() { if (m_bounds.contains(MouseHandler.worldMouse())) { m_currentState = State.Hover; if (MouseHandler.lmbDown() && m_currentState != State.Pressed) { playDownSound(); m_currentState = State.Pressed; } if (m_currentState != State.Pressed && MouseHandler.lmbUp()) { playUpSound(); m_currentState = State.Hover; if (m_clickEvent != null) { m_clickEvent(this); } } } else { m_currentState = State.Normal; } }
public override void update() { m_hitbox.update(); bool l_collided = CollisionManager.hexagonContains(this, MouseHandler.worldMouse(), TILE_WIDTH, TILE_HEIGHT); if (l_collided && !m_ignoreMouse && !m_tileMap.p_ignoreMouse) { m_tileMap.p_hover = this; if (m_tileAbove != null) { m_tileAbove.ignoreMouse(true); } switch (m_tileState) { case TileState.Normal: m_tileState = TileState.Hover; break; case TileState.Hover: if (MouseHandler.lmbDown()) { m_tileState = TileState.Pressed; } break; case TileState.Pressed: if (MouseHandler.lmbUp()) { m_tileState = TileState.Hover; } break; case TileState.Toggle: if (MouseHandler.lmbUp()) { m_tileState = TileState.Normal; } m_tileState = TileState.Hover; break; } } else { if (m_hoverOverToggle) { m_tileState = TileState.Toggle; } else { m_tileState = TileState.Normal; } if (m_tileAbove != null) { m_tileAbove.ignoreMouse(false); } } base.update(); }