added two scripts
Added scripts `exportlegends` and `log-region`, including init and readme entries. The init file now has a section for legends-mode keybindings.develop
parent
cca8014630
commit
26c2d0e16b
@ -0,0 +1,68 @@
|
|||||||
|
-- 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
|
@ -0,0 +1,35 @@
|
|||||||
|
-- On map load writes information about the loaded region to gamelog.txt
|
||||||
|
-- By Kurik Amudnil and Warmist (http://www.bay12forums.com/smf/index.php?topic=91166.msg4467072#msg4467072)
|
||||||
|
|
||||||
|
local function write_gamelog(msg)
|
||||||
|
local log = io.open('gamelog.txt', 'a')
|
||||||
|
log:write(msg.."\n")
|
||||||
|
log:close()
|
||||||
|
end
|
||||||
|
|
||||||
|
local args = {...}
|
||||||
|
if args[1] == 'disable' then
|
||||||
|
dfhack.onStateChange[_ENV] = nil
|
||||||
|
else
|
||||||
|
dfhack.onStateChange[_ENV] = function(op)
|
||||||
|
if op == SC_WORLD_LOADED then
|
||||||
|
if df.world_site.find(df.global.ui.site_id) ~= nil then -- added this check, now only attempts write in fort mode
|
||||||
|
local site = df.world_site.find(df.global.ui.site_id)
|
||||||
|
local fort_ent = df.global.ui.main.fortress_entity
|
||||||
|
local civ_ent = df.historical_entity.find(df.global.ui.civ_id)
|
||||||
|
local worldname = df.global.world.world_data.name
|
||||||
|
-- site positions
|
||||||
|
-- site .pos.x .pos.y
|
||||||
|
-- site .rgn_min_x .rgn_min_y .rgn_max_x .rgn_max.y
|
||||||
|
-- site .global_min_x .global_min_y .global_max_x .global_max_y
|
||||||
|
--site.name
|
||||||
|
--fort_ent.name
|
||||||
|
--civ_ent.name
|
||||||
|
|
||||||
|
write_gamelog('Loaded '..df.global.world.cur_savegame.save_dir..', '..dfhack.TranslateName(worldname)..' ('..dfhack.TranslateName(worldname ,true)..') at coordinates ('..site.pos.x..','..site.pos.y..')'..NEWLINE..
|
||||||
|
'Loaded the fortress '..dfhack.TranslateName(site.name)..' ('..dfhack.TranslateName(site.name, true)..'), colonized by the group '..dfhack.TranslateName(fort_ent.name)..' ('..dfhack.TranslateName(fort_ent.name,true)..
|
||||||
|
') of the civilization '..dfhack.TranslateName(civ_ent.name)..' ('..dfhack.TranslateName(civ_ent.name,true)..').'..NEWLINE)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in New Issue