aboutsummaryrefslogtreecommitdiff
path: root/src/lua/modules/time
diff options
context:
space:
mode:
Diffstat (limited to 'src/lua/modules/time')
-rw-r--r--src/lua/modules/time/je_lua_time.cpp70
-rw-r--r--src/lua/modules/time/je_lua_time.h14
-rw-r--r--src/lua/modules/time/je_lua_timer.cpp132
-rw-r--r--src/lua/modules/time/je_lua_timer.h20
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