Minetest
5.9.0-dev
Loading...
Searching...
No Matches
l_itemstackmeta.h
Go to the documentation of this file.
1
/*
2
Minetest
3
Copyright (C) 2013 celeron55, Perttu Ahola <celeron55@gmail.com>
4
Copyright (C) 2017-8 rubenwardy <rw@rubenwardy.com>
5
Copyright (C) 2017 raymoo
6
7
This program is free software; you can redistribute it and/or modify
8
it under the terms of the GNU Lesser General Public License as published by
9
the Free Software Foundation; either version 2.1 of the License, or
10
(at your option) any later version.
11
12
This program is distributed in the hope that it will be useful,
13
but WITHOUT ANY WARRANTY; without even the implied warranty of
14
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
GNU Lesser General Public License for more details.
16
17
You should have received a copy of the GNU Lesser General Public License along
18
with this program; if not, write to the Free Software Foundation, Inc.,
19
51 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
"
27
#include "
irrlichttypes_bloated.h
"
28
29
class
ItemStackMetaRef
:
public
MetaDataRef
30
{
31
private
:
32
LuaItemStack
*
istack
;
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
42
void
setToolCapabilities
(
const
ToolCapabilities
&caps)
43
{
44
istack
->
getItem
().
metadata
.
setToolCapabilities
(caps);
45
}
46
47
void
clearToolCapabilities
()
48
{
49
istack
->
getItem
().
metadata
.
clearToolCapabilities
();
50
}
51
52
void
setWearBarParams
(
const
WearBarParams
&
params
)
53
{
54
istack
->
getItem
().
metadata
.
setWearBarParams
(
params
);
55
}
56
57
void
clearWearBarParams
()
58
{
59
istack
->
getItem
().
metadata
.
clearWearBarParams
();
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);
65
public
:
66
// takes a reference
67
ItemStackMetaRef
(
LuaItemStack
*
istack
);
68
~ItemStackMetaRef
();
69
70
DISABLE_CLASS_COPY
(
ItemStackMetaRef
)
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
};
DISABLE_CLASS_COPY
#define DISABLE_CLASS_COPY(C)
Definition:
basic_macros.h:35
IMetadata
Definition:
metadata.h:29
ItemStackMetaRef
Definition:
l_itemstackmeta.h:30
ItemStackMetaRef::className
static const char className[]
Definition:
l_itemstackmeta.h:78
ItemStackMetaRef::methods
static const luaL_Reg methods[]
Definition:
l_itemstackmeta.h:34
ItemStackMetaRef::~ItemStackMetaRef
~ItemStackMetaRef()
Definition:
l_itemstackmeta.cpp:82
ItemStackMetaRef::getmeta
virtual IMetadata * getmeta(bool auto_create)
Definition:
l_itemstackmeta.cpp:32
ItemStackMetaRef::clearToolCapabilities
void clearToolCapabilities()
Definition:
l_itemstackmeta.h:47
ItemStackMetaRef::istack
LuaItemStack * istack
Definition:
l_itemstackmeta.h:32
ItemStackMetaRef::l_set_tool_capabilities
static int l_set_tool_capabilities(lua_State *L)
Definition:
l_itemstackmeta.cpp:48
ItemStackMetaRef::create
static void create(lua_State *L, LuaItemStack *istack)
Definition:
l_itemstackmeta.cpp:89
ItemStackMetaRef::clearWearBarParams
void clearWearBarParams()
Definition:
l_itemstackmeta.h:57
ItemStackMetaRef::setToolCapabilities
void setToolCapabilities(const ToolCapabilities &caps)
Definition:
l_itemstackmeta.h:42
ItemStackMetaRef::l_set_wear_bar_params
static int l_set_wear_bar_params(lua_State *L)
Definition:
l_itemstackmeta.cpp:63
ItemStackMetaRef::clearMeta
virtual void clearMeta()
Definition:
l_itemstackmeta.cpp:37
ItemStackMetaRef::setWearBarParams
void setWearBarParams(const WearBarParams ¶ms)
Definition:
l_itemstackmeta.h:52
ItemStackMetaRef::reportMetadataChange
virtual void reportMetadataChange(const std::string *name=nullptr)
Definition:
l_itemstackmeta.cpp:42
ItemStackMetadata::clearToolCapabilities
void clearToolCapabilities()
Definition:
itemstackmetadata.cpp:122
ItemStackMetadata::clearWearBarParams
void clearWearBarParams()
Definition:
itemstackmetadata.cpp:144
ItemStackMetadata::setToolCapabilities
void setToolCapabilities(const ToolCapabilities &caps)
Definition:
itemstackmetadata.cpp:115
ItemStackMetadata::setWearBarParams
void setWearBarParams(const WearBarParams ¶ms)
Definition:
itemstackmetadata.cpp:137
LuaItemStack
Definition:
l_item.h:26
LuaItemStack::getItem
const ItemStack & getItem() const
Definition:
l_item.h:154
MetaDataRef
Definition:
l_metadata.h:33
ELoginRegister::Register
@ Register
irrlichttypes_bloated.h
l_base.h
l_item.h
l_metadata.h
params
static LightingParams params
Definition:
light.cpp:40
ItemStack::metadata
ItemStackMetadata metadata
Definition:
inventory.h:205
ToolCapabilities
Definition:
tool.h:61
WearBarParams
Definition:
tool.h:89
script
lua_api
l_itemstackmeta.h
Generated on Sat May 4 2024 17:14:12 for Minetest by
1.9.6