return 1;
}
+// set_name(self, name)
+int LuaItemStack::l_set_name(lua_State *L)
+{
+ NO_MAP_LOCK_REQUIRED;
+ LuaItemStack *o = checkobject(L, 1);
+ ItemStack &item = o->m_stack;
+ item.name = luaL_checkstring(L, 2);
+
+ if (item.name == "" || item.empty())
+ item.clear();
+
+ return 1;
+}
+
// get_count(self) -> number
int LuaItemStack::l_get_count(lua_State *L)
{
return 1;
}
+// set_count(self, number)
+int LuaItemStack::l_set_count(lua_State *L)
+{
+ NO_MAP_LOCK_REQUIRED;
+ LuaItemStack *o = checkobject(L, 1);
+ ItemStack &item = o->m_stack;
+ item.count = luaL_checkinteger(L, 2);
+
+ if (item.name == "" || item.empty())
+ item.clear();
+
+ return 1;
+}
+
// get_wear(self) -> number
int LuaItemStack::l_get_wear(lua_State *L)
{
return 1;
}
+// set_wear(self, number)
+int LuaItemStack::l_set_wear(lua_State *L)
+{
+ NO_MAP_LOCK_REQUIRED;
+ LuaItemStack *o = checkobject(L, 1);
+ ItemStack &item = o->m_stack;
+ item.wear = luaL_checkinteger(L, 2);
+
+ if (item.wear > 65535)
+ item.clear();
+
+ return 1;
+}
+
// get_metadata(self) -> string
int LuaItemStack::l_get_metadata(lua_State *L)
{
return 1;
}
+// set_metadata(self, string)
+int LuaItemStack::l_set_metadata(lua_State *L)
+{
+ NO_MAP_LOCK_REQUIRED;
+ LuaItemStack *o = checkobject(L, 1);
+ ItemStack &item = o->m_stack;
+
+ size_t len = 0;
+ const char *ptr = luaL_checklstring(L, 2, &len);
+ if (ptr)
+ item.metadata.assign(ptr, len);
+ else
+ item.metadata = "";
+
+ return 1;
+}
+
// clear(self) -> true
int LuaItemStack::l_clear(lua_State *L)
{
const luaL_reg LuaItemStack::methods[] = {
luamethod(LuaItemStack, is_empty),
luamethod(LuaItemStack, get_name),
+ luamethod(LuaItemStack, set_name),
luamethod(LuaItemStack, get_count),
+ luamethod(LuaItemStack, set_count),
luamethod(LuaItemStack, get_wear),
+ luamethod(LuaItemStack, set_wear),
luamethod(LuaItemStack, get_metadata),
+ luamethod(LuaItemStack, set_metadata),
luamethod(LuaItemStack, clear),
luamethod(LuaItemStack, replace),
luamethod(LuaItemStack, to_string),
name = lua_tostring(L, -1);
verbosestream<<"register_item_raw: "<<name<<std::endl;
} else {
- throw LuaError(L, "register_item_raw: name is not defined or not a string");
+ throw LuaError(NULL, "register_item_raw: name is not defined or not a string");
}
// Check if on_use is defined
content_t id = ndef->set(f.name, f);
if(id > MAX_REGISTERED_CONTENT){
- throw LuaError(L, "Number of registerable nodes ("
+ throw LuaError(NULL, "Number of registerable nodes ("
+ itos(MAX_REGISTERED_CONTENT+1)
+ ") exceeded (" + name + ")");
}