#include <l_nodemeta.h>
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 MetaDataRef * | checkAnyMetadata (lua_State *L, int narg) |
Static Public Member Functions inherited from ModApiBase | |
static ScriptApiBase * | getScriptApiBase (lua_State *L) |
static Server * | getServer (lua_State *L) |
static ServerInventoryManager * | getServerInventoryMgr (lua_State *L) |
static EmergeThread * | getEmergeThread (lua_State *L) |
static IGameDef * | getGameDef (lua_State *L) |
static Environment * | getEnv (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) |
static void | registerClass (lua_State *L, const char *name, 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 IMetadata * | getmeta (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 |
ServerEnvironment * | m_env = nullptr |
IMetadata * | m_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 | |
static void | registerMetadataClass (lua_State *L, const char *name, 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. | |
NodeMetaRef::NodeMetaRef | ( | v3s16 | p, |
ServerEnvironment * | env ) |
NodeMetaRef::NodeMetaRef | ( | IMetadata * | meta | ) |
|
default |
|
privatevirtual |
Implements MetaDataRef.
References ServerEnvironment::getMap(), m_env, m_is_local, m_p, Map::removeNodeMetadata(), and SANITY_CHECK.
Referenced by reportMetadataChange().
|
static |
References NodeMetaRef(), className, and p().
Referenced by ModApiEnv::l_get_meta().
|
static |
References NodeMetaRef(), and className.
Referenced by ModApiClient::l_get_meta().
|
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
.
ref | specifies the node for which the associated metadata is retrieved. |
auto_create | when true, try to create metadata information for the node if it has none. |
NodeMetadata
object or NULL
in case of error. Implements MetaDataRef.
References ServerEnvironment::getGameDef(), ServerEnvironment::getMap(), Map::getNodeMetadata(), IGameDef::idef(), m_env, m_is_local, m_local_meta, m_p, and Map::setNodeMetadata().
Referenced by l_get_inventory(), l_mark_as_private(), and reportMetadataChange().
|
privatevirtual |
Reimplemented from MetaDataRef.
References ModApiBase::getGameDef(), NodeMetadata::getInventory(), MetaDataRef::handleFromTable(), read_inventory_list(), and table.
|
privatevirtual |
Reimplemented from MetaDataRef.
References NodeMetadata::getInventory(), MetaDataRef::handleToTable(), and push_inventory_lists().
|
staticprivate |
References ModApiBase::checkObject(), InvRef::create(), getmeta(), m_p, MAP_LOCK_REQUIRED, and InventoryLocation::setNodeMeta().
|
staticprivate |
References ModApiBase::checkObject(), getmeta(), MAP_LOCK_REQUIRED, NodeMetadata::markPrivate(), LuaHelper::readParam(), and reportMetadataChange().
|
static |
References className, methodsServer, and MetaDataRef::registerMetadataClass().
Referenced by ServerScripting::InitializeModApi().
|
static |
References className, methodsClient, and MetaDataRef::registerMetadataClass().
Referenced by ClientScripting::InitializeModApi().
|
privatevirtual |
Reimplemented from MetaDataRef.
References clearMeta(), Map::dispatchEvent(), NodeMetadata::empty(), ServerEnvironment::getMap(), 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().
|
static |
Referenced by create(), createClient(), Register(), and RegisterClient().
|
private |
Referenced by clearMeta(), getmeta(), and reportMetadataChange().
|
private |
Referenced by clearMeta(), getmeta(), and reportMetadataChange().
|
private |
Referenced by clearMeta(), getmeta(), l_get_inventory(), and reportMetadataChange().
|
staticprivate |
Referenced by RegisterClient().
|
staticprivate |
Referenced by Register().