diff --git a/assets/opensb/binds/opensb.binds b/assets/opensb/binds/opensb.binds index f493148..b8a13c2 100644 --- a/assets/opensb/binds/opensb.binds +++ b/assets/opensb/binds/opensb.binds @@ -1,8 +1,26 @@ { "opensb": { - "name": "OpenStarbound", - "bannerName" : "Open^#ebd74a;Starbound", + "groups": { + "camera": { "name": "Camera" } + }, + "name": "Open^#ebd74a;Starbound", "binds": { + "zoomIn": { + "default": [{ + "type": "key", + "value": "=" + }], + "group" : "camera", + "name": "Zoom In" + }, + "zoomOut": { + "default": [{ + "type": "key", + "value": "-" + }], + "group" : "camera", + "name": "Zoom Out" + }, "test": { "default": [{ "type": "key", diff --git a/source/client/StarClientApplication.cpp b/source/client/StarClientApplication.cpp index 33a4552..b4c9b1a 100644 --- a/source/client/StarClientApplication.cpp +++ b/source/client/StarClientApplication.cpp @@ -315,6 +315,18 @@ void ClientApplication::processInput(InputEvent const& event) { } m_input->handleInput(event, processed); + WorldCamera& camera = m_worldPainter->camera(); + + auto config = m_root->configuration(); + int zoomOffset = 0; + + if (auto presses = m_input->bindDown("opensb", "zoomIn")) + zoomOffset += *presses; + if (auto presses = m_input->bindDown("opensb", "zoomOut")) + zoomOffset -= *presses; + + if (zoomOffset != 0) + config->set("zoomLevel", max(1.0f, round(config->get("zoomLevel").toFloat() + zoomOffset))); } void ClientApplication::update() {