diff --git a/changelog.txt b/changelog.txt index 1ed30ae50..6616402e5 100644 --- a/changelog.txt +++ b/changelog.txt @@ -36,6 +36,7 @@ Template for new versions: - `bodyswap`: fix "invalid argument count" when the target unit has no nemesis record - `fix/loyaltycascade`: guard against citizens that are not historical figures and emit a warning. - `gui/siegemanager`: fix nil index if there are no siege engines on the map +- `machine-toggle`/`trackstop`: overlays no longer steal keys while renaming a pressure plate, gear assembly, track stop, or roller ## Misc Improvements - `caravan`: the ``Bring goods to depot``, ``Trade``, and ``Assign items for display`` overlays now allow searching for items with non-ASCII characters in their description diff --git a/machine-toggle.lua b/machine-toggle.lua index e380711b3..56123579f 100644 --- a/machine-toggle.lua +++ b/machine-toggle.lua @@ -11,6 +11,8 @@ local overlay = require('plugins.overlay') local getBuild = dfhack.gui.getSelectedBuilding +local vs = df.global.game.main_interface.view_sheets + local FLUID_DEPTHS = {} for i=1,8 do -- 0 to 7 FLUID_DEPTHS[i] = {value=i-1, label=tostring(i-1)} @@ -40,6 +42,12 @@ PlateOverlay.ATTRS{ frame_background=gui.CLEAR_PEN, } +function PlateOverlay:onInput(keys) + if not vs.building_entering_nickname then + return PlateOverlay.super.onInput(self, keys) + end +end + local function clamp(value, low, high) return math.min(high, math.max(low, value)) end @@ -353,6 +361,12 @@ GearOverlay.ATTRS{ frame_background=gui.CLEAR_PEN, } +function GearOverlay:onInput(keys) + if not vs.building_entering_nickname then + return GearOverlay.super.onInput(self, keys) + end +end + function GearOverlay:render(dc) self.subviews.gear_toggle:setOption(not getBuild().gear_flags.disengaged) GearOverlay.super.render(self, dc) diff --git a/trackstop.lua b/trackstop.lua index 46ba6cdb2..50984ff9d 100644 --- a/trackstop.lua +++ b/trackstop.lua @@ -12,6 +12,8 @@ local utils = require('utils') local getBuild = dfhack.gui.getSelectedBuilding +local vs = df.global.game.main_interface.view_sheets + local NORTH = 'North '..string.char(24) local EAST = 'East '..string.char(26) local SOUTH = 'South '..string.char(25) @@ -63,6 +65,12 @@ TrackStopOverlay.ATTRS{ frame_background=gui.CLEAR_PEN, } +function TrackStopOverlay:onInput(keys) + if not vs.building_entering_nickname then + return TrackStopOverlay.super.onInput(self, keys) + end +end + function TrackStopOverlay:setFriction(friction) getBuild().track_stop_info.friction = FRICTION_MAP[friction] end @@ -166,6 +174,12 @@ RollerOverlay.ATTRS{ frame_background=gui.CLEAR_PEN, } +function RollerOverlay:onInput(keys) + if not vs.building_entering_nickname then + return RollerOverlay.super.onInput(self, keys) + end +end + function RollerOverlay:setDirection(direction) getBuild().direction = DIRECTION_MAP[direction] end