Merge remote-tracking branch 'myk002/myk_dreamfort' into develop

+typo fix in quickfort-alias-guide.rst
develop
lethosor 2021-02-20 00:47:12 -05:00
commit 1be75f269b
No known key found for this signature in database
GPG Key ID: 76A269552F4F58C1
5 changed files with 2878 additions and 1808 deletions

File diff suppressed because it is too large Load Diff

@ -36,7 +36,9 @@ quantum: {linksonly}{nocontainers}{quantum_enable}{givename}
stop_name: {Empty} stop_name: {Empty}
route_enable: {quantum_enable}{enablecorpses}{enablerefuse} route_enable: {quantum_enable}{enablecorpses}{enablerefuse}
quantumstop: ^hrn{name}&sn{stop_name}&&xxx{route_enable enter_sp_config={enter_sp_config_hauling}}s{move}p^{move_back}^q sp_link: s{move}p{move_back}
sp_links: {sp_link}
quantumstop: ^hrn{name}&sn{stop_name}&&xxx{route_enable enter_sp_config={enter_sp_config_hauling}}{sp_links}^^q
quantumstopfromeast: {quantumstop move={Right} move_back={Left}} quantumstopfromeast: {quantumstop move={Right} move_back={Left}}
quantumstopfromsouth: {quantumstop move={Down} move_back={Up}} quantumstopfromsouth: {quantumstop move={Down} move_back={Up}}
quantumstopfromwest: {quantumstop move={Left} move_back={Right}} quantumstopfromwest: {quantumstop move={Left} move_back={Right}}
@ -56,7 +58,11 @@ growfirstcropall: a&b&c&d&
######################################## ########################################
linksonly: a linksonly: a
nocontainers: CE maxbins: V
maxbarrels: R
nobins: C
nobarrels: E
nocontainers: {nobins}{nobarrels}
give: g{move}& give: g{move}&
give2up: {give move={Up 2}} give2up: {give move={Up 2}}
@ -71,6 +77,12 @@ give10right: {give move={Right 10}}
togglesequence: &{Down} togglesequence: &{Down}
togglesequence2: &{Down 2} togglesequence2: &{Down 2}
masterworkonly: {prefix}{Right}{Up 2}f{Right}{Up 2}&^
artifactonly: {prefix}{Right}{Up 2}f{Right}{Up}&^
togglemasterwork: {prefix}{Right}{Up 2}{Right}{Up 2}&^
toggleartifact: {prefix}{Right}{Up 2}{Right}{Up}&^
################################## ##################################
# animal stockpile adjustments # animal stockpile adjustments
@ -146,6 +158,15 @@ bags: {furnitureprefix}de{Right}f{Right}{Up 10}&{Left}{Down}f{Down}f{Down}f{R
buckets: {furnitureprefix}de{Right}f{Right}{Up 12}&^ buckets: {furnitureprefix}de{Right}f{Right}{Up 12}&^
sand: {furnitureprefix}de{Right}f{Right}{Up}&^ sand: {furnitureprefix}de{Right}f{Right}{Up}&^
masterworkfurniture: {masterworkonly prefix={furnitureprefix}}
artifactfurniture: {artifactonly prefix={furnitureprefix}}
forbidmasterworkfurniture: {togglemasterwork prefix={furnitureprefix}}
forbidartifactfurniture: {toggleartifact prefix={furnitureprefix}}
permitmasterworkfurniture: {togglemasterwork prefix={furnitureprefix}}
permitartifactfurniture: {toggleartifact prefix={furnitureprefix}}
########################################### ###########################################
# corpses and refuse stockpile adjustments # corpses and refuse stockpile adjustments
@ -159,8 +180,7 @@ refuseprefix: {enter_sp_config}{Down 4}
enablerefuse: {refuseprefix}e^ enablerefuse: {refuseprefix}e^
disablerefuse: {refuseprefix}d^ disablerefuse: {refuseprefix}d^
# bodyparts include remains/corpses and rotten rawhdes corpses: {refuseprefix}b{Right}{Down}p^
bodyparts: {refuseprefix}b{Right 2}&{Down 2}&{Left}{Down}p{Down}p^
rawhides: {refuseprefix}b{Right 2}{Down}&^ rawhides: {refuseprefix}b{Right 2}{Down}&^
tannedhides: {refuseprefix}b{Right 2}{Down 53}&^ tannedhides: {refuseprefix}b{Right 2}{Down 53}&^
skulls: {refuseprefix}b{Right}{Down 3}p^ skulls: {refuseprefix}b{Right}{Down 3}p^
@ -171,7 +191,7 @@ horns: {refuseprefix}b{Right}{Down 7}p^
hair: {refuseprefix}b{Right}{Down 8}p^ hair: {refuseprefix}b{Right}{Down 8}p^
craftrefuse: {skulls}{permitbones}{permitshells}{permitteeth}{permithorns}{permithair} craftrefuse: {skulls}{permitbones}{permitshells}{permitteeth}{permithorns}{permithair}
forbidbodyparts: {refuseprefix}{Right 2}&{Down 2}&{Left}{Down}f{Down}f^ forbidcorpses: {refuseprefix}{Right}{Down}f^
forbidrawhides: {refuseprefix}{Right 2}{Down}&^ forbidrawhides: {refuseprefix}{Right 2}{Down}&^
forbidtannedhides: {refuseprefix}{Right 2}{Down 53}&^ forbidtannedhides: {refuseprefix}{Right 2}{Down 53}&^
forbidskulls: {refuseprefix}{Right}{Down 3}f^ forbidskulls: {refuseprefix}{Right}{Down 3}f^
@ -182,7 +202,7 @@ forbidhorns: {refuseprefix}{Right}{Down 7}f^
forbidhair: {refuseprefix}{Right}{Down 8}f^ forbidhair: {refuseprefix}{Right}{Down 8}f^
forbidcraftrefuse: {forbidskulls}{forbidbones}{forbidshells}{forbidteeth}{forbidhorns}{forbidhair} forbidcraftrefuse: {forbidskulls}{forbidbones}{forbidshells}{forbidteeth}{forbidhorns}{forbidhair}
permitbodyparts: {refuseprefix}{Right 2}&{Down 2}&{Left}{Down}p{Down}p^ permitcorpses: {refuseprefix}{Right}{Down}p^
permitrawhides: {forbidrawhides} permitrawhides: {forbidrawhides}
permittannedhides: {forbidtannedhides} permittannedhides: {forbidtannedhides}
permitskulls: {refuseprefix}{Right}{Down 3}p^ permitskulls: {refuseprefix}{Right}{Down 3}p^
@ -241,12 +261,21 @@ ammoprefix: {enter_sp_config}{Down 6}
enableammo: {ammoprefix}e^ enableammo: {ammoprefix}e^
disableammo: {ammoprefix}d^ disableammo: {ammoprefix}d^
bolts: {ammoprefix}a{Right 2}{Down}{togglesequence 2}^ bolts: {ammoprefix}a{Right 2}f&^
forbidmetalbolts: {ammoprefix}{Right}{Down}f^ forbidmetalbolts: {ammoprefix}{Right}{Down}f^
forbidwoodenbolts: {ammoprefix}{Right}{Down 2}{Right}&^ forbidwoodenbolts: {ammoprefix}{Right}{Down 2}{Right}&^
forbidbonebolts: {ammoprefix}{Right}{Down 2}{Right}{Down}&^ forbidbonebolts: {ammoprefix}{Right}{Down 2}{Right}{Down}&^
masterworkammo: {masterworkonly prefix={ammoprefix}}
artifactammo: {artifactonly prefix={ammoprefix}}
forbidmasterworkammo: {togglemasterwork prefix={ammoprefix}}
forbidartifactammo: {toggleartifact prefix={ammoprefix}}
permitmasterworkammo: {togglemasterwork prefix={ammoprefix}}
permitartifactammo: {toggleartifact prefix={ammoprefix}}
################################## ##################################
# bar stockpile adjustments # bar stockpile adjustments
@ -319,6 +348,15 @@ forbidcrafts: {finishedgoodsprefix}{Right 2}{Down 9}{togglesequence 9}^
permitcrafts: {forbidcrafts} permitcrafts: {forbidcrafts}
masterworkfinishedgoods: {masterworkonly prefix={finishedgoodsprefix}}
artifactfinishedgoods: {artifactonly prefix={finishedgoodsprefix}}
forbidmasterworkfinishedgoods: {togglemasterwork prefix={finishedgoodsprefix}}
forbidartifactfinishedgoods: {toggleartifact prefix={finishedgoodsprefix}}
permitmasterworkfinishedgoods: {togglemasterwork prefix={finishedgoodsprefix}}
permitartifactfinishedgoods: {toggleartifact prefix={finishedgoodsprefix}}
################################## ##################################
# cloth # cloth
@ -368,14 +406,14 @@ permitbronzeweapons: {forbidbronzeweapons}
permitcopperweapons: {forbidcopperweapons} permitcopperweapons: {forbidcopperweapons}
permitsteelweapons: {forbidsteelweapons} permitsteelweapons: {forbidsteelweapons}
masterworkweapons: {weaponsprefix}{Right}{Down 5}f{Right}{Down 5}&^ masterworkweapons: {masterworkonly prefix={weaponsprefix}}
artifactweapons: {weaponsprefix}{Right}{Down 5}f{Right}{Down 6}&^ artifactweapons: {artifactonly prefix={weaponsprefix}}
forbidmasterworkweapons: {weaponsprefix}{Right}{Down 5}{Right}{Down 5}&^ forbidmasterworkweapons: {togglemasterwork prefix={weaponsprefix}}
forbidartifactweapons: {weaponsprefix}{Right}{Down 5}{Right}{Down 6}&^ forbidartifactweapons: {toggleartifact prefix={weaponsprefix}}
permitmasterworkweapons: {forbidmasterworkweapons} permitmasterworkweapons: {togglemasterwork prefix={weaponsprefix}}
permitartifactweapons: {forbidartifactweapons} permitartifactweapons: {toggleartifact prefix={weaponsprefix}}
################################## ##################################
@ -407,14 +445,14 @@ permitbronzearmor: {forbidbronzearmor}
permitcopperarmor: {forbidcopperarmor} permitcopperarmor: {forbidcopperarmor}
permitsteelarmor: {forbidsteelarmor} permitsteelarmor: {forbidsteelarmor}
masterworkarmor: {armorprefix}{Right}{Down 8}f{Right}{Down 5}&^ masterworkarmor: {masterworkonly prefix={armorprefix}}
artifactarmor: {armorprefix}{Right}{Down 8}f{Right}{Down 6}&^ artifactarmor: {artifactonly prefix={armorprefix}}
forbidmasterworkarmor: {armorprefix}{Right}{Down 8}{Right}{Down 5}&^ forbidmasterworkarmor: {togglemasterwork prefix={armorprefix}}
forbidartifactarmor: {armorprefix}{Right}{Down 8}{Right}{Down 6}&^ forbidartifactarmor: {toggleartifact prefix={armorprefix}}
permitmasterworkarmor: {forbidmasterworkarmor} permitmasterworkarmor: {togglemasterwork prefix={armorprefix}}
permitartifactarmor: {forbidartifactarmor} permitartifactarmor: {toggleartifact prefix={armorprefix}}
################################## ##################################

@ -33,6 +33,10 @@ changelog.txt uses a syntax similar to RST, with a few special sequences:
# Future # Future
## Misc Improvements
- `quickfort`: Dreamfort blueprint set improvements: `significant <http://www.bay12forums.com/smf/index.php?topic=176889.msg8239017#msg8239017>`_ refinements across the entire blueprint set. Dreamfort is now much faster, much more efficient, and much easier to use. The `checklist <https://docs.google.com/spreadsheets/d/13PVZ2h3Mm3x_G1OXQvwKd7oIR2lK4A1Ahf6Om1kFigw/edit#gid=1459509569>`__ now includes a mini-walkthrough for quick reference. The spreadsheet now also includes `embark profile suggestions <https://docs.google.com/spreadsheets/d/13PVZ2h3Mm3x_G1OXQvwKd7oIR2lK4A1Ahf6Om1kFigw/edit#gid=149144025>`__
- `quickfort`: added aliases for configuring masterwork and artifact core quality for all stockpile categories that have them; made it possible to take from multiple stockpiles in the ``quantumstop`` alias
# 0.47.05-beta1 # 0.47.05-beta1
## Fixes ## Fixes

@ -346,11 +346,15 @@ These aliases make it easy to create :wiki:`minecart stop-based quantum stockpil
+----------------------+ | +----------------------+ |
| quantumstopfromwest | | | quantumstopfromwest | |
+----------------------+------------------+ +----------------------+------------------+
| sp_link | | move |
| | | move_back |
+----------------------+------------------+
| quantumstop | | name | | quantumstop | | name |
| | | stop_name | | | | stop_name |
| | | route_enable | | | | route_enable |
| | | move | | | | move |
| | | move_back | | | | move_back |
| | | sp_links |
+----------------------+------------------+ +----------------------+------------------+
The idea is to use a minecart on a track stop to dump an infinite number of The idea is to use a minecart on a track stop to dump an infinite number of
@ -452,18 +456,28 @@ your own stockpile configuraiton aliases, you can use the magic yourself by
building your aliases on the ``*prefix`` aliases described later in this building your aliases on the ``*prefix`` aliases described later in this
guide. guide.
Finally, the ``quantumstop`` alias is a more general version of the Finally, the ``quantumstop`` alias is a more general version of the simpler
``quantumstopfrom*`` aliases. The ``quantumstopfrom*`` aliases assume that the ``quantumstopfrom*`` aliases. The ``quantumstopfrom*`` aliases assume that a
feeder stockpile is orthogonally adjacent to your track stop (which is how single feeder stockpile is orthogonally adjacent to your track stop (which is
most people set them up). If your feeder stockpile is somewhere further away, how most people set them up). If your feeder stockpile is somewhere further
you can use the ``quantumstop`` alias directly. In addition to the away, or you have multiple feeder stockpiles to link, you can use the
``quantumstopfrom*`` sub-aliases, you can also define the ``move`` and ``quantumstop`` alias directly. In addition to the sub-aliases used in the
``move_back`` sub-aliases, which let you specify the cursor keys required to ``quantumstopfrom*`` alias, you can define the ``move`` and ``move_back``
move from the track stop to the feeder stockpile and back again, respectively:: sub-aliases, which let you specify the cursor keys required to move from the
track stop to the (single) feeder stockpile and back again, respectively::
#query #query
{quantumstop move="{Right 2}{Up}" move_back="{Down}{Left 2}"} {quantumstop move="{Right 2}{Up}" move_back="{Down}{Left 2}"}
If you have multiple stockpiles to link, define the ``sp_links`` sub-alias,
which can chain several ``sp_link`` aliases together, each with their own
movement configuration::
#query
{quantumstop sp_links="{sp_link move=""{Right}{Up}"" move_back=""{Down}{Left}""}{sp_link move=""{Right}{Down}"" move_back=""{Up}{Left}""}"}
Note the doubled quotes for quoted elements that are within the outer quotes.
Farm plots Farm plots
~~~~~~~~~~ ~~~~~~~~~~
@ -486,10 +500,14 @@ Instead of these aliases, though, it might be more useful to use the DFHack
Stockpile configuration utility aliases Stockpile configuration utility aliases
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
=============== =========== ================ ===========
Alias Sub-aliases Alias Sub-aliases
=============== =========== ================ ===========
linksonly linksonly
maxbins
maxbarrels
nobins
nobarrels
nocontainers nocontainers
give2up give2up
give2down give2down
@ -499,17 +517,23 @@ give10up
give10down give10down
give10left give10left
give10right give10right
give move give move
togglesequence togglesequence
togglesequence2 togglesequence2
=============== =========== masterworkonly prefix
artifactonly prefix
``linksonly`` and ``nocontainers`` set the named basic properties on togglemasterwork prefix
stockpiles. ``nocontainers`` sets bins and barrels to 0, but does not affect toggleartifact prefix
wheelbarrows since the hotkeys for changing the number of wheelbarrows depend ================ ===========
on whether you have the DFHack `stockpiles` plugin active. It is better to set
the number of wheelbarrows via the `quickfort` ``stockpiles_max_wheelbarrows`` ``linksonly``, ``maxbins``, ``maxbarrels``, ``nobins``, ``nobarrels``, and
setting. It is set to ``0`` by default. ``nocontainers`` set the named basic properties on stockpiles. ``nocontainers``
sets bins and barrels to 0, but does not affect wheelbarrows since the hotkeys
for changing the number of wheelbarrows depend on whether you have DFHack's
``tweak max-wheelbarrow`` enabled. It is better to set the number of
wheelbarrows via the `quickfort` ``stockpiles_max_wheelbarrows`` setting (set to
``0`` by default), or explicitly when you define the stockpile in the ``#place``
blueprint.
The ``give*`` aliases set a stockpile to give to a workshop or another The ``give*`` aliases set a stockpile to give to a workshop or another
stockpile located at the indicated number of tiles in the indicated direction stockpile located at the indicated number of tiles in the indicated direction
@ -558,11 +582,15 @@ tiles down::
``togglesequence`` and ``togglesequence2`` send ``{Down}{Enter}`` or ``togglesequence`` and ``togglesequence2`` send ``{Down}{Enter}`` or
``{Down 2}{Enter}`` to toggle adjacent (or alternating) items in a list. This ``{Down 2}{Enter}`` to toggle adjacent (or alternating) items in a list. This
is useful when toggling a bunch of related item types in the stockpile config. is useful when toggling a bunch of related item types in the stockpile config.
For example, the ``dye`` and ``tallow`` aliases in the standard alias library For example, the ``dye`` alias in the standard alias library needs to select
need to select specific items from long lists:: four adjacent items::
dye: {foodprefix}b{Right}{Down 11}{Right}{Down 28}{togglesequence 4}^
dye: {foodprefix}b{Right}{Down 11}{Right}{Down 28}{togglesequence 4}^ Finally, the ``masterwork`` and ``artifact`` group of aliases configure the
tallow: {foodprefix}b{Right}{Down 13}{Right}{Down}{togglesequence2 811}^ corresponding allowable core quality for the stockpile categories that have
them. This alias is used to implement category-specific aliases below, like
``artifactweapons`` and ``forbidartifactweapons``.
.. _quickfort-stockpile-aliases: .. _quickfort-stockpile-aliases:
@ -658,17 +686,16 @@ miscliquid forbidmiscliquid permitmiscliquid
Furniture stockpile adjustments Furniture stockpile adjustments
``````````````````````````````` ```````````````````````````````
+-----------+ =================== ========================= =========================
| Exclusive | Exclusive Forbid Permit
+===========+ =================== ========================= =========================
| pots | pots
+-----------+ bags
| bags | buckets
+-----------+ sand
| buckets | masterworkfurniture forbidmasterworkfurniture permitmasterworkfurniture
+-----------+ artifactfurniture forbidartifactfurniture permitartifactfurniture
| sand | =================== ========================= =========================
+-----------+
Notes: Notes:
@ -681,7 +708,7 @@ Refuse stockpile adjustments
=========== ================== ================== =========== ================== ==================
Exclusive Forbid Permit Exclusive Forbid Permit
=========== ================== ================== =========== ================== ==================
bodyparts forbidbodyparts permitbodyparts corpses forbidcorpses permitcorpses
rawhides forbidrawhides permitrawhides rawhides forbidrawhides permitrawhides
tannedhides forbidtannedhides permittannedhides tannedhides forbidtannedhides permittannedhides
skulls forbidskulls permitskulls skulls forbidskulls permitskulls
@ -695,7 +722,6 @@ craftrefuse forbidcraftrefuse permitcraftrefuse
Notes: Notes:
* ``bodyparts`` includes remains/corpses and rotten rawhdes.
* ``craftrefuse`` includes everything a craftsdwarf can use: skulls, bones, * ``craftrefuse`` includes everything a craftsdwarf can use: skulls, bones,
shells, teeth, horns, and hair. shells, teeth, horns, and hair.
@ -719,14 +745,16 @@ clay forbidclay permitclay
Ammo stockpile adjustments Ammo stockpile adjustments
`````````````````````````` ``````````````````````````
=============== ==================== ============== ==================== ====================
Exclusive Forbid Exclusive Forbid Permit
=============== ==================== ============== ==================== ====================
bolts bolts
\ forbidmetalbolts \ forbidmetalbolts
\ forbidwoodenbolts \ forbidwoodenbolts
\ forbidbonebolts \ forbidbonebolts
=============== ==================== masterworkammo forbidmasterworkammo permitmasterworkammo
artifactammo forbidartifactammo permitartifactammo
============== ==================== ====================
Bar stockpile adjustments Bar stockpile adjustments
````````````````````````` `````````````````````````
@ -764,12 +792,14 @@ cutstone forbidcutstone
Finished goods stockpile adjustments Finished goods stockpile adjustments
```````````````````````````````````` ````````````````````````````````````
========= ============ ============ ======================= ============================= =============================
Exclusive Forbid Permit Exclusive Forbid Permit
========= ============ ============ ======================= ============================= =============================
jugs jugs
crafts forbidcrafts permitcrafts crafts forbidcrafts permitcrafts
========= ============ ============ masterworkfinishedgoods forbidmasterworkfinishedgoods permitmasterworkfinishedgoods
artifactfinishedgoods forbidartifactfinishedgoods permitartifactfinishedgoods
======================= ============================= =============================
Cloth stockpile adjustments Cloth stockpile adjustments
``````````````````````````` ```````````````````````````
@ -789,9 +819,9 @@ Cloth stockpile adjustments
Weapon stockpile adjustments Weapon stockpile adjustments
```````````````````````````` ````````````````````````````
================= ======================== ==================== ================= ======================== =======================
Exclusive Forbid Permit Exclusive Forbid Permit
================= ======================== ==================== ================= ======================== =======================
\ forbidweapons permitweapons \ forbidweapons permitweapons
\ forbidtrapcomponents permittrapcomponents \ forbidtrapcomponents permittrapcomponents
metalweapons forbidmetalweapons permitmetalweapons metalweapons forbidmetalweapons permitmetalweapons
@ -803,14 +833,14 @@ copperweapons forbidcopperweapons permitcopperweapons
steelweapons forbidsteelweapons permitsteelweapons steelweapons forbidsteelweapons permitsteelweapons
masterworkweapons forbidmasterworkweapons permitmasterworkweapons masterworkweapons forbidmasterworkweapons permitmasterworkweapons
artifactweapons forbidartifactweapons permitartifactweapons artifactweapons forbidartifactweapons permitartifactweapons
================= ======================== ==================== ================= ======================== =======================
Armor stockpile adjustments Armor stockpile adjustments
``````````````````````````` ```````````````````````````
=============== ====================== ==================== =============== ====================== =====================
Exclusive Forbid Permit Exclusive Forbid Permit
=============== ====================== ==================== =============== ====================== =====================
metalarmor forbidmetalarmor permitmetalarmor metalarmor forbidmetalarmor permitmetalarmor
otherarmor forbidotherarmor permitotherarmor otherarmor forbidotherarmor permitotherarmor
ironarmor forbidironarmor permitironarmor ironarmor forbidironarmor permitironarmor
@ -819,4 +849,4 @@ copperarmor forbidcopperarmor permitcopperarmor
steelarmor forbidsteelarmor permitsteelarmor steelarmor forbidsteelarmor permitsteelarmor
masterworkarmor forbidmasterworkarmor permitmasterworkarmor masterworkarmor forbidmasterworkarmor permitmasterworkarmor
artifactarmor forbidartifactarmor permitartifactarmor artifactarmor forbidartifactarmor permitartifactarmor
=============== ====================== ==================== =============== ====================== =====================

@ -1222,19 +1222,18 @@ The Dreamfort blueprints we'll be discussing are available in the library as
:source:`one large .csv file <data/blueprints/library/dreamfort.csv>` :source:`one large .csv file <data/blueprints/library/dreamfort.csv>`
or `online or `online
<https://drive.google.com/drive/folders/1iS90EEVqUkxTeZiiukVj1pLloZqabKuP>`__ as <https://drive.google.com/drive/folders/1iS90EEVqUkxTeZiiukVj1pLloZqabKuP>`__ as
individual spreadsheets. Either can be read and applied by quickfort, but for us individual spreadsheets. Either the .csv file or the exported spreadsheet .xlsx
humans, the online spreadsheets are much easier to work with. Each spreadsheet files can be read and applied by quickfort, but for us humans, the online
has a "Notes" sheet with some useful details. Flip through some of the spreadsheets are much easier to work with. Each spreadsheet has a "Notes" sheet
spreadsheets and read the `walkthrough with some useful details. Flip through some of the spreadsheets and read the
<https://docs.google.com/spreadsheets/d/ `walkthrough <https://docs.google.com/spreadsheets/d/13PVZ2h3Mm3x_G1OXQvwKd7oIR2lK4A1Ahf6Om1kFigw/edit#gid=0>`__
13PVZ2h3Mm3x_G1OXQvwKd7oIR2lK4A1Ahf6Om1kFigw/edit#gid=0>`__ to get oriented. to get oriented. Also, if you haven't built Dreamfort before, try an embark in a
Also, if you haven't built Dreamfort before, try an embark in a flat area and flat area and take it for a spin!
take it for a spin!
Almost every quickfort feature is used somewhere in Dreamfort, so the blueprints Almost every quickfort feature is used somewhere in Dreamfort, so the blueprints
as a whole are useful as practical examples. You can copy the blueprints and use are useful as practical examples. You can copy the blueprints and use them as
them as starting points for your own, or just refer to them when you create starting points for your own, or just refer to them when you create something
something similar. similar.
In this case study, we'll start by discussing the high level organization of the In this case study, we'll start by discussing the high level organization of the
Dreamfort blueprint set, using the "surface" blueprints as an example. Then Dreamfort blueprint set, using the "surface" blueprints as an example. Then
@ -1264,34 +1263,26 @@ the toil associated with applying so many blueprints.
The single most effective way to make your blueprint sets easier to use is to The single most effective way to make your blueprint sets easier to use is to
group them with `meta blueprints <quickfort-meta>`. For the Dreamfort set of group them with `meta blueprints <quickfort-meta>`. For the Dreamfort set of
blueprints, each logical "step" generally takes more than one blueprint. For blueprints, each logical "step" generally takes more than one blueprint. For
example, setting up pastures with a ``#zone`` blueprint, placing starting example, with ``#meta`` blueprints, setting up pastures with a ``#zone``
stockpiles with a #place blueprint, building starting workshops with a blueprint, placing starting stockpiles with a ``#place`` blueprint, building
``#build`` blueprint, and configuring the stockpiles with a ``#query`` blueprint starting workshops with a ``#build`` blueprint, and configuring the stockpiles
can all be done at once. Bundling blueprints like this reduced the number of with a ``#query`` blueprint can all be done with a single command. Bundling
steps in Dreamfort from 47 to 24, and it also made it much clearer to see which blueprints with ``#meta`` blueprints reduced the number of steps in Dreamfort
blueprints can be applied at once without unpausing the game. Check out from 61 to 23, and it also made it much clearer to see which blueprints can be
dreamfort_surface's "`meta applied at once without unpausing the game. Check out dreamfort_surface's "`meta
<https://docs.google.com/spreadsheets/d/ <https://docs.google.com/spreadsheets/d/1vlxOuDOTsjsZ5W45Ri1kJKgp3waFo8r505LfZVg5wkU/edit#gid=972927200>`__"
1vlxOuDOTsjsZ5W45Ri1kJKgp3waFo8r505LfZVg5wkU/edit#gid=972927200>`__" sheet to sheet to see how much meta blueprints can simplify your life.
see how much meta blueprints can simplify your life.
You can define `as many blueprints as you want <quickfort-packaging>` on one
Note that one of the ``#meta`` blueprints just has one line. In this case, the sheet, but multi-blueprint sheets are especially useful when writing meta
``#meta`` blueprint isn't strictly necessary. The referenced blueprint could blueprints. It's like having a bird's eye view of your entire plan in one sheet.
just be applied directly. However, quickfort lists blueprints in the order that
it reads them, and we chose to make a one-blueprint meta blueprint to ensure all
the steps appear in order in the quickfort list output.
By the way, you can define `as many blueprints as you want
<quickfort-packaging>` on one sheet, but multi-blueprint sheets are
especially useful when writing meta blueprints. It's like having a bird's eye
view of your entire plan in one sheet.
.. topic:: Tip .. topic:: Tip
Keep the blueprint list uncluttered with hidden() markers. Keep the blueprint list uncluttered by using ``hidden()`` markers.
If a blueprint is bundled into a meta blueprint, it does not need to appear in If a blueprint is bundled into a meta blueprint, it does not need to appear in
the quickfort list output since you won't be running it directly. Add a the ``quickfort list`` output since you won't be running it directly. Add a
`hidden() marker <quickfort-hidden>` to those blueprints to keep the list `hidden() marker <quickfort-hidden>` to those blueprints to keep the list
output tidy. You can still access hidden blueprints with ``quickfort list output tidy. You can still access hidden blueprints with ``quickfort list
--hidden`` if you need to -- for example to reapply a partially completed --hidden`` if you need to -- for example to reapply a partially completed
@ -1324,7 +1315,7 @@ sheet, like in surface's meta sheet.
.. topic:: Tip .. topic:: Tip
Use message() markers to remind yourself what to do next. Use ``message()`` markers to remind yourself what to do next.
`Messages <quickfort-message>` are displayed after a blueprint is applied. Good `Messages <quickfort-message>` are displayed after a blueprint is applied. Good
things to include in messages are: things to include in messages are:
@ -1336,12 +1327,11 @@ things to include in messages are:
zones zones
These things are just too easy to forget. Adding a ``message()`` can save you These things are just too easy to forget. Adding a ``message()`` can save you
from time-wasting mistakes. Note that message() markers can still appear on the from time-wasting mistakes. Note that ``message()`` markers can still appear on
``hidden()`` blueprints, and they'll still get shown when the blueprint is run the ``hidden()`` blueprints, and they'll still get shown when the blueprint is
via a ``#meta`` blueprint. For an example of this, check out the `zones sheet run via a ``#meta`` blueprint. For an example of this, check out the `zones
<https://docs.google.com/spreadsheets/d/ sheet <https://docs.google.com/spreadsheets/d/1vlxOuDOTsjsZ5W45Ri1kJKgp3waFo8r505LfZVg5wkU/edit#gid=1226136256>`__
1vlxOuDOTsjsZ5W45Ri1kJKgp3waFo8r505LfZVg5wkU/edit#gid=1226136256>`__ where the where the pastures are defined.
pastures are defined.
The farming_ level: fun with stockpiles The farming_ level: fun with stockpiles
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@ -1365,11 +1355,13 @@ stockpiles. Note the `careful customization
wsszA1AnFqoxeoehByg/edit#gid=486506218>`__ of the food stockpiles and the wsszA1AnFqoxeoehByg/edit#gid=486506218>`__ of the food stockpiles and the
stockpile chains set up with the ``give*`` aliases. This is so when multiple stockpile chains set up with the ``give*`` aliases. This is so when multiple
stockpiles can hold the same item, the largest can keep the smaller ones filled. stockpiles can hold the same item, the largest can keep the smaller ones filled.
If you have multiple stockpiles holding the same type on different z-levels, For example the ``give2up`` alias funnels seeds from the seeds feeder pile to
though, this can be tricky to set up with a blueprint. Here, the jugs and pots the container-enabled seed storage pile. If you have multiple stockpiles holding
stockpiles must be manually linked to the quantum stockpile on the industry the same type on different z-levels, though, this can be tricky to set up with a
level, since we can't know beforehand how many z-levels away that is. Note how blueprint. Here, the jugs and pots stockpiles must be manually linked to the
we call that out in the ``#query`` blueprint's ``message()``. quantum stockpile on the industry level, since we can't know beforehand how many
z-levels away that is. Note how we call that out in the ``#query`` blueprint's
``message()``.
.. topic:: Tip .. topic:: Tip
@ -1377,7 +1369,7 @@ we call that out in the ``#query`` blueprint's ``message()``.
Hauling routes are notoriously fiddly to set up, but they can be automated with Hauling routes are notoriously fiddly to set up, but they can be automated with
blueprints. Check out the Southern area of the ``#place`` and ``#query`` blueprints. Check out the Southern area of the ``#place`` and ``#query``
blueprints for how the quantum garbage dump is configured with simple aliases blueprints for how the quantum refuse dump is configured with simple aliases
from the alias library. from the alias library.
The industry_ level: when not to use aliases The industry_ level: when not to use aliases
@ -1397,15 +1389,14 @@ It may be tempting to put all query blueprint key sequences into aliases to make
them easier to edit, keep them all in one place, and make them reusable, but them easier to edit, keep them all in one place, and make them reusable, but
some key sequences just aren't very valuable as aliases. some key sequences just aren't very valuable as aliases.
`Check out <https://docs.google.com/spreadsheets/d/1gvTJxxRxZ5V4vXkqwhL- `Check out <https://docs.google.com/spreadsheets/d/1gvTJxxRxZ5V4vXkqwhL-qlr_lXCNt8176TK14m4kSOU/edit#gid=787640554>`__
qlr_lXCNt8176TK14m4kSOU/edit#gid=787640554>`__ the Eastern (goods) and Northern the Eastern (goods) and Northern (stone and gems) quantum stockpiles -- cells
(stone and gems) quantum stockpiles -- cells I19 and R10. They give to the I19 and R10. They give to the jeweler's workshop to prevent the jeweler from
jeweler's workshop to prevent the jeweler from using the gems held in reserve using the gems held in reserve for strange moods. The keys are not aliased since
for strange moods. The keys are not aliased since they're dependent on the they're dependent on the relative positions of the tiles where they are
relative positions of the tiles where they are interpreted, which is easiest to interpreted, which is easiest to see in the blueprint itself. Also, if you move
see in the blueprint itself. Also, if you move the workshop, it's easier to fix the workshop, it's easier to fix the stockpile link right there in the blueprint
the stockpile link right there in the blueprint instead of editing a separate instead of editing a separate alias definition.
alias definition.
There are also good examples in the ``#query`` blueprint for how to use the There are also good examples in the ``#query`` blueprint for how to use the
``permit`` and ``forbid`` stockpile aliases. ``permit`` and ``forbid`` stockpile aliases.
@ -1437,15 +1428,19 @@ However, in quickfort there are no guarantees about which cell will be
processed first. In the example above, we obviously intend for the food processed first. In the example above, we obviously intend for the food
stockpile to have tallow exclusively permitted, then to add dye. It could happen stockpile to have tallow exclusively permitted, then to add dye. It could happen
that the two aliases are applied in the opposite order, though, and we'd end up that the two aliases are applied in the opposite order, though, and we'd end up
with dye being permitted, then everything being forbidden and tallow being with dye being permitted, then everything (including dye) being forbidden, and,
enabled. To make sure you always get what you want, write order-sensitive finally, tallow being enabled. To make sure you always get what you want, write
aliases on the same line:: order-sensitive aliases on the same line::
#place Declare a food stockpile #place Declare a food stockpile
f(3x3) f(3x3)
#query Properly configure a food stockpile to accept tallow and dye #query Properly configure a food stockpile to accept tallow and dye
{tallow}{permitdye} {tallow}{permitdye}
You can see a more complex example of this with the ``meltables`` stockpiles in
the `lower right corner <https://docs.google.com/spreadsheets/d/1gvTJxxRxZ5V4vXkqwhL-qlr_lXCNt8176TK14m4kSOU/edit#gid=787640554>`__
of the industry level.
The services_ level: handling multi-level dig blueprints The services_ level: handling multi-level dig blueprints
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@ -1460,15 +1455,18 @@ priorities <quickfort-dig-priorities>`.
Use dig priorities to control ramp creation. Use dig priorities to control ramp creation.
We can `ensure <https://docs.google.com/spreadsheets/d/1IBy6_pGEe6WSBCLukDz_5I- We can `ensure <https://docs.google.com/spreadsheets/d/1IBy6_pGEe6WSBCLukDz_5I-4vi_mpHuJJyOp2j6SJlY/edit#gid=962076234>`__
4vi_mpHuJJyOp2j6SJlY/edit#gid=962076234>`__ the bottom level is carved out the bottom level is carved out before the layer above is channelled by assigning
before the layer above is channelled by assigning the channel designations lower the channel designations lower priorities (the ``h5``\s in the third layer --
priorities (row 76). This is easy to do here because it's just one tile and scroll down).
there is no chance of cave-in.
An alternative is to have a follow-up blueprint that removes any undesired An alternative is to have a follow-up blueprint that removes any undesired
ramps. We did this on the surface and farming levels with the miasma vents to ramps. We did this on the
avoid the complication of setting detailed dig priorities over such large areas. `surface <https://docs.google.com/spreadsheets/d/1vlxOuDOTsjsZ5W45Ri1kJKgp3waFo8r505LfZVg5wkU/edit#gid=1790750180>`__
and
`farming <https://docs.google.com/spreadsheets/d/1iuj807iGVk6vsfYY4j52v9_-wsszA1AnFqoxeoehByg/edit#gid=436537058>`__
levels with the miasma vents since it would be too complicated to synchronize
the digging between the two layers.
The guildhall_ level: avoiding smoothing issues The guildhall_ level: avoiding smoothing issues
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~