diff --git a/doc/en/scripting/builtins/libitem.md b/doc/en/scripting/builtins/libitem.md index 58dd7ba9..491fd620 100644 --- a/doc/en/scripting/builtins/libitem.md +++ b/doc/en/scripting/builtins/libitem.md @@ -24,4 +24,7 @@ item.placing_block(itemid: int) -> int -- Returns the value of the `model-name` property item.model_name(itemid: int) -> str + +-- Returns item emission property value +item.emission(itemid: int) -> str ``` diff --git a/doc/ru/scripting/builtins/libitem.md b/doc/ru/scripting/builtins/libitem.md index 4d0b9a62..542247b8 100644 --- a/doc/ru/scripting/builtins/libitem.md +++ b/doc/ru/scripting/builtins/libitem.md @@ -24,6 +24,9 @@ item.placing_block(itemid: int) -> int -- Возвращает значение свойства `model-name` item.model_name(itemid: int) -> str + +-- Возвращает emission параметр у предмета +item.emission(itemid: int) -> str ``` diff --git a/src/logic/scripting/lua/libs/libitem.cpp b/src/logic/scripting/lua/libs/libitem.cpp index a5ba27e5..533d3314 100644 --- a/src/logic/scripting/lua/libs/libitem.cpp +++ b/src/logic/scripting/lua/libs/libitem.cpp @@ -68,6 +68,22 @@ static int l_model_name(lua::State* L) { return 0; } +static int l_emission(lua::State* L) { + if (auto def = get_item_def(L, 1)) { + lua::createtable(L, 4, 0); + lua::pushinteger(L, def->emission[0]); + lua::rawseti(L, 1); + lua::pushinteger(L, def->emission[1]); + lua::rawseti(L, 2); + lua::pushinteger(L, def->emission[2]); + lua::rawseti(L, 3); + lua::pushinteger(L, def->emission[3]); + lua::rawseti(L, 4); + return 1; + } + return 0; +} + const luaL_Reg itemlib[] = { {"index", lua::wrap}, {"name", lua::wrap}, @@ -77,4 +93,5 @@ const luaL_Reg itemlib[] = { {"caption", lua::wrap}, {"placing_block", lua::wrap}, {"model_name", lua::wrap}, + {"emission", lua::wrap}, {NULL, NULL}};