add entity:get_skeleton

This commit is contained in:
MihailRis 2024-07-13 03:13:28 +03:00
parent ffb0ab2f05
commit 035b51ff85
3 changed files with 14 additions and 1 deletions

View File

@ -16,6 +16,9 @@ Lua.
-- Удаляет сущность (сущность может продолжать существовать до завершения кадра, но не будет отображена в этом кадре)
entity:despawn()
-- Возращает имя скелета сущности
entity:get_skeleton() -> str
-- Заменяет скелет сущности
entity:set_skeleton(name: str)
@ -127,4 +130,3 @@ rig:set_matrix(index: int, matrix: mat4)
-- Назначает текстуру по ключу (динамически назначаемые текстуры - '$имя')
rig:set_texture(key: str, value: str)
```

View File

@ -53,6 +53,7 @@ end
local Entity = {__index={
despawn=function(self) return entities.despawn(self.eid) end,
get_skeleton=function(self) return entities.get_skeleton(self.eid) end,
set_skeleton=function(self, s) return entities.set_skeleton(self.eid, s) end,
get_component=function(self, name) return self.components[name] end,
has_component=function(self, name) return self.components[name] ~= nil end,

View File

@ -1,6 +1,8 @@
#include "libentity.hpp"
#include "../../../objects/Player.hpp"
#include "../../../objects/Entities.hpp"
#include "../../../objects/rigging.hpp"
#include "../../../physics/Hitbox.hpp"
#include "../../../window/Camera.hpp"
#include "../../../content/Content.hpp"
@ -32,6 +34,13 @@ static int l_despawn(lua::State* L) {
return 0;
}
static int l_get_skeleton(lua::State* L) {
if (auto entity = get_entity(L, 1)) {
return lua::pushstring(L, entity->getSkeleton().config->getName());
}
return 0;
}
static int l_set_skeleton(lua::State* L) {
if (auto entity = get_entity(L, 1)) {
std::string skeletonName = lua::require_string(L, 2);
@ -48,6 +57,7 @@ const luaL_Reg entitylib [] = {
{"exists", lua::wrap<l_exists>},
{"spawn", lua::wrap<l_spawn>},
{"despawn", lua::wrap<l_despawn>},
{"get_skeleton", lua::wrap<l_get_skeleton>},
{"set_skeleton", lua::wrap<l_set_skeleton>},
{NULL, NULL}
};