69 lines
2.5 KiB
Lua
69 lines
2.5 KiB
Lua
-- Export everything from legends mode
|
|
-- Based on the script 'exportmaps'
|
|
-- Suggested keybinding: keybinding add Shift-A@legends "exportlegends all"
|
|
|
|
gui = require 'gui'
|
|
|
|
local args = {...}
|
|
local vs = dfhack.gui.getCurViewscreen()
|
|
local i = 0
|
|
|
|
if args[1] then print(' A script which exports data from legends mode. Valid arguments are "maps" (detailed maps) or "all" (detailed maps, world/gen info, XML).') end
|
|
|
|
|
|
local MAPS = {
|
|
[0] = "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",
|
|
}
|
|
function wait_for_legends_vs()
|
|
vs = dfhack.gui.getCurViewscreen()
|
|
if i < 15 then
|
|
if df.viewscreen_legendsst:is_instance(vs) then
|
|
gui.simulateInput(vs, 'LEGENDS_EXPORT_DETAILED_MAP') -- "d" on screen some number internally
|
|
dfhack.timeout(10,'frames',wait_for_export_maps_vs)
|
|
else
|
|
dfhack.timeout(10,'frames',wait_for_legends_vs)
|
|
end
|
|
end
|
|
end
|
|
function wait_for_export_maps_vs()
|
|
vs = dfhack.gui.getCurViewscreen()
|
|
if df.viewscreen_export_graphical_mapst:is_instance(vs) then
|
|
vs.anon_13 = i -- anon_13 appears to be the selection cursor for this viewscreen
|
|
print('Exporting: '..MAPS[i])
|
|
i = i + 1
|
|
gui.simulateInput(vs, 'SELECT') -- 1 internally, enter on screen
|
|
dfhack.timeout(10,'frames',wait_for_legends_vs)
|
|
else
|
|
dfhack.timeout(10,'frames',wait_for_export_maps_vs)
|
|
end
|
|
end
|
|
|
|
if df.viewscreen_legendsst:is_instance( vs ) then -- dfhack.gui.getCurFocus() == "legends"
|
|
if args[1] == "all" then
|
|
gui.simulateInput(vs, df.interface_key.LEGENDS_EXPORT_MAP)
|
|
print('Exporting: world map/gen info')
|
|
gui.simulateInput(vs, df.interface_key.LEGENDS_EXPORT_XML)
|
|
print('Exporting: legends xml')
|
|
wait_for_legends_vs()
|
|
elseif args[1] == "maps" then wait_for_legends_vs()
|
|
end
|
|
elseif df.viewscreen_export_graphical_mapst:is_instance(vs) then
|
|
if args[1] == "maps" or "all" then wait_for_export_maps_vs() end
|
|
else
|
|
dfhack.printerr('Not in legends view')
|
|
end
|