int LuaEnv_Engine::GetTotalEntityCount(LuaEnvironment &env) { // First arg is self //Engine* engine = LuaEnvironment::convertUserdata<Engine>(state, 1, "jl.Engine"); if(env.readGlobal("SAUROBYTE_GAME")) { Engine *engine = env.readStack<Engine*>("Saurobyte_Engine"); env.pushArgs(engine->getEntityPool().getEntityCount()); } //lua_pushnumber(state, engine->getEntityPool().getEntityCount()); return 1; }
int LuaEnv_Engine::GetWindowWidth(LuaEnvironment &env) { // First arg is self //Engine* engine = LuaEnvironment::convertUserdata<Engine>(state, 1, "jl.Engine"); if(env.readGlobal("SAUROBYTE_GAME")) { Engine *engine = env.readStack<Engine*>("Saurobyte_Engine"); env.pushArgs(engine->getWindow().getSize().x); } //lua_pushnumber(state, engine->getWindow().getSize().x); return 1; }
int LuaEnv_Engine::ChangeScene(LuaEnvironment &env) { // First arg is self if(env.readGlobal("SAUROBYTE_GAME")) { Engine *engine = env.readStack<Engine*>("Saurobyte_Engine"); std::string sceneName = env.readArg<std::string>(); engine->changeScene(sceneName.c_str()); } //Engine* engine = env.toObject<Engine*>(state, 1, "jl.Engine"); // Second argument is scene name //std::string sceneName = luaL_checkstring(state, 2); return 0; }
int LuaEnv_Engine::DeleteScene(LuaEnvironment &env) { // First arg is self if(env.readGlobal("SAUROBYTE_GAME")) { Engine *engine = env.readStack<Engine*>("Saurobyte_Engine"); std::string sceneName = env.readArg<std::string>(); engine->getScenePool().deleteScene(sceneName.c_str()); } //Engine* engine = LuaEnvironment::convertUserdata<Engine>(state, 1, "jl.Engine"); /// Second argument is scene name //std::string sceneName = luaL_checkstring(state, 2); //lua_settop(state, 0); return 0; }
int LuaEnv_Engine::MoveCamera(LuaEnvironment &env) { // First arg is self //Engine* engine = LuaEnvironment::convertUserdata<Engine>(state, 1, "jl.Engine"); if(env.readGlobal("SAUROBYTE_GAME")) { Engine *engine = env.readStack<Engine*>("Saurobyte_Engine"); // 2nd arg is X offset, 3rd arg is Y offset, 4th arg is Z offset float xOff = env.readArg<float>(); float yOff = env.readArg<float>(); float zOff = env.readArg<float>(); } //engine->getScenePool().getActiveScene()->getCamera().move(glm::vec3(xOff, yOff, zOff)); return 0; }
int LuaEnv_Engine::GetActiveScene(LuaEnvironment &env) { // First arg is self if(env.readGlobal("SAUROBYTE_GAME")) { Engine *engine = env.readStack<Engine*>("Saurobyte_Engine"); Scene *activeScene = engine->getScenePool().getActiveScene(); if(activeScene == nullptr) env.pushNil(); else env.pushObject<Scene*>(activeScene, "Saurobyte_Scene"); } //Engine* engine = LuaEnvironment::convertUserdata<Engine>(state, 1, "jl.Engine"); //Scene *activeScene = engine->getScenePool().getActiveScene(); return 1; }