};
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
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
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
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
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
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<bool>(L, -1, false);
}
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
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
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<bool>(L, -1, false);
}
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