2019-04-25 00:15:09 +00:00
|
|
|
-- Copyright (C) 2019 Igara Studio S.A.
|
|
|
|
--
|
|
|
|
-- This file is released under the terms of the MIT license.
|
|
|
|
-- Read LICENSE.txt for more information.
|
|
|
|
|
|
|
|
-- Preferences for tools
|
|
|
|
do
|
|
|
|
local t = app.preferences.tool('pencil')
|
|
|
|
assert(t.opacity == 255)
|
|
|
|
assert(t.tolerance == 0)
|
|
|
|
assert(t.contiguous == true)
|
|
|
|
assert(t.brush.type == BrushType.CIRCLE)
|
|
|
|
assert(t.brush.size == 1)
|
|
|
|
t.brush.size = 2
|
|
|
|
assert(t.brush.size == 2)
|
|
|
|
|
|
|
|
-- Getting the tool again will give us the default configuration
|
|
|
|
-- again in batch mode
|
|
|
|
t = app.preferences.tool('pencil')
|
|
|
|
assert(t.brush.size == 1)
|
|
|
|
end
|
|
|
|
|
|
|
|
-- Preferences for documents
|
|
|
|
do
|
2019-12-02 22:27:04 +00:00
|
|
|
local defPref = app.preferences.document(nil)
|
|
|
|
defPref.grid.bounds = Rectangle(0, 0, 16, 16)
|
|
|
|
|
2019-04-25 00:15:09 +00:00
|
|
|
local s = Sprite(32, 32)
|
|
|
|
local p = app.preferences.document(s)
|
2019-12-02 22:27:04 +00:00
|
|
|
assert(s.gridBounds == Rectangle(0, 0, 16, 16))
|
2019-04-25 00:15:09 +00:00
|
|
|
assert(p.grid.bounds == Rectangle(0, 0, 16, 16))
|
|
|
|
assert(p.grid.color == Color(0, 0, 255))
|
|
|
|
p.grid.color = Color(255, 0, 0)
|
|
|
|
assert(p.grid.color == Color(255, 0, 0))
|
|
|
|
end
|
2019-12-02 22:27:04 +00:00
|
|
|
|
|
|
|
-- Default & doc preferences combinations (related to https://community.aseprite.org/t/4305)
|
|
|
|
do
|
|
|
|
-- Set default preferences
|
|
|
|
local defPref = app.preferences.document(nil)
|
|
|
|
defPref.grid.bounds = Rectangle(0, 0, 10, 10)
|
|
|
|
defPref.grid.color = Color(255, 255, 0) -- White
|
|
|
|
assert(defPref.grid.bounds == Rectangle(0, 0, 10, 10))
|
|
|
|
assert(defPref.grid.color == Color(255, 255, 0))
|
|
|
|
|
|
|
|
do -- File with default preferences
|
|
|
|
local doc = Sprite(32, 32)
|
|
|
|
local docPref = app.preferences.document(doc)
|
|
|
|
assert(doc.gridBounds == Rectangle(0, 0, 10, 10))
|
|
|
|
assert(docPref.grid.bounds == Rectangle(0, 0, 10, 10))
|
|
|
|
assert(docPref.grid.color == Color(255, 255, 0))
|
|
|
|
doc:saveAs('_test_pref.png')
|
|
|
|
doc:close()
|
|
|
|
end
|
|
|
|
|
|
|
|
do -- File with specific preferences
|
|
|
|
local doc = Sprite(32, 32)
|
|
|
|
local docPref = app.preferences.document(doc)
|
|
|
|
docPref.grid.color = Color(0, 128, 0)
|
|
|
|
assert(docPref.grid.bounds == Rectangle(0, 0, 10, 10))
|
|
|
|
assert(docPref.grid.color == Color(0, 128, 0))
|
|
|
|
doc:saveAs('_test_pref2.png')
|
|
|
|
doc:close()
|
|
|
|
end
|
|
|
|
|
|
|
|
-- Now we change default preferences
|
|
|
|
defPref.grid.bounds = Rectangle(0, 0, 64, 64)
|
|
|
|
defPref.grid.color = Color(255, 0, 0) -- Red
|
|
|
|
assert(defPref.grid.bounds == Rectangle(0, 0, 64, 64))
|
|
|
|
assert(defPref.grid.color == Color(255, 0, 0))
|
|
|
|
do -- A new document should have the new default preferences
|
|
|
|
local doc = Sprite(32, 32)
|
|
|
|
local docPref = app.preferences.document(doc)
|
|
|
|
assert(docPref.grid.bounds == Rectangle(0, 0, 64, 64))
|
|
|
|
assert(docPref.grid.color == Color(255, 0, 0))
|
|
|
|
doc:close()
|
|
|
|
end
|
|
|
|
do -- The first document should have the new default preferences (because it was saved with the defaults)
|
|
|
|
|
|
|
|
-- TODO maybe related to https://community.aseprite.org/t/grid-for-new-documents/3303
|
|
|
|
-- should we get the new defaults or the values when we saved the document?
|
|
|
|
-- (e.g. even if we didn't change the grid values, it looks
|
|
|
|
-- like if the user changed something about the grid or the
|
|
|
|
-- background colors, the expected behavior would be to
|
|
|
|
-- restore the exact same colors, no the new defaults)
|
|
|
|
|
|
|
|
local doc = Sprite{ fromFile="_test_pref.png" }
|
|
|
|
local docPref = app.preferences.document(doc)
|
|
|
|
assert(docPref.grid.bounds == Rectangle(0, 0, 64, 64))
|
|
|
|
assert(docPref.grid.color == Color(255, 0, 0))
|
|
|
|
doc:close()
|
|
|
|
end
|
|
|
|
do -- The second document should have the new specific preferences for the grid color
|
|
|
|
local doc = Sprite{ fromFile="_test_pref2.png" }
|
|
|
|
local docPref = app.preferences.document(doc)
|
|
|
|
assert(docPref.grid.bounds == Rectangle(0, 0, 64, 64))
|
|
|
|
assert(docPref.grid.color == Color(0, 128, 0))
|
|
|
|
doc:close()
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
do -- Test symmetry preferences
|
|
|
|
do -- File with default preferences
|
|
|
|
local doc = Sprite(200, 100)
|
|
|
|
local docPref = app.preferences.document(doc)
|
|
|
|
assert(docPref.symmetry.x_axis == 100)
|
|
|
|
assert(docPref.symmetry.y_axis == 50)
|
|
|
|
docPref.symmetry.x_axis = 25
|
|
|
|
doc:saveAs('_test_symmetry.png')
|
|
|
|
doc:close()
|
|
|
|
end
|
|
|
|
do -- File with default preferences
|
|
|
|
local doc = Sprite{ fromFile='_test_symmetry.png' }
|
|
|
|
local docPref = app.preferences.document(doc)
|
|
|
|
assert(docPref.symmetry.x_axis == 25)
|
|
|
|
assert(docPref.symmetry.y_axis == 50)
|
|
|
|
doc:close()
|
|
|
|
end
|
|
|
|
end
|