From fc883f1e5e6c98f009443f9948c9f2483af1a591 Mon Sep 17 00:00:00 2001 From: tobspr Date: Wed, 17 Jun 2020 14:29:43 +0200 Subject: [PATCH] Add keybinding hint for direction lock --- src/css/ingame_hud/keybindings_overlay.scss | 8 ++++++++ src/js/game/hud/parts/building_placer_logic.js | 7 +++++-- src/js/game/hud/parts/keybinding_overlay.js | 18 +++++++++++++++++- src/js/game/key_action_mapper.js | 2 +- translations/base-en.yaml | 1 + 5 files changed, 32 insertions(+), 4 deletions(-) diff --git a/src/css/ingame_hud/keybindings_overlay.scss b/src/css/ingame_hud/keybindings_overlay.scss index d6235406..6d0f99c8 100644 --- a/src/css/ingame_hud/keybindings_overlay.scss +++ b/src/css/ingame_hud/keybindings_overlay.scss @@ -75,6 +75,14 @@ display: none; } + &:not(.hasDirectionLock) .binding.directionLock { + display: none; + } + + &.hasDirectionLock .noDirectionLock { + display: none; + } + .binding.placementOnly, &:not(.placementActive) .binding.noPlacementOnly { transform-origin: 0% 50%; diff --git a/src/js/game/hud/parts/building_placer_logic.js b/src/js/game/hud/parts/building_placer_logic.js index 1c006318..d73e4f6a 100644 --- a/src/js/game/hud/parts/building_placer_logic.js +++ b/src/js/game/hud/parts/building_placer_logic.js @@ -121,7 +121,7 @@ export class HUDBuildingPlacerLogic extends BaseHUDPart { return ( metaBuilding && metaBuilding.getHasDirectionLockAvailable() && - this.root.keyMapper.getBinding(KEYMAPPINGS.placement.lockBeltDirection).pressed + this.root.keyMapper.getBinding(KEYMAPPINGS.placementModifiers.lockBeltDirection).pressed ); } @@ -246,7 +246,10 @@ export class HUDBuildingPlacerLogic extends BaseHUDPart { * @param {any} args */ checkForDirectionLockSwitch({ keyCode }) { - if (keyCode === this.root.keyMapper.getBinding(KEYMAPPINGS.placement.lockBeltDirection).keyCode) { + if ( + keyCode === + this.root.keyMapper.getBinding(KEYMAPPINGS.placementModifiers.lockBeltDirection).keyCode + ) { this.abortDragging(); } } diff --git a/src/js/game/hud/parts/keybinding_overlay.js b/src/js/game/hud/parts/keybinding_overlay.js index 24d7040e..90d07c52 100644 --- a/src/js/game/hud/parts/keybinding_overlay.js +++ b/src/js/game/hud/parts/keybinding_overlay.js @@ -3,6 +3,7 @@ import { T } from "../../../translations"; import { getStringForKeyCode, KEYMAPPINGS } from "../../key_action_mapper"; import { BaseHUDPart } from "../base_hud_part"; import { TrackedState } from "../../../core/tracked_state"; +import { MetaBuilding } from "../../meta_building"; export class HUDKeybindingOverlay extends BaseHUDPart { initialize() { @@ -77,19 +78,34 @@ export class HUDKeybindingOverlay extends BaseHUDPart { (this.root.app.settings.getAllSettings().alwaysMultiplace ? "" : ` -
+
${getKeycode( KEYMAPPINGS.placementModifiers.placeMultiple )}
`) + ` + +
+ ${getKeycode( + KEYMAPPINGS.placementModifiers.lockBeltDirection + )} + +
` ); } + /** + * + * @param {MetaBuilding} selectedMetaBuilding + */ onSelectedBuildingForPlacementChanged(selectedMetaBuilding) { this.element.classList.toggle("placementActive", !!selectedMetaBuilding); + this.element.classList.toggle( + "hasDirectionLock", + selectedMetaBuilding && selectedMetaBuilding.getHasDirectionLockAvailable() + ); } applyCssClasses() { diff --git a/src/js/game/key_action_mapper.js b/src/js/game/key_action_mapper.js index 7bdddd18..04491d7f 100644 --- a/src/js/game/key_action_mapper.js +++ b/src/js/game/key_action_mapper.js @@ -61,7 +61,6 @@ export const KEYMAPPINGS = { rotateInverseModifier: { keyCode: 16 }, // SHIFT cycleBuildingVariants: { keyCode: key("T") }, cycleBuildings: { keyCode: 9 }, // TAB - lockBeltDirection: { keyCode: 16 }, // SHIFT }, massSelect: { @@ -74,6 +73,7 @@ export const KEYMAPPINGS = { }, placementModifiers: { + lockBeltDirection: { keyCode: 16 }, // SHIFT placementDisableAutoOrientation: { keyCode: 17 }, // CTRL placeMultiple: { keyCode: 16 }, // SHIFT placeInverse: { keyCode: 18 }, // ALT diff --git a/translations/base-en.yaml b/translations/base-en.yaml index 244523ac..13052fca 100644 --- a/translations/base-en.yaml +++ b/translations/base-en.yaml @@ -283,6 +283,7 @@ ingame: createMarker: Create Marker delete: Destroy pasteLastBlueprint: Paste last blueprint + lockBeltDirection: Enable belt planner # Everything related to placing buildings (I.e. as soon as you selected a building # from the toolbar)