diff options
-rw-r--r-- | api.lua | 14 | ||||
-rw-r--r-- | readme.md | 3 | ||||
-rw-r--r-- | sounds/awards_got_generic.ogg | bin | 0 -> 76652 bytes |
3 files changed, 16 insertions, 1 deletions
@@ -227,6 +227,11 @@ function awards.unlock(name, award) local desc = awdef.description or "" local background = awdef.background or "awards_bg_default.png" local icon = awdef.icon or "awards_unknown.png" + local sound = awdef.sound + if sound == nil then + -- Explicit check for nil because sound could be `false` to disable it + sound = {name="awards_got_generic", gain=0.25} + end local custom_announce = awdef.custom_announce if not custom_announce then if awdef.secret then @@ -237,6 +242,15 @@ function awards.unlock(name, award) end -- Do Notification + if sound then + -- Enforce sound delay to prevent sound spamming + local lastsound = awards.players[name].lastsound + if lastsound == nil or os.difftime(os.time(), lastsound) >= 1 then + minetest.sound_play(sound, {to_player=name}) + awards.players[name].lastsound = os.time() + end + end + if awards.show_mode == "formspec" then -- use a formspec to send it minetest.show_formspec(name, "achievements:unlocked", "size[4,2]".. @@ -13,7 +13,8 @@ old fork in Carbone, under same license. * awards.register_achievement(name, def) * name * desciption - * sound [optional] + * sound [optional] - set a custom sound (SimpleSoundSpec) or `false` to play no sound. + If not specified, a default sound is played * image [optional] - texture name, eg: award_one.png * background [optional] - texture name, eg: award_one.png * trigger [optional] [table] diff --git a/sounds/awards_got_generic.ogg b/sounds/awards_got_generic.ogg Binary files differnew file mode 100644 index 0000000..3ae982b --- /dev/null +++ b/sounds/awards_got_generic.ogg |