diff options
Diffstat (limited to 'src/lua/modules/time')
-rw-r--r-- | src/lua/modules/time/je_lua_time.cpp | 70 | ||||
-rw-r--r-- | src/lua/modules/time/je_lua_time.h | 14 | ||||
-rw-r--r-- | src/lua/modules/time/je_lua_timer.cpp | 132 | ||||
-rw-r--r-- | src/lua/modules/time/je_lua_timer.h | 20 |
4 files changed, 0 insertions, 236 deletions
diff --git a/src/lua/modules/time/je_lua_time.cpp b/src/lua/modules/time/je_lua_time.cpp deleted file mode 100644 index cd49978..0000000 --- a/src/lua/modules/time/je_lua_time.cpp +++ /dev/null @@ -1,70 +0,0 @@ -#include "SDL2/SDL.h" -#include "common/je_lua_common.h" -#include "common/je_lua_object.h" -#include "libjin/jin.h" - -#include "je_lua_timer.h" - -using namespace JinEngine::Time; - -namespace JinEngine -{ - namespace Lua - { - - static struct - { - float previous; - float current; - } context; - - LUA_IMPLEMENT int l_sec(lua_State* L) - { - luax_pushnumber(L, getSecond()); - return 1; - } - - LUA_IMPLEMENT int l_sleep(lua_State* L) - { - double sec = luax_checknumber(L, 1); - sleep(sec * 1000.0f); - return 0; - } - - LUA_IMPLEMENT int l_newTimer(lua_State* L) - { - Shared* shrTimer = new Shared(new Timer()); - luax_newinstance(L, Jin_Lua_Timer, shrTimer); - return 1; - } - - LUA_IMPLEMENT int l_getDelta(lua_State* L) - { - luax_pushnumber(L, context.current - context.previous); - return 1; - } - - LUA_IMPLEMENT int l_step(lua_State* L) - { - context.previous = context.current; - context.current = getSecond(); - return 0; - } - - LUA_EXPORT int luaopen_time(lua_State* L) - { - luaopen_Timer(L); - luaL_Reg methods[] = { - { "second", l_sec }, - { "sleep", l_sleep }, - { "newTimer", l_newTimer }, - { "step", l_step }, - { "getDelta", l_getDelta }, - { 0, 0 }, - }; - luax_newlib(L, methods); - return 1; - } - - } // namespace Lua -} // namespace JinEngine
\ No newline at end of file diff --git a/src/lua/modules/time/je_lua_time.h b/src/lua/modules/time/je_lua_time.h deleted file mode 100644 index 3c75221..0000000 --- a/src/lua/modules/time/je_lua_time.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef __JE_LUA_TIME_H__ -#define __JE_LUA_TIME_H__ - -namespace JinEngine -{ - namespace Lua - { - - int luaopen_time(lua_State* L); - - } -} - -#endif
\ No newline at end of file diff --git a/src/lua/modules/time/je_lua_timer.cpp b/src/lua/modules/time/je_lua_timer.cpp deleted file mode 100644 index e30baab..0000000 --- a/src/lua/modules/time/je_lua_timer.cpp +++ /dev/null @@ -1,132 +0,0 @@ -#include "common/je_lua_callback.h" -#include "common/je_lua_common.h" -#include "je_lua_timer.h" - -using namespace JinEngine::Time; - -namespace JinEngine -{ - namespace Lua - { - - const char* Jin_Lua_Timer = "Timer"; - - const char* Jin_Lua_Handler = "Handler"; - - static Timer::TimerCallback timerCallback = [](void* data)->void - { - LuaCallback* func = static_cast<LuaCallback*>(data); - func->call(); - }; - - static Timer::FinishCallback finishCallback = [](void* data)->void - { - LuaCallback* func = static_cast<LuaCallback*>(data); - delete func; - }; - - LUA_IMPLEMENT inline Timer* checkTimer(lua_State* L) - { - LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Timer); - return luaObj->getObject<Timer>(); - } - - // timer:every(time, callback, parameter) - LUA_IMPLEMENT int l_every(lua_State* L) - { - int n = luax_gettop(L); - Timer* shared = checkTimer(L); - float s = luax_checknumber(L, 2); - LuaCallback* func = new LuaCallback(L); - func->setFunc(3); - for(int i = 4; i <= n; ++i) - func->pushParam(i); - Timer::Handler* handler = shared->every(s, timerCallback, func, finishCallback); - Shared* shrHandler = new Shared(handler); - LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Handler, shrHandler); - return 1; - } - - // timer:after(time, callback, parameter) - LUA_IMPLEMENT int l_after(lua_State* L) - { - int n = luax_gettop(L); - Timer* shared = checkTimer(L); - float s = luax_checknumber(L, 2); - LuaCallback* func = new LuaCallback(L); - func->setFunc(3); - for (int i = 4; i <= n; ++i) - func->pushParam(i); - Timer::Handler* handler = shared->after(s, timerCallback, func, finishCallback); - Shared* shrHandler = new Shared(handler); - LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Handler, shrHandler); - return 1; - } - - // timer:repeat(time, callback, parameter) - LUA_IMPLEMENT int l_repeat(lua_State* L) - { - int n = luax_gettop(L); - Timer* shared = checkTimer(L); - float s = luax_checknumber(L, 2); - int count = luax_checkinteger(L, 3); - LuaCallback* func = new LuaCallback(L); - func->setFunc(4); - for (int i = 5; i <= n; ++i) - func->pushParam(i); - Timer::Handler* handler = shared->repeat(s, count, timerCallback, func, finishCallback); - Shared* shrHandler = new Shared(handler); - LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Handler, shrHandler); - return 1; - } - - LUA_IMPLEMENT int l_update(lua_State* L) - { - Timer* shared = checkTimer(L); - float s = luax_checknumber(L, 2); - shared->update(s); - return 0; - } - - LUA_IMPLEMENT int l_cancel(lua_State* L) - { - LuaObject* p = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Timer); - Timer* timer = p->getObject<Timer>(); - LuaObject* ph = (LuaObject*)luax_checktype(L, 2, Jin_Lua_Handler); - Timer::Handler* handler = ph->getObject<Timer::Handler>(); - timer->cancel(handler); - return 0; - } - - LUA_IMPLEMENT int l_cancelAll(lua_State* L) - { - LuaObject* p = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Timer); - Timer* timer = p->getObject<Timer>(); - timer->cancelAll(); - return 0; - } - - LUA_IMPLEMENT int l_gc(lua_State* L) - { - LuaObject* p = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Timer); - p->release(); - return 0; - } - - LUA_EXPORT void luaopen_Timer(lua_State* L) - { - luaL_Reg methods[] = { - { "__gc", l_gc }, - { "every", l_every }, - { "after", l_after }, - { "duplicate", l_repeat }, - { "update", l_update }, - { "cancel", l_cancel }, - { "cancelAll", l_cancelAll }, - { 0, 0 } - }; - luax_newtype(L, Jin_Lua_Timer, methods); - } - - } -}
\ No newline at end of file diff --git a/src/lua/modules/time/je_lua_timer.h b/src/lua/modules/time/je_lua_timer.h deleted file mode 100644 index 35ec15d..0000000 --- a/src/lua/modules/time/je_lua_timer.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef __JE_LUA_TIMER_H__ -#define __JE_LUA_TIMER_H__ - -#include "libjin/jin.h" - -namespace JinEngine -{ - namespace Lua - { - - extern const char* Jin_Lua_Timer; - - extern const char* Jin_Lua_Handler; - - void luaopen_Timer(lua_State* L); - - } -} - -#endif
\ No newline at end of file |