]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/script/cpp_api/s_node.cpp
Add player inventory callbacks
[dragonfireclient.git] / src / script / cpp_api / s_node.cpp
index d1b2723dfa21baad418b91c6a903b72735d90f2d..11c08811fe50e890aeb4e70f56f7acfbc653dbac 100644 (file)
@@ -47,6 +47,7 @@ struct EnumString ScriptApiNode::es_DrawType[] =
                {NDT_FIRELIKE, "firelike"},
                {NDT_GLASSLIKE_FRAMED_OPTIONAL, "glasslike_framed_optional"},
                {NDT_MESH, "mesh"},
+               {NDT_PLANTLIKE_ROOTED, "plantlike_rooted"},
                {0, NULL},
        };
 
@@ -92,12 +93,6 @@ struct EnumString ScriptApiNode::es_NodeBoxType[] =
                {0, NULL},
        };
 
-ScriptApiNode::ScriptApiNode() {
-}
-
-ScriptApiNode::~ScriptApiNode() {
-}
-
 bool ScriptApiNode::node_on_punch(v3s16 p, MapNode node,
                ServerActiveObject *puncher, PointedThing pointed)
 {
@@ -105,10 +100,10 @@ bool ScriptApiNode::node_on_punch(v3s16 p, MapNode node,
 
        int error_handler = PUSH_ERROR_HANDLER(L);
 
-       INodeDefManager *ndef = getServer()->ndef();
+       const NodeDefManager *ndef = getServer()->ndef();
 
        // Push callback function on stack
-       if (!getItemCallback(ndef->get(node).name.c_str(), "on_punch"))
+       if (!getItemCallback(ndef->get(node).name.c_str(), "on_punch", &p))
                return false;
 
        // Call function
@@ -128,10 +123,10 @@ bool ScriptApiNode::node_on_dig(v3s16 p, MapNode node,
 
        int error_handler = PUSH_ERROR_HANDLER(L);
 
-       INodeDefManager *ndef = getServer()->ndef();
+       const NodeDefManager *ndef = getServer()->ndef();
 
        // Push callback function on stack
-       if (!getItemCallback(ndef->get(node).name.c_str(), "on_dig"))
+       if (!getItemCallback(ndef->get(node).name.c_str(), "on_dig", &p))
                return false;
 
        // Call function
@@ -149,10 +144,10 @@ void ScriptApiNode::node_on_construct(v3s16 p, MapNode node)
 
        int error_handler = PUSH_ERROR_HANDLER(L);
 
-       INodeDefManager *ndef = getServer()->ndef();
+       const NodeDefManager *ndef = getServer()->ndef();
 
        // Push callback function on stack
-       if (!getItemCallback(ndef->get(node).name.c_str(), "on_construct"))
+       if (!getItemCallback(ndef->get(node).name.c_str(), "on_construct", &p))
                return;
 
        // Call function
@@ -167,10 +162,10 @@ void ScriptApiNode::node_on_destruct(v3s16 p, MapNode node)
 
        int error_handler = PUSH_ERROR_HANDLER(L);
 
-       INodeDefManager *ndef = getServer()->ndef();
+       const NodeDefManager *ndef = getServer()->ndef();
 
        // Push callback function on stack
-       if (!getItemCallback(ndef->get(node).name.c_str(), "on_destruct"))
+       if (!getItemCallback(ndef->get(node).name.c_str(), "on_destruct", &p))
                return;
 
        // Call function
@@ -185,10 +180,10 @@ bool ScriptApiNode::node_on_flood(v3s16 p, MapNode node, MapNode newnode)
 
        int error_handler = PUSH_ERROR_HANDLER(L);
 
-       INodeDefManager *ndef = getServer()->ndef();
+       const NodeDefManager *ndef = getServer()->ndef();
 
        // Push callback function on stack
-       if (!getItemCallback(ndef->get(node).name.c_str(), "on_flood"))
+       if (!getItemCallback(ndef->get(node).name.c_str(), "on_flood", &p))
                return false;
 
        // Call function
@@ -197,7 +192,7 @@ bool ScriptApiNode::node_on_flood(v3s16 p, MapNode node, MapNode newnode)
        pushnode(L, newnode, ndef);
        PCALL_RES(lua_pcall(L, 3, 1, error_handler));
        lua_remove(L, error_handler);
-       return (bool) lua_isboolean(L, -1) && (bool) lua_toboolean(L, -1) == true;
+       return (bool) lua_isboolean(L, -1) && (bool) lua_toboolean(L, -1);
 }
 
 void ScriptApiNode::node_after_destruct(v3s16 p, MapNode node)
@@ -206,10 +201,10 @@ void ScriptApiNode::node_after_destruct(v3s16 p, MapNode node)
 
        int error_handler = PUSH_ERROR_HANDLER(L);
 
-       INodeDefManager *ndef = getServer()->ndef();
+       const NodeDefManager *ndef = getServer()->ndef();
 
        // Push callback function on stack
-       if (!getItemCallback(ndef->get(node).name.c_str(), "after_destruct"))
+       if (!getItemCallback(ndef->get(node).name.c_str(), "after_destruct", &p))
                return;
 
        // Call function
@@ -225,10 +220,10 @@ bool ScriptApiNode::node_on_timer(v3s16 p, MapNode node, f32 dtime)
 
        int error_handler = PUSH_ERROR_HANDLER(L);
 
-       INodeDefManager *ndef = getServer()->ndef();
+       const NodeDefManager *ndef = getServer()->ndef();
 
        // Push callback function on stack
-       if (!getItemCallback(ndef->get(node).name.c_str(), "on_timer"))
+       if (!getItemCallback(ndef->get(node).name.c_str(), "on_timer", &p))
                return false;
 
        // Call function
@@ -236,7 +231,7 @@ bool ScriptApiNode::node_on_timer(v3s16 p, MapNode node, f32 dtime)
        lua_pushnumber(L,dtime);
        PCALL_RES(lua_pcall(L, 2, 1, error_handler));
        lua_remove(L, error_handler);
-       return (bool) lua_isboolean(L, -1) && (bool) lua_toboolean(L, -1) == true;
+       return (bool) lua_isboolean(L, -1) && (bool) lua_toboolean(L, -1);
 }
 
 void ScriptApiNode::node_on_receive_fields(v3s16 p,
@@ -248,7 +243,7 @@ void ScriptApiNode::node_on_receive_fields(v3s16 p,
 
        int error_handler = PUSH_ERROR_HANDLER(L);
 
-       INodeDefManager *ndef = getServer()->ndef();
+       const NodeDefManager *ndef = getServer()->ndef();
 
        // If node doesn't exist, we don't know what callback to call
        MapNode node = getEnv()->getMap().getNodeNoEx(p);
@@ -256,7 +251,7 @@ void ScriptApiNode::node_on_receive_fields(v3s16 p,
                return;
 
        // Push callback function on stack
-       if (!getItemCallback(ndef->get(node).name.c_str(), "on_receive_fields"))
+       if (!getItemCallback(ndef->get(node).name.c_str(), "on_receive_fields", &p))
                return;
 
        // Call function
@@ -275,27 +270,3 @@ void ScriptApiNode::node_on_receive_fields(v3s16 p,
        PCALL_RES(lua_pcall(L, 4, 0, error_handler));
        lua_pop(L, 1);  // Pop error handler
 }
-
-void ScriptApiNode::node_falling_update(v3s16 p)
-{
-       SCRIPTAPI_PRECHECKHEADER
-
-       int error_handler = PUSH_ERROR_HANDLER(L);
-
-       lua_getglobal(L, "nodeupdate");
-       push_v3s16(L, p);
-       PCALL_RES(lua_pcall(L, 1, 0, error_handler));
-       lua_pop(L, 1);  // Pop error handler
-}
-
-void ScriptApiNode::node_falling_update_single(v3s16 p)
-{
-       SCRIPTAPI_PRECHECKHEADER
-
-       int error_handler = PUSH_ERROR_HANDLER(L);
-
-       lua_getglobal(L, "nodeupdate_single");
-       push_v3s16(L, p);
-       PCALL_RES(lua_pcall(L, 1, 0, error_handler));
-       lua_pop(L, 1);  // Pop error handler
-}