X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Fscript%2Fcpp_api%2Fs_node.cpp;h=e0f9bcd78222a353119189f99e5739e5b0e8d150;hb=dd5a732fa90550066bb96305b64b6648903cc822;hp=c8f85317e63051505a013b6591b3144712579afc;hpb=c0dac4d9284b61c5ff411cbd45786ed14c200f37;p=dragonfireclient.git diff --git a/src/script/cpp_api/s_node.cpp b/src/script/cpp_api/s_node.cpp index c8f85317e..e0f9bcd78 100644 --- a/src/script/cpp_api/s_node.cpp +++ b/src/script/cpp_api/s_node.cpp @@ -94,16 +94,16 @@ struct EnumString ScriptApiNode::es_NodeBoxType[] = }; bool ScriptApiNode::node_on_punch(v3s16 p, MapNode node, - ServerActiveObject *puncher, PointedThing pointed) + ServerActiveObject *puncher, const PointedThing &pointed) { SCRIPTAPI_PRECHECKHEADER 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 @@ -123,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 @@ -144,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 @@ -162,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 @@ -180,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 @@ -192,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); + return readParam(L, -1, false); } void ScriptApiNode::node_after_destruct(v3s16 p, MapNode node) @@ -201,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 @@ -220,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 @@ -231,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); + return readParam(L, -1, false); } void ScriptApiNode::node_on_receive_fields(v3s16 p, @@ -243,15 +243,15 @@ 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); + MapNode node = getEnv()->getMap().getNode(p); if (node.getContent() == CONTENT_IGNORE) 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