From eb87550b364821d87b9bfff7b62241f900502c43 Mon Sep 17 00:00:00 2001 From: Dimava Date: Wed, 27 May 2020 15:56:41 +0300 Subject: [PATCH 1/2] Make CycleBuildings work properly --- src/js/game/hud/parts/buildings_toolbar.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/js/game/hud/parts/buildings_toolbar.js b/src/js/game/hud/parts/buildings_toolbar.js index 86c99a01..a03f0f6f 100644 --- a/src/js/game/hud/parts/buildings_toolbar.js +++ b/src/js/game/hud/parts/buildings_toolbar.js @@ -109,7 +109,15 @@ export class HUDBuildingsToolbar extends BaseHUDPart { } cycleBuildings() { - const newIndex = (this.lastSelectedIndex + 1) % toolbarBuildings.length; + let newIndex = this.lastSelectedIndex; + for (let i = 0; i < toolbarBuildings.length; ++i) { + newIndex = (newIndex + 1) % toolbarBuildings.length; + const metaBuilding = gMetaBuildingRegistry.findByClass(toolbarBuildings[newIndex]); + const handle = this.buildingHandles[metaBuilding.id]; + if (!handle.selected && handle.unlocked) { + break; + } + } const metaBuildingClass = toolbarBuildings[newIndex]; const metaBuilding = gMetaBuildingRegistry.findByClass(metaBuildingClass); this.selectBuildingForPlacement(metaBuilding); From 6a5d1a0890bbfdcf519ae5d0acb7f1d75688cd5e Mon Sep 17 00:00:00 2001 From: Dimava Date: Wed, 27 May 2020 15:58:33 +0300 Subject: [PATCH 2/2] Make CycleBuildings select last used item when empty --- src/js/game/hud/parts/buildings_toolbar.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/js/game/hud/parts/buildings_toolbar.js b/src/js/game/hud/parts/buildings_toolbar.js index a03f0f6f..691185c9 100644 --- a/src/js/game/hud/parts/buildings_toolbar.js +++ b/src/js/game/hud/parts/buildings_toolbar.js @@ -110,8 +110,8 @@ export class HUDBuildingsToolbar extends BaseHUDPart { cycleBuildings() { let newIndex = this.lastSelectedIndex; - for (let i = 0; i < toolbarBuildings.length; ++i) { - newIndex = (newIndex + 1) % toolbarBuildings.length; + for (let i = 0; i < toolbarBuildings.length; ++i, ++newIndex) { + newIndex %= toolbarBuildings.length; const metaBuilding = gMetaBuildingRegistry.findByClass(toolbarBuildings[newIndex]); const handle = this.buildingHandles[metaBuilding.id]; if (!handle.selected && handle.unlocked) {