mirror of
https://github.com/space-syndicate/space-station-14.git
synced 2026-10-09 10:21:18 +03:00
[Aseprite Tool] Add Copy Displaced To New Canvas Button (#41614)
Add Copy Displaced To New Canvas button Co-authored-by: TrixxedHeart <46364955+TrixxedBit@users.noreply.github.com>
This commit is contained in:
parent
2e35342b7b
commit
dfd42624f2
1 changed files with 38 additions and 0 deletions
|
|
@ -266,4 +266,42 @@ dialog:color{
|
|||
end
|
||||
}
|
||||
|
||||
dialog:button{
|
||||
id = "save-displaced",
|
||||
text = "Copy Displaced Sprite To New Canvas",
|
||||
onclick = function(ev)
|
||||
local layerDisplacement = findLayer(sprite, dialog.data["displacement-select"])
|
||||
local layerTarget = findLayer(sprite, dialog.data["reference-select"])
|
||||
if not layerDisplacement or not layerTarget then
|
||||
app.alert("Select both displacement and reference layers!")
|
||||
return
|
||||
end
|
||||
|
||||
local celDisplacement = layerDisplacement:cel(1)
|
||||
local celTarget = layerTarget:cel(1)
|
||||
if not celDisplacement or not celTarget then
|
||||
app.alert("Selected layers must have a cel in the first frame!")
|
||||
return
|
||||
end
|
||||
|
||||
local displacedImage = applyDisplacementMap(
|
||||
sprite.width, sprite.height,
|
||||
celDisplacement,
|
||||
celTarget
|
||||
)
|
||||
|
||||
local newSprite = Sprite(sprite.width, sprite.height, sprite.colorMode)
|
||||
if sprite.colorMode == ColorMode.INDEXED then
|
||||
for i=0,sprite.palettes[1].size-1 do
|
||||
newSprite.palettes[1]:setColor(i, sprite.palettes[1]:getColor(i))
|
||||
end
|
||||
end
|
||||
|
||||
local newLayer = newSprite.layers[1]
|
||||
local newCel = newLayer:cel(1)
|
||||
newCel.image:drawImage(displacedImage, 0, 0)
|
||||
app.activeSprite = newSprite
|
||||
end
|
||||
}
|
||||
|
||||
dialog:show{wait = false}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue