aboutsummaryrefslogtreecommitdiff
path: root/src/lua/core/luaopen_core.cpp
blob: d20a3bcce82aca9d283ec8150a7d8ad6e6ecb989 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include "lua/luax.h"
#include "libjin/jin.h"

namespace jin
{
namespace lua
{
    using namespace jin::core; 

    static int l_running(lua_State* L)
    {
        static Game* game = Game::get();
        bool running = game->running();
        luax_pushboolean(L, running); 
        return 1;
    }

    static int l_stop(lua_State* L)
    {
        Game::get()->stop();
        return 0;
    }

    static int l_quit(lua_State* L)
    {
        Game::get()->quit();
        return 0;
    }

    static const luaL_Reg f[] = {
        {"running", l_running}, 
        {"stop",    l_stop}, // for end game loop
        {"quit",    l_quit}, // for exit whole game
        {0, 0}
    };

    int luaopen_core(lua_State* L)
    {
        luax_newlib(L, f); 

        return 1; 
    }
}
}