dfhack/scripts/gui/stockpiles.lua

62 lines
1.5 KiB
Lua

-- lave/load stockpile settings with a GUI
local stock = require 'plugins.stockpiles'
function check_enabled()
return stock.isEnabled()
end
function world_guard()
if not dfhack.isMapLoaded() then
qerror("World is not loaded")
return false
end
return true
end
function guard()
if not string.match(dfhack.gui.getCurFocus(), '^dwarfmode/QueryBuilding/Some/Stockpile') then
qerror("This script requires a stockpile selected in the 'q' mode")
return false
end
return true
end
utils = require('utils')
validArgs = validArgs or utils.invert({
'help',
'load',
'save',
'dir',
})
args = utils.processArgs({...}, validArgs)
function usage()
print("")
print("Stockpile Settings. Arguments: ")
print("-save to save the current stockpile")
print("-load to load settings into the current stockpile")
print("-dir <path> set the default directory to save settings into")
if dfhack.isMapLoaded() then
print(" Current directory is: " .. stock.get_path())
end
print("")
end
if not check_enabled() then
qerror("Stockpiles plugin not enabled. Enable it with: enable stockpiles")
elseif args.load then
if not guard() then return end
stock.load_settings()
elseif args.save then
if not guard() then return end
local sp = dfhack.gui.getSelectedBuilding(true)
stock.save_settings(sp)
elseif args.dir then
if not world_guard() then return end
stock.set_path(args.dir)
else
usage()
end