diff options
author | Kae <80987908+Novaenia@users.noreply.github.com> | 2023-06-28 22:52:09 +1000 |
---|---|---|
committer | Kae <80987908+Novaenia@users.noreply.github.com> | 2023-06-28 22:52:09 +1000 |
commit | 0b7ddd05d19fa320b25ad0f5c968852dc416583d (patch) | |
tree | 82dcdaa98157a22c453af124091957dbf162f56c /source/client/StarClientApplication.cpp | |
parent | 0886098242be9e41f351519f8a5958995e8ed9ab (diff) |
Add extremely basic controller support (only movement)
Diffstat (limited to 'source/client/StarClientApplication.cpp')
-rw-r--r-- | source/client/StarClientApplication.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/source/client/StarClientApplication.cpp b/source/client/StarClientApplication.cpp index 304fe61..fa8d97b 100644 --- a/source/client/StarClientApplication.cpp +++ b/source/client/StarClientApplication.cpp @@ -273,6 +273,16 @@ void ClientApplication::processInput(InputEvent const& event) { return KeyDownEvent{keyEvent.key, keyEvent.mods & ~*modKey}; }); } + else if (auto cAxis = event.ptr<ControllerAxisEvent>()) { + if (cAxis->controllerAxis == ControllerAxis::LeftX) + m_controllerLeftStick[0] = cAxis->controllerAxisValue; + else if (cAxis->controllerAxis == ControllerAxis::LeftY) + m_controllerLeftStick[1] = cAxis->controllerAxisValue; + else if (cAxis->controllerAxis == ControllerAxis::RightX) + m_controllerRightStick[0] = cAxis->controllerAxisValue; + else if (cAxis->controllerAxis == ControllerAxis::RightY) + m_controllerRightStick[1] = cAxis->controllerAxisValue; + } if (!m_errorScreen->accepted() && m_errorScreen->handleInputEvent(event)) return; @@ -755,6 +765,11 @@ void ClientApplication::updateRunning() { m_player->addEmote(HumanoidEmote::Sleep); } + if (m_controllerLeftStick.magnitudeSquared() > 0.001f) + m_player->setMoveVector(m_controllerLeftStick); + else + m_player->setMoveVector(Vec2F()); + auto checkDisconnection = [this]() { if (!m_universeClient->isConnected()) { m_cinematicOverlay->stop(); |