diff options
author | ShadowNinja <shadowninja@minetest.net> | 2014-01-23 19:21:01 -0500 |
---|---|---|
committer | ShadowNinja <shadowninja@minetest.net> | 2014-01-23 19:21:56 -0500 |
commit | 76d4396fa148a44f6aaee38d188d4c2cf8c90c7f (patch) | |
tree | 45dd3008454d86197bbf7a732bc5ceedd7b2a032 /src/script | |
parent | cd7e8372f3c83531afe5d5c2460ecb95540f9d0d (diff) | |
download | minetest-76d4396fa148a44f6aaee38d188d4c2cf8c90c7f.tar.gz minetest-76d4396fa148a44f6aaee38d188d4c2cf8c90c7f.tar.bz2 minetest-76d4396fa148a44f6aaee38d188d4c2cf8c90c7f.zip |
Pass pointed_thing to on_punch and minetest.register_on_punchnode callbacks
Diffstat (limited to 'src/script')
-rw-r--r-- | src/script/cpp_api/s_item.h | 1 | ||||
-rw-r--r-- | src/script/cpp_api/s_node.cpp | 6 | ||||
-rw-r--r-- | src/script/cpp_api/s_node.h | 2 | ||||
-rw-r--r-- | src/script/lua_api/l_env.cpp | 2 |
4 files changed, 6 insertions, 5 deletions
diff --git a/src/script/cpp_api/s_item.h b/src/script/cpp_api/s_item.h index 4964dd5b4..cca1641fd 100644 --- a/src/script/cpp_api/s_item.h +++ b/src/script/cpp_api/s_item.h @@ -52,7 +52,6 @@ protected: friend class ModApiItemMod; bool getItemCallback(const char *name, const char *callbackname); -private: void pushPointedThing(const PointedThing& pointed); }; diff --git a/src/script/cpp_api/s_node.cpp b/src/script/cpp_api/s_node.cpp index cd8451cf0..55db43584 100644 --- a/src/script/cpp_api/s_node.cpp +++ b/src/script/cpp_api/s_node.cpp @@ -24,6 +24,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "nodedef.h" #include "server.h" #include "environment.h" +#include "util/pointedthing.h" struct EnumString ScriptApiNode::es_DrawType[] = @@ -87,7 +88,7 @@ ScriptApiNode::~ScriptApiNode() { } bool ScriptApiNode::node_on_punch(v3s16 p, MapNode node, - ServerActiveObject *puncher) + ServerActiveObject *puncher, PointedThing pointed) { SCRIPTAPI_PRECHECKHEADER @@ -104,7 +105,8 @@ bool ScriptApiNode::node_on_punch(v3s16 p, MapNode node, push_v3s16(L, p); pushnode(L, node, ndef); objectrefGetOrCreate(puncher); - if(lua_pcall(L, 3, 0, errorhandler)) + pushPointedThing(pointed); + if(lua_pcall(L, 4, 0, errorhandler)) scriptError(); lua_pop(L, 1); // Pop error handler return true; diff --git a/src/script/cpp_api/s_node.h b/src/script/cpp_api/s_node.h index 517b4b04e..b3a6c83b5 100644 --- a/src/script/cpp_api/s_node.h +++ b/src/script/cpp_api/s_node.h @@ -38,7 +38,7 @@ public: virtual ~ScriptApiNode(); bool node_on_punch(v3s16 p, MapNode node, - ServerActiveObject *puncher); + ServerActiveObject *puncher, PointedThing pointed); bool node_on_dig(v3s16 p, MapNode node, ServerActiveObject *digger); void node_on_construct(v3s16 p, MapNode node); diff --git a/src/script/lua_api/l_env.cpp b/src/script/lua_api/l_env.cpp index f75334750..6447866cd 100644 --- a/src/script/lua_api/l_env.cpp +++ b/src/script/lua_api/l_env.cpp @@ -273,7 +273,7 @@ int ModApiEnvMod::l_punch_node(lua_State *L) } // Punch it with a NULL puncher (appears in Lua as a non-functional // ObjectRef) - bool success = scriptIfaceNode->node_on_punch(pos, n, NULL); + bool success = scriptIfaceNode->node_on_punch(pos, n, NULL, PointedThing()); lua_pushboolean(L, success); return 1; } |