From ee88cd33b14334101f4b16f61ee98be2763e2512 Mon Sep 17 00:00:00 2001 From: danmw3 Date: Sat, 9 Nov 2019 00:00:02 -0500 Subject: [PATCH] Allow for toggling the visibility of power line lasers (#1022) * Allow for toggling the visibility of power line lasers Configurable key-bind in controls and obeys the power line opacity setting. * Last power opacity is saved after being toggled off. * Moved key-bind into the View category. --- core/src/io/anuke/mindustry/input/Binding.java | 2 +- core/src/io/anuke/mindustry/input/DesktopInput.java | 9 +++++++++ .../anuke/mindustry/ui/dialogs/SettingsMenuDialog.java | 7 ++++++- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/core/src/io/anuke/mindustry/input/Binding.java b/core/src/io/anuke/mindustry/input/Binding.java index 24421b26cd..8e5ca2bf64 100644 --- a/core/src/io/anuke/mindustry/input/Binding.java +++ b/core/src/io/anuke/mindustry/input/Binding.java @@ -31,12 +31,12 @@ public enum Binding implements KeyBind{ minimap(KeyCode.M), toggle_menus(KeyCode.C), screenshot(KeyCode.P), + toggle_power_lines(KeyCode.F7), player_list(KeyCode.TAB, "multiplayer"), chat(KeyCode.ENTER), chat_history_prev(KeyCode.UP), chat_history_next(KeyCode.DOWN), chat_scroll(new Axis(KeyCode.SCROLL)), - ; private final KeybindValue defaultValue; diff --git a/core/src/io/anuke/mindustry/input/DesktopInput.java b/core/src/io/anuke/mindustry/input/DesktopInput.java index 3660bb847e..e3af574cff 100644 --- a/core/src/io/anuke/mindustry/input/DesktopInput.java +++ b/core/src/io/anuke/mindustry/input/DesktopInput.java @@ -429,6 +429,15 @@ public class DesktopInput extends InputHandler{ mode = none; } + + if(Core.input.keyTap(Binding.toggle_power_lines)){ + if(Core.settings.getInt("lasersopacity") == 0){ + Core.settings.put("lasersopacity", Core.settings.getInt("preferredlaseropacity", 100)); + }else{ + Core.settings.put("preferredlaseropacity", Core.settings.getInt("lasersopacity")); + Core.settings.put("lasersopacity", 0); + } + } } @Override diff --git a/core/src/io/anuke/mindustry/ui/dialogs/SettingsMenuDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/SettingsMenuDialog.java index 1b1d1b9cf4..f351fd133a 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/SettingsMenuDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/SettingsMenuDialog.java @@ -259,7 +259,12 @@ public class SettingsMenuDialog extends SettingsDialog{ }); graphics.sliderPref("fpscap", 240, 15, 245, 5, s -> (s > 240 ? Core.bundle.get("setting.fpscap.none") : Core.bundle.format("setting.fpscap.text", s))); graphics.sliderPref("chatopacity", 100, 0, 100, 5, s -> s + "%"); - graphics.sliderPref("lasersopacity", 100, 0, 100, 5, s -> s + "%"); + graphics.sliderPref("lasersopacity", 100, 0, 100, 5, s -> { + if(ui.settings != null){ + Core.settings.put("preferredlaseropacity", s); + } + return s + "%"; + }); if(!mobile){ graphics.checkPref("vsync", true, b -> Core.graphics.setVSync(b));