diff --git a/src/js/game/hud/parts/building_placer.js b/src/js/game/hud/parts/building_placer.js index c1179f33..9dcc2211 100644 --- a/src/js/game/hud/parts/building_placer.js +++ b/src/js/game/hud/parts/building_placer.js @@ -128,11 +128,17 @@ export class HUDBuildingPlacer extends BaseHUDPart { } // Deletion - if (button === enumMouseButton.right && !this.currentMetaBuilding.get()) { + if ( + button === enumMouseButton.right && + (!this.currentMetaBuilding.get() || + this.root.app.settings.getSetting("deletingDoesntClearCursor")) + ) { this.currentlyDragging = true; this.currentlyDeleting = true; this.lastDragTile = this.root.camera.screenToWorld(pos).toTileSpace(); - this.currentMetaBuilding.set(null); + if (!this.root.app.settings.getSetting("deletingDoesntClearCursor")) { + this.currentMetaBuilding.set(null); + } return STOP_PROPAGATION; } } @@ -435,7 +441,10 @@ export class HUDBuildingPlacer extends BaseHUDPart { */ onCanvasClick(mousePos, cancelAction = false) { if (cancelAction) { - if (this.currentMetaBuilding.get()) { + if ( + this.currentMetaBuilding.get() && + !this.root.app.settings.getSetting("deletingDoesntClearCursor") + ) { this.currentMetaBuilding.set(null); } else { this.deleteBelowCursor(); diff --git a/src/js/profile/application_settings.js b/src/js/profile/application_settings.js index 96cbed2f..2601e125 100644 --- a/src/js/profile/application_settings.js +++ b/src/js/profile/application_settings.js @@ -116,6 +116,7 @@ export const allApplicationSettings = [ }), new BoolSetting("alwaysMultiplace", categoryGame, (app, value) => {}), + new BoolSetting("deletingDoesntClearCursor", categoryGame, (app, value) => {}), new BoolSetting("offerHints", categoryGame, (app, value) => {}), ]; @@ -134,6 +135,7 @@ class SettingsStorage { this.refreshRate = "60"; this.alwaysMultiplace = false; + this.deletingDoesntClearCursor = false; this.offerHints = true; /** @@ -293,7 +295,7 @@ export class ApplicationSettings extends ReadWriteProxy { } getCurrentVersion() { - return 7; + return 8; } /** @param {{settings: SettingsStorage, version: number}} data */ @@ -315,6 +317,11 @@ export class ApplicationSettings extends ReadWriteProxy { data.version = 7; } + if (data.version < 8) { + data.settings.deletingDoesntClearCursor = false; + data.version = 8; + } + return ExplainedResult.good(); } } diff --git a/translations/base-en.yaml b/translations/base-en.yaml index 9940b0b5..4d4ce971 100644 --- a/translations/base-en.yaml +++ b/translations/base-en.yaml @@ -542,6 +542,11 @@ settings: description: >- If enabled, all buildings will stay selected after placement until you cancel it. This is equivalent to holding SHIFT permanently. + deletingDoesntClearCursor: + title: Deleting doesn't clear cursor + description: >- + If enabled, buildings will stay selected when you are deleting objects, until you manually cancel it. + offerHints: title: Hints & Tutorials description: >-