aegisub-scripts/macros/garret.order-layers.lua

35 lines
932 B
Lua

script_name = "Order layers"
script_description = "puts each selected line on its own layer so they don't clash"
script_author = "garret"
script_version = "1.0.1"
script_namespace = "garret.order-layers"
local haveDepCtrl, DependencyControl, depctrl = pcall(require, "l0.DependencyControl")
if haveDepCtrl then
depctrl = DependencyControl {
--feed="TODO",
}
end
local function main(sub, sel)
local i = 0
local last_start, last_end
for si,li in ipairs(sel) do
line = sub[li]
if line.start_time == last_start or line.end_time == last_end or si == 1 then
line.layer = i
i = i + 1
end
last_start = line.start_time
last_end = line.end_time
sub[li] = line
end
aegisub.set_undo_point(script_name)
end
if haveDepCtrl then
depctrl:registerMacro(main)
else
aegisub.register_macro(script_name, script_description, main)
end