From f05befa436f493a0fa7729e7a36e27241e89e8ba Mon Sep 17 00:00:00 2001 From: Wuzzy Date: Wed, 16 Mar 2022 00:54:03 +0100 Subject: [PATCH] Remember ambience on/off state --- mods/lzr_ambience/init.lua | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/mods/lzr_ambience/init.lua b/mods/lzr_ambience/init.lua index 304ac91..d463591 100644 --- a/mods/lzr_ambience/init.lua +++ b/mods/lzr_ambience/init.lua @@ -6,6 +6,7 @@ local ambiences = {} local current_singleplayer_ambience = nil -- ambience sound handler. nil if no current ambience local current_singleplayer_ambience_id = nil -- ambience type ID (e.g. "ocean", "temple"). nil if uninitialized +local ambience_active = true lzr_ambience.register_ambience = function(id, soundname, gain) ambiences[id] = { soundname = soundname, gain = gain } @@ -30,7 +31,7 @@ function lzr_ambience.set_ambience(id, no_play) return true end lzr_ambience.stop_ambience() - if id ~= "none" and not no_play then + if id ~= "none" and not no_play and ambience_active then current_singleplayer_ambience = minetest.sound_play({name=ambience.soundname}, {gain = ambience.gain, to_player="singleplayer", loop=true}) end current_singleplayer_ambience_id = id @@ -46,8 +47,10 @@ local setting = minetest.settings:get_bool("lzr_ambience_start_with_ambience", t minetest.register_on_joinplayer(function(player) if setting then + ambience_active = true lzr_ambience.set_ambience("ocean") else + ambience_active = false lzr_ambience.set_ambience("ocean", true) end end) @@ -56,9 +59,11 @@ minetest.register_chatcommand("ambience", { description = S("Toggle ambience sounds"), func = function() if current_singleplayer_ambience then + ambience_active = false lzr_ambience.stop_ambience() return true, S("Ambience sounds disabled.") else + ambience_active = true lzr_ambience.set_ambience(current_singleplayer_ambience_id) return true, S("Ambience sounds enabled.") end