diff --git a/src/logic/scripting/lua/libplayer.cpp b/src/logic/scripting/lua/libplayer.cpp index 36088569..b818cf3d 100644 --- a/src/logic/scripting/lua/libplayer.cpp +++ b/src/logic/scripting/lua/libplayer.cpp @@ -8,6 +8,7 @@ #include "../../../items/Inventory.hpp" #include +#include using namespace scripting; @@ -186,6 +187,19 @@ static int l_set_entity(lua::State* L) { return 0; } +static int l_get_camera(lua::State* L) { + auto player = get_player(L, 1); + if (player == nullptr) { + return 0; + } + auto found = std::find( + level->cameras.begin(), level->cameras.end(), player->currentCamera); + if (found == level->cameras.end()) { + return 0; + } + return lua::pushinteger(L, found - level->cameras.end()); +} + static int l_set_camera(lua::State* L) { auto player = get_player(L, 1); if (player == nullptr) { @@ -215,6 +229,7 @@ const luaL_Reg playerlib [] = { {"get_spawnpoint", lua::wrap}, {"get_entity", lua::wrap}, {"set_entity", lua::wrap}, + {"get_camera", lua::wrap}, {"set_camera", lua::wrap}, {NULL, NULL} }; diff --git a/src/objects/Player.cpp b/src/objects/Player.cpp index 15744675..ac924b7e 100644 --- a/src/objects/Player.cpp +++ b/src/objects/Player.cpp @@ -160,8 +160,6 @@ void Player::postUpdate() { skeleton.visible = currentCamera != camera; - auto velocityMod = glm::length(hitbox.velocity); - size_t bodyIndex = skeleton.config->find("body")->getIndex(); size_t headIndex = skeleton.config->find("head")->getIndex(); @@ -271,7 +269,8 @@ std::unique_ptr Player::serialize() const { root->put("chosen-slot", chosenSlot); root->put("entity", eid); root->put("inventory", inventory->serialize()); - auto found = std::find(level->cameras.begin(), level->cameras.end(), currentCamera); + auto found = std::find( + level->cameras.begin(), level->cameras.end(), currentCamera); if (found != level->cameras.end()) { root->put("camera", level->content->getIndices( ResourceType::CAMERA).getName(found - level->cameras.begin()));