# Common baseline for aliases for quickfort query mode blueprints.
#
# Please DO NOT EDIT this file directly. Instead, custom aliases should be added
# to dfhack-config/quickfort/aliases.txt. See that file for syntax
# documentation.
#
# The aliases in this file were tested in DF 0.47.04 on 2020 Jul 18.
#
# The aliases are generally split into three categories:
# 1) The aliases that name a type disable everything else for that stockpile
#    category and enable only that type. For example, "preparedfood" enables
#    prepared food and disables all other types of food.
# 2) The aliases that start with "forbid" only forbid (or toggle) the named type
#    and leave the rest of the stockpile untouched.
# 3) The aliases that start with "permit" only permit (or toggle) the named type
#    and leave the rest of the stockpile untouched.
#
# Aliases that don't fit into those two categories have comments explaining
# their usage.
#
# There is also a non-alphanumeric alias built into the code for the common
# shorthand for "make room":
#   r+   expands to r+&


########################################
# general purpose stockpile adjustments
########################################

linksonly: a
nocontainers: CE

# for configuring stockpiles to give to other nearby stockpiles/workshops
give2up: g{Up 2}&
give2down: g{Down 2}&
give2left: g{Left 2}&
give2right: g{Right 2}&
give10up: g{Up 10}&
give10down: g{Down 10}&
give10left: g{Left 10}&
give10right: g{Right 10}&

# use to toggle a sequence of stockpile options. for example: {togglesequence 5}
togglesequence: &{Down}
togglesequence2: &{Down 2}
enablesequence: e{Down}

# Enables everything but corpses and refuse. Refuse is excluded since otherwise
# clothes and armor in this quantum stockpile will rot away. If you want bones
# in your quantum stockpile, apply this alias to a refuse stockpile (but don't
# put useful clothes or armor in there!)
quantum: {linksonly}{nocontainers}{enableanimals}{enablefood}{furnitureprefix}{enablestone}{enableammo}{enablecoins}{enablebars}{enablegems}{enablefinishedgoods}{enableleather}{enablecloth}{enablewood}}{enableweapons}{enablearmor}{enablesheet}


##################################
# hauling aliases
##################################

# Run one of the quantumstopfrom* aliases over a track stop that is set to dump
# into a quantum stockpile. The alias will set up the stop to accept all types
# (the actual types stored in the quantum stockpile is controlled by the feeder
# stockpile) and link the indicated adjacent feeder stockpile (for example, the
# quantumstopfromsouth alias will link to a feeder stockpile to the South). All
# you need to do afterwards is assign a vehicle to the stop (and optionally
# give the route a name --see the namelastroute* aliases below). The track stop
# does not need to be constructed yet, but the feeder stockpile needs to exist
# so we can link it.
quantumstopprefix: ^hrs&xxx&{enablesequence 17}^
quantumstopfromeast: {quantumstopprefix}s{Right}p^{Left}^q
quantumstopfromsouth: {quantumstopprefix}s{Down}p^{Up}^q
quantumstopfromwest: {quantumstopprefix}s{Left}p^{Right}^q
quantumstopfromnorth: {quantumstopprefix}s{Up}p^{Down}^q

# Give a name to the most recently defined route. Keep in mind that names have
# a maximum length of 22 characters. It assumes that the route has exactly one
# stop defined. Use it with the quantumstopfrom* aliases above like this:
#   {quantumstopfromeast}{namelastrouteprefix}Trash Dumper{namelastroutesuffix}
namelastrouteprefix: ^h--n
namelastroutesuffix: &^q


##################################
# animal stockpile adjustments
##################################

animalsprefix:  s
enableanimals:  {animalsprefix}e^
disableanimals: {animalsprefix}d^

cages: {animalsprefix}bu^
traps: {animalsprefix}bj^

forbidcages: {animalsprefix}u^
forbidtraps: {animalsprefix}j^

permitcages: {forbidcages}
permittraps: {forbidtraps}


##################################
# food stockpile adjustments
##################################

foodprefix:  s{Down}
enablefood:  {foodprefix}e^
disablefood: {foodprefix}d^

preparedfood:   {foodprefix}bu^
unpreparedfish: {foodprefix}b{Right}{Down 2}p^
plants:         {foodprefix}b{Right}{Down 4}p^
booze:          {foodprefix}b{Right}{Down 5}p{Down}p^
seeds:          {foodprefix}b{Right}{Down 9}p^
dye:            {foodprefix}b{Right}{Down 11}{Right}{Down 28}{togglesequence 4}^
tallow:         {foodprefix}b{Right}{Down 13}{Right}{Down}{togglesequence2 811}^
miscliquid:     {foodprefix}b{Right}{Down 18}p^

forbidpreparedfood:   {foodprefix}u^
forbidunpreparedfish: {foodprefix}{Right}{Down 2}f^
forbidplants:         {foodprefix}{Right}{Down 4}f^
forbidbooze:          {foodprefix}{Right}{Down 5}f{Down}f^
forbidseeds:          {foodprefix}{Right}{Down 9}f^
forbiddye:            {foodprefix}{Right}{Down 11}{Right}{Down 28}{togglesequence 4}^
forbidtallow:         {foodprefix}{Right}{Down 13}{Right}{Down}{togglesequence2 811}^
forbidmiscliquid:     {foodprefix}{Right}{Down 18}f^

permitpreparedfood:   {forbidpreparedfood}
permitunpreparedfish: {foodprefix}{Right}{Down 2}p^
permitplants:         {foodprefix}{Right}{Down 4}p^
permitbooze:          {foodprefix}{Right}{Down 5}p{Down}p^
permitseeds:          {foodprefix}{Right}{Down 9}p^
permitdye:            {forbiddye}
permittallow:         {forbidtallow}
permitmiscliquid:     {foodprefix}{Right}{Down 18}p^

# enables everything but seeds
noseeds: {disablefood}{enablefood}{forbidseeds}

# enables all food except for the types listed above
food: {noseeds}{forbidpreparedfood}{forbidunpreparedfish}{forbidplants}{forbidbooze}{forbiddye}{forbidtallow}{forbidmiscliquid}


##################################
# furniture stockpile adjustments
##################################

furnitureprefix:  s{Down 2}
enablefurniture:  {furnitureprefix}e^
disablefurniture: {furnitureprefix}d^

pots:    {furnitureprefix}de{Right}f{Right}{Up 5}&^
bags:    {furnitureprefix}de{Right}f{Right}{Up 10}&{Left}{Down}f{Down}f{Down}f{Right}{Down}&{Down 6}&{Down}&{Down 6}&^
buckets: {furnitureprefix}de{Right}f{Right}{Up 12}&^
sand:    {furnitureprefix}de{Right}f{Right}{Up}&^


###########################################
# corpses and refuse stockpile adjustments
###########################################

corpsesprefix:  s{Down 3}
enablecorpses:  {corpsesprefix}e^
disablecorpses: {corpsesprefix}d{Up}d^

refuseprefix:  s{Down 4}
enablerefuse:  {refuseprefix}e^
disablerefuse: {refuseprefix}d^

# bodyparts include remains/corpses and rotten rawhdes
bodyparts:   {refuseprefix}b{Right 2}&{Down 2}&{Left}{Down}p{Down}p^
rawhides:    {refuseprefix}b{Right 2}{Down}&^
tannedhides: {refuseprefix}b{Right 2}{Down 53}&^
skulls:      {refuseprefix}b{Right}{Down 3}p^
bones:       {refuseprefix}b{Right}{Down 4}p^
shells:      {refuseprefix}b{Right}{Down 5}p^
teeth:       {refuseprefix}b{Right}{Down 6}p^
horns:       {refuseprefix}b{Right}{Down 7}p^
hair:        {refuseprefix}b{Right}{Down 8}p^
craftrefuse: {skulls}{permitbones}{permitshells}{permitteeth}{permithorns}{permithair}

forbidbodyparts:   {refuseprefix}{Right 2}&{Down 2}&{Left}{Down}f{Down}f^
forbidrawhides:    {refuseprefix}{Right 2}{Down}&^
forbidtannedhides: {refuseprefix}{Right 2}{Down 53}&^
forbidskulls:      {refuseprefix}{Right}{Down 3}f^
forbidbones:       {refuseprefix}{Right}{Down 4}f^
forbidshells:      {refuseprefix}{Right}{Down 5}f^
forbidteeth:       {refuseprefix}{Right}{Down 6}f^
forbidhorns:       {refuseprefix}{Right}{Down 7}f^
forbidhair:        {refuseprefix}{Right}{Down 8}f^
forbidcraftrefuse: {forbidskulls}{forbidbones}{forbidshells}{forbidteeth}{forbidhorns}{forbidhair}

permitbodyparts:   {refuseprefix}{Right 2}&{Down 2}&{Left}{Down}p{Down}p^
permitrawhides:    {forbidrawhides}
permittannedhides: {forbidtannedhides}
permitskulls:      {refuseprefix}{Right}{Down 3}p^
permitbones:       {refuseprefix}{Right}{Down 4}p^
permitshells:      {refuseprefix}{Right}{Down 5}p^
permitteeth:       {refuseprefix}{Right}{Down 6}p^
permithorns:       {refuseprefix}{Right}{Down 7}p^
permithair:        {refuseprefix}{Right}{Down 8}p^
permitcraftrefuse: {permitskulls}{permitbones}{permitshells}{permitteeth}{permithorns}{permithair}


##################################
# stone stockpile adjustments
##################################

stoneprefix:  s{Down 5}
enablestone:  {stoneprefix}e^
disablestone: {stoneprefix}d^

metal:         {stoneprefix}b{Right}p^
iron:          {stoneprefix}b{Right}{Right}&{Down}&{Down 13}&^
economic:      {stoneprefix}b{Right}{Down}p^
flux:          {stoneprefix}b{Right}{Down}{Right}{togglesequence 4}{Down 4}&^
plaster:       {stoneprefix}b{Right}{Down}{Right}{Down 6}&{Down 3}{togglesequence 3}^
coalproducing: {stoneprefix}b{Right}{Down}{Right}{Down 4}{togglesequence 2}^
otherstone:    {stoneprefix}b{Right}{Down 2}p^
bauxite:       {stoneprefix}b{Right}{Down 2}{Right}{Down 42}&^
clay:          {stoneprefix}b{Right}{Down 3}p^

forbidmetal:         {stoneprefix}{Right}f^
forbidiron:          {stoneprefix}{Right}{Right}&{Down}&{Down 13}&^
forbideconomic:      {stoneprefix}{Right}{Down}f^
forbidflux:          {stoneprefix}{Right}{Down}{Right}{togglesequence 4}{Down 4}&^
forbidplaster:       {stoneprefix}{Right}{Down}{Right}{Down 6}&{Down 3}{togglesequence 3}^
forbidcoalproducing: {stoneprefix}{Right}{Down}{Right}{Down 4}{togglesequence 2}^
forbidotherstone:    {stoneprefix}{Right}{Down 2}f^
forbidbauxite:       {stoneprefix}{Right}{Down 2}{Right}{Down 42}&^
forbidclay:          {stoneprefix}{Right}{Down 3}f^

permitmetal:         {stoneprefix}{Right}p^
permitiron:          {forbidiron}
permiteconomic:      {stoneprefix}{Right}{Down}p^
permitflux:          {forbidflux}
permitplaster:       {forbidplaster}
permitcoalproducing: {forbidcoalproducing}
permitotherstone:    {stoneprefix}{Right}{Down 2}p^
permitbauxite:       {forbidbauxite}
permitclay:          {stoneprefix}{Right}{Down 3}p^


##################################
# ammo stockpile adjustments
##################################

ammoprefix:  s{Down 6}
enableammo:  {ammoprefix}e^
disableammo: {ammoprefix}d^

bolts: {ammoprefix}a{Right 2}{Down}{togglesequence 2}^

forbidmetalbolts:  {ammoprefix}{Right}{Down}f^
forbidwoodenbolts: {ammoprefix}{Right}{Down 2}{Right}&^
forbidbonebolts:   {ammoprefix}{Right}{Down 2}{Right}{Down}&^


##################################
# bar stockpile adjustments
##################################

barsprefix:  s{Down 8}
enablebars:  {barsprefix}e^
disablebars: {barsprefix}d^

bars:        {barsprefix}b{Right}p{Down}p^
metalbars:   {barsprefix}b{Right}p^
ironbars:    {barsprefix}b{Right 2}&^
steelbars:   {barsprefix}b{Right 2}{Down 8}&^
pigironbars: {barsprefix}b{Right 2}{Down 9}&^
otherbars:   {barsprefix}b{Right}{Down}p^
coal:        {barsprefix}b{Right}{Down}{Right}&^
potash:      {barsprefix}b{Right}{Down}{Right}{Down}&^
ash:         {barsprefix}b{Right}{Down}{Right}{Down 2}&^
pearlash:    {barsprefix}b{Right}{Down}{Right}{Down 3}&^
soap:        {barsprefix}b{Right}{Down}{Right}{Down 4}&^
blocks:      {barsprefix}b{Down 2}p{Down}p{Down}p^

forbidbars:        {barsprefix}{Right}f{Down}f^
forbidmetalbars:   {barsprefix}{Right}f^
forbidironbars:    {barsprefix}{Right 2}&^
forbidsteelbars:   {barsprefix}{Right 2}{Down 8}&^
forbidpigironbars: {barsprefix}{Right 2}{Down 9}&^
forbidotherbars:   {barsprefix}{Right}{Down}f^
forbidcoal:        {barsprefix}{Right}{Down}{Right}&^
forbidpotash:      {barsprefix}{Right}{Down}{Right}{Down}&^
forbidash:         {barsprefix}{Right}{Down}{Right}{Down 2}&^
forbidpearlash:    {barsprefix}{Right}{Down}{Right}{Down 3}&^
forbidsoap:        {barsprefix}{Right}{Down}{Right}{Down 4}&^
forbidblocks:      {barsprefix}{Down 2}f{Down}f{Down}f^


##################################
# gem stockpile adjustments
##################################

gemsprefix:  s{Down 9}
enablegems:  {gemsprefix}e^
disablegems: {gemsprefix}d^

roughgems:  {gemsprefix}b{Right}p^
roughglass: {gemsprefix}b{Right}{Down}p^
cutgems:    {gemsprefix}b{Right}{Down 2}p^
cutglass:   {gemsprefix}b{Right}{Down 3}p^
cutstone:   {gemsprefix}b{Right}{Down 4}p^

forbidroughgems:  {gemsprefix}{Right}f^
forbidroughglass: {gemsprefix}{Right}{Down}f^
forbidcutgems:    {gemsprefix}{Right}{Down 2}f^
forbidcutglass:   {gemsprefix}{Right}{Down 3}f^
forbidcutstone:   {gemsprefix}{Right}{Down 4}f^


#######################################
# finished goods stockpile adjustments
#######################################

finishedgoodsprefix:  s{Down 10}
enablefinishedgoods:  {finishedgoodsprefix}e^
disablefinishedgoods: {finishedgoodsprefix}d^

jugs: {finishedgoodsprefix}{Right}f{Right}{Up 2}&{Left}{Down 2}f{Down}f{Down}f^


##################################
# cloth
##################################

clothprefix:  s{Down 12}
enablecloth:  {clothprefix}e^
disablecloth: {clothprefix}d^

thread:           {clothprefix}b{Right}p{Down}p{Down}p^
adamantinethread: {clothprefix}b{Right}{Down 3}p^
cloth:            {clothprefix}b{Right}{Down 4}p{Down}p{Down}p^
adamantinecloth:  {clothprefix}b{Right}{Up}p^


##################################
# weapon stockpile adjustments
##################################

weaponsprefix:  s{Down 14}
enableweapons:  {weaponsprefix}e^
disableweapons: {weaponsprefix}d^

metalweapons:  {forbidtrapcomponents}{forbidstoneweapons}{forbidotherweapons}
ironweapons:   {metalweapons}{forbidweapons}{permitironweapons}
copperweapons: {metalweapons}{forbidweapons}{permitcopperweapons}
steelweapons:  {metalweapons}{forbidweapons}{permitsteelweapons}

forbidweapons:        {weaponsprefix}{Right}f^
forbidtrapcomponents: {weaponsprefix}{Right}{Down}f^
forbidmetalweapons:   {weaponsprefix}{Right}{Down 2}f^
forbidstoneweapons:   {weaponsprefix}{Right}{Down 3}f^
forbidotherweapons:   {weaponsprefix}{Right}{Down 4}f^
forbidironweapons:    {weaponsprefix}{Right}{Down 2}{Right}&^
forbidcopperweapons:  {weaponsprefix}{Right}{Down 2}{Right}{Down 3}&^
forbidsteelweapons:   {weaponsprefix}{Right}{Down 2}{Right}{Down 8}&^

permitweapons:        {weaponsprefix}{Right}p^
permittrapcomponents: {weaponsprefix}{Right}{Down}p^
permitmetalweapons:   {weaponsprefix}{Right}{Down 2}p^
permitstoneweapons:   {weaponsprefix}{Right}{Down 3}p^
permitotherweapons:   {weaponsprefix}{Right}{Down 4}p^
permitironweapons:    {forbidironweapons}
permitcopperweapons:  {forbidcopperweapons}
permitsteelweapons:   {forbidsteelweapons}

masterworkweapons: {weaponsprefix}{Right}{Down 5}f{Right}{Down 5}&^
artifactweapons:   {weaponsprefix}{Right}{Down 5}f{Right}{Down 6}&^

forbidmasterworkweapons: {weaponsprefix}{Right}{Down 5}{Right}{Down 5}&^
forbidartifactweapons:   {weaponsprefix}{Right}{Down 5}{Right}{Down 6}&^

permitmasterworkweapons: {forbidmasterworkweapons}
permitartifactweapons:   {forbidartifactweapons}


##################################
# armor stockpile adjustments
##################################

armorprefix:  s{Down 15}
enablearmor:  {armorprefix}e^
disablearmor: {armorprefix}d^

metalarmor:  {forbidotherarmor}
otherarmor:  {forbidmetalarmor}
ironarmor:   {metalarmor}{forbidmetalarmor}{permitironarmor}
copperarmor: {metalarmor}{forbidmetalarmor}{permitcopperarmor}
steelarmor:  {metalarmor}{forbidmetalarmor}{permitsteelarmor}

forbidmetalarmor:  {armorprefix}{Right}{Down 6}f^
forbidotherarmor:  {armorprefix}{Right}{Down 7}f^
forbidironarmor:   {armorprefix}{Right}{Down 6}{Right}&^
forbidcopperarmor: {armorprefix}{Right}{Down 6}{Right}{Down 3}&^
forbidsteelarmor:  {armorprefix}{Right}{Down 6}{Right}{Down 8}&^

permitmetalarmor:   {armorprefix}{Right}{Down 6}p^
permitotherarmor:   {armorprefix}{Right}{Down 7}p^
permitironarmor:    {forbidironarmor}
permitcopperarmor:  {forbidcopperarmor}
permitsteelarmor:   {forbidsteelarmor}

masterworkarmor: {armorprefix}{Right}{Down 8}f{Right}{Down 5}&^
artifactarmor:   {armorprefix}{Right}{Down 8}f{Right}{Down 6}&^

forbidmasterworkarmor: {armorprefix}{Right}{Down 8}{Right}{Down 5}&^
forbidartifactarmor:   {armorprefix}{Right}{Down 8}{Right}{Down 6}&^

permitmasterworkarmor: {forbidmasterworkarmor}
permitartifactarmor:   {forbidartifactarmor}


##################################
# others
##################################

coinsprefix:  s{Down 7}
enablecoins:  {coinsprefix}e^
disablecoins: {coinsprefix}d^

leatherprefix:  s{Down 11}
enableleather:  {leatherprefix}e^
disableleather: {leatherprefix}d^

woodprefix:  s{Down 13}
enablewood:  {woodprefix}e^
disablewood: {woodprefix}d^

sheetprefix:  s{Down 16}
enablesheet:  {sheetprefix}e^
disablesheet: {sheetprefix}d^


##################################
# farm plots
##################################

# Sets a farm plot to grow the LAST type of seed in the list of available seeds
# for all 4 seasons. The last seed is used because it's usually Plump helmet
# spawn, suitable for post-embark. If you only have 1 seed type, that'll be
# grown.
growlastcropall: a/&b/&c/&d/&

# Like growlastcropall but grows the first one in the list instead.
growfirstcropall: a&b&c&d&
