add entities.def_hitbox function

This commit is contained in:
MihailRis 2024-10-29 21:16:25 +03:00
parent e37e45d9d5
commit effdac2d4d
4 changed files with 18 additions and 2 deletions

View File

@ -23,6 +23,9 @@ entities.exists(uid: int) -> bool
-- Returns entity definition index by UID
entities.get_def(uid: int) -> int
-- Returns entity 'hitbox' property value
entities.def_hitbox(id: int) -> vec3
-- Returns entity definition name by index (string ID).
entities.def_name(id: int) -> str

View File

@ -26,6 +26,9 @@ entities.get_def(uid: int) -> int
-- Возвращает имя определения сущности по индексу (строковый ID).
entities.def_name(id: int) -> str
-- Возвращает значение свойства 'hitbox' сущности
entities.def_hitbox(id: int) -> vec3
-- Возвращает индекс определения сущности по имени (числовой ID).
entities.def_index(name: str) -> int

View File

@ -34,6 +34,14 @@ static int l_def_name(lua::State* L) {
}
return 0;
}
static int l_def_hitbox(lua::State* L) {
if (auto def = require_entity_def(L)) {
return lua::pushvec(L, def->hitbox);
}
return 0;
}
static int l_defs_count(lua::State* L) {
return lua::pushinteger(L, indices->entities.count());
}
@ -202,6 +210,7 @@ const luaL_Reg entitylib[] = {
{"exists", lua::wrap<l_exists>},
{"def_index", lua::wrap<l_def_index>},
{"def_name", lua::wrap<l_def_name>},
{"def_hitbox", lua::wrap<l_def_hitbox>},
{"get_def", lua::wrap<l_get_def>},
{"defs_count", lua::wrap<l_defs_count>},
{"spawn", lua::wrap<l_spawn>},

View File

@ -1,4 +1,6 @@
#include "EntityDef.hpp"
void EntityDef::cloneTo(EntityDef& dst) {
dst.components = components;
dst.bodyType = bodyType;
@ -8,5 +10,4 @@ void EntityDef::cloneTo(EntityDef& dst) {
dst.skeletonName = skeletonName;
dst.blocking = blocking;
dst.save = save;
}
}