* Add ability to apply settings to multiple selected layers at once.
* Clean up plugin plumbing.
This commit is contained in:
parent
82e1ab7523
commit
128258cd62
5 changed files with 94 additions and 83 deletions
|
@ -3,91 +3,85 @@ extKey = "annabunches/abase" -- this must come before we require 'abase-commands
|
|||
local cmd = require "abase-commands"
|
||||
local listeners = require "abase-listeners"
|
||||
|
||||
function IsLayerSelectionMergable()
|
||||
for _, layer in ipairs(app.range.layers) do
|
||||
if layer.isGroup then return true end
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
function init(plugin)
|
||||
plugin:newCommand{
|
||||
id="ABASEExportSpritesheetAdvanced",
|
||||
title="Export Spritesheet (Advanced)",
|
||||
group="file_export_1",
|
||||
onclick=function()
|
||||
cmd.ExportSpritesheetAdvanced()
|
||||
end,
|
||||
onenabled=function()
|
||||
return app.activeSprite ~= nil
|
||||
end
|
||||
}
|
||||
-- New menu UI elements
|
||||
plugin:newMenuSeparator{
|
||||
group="layer_popup_merge"
|
||||
}
|
||||
|
||||
plugin:newMenuSeparator{
|
||||
group="layer_popup_merge"
|
||||
}
|
||||
plugin:newMenuSeparator{
|
||||
group="layer_merge"
|
||||
}
|
||||
|
||||
plugin:newMenuSeparator{
|
||||
group="layer_merge"
|
||||
}
|
||||
plugin:newMenuGroup{
|
||||
id="abase_layer_settings",
|
||||
title="Advanced Export",
|
||||
group="layer_merge",
|
||||
}
|
||||
|
||||
plugin:newMenuGroup{
|
||||
id="abase_layer_settings",
|
||||
title="Advanced Export",
|
||||
group="layer_merge",
|
||||
}
|
||||
plugin:newMenuGroup{
|
||||
id="abase_layer_settings_popup",
|
||||
title="Advanced Export",
|
||||
group="layer_popup_merge",
|
||||
}
|
||||
|
||||
plugin:newMenuGroup{
|
||||
id="abase_layer_settings_popup",
|
||||
title="Advanced Export",
|
||||
group="layer_popup_merge",
|
||||
}
|
||||
-- Menu plumbing for export command
|
||||
plugin:newCommand{
|
||||
id="ABASEExportSpritesheetAdvanced",
|
||||
title="Export Spritesheet (Advanced)",
|
||||
group="file_export_1",
|
||||
onclick=cmd.ExportSpritesheetAdvanced,
|
||||
onenabled=function()
|
||||
return app.activeSprite ~= nil
|
||||
end,
|
||||
}
|
||||
|
||||
plugin:newCommand{
|
||||
id="ABASEToggleIgnoreLayer",
|
||||
title="Toggle Ignore",
|
||||
group="abase_layer_settings",
|
||||
onclick=function()
|
||||
cmd.ToggleIgnore()
|
||||
end
|
||||
}
|
||||
-- Menu plumbing for ToggleIgnore
|
||||
plugin:newCommand{
|
||||
id="ABASEToggleIgnoreLayer",
|
||||
title="Toggle Ignore",
|
||||
group="abase_layer_settings",
|
||||
onclick=cmd.ToggleIgnore,
|
||||
}
|
||||
|
||||
plugin:newCommand{
|
||||
id="ABASEToggleIgnoreLayerPopup",
|
||||
title="Toggle Ignore",
|
||||
group="abase_layer_settings_popup",
|
||||
onclick=function()
|
||||
cmd.ToggleIgnore()
|
||||
end
|
||||
}
|
||||
plugin:newCommand{
|
||||
id="ABASEToggleIgnoreLayerPopup",
|
||||
title="Toggle Ignore",
|
||||
group="abase_layer_settings_popup",
|
||||
onclick=cmd.ToggleIgnore,
|
||||
}
|
||||
|
||||
plugin:newCommand{
|
||||
id="ABASEToggleExportAsSprite",
|
||||
title="Toggle Merge Group",
|
||||
group="abase_layer_settings",
|
||||
onclick=function()
|
||||
if app.layer.isGroup then
|
||||
cmd.ToggleExportAsSprite()
|
||||
end
|
||||
end,
|
||||
onenabled=function()
|
||||
return app.layer.isGroup
|
||||
end
|
||||
}
|
||||
-- Menu plumbing for ToggleExportAsSprite
|
||||
plugin:newCommand{
|
||||
id="ABASEToggleExportAsSprite",
|
||||
title="Toggle Merge Group",
|
||||
group="abase_layer_settings",
|
||||
onclick=cmd.ToggleExportAsSprite,
|
||||
onenabled=IsLayerSelectionMergable,
|
||||
}
|
||||
|
||||
plugin:newCommand{
|
||||
id="ABASEToggleExportAsSpritePopup",
|
||||
title="Toggle Merge Group",
|
||||
group="abase_layer_settings_popup",
|
||||
onclick=function()
|
||||
if app.layer.isGroup then
|
||||
cmd.ToggleExportAsSprite()
|
||||
end
|
||||
end,
|
||||
onenabled=function()
|
||||
return app.layer.isGroup
|
||||
end
|
||||
}
|
||||
plugin:newCommand{
|
||||
id="ABASEToggleExportAsSpritePopup",
|
||||
title="Toggle Merge Group",
|
||||
group="abase_layer_settings_popup",
|
||||
onclick=cmd.ToggleExportAsSprite,
|
||||
onenabled=IsLayerSelectionMergable,
|
||||
}
|
||||
|
||||
app.events:on(
|
||||
"aftercommand",
|
||||
function(ev)
|
||||
if (ev.name == "NewLayer") then
|
||||
listeners.RecolorLayers()
|
||||
end
|
||||
end
|
||||
)
|
||||
-- Event hooks
|
||||
app.events:on(
|
||||
"aftercommand",
|
||||
function(ev)
|
||||
if (ev.name == "NewLayer") then
|
||||
listeners.RecolorLayers()
|
||||
end
|
||||
end
|
||||
)
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue