Seleção
As formas de seleção se combinam com a seleção atual (substituir, adicionar, subtrair, intersectar). A máscara de seleção pode ser lida e escrita. (19 funções)
app.canReselect() — lê
Indica se app.reselect() tem uma seleção anterior para restaurar.
Retorna (boolean): true se houver.
app.deselect() — altera
Limpa a seleção (Seleção ▸ Desmarcar); os comandos de desenho passam então a pintar em qualquer lugar. app.reselect() a traz de volta.
Não retorna nada.
app.enterQuickMask() — altera, desfazível
Liga a máscara rápida: a seleção vira uma máscara que você pinta, e nada fica selecionado. Enquanto está ligada, as funções de desenho pintam a máscara quando você passa "quickMask" como layerId e frameId (qualquer cor adiciona, tinta transparente remove); todo o resto que mudaria o sprite é recusado até app.exitQuickMask().
Não retorna nada.
app.exitQuickMask() — altera, desfazível
Desliga a máscara rápida: cada pixel da máscara com metade da opacidade ou mais vira a seleção.
Não retorna nada.
app.getSelection() — lê
A seleção atual como { x, y, width, height, mask }, ou nil se nada estiver selecionado. mask é uma lista plana de 0/1 sobre os limites (em ordem de linhas: (px, py) no índice py*width + px + 1), incluída quando os limites contêm no máximo 262144 pixels; para seleções maiores, leia-a em partes com app.getSelectionMask.
Retorna (table): Tabela de seleção ou nil.
app.getSelectionBounds() — lê
O { x, y, width, height } da seleção atual, ou nil se nada estiver selecionado.
Retorna (table): { x, y, width, height } ou nil.
app.getSelectionMask(x, y, width, height) — lê
Quais pixels de um retângulo em coordenadas do sprite estão selecionados, como uma lista plana de 0/1 (em ordem de linhas: (px, py) no índice py*width + px + 1). Tudo 0 quando nada está selecionado. No máximo 262144 pixels por chamada.
x(number)y(number)width(number)height(number)
Retorna (table): Lista plana de 0/1.
app.isSelected(x, y) — lê
Indica se o pixel (x, y) do sprite está dentro da seleção atual (false quando nada está selecionado).
x(number)y(number)
Retorna (boolean): true se estiver selecionado.
app.magicWand(layerId, frameId, points, opts?) — altera, desfazível
Seleciona os pixels que correspondem à cor sob cada ponto em uma camada, com todas as regiões em uma única seleção, exatamente como a varinha mágica da interface (um clique ou um arraste).
layerId(string)frameId(string)points(table) — Lista de pontos { x = n, y = n } (ou { n, n }), de 1 a 1024: { { x = 3, y = 4 } } seleciona uma região, como um clique; com vários, a região de cada ponto entra em uma única seleção, como um arraste.opts(table, opcional)mode(SelectionCombineMode: "replace" | "add" | "subtract" | "intersect"; padrão "replace") — Como a nova forma se combina com a seleção atual.tolerance(integer 0–255; padrão context.wandTolerance) — A maior diferença de cor por canal que ainda conta como correspondência.contiguous(boolean; padrão context.wandFillMode (true para o modo contíguo do contexto, false para global)) — Apenas a região conectada (true) ou todos os pixels correspondentes na tela (false).diagonal(boolean; padrão context.wandDiagonal) — Somente contíguo: também se espalha para vizinhos diagonais (8 conectados), então a região vaza por linhas diagonais de 1px.stopAtGrid(boolean; padrão context.wandStopAtGrid) — Limita a região à célula da grade em que o clique cai (a célula de uma grade isométrica é o losango que ela desenha, com os pixels de linha das suas duas bordas superiores).
Não retorna nada.
app.modifySelection(op, amount, opts?) — altera, desfazível
Expande, contrai ou contorna a seleção, recortada pela tela, exatamente como Seleção > Modificar. A borda da tela conta como a borda da seleção.
op(SelectionModifyOp: "expand" | "contract" | "border")amount(number) — Pixels, de 1 a 256.opts(table, opcional)shape(SelectionModifyShape: "circle" | "square"; padrão "circle") — Como a distância até a borda é medida.
Não retorna nada.
app.reselect() — altera
Restaura a seleção não vazia mais recente (Seleção ▸ Selecionar novamente). Lança um erro se não houver nenhuma; verifique com app.canReselect().
Não retorna nada.
app.selectAll() — altera, desfazível
Seleciona a tela inteira.
Não retorna nada.
app.selectEllipse(x0, y0, x1, y1, opts?) — altera, desfazível
Seleciona a elipse inscrita na caixa definida pelos dois cantos, exatamente como a ferramenta de seleção elíptica da interface.
x0(number) — Primeiro canto.y0(number)x1(number) — Canto oposto (inclusivo).y1(number)opts(table, opcional)mode(SelectionCombineMode: "replace" | "add" | "subtract" | "intersect"; padrão "replace") — Como a nova forma se combina com a seleção atual.
Não retorna nada.
app.selectGridCells(x0, y0, x1, y1, opts?) — altera, desfazível
Seleciona células inteiras da grade do sprite (retangular, isométrica ou hexagonal): cada célula que contém um pixel da caixa entre os dois pontos, exatamente como um clique duplo (e arrasto) com uma ferramenta de seleção da interface.
x0(number) — Um pixel na primeira célula.y0(number)x1(number) — Um pixel na última célula (o mesmo ponto de novo seleciona uma única célula).y1(number)opts(table, opcional)mode(SelectionCombineMode: "replace" | "add" | "subtract" | "intersect"; padrão "replace") — Como a nova forma se combina com a seleção atual.
Não retorna nada.
app.selectInverse() — altera, desfazível
Inverte a seleção atual dentro dos limites da tela.
Não retorna nada.
app.selectLayerPixels(layerId, frameId, opts?) — altera, desfazível
Seleciona os pixels pintados (ou, com transparent = true, não pintados) de uma camada em um quadro, exatamente como Seleção > Selecionar opacos / Selecionar transparentes e Alt+clique em uma camada da linha do tempo.
layerId(string) — Um grupo seleciona os pixels de todas as camadas dentro dele.frameId(string)opts(table, opcional)mode(SelectionCombineMode: "replace" | "add" | "subtract" | "intersect"; padrão "replace") — Como a nova forma se combina com a seleção atual.transparent(boolean; padrão false) — Seleciona os pixels sem tinta em vez dos pintados.
Não retorna nada.
app.selectPolygon(vertices, opts?) — altera, desfazível
Seleciona o interior (e o contorno) do polígono fechado que passa pelos vértices, exatamente como o laço / laço poligonal da interface.
vertices(table) — Lista de vértices { x = n, y = n } (ou { n, n }); o polígono se fecha de volta ao primeiro automaticamente. Cobre tanto o laço quanto o laço poligonal.opts(table, opcional)mode(SelectionCombineMode: "replace" | "add" | "subtract" | "intersect"; padrão "replace") — Como a nova forma se combina com a seleção atual.
Não retorna nada.
app.selectRectangle(x0, y0, x1, y1, opts?) — altera, desfazível
Seleciona o retângulo definido pelos dois cantos, exatamente como a ferramenta de seleção retangular da interface (radius arredonda seus cantos).
x0(number) — Primeiro canto.y0(number)x1(number) — Canto oposto (inclusivo).y1(number)opts(table, opcional)mode(SelectionCombineMode: "replace" | "add" | "subtract" | "intersect"; padrão "replace") — Como a nova forma se combina com a seleção atual.radius(an integer 0–1024 for every corner, or a list of four { topLeft, topRight, bottomRight, bottomLeft }; padrão context.selectionCornerRadius) — Arredonda os cantos, em pixels (0 = reto): um raio para os quatro, ou um por canto no sentido horário a partir do canto superior esquerdo. Cada um é limitado à metade do lado menor.
Não retorna nada.
app.setSelection(x, y, width, height, mask?) — altera, desfazível
Substitui a seleção por um retângulo, ou por qualquer forma via mask.
x(number)y(number)width(number)height(number)mask(table, opcional) — Lista plana de 0/1 (width*height, em ordem de linhas, o formato que app.getSelection retorna) que seleciona apenas esses pixels do retângulo; omitida = o retângulo inteiro.
Não retorna nada.
Em Markdown: selection.md.