Files
tbd-station-14/Tools/SS14 Aseprite Plugins/Displacement Map Flip.lua
Southbridge 5ddf503331 Updated Aseprite Tools (#39358)
Modified aesprite tools
2025-08-28 17:44:50 -04:00

79 lines
1.8 KiB
Lua

local sprite = app.editor.sprite
local cel = app.cel
if sprite.selection.isEmpty then
print("You need to select something sorry")
return
end
local diag = Dialog{
title = "Flip Displacement Map"
}
diag:check{
id = "horizontal",
label = "flip horizontal?"
}
diag:check{
id = "vertical",
label = "flip vertical?"
}
diag:button{
text = "ok",
focus = true,
onclick = function(ev)
local horizontal = diag.data["horizontal"]
local vertical = diag.data["vertical"]
local selection = sprite.selection
local image = cel.image:clone()
for x = 0, selection.bounds.width - 1 do
for y = 0, selection.bounds.height - 1 do
local xSel = x + selection.origin.x
local ySel = y + selection.origin.y
local xImg = xSel - cel.position.x
local yImg = ySel - cel.position.y
if xImg < 0 or xImg >= image.width or yImg < 0 or yImg >= image.height then
goto continue
end
local imgValue = image:getPixel(xImg, yImg)
local color = Color(imgValue)
if horizontal then
color.red = 128 + -(color.red - 128)
end
if vertical then
color.green = 128 + -(color.green - 128)
end
image:drawPixel(
xImg,
yImg,
app.pixelColor.rgba(color.red, color.green, color.blue, color.alpha))
::continue::
end
end
cel.image = image
diag:close()
end
}
diag:button{
text = "cancel",
onclick = function(ev)
diag:close()
end
}
diag:show()