aboutsummaryrefslogtreecommitdiff
path: root/po/jbo
Commit message (Collapse)AuthorAge
* Run updatepo.shest312016-08-30
|
* Run updatepo.shest312016-07-12
|
* Translated using Weblate (Lojban)senpi2016-05-10
| | | | Currently translated at 10.5% (94 of 887 strings)
* Run updatepo.shest312016-05-05
|
* Update po files, minetest.conf.example and settings_translation_file.cppest312016-02-27
|
* Translated using Weblate (Lojban)senpi2015-12-21
| | | | Currently translated at 11.4% (90 of 787 strings)
* Run util/updatepo.shest312015-11-08
|
* Run updatepo.shest312015-10-24
|
* Run updatepo.shest312015-09-12
| | | | | | After this, it should hopefully not record line numbers anymore, so the diffs of updatepo.sh runs are smaller. Well, this is theory, lets see how it will turn out to be in practice.
* Translated using Weblate (Lojban)Wuzzy2015-09-12
| | | | Currently translated at 38.5% (104 of 270 strings)
* Translated using Weblate (Lojban)Wuzzy2015-09-12
Currently translated at 100% (0 of 0 strings) Created new translation.
lic License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "lua_api/l_itemstackmeta.h" #include "lua_api/l_internal.h" #include "common/c_content.h" /* NodeMetaRef */ ItemStackMetaRef* ItemStackMetaRef::checkobject(lua_State *L, int narg) { luaL_checktype(L, narg, LUA_TUSERDATA); void *ud = luaL_checkudata(L, narg, className); if (!ud) luaL_typerror(L, narg, className); return *(ItemStackMetaRef**)ud; // unbox pointer } Metadata* ItemStackMetaRef::getmeta(bool auto_create) { return &istack->metadata; } void ItemStackMetaRef::clearMeta() { istack->metadata.clear(); } void ItemStackMetaRef::reportMetadataChange() { // TODO } // Exported functions int ItemStackMetaRef::l_set_tool_capabilities(lua_State *L) { ItemStackMetaRef *metaref = checkobject(L, 1); if (lua_isnoneornil(L, 2)) { metaref->clearToolCapabilities(); } else if (lua_istable(L, 2)) { ToolCapabilities caps = read_tool_capabilities(L, 2); metaref->setToolCapabilities(caps); } else { luaL_typerror(L, 2, "table or nil"); } return 0; } // garbage collector int ItemStackMetaRef::gc_object(lua_State *L) { ItemStackMetaRef *o = *(ItemStackMetaRef **)(lua_touserdata(L, 1)); delete o; return 0; } // Creates an NodeMetaRef and leaves it on top of stack // Not callable from Lua; all references are created on the C side. void ItemStackMetaRef::create(lua_State *L, ItemStack *istack) { ItemStackMetaRef *o = new ItemStackMetaRef(istack); //infostream<<"NodeMetaRef::create: o="<<o<<std::endl; *(void **)(lua_newuserdata(L, sizeof(void *))) = o; luaL_getmetatable(L, className); lua_setmetatable(L, -2); } void ItemStackMetaRef::Register(lua_State *L) { lua_newtable(L); int methodtable = lua_gettop(L); luaL_newmetatable(L, className); int metatable = lua_gettop(L); lua_pushliteral(L, "__metatable"); lua_pushvalue(L, methodtable); lua_settable(L, metatable); // hide metatable from Lua getmetatable() lua_pushliteral(L, "metadata_class"); lua_pushlstring(L, className, strlen(className)); lua_settable(L, metatable); lua_pushliteral(L, "__index"); lua_pushvalue(L, methodtable); lua_settable(L, metatable); lua_pushliteral(L, "__gc"); lua_pushcfunction(L, gc_object); lua_settable(L, metatable); lua_pushliteral(L, "__eq"); lua_pushcfunction(L, l_equals); lua_settable(L, metatable); lua_pop(L, 1); // drop metatable luaL_openlib(L, 0, methods, 0); // fill methodtable lua_pop(L, 1); // drop methodtable // Cannot be created from Lua //lua_register(L, className, create_object); } const char ItemStackMetaRef::className[] = "ItemStackMetaRef"; const luaL_Reg ItemStackMetaRef::methods[] = { luamethod(MetaDataRef, get_string), luamethod(MetaDataRef, set_string), luamethod(MetaDataRef, get_int), luamethod(MetaDataRef, set_int), luamethod(MetaDataRef, get_float), luamethod(MetaDataRef, set_float), luamethod(MetaDataRef, to_table), luamethod(MetaDataRef, from_table), luamethod(MetaDataRef, equals), luamethod(ItemStackMetaRef, set_tool_capabilities), {0,0} };