summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzaoqi <zaomir@outlook.com>2017-03-05 01:36:37 +0800
committerLoïc Blot <nerzhul@users.noreply.github.com>2017-03-04 18:36:37 +0100
commitc9ac722ea9ab3783bf59e7cb991bfb3a91211490 (patch)
treee56a33e91e932a1f4f4eea7671447e6ee766c163
parent6de83a2756316653ed67b23bbeb0fb43aa2a68c6 (diff)
downloadminetest-c9ac722ea9ab3783bf59e7cb991bfb3a91211490.tar.gz
minetest-c9ac722ea9ab3783bf59e7cb991bfb3a91211490.tar.bz2
minetest-c9ac722ea9ab3783bf59e7cb991bfb3a91211490.zip
Add minetest.spawn_falling_node(pos) (#5339)
* Add minetest.spawn_falling_node(pos) * lua_api.txt: Add minetest.spawn_falling_node(pos) * Update minetest.spawn_falling_node(pos)
-rw-r--r--builtin/game/falling.lua14
-rw-r--r--doc/lua_api.txt3
2 files changed, 17 insertions, 0 deletions
diff --git a/builtin/game/falling.lua b/builtin/game/falling.lua
index 5ef5289be..764909361 100644
--- a/builtin/game/falling.lua
+++ b/builtin/game/falling.lua
@@ -118,6 +118,20 @@ local function spawn_falling_node(p, node)
end
end
+function core.spawn_falling_node(pos)
+ local node = core.get_node(pos)
+ if node.name == "air" or node.name == "ignore" then
+ return false
+ end
+ local obj = core.add_entity(pos, "__builtin:falling_node")
+ if obj then
+ obj:get_luaentity():set_node(node)
+ core.remove_node(pos)
+ return true
+ end
+ return false
+end
+
local function drop_attached_node(p)
local nn = core.get_node(p).name
core.remove_node(p)
diff --git a/doc/lua_api.txt b/doc/lua_api.txt
index 7b956dc74..23aac90d9 100644
--- a/doc/lua_api.txt
+++ b/doc/lua_api.txt
@@ -2219,6 +2219,9 @@ and `minetest.auth_reload` call the authetification handler.
* Returns `true` if successful, `false` on failure (e.g. protected location)
* `minetest.punch_node(pos)`
* Punch node with the same effects that a player would cause
+* `minetest.spawn_falling_node(pos)`
+ * Change node into falling node
+ * Returns `true` if successful, `false` on failure
* `minetest.find_nodes_with_meta(pos1, pos2)`
* Get a table of positions of nodes that have metadata within a region {pos1, pos2}