Luanti
5.15.0-dev
Loading...
Searching...
No Matches
l_itemstackmeta.h
Go to the documentation of this file.
1
// Luanti
2
// SPDX-License-Identifier: LGPL-2.1-or-later
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
#pragma once
8
9
#include "
lua_api/l_metadata.h
"
10
#include "
lua_api/l_item.h
"
11
#include "
irrlichttypes_bloated.h
"
12
13
class
ItemStackMetaRef
:
public
MetaDataRef
14
{
15
private
:
16
LuaItemStack
*
istack
;
17
18
static
const
luaL_Reg
methods
[];
19
20
virtual
IMetadata
*
getmeta
(
bool
auto_create);
21
22
virtual
void
clearMeta
();
23
24
virtual
void
reportMetadataChange
(
const
std::string *name =
nullptr
);
25
26
void
setToolCapabilities
(
const
ToolCapabilities
&caps)
27
{
28
istack
->
getItem
().
metadata
.
setToolCapabilities
(caps);
29
}
30
31
void
clearToolCapabilities
()
32
{
33
istack
->
getItem
().
metadata
.
clearToolCapabilities
();
34
}
35
36
void
setWearBarParams
(
const
WearBarParams
¶ms)
37
{
38
istack
->
getItem
().
metadata
.
setWearBarParams
(params);
39
}
40
41
void
clearWearBarParams
()
42
{
43
istack
->
getItem
().
metadata
.
clearWearBarParams
();
44
}
45
46
// Exported functions
47
static
int
l_set_tool_capabilities
(lua_State *L);
48
static
int
l_set_wear_bar_params
(lua_State *L);
49
public
:
50
// takes a reference
51
ItemStackMetaRef
(
LuaItemStack
*
istack
);
52
~ItemStackMetaRef
();
53
54
DISABLE_CLASS_COPY
(
ItemStackMetaRef
)
55
56
// Creates an ItemStackMetaRef and leaves it on top of stack
57
// Not callable from Lua; all references are created on the C side.
58
static
void
create
(lua_State *L,
LuaItemStack
*
istack
);
59
60
static
void
Register
(lua_State *L);
61
62
static
const
char
className
[];
63
};
DISABLE_CLASS_COPY
#define DISABLE_CLASS_COPY(C)
Definition
basic_macros.h:26
IMetadata
Definition
metadata.h:12
ItemStackMetaRef
Definition
l_itemstackmeta.h:14
ItemStackMetaRef::className
static const char className[]
Definition
l_itemstackmeta.h:62
ItemStackMetaRef::methods
static const luaL_Reg methods[]
Definition
l_itemstackmeta.h:87
ItemStackMetaRef::~ItemStackMetaRef
~ItemStackMetaRef()
Definition
l_itemstackmeta.cpp:66
ItemStackMetaRef::getmeta
virtual IMetadata * getmeta(bool auto_create)
Definition
l_itemstackmeta.cpp:16
ItemStackMetaRef::ItemStackMetaRef
ItemStackMetaRef(LuaItemStack *istack)
Definition
l_itemstackmeta.cpp:61
ItemStackMetaRef::clearToolCapabilities
void clearToolCapabilities()
Definition
l_itemstackmeta.h:31
ItemStackMetaRef::istack
LuaItemStack * istack
Definition
l_itemstackmeta.h:16
ItemStackMetaRef::l_set_tool_capabilities
static int l_set_tool_capabilities(lua_State *L)
Definition
l_itemstackmeta.cpp:32
ItemStackMetaRef::create
static void create(lua_State *L, LuaItemStack *istack)
Definition
l_itemstackmeta.cpp:73
ItemStackMetaRef::clearWearBarParams
void clearWearBarParams()
Definition
l_itemstackmeta.h:41
ItemStackMetaRef::setToolCapabilities
void setToolCapabilities(const ToolCapabilities &caps)
Definition
l_itemstackmeta.h:26
ItemStackMetaRef::l_set_wear_bar_params
static int l_set_wear_bar_params(lua_State *L)
Definition
l_itemstackmeta.cpp:47
ItemStackMetaRef::clearMeta
virtual void clearMeta()
Definition
l_itemstackmeta.cpp:21
ItemStackMetaRef::setWearBarParams
void setWearBarParams(const WearBarParams ¶ms)
Definition
l_itemstackmeta.h:36
ItemStackMetaRef::reportMetadataChange
virtual void reportMetadataChange(const std::string *name=nullptr)
Definition
l_itemstackmeta.cpp:26
ItemStackMetadata::clearToolCapabilities
void clearToolCapabilities()
Definition
itemstackmetadata.cpp:106
ItemStackMetadata::clearWearBarParams
void clearWearBarParams()
Definition
itemstackmetadata.cpp:128
ItemStackMetadata::setToolCapabilities
void setToolCapabilities(const ToolCapabilities &caps)
Definition
itemstackmetadata.cpp:99
ItemStackMetadata::setWearBarParams
void setWearBarParams(const WearBarParams ¶ms)
Definition
itemstackmetadata.cpp:121
LuaItemStack
Definition
l_item.h:11
LuaItemStack::getItem
const ItemStack & getItem() const
Definition
l_item.h:139
MetaDataRef
Definition
l_metadata.h:18
ELoginRegister::Register
@ Register
irrlichttypes_bloated.h
l_item.h
l_metadata.h
ItemStack::metadata
ItemStackMetadata metadata
Definition
inventory.h:153
ToolCapabilities
Definition
tool.h:53
WearBarParams
Definition
tool.h:85
script
lua_api
l_itemstackmeta.h
Generated on Fri Jan 2 2026 04:32:21 for Luanti by
1.11.0