Add color-coding for merged and ignored layers.

This commit is contained in:
Anna Rose 2024-07-29 23:02:33 -04:00
parent 02e0c89562
commit ec8e131829
2 changed files with 51 additions and 2 deletions

View File

@ -1,6 +1,52 @@
-- New commands to be executed via Aseprite menus / keyboard shortcuts
local sprt = require "abase-sprite"
local BASE_COLOR = Color {
r = 0,
g = 0,
b = 0,
a = 0
}
local IGNORE_COLOR = Color {
gray = 100
}
local IGNORE_SUBCOLOR = Color {
gray = 150
}
local MERGE_COLOR = Color {
r = 200,
g = 200,
b = 0
}
local MERGE_SUBCOLOR = Color {
r = 200,
g = 200,
b = 128
}
-- set the color of a layer and its sublayers
local function setColor(layer, subColor)
if (layer.properties(extKey).ignored) then
layer.color = IGNORE_COLOR
subColor = IGNORE_SUBCOLOR
elseif subColor == IGNORE_SUBCOLOR then
layer.color = subColor
elseif (layer.properties(extKey).exportedAsSprite) then
layer.color = MERGE_COLOR
subColor = MERGE_SUBCOLOR
elseif subColor == MERGE_SUBCOLOR then
layer.color = subColor
else
layer.color = BASE_COLOR
end
if (layer.isGroup) then
for i, sublayer in ipairs(layer.layers) do
setColor(sublayer, subColor)
end
end
end
local function ExportSpritesheetAdvanced()
if not app.sprite then
return app.alert "Must have a sprite open to export."
@ -26,6 +72,7 @@ local function ToggleIgnore()
else
layer.properties(extKey).ignored = true
end
setColor(layer)
end
local function ToggleExportAsSprite()
@ -35,6 +82,7 @@ local function ToggleExportAsSprite()
else
layer.properties(extKey).exportedAsSprite = true
end
setColor(layer)
end
local export = {
@ -42,4 +90,4 @@ local export = {
ToggleIgnore = ToggleIgnore,
ToggleExportAsSprite = ToggleExportAsSprite
}
return export
return export

View File

@ -19,7 +19,8 @@ To install, go to Aseprite's Settings -> Extensions -> Add Extension, and select
## Additional Notes
* Toggling the advanced export settings on a layer will modify the layer colors. (This may be configurable in a future update)
* Toggling the advanced export settings on a layer will modify the layer colors. If you are using layer colors for other purposes, this extension will not work well for you. (This may be configurable in a future update)
* Ignored layers always take precedence over merging; if a sublayer in a group is ignored, it will not be merged into the final sprite.
## Copyright Notice