Add sound.dig

This commit is contained in:
Perttu Ahola 2012-03-24 11:10:28 +02:00
parent 74780134f2
commit 06e93f8d95
5 changed files with 28 additions and 9 deletions

@ -656,8 +656,10 @@ function default.node_sound_sand_defaults(table)
table = table or {} table = table or {}
table.footstep = table.footstep or table.footstep = table.footstep or
{name="default_grass_footstep", gain=0.25} {name="default_grass_footstep", gain=0.25}
--table.dug = table.dug or
-- {name="default_dirt_break", gain=0.25}
table.dug = table.dug or table.dug = table.dug or
{name="default_dirt_break", gain=0.25} {name="", gain=0.25}
default.node_sound_defaults(table) default.node_sound_defaults(table)
return table return table
end end
@ -674,6 +676,8 @@ function default.node_sound_leaves_defaults(table)
table = table or {} table = table or {}
table.footstep = table.footstep or table.footstep = table.footstep or
{name="default_grass_footstep", gain=0.25} {name="default_grass_footstep", gain=0.25}
table.dig = table.dig or
{name="default_dig_crumbly", gain=0.4}
table.dug = table.dug or table.dug = table.dug or
{name="", gain=1.0} {name="", gain=1.0}
default.node_sound_defaults(table) default.node_sound_defaults(table)
@ -727,7 +731,7 @@ minetest.register_node("default:dirt_with_grass", {
groups = {crumbly=3}, groups = {crumbly=3},
drop = 'default:dirt', drop = 'default:dirt',
sounds = default.node_sound_dirt_defaults({ sounds = default.node_sound_dirt_defaults({
footstep = {name="default_grass_footstep", gain=0.5}, footstep = {name="default_grass_footstep", gain=0.4},
}), }),
}) })
@ -738,7 +742,7 @@ minetest.register_node("default:dirt_with_grass_footsteps", {
groups = {crumbly=3}, groups = {crumbly=3},
drop = 'default:dirt', drop = 'default:dirt',
sounds = default.node_sound_dirt_defaults({ sounds = default.node_sound_dirt_defaults({
footstep = {name="default_grass_footstep", gain=0.5}, footstep = {name="default_grass_footstep", gain=0.4},
}), }),
}) })
@ -763,8 +767,8 @@ minetest.register_node("default:gravel", {
tile_images = {"default_gravel.png"}, tile_images = {"default_gravel.png"},
is_ground_content = true, is_ground_content = true,
groups = {crumbly=2}, groups = {crumbly=2},
sounds = default.node_sound_sand_defaults({ sounds = default.node_sound_dirt_defaults({
footstep = {name="default_gravel_footstep", gain=0.5} footstep = {name="default_gravel_footstep", gain=0.45},
}), }),
}) })

@ -2250,10 +2250,18 @@ void the_game(
params = getDigParams(nodedef->get(n).groups, tp); params = getDigParams(nodedef->get(n).groups, tp);
} }
if(params.main_group != ""){ SimpleSoundSpec sound_dig = nodedef->get(n).sound_dig;
soundmaker.m_player_leftpunch_sound.gain = 0.5; if(sound_dig.exists()){
soundmaker.m_player_leftpunch_sound.name = if(sound_dig.name == "__group"){
std::string("default_dig_") + params.main_group; if(params.main_group != ""){
soundmaker.m_player_leftpunch_sound.gain = 0.5;
soundmaker.m_player_leftpunch_sound.name =
std::string("default_dig_") +
params.main_group;
}
} else{
soundmaker.m_player_leftpunch_sound = sound_dig;
}
} }
float dig_time_complete = 0.0; float dig_time_complete = 0.0;

@ -156,6 +156,7 @@ void ContentFeatures::reset()
legacy_facedir_simple = false; legacy_facedir_simple = false;
legacy_wallmounted = false; legacy_wallmounted = false;
sound_footstep = SimpleSoundSpec(); sound_footstep = SimpleSoundSpec();
sound_dig = SimpleSoundSpec("__group");
sound_dug = SimpleSoundSpec(); sound_dug = SimpleSoundSpec();
} }
@ -204,6 +205,7 @@ void ContentFeatures::serialize(std::ostream &os)
writeU8(os, legacy_facedir_simple); writeU8(os, legacy_facedir_simple);
writeU8(os, legacy_wallmounted); writeU8(os, legacy_wallmounted);
serializeSimpleSoundSpec(sound_footstep, os); serializeSimpleSoundSpec(sound_footstep, os);
serializeSimpleSoundSpec(sound_dig, os);
serializeSimpleSoundSpec(sound_dug, os); serializeSimpleSoundSpec(sound_dug, os);
} }
@ -258,6 +260,7 @@ void ContentFeatures::deSerialize(std::istream &is)
legacy_wallmounted = readU8(is); legacy_wallmounted = readU8(is);
try{ try{
deSerializeSimpleSoundSpec(sound_footstep, is); deSerializeSimpleSoundSpec(sound_footstep, is);
deSerializeSimpleSoundSpec(sound_dig, is);
deSerializeSimpleSoundSpec(sound_dug, is); deSerializeSimpleSoundSpec(sound_dug, is);
}catch(SerializationError &e) {}; }catch(SerializationError &e) {};
} }

@ -203,6 +203,7 @@ struct ContentFeatures
// Sound properties // Sound properties
SimpleSoundSpec sound_footstep; SimpleSoundSpec sound_footstep;
SimpleSoundSpec sound_dig;
SimpleSoundSpec sound_dug; SimpleSoundSpec sound_dug;
/* /*

@ -1062,6 +1062,9 @@ static ContentFeatures read_content_features(lua_State *L, int index)
lua_getfield(L, -1, "footstep"); lua_getfield(L, -1, "footstep");
read_soundspec(L, -1, f.sound_footstep); read_soundspec(L, -1, f.sound_footstep);
lua_pop(L, 1); lua_pop(L, 1);
lua_getfield(L, -1, "dig");
read_soundspec(L, -1, f.sound_dig);
lua_pop(L, 1);
lua_getfield(L, -1, "dug"); lua_getfield(L, -1, "dug");
read_soundspec(L, -1, f.sound_dug); read_soundspec(L, -1, f.sound_dug);
lua_pop(L, 1); lua_pop(L, 1);