2022-07-10 00:01:46 -06:00
|
|
|
zone
|
|
|
|
====
|
sync tags spreadsheet to git
spreadsheet - https://docs.google.com/spreadsheets/d/1hiDlo8M_bB_1jE-5HRs2RrrA_VZ4cRu9VXaTctX_nwk/edit#gid=170388995
sync command - for fname in *rst; do name=$(echo $fname | sed 's/[.]rst//'); tagline=$(egrep ",$name," ~/Downloads/DFHack\ taxonomy\ -\ Tool\ tags.csv | ~/Downloads/csvtotags.sh); sed -ri "s;[*]*Tags:.*;$tagline;" $fname; done
contents of csvtotags.sh -
fgrep . | sed -r 's/^[^,]+,([^,]+),[^.]+[.]"?,/\1,/' | awk -F, '
function tag(idx, tagname) {
if ($idx == "TRUE") {
if (hastag == 1) {printf(", ")}
printf("`tag/%s`", tagname)
hastag = 1
}
}
{
printf("%s", "**Tags:** ")
hastag = 0
tag(2, "adventure")
tag(3, "fort")
tag(4, "legends")
tag(5, "embark")
tag(6, "system")
tag(7, "dev")
tag(8, "auto")
tag(9, "productivity")
tag(10, "inspection")
tag(11, "design")
tag(12, "quickfort")
tag(13, "interface")
tag(14, "fps")
tag(15, "fix")
tag(16, "mod")
tag(17, "armok")
tag(18, "animals")
tag(19, "buildings")
tag(20, "items")
tag(21, "jobs")
tag(22, "map")
tag(23, "labors")
tag(24, "units")
tag(25, "stockpiles")
tag(26, "trees")
printf("\n")
}
'
2022-08-05 18:55:33 -06:00
|
|
|
**Tags:** `tag/fort`, `tag/productivity`, `tag/animals`, `tag/buildings`
|
2022-07-10 00:01:46 -06:00
|
|
|
:dfhack-keybind:`zone`
|
|
|
|
|
2022-08-05 09:08:34 -06:00
|
|
|
Manage activity zones, cages, and the animals therein.
|
|
|
|
|
|
|
|
Usage:
|
|
|
|
|
|
|
|
``enable zone``
|
|
|
|
Add helpful filters to the pen/pasture sidebar menu (e.g. show only caged
|
|
|
|
grazers).
|
|
|
|
``zone set``
|
|
|
|
Set zone or cage under cursor as default for future ``assign`` or ``tocages``
|
|
|
|
commands.
|
|
|
|
``zone assign [<zone id>] [<filter>]``
|
|
|
|
Assign unit(s) to the zone with the given ID, or to the most recent pen or
|
|
|
|
pit marked with the ``set`` command. If no filters are set, then a unit must
|
|
|
|
be selected in the in-game ui.
|
|
|
|
``zone unassign [<filter>]``
|
|
|
|
Unassign selected creature from its zone.
|
|
|
|
``zone nick <nickname> [<filter>]``
|
|
|
|
Assign the given nickname to the selected animal or the animals matched by
|
|
|
|
the given filter.
|
|
|
|
``zone remnick [<filter>]``
|
|
|
|
Remove nicknames from the selected animal or the animals matched by the
|
|
|
|
given filter.
|
|
|
|
``zone enumnick <nickname prefix> [<filter>]``
|
|
|
|
Assign enumerated nicknames (e.g. "Hen 1", "Hen 2"...).
|
|
|
|
``zone tocages [<filter>]``
|
|
|
|
Assign unit(s) to cages that have been built inside the pasture selected
|
|
|
|
with the ``set`` command.
|
|
|
|
``zone uinfo [<filter>]``
|
|
|
|
Print info about unit(s). If no filters are set, then a unit must be
|
|
|
|
selected in the in-game ui.
|
|
|
|
``zone zinfo``
|
|
|
|
Print info about the zone(s) and any buildings under the cursor.
|
|
|
|
|
|
|
|
Examples
|
|
|
|
--------
|
|
|
|
|
|
|
|
Before any ``assign`` or ``tocages`` examples can be used, you must first move
|
|
|
|
the cursor over a pen/pasture or pit zone and run ``zone set`` to select the
|
|
|
|
zone.
|
|
|
|
|
|
|
|
``zone assign all own ALPACA minage 3 maxage 10``
|
|
|
|
Assign all of your alpacas who are between 3 and 10 years old to the
|
|
|
|
selected pasture.
|
|
|
|
``zone assign all own caged grazer nick ineedgrass``
|
|
|
|
Assign all of your grazers who are sitting in cages on stockpiles (e.g.
|
|
|
|
after buying them from merchants) to the selected pasture and give them the
|
|
|
|
nickname 'ineedgrass'.
|
|
|
|
``zone assign all own not grazer not race CAT``
|
|
|
|
Assign all of your animals who are not grazers (excluding cats) to the
|
|
|
|
selected pasture.
|
|
|
|
" zone assign all own milkable not grazer\n"
|
|
|
|
``zone assign all own female milkable not grazer``
|
|
|
|
Assign all of your non-grazing milkable creatures to the selected pasture or
|
|
|
|
cage.
|
|
|
|
``zone assign all own race DWARF maxage 2``
|
|
|
|
Throw all useless kids into a pit :) They'll be fine I'm sure.
|
|
|
|
``zone nick donttouchme``
|
|
|
|
Nicknames all units in the current default zone or cage to 'donttouchme'.
|
|
|
|
This is especially useful for protecting a group of animals assigned to a
|
|
|
|
pasture or cage from being "processed" by `autobutcher`.
|
|
|
|
``zone tocages count 50 own tame male not grazer``
|
|
|
|
Stuff up to 50 of your tame male animals who are not grazers into cages
|
|
|
|
built on the current default zone.
|
|
|
|
|
|
|
|
Filters
|
|
|
|
-------
|
|
|
|
|
|
|
|
:all: Process all units.
|
|
|
|
:count <n>: Process only up to n units.
|
|
|
|
:unassigned: Not assigned to zone, chain or built cage.
|
|
|
|
:minage <years>: Minimum age. Must be followed by number.
|
|
|
|
:maxage <years>: Maximum age. Must be followed by number.
|
|
|
|
:not: Negates the next filter keyword. All of the keywords documented
|
|
|
|
below are negatable.
|
|
|
|
:race: Must be followed by a race RAW ID (e.g. BIRD_TURKEY, ALPACA,
|
|
|
|
etc).
|
|
|
|
:caged: In a built cage.
|
|
|
|
:own: From own civilization. You'll usually want to include this
|
|
|
|
filter.
|
|
|
|
:war: Trained war creature.
|
|
|
|
:hunting: Trained hunting creature.
|
|
|
|
:tamed: Creature is tame.
|
|
|
|
:trained: Creature is trained. Finds war/hunting creatures as well as
|
|
|
|
creatures who have a training level greater than 'domesticated'.
|
|
|
|
If you want to specifically search for war/hunting creatures
|
|
|
|
use ``war`` or ``hunting``.
|
|
|
|
:trainablewar: Creature can be trained for war (and is not already trained for
|
|
|
|
war/hunt).
|
|
|
|
:trainablehunt: Creature can be trained for hunting (and is not already trained
|
|
|
|
for war/hunt).
|
|
|
|
:male: Creature is male.
|
|
|
|
:female: Creature is female.
|
|
|
|
:egglayer: Race lays eggs. If you want units who actually lay eggs, also
|
|
|
|
specify ``female``.
|
|
|
|
:grazer: Race is a grazer.
|
|
|
|
:milkable: Race is milkable. If you want units who actually can be milked,
|
|
|
|
also specify ``female``.
|
|
|
|
:merchant: Is a merchant / belongs to a merchant. Should only be used for
|
|
|
|
pitting or slaughtering, not for stealing animals.
|
2022-07-10 00:01:46 -06:00
|
|
|
|
|
|
|
Usage with single units
|
|
|
|
-----------------------
|
2022-08-05 09:08:34 -06:00
|
|
|
One convenient way to use the zone tool is to bind the commands ``zone assign``
|
|
|
|
and ``zone set`` to hotkeys. Place the in-game cursor over a pen/pasture or pit
|
|
|
|
and use the ``zone set`` hotkey to mark it. Then you can select units on the map
|
|
|
|
(in 'v' or 'k' mode), in the unit list or from inside cages and use the
|
|
|
|
``zone assign`` hotkey to assign them to their new home. Allows pitting your own
|
|
|
|
dwarves, by the way.
|
|
|
|
|
|
|
|
Matching with filters
|
|
|
|
---------------------
|
|
|
|
All filters can be used together with the ``assign`` and ``tocages`` commands.
|
|
|
|
|
|
|
|
Note that it's not possible to reassign units who are inside built cages or
|
|
|
|
chained, though this likely won't matter because if you have gone to the trouble
|
|
|
|
of creating a zoo or chaining a creature, you probably wouldn't want them
|
|
|
|
reassigned anyways. Also, ``zone`` will avoid caging owned pets because the owner
|
2022-07-10 00:01:46 -06:00
|
|
|
uncages them after a while which results in infinite hauling back and forth.
|
|
|
|
|
2022-08-05 09:08:34 -06:00
|
|
|
Most filters should include an ``own`` element (which implies ``tame``) unless
|
|
|
|
you want to use ``zone assign`` for pitting hostiles. The ``own`` filter ignores
|
|
|
|
dwarves unless you explicitly specify ``race DWARF`` (so it's safe to use
|
|
|
|
``assign all own`` to one big pasture if you want to have all your animals in
|
|
|
|
the same place).
|
2022-07-10 00:01:46 -06:00
|
|
|
|
2022-08-05 09:08:34 -06:00
|
|
|
The ``egglayer`` and ``milkable`` filters should be used together with
|
|
|
|
``female`` unless you want the males of the race included. Merchants and their
|
|
|
|
animals are ignored unless you specify ``merchant`` (pitting them should be no
|
|
|
|
problem, but stealing and pasturing their animals is not a good idea since
|
|
|
|
currently they are not properly added to your own stocks; slaughtering them
|
|
|
|
should work).
|
|
|
|
|
|
|
|
Most filters can be negated (e.g. ``not grazer`` -> race is not a grazer).
|
2022-07-10 00:01:46 -06:00
|
|
|
|
|
|
|
Mass-renaming
|
|
|
|
-------------
|
2022-08-05 09:08:34 -06:00
|
|
|
|
|
|
|
Using the ``nick`` command, you can set the same nickname for multiple units.
|
|
|
|
If used without ``assign``, ``all``, or ``count``, it will rename all units in
|
|
|
|
the current default target zone. Combined with ``assign``, ``all``, or ``count``
|
|
|
|
(and likely further optional filters) it will rename units matching the filter
|
|
|
|
conditions.
|
2022-07-10 00:01:46 -06:00
|
|
|
|
|
|
|
Cage zones
|
|
|
|
----------
|
|
|
|
|
2022-08-05 09:08:34 -06:00
|
|
|
The ``tocages`` command assigns units to a set of cages, for example a room next
|
|
|
|
to your butcher shop(s). Units will be spread evenly among available cages to
|
|
|
|
optimize hauling to and butchering from them. For this to work you need to build
|
|
|
|
cages and then place one pen/pasture activity zone above them, covering all
|
|
|
|
cages you want to use. Then use ``zone set`` (like with ``assign``) and run
|
|
|
|
``zone tocages <filter>``. ``tocages`` can be used together with ``nick`` or
|
|
|
|
``remnick`` to adjust nicknames while assigning to cages.
|