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 / Switch Non-Active Layer Opacity.lua
Created July 3, 2023 22:50
Switch Non-Active Layer Opacity
if app.preferences.experimental.nonactive_layers_opacity == 255 then
app.preferences.experimental.nonactive_layers_opacity = 128
else
app.preferences.experimental.nonactive_layers_opacity = 255
end
@dacap
dacap / cleanEdge-shadertoy.glsl
Created December 22, 2022 18:03 — forked from torcado194/cleanEdge-shadertoy.glsl
cleanEdge, a pixel art upscaling algorithm for clean rotations
/*** MIT LICENSE
Copyright (c) 2022 torcado
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without
restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following
@dacap
dacap / New Frame Alternative.lua
Created November 28, 2022 19:07
New Frame without moving one frame tags
local s = app.activeSprite
if not s then return end
local f = app.activeFrame
local readjustTags = {}
for _,t in ipairs(s.tags) do
if t.fromFrame.frameNumber == f.frameNumber and
t.toFrame.frameNumber == f.frameNumber then
table.insert(readjustTags, t)
@dacap
dacap / Copy-Frames-From-Files.lua
Created November 11, 2020 12:30
Aseprite script to copy multiple sprites into the active one (each sprite as a layer)
local filenames = {
"/Users/david/piano00.png",
"/Users/david/drums00.png",
"/Users/david/bass00.png"
}
local spr = app.activeSprite
if not spr then return app.alert "No active sprite" end
for _,fn in ipairs(filenames) do
@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 / file.json
Created September 22, 2015 11:55
{ "frames": [
{
"filename": "file 0.ase",
"frame": { "x": 0, "y": 0, "w": 32, "h": 32 },
"rotated": false,
"trimmed": false,
"spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
"sourceSize": { "w": 32, "h": 32 },
"duration": 100
},