Skip to content

Commit 9501480

Browse files
authored
Gear assembly widget
* Update trackstop.lua - Add GearOverlay; fix RollerOverlay using TrackStopOverlay render * Update trackstop.rst * Update changelog.txt
1 parent 56c934e commit 9501480

3 files changed

Lines changed: 38 additions & 2 deletions

File tree

changelog.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ Template for new versions:
2929
## New Tools
3030

3131
## New Features
32+
- `trackstop`: can now toggle gear assemblies
3233

3334
## Fixes
3435

docs/trackstop.rst

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ trackstop
55
:summary: Overlay to allow changing track stop and related building settings after construction.
66
:tags: fort buildings interface
77

8-
This script provides 3 overlays that are managed by the `overlay` framework.
8+
This script provides 4 overlays that are managed by the `overlay` framework.
99
The script does nothing when executed.
1010

1111
The ``trackstop`` overlay allows the player to change the friction and dump
@@ -19,3 +19,8 @@ of a selected pressure plate after it has been constructed. Manual value entry
1919
of ranges for minecart and creature triggers is provided, allowing greater
2020
precision than the game interface normally permits. Incrementing or decrementing
2121
values always restricts them to the usual intervals.
22+
23+
The ``gearassembly`` overlay allows the player to toggle the state of a selected
24+
gear assembly without linking it to a lever first. This is useful for dwarfputing
25+
and other applications where it may be desirable to default to the disengaged
26+
state until triggered.

trackstop.lua

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ function RollerOverlay:render(dc)
196196
self.subviews.direction:setOption(DIRECTION_MAP_REVERSE[b.direction])
197197
self.subviews.speed:setOption(SPEED_MAP_REVERSE[b.speed])
198198

199-
TrackStopOverlay.super.render(self, dc)
199+
RollerOverlay.super.render(self, dc)
200200
end
201201

202202
function RollerOverlay:init()
@@ -539,8 +539,38 @@ function PlateOverlay:init()
539539
}
540540
end
541541

542+
GearOverlay = defclass(GearOverlay, overlay.OverlayWidget)
543+
GearOverlay.ATTRS{
544+
desc='Adds widget for toggling gear assemblies.',
545+
default_pos={x=-83, y=32},
546+
version=2,
547+
default_enabled=true,
548+
viewscreens='dwarfmode/ViewSheets/BUILDING/GearAssembly',
549+
frame={w=15, h=3},
550+
frame_style=gui.MEDIUM_FRAME,
551+
frame_background=gui.CLEAR_PEN,
552+
}
553+
554+
function GearOverlay:render(dc)
555+
self.subviews.gear_toggle:setOption(not getBuild().gear_flags.disengaged)
556+
GearOverlay.super.render(self, dc)
557+
end
558+
559+
function GearOverlay:init()
560+
self:addviews{
561+
widgets.ToggleHotkeyLabel{
562+
view_id='gear_toggle',
563+
frame={t=0, l=0},
564+
label='State:',
565+
key='CUSTOM_SHIFT_X',
566+
on_change=function() getBuild():setTriggerState(0) end,
567+
},
568+
}
569+
end
570+
542571
OVERLAY_WIDGETS = {
543572
trackstop=TrackStopOverlay,
544573
rollers=RollerOverlay,
545574
pressureplate=PlateOverlay,
575+
gearassembly=GearOverlay,
546576
}

0 commit comments

Comments
 (0)