#include #include extern "C" { #include #include #include } //C++ things #include #include #include #include // for strstr() #include #include #include #include #include #include #include using namespace std; using namespace chrono; lua_State* L; void gameloop(){ gameloop_phys(NULL); //printf("done physics\n"); gameloop_net(L); //printf("done net\n"); } int main (){ printf("Brok[en]gine Server\n"); putenv("LUA_PATH=../data/?.lua"); L = luaL_newstate(); lua_newtable(L);//{} lua_setglobal(L,"GAME");// phys_genesis(); luaL_openlibs(L); 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{ printf("Start of server gameloop\n"); gameloop(); printf("Gameloop\n"); std::this_thread::yield(); printf("Thread yeild\n"); lua_getglobal(L,"GAME");//{} lua_getfield(L,-1,"tick");//{},function_tick() printf("Found game tick\n"); if(!lua_isnil(L,-1)){ lua_call(L,0,0); lua_pop(L,1); }else{ lua_pop(L,2); } printf("End of server gameloop\n"); }while(true); phys_shutdown(NULL); return 0; }