]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/script/lua_api/l_nodemeta.h
Script API: Check that SAOs are still usable before attempting to use them
[dragonfireclient.git] / src / script / lua_api / l_nodemeta.h
index 2ac028079aa62134aee8b27c6ede7a95dbdabc56..fdc1766ed2073063fbf48ef8bf3f280186b30543 100644 (file)
@@ -16,8 +16,8 @@ You should have received a copy of the GNU Lesser General Public License along
 with this program; if not, write to the Free Software Foundation, Inc.,
 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
-#ifndef L_NODEMETA_H_
-#define L_NODEMETA_H_
+
+#pragma once
 
 #include "lua_api/l_base.h"
 #include "lua_api/l_metadata.h"
@@ -34,9 +34,9 @@ class NodeMetadata;
 class NodeMetaRef : public MetaDataRef {
 private:
        v3s16 m_p;
-       ServerEnvironment *m_env;
-       Metadata *m_meta;
-       bool m_is_local;
+       ServerEnvironment *m_env = nullptr;
+       Metadata *m_meta = nullptr;
+       bool m_is_local = false;
 
        static const char className[];
        static const luaL_Reg methodsServer[];
@@ -60,7 +60,7 @@ class NodeMetaRef : public MetaDataRef {
        virtual Metadata* getmeta(bool auto_create);
        virtual void clearMeta();
 
-       virtual void reportMetadataChange();
+       virtual void reportMetadataChange(const std::string *name = nullptr);
 
        virtual void handleToTable(lua_State *L, Metadata *_meta);
        virtual bool handleFromTable(lua_State *L, int table, Metadata *_meta);
@@ -73,11 +73,14 @@ class NodeMetaRef : public MetaDataRef {
        // get_inventory(self)
        static int l_get_inventory(lua_State *L);
 
+       // mark_as_private(self, <string> or {<string>, <string>, ...})
+       static int l_mark_as_private(lua_State *L);
+
 public:
        NodeMetaRef(v3s16 p, ServerEnvironment *env);
        NodeMetaRef(Metadata *meta);
 
-       ~NodeMetaRef();
+       ~NodeMetaRef() = default;
 
        // Creates an NodeMetaRef and leaves it on top of stack
        // Not callable from Lua; all references are created on the C side.
@@ -90,5 +93,3 @@ class NodeMetaRef : public MetaDataRef {
        static void Register(lua_State *L);
        static void RegisterClient(lua_State *L);
 };
-
-#endif /* L_NODEMETA_H_ */