-- Export everything from legends mode -- Valid args: "all", "info", "maps", "sites" gui = require 'gui' local args = {...} local vs = dfhack.gui.getCurViewscreen() local i = 1 local MAPS = { "Standard biome+site map", "Elevations including lake and ocean floors", "Elevations respecting water level", "Biome", "Hydrosphere", "Temperature", "Rainfall", "Drainage", "Savagery", "Volcanism", "Current vegetation", "Evil", "Salinity", "Structures/fields/roads/etc.", "Trade", "Nobility and Holdings", "Diplomacy", } -- export information and XML ('p, x') function export_legends_info() print(' Exporting: World map/gen info') gui.simulateInput(vs, 'LEGENDS_EXPORT_MAP') print(' Exporting: Legends xml') gui.simulateInput(vs, 'LEGENDS_EXPORT_XML') end -- presses 'd' for detailed maps function wait_for_legends_vs() local vs = dfhack.gui.getCurViewscreen() if i <= #MAPS then if df.viewscreen_legendsst:is_instance(vs) then gui.simulateInput(vs, 'LEGENDS_EXPORT_DETAILED_MAP') dfhack.timeout(10,'frames',wait_for_export_maps_vs) else dfhack.timeout(10,'frames',wait_for_legends_vs) end end end -- selects detailed map and export it function wait_for_export_maps_vs() local vs = dfhack.gui.getCurViewscreen() if dfhack.gui.getCurFocus() == "export_graphical_map" then vs.sel_idx = i-1 print(' Exporting: '..MAPS[i]..' map') gui.simulateInput(vs, 'SELECT') i = i + 1 dfhack.timeout(10,'frames',wait_for_legends_vs) else dfhack.timeout(10,'frames',wait_for_export_maps_vs) end end -- export site maps function export_site_maps() local vs = dfhack.gui.getCurViewscreen() print(' Exporting: All possible site maps') vs.main_cursor = 1 gui.simulateInput(vs, 'SELECT') for i=1, #vs.sites do gui.simulateInput(vs, 'LEGENDS_EXPORT_MAP') gui.simulateInput(vs, 'STANDARDSCROLL_DOWN') end gui.simulateInput(vs, 'LEAVESCREEN') end -- main() if dfhack.gui.getCurFocus() == "legends" then if args[1] == "all" then export_legends_info() export_site_maps() wait_for_legends_vs() elseif args[1] == "info" then export_legends_info() elseif args[1] == "maps" then wait_for_legends_vs() elseif args[1] == "sites" then export_site_maps() else dfhack.printerr('Valid arguments are "all", "info", "maps" or "sites"') end elseif args[1] == "maps" and dfhack.gui.getCurFocus() == "export_graphical_map" then wait_for_export_maps_vs() else dfhack.printerr('Exportlegends must be run from the main legends view') end