diff --git a/src/js/core/input_distributor.js b/src/js/core/input_distributor.js index ffd6cfcd..8886947b 100644 --- a/src/js/core/input_distributor.js +++ b/src/js/core/input_distributor.js @@ -25,6 +25,7 @@ export class InputDistributor { this.shiftIsDown = false; this.altIsDown = false; + this.ctrlIsDown = false; this.bindToEvents(); } @@ -175,6 +176,7 @@ export class InputDistributor { * Handles when the page got blurred */ handleBlur() { + this.ctrlIsDown = false; this.shiftIsDown = false; this.altIsDown = false; this.forwardToReceiver("pageBlur", {}); @@ -188,6 +190,9 @@ export class InputDistributor { if (event.keyCode === 16) { this.shiftIsDown = true; } + if (event.keyCode === 17) { + this.ctrlIsDown = true; + } if (event.keyCode === 18) { this.altIsDown = true; } @@ -229,6 +234,10 @@ export class InputDistributor { this.shiftIsDown = false; this.forwardToReceiver("shiftUp", {}); } + if (event.keyCode === 17) { + this.ctrlIsDown = false; + this.forwardToReceiver("ctrlUp", {}); + } if (event.keyCode === 18) { this.altIsDown = false; this.forwardToReceiver("altUp", {}); diff --git a/src/js/core/input_receiver.js b/src/js/core/input_receiver.js index c4b6fbfe..1a373905 100644 --- a/src/js/core/input_receiver.js +++ b/src/js/core/input_receiver.js @@ -11,6 +11,7 @@ export class InputReceiver { this.pageBlur = new Signal(); this.shiftUp = new Signal(); this.altUp = new Signal(); + this.ctrlUp = new Signal(); // Dispatched on destroy this.destroyed = new Signal(); diff --git a/src/js/game/hud/parts/building_placer.js b/src/js/game/hud/parts/building_placer.js index 14d3e19f..b3bc4108 100644 --- a/src/js/game/hud/parts/building_placer.js +++ b/src/js/game/hud/parts/building_placer.js @@ -28,8 +28,8 @@ export class HUDBuildingPlacer extends BaseHUDPart { this.fakeEntity = null; const keyActionMapper = this.root.gameState.keyActionMapper; - keyActionMapper.getBinding("building_abort_placement").add(() => this.currentMetaBuilding.set(null)); - keyActionMapper.getBinding("back").add(() => this.currentMetaBuilding.set(null)); + keyActionMapper.getBinding("building_abort_placement").add(this.abortPlacement, this); + keyActionMapper.getBinding("back").add(this.abortPlacement, this); keyActionMapper.getBinding("rotate_while_placing").add(this.tryRotate, this); @@ -61,6 +61,13 @@ export class HUDBuildingPlacer extends BaseHUDPart { this.buildingDescription = makeDiv(this.element, null, ["description"], ""); } + abortPlacement() { + if (this.currentMetaBuilding.get()) { + this.currentMetaBuilding.set(null); + return STOP_PROPAGATION; + } + } + /** * mouse down pre handler * @param {Vector} pos diff --git a/src/js/game/hud/parts/keybinding_overlay.js b/src/js/game/hud/parts/keybinding_overlay.js index edf4d88c..99b4231e 100644 --- a/src/js/game/hud/parts/keybinding_overlay.js +++ b/src/js/game/hud/parts/keybinding_overlay.js @@ -45,7 +45,7 @@ export class HUDKeybindingOverlay extends BaseHUDPart {
- ALT+ + CTRL+
diff --git a/src/js/game/hud/parts/mass_selector.js b/src/js/game/hud/parts/mass_selector.js index f8b0cb83..f3a205d4 100644 --- a/src/js/game/hud/parts/mass_selector.js +++ b/src/js/game/hud/parts/mass_selector.js @@ -79,7 +79,7 @@ export class HUDMassSelector extends BaseHUDPart { * @param {Vector} pos */ onMouseDown(pos) { - if (!this.root.app.inputMgr.altIsDown) { + if (!this.root.app.inputMgr.ctrlIsDown) { return; }