1
0
mirror of https://github.com/minetest/minetest_game.git synced 2024-11-16 23:10:18 +01:00

Add API doors : Sound for door open and close.

This commit is contained in:
Jat 2014-08-04 18:28:09 +02:00 committed by BlockMen
parent 5b5aa493b5
commit 5dbc738dbd
2 changed files with 16 additions and 6 deletions

View File

@ -46,6 +46,8 @@ The doors mod allows modders to register custom doors.
node_box_top = regular nodebox, see [Node boxes], OPTIONAL, node_box_top = regular nodebox, see [Node boxes], OPTIONAL,
selection_box_bottom = regular nodebox, see [Node boxes], OPTIONAL, selection_box_bottom = regular nodebox, see [Node boxes], OPTIONAL,
selection_box_top = regular nodebox, see [Node boxes], OPTIONAL, selection_box_top = regular nodebox, see [Node boxes], OPTIONAL,
sound_open_door = sound play for open door, OPTIONAL,
sound_close_door = sound play for close door, OPTIONAL,
only_placer_can_open = true/false, only_placer_can_open = true/false,
^ If true, only placer can open the door (locked for others) ^ If true, only placer can open the door (locked for others)
} }

View File

@ -46,6 +46,14 @@ function doors.register_door(name, def)
def.selection_box_top = box def.selection_box_top = box
end end
if not def.sound_close_door then
def.sound_close_door = "door_close"
end
if not def.sound_open_door then
def.sound_open_door = "door_open"
end
minetest.register_craftitem(name, { minetest.register_craftitem(name, {
description = def.description, description = def.description,
inventory_image = def.inventory_image, inventory_image = def.inventory_image,
@ -138,17 +146,17 @@ function doors.register_door(name, def)
pos.y = pos.y-dir pos.y = pos.y-dir
minetest.swap_node(pos, {name=replace, param2=p2}) minetest.swap_node(pos, {name=replace, param2=p2})
local snd_1 = "_close" local snd_1 = def.sound_close_door
local snd_2 = "_open" local snd_2 = def.sound_open_door
if params[1] == 3 then if params[1] == 3 then
snd_1 = "_open" snd_1 = def.sound_open_door
snd_2 = "_close" snd_2 = def.sound_close_door
end end
if is_right(pos) then if is_right(pos) then
minetest.sound_play("door"..snd_1, {pos = pos, gain = 0.3, max_hear_distance = 10}) minetest.sound_play(snd_1, {pos = pos, gain = 0.3, max_hear_distance = 10})
else else
minetest.sound_play("door"..snd_2, {pos = pos, gain = 0.3, max_hear_distance = 10}) minetest.sound_play(snd_2, {pos = pos, gain = 0.3, max_hear_distance = 10})
end end
end end