Luanti
5.15.0-dev
Loading...
Searching...
No Matches
l_nodemeta.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
5
#pragma once
6
7
#include "
lua_api/l_metadata.h
"
8
9
class
ServerEnvironment
;
10
class
NodeMetadata
;
11
12
/*
13
NodeMetaRef
14
*/
15
16
class
NodeMetaRef
:
public
MetaDataRef
{
17
private
:
18
bool
m_is_local
=
false
;
19
// Set for server metadata
20
v3s16
m_p
;
21
ServerEnvironment
*
m_env
=
nullptr
;
22
// Set for client metadata
23
IMetadata
*
m_local_meta
=
nullptr
;
24
25
static
const
luaL_Reg
methodsServer
[];
26
static
const
luaL_Reg
methodsClient
[];
27
41
virtual
IMetadata
*
getmeta
(
bool
auto_create);
42
virtual
void
clearMeta
();
43
44
virtual
void
reportMetadataChange
(
const
std::string *name =
nullptr
);
45
46
virtual
void
handleToTable
(lua_State *L,
IMetadata
*_meta);
47
virtual
bool
handleFromTable
(lua_State *L,
int
table
,
IMetadata
*_meta);
48
49
// Exported functions
50
51
// get_inventory(self)
52
static
int
l_get_inventory
(lua_State *L);
53
54
// mark_as_private(self, <string> or {<string>, <string>, ...})
55
static
int
l_mark_as_private
(lua_State *L);
56
57
public
:
58
NodeMetaRef
(
v3s16
p
,
ServerEnvironment
*env);
59
NodeMetaRef
(
IMetadata
*meta);
60
61
~NodeMetaRef
() =
default
;
62
63
// Creates an NodeMetaRef and leaves it on top of stack
64
// Not callable from Lua; all references are created on the C side.
65
static
void
create
(lua_State *L,
v3s16
p
,
ServerEnvironment
*env);
66
67
// Client-sided version of the above
68
static
void
createClient
(lua_State *L,
IMetadata
*meta);
69
70
static
void
Register
(lua_State *L);
71
static
void
RegisterClient
(lua_State *L);
72
73
static
const
char
className
[];
74
};
IMetadata
Definition
metadata.h:12
MetaDataRef
Definition
l_metadata.h:18
NodeMetaRef
Definition
l_nodemeta.h:16
NodeMetaRef::reportMetadataChange
virtual void reportMetadataChange(const std::string *name=nullptr)
Definition
l_nodemeta.cpp:40
NodeMetaRef::className
static const char className[]
Definition
l_nodemeta.h:73
NodeMetaRef::~NodeMetaRef
~NodeMetaRef()=default
NodeMetaRef::createClient
static void createClient(lua_State *L, IMetadata *meta)
Definition
l_nodemeta.cpp:177
NodeMetaRef::methodsClient
static const luaL_Reg methodsClient[]
Definition
l_nodemeta.h:218
NodeMetaRef::handleToTable
virtual void handleToTable(lua_State *L, IMetadata *_meta)
Definition
l_nodemeta.cpp:106
NodeMetaRef::m_env
ServerEnvironment * m_env
Definition
l_nodemeta.h:21
NodeMetaRef::m_is_local
bool m_is_local
Definition
l_nodemeta.h:18
NodeMetaRef::l_mark_as_private
static int l_mark_as_private(lua_State *L)
Definition
l_nodemeta.cpp:78
NodeMetaRef::l_get_inventory
static int l_get_inventory(lua_State *L)
Definition
l_nodemeta.cpp:64
NodeMetaRef::clearMeta
virtual void clearMeta()
Definition
l_nodemeta.cpp:34
NodeMetaRef::RegisterClient
static void RegisterClient(lua_State *L)
Definition
l_nodemeta.cpp:212
NodeMetaRef::create
static void create(lua_State *L, v3s16 p, ServerEnvironment *env)
Definition
l_nodemeta.cpp:168
NodeMetaRef::NodeMetaRef
NodeMetaRef(v3s16 p, ServerEnvironment *env)
Definition
l_nodemeta.cpp:154
NodeMetaRef::m_local_meta
IMetadata * m_local_meta
Definition
l_nodemeta.h:23
NodeMetaRef::getmeta
virtual IMetadata * getmeta(bool auto_create)
Retrieve metadata for a node.
Definition
l_nodemeta.cpp:18
NodeMetaRef::handleFromTable
virtual bool handleFromTable(lua_State *L, int table, IMetadata *_meta)
Definition
l_nodemeta.cpp:125
NodeMetaRef::methodsServer
static const luaL_Reg methodsServer[]
Definition
l_nodemeta.h:193
NodeMetaRef::m_p
v3s16 m_p
Definition
l_nodemeta.h:20
NodeMetadata
Definition
nodemetadata.h:25
ServerEnvironment
Definition
serverenvironment.h:113
ELoginRegister::Register
@ Register
v3s16
core::vector3d< s16 > v3s16
Definition
irr_v3d.h:13
table
static std::vector< table_key > table
Definition
keycode.cpp:32
l_metadata.h
p
static std::string p(std::string path)
Definition
test_filesys.cpp:64
script
lua_api
l_nodemeta.h
Generated on Fri Jan 2 2026 04:32:21 for Luanti by
1.11.0