Added sounds for doors, drawers and floor clock
parent
e7b123063c
commit
6b6eb9e627
|
@ -85,7 +85,8 @@ function doors.convert_to_entity(pos)
|
|||
|
||||
minetest.remove_node(pos)
|
||||
|
||||
local is_open = minetest.registered_nodes[node.name].add_properties.door.mode == "open"
|
||||
local add_props = minetest.registered_nodes[node.name].add_properties
|
||||
local is_open = add_props.door.mode == "open"
|
||||
|
||||
local obj_name = is_open and node.name:gsub("_open", "") or node.name
|
||||
|
||||
|
@ -108,6 +109,10 @@ function doors.convert_to_entity(pos)
|
|||
rot = rot2
|
||||
end
|
||||
|
||||
if add_props.door.sounds and not is_open then
|
||||
minetest.sound_play(add_props.door.sounds.open, {pos=pos, max_hear_distance=10})
|
||||
end
|
||||
|
||||
local obj = minetest.add_entity(new_pos, obj_name)
|
||||
obj:set_rotation(rot)
|
||||
obj:set_properties({
|
||||
|
@ -129,6 +134,13 @@ function doors.convert_from_entity(obj)
|
|||
|
||||
local pos = obj:get_pos()
|
||||
local self = obj:get_luaentity()
|
||||
|
||||
local add_props = minetest.registered_nodes[self.name].add_properties
|
||||
|
||||
if add_props.door.sounds and self.action == "close" then
|
||||
minetest.sound_play(add_props.door.sounds.close, {pos=pos, max_hear_distance=10})
|
||||
end
|
||||
|
||||
obj:remove()
|
||||
|
||||
local name = self.action == "open" and self.name .. "_open" or self.name
|
||||
|
|
|
@ -105,6 +105,12 @@ function shelves.open_shelf(obj, dir_sign)
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
if shelf.sounds then
|
||||
local play_sound = dir_sign == 1 and shelf.sounds.open or shelf.sounds.close
|
||||
|
||||
minetest.sound_play(play_sound, {pos=obj:get_pos(), fade=1.0, max_hear_distance=10})
|
||||
end
|
||||
end
|
||||
|
||||
-- Adds shelf objects for the node with 'pos' position. They should save formspec inventory and position of the node which they are connected to
|
||||
|
@ -265,7 +271,7 @@ shelves.default_drawer_on_step = function(self)
|
|||
local target_pos = self.dir == 1 and self.end_v or self.start_v
|
||||
local dist = vector.distance(self.object:get_pos(), target_pos)
|
||||
|
||||
if dist <= 0.1 then
|
||||
if dist <= 0.05 then
|
||||
self.dir = 0
|
||||
self.object:set_velocity(vector.zero())
|
||||
self.object:set_pos(target_pos)
|
||||
|
|
|
@ -107,7 +107,11 @@ register.register_table("dresser_with_mirror", {
|
|||
pos = {x=-0.02, y=0.28, z=0},
|
||||
object = "modern:wooden_drawer_with_round_handle",
|
||||
length = 0.5,
|
||||
inv_size = {w=6,h=1}
|
||||
inv_size = {w=6,h=1},
|
||||
sounds = {
|
||||
open = "multidecor_drawer_open",
|
||||
close = "multidecor_drawer_close"
|
||||
}
|
||||
},
|
||||
{
|
||||
type = "drawer",
|
||||
|
@ -116,7 +120,11 @@ register.register_table("dresser_with_mirror", {
|
|||
pos = {x=-0.02, y=0, z=0},
|
||||
object = "modern:wooden_drawer_with_round_handle",
|
||||
length = 0.5,
|
||||
inv_size = {w=6,h=1}
|
||||
inv_size = {w=6,h=1},
|
||||
sounds = {
|
||||
open = "multidecor_drawer_open",
|
||||
close = "multidecor_drawer_close"
|
||||
}
|
||||
},
|
||||
{
|
||||
type = "drawer",
|
||||
|
@ -125,7 +133,11 @@ register.register_table("dresser_with_mirror", {
|
|||
pos = {x=-0.02, y=-0.28, z=0},
|
||||
object = "modern:wooden_drawer_with_round_handle",
|
||||
length = 0.5,
|
||||
inv_size = {w=6,h=1}
|
||||
inv_size = {w=6,h=1},
|
||||
sounds = {
|
||||
open = "multidecor_drawer_open",
|
||||
close = "multidecor_drawer_close"
|
||||
}
|
||||
},
|
||||
{
|
||||
type = "drawer",
|
||||
|
@ -134,7 +146,11 @@ register.register_table("dresser_with_mirror", {
|
|||
pos = {x=-1, y=0.28, z=0},
|
||||
object = "modern:wooden_drawer_with_round_handle",
|
||||
length = 0.5,
|
||||
inv_size = {w=6,h=1}
|
||||
inv_size = {w=6,h=1},
|
||||
sounds = {
|
||||
open = "multidecor_drawer_open",
|
||||
close = "multidecor_drawer_close"
|
||||
}
|
||||
},
|
||||
{
|
||||
type = "drawer",
|
||||
|
@ -143,7 +159,11 @@ register.register_table("dresser_with_mirror", {
|
|||
pos = {x=-1, y=0, z=0},
|
||||
object = "modern:wooden_drawer_with_round_handle",
|
||||
length = 0.5,
|
||||
inv_size = {w=6,h=1}
|
||||
inv_size = {w=6,h=1},
|
||||
sounds = {
|
||||
open = "multidecor_drawer_open",
|
||||
close = "multidecor_drawer_close"
|
||||
}
|
||||
},
|
||||
{
|
||||
type = "drawer",
|
||||
|
@ -152,7 +172,11 @@ register.register_table("dresser_with_mirror", {
|
|||
pos = {x=-1, y=-0.28, z=0},
|
||||
object = "modern:wooden_drawer_with_round_handle",
|
||||
length = 0.5,
|
||||
inv_size = {w=6,h=1}
|
||||
inv_size = {w=6,h=1},
|
||||
sounds = {
|
||||
open = "multidecor_drawer_open",
|
||||
close = "multidecor_drawer_close"
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
|
|
|
@ -16,7 +16,11 @@ register.register_door("high_dark_rusty_gate", {
|
|||
door = {
|
||||
mesh_open = "multidecor_high_dark_rusty_gate_open.b3d",
|
||||
mesh_activated = "multidecor_high_dark_rusty_gate_activated.b3d",
|
||||
vel = 100 -- degrees per sec
|
||||
vel = 90, -- degrees per sec
|
||||
sounds = {
|
||||
open = "multidecor_metallic_door_open",
|
||||
close = "multidecor_metallic_door_close"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -46,7 +50,11 @@ register.register_door("dark_rusty_gate", {
|
|||
door = {
|
||||
mesh_open = "multidecor_dark_rusty_gate_open.b3d",
|
||||
mesh_activated = "multidecor_dark_rusty_gate_activated.b3d",
|
||||
vel = 90 -- degrees per sec
|
||||
vel = 90, -- degrees per sec
|
||||
sounds = {
|
||||
open = "multidecor_metallic_door_open",
|
||||
close = "multidecor_metallic_door_close"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -70,7 +78,11 @@ register.register_door("wooden_door", {
|
|||
door = {
|
||||
mesh_open = "multidecor_modern_wooden_door_open.b3d",
|
||||
mesh_activated = "multidecor_modern_wooden_door_activated.b3d",
|
||||
vel = 90 -- degrees per sec
|
||||
vel = 100, -- degrees per sec
|
||||
sounds = {
|
||||
open = "multidecor_wooden_door_open",
|
||||
close = "multidecor_wooden_door_close"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -100,7 +112,11 @@ register.register_door("pine_glass_door", {
|
|||
door = {
|
||||
mesh_open = "multidecor_pine_glass_door_open.b3d",
|
||||
mesh_activated = "multidecor_pine_glass_door_activated.b3d",
|
||||
vel = 90 -- degrees per sec
|
||||
vel = 100, -- degrees per sec
|
||||
sounds = {
|
||||
open = "multidecor_wooden_door_open",
|
||||
close = "multidecor_wooden_door_close"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -130,7 +146,11 @@ register.register_door("technical_door", {
|
|||
door = {
|
||||
mesh_open = "multidecor_technical_door_open.b3d",
|
||||
mesh_activated = "multidecor_technical_door_activated.b3d",
|
||||
vel = 90 -- degrees per sec
|
||||
vel = 80, -- degrees per sec
|
||||
sounds = {
|
||||
open = "multidecor_metallic_door_open",
|
||||
close = "multidecor_metallic_door_close"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
|
@ -49,11 +49,17 @@ minetest.register_node(":multidecor:modern_floor_clock", {
|
|||
local meta = minetest.get_meta(pos)
|
||||
|
||||
if meta:get_string("is_activated") == "false" then
|
||||
wheel:set_animation({x=1, y=40}, 25.0, 0.0, true)
|
||||
wheel:set_animation({x=1, y=40}, 40.0, 0.0, true)
|
||||
meta:set_string("is_activated", "true")
|
||||
|
||||
local handle = minetest.sound_play("multidecor_clock_chime", {object=wheel, fade=1.0, max_hear_distance=10, loop=true})
|
||||
meta:set_string("sound_handle", minetest.serialize(handle))
|
||||
else
|
||||
wheel:set_animation({x=1, y=1}, 0.0)
|
||||
meta:set_string("is_activated", "false")
|
||||
|
||||
local handle = minetest.deserialize(meta:get_string("sound_handle"))
|
||||
minetest.sound_stop(handle)
|
||||
end
|
||||
end,
|
||||
after_destruct = function(pos)
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -92,7 +92,11 @@ register.register_table("modern_wooden_desk", {
|
|||
pos = {x=-1.15, y=0.225, z=0.025},
|
||||
object = "modern:wooden_drawer",
|
||||
length = 0.8,
|
||||
inv_size = {w=6,h=1}
|
||||
inv_size = {w=6,h=1},
|
||||
sounds = {
|
||||
open = "multidecor_drawer_open",
|
||||
close = "multidecor_drawer_close"
|
||||
}
|
||||
},
|
||||
{
|
||||
type = "door",
|
||||
|
@ -100,7 +104,11 @@ register.register_table("modern_wooden_desk", {
|
|||
object = "modern:wooden_door",
|
||||
side = "left",
|
||||
inv_size = {w=6,h=3},
|
||||
acc = 1
|
||||
acc = 1,
|
||||
sounds = {
|
||||
open = "multidecor_cabinet_door_open",
|
||||
close = "multidecor_cabinet_door_close"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -183,7 +191,11 @@ register.register_table("modern_bedside_table", {
|
|||
pos = {x=0, y=-0.22, z=0.2375},
|
||||
object = "modern:wooden_drawer",
|
||||
length = 0.8,
|
||||
inv_size = {w=6,h=1}
|
||||
inv_size = {w=6,h=1},
|
||||
sounds = {
|
||||
open = "multidecor_drawer_open",
|
||||
close = "multidecor_drawer_close"
|
||||
}
|
||||
},
|
||||
{
|
||||
type = "drawer",
|
||||
|
@ -192,7 +204,11 @@ register.register_table("modern_bedside_table", {
|
|||
pos = {x=0, y=0.205, z=0.2375},
|
||||
object = "modern:wooden_drawer",
|
||||
length = 0.8,
|
||||
inv_size = {w=6,h=1}
|
||||
inv_size = {w=6,h=1},
|
||||
sounds = {
|
||||
open = "multidecor_drawer_open",
|
||||
close = "multidecor_drawer_close"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
@ -23,7 +23,11 @@ register.register_table("modern_cupboard_with_glass_doors", {
|
|||
pos2 = {x=-0.5, y=1.6625, z=0.25},
|
||||
object = "modern:wardrobe_wooden_glass_door",
|
||||
inv_size = {w=8,h=6},
|
||||
acc = 1
|
||||
acc = 1,
|
||||
sounds = {
|
||||
open = "multidecor_cabinet_door_open",
|
||||
close = "multidecor_cabinet_door_close"
|
||||
}
|
||||
},
|
||||
{
|
||||
type = "sym_doors",
|
||||
|
@ -31,7 +35,11 @@ register.register_table("modern_cupboard_with_glass_doors", {
|
|||
pos2 = {x=-0.5, y=0.2375, z=0.25},
|
||||
object = "modern:wardrobe_wooden_door",
|
||||
inv_size = {w=8,h=6},
|
||||
acc = 1
|
||||
acc = 1,
|
||||
sounds = {
|
||||
open = "multidecor_cabinet_door_open",
|
||||
close = "multidecor_cabinet_door_close"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
Loading…
Reference in New Issue