New! YOU CAN VOTE FOR THIS BY SEARCHING (Ctrl+f) FOR Brush-based building and designation ON THE ETERNAL SUGGESTION VOTING. Building walls, roads, floors and similar stuff is a right pain in the ass right now in DF. The end product is basically a bunch of one-tile objects, but you still have to designate them in patches that you enlarge with 'u' and 'k', rinse and repeat until you're more insane than your dwarves. Placing 20 doors of a specific material is also very tedious, as each door requires more than 4 keystrokes.
My suggestion to fix this draws a little bit from how the mining and burrow designations work, and how painting programs work.
Overall ideaPaint your constructions on the screen, with or without an associated material. Then paint over that with materials you pick from what you currently have (or optionally, even what you don't have yet), to assign (or change as many times as you want) the future building's material.
Example steps- Select a building type (say, wall)
- Select a material i.e. "anything" - which picks the closest stuff, "any wood"/"any rock"/etc, or those 69 granite rocks that you just dug up, or even "no material" (for now)
- Draw on the tiles where you want to build walls. 3D designation also works, just like for mining.
- If you run out of materials, the brush reverts back to "no material" mode
- Changed your mind about the materials? Pick a material but don't pick a building type, paint with the resulting brush, and you can change the material of any already planned out building elements. i.e. change the materials of the whole tower (walls, ,floors and stairs) from granite to microcline in three keystrokes
So basically you can designate some material-less "floor", and then paint half of it to be made with microcline and the other with granite. Or, directly paint "microcline floors". And you can come back and change the material type by painting again over what you designated.
Implied underlying changesThe only real problem I see with my idea is that roads and maybe other buildings use less stones than they have tiles... if I remember correctly. So Toady would have to auto-group some adjacent tiles (the grouping should ideally be predictable and show when you paint) to be built at once with one stone.
For the full experience...- Once you have a brush system in place, might as well go the whole mile and allow copying an existing designation and use that as a multi-tile brush. Of course keeping with what I said above, you can copy only the building placement, or both the placement and the material. And save brushes for later use.
- You need to be able to preview what you're drawing when designated rectangle regions, and click and drag for those in addition to the keyboard would be extremely nice.
- Unify (b)(C)onstruction, (b)(w)orkshops, (b)(p)lots and (d)esignation as well as (w) burrows under this system, and we'll all be happy dwarves. After all, a workshop is just a different brush, you could pick it from a palette inside the same screen as constructions.
Extra ideas- Allow player to pick a material he doesn't have yet or has run out of. Designation should "sleep" until it can claim a material to be built with. Plan out your whole tower, nay, whole fortress in one fell swoop and dig out the necessary materials later. But this opens a topic wider than I want to discuss in this thread: why can't workshop also just accept jobs and wait for the material to exist, and so on...
- Placing a workshop, door, etc. on an undug spot should automatically cause dwarves to dig it out. This would allow the awesome ability of having 5 workshops and their doors as a brush, a dining room with its chairs, tables, statues, etc. as a brush, hell why not an entire beginner's fortress as a multi-Z-levels brush.