diff --git a/resources/lang/en.json b/resources/lang/en.json index 80cb188e4..c53716615 100644 --- a/resources/lang/en.json +++ b/resources/lang/en.json @@ -939,6 +939,8 @@ "name_scale_label": "Name Scale", "name_cull_label": "Minimum name size", "name_cull_desc": "Hide names smaller than this size", + "hover_fade_label": "Name opacity under cursor", + "hover_fade_desc": "How visible names are while your cursor is over them (1 to disable fading)", "colored_names_label": "Name color", "colored_names_desc": "Show player names in their player color or in black", "colored": "Colored", diff --git a/src/client/controllers/HoverHighlightController.ts b/src/client/controllers/HoverHighlightController.ts index bf1f69552..e647bd659 100644 --- a/src/client/controllers/HoverHighlightController.ts +++ b/src/client/controllers/HoverHighlightController.ts @@ -31,6 +31,9 @@ export class HoverHighlightController implements Controller { } private onMouseMove(e: MouseMoveEvent): void { + const world = this.transformHandler.screenToWorldCoordinatesFloat(e.x, e.y); + this.view.setMouseWorldPos(world.x, world.y); + const cell = this.transformHandler.screenToWorldCoordinates(e.x, e.y); let ownerID = 0; if (this.game.isValidCoord(cell.x, cell.y)) { diff --git a/src/client/hud/layers/GraphicsSettingsModal.ts b/src/client/hud/layers/GraphicsSettingsModal.ts index 5ffd316c1..974df6d6a 100644 --- a/src/client/hud/layers/GraphicsSettingsModal.ts +++ b/src/client/hud/layers/GraphicsSettingsModal.ts @@ -20,6 +20,10 @@ const NAME_CULL_MIN = 0; const NAME_CULL_MAX = 0.05; const NAME_CULL_STEP = 0.001; +const HOVER_FADE_MIN = 0; +const HOVER_FADE_MAX = 1; +const HOVER_FADE_STEP = 0.05; + const HIGHLIGHT_FILL_MIN = 0; const HIGHLIGHT_FILL_MAX = 1; const HIGHLIGHT_FILL_STEP = 0.01; @@ -148,6 +152,13 @@ export class GraphicsSettingsModal extends LitElement implements Controller { ); } + private currentHoverFade(): number { + return ( + this.userSettings.graphicsOverrides().name?.hoverFadeAlpha ?? + renderDefaults.name.hoverFadeAlpha + ); + } + private patchName(patch: Partial) { const current = this.userSettings.graphicsOverrides(); this.userSettings.setGraphicsOverrides({ @@ -309,6 +320,11 @@ export class GraphicsSettingsModal extends LitElement implements Controller { this.patchName({ cullThreshold: value }); } + private onHoverFadeChange(event: Event) { + const value = parseFloat((event.target as HTMLInputElement).value); + this.patchName({ hoverFadeAlpha: value }); + } + private currentDarkNames(): boolean { return ( this.userSettings.graphicsOverrides().name?.darkNames ?? @@ -330,6 +346,7 @@ export class GraphicsSettingsModal extends LitElement implements Controller { const nameScale = this.currentNameScale(); const nameCull = this.currentNameCull(); + const hoverFade = this.currentHoverFade(); const namesColored = !this.currentDarkNames(); const classicIcons = this.currentClassicIcons(); const highlightFill = this.currentHighlightFill(); @@ -425,6 +442,31 @@ export class GraphicsSettingsModal extends LitElement implements Controller { +
+
+
+ ${translateText("graphics_setting.hover_fade_label")} +
+
+ ${translateText("graphics_setting.hover_fade_desc")} +
+ +
+
+ ${hoverFade.toFixed(2)} +
+
+