forked from VoxeLibre/VoxeLibre
Add new `supported_node_facedir` group and apply it to item frames
This group acts similarly to `supported_node`: it checks whether the node behind is airlike (in which case the node is dropped as an item). This change should fix item frames not placing on chests and similar blocks, as reported by Bear123 on Discord.
This commit is contained in:
parent
3b1c55c234
commit
997fe6ecc4
|
@ -94,5 +94,16 @@ function minetest.check_single_for_falling(pos)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if get_item_group(node.name, "supported_node_facedir") ~= 0 then
|
||||||
|
local dir = facedir_to_dir(node.param2)
|
||||||
|
if dir then
|
||||||
|
local def = registered_nodes[get_node(vector.add(pos, dir)).name]
|
||||||
|
if def and def.drawtype == "airlike" then
|
||||||
|
drop_attached_node(pos)
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
|
@ -638,7 +638,7 @@ function mcl_itemframes.create_base_definitions()
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
sunlight_propagates = true,
|
sunlight_propagates = true,
|
||||||
groups = { dig_immediate = 3, deco_block = 1, dig_by_piston = 1, container = 1, attached_node_facedir = 1 },
|
groups = { dig_immediate = 3, deco_block = 1, dig_by_piston = 1, container = 1, supported_node_facedir = 1 },
|
||||||
sounds = mcl_sounds.node_sound_defaults(),
|
sounds = mcl_sounds.node_sound_defaults(),
|
||||||
node_placement_prediction = "",
|
node_placement_prediction = "",
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue