#include #include extern "C" { #include #include #include } //C++ things #include #include #include #include // for strstr() #include #include #include #include #include #include #include #include #include #include using namespace std; using namespace chrono; lua_State* L; void gameloop(){ gameloop_phys(NULL); gameloop_net(L); } int main (){ printf("Brok[en]gine Server\n"); L = luaL_newstate(); lua_newtable(L); lua_setglobal(L,"GAME"); phys_genesis(); loadLLibs(L); loadNetLibs(L); loadPhysLibs(L); int iErr = luaL_dofile(L,"../data/init.lua"); if(iErr != 0){ printf("Failed to open lua file:../data/init.lua\n"); lua_error(L); } do{ gameloop(); std::this_thread::yield(); lua_getglobal(L,"GAME");//{} lua_getfield(L,-1,"tick");//{},function_tick() if(!lua_isnil(L,-1)){ lua_call(L,0,0); lua_pop(L,1); }else{ lua_pop(L,2); } }while(true); phys_shutdown(NULL); return 0; }