forked from VoxeLibre/VoxeLibre
Merge pull request 'Solving ladder placement issues' (#4596) from goodspeed/VoxeLibre:ladder-logic into master
Reviewed-on: VoxeLibre/VoxeLibre#4596 Reviewed-by: Mikita Wiśniewski <rudzik8@protonmail.com>
This commit is contained in:
commit
a687ef19f6
|
@ -40,7 +40,7 @@ end
|
||||||
minetest.register_node("mcl_core:ladder", {
|
minetest.register_node("mcl_core:ladder", {
|
||||||
description = S("Ladder"),
|
description = S("Ladder"),
|
||||||
_doc_items_longdesc = S(
|
_doc_items_longdesc = S(
|
||||||
"A piece of ladder which allows you to climb vertically. Ladders can only be placed on the side of solid blocks and not on glass, leaves, ice, slabs, glowstone, nor sea lanterns."),
|
"A piece of ladder which allows you to climb vertically. Ladders can only be placed on the side of solid blocks."),
|
||||||
drawtype = "signlike",
|
drawtype = "signlike",
|
||||||
is_ground_content = false,
|
is_ground_content = false,
|
||||||
tiles = { "default_ladder.png" },
|
tiles = { "default_ladder.png" },
|
||||||
|
@ -85,9 +85,8 @@ minetest.register_node("mcl_core:ladder", {
|
||||||
end
|
end
|
||||||
local groups = def.groups
|
local groups = def.groups
|
||||||
|
|
||||||
-- Don't allow to place the ladder at particular nodes
|
-- Don't allow to place the ladder at non-solid nodes
|
||||||
if (groups and (groups.glass or groups.leaves or groups.slab)) or
|
if (groups and (not groups.solid)) then
|
||||||
node.name == "mcl_core:ladder" or node.name == "mcl_core:ice" or node.name == "mcl_nether:glowstone" or node.name == "mcl_ocean:sea_lantern" then
|
|
||||||
return itemstack
|
return itemstack
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -105,9 +104,10 @@ minetest.register_node("mcl_core:ladder", {
|
||||||
return itemstack
|
return itemstack
|
||||||
end
|
end
|
||||||
local idef = itemstack:get_definition()
|
local idef = itemstack:get_definition()
|
||||||
local success = minetest.item_place_node(itemstack, placer, pointed_thing)
|
local itemstack, pos = minetest.item_place_node(itemstack, placer, pointed_thing)
|
||||||
|
|
||||||
if success then
|
-- A non-nil pos indicates the node was placed in a valid position.
|
||||||
|
if pos then
|
||||||
if idef.sounds and idef.sounds.place then
|
if idef.sounds and idef.sounds.place then
|
||||||
minetest.sound_play(idef.sounds.place, { pos = above, gain = 1 }, true)
|
minetest.sound_play(idef.sounds.place, { pos = above, gain = 1 }, true)
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue