Added sounds for doors, drawers and floor clock

master
Andrey2470T 2022-08-28 17:56:43 +03:00
parent e7b123063c
commit 6b6eb9e627
16 changed files with 112 additions and 20 deletions

View File

@ -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

View File

@ -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)

View File

@ -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"
}
},
}
},

View File

@ -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"
}
}
},
{

View File

@ -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.

View File

@ -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"
}
}
}
},

View File

@ -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"
}
}
}
},