mirror of
https://github.com/aseprite/aseprite.git
synced 2025-04-16 05:42:32 +00:00
[lua] Add Tag.color property (fix https://github.com/aseprite/api/issues/24)
This commit is contained in:
parent
9f88508083
commit
28248bf228
@ -1,5 +1,5 @@
|
|||||||
// Aseprite
|
// Aseprite
|
||||||
// Copyright (C) 2018-2019 Igara Studio S.A.
|
// Copyright (C) 2018-2020 Igara Studio S.A.
|
||||||
//
|
//
|
||||||
// This program is distributed under the terms of
|
// This program is distributed under the terms of
|
||||||
// the End-User License Agreement for Aseprite.
|
// the End-User License Agreement for Aseprite.
|
||||||
@ -10,6 +10,6 @@
|
|||||||
|
|
||||||
// Increment this value if the scripting API is modified between two
|
// Increment this value if the scripting API is modified between two
|
||||||
// released Aseprite versions.
|
// released Aseprite versions.
|
||||||
#define API_VERSION 9
|
#define API_VERSION 10
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
// Aseprite
|
// Aseprite
|
||||||
// Copyright (C) 2018-2019 Igara Studio S.A.
|
// Copyright (C) 2018-2020 Igara Studio S.A.
|
||||||
// Copyright (C) 2018 David Capello
|
// Copyright (C) 2018 David Capello
|
||||||
//
|
//
|
||||||
// This program is distributed under the terms of
|
// This program is distributed under the terms of
|
||||||
@ -10,6 +10,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "app/cmd/set_tag_anidir.h"
|
#include "app/cmd/set_tag_anidir.h"
|
||||||
|
#include "app/cmd/set_tag_color.h"
|
||||||
#include "app/cmd/set_tag_name.h"
|
#include "app/cmd/set_tag_name.h"
|
||||||
#include "app/cmd/set_tag_range.h"
|
#include "app/cmd/set_tag_range.h"
|
||||||
#include "app/script/docobj.h"
|
#include "app/script/docobj.h"
|
||||||
@ -82,6 +83,20 @@ int Tag_get_aniDir(lua_State* L)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int Tag_get_color(lua_State* L)
|
||||||
|
{
|
||||||
|
auto tag = get_docobj<Tag>(L, 1);
|
||||||
|
doc::color_t docColor = tag->color();
|
||||||
|
app::Color appColor = app::Color::fromRgb(doc::rgba_getr(docColor),
|
||||||
|
doc::rgba_getg(docColor),
|
||||||
|
doc::rgba_getb(docColor),
|
||||||
|
doc::rgba_geta(docColor));
|
||||||
|
if (appColor.getAlpha() == 0)
|
||||||
|
appColor = app::Color::fromMask();
|
||||||
|
push_obj<app::Color>(L, appColor);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
int Tag_set_fromFrame(lua_State* L)
|
int Tag_set_fromFrame(lua_State* L)
|
||||||
{
|
{
|
||||||
auto tag = get_docobj<Tag>(L, 1);
|
auto tag = get_docobj<Tag>(L, 1);
|
||||||
@ -127,6 +142,16 @@ int Tag_set_aniDir(lua_State* L)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int Tag_set_color(lua_State* L)
|
||||||
|
{
|
||||||
|
auto tag = get_docobj<Tag>(L, 1);
|
||||||
|
doc::color_t docColor = convert_args_into_pixel_color(L, 2, doc::IMAGE_RGB);
|
||||||
|
Tx tx;
|
||||||
|
tx(new cmd::SetTagColor(tag, docColor));
|
||||||
|
tx.commit();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
const luaL_Reg Tag_methods[] = {
|
const luaL_Reg Tag_methods[] = {
|
||||||
{ "__eq", Tag_eq },
|
{ "__eq", Tag_eq },
|
||||||
{ nullptr, nullptr }
|
{ nullptr, nullptr }
|
||||||
@ -139,6 +164,7 @@ const Property Tag_properties[] = {
|
|||||||
{ "frames", Tag_get_frames, nullptr },
|
{ "frames", Tag_get_frames, nullptr },
|
||||||
{ "name", Tag_get_name, Tag_set_name },
|
{ "name", Tag_get_name, Tag_set_name },
|
||||||
{ "aniDir", Tag_get_aniDir, Tag_set_aniDir },
|
{ "aniDir", Tag_get_aniDir, Tag_set_aniDir },
|
||||||
|
{ "color", Tag_get_color, Tag_set_color },
|
||||||
{ nullptr, nullptr, nullptr }
|
{ nullptr, nullptr, nullptr }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user