Luanti 5.16.0-dev
Loading...
Searching...
No Matches
NodeMetaRef Class Reference

#include <l_nodemeta.h>

Inheritance diagram for NodeMetaRef:
Collaboration diagram for NodeMetaRef:

Public Member Functions

 NodeMetaRef (v3s16 p, ServerEnvironment *env)
 NodeMetaRef (IMetadata *meta)
 ~NodeMetaRef ()=default
Public Member Functions inherited from MetaDataRef
virtual ~MetaDataRef ()=default

Static Public Member Functions

static void create (lua_State *L, v3s16 p, ServerEnvironment *env)
static void createClient (lua_State *L, IMetadata *meta)
static void Register (lua_State *L)
static void RegisterClient (lua_State *L)
Static Public Member Functions inherited from MetaDataRef
static MetaDataRefcheckAnyMetadata (lua_State *L, int narg)
Static Public Member Functions inherited from ModApiBase
static ScriptApiBasegetScriptApiBase (lua_State *L)
static ServergetServer (lua_State *L)
static ServerInventoryManagergetServerInventoryMgr (lua_State *L)
static EmergeThreadgetEmergeThread (lua_State *L)
static IGameDefgetGameDef (lua_State *L)
static EnvironmentgetEnv (lua_State *L)
static std::string getCurrentModPath (lua_State *L)
template<typename T>
static T * getScriptApi (lua_State *L)
static bool registerFunction (lua_State *L, const char *name, lua_CFunction func, int top)
template<typename T>
static void registerClass (lua_State *L, const luaL_Reg *methods, const luaL_Reg *metamethods)
template<typename T>
static T * checkObject (lua_State *L, int narg)
static int l_deprecated_function (lua_State *L, const char *good, const char *bad, lua_CFunction func)
 A wrapper for deprecated functions.

Static Public Attributes

static const char className [] = "NodeMetaRef"

Private Member Functions

virtual IMetadatagetmeta (bool auto_create)
 Retrieve metadata for a node.
virtual void clearMeta ()
virtual void reportMetadataChange (const std::string *name=nullptr)
virtual void handleToTable (lua_State *L, IMetadata *_meta)
virtual bool handleFromTable (lua_State *L, int table, IMetadata *_meta)

Static Private Member Functions

static int l_get_inventory (lua_State *L)
static int l_mark_as_private (lua_State *L)

Private Attributes

bool m_is_local = false
v3s16 m_p
ServerEnvironmentm_env = nullptr
IMetadatam_local_meta = nullptr

Static Private Attributes

static const luaL_Reg methodsServer []
static const luaL_Reg methodsClient []

Additional Inherited Members

Protected Member Functions inherited from LuaHelper
template<>
bool readParam (lua_State *L, int index)
template<>
s16 readParam (lua_State *L, int index)
template<>
int readParam (lua_State *L, int index)
template<>
float readParam (lua_State *L, int index)
template<>
v2s16 readParam (lua_State *L, int index)
template<>
v2f readParam (lua_State *L, int index)
template<>
v3f readParam (lua_State *L, int index)
template<>
std::string_view readParam (lua_State *L, int index)
template<>
std::string readParam (lua_State *L, int index)
template<>
std::string_view readParam (lua_State *L, int index)
 Read a string from Lua state L at index without copying it.
Static Protected Member Functions inherited from MetaDataRef
template<class T>
static void registerMetadataClass (lua_State *L, const luaL_Reg *methods)
static int gc_object (lua_State *L)
static int l_contains (lua_State *L)
static int l_get (lua_State *L)
static int l_get_string (lua_State *L)
static int l_set_string (lua_State *L)
static int l_get_int (lua_State *L)
static int l_set_int (lua_State *L)
static int l_get_float (lua_State *L)
static int l_set_float (lua_State *L)
static int l_get_keys (lua_State *L)
static int l_to_table (lua_State *L)
static int l_from_table (lua_State *L)
static int l_equals (lua_State *L)
Static Protected Member Functions inherited from LuaHelper
template<typename T>
static T readParam (lua_State *L, int index)
 Read a value using a template type T from Lua state L at index.
template<typename T>
static T readParam (lua_State *L, int index, const T &default_value)
 Read a value using a template type T from Lua state L at index.

Constructor & Destructor Documentation

◆ NodeMetaRef() [1/2]

NodeMetaRef::NodeMetaRef ( v3s16 p,
ServerEnvironment * env )

References m_env, m_p, and p().

Referenced by create(), createClient(), l_get_inventory(), and l_mark_as_private().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ NodeMetaRef() [2/2]

NodeMetaRef::NodeMetaRef ( IMetadata * meta)

References m_is_local, and m_local_meta.

◆ ~NodeMetaRef()

NodeMetaRef::~NodeMetaRef ( )
default

References p().

Here is the call graph for this function:

Member Function Documentation

◆ clearMeta()

void NodeMetaRef::clearMeta ( )
privatevirtual

Implements MetaDataRef.

References m_env, m_is_local, m_p, and SANITY_CHECK.

Referenced by reportMetadataChange().

Here is the caller graph for this function:

◆ create()

void NodeMetaRef::create ( lua_State * L,
v3s16 p,
ServerEnvironment * env )
static

References NodeMetaRef(), className, and p().

Referenced by ModApiEnv::l_get_meta().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ createClient()

void NodeMetaRef::createClient ( lua_State * L,
IMetadata * meta )
static

References NodeMetaRef(), and className.

Referenced by ModApiClient::l_get_meta().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getmeta()

IMetadata * NodeMetaRef::getmeta ( bool auto_create)
privatevirtual

Retrieve metadata for a node.

If auto_create is set and the specified node has no metadata information associated with it yet, the method attempts to attach a new metadata object to the node and returns a pointer to the metadata when successful.

However, it is NOT guaranteed that the method will return a pointer, and NULL may be returned in case of an error regardless of auto_create.

Parameters
refspecifies the node for which the associated metadata is retrieved.
auto_createwhen true, try to create metadata information for the node if it has none.
Returns
pointer to a NodeMetadata object or NULL in case of error.

Implements MetaDataRef.

References m_env, m_is_local, m_local_meta, and m_p.

Referenced by l_get_inventory(), l_mark_as_private(), and reportMetadataChange().

Here is the caller graph for this function:

◆ handleFromTable()

bool NodeMetaRef::handleFromTable ( lua_State * L,
int table,
IMetadata * _meta )
privatevirtual

Reimplemented from MetaDataRef.

References ModApiBase::getGameDef(), NodeMetadata::getInventory(), MetaDataRef::handleFromTable(), read_inventory_list(), and table.

Here is the call graph for this function:

◆ handleToTable()

void NodeMetaRef::handleToTable ( lua_State * L,
IMetadata * _meta )
privatevirtual

Reimplemented from MetaDataRef.

References NodeMetadata::getInventory(), MetaDataRef::handleToTable(), and push_inventory_lists().

Here is the call graph for this function:

◆ l_get_inventory()

int NodeMetaRef::l_get_inventory ( lua_State * L)
staticprivate

References NodeMetaRef(), ModApiBase::checkObject(), InvRef::create(), getmeta(), m_p, MAP_LOCK_REQUIRED, and InventoryLocation::setNodeMeta().

Here is the call graph for this function:

◆ l_mark_as_private()

int NodeMetaRef::l_mark_as_private ( lua_State * L)
staticprivate

References NodeMetaRef(), ModApiBase::checkObject(), getmeta(), MAP_LOCK_REQUIRED, NodeMetadata::markPrivate(), LuaHelper::readParam(), and reportMetadataChange().

Here is the call graph for this function:

◆ Register()

void NodeMetaRef::Register ( lua_State * L)
static

References methodsServer, and MetaDataRef::registerMetadataClass().

Referenced by ServerScripting::InitializeModApi().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RegisterClient()

void NodeMetaRef::RegisterClient ( lua_State * L)
static

References methodsClient, and MetaDataRef::registerMetadataClass().

Referenced by ClientScripting::InitializeModApi().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ reportMetadataChange()

void NodeMetaRef::reportMetadataChange ( const std::string * name = nullptr)
privatevirtual

Reimplemented from MetaDataRef.

References clearMeta(), NodeMetadata::empty(), getmeta(), NodeMetadata::isPrivate(), m_env, m_is_local, m_p, MEET_BLOCK_NODE_METADATA_CHANGED, SANITY_CHECK, and MapEditEvent::type.

Referenced by l_mark_as_private().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ className

const char NodeMetaRef::className = "NodeMetaRef"
static

Referenced by create(), and createClient().

◆ m_env

ServerEnvironment* NodeMetaRef::m_env = nullptr
private

◆ m_is_local

bool NodeMetaRef::m_is_local = false
private

◆ m_local_meta

IMetadata* NodeMetaRef::m_local_meta = nullptr
private

Referenced by NodeMetaRef(), and getmeta().

◆ m_p

v3s16 NodeMetaRef::m_p
private

◆ methodsClient

const luaL_Reg NodeMetaRef::methodsClient
staticprivate
Initial value:
= {
luamethod(MetaDataRef, contains),
luamethod(MetaDataRef, get_string),
luamethod(MetaDataRef, get_float),
luamethod(MetaDataRef, get_keys),
luamethod(MetaDataRef, to_table),
{0,0}
}
Definition l_metadata.h:18
#define luamethod(class, name)
Definition l_internal.h:16

Referenced by RegisterClient().

◆ methodsServer

const luaL_Reg NodeMetaRef::methodsServer
staticprivate
Initial value:
= {
luamethod(MetaDataRef, contains),
luamethod(MetaDataRef, get_string),
luamethod(MetaDataRef, set_string),
luamethod(MetaDataRef, get_float),
luamethod(MetaDataRef, set_float),
luamethod(MetaDataRef, get_keys),
luamethod(MetaDataRef, to_table),
luamethod(MetaDataRef, from_table),
luamethod(NodeMetaRef, get_inventory),
luamethod(NodeMetaRef, mark_as_private),
{0,0}
}
NodeMetaRef(v3s16 p, ServerEnvironment *env)
Definition l_nodemeta.cpp:154

Referenced by Register().


The documentation for this class was generated from the following files: