@@ -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 )
200200end
201201
202202function RollerOverlay :init ()
@@ -539,8 +539,38 @@ function PlateOverlay:init()
539539 }
540540end
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+
542571OVERLAY_WIDGETS = {
543572 trackstop = TrackStopOverlay ,
544573 rollers = RollerOverlay ,
545574 pressureplate = PlateOverlay ,
575+ gearassembly = GearOverlay ,
546576}
0 commit comments