Dwarf Pad AHK_L version 0.7
Download here: http://dffd.wimbli.com/file.php?id=2951 (contains standalone executable + original script file for personal modification)
Dwarfpad is a timesaving graphical user interface originally made for navigating in the local area embark screen using an arrowpad and expanding/shrinking buttons rather than umhk/UMHK. However, I expanded on it's use, addiing an autobuild tool for constructions, roads and farms to remove the need for umhk presses while building.
Features:
*new*Incremental cursor movement:
Ever wished you could do more than move in 1 or 10 space increments? Now you can!
Control+arrow key moves 2 space increments
Alt+arrow key moves 4 space increments
Control+alt key moves 5 space increments
*new*Improved Window handling:
When not in dwarf fortress, the pad will automatically minimise itself and unminimise when DF comes back. Pressing Alt+h will hide/reveal dwarfpad as needed.
A Clickable umhkUMHK pad:
Rather than tangling your fingers on the UMHK/umhk keys while searching for your ideal embark location, you can navigate the local embark area with this pad. E toggles from the UMHK keys for use outside of the embark screen.
Autobuild:
Walls, Floors and other constructions, plus dirt/paved roads and farms can be selected and expanded to the desirable size upto 10x10 without multiple presses of the umhk keys. Areas larger than 10x10 can be entered and autoplaced, however the first building material in the list will be used for these larger areas.
Instruction Manual
Control, Alt, Control/alt + arrow key movement:
This allows you to move at increments other than one at a time (plain arrow keys) or 10 at a time (shift + arrow keys). Works just as shift+ direction keys do. Control moves 2 spaces, Alt moves 4 and Control+Alt moves 5. The amount can easily be changed at the top of the AHK file, but you need a copy of AHK_L to run the file. Future versions may incluse inpad adjustable values.
It should also be noted that shift. control and alt can be held now while enter is pressed and DF will interpret the keypress as a plain enter, so you dont need to release keys between designations to place them (makes life 10 times easier)
Hide/Reveal DwarfPad:
Alt+h will hide and reveal the pad depending on if you need it or not.
umhkUMHK Pad:
Clicking on the left right up down keys send the hkum keys respectively. The H and K keys are represented as the top left horizontal outward facing arrows(K) and the top right horizontal outwards facing arrows with a slash(H). The U and M keys are respectively the bottem left corner vertical outward facing arrows and the bottom right upward facing arrow/exclimation point.
Clicking them while the Dwarfpad is out of focus will still send the keypress, no need to focus it first.
Clicking the E in the centre of the pad toggles the pad from it's UMHK buttons to an up and down Z level button.
This toggled pad now also adds plus and minus keys, which can be used in combination with enter to navigate and select/deselect stuff in lists, for example jobs in the job preference list.
Autobuild:
The Wall and floor buttons are just shortcuts for selecting them through a series of key presses. Saving a total of 3 key presses each use (to select building a wall requires, b,shift,c and w which is 4 button presses). the currently selected construction type in the dropdown menu can also be used in this way by clicking somewhere on the name of the construction type(like a button)
The A button is short for Autobuild. It should only be used once you have wall or floor placement mode selected either through the Wall/Floor buttons or through manual selection.
Clicking autobuild with numbers in the X and Y edit areas 10x10 or smaller will result in the placement area resizing to that size, but allows you to position it and select your building material.(replacing the obsolete repeat button functionality)
Entered Areas with x or y 11 or larger, will build starting from where you placed the pointer in dwarf fortress building in the right direction and upward direction until desired height and width is achieved.
Any areas which are blocked and cannot be built on will cause that expanded placement to fail, but this should not prevent construction of other unblocked expanded areas to be built, though testing and verification would be nice.
Also something to consider is the available stone stock at your disposal, you must ensure that the right stones in the appropriate quantity are available, through the use of the stone forbid options (in the z menu) or by other means.
DeleteInMass:
To accomodate a now much higher occurance of pending constructions, this feature is now included. It must be run inside the 'q' menu of dwarf fortress, then move the selection tool roughly where you want stuff removed, it'll then send a bunch of x presses, reducing the amount of button presses by hundreds!
However, there is no precision to this tool, it works the same as pressing x alot, giving it a faster press rate makes the amount of x's dwarf fortress catches unreliable, so I tried to find a middle ground.
Todo:
Add Workshops and furnaces from a popup button to menu type feature.
Inteligent escape code, to allow construction or workshop building from within any menu you left dwarf fortress in.
Rewrite the autobuild code to be unidirectional, like, build up and left, up and right, down and left or down and right.
Build the first tile last and so that will build first rather than last(first in/last out DF build order)
Circlular walls by radius
Version Updates:
Version .7 Updates:
Fixed a bug where autobuild wasn't expanding 10 by y and x by 10 sized areas.
Added the control/alt/control+alt + direction key shortcuts for more incremental movements, for designations etc
Inteligent window hiding/revealing
GUI highlighting over the dropdown to combat the wierd clicking the dropdown when not focused issue.
Roads and farms autobuildable.
Version .6 Updates:
Added numpad support
wrote a passkey function
added plus and minus keys to the alternate pad, toggled by the central E button
Enter support for use with the plus minus buttons
Version .5 Updates:
All construction types now available through the dropdown menu.
Pad now toggles with the Central E(embark) button to add up/down Z level buttons in the UMHK space.
Optomised alot of timing and the window sharing behaviour.
Added a MANUAL.txt to the zip
Version .4 Updates:
Autobuild Is now functional. You can now build a 149 by 168 sized floor now if you wish.
Tweeks to the DeleteInMass button.
Improved Dwarfpad to Dwarf Fortress behaviour, now supporting almost all main menu shortcutkeys
Version .3 Updates!:
the embarks umhkUMHK feature got nerfed somewhere along the way and I didn't notice till now. Now that is fixed and uses a much better method for swapping windows, no need to swap windows, just press arrow keys, tab, f1,f2,f3.. etc and focus will change back to Dwarf fortress plus send that key. Give it a try and report back on your next embark!
The background image for Dwarf pad should now display!
Autobuild is now partially working, but can be used in the X direction solong as 10 is specified for the y direction(Working on that now). Also to note is that you must have enough building material of some type at the top of your list if anything is closer, i suggest forbidding those things so your 99+ pile is number 1. I've also added a mass remove button to quickly remove pending walls.
Bugs
Moving the mouse to and from the dwarfpad while it is autobuilding may result in unexpected behaviour, i will probably add in a kind of suspend all interaction with both windows while it is autobuilding, but some varification on this behaviour is appriciated.
Shift directions while passing to Dwarf fortress, do work, I have not yet been able to work out a way allow seamless use, as once dwarf fortress becomes focused, you need to release and repress shift or else it wont register the shift and move like normal, 1 tile at a time, maybe I can add some kind of detection of shift press once the window has swapped focus.
Feel free to modify the the uncompiled script included along with the compiled binary. You will require a unicode build of AutoHotKeys_L however to use the uncompiled script! Feedback is important, if the program is erronous or responds in a way other than intended, please let me know, if you would like something added, please feel free to request it, or just want to tell me im wasting my time or it stinks, i'd appriciate the heads up!
Oh, thankyou Toady for such an impressive game, I love your brain man!