Add new layer detection to keep colors mapped correctly.
This commit is contained in:
parent
259bd1c860
commit
b9388061ab
|
@ -1,52 +1,6 @@
|
||||||
-- New commands to be executed via Aseprite menus / keyboard shortcuts
|
-- New commands to be executed via Aseprite menus / keyboard shortcuts
|
||||||
local sprt = require "abase-sprite"
|
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()
|
local function ExportSpritesheetAdvanced()
|
||||||
if not app.sprite then
|
if not app.sprite then
|
||||||
return app.alert "Must have a sprite open to export."
|
return app.alert "Must have a sprite open to export."
|
||||||
|
@ -72,7 +26,7 @@ local function ToggleIgnore()
|
||||||
else
|
else
|
||||||
layer.properties(extKey).ignored = true
|
layer.properties(extKey).ignored = true
|
||||||
end
|
end
|
||||||
setColor(layer)
|
sprt.setColor(layer)
|
||||||
end
|
end
|
||||||
|
|
||||||
local function ToggleExportAsSprite()
|
local function ToggleExportAsSprite()
|
||||||
|
@ -82,7 +36,7 @@ local function ToggleExportAsSprite()
|
||||||
else
|
else
|
||||||
layer.properties(extKey).exportedAsSprite = true
|
layer.properties(extKey).exportedAsSprite = true
|
||||||
end
|
end
|
||||||
setColor(layer)
|
sprt.setColor(layer)
|
||||||
end
|
end
|
||||||
|
|
||||||
local export = {
|
local export = {
|
||||||
|
|
14
abase-listeners.lua
Normal file
14
abase-listeners.lua
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
local sprt = require "abase-sprite"
|
||||||
|
|
||||||
|
-- recolors all layers in the current sprite
|
||||||
|
local function RecolorLayers()
|
||||||
|
for i, layer in ipairs(app.sprite.layers) do
|
||||||
|
sprt.setColor(layer)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
local export = {
|
||||||
|
RecolorLayers = RecolorLayers,
|
||||||
|
}
|
||||||
|
return export
|
|
@ -1,4 +1,28 @@
|
||||||
-- Functions for modifying a sprite
|
-- Functions for modifying a 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
|
||||||
|
}
|
||||||
|
|
||||||
-- Deletes any layers with the 'ignored' property.
|
-- Deletes any layers with the 'ignored' property.
|
||||||
local function deleteLayers(spr, layers)
|
local function deleteLayers(spr, layers)
|
||||||
for i, layer in ipairs(layers) do
|
for i, layer in ipairs(layers) do
|
||||||
|
@ -44,9 +68,35 @@ local function revealLayers(layers)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- 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 export = {
|
local export = {
|
||||||
deleteLayers = deleteLayers,
|
deleteLayers = deleteLayers,
|
||||||
flattenLayers = flattenLayers,
|
flattenLayers = flattenLayers,
|
||||||
revealLayers = revealLayers
|
revealLayers = revealLayers,
|
||||||
|
setColor = setColor,
|
||||||
}
|
}
|
||||||
return export
|
return export
|
|
@ -1,6 +1,7 @@
|
||||||
extKey = "annabunches/abase" -- this must come before we require 'abase-commands'
|
extKey = "annabunches/abase" -- this must come before we require 'abase-commands'
|
||||||
|
|
||||||
local cmd = require "abase-commands"
|
local cmd = require "abase-commands"
|
||||||
|
local listeners = require "abase-listeners"
|
||||||
|
|
||||||
function init(plugin)
|
function init(plugin)
|
||||||
plugin:newCommand{
|
plugin:newCommand{
|
||||||
|
@ -76,4 +77,13 @@ function init(plugin)
|
||||||
return app.layer.isGroup
|
return app.layer.isGroup
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
|
|
||||||
|
app.events:on(
|
||||||
|
"aftercommand",
|
||||||
|
function(ev)
|
||||||
|
if (ev.name == "NewLayer") then
|
||||||
|
listeners.RecolorLayers()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
)
|
||||||
end
|
end
|
|
@ -11,6 +11,7 @@
|
||||||
"contributes": {
|
"contributes": {
|
||||||
"scripts": [
|
"scripts": [
|
||||||
{ "path": "./advanced-spritesheet-export.lua" },
|
{ "path": "./advanced-spritesheet-export.lua" },
|
||||||
|
{ "path": "./abase-listeners.lua" },
|
||||||
{ "path": "./abase-commands.lua" },
|
{ "path": "./abase-commands.lua" },
|
||||||
{ "path": "./abase-sprite.lua" }
|
{ "path": "./abase-sprite.lua" }
|
||||||
]
|
]
|
||||||
|
|
Loading…
Reference in New Issue
Block a user