Minetest 5.9.0-dev
 
Loading...
Searching...
No Matches
l_itemstackmeta.h
Go to the documentation of this file.
1/*
2Minetest
3Copyright (C) 2013 celeron55, Perttu Ahola <celeron55@gmail.com>
4Copyright (C) 2017-8 rubenwardy <rw@rubenwardy.com>
5Copyright (C) 2017 raymoo
6
7This program is free software; you can redistribute it and/or modify
8it under the terms of the GNU Lesser General Public License as published by
9the Free Software Foundation; either version 2.1 of the License, or
10(at your option) any later version.
11
12This program is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU Lesser General Public License for more details.
16
17You should have received a copy of the GNU Lesser General Public License along
18with this program; if not, write to the Free Software Foundation, Inc.,
1951 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20*/
21
22#pragma once
23
24#include "lua_api/l_base.h"
25#include "lua_api/l_metadata.h"
26#include "lua_api/l_item.h"
28
30{
31private:
33
34 static const luaL_Reg methods[];
35
36 virtual IMetadata* getmeta(bool auto_create);
37
38 virtual void clearMeta();
39
40 virtual void reportMetadataChange(const std::string *name = nullptr);
41
43 {
45 }
46
48 {
50 }
51
53 {
55 }
56
58 {
60 }
61
62 // Exported functions
63 static int l_set_tool_capabilities(lua_State *L);
64 static int l_set_wear_bar_params(lua_State *L);
65public:
66 // takes a reference
69
71
72 // Creates an ItemStackMetaRef and leaves it on top of stack
73 // Not callable from Lua; all references are created on the C side.
74 static void create(lua_State *L, LuaItemStack *istack);
75
76 static void Register(lua_State *L);
77
78 static const char className[];
79};
#define DISABLE_CLASS_COPY(C)
Definition: basic_macros.h:35
Definition: metadata.h:29
Definition: l_itemstackmeta.h:30
static const char className[]
Definition: l_itemstackmeta.h:78
static const luaL_Reg methods[]
Definition: l_itemstackmeta.h:34
~ItemStackMetaRef()
Definition: l_itemstackmeta.cpp:82
virtual IMetadata * getmeta(bool auto_create)
Definition: l_itemstackmeta.cpp:32
void clearToolCapabilities()
Definition: l_itemstackmeta.h:47
LuaItemStack * istack
Definition: l_itemstackmeta.h:32
static int l_set_tool_capabilities(lua_State *L)
Definition: l_itemstackmeta.cpp:48
static void create(lua_State *L, LuaItemStack *istack)
Definition: l_itemstackmeta.cpp:89
void clearWearBarParams()
Definition: l_itemstackmeta.h:57
void setToolCapabilities(const ToolCapabilities &caps)
Definition: l_itemstackmeta.h:42
static int l_set_wear_bar_params(lua_State *L)
Definition: l_itemstackmeta.cpp:63
virtual void clearMeta()
Definition: l_itemstackmeta.cpp:37
void setWearBarParams(const WearBarParams &params)
Definition: l_itemstackmeta.h:52
virtual void reportMetadataChange(const std::string *name=nullptr)
Definition: l_itemstackmeta.cpp:42
void clearToolCapabilities()
Definition: itemstackmetadata.cpp:122
void clearWearBarParams()
Definition: itemstackmetadata.cpp:144
void setToolCapabilities(const ToolCapabilities &caps)
Definition: itemstackmetadata.cpp:115
void setWearBarParams(const WearBarParams &params)
Definition: itemstackmetadata.cpp:137
Definition: l_item.h:26
const ItemStack & getItem() const
Definition: l_item.h:154
Definition: l_metadata.h:33
static LightingParams params
Definition: light.cpp:40
ItemStackMetadata metadata
Definition: inventory.h:205
Definition: tool.h:61
Definition: tool.h:89