Separate quick actions for paint bucket contiguous and non-contiguous

Add extra separate quick actions for paint bucket contiguous and non-contiguous operation.

I use contiguous and non-contiguous filling as distinct tools and use both frequently so when using paint bucket where they are merged as one tool with added state I always need to verify tool state prior to operation. That isn’t ideal for efficient operation.

keyboard shortcut for ‘switch contiguous fill’ won’t cut it?

i was looking for the alternative as a script, but it seems like app. command.ContiguousFill is just a switch :expressionless:

also, there should be an option to use the script to change the settings in aseprite.ini:

[tool.paint_bucket]
   contiguous = false
   opacity = 255
   ink = 0
   tolerance = 0

but when i try app.preferences.tool.paint_bucket.contiguous = true i get “attempt to index a function value (field ‘tool’)” error

alright, this is working:

local id = app.activeTool.id 
local wut = app.preferences.tool(id)
wut.contiguous = false 
app.activeTool = "paint_bucket" 

now you can have two separate scripts and assign different shortcuts to them

That doesn’t behave like a quick action though. It changes the state and leaves it changed.
Quick action changes state for the duration that the key shortcut is held restoring state on release.
Haven’t investigated if it’s possible to script quick action like behaviour.
Should certain be able to save state, perform action and restore state on key shortcut, but lose the nicety of using LMB to operate tool as normal.

indeed. but with two shortcuts you at least don’t have to “verify tool state prior to operation”. kinda not-perfect-but-better-than-nothing temporary solution.
sadly there are no mouse and keyboard listeners/events to simulate quick actions properly (also, if we could do that, then it would be nice to be able to execute scripts when aseprite starts).

A modifier key would be nice. Couldn’t it even be global across tools? That is, holding a key makes the tool do an alternate function. Like rectangle would do outline vs fill, etc