Skip to content

Instantly share code, notes, and snippets.

View dacap's full-sized avatar
🎨
Programming

David Capello dacap

🎨
Programming
View GitHub Profile
@dacap
dacap / New Tilemap.lua
Created June 13, 2022 14:00
Creates a new tilemap layer with one tile per grid cell
local spr = app.activeSprite
if not spr then
return app.alert "You need to create a sprite first"
end
app.transaction(
function()
app.command.NewLayer{ name="Tilemap", tilemap=true }
local grid = spr.gridBounds
for y=grid.y,spr.height,grid.width do
for x=grid.x,spr.width,grid.width do
@dacap
dacap / Trigger Tag.lua
Created April 11, 2022 00:00
Assign a key to play a tag named "TagName"
local spr = app.activeSprite
if not spr then return end
for _,t in ipairs(spr.tags) do
if t.name == "TagName" then
local old_play_once = app.preferences.editor.play_once
local old_play_all = app.preferences.editor.play_all
app.activeFrame = t.fromFrame
app.preferences.editor.play_once = true
local spr = app.activeSprite
if not spr then return end
local r = app.range
app.transaction(
function()
local oldActiveLayer = app.activeLayer
local oldActiveFrame = app.activeFrame
local deltaFrames = 0
local spr = app.activeSprite
if not spr then return end
app.transaction(
function()
local oldActiveLayer = app.activeLayer
local oldActiveFrame = app.activeFrame
local deltaFrames = 0
for i = #spr.frames,1,-1 do
local frame = spr.frames[i]
@dacap
dacap / Jump Tag Backward.lua
Created March 30, 2022 15:10
Aseprite scripts to jump between tags keeping the relative local frame
local spr = app.activeSprite
local tag = app.activeTag
local fr = app.activeFrame
if not spr or not tag then return end
local relativeFr = fr.frameNumber - tag.fromFrame.frameNumber
local function clamp(x, min, max)
if x < min then
return min
@dacap
dacap / script_filename.lua
Created January 13, 2022 11:18
Get the current Lua script filename
function script_filename()
local source = debug.getinfo(2, "S").source
if source:sub(1, 1) == "@" then
return source:sub(2)
else
return ""
end
end
@dacap
dacap / Increment Revision And Save.lua
Created October 16, 2021 14:34
Increments the revision of the file and saves it
-- E.g. if the filename is called "spriteR1.png", it will rename it to "spriteR2.png" and save it.
local spr = app.activeSprite
if not spr then return app.alert "No active sprite" end
local pt = app.fs.filePathAndTitle(spr.filename)
local ext = app.fs.fileExtension(spr.filename)
-- New filename replacing the revision number at the end with its
-- incremented version
@dacap
dacap / Switch Refer to.lua
Created July 16, 2021 12:22
Script to switch the "Refer To" option for floodfill-like tools
local toolPref = app.preferences.tool(app.activeTool)
if toolPref.floodfill.refer_to == 1 then
toolPref.floodfill.refer_to = 0
else
toolPref.floodfill.refer_to = 1
end
@dacap
dacap / Export Tileset.lua
Created June 9, 2021 22:04
Export tileset
if TilesetMode == nil then return app.alert "Use Aseprite v1.3" end
local lay = app.activeLayer
if not lay.isTilemap then return app.alert "No active tilemap layer" end
local tileset = lay.tileset
local dlg = Dialog("Export Tileset")
dlg:file{ id="file", label="Export to File:", save=true, focus=true,
filename=app.fs.joinPath(app.fs.filePath(lay.sprite.filename),
@dacap
dacap / Merge Down with Name Of Top Layer.lua
Created May 30, 2021 23:34
Alternative Merge Down version where the resulting layer has the name of the top layer
local lay = app.activeLayer
if not lay then return app.alert "There is no active layer" end
app.transaction(
function()
local name = app.activeLayer.name
app.command.MergeDownLayer()
app.activeLayer.name = name
end)