diff options
Diffstat (limited to 'src/lua/modules/graphics/je_lua_sprite.cpp')
-rw-r--r-- | src/lua/modules/graphics/je_lua_sprite.cpp | 45 |
1 files changed, 34 insertions, 11 deletions
diff --git a/src/lua/modules/graphics/je_lua_sprite.cpp b/src/lua/modules/graphics/je_lua_sprite.cpp index af1ac60..511f877 100644 --- a/src/lua/modules/graphics/je_lua_sprite.cpp +++ b/src/lua/modules/graphics/je_lua_sprite.cpp @@ -2,6 +2,7 @@ #include "lua/modules/types.h" #include "lua/common/je_lua_common.h" #include "libjin/jin.h" +#include "je_lua_sprite.h" using namespace JinEngine::Graphics; using namespace JinEngine::Graphics::Shaders; @@ -11,13 +12,6 @@ namespace JinEngine namespace Lua { - // Sprite dependency slots. - enum SpriteDependency - { - DEP_GRAPHIC = 1, - DEP_SHADER = 2, - }; - typedef Shared<Sprite>& SharedSprite; LUA_IMPLEMENT inline SharedSprite checkSprite(lua_State* L) @@ -66,8 +60,8 @@ namespace JinEngine LUA_IMPLEMENT int l_setPosition(lua_State* L) { SharedSprite sprite = checkSprite(L); - int x = luax_checkinteger(L, 2); - int y = luax_checkinteger(L, 3); + float x = luax_checknumber(L, 2); + float y = luax_checknumber(L, 3); sprite->setPosition(x, y); return 0; } @@ -98,7 +92,7 @@ namespace JinEngine Proxy* proxy = (Proxy*)luax_checktype(L, 2, JIN_GRAPHICS_SHADER); Shader* shader = proxy->getObject<Shader>(); sprite->setShader(shader); - sprite.setDependency(SpriteDependency::DEP_SHADER, &proxy->getShared<Shader>()); + sprite.setDependency((int)SpriteDependency::DEP_SHADER, &proxy->getShared<Shader>()); return 0; } @@ -114,11 +108,37 @@ namespace JinEngine if (p != nullptr) { sprite->setGraphic(p->getObject<Graphic>()); - sprite.setDependency(SpriteDependency::DEP_GRAPHIC, &p->getShared<Graphic>()); + sprite.setDependency((int)SpriteDependency::DEP_GRAPHIC, &p->getShared<Graphic>()); } return 0; } + LUA_IMPLEMENT int l_move(lua_State* L) + { + SharedSprite sprite = checkSprite(L); + float x = luax_checknumber(L, 2); + float y = luax_checknumber(L, 3); + sprite->move(x, y); + return 0; + } + + LUA_IMPLEMENT int l_scale(lua_State* L) + { + SharedSprite sprite = checkSprite(L); + float sx = luax_checknumber(L, 2); + float sy = luax_checknumber(L, 3); + sprite->scale(sx, sy); + return 0; + } + + LUA_IMPLEMENT int l_rotate(lua_State* L) + { + SharedSprite sprite = checkSprite(L); + float r = luax_checknumber(L, 2); + sprite->rotate(r); + return 0; + } + LUA_IMPLEMENT int l_getRotation(lua_State* L) { SharedSprite sprite = checkSprite(L); @@ -184,6 +204,9 @@ namespace JinEngine { "setColor", l_setColor }, { "setShader", l_setShader }, { "setGraphic", l_setGraphic }, + { "move", l_move }, + { "scale", l_scale }, + { "rotate", l_rotate }, { "getRotation", l_getRotation }, { "getPosition", l_getPosition }, { "getOrigin", l_getOrigin }, |