From 4141c939d6be7037ea1e5a8ae12dd06491da08e3 Mon Sep 17 00:00:00 2001 From: EmeraldBlock <69981203+EmeraldBlock@users.noreply.github.com> Date: Thu, 8 Oct 2020 20:12:34 -0500 Subject: [PATCH 1/3] use safeModulo --- src/js/game/hud/parts/base_toolbar.js | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/js/game/hud/parts/base_toolbar.js b/src/js/game/hud/parts/base_toolbar.js index 3db6dfcb..391c3558 100644 --- a/src/js/game/hud/parts/base_toolbar.js +++ b/src/js/game/hud/parts/base_toolbar.js @@ -164,11 +164,8 @@ export class HUDBaseToolbar extends BaseHUDPart { ? -1 : 1; let newIndex = this.lastSelectedIndex; - for (let i = 0; i < this.primaryBuildings.length; ++i, newIndex += direction) { - newIndex %= this.primaryBuildings.length; - if (newIndex < 0) { - newIndex += this.primaryBuildings.length; - } + for (let i = 0; i < this.primaryBuildings.length; ++i) { + newIndex = safeModulo(newIndex + direction, this.primaryBuildings.length); const metaBuilding = gMetaBuildingRegistry.findByClass(this.primaryBuildings[newIndex]); const handle = this.buildingHandles[metaBuilding.id]; if (!handle.selected && handle.unlocked) { From 39e360cc5bb0f9dae45bbad0ade35e3c062ad5c1 Mon Sep 17 00:00:00 2001 From: EmeraldBlock <69981203+EmeraldBlock@users.noreply.github.com> Date: Thu, 8 Oct 2020 20:16:58 -0500 Subject: [PATCH 2/3] use safeModulo --- src/js/game/hud/parts/building_placer_logic.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/js/game/hud/parts/building_placer_logic.js b/src/js/game/hud/parts/building_placer_logic.js index cd189603..986db1b4 100644 --- a/src/js/game/hud/parts/building_placer_logic.js +++ b/src/js/game/hud/parts/building_placer_logic.js @@ -3,6 +3,7 @@ import { gMetaBuildingRegistry } from "../../../core/global_registries"; import { Signal, STOP_PROPAGATION } from "../../../core/signal"; import { TrackedState } from "../../../core/tracked_state"; import { Vector } from "../../../core/vector"; +import { safeModulo } from "../../../core/utils"; import { enumMouseButton } from "../../camera"; import { StaticMapEntityComponent } from "../../components/static_map_entity"; import { Entity } from "../../entity"; @@ -471,10 +472,7 @@ export class HUDBuildingPlacerLogic extends BaseHUDPart { .pressed ? -1 : 1; - let newIndex = (index + direction) % availableVariants.length; - if (newIndex < 0) { - newIndex += availableVariants.length; - } + let newIndex = safeModulo(index + direction, availableVariants.length); const newVariant = availableVariants[newIndex]; this.setVariant(newVariant); } From c7428d6f77ba9696c1a40b1e6acfcc453ea98f30 Mon Sep 17 00:00:00 2001 From: EmeraldBlock <69981203+EmeraldBlock@users.noreply.github.com> Date: Thu, 8 Oct 2020 20:17:08 -0500 Subject: [PATCH 3/3] oops, need an import --- src/js/game/hud/parts/base_toolbar.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/game/hud/parts/base_toolbar.js b/src/js/game/hud/parts/base_toolbar.js index 391c3558..75862c41 100644 --- a/src/js/game/hud/parts/base_toolbar.js +++ b/src/js/game/hud/parts/base_toolbar.js @@ -1,6 +1,6 @@ import { gMetaBuildingRegistry } from "../../../core/global_registries"; import { Signal, STOP_PROPAGATION } from "../../../core/signal"; -import { makeDiv } from "../../../core/utils"; +import { makeDiv, safeModulo } from "../../../core/utils"; import { KEYMAPPINGS } from "../../key_action_mapper"; import { MetaBuilding } from "../../meta_building"; import { GameRoot } from "../../root";