forked from MineClone5/MineClone5
New way to attach node: attached_node_facedir
This commit is contained in:
parent
dfc0d52372
commit
1505290e24
|
@ -48,6 +48,7 @@ Please read <http://minecraft.gamepedia.com/Breaking> to learn how digging times
|
||||||
* `destroys_items=1`: If an item happens to be *inside* this node, the item will be destroyed
|
* `destroys_items=1`: If an item happens to be *inside* this node, the item will be destroyed
|
||||||
* `no_eat_delay=1`: Only for foodstuffs. When eating this, all eating delays are ignored.
|
* `no_eat_delay=1`: Only for foodstuffs. When eating this, all eating delays are ignored.
|
||||||
* `can_eat_when_full=1`: Only for foodstuffs. This item can be eaten when the user has a full hunger bar
|
* `can_eat_when_full=1`: Only for foodstuffs. This item can be eaten when the user has a full hunger bar
|
||||||
|
* `attached_node_facedir=1`: Like `attached_node`, but for facedir nodes
|
||||||
|
|
||||||
#### Footnotes
|
#### Footnotes
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
Adds additional ways for nodes to be attached.
|
|
@ -0,0 +1,24 @@
|
||||||
|
local original_function = minetest.check_single_for_falling
|
||||||
|
|
||||||
|
minetest.check_single_for_falling = function(pos)
|
||||||
|
local ret_o = original_function(pos)
|
||||||
|
|
||||||
|
local ret = false
|
||||||
|
local node = minetest.get_node(pos)
|
||||||
|
if minetest.get_item_group(node.name, "attached_node_facedir") ~= 0 then
|
||||||
|
local dir = minetest.facedir_to_dir(node.param2)
|
||||||
|
local cpos = vector.add(pos, dir)
|
||||||
|
local cnode = minetest.get_node(cpos)
|
||||||
|
if minetest.get_item_group(cnode.name, "solid") == 0 then
|
||||||
|
minetest.remove_node(pos)
|
||||||
|
local drops = minetest.get_node_drops(node.name, "")
|
||||||
|
for dr=1, #drops do
|
||||||
|
minetest.add_item(pos, drops[dr])
|
||||||
|
end
|
||||||
|
ret = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return ret_o or ret
|
||||||
|
end
|
||||||
|
|
Loading…
Reference in New Issue