use new data directories for blueprints

develop
Myk Taylor 2023-03-10 17:54:58 -08:00
parent 468b3b54d4
commit c48c9c77c0
No known key found for this signature in database
GPG Key ID: 8A39CA0FA0C16E78
68 changed files with 9 additions and 574 deletions

@ -7,9 +7,6 @@ install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/init/
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/base_command_counts.json install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/base_command_counts.json
DESTINATION "${DFHACK_DATA_DESTINATION}/data") DESTINATION "${DFHACK_DATA_DESTINATION}/data")
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/quickfort/
DESTINATION "${DFHACK_DATA_DESTINATION}/data/quickfort")
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/orders/ install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/orders/
DESTINATION "${DFHACK_DATA_DESTINATION}/data/orders") DESTINATION "${DFHACK_DATA_DESTINATION}/data/orders")
@ -20,12 +17,11 @@ install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/professions/
DESTINATION "${DFHACK_DATA_DESTINATION}/data/professions") DESTINATION "${DFHACK_DATA_DESTINATION}/data/professions")
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/blueprints/ install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/blueprints/
DESTINATION blueprints DESTINATION "${DFHACK_DATA_DESTINATION}/data/blueprints"
FILES_MATCHING PATTERN "*" FILES_MATCHING PATTERN "*"
PATTERN blueprints/library/test EXCLUDE) PATTERN blueprints/test EXCLUDE)
if(BUILD_TESTS) if(BUILD_TESTS)
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/blueprints/library/test/ install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/blueprints/test/
DESTINATION blueprints/library/test DESTINATION "${DFHACK_DATA_DESTINATION}/data/blueprints/test")
)
endif() endif()

@ -1,17 +0,0 @@
# Custom aliases for quickfort query mode blueprints
#
# This file defines custom key sequence shortcuts for query mode blueprints.
# Definitions in this file take precedence over any definitions in the
# baseline aliases configuration file in
# hack/data/quickfort/aliases-common.txt
#
# Please see
# https://docs.dfhack.org/en/latest/docs/guides/quickfort-alias-guide.html
# or
# hack/docs/docs/guides/quickfort-alias-guide.html
# in your DF installation directory for alias syntax documentation and an
# overview of the DFHack alias standard library.
#
#
# Add your custom aliases here. Example:
# food_stash: {foodprefix}b{Right}{Down 11}p^{permitplants}

@ -1,37 +0,0 @@
# quickfort main configuration file
#
# Set startup defaults for the quickfort script in this file. Settings can be
# temporarily overridden in the active session with the `quickfort set` command.
#
# If you have edited this file but want to revert to "factory defaults", delete
# this file and a default one will be regenerated for you the next time you
# start DFHack.
# Directory tree to search for blueprints. Can be set to an absolute or relative
# path. If set to a relative path, resolves to a directory under the DF folder.
# Note that if you change this directory, you will not automatically pick up
# blueprints written by the DFHack "blueprint" plugin (which always writes to
# the "blueprints" dir).
blueprints_dir=blueprints
# Set to "true" or "false". If true, will designate all dig blueprints in marker
# mode. If false, only cells with dig codes explicitly prefixed with an "m" will
# be designated in marker mode.
force_marker_mode=false
# Skip query blueprint sanity checks that detect common blueprint errors and
# halt or skip keycode playback. Checks include ensuring a configurable building
# exists at the designated cursor position and verifying the active UI screen is
# the same before and after sending keys for the cursor position. If you find
# you need to enable this for one of your own blueprints, you should probably be
# using a config blueprint, not a query blueprint.
query_unsafe=false
# Set to the maximum number of resources you want assigned to stockpiles of the
# relevant types. Set to -1 for DF defaults (number of stockpile tiles for
# stockpiles that take barrels and bins, 1 wheelbarrow for stone stockpiles).
# The default here for wheelbarrows is 0 since restricting stockpiles to a
# single wheelbarrow can drastically *decrease* the efficiency of your fort.
stockpiles_max_barrels=-1
stockpiles_max_bins=-1
stockpiles_max_wheelbarrows=0

@ -1,509 +0,0 @@
# Standard library of aliases for quickfort query mode blueprints.
#
# Please DO NOT EDIT this file directly. It will get overwritten when DFHack
# is updated. Instead, custom aliases should be added to
# dfhack-config/quickfort/aliases.txt
# Custom alias definitions will take precedence over aliases in this file.
#
# Please see
# https://docs.dfhack.org/en/latest/docs/guides/quickfort-alias-guide.html
# or
# hack/docs/docs/guides/quickfort-alias-guide.html
# in your DF installation directory for alias syntax documentation and
# documentation for the aliases in this file.
##################################
# naming aliases
##################################
name: {Empty}
givename: !n{name}&
namezone: ^i{givename}^q
##################################
# quantum stockpile aliases
##################################
# Allows the standard stockpile config aliases to also be used to configure
# hauling routes.
enter_sp_config: {enter_sp_config_default}
enter_sp_config_default: s
enter_sp_config_hauling: &
quantum_enable: {enableanimals}{enablefood}{enablefurniture}{enablestone}{enableammo}{enablecoins}{enablebars}{enablegems}{enablefinishedgoods}{enableleather}{enablecloth}{enablewood}{enableweapons}{enablearmor}{enablesheet}
quantum: {linksonly}{nocontainers}{quantum_enable}{givename}
stop_name: {Empty}
route_enable: {quantum_enable}{enablecorpses}{enablerefuse}
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}}
quantumstopfromsouth: {quantumstop move={Down} move_back={Up}}
quantumstopfromwest: {quantumstop move={Left} move_back={Right}}
quantumstopfromnorth: {quantumstop move={Up} move_back={Down}}
##################################
# farm plots
##################################
growlastcropall: a/&b/&c/&d/&
growfirstcropall: a&b&c&d&
########################################
# stockpile utility aliases
########################################
linksonly: a
maxbins: V
maxbarrels: R
nobins: C
nobarrels: E
nocontainers: {nobins}{nobarrels}
give: g{move}&
give2up: {give move={Up 2}}
give2down: {give move={Down 2}}
give2left: {give move={Left 2}}
give2right: {give move={Right 2}}
give10up: {give move={Up 10}}
give10down: {give move={Down 10}}
give10left: {give move={Left 10}}
give10right: {give move={Right 10}}
togglesequence: &{Down}
togglesequence2: &{Down 2}
# these aliases use the DFHack "search" plugin to filter the right column
forbidsearch: s{search}&f{Left}{Right}
permitsearch: s{search}&p{Left}{Right}
togglesearch: s{search}&&{Left}{Right}
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
##################################
animalsprefix: {enter_sp_config}
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: {enter_sp_config}{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}{permitsearch search=tallow}^
miscliquid: {foodprefix}b{Right}{Down 18}p^
wax: {foodprefix}b{Right}{Down 15}{Right}{Down 6}&^
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}{forbidsearch search=tallow}^
forbidmiscliquid: {foodprefix}{Right}{Down 18}f^
forbidwax: {foodprefix}{Right}{Down 15}{Right}{Down 6}&^
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: {foodprefix}{Right}{Down 13}{Right}{permitsearch search=tallow}^
permitmiscliquid: {foodprefix}{Right}{Down 18}p^
permitwax: {forbidwax}
# the next two aliases are for compatibility with previous implementations of
# Quickfort and are not documented.
# 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: {enter_sp_config}{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}&^
forbidpots: {furnitureprefix}{Right 2}{Up 5}&^
forbidbuckets: {furnitureprefix}{Right 2}{Up 12}&^
forbidsand: {furnitureprefix}{Right 2}{Up}&^
permitpots: {forbidpots}
permitbuckets: {forbidbuckets}
permitsand: {forbidsand}
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
###########################################
corpsesprefix: {enter_sp_config}{Down 3}
enablecorpses: {corpsesprefix}e^
disablecorpses: {corpsesprefix}d{Up}d^
refuseprefix: {enter_sp_config}{Down 4}
enablerefuse: {refuseprefix}e^
disablerefuse: {refuseprefix}d^
corpses: {refuseprefix}b{Right}{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^
usablehair: {refuseprefix}b{Right}{Down 8}{Right}{togglesearch search=sheep}{togglesearch search=llama}{togglesearch search=alpaca}{togglesearch search=troll}^
craftrefuse: {skulls}{permitbones}{permitshells}{permitteeth}{permithorns}{permitusablehair}
forbidcorpses: {refuseprefix}{Right}{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^
forbidusablehair: {refuseprefix}{Right}{Down 8}{Right}{forbidsearch search=sheep}{forbidsearch search=llama}{forbidsearch search=alpaca}{forbidsearch search=troll}^
forbidcraftrefuse: {forbidskulls}{forbidbones}{forbidshells}{forbidteeth}{forbidhorns}{forbidusablehair}
permitcorpses: {refuseprefix}{Right}{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^
permitusablehair: {refuseprefix}{Right}{Down 8}{Right}{permitsearch search=sheep}{permitsearch search=llama}{permitsearch search=alpaca}{permitsearch search=troll}^
permitcraftrefuse: {permitskulls}{permitbones}{permitshells}{permitteeth}{permithorns}{permitusablehair}
##################################
# stone stockpile adjustments
##################################
stoneprefix: {enter_sp_config}{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: {enter_sp_config}{Down 6}
enableammo: {ammoprefix}e^
disableammo: {ammoprefix}d^
bolts: {ammoprefix}a{Right 2}f&^
forbidmetalbolts: {ammoprefix}{Right}{Down}f^
forbidwoodenbolts: {ammoprefix}{Right}{Down 2}{Right}&^
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
##################################
barsprefix: {enter_sp_config}{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: {enter_sp_config}{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: {enter_sp_config}{Down 10}
enablefinishedgoods: {finishedgoodsprefix}e^
disablefinishedgoods: {finishedgoodsprefix}d^
crafts: {finishedgoodsprefix}{Right}f{Right}{Down 9}{togglesequence 9}^
goblets: {finishedgoodsprefix}{Right}f{Right}{Down 2}&^
jugs: {finishedgoodsprefix}{Right}f{Right}{Up 2}&{Left}{Down 2}f{Down}f{Down}f^
stonetools: {finishedgoodsprefix}{Right}f{Right}{Up 2}&{Left}{Down 2}f{Down}f{Down}f^
woodentools: {finishedgoodsprefix}{Right}f{Right}{Up 2}&{Left}{Down}f{Down}f{Down}f{Down}f{Right}&^
forbidcrafts: {finishedgoodsprefix}{Right 2}{Down 9}{togglesequence 9}^
forbidgoblets: {finishedgoodsprefix}{Right 2}{Down 2}&^
permitcrafts: {forbidcrafts}
permitgoblets: {forbidgoblets}
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
##################################
clothprefix: {enter_sp_config}{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^
forbidthread: {clothprefix}{Right}f{Down}f{Down}f^
forbidadamantinethread: {clothprefix}{Right}{Down 3}f^
forbidcloth: {clothprefix}{Right}{Down 4}f{Down}f{Down}f^
forbidadamantinecloth: {clothprefix}{Right}{Up}f^
permitthread: {clothprefix}{Right}p{Down}p{Down}p^
permitadamantinethread: {clothprefix}{Right}{Down 3}p^
permitcloth: {clothprefix}{Right}{Down 4}p{Down}p{Down}p^
permitadamantinecloth: {clothprefix}{Right}{Up}p^
##################################
# weapon stockpile adjustments
##################################
weaponsprefix: {enter_sp_config}{Down 14}
enableweapons: {weaponsprefix}e^
disableweapons: {weaponsprefix}d^
metalweapons: {forbidtrapcomponents}{forbidstoneweapons}{forbidotherweapons}
ironweapons: {metalweapons}{forbidmetalweapons}{permitironweapons}
bronzeweapons: {metalweapons}{forbidmetalweapons}{permitbronzeweapons}
copperweapons: {metalweapons}{forbidmetalweapons}{permitcopperweapons}
steelweapons: {metalweapons}{forbidmetalweapons}{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}&^
forbidbronzeweapons: {weaponsprefix}{Right}{Down 2}{Right}{Down 6}&^
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}
permitbronzeweapons: {forbidbronzeweapons}
permitcopperweapons: {forbidcopperweapons}
permitsteelweapons: {forbidsteelweapons}
masterworkweapons: {masterworkonly prefix={weaponsprefix}}
artifactweapons: {artifactonly prefix={weaponsprefix}}
forbidmasterworkweapons: {togglemasterwork prefix={weaponsprefix}}
forbidartifactweapons: {toggleartifact prefix={weaponsprefix}}
permitmasterworkweapons: {togglemasterwork prefix={weaponsprefix}}
permitartifactweapons: {toggleartifact prefix={weaponsprefix}}
##################################
# armor stockpile adjustments
##################################
armorprefix: {enter_sp_config}{Down 15}
enablearmor: {armorprefix}e^
disablearmor: {armorprefix}d^
metalarmor: {forbidotherarmor}
otherarmor: {forbidmetalarmor}
ironarmor: {metalarmor}{forbidmetalarmor}{permitironarmor}
bronzearmor: {metalarmor}{forbidmetalarmor}{permitbronzearmor}
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}&^
forbidbronzearmor: {armorprefix}{Right}{Down 6}{Right}{Down 6}&^
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}
permitbronzearmor: {forbidbronzearmor}
permitcopperarmor: {forbidcopperarmor}
permitsteelarmor: {forbidsteelarmor}
masterworkarmor: {masterworkonly prefix={armorprefix}}
artifactarmor: {artifactonly prefix={armorprefix}}
forbidmasterworkarmor: {togglemasterwork prefix={armorprefix}}
forbidartifactarmor: {toggleartifact prefix={armorprefix}}
permitmasterworkarmor: {togglemasterwork prefix={armorprefix}}
permitartifactarmor: {toggleartifact prefix={armorprefix}}
##################################
# others
##################################
coinsprefix: {enter_sp_config}{Down 7}
enablecoins: {coinsprefix}e^
disablecoins: {coinsprefix}d^
leatherprefix: {enter_sp_config}{Down 11}
enableleather: {leatherprefix}e^
disableleather: {leatherprefix}d^
woodprefix: {enter_sp_config}{Down 13}
enablewood: {woodprefix}e^
disablewood: {woodprefix}d^
sheetprefix: {enter_sp_config}{Down 16}
enablesheet: {sheetprefix}e^
disablesheet: {sheetprefix}d^

@ -9,7 +9,7 @@ With ``blueprint``, you can export the structure of a portion of your fortress
in a blueprint file that you (or anyone else) can later play back with in a blueprint file that you (or anyone else) can later play back with
`gui/quickfort`. `gui/quickfort`.
Blueprints are ``.csv`` or ``.xlsx`` files created in the ``blueprints`` Blueprints are ``.csv`` or ``.xlsx`` files created in the ``dfhack-config/blueprints``
subdirectory of your DF folder. The map area to turn into a blueprint is either subdirectory of your DF folder. The map area to turn into a blueprint is either
selected interactively with the ``gui/blueprint`` command or, if the GUI is not selected interactively with the ``gui/blueprint`` command or, if the GUI is not
used, starts at the active cursor location and extends right and down for the used, starts at the active cursor location and extends right and down for the

@ -46,6 +46,8 @@ using namespace DFHack;
DFHACK_PLUGIN("blueprint"); DFHACK_PLUGIN("blueprint");
REQUIRE_GLOBAL(world); REQUIRE_GLOBAL(world);
static const string BLUEPRINT_USER_DIR = "dfhack-config/blueprints/";
namespace DFHack { namespace DFHack {
DBG_DECLARE(blueprint,log); DBG_DECLARE(blueprint,log);
} }
@ -1091,7 +1093,7 @@ static const char * get_tile_rooms(const df::coord &, const tile_context &ctx) {
static bool create_output_dir(color_ostream &out, static bool create_output_dir(color_ostream &out,
const blueprint_options &opts) { const blueprint_options &opts) {
string basename = "blueprints/" + opts.name; string basename = BLUEPRINT_USER_DIR + opts.name;
size_t last_slash = basename.find_last_of("/"); size_t last_slash = basename.find_last_of("/");
string parent_path = basename.substr(0, last_slash); string parent_path = basename.substr(0, last_slash);

@ -206,7 +206,7 @@ end
-- returns the name of the output file for the given context -- returns the name of the output file for the given context
function get_filename(opts, phase, ordinal) function get_filename(opts, phase, ordinal)
local fullname = 'blueprints/' .. opts.name local fullname = 'dfhack-config/blueprints/' .. opts.name
local _,_,basename = fullname:find('/([^/]+)/?$') local _,_,basename = fullname:find('/([^/]+)/?$')
if not basename then if not basename then
-- should not happen since opts.name should already be validated -- should not happen since opts.name should already be validated