-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathLayer Border.lua
More file actions
48 lines (40 loc) · 1.39 KB
/
Layer Border.lua
File metadata and controls
48 lines (40 loc) · 1.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
dofile("./.lib/invokeScript.lua")
dofile("./.lib/findOrCreateLayer.lua")
dofile("./.lib/removeImageOverlap.lua")
dofile("./.lib/outlineImage.lua")
dofile("./.lib/mergeImages.lua")
invokeScript(
function()
local dialog = Dialog()
dialog:color({ id = "borderColor", label = "Border Color", color = Color{ r = 0, g = 0, b = 0, a = 255 } })
dialog:button({ id = "cancel", text = "Cancel" })
dialog:button({ id = "ok", text = "OK" })
dialog:show()
return dialog.data
end,
function(sprite, frame, settings)
local border = findOrCreateLayer(sprite, "Layer Border")
local cel = sprite:newCel(border, frame.frameNumber)
local outline = Image(sprite.width, sprite.height, sprite.colorMode)
local drawCel = function (image, cel)
if cel ~= nil then
local celImage = Image(image.width, image.height, image.colorMode)
celImage:drawImage(cel.image, cel.position)
removeImageOverlap(image, celImage)
mergeImages(image, outlineImage(celImage, settings.borderColor))
end
end
for k,layer in ipairs(sprite.layers) do
if layer ~= border then
if layer.isGroup then
for j,sublayer in ipairs(layer.layers) do
drawCel(outline, sublayer:cel(frame.frameNumber))
end
else
drawCel(outline, layer:cel(frame.frameNumber))
end
end
end
cel.image = outline
end
)