93 lines
2.5 KiB
Lua
93 lines
2.5 KiB
Lua
-- 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
|
|
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
|
|
wait_for_legends_vs()
|
|
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
|
|
else
|
|
dfhack.printerr('Not in main legends view')
|
|
end |