From ec8e131829e7bdfc2a09a15345420b8007d31351 Mon Sep 17 00:00:00 2001 From: annabunches Date: Mon, 29 Jul 2024 23:02:33 -0400 Subject: [PATCH] Add color-coding for merged and ignored layers. --- abase-commands.lua | 50 +++++++++++++++++++++++++++++++++++++++++++++- readme.md | 3 ++- 2 files changed, 51 insertions(+), 2 deletions(-) diff --git a/abase-commands.lua b/abase-commands.lua index 0d30b87..c580d77 100644 --- a/abase-commands.lua +++ b/abase-commands.lua @@ -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 \ No newline at end of file +return export diff --git a/readme.md b/readme.md index cbd2e60..fd792e4 100644 --- a/readme.md +++ b/readme.md @@ -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