Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--assets/opensb/binds/opensb.binds22
-rw-r--r--source/client/StarClientApplication.cpp12
2 files changed, 32 insertions, 2 deletions
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() {