##############################
# Generic dwarfmode bindings #
##############################

# toggle the display of water level as 1-7 tiles
keybinding add Ctrl-W twaterlvl

# with cursor:

# designate the whole vein for digging
keybinding add Ctrl-V digv
keybinding add Ctrl-Shift-V "digv x"

# clean the selected tile of blood etc
keybinding add Ctrl-C spotclean

# destroy items designated for dump in the selected tile
keybinding add Ctrl-Shift-K autodump-destroy-here

# with an item selected:

# destroy the selected item
keybinding add Ctrl-K autodump-destroy-item

# scripts:

# quicksave, only in main dwarfmode screen and menu page
keybinding add Ctrl-Alt-S@dwarfmode/Default quicksave

# gui/rename script - rename units and buildings
keybinding add Ctrl-Shift-N gui/rename
keybinding add Ctrl-Shift-T "gui/rename unit-profession"

##############################
# Generic adv mode bindings  #
##############################

keybinding add Ctrl-B adv-bodyswap
keybinding add Ctrl-Shift-B "adv-bodyswap force"

#############################
# Context-specific bindings #
#############################

# q->stockpile; p - copy & paste stockpiles
keybinding add Alt-P copystock

# q->workshop - duplicate the selected job
keybinding add Ctrl-D job-duplicate

# materials: q->workshop; b->select items
keybinding add Shift-A "job-material ALUNITE"
keybinding add Shift-M "job-material MICROCLINE"
keybinding add Shift-D "job-material DACITE"
keybinding add Shift-R "job-material RHYOLITE"
keybinding add Shift-I "job-material CINNABAR"
keybinding add Shift-B "job-material COBALTITE"
keybinding add Shift-O "job-material OBSIDIAN"
keybinding add Shift-T "job-material ORTHOCLASE"
keybinding add Shift-G "job-material GLASS_GREEN"

# sort units and items in the on-screen list
keybinding add Alt-Shift-N "sort-units name" "sort-items description"
keybinding add Alt-Shift-R "sort-units arrival"
keybinding add Alt-Shift-T "sort-units profession" "sort-items type material"
keybinding add Alt-Shift-Q "sort-units squad_position" "sort-items quality"

# browse linked mechanisms
keybinding add Ctrl-M@dwarfmode/QueryBuilding/Some gui/mechanisms

# browse rooms of same owner
keybinding add Alt-R@dwarfmode/QueryBuilding/Some gui/room-list

# interface for the liquids plugin - spawn water/magma/obsidian
keybinding add Alt-L@dwarfmode/LookAround gui/liquids

# machine power sensitive pressure plate construction
keybinding add Ctrl-Shift-M@dwarfmode/Build/Position/Trap gui/power-meter

# siege engine control
keybinding add Alt-A@dwarfmode/QueryBuilding/Some/SiegeEngine gui/siege-engine

# military weapon auto-select
keybinding add Ctrl-W@layer_military/Equip/Customize/View gui/choose-weapons

# minecart Guide path
keybinding add Alt-P@dwarfmode/Hauling/DefineStop/Cond/Guide gui/guide-path

# workshop job details
keybinding add Alt-A@dwarfmode/QueryBuilding/Some/Workshop/Job gui/workshop-job

# workflow front-end
keybinding add Alt-W@dwarfmode/QueryBuilding/Some/Workshop/Job gui/workflow
keybinding add Alt-W@overallstatus "gui/workflow status"

# assign weapon racks to squads so that they can be used
keybinding add P@dwarfmode/QueryBuilding/Some/Weaponrack gui/assign-rack

############################
# UI and game logic tweaks #
############################

# stabilize the cursor of dwarfmode when switching menus
tweak stable-cursor

# stop military from considering training as 'patrol duty'
tweak patrol-duty

# display creature weight in build plate menu as ??K, instead of (???df: Max
tweak readable-build-plate

# improve FPS by squashing endless item temperature update loops
tweak stable-temp

# speed up items reaching temp equilibrium with environment by
# capping the rate to no less than 1 degree change per 500 frames
# Note: will also cause stuff to melt faster in magma etc
tweak fast-heat 500

# stop stacked liquid/bar/thread/cloth items from lasting forever
# if used in reactions that use only a fraction of the dimension.
tweak fix-dimensions

# make reactions requiring containers usable in advmode - the issue is
# that the screen asks for those reagents to be selected directly
tweak advmode-contained

# support Shift-Enter in Trade and Move Goods to Depot screens for faster
# selection; it selects the current item or stack and scrolls down one line
tweak fast-trade

# stop the right list in military->positions from resetting to top all the time
tweak military-stable-assign
# in same list, color units already assigned to squads in brown & green
tweak military-color-assigned

# remove inverse dependency of squad training speed on unit list size and use more sparring
tweak military-training

###########
# Scripts #
###########

# write the correct season to gamelog on world load
soundsense-season

#######################################################
# Apply binary patches at runtime                     #
#                                                     #
# Commented out by default; enable the ones you want. #
#######################################################

# Bug 5994 - items teleported when removing a construction
#binpatch apply deconstruct-teleport
#binpatch apply deconstruct-heapfall

# Bug 4406 - hospital overstocking on all items
#binpatch apply hospital-overstocking

# Bug 808 - custom reactions completely using up all of their reagents
#binpatch apply custom-reagent-size

# Bug 4530 - marksdwarves not training when quiver full of combat-only ammo
#binpatch apply training-ammo

# Bug 1445 - weapon racks broken, armor stand capacity too low
#binpatch apply weaponrack-unassign
#binpatch apply armorstand-capacity