From 3d599fc0d1bc5828c8dc70d67eb5f6580c7bf836 Mon Sep 17 00:00:00 2001 From: crabman77 Date: Thu, 19 Feb 2015 20:33:59 +0100 Subject: [PATCH] add serialise and deserialise and default volume set to 50 add serialise and deserialise set default volume to 50 change variable name "musique" to "music" --- mods/ambience_modpack/ambience/init.lua | 46 ++++++------- mods/soundset/init.lua | 88 ++++++++++++------------- mods/soundset/readme.txt | 2 +- 3 files changed, 68 insertions(+), 68 deletions(-) diff --git a/mods/ambience_modpack/ambience/init.lua b/mods/ambience_modpack/ambience/init.lua index 096a4a35..6a98b8a9 100755 --- a/mods/ambience_modpack/ambience/init.lua +++ b/mods/ambience_modpack/ambience/init.lua @@ -492,7 +492,7 @@ local play_sound = function(player, list, number, is_music) local gain = 1.0 if list[number].gain ~= nil then if is_music then - gain = list[number].gain*sounds.get_gain(player_name, "musique") + gain = list[number].gain*sounds.get_gain(player_name, "music") --minetest.chat_send_all("gain music: " .. gain ) else gain = list[number].gain*sounds.get_gain(player_name, "ambience") @@ -521,7 +521,7 @@ local stop_sound = function(still_playing, player) local list = cave if list.handler[player_name] ~= nil then if list.on_stop ~= nil then - minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=sounds.get_gain(player_name, "ambience")}) + minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=0.5*sounds.get_gain(player_name, "ambience")}) end minetest.sound_stop(list.handler[player_name]) list.handler[player_name] = nil @@ -531,7 +531,7 @@ local stop_sound = function(still_playing, player) local list = cave_frequent if list.handler[player_name] ~= nil then if list.on_stop ~= nil then - minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=sounds.get_gain(player_name, "ambience")}) + minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=0.5*sounds.get_gain(player_name, "ambience")}) end minetest.sound_stop(list.handler[player_name]) list.handler[player_name] = nil @@ -541,7 +541,7 @@ local stop_sound = function(still_playing, player) local list = swimming_frequent if list.handler[player_name] ~= nil then if list.on_stop ~= nil then - minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=sounds.get_gain(player_name, "ambience")}) + minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=0.5*sounds.get_gain(player_name, "ambience")}) end minetest.sound_stop(list.handler[player_name]) list.handler[player_name] = nil @@ -551,7 +551,7 @@ local stop_sound = function(still_playing, player) local list = beach if list.handler[player_name] ~= nil then if list.on_stop ~= nil then - minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=sounds.get_gain(player_name, "ambience")}) + minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=0.5*sounds.get_gain(player_name, "ambience")}) end minetest.sound_stop(list.handler[player_name]) list.handler[player_name] = nil @@ -561,7 +561,7 @@ local stop_sound = function(still_playing, player) local list = beach_frequent if list.handler[player_name] ~= nil then if list.on_stop ~= nil then - minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=sounds.get_gain(player_name, "ambience")}) + minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=0.5*sounds.get_gain(player_name, "ambience")}) end minetest.sound_stop(list.handler[player_name]) list.handler[player_name] = nil @@ -571,7 +571,7 @@ local stop_sound = function(still_playing, player) local list = desert if list.handler[player_name] ~= nil then if list.on_stop ~= nil then - minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=sounds.get_gain(player_name, "ambience")}) + minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=0.5*sounds.get_gain(player_name, "ambience")}) end minetest.sound_stop(list.handler[player_name]) list.handler[player_name] = nil @@ -581,7 +581,7 @@ local stop_sound = function(still_playing, player) local list = desert_frequent if list.handler[player_name] ~= nil then if list.on_stop ~= nil then - minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=sounds.get_gain(player_name, "ambience")}) + minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=0.5*sounds.get_gain(player_name, "ambience")}) end minetest.sound_stop(list.handler[player_name]) list.handler[player_name] = nil @@ -591,7 +591,7 @@ local stop_sound = function(still_playing, player) local list = night if list.handler[player_name] ~= nil then if list.on_stop ~= nil then - minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=sounds.get_gain(player_name, "ambience")}) + minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=0.5*sounds.get_gain(player_name, "ambience")}) end minetest.sound_stop(list.handler[player_name]) list.handler[player_name] = nil @@ -601,7 +601,7 @@ local stop_sound = function(still_playing, player) local list = night_frequent if list.handler[player_name] ~= nil then if list.on_stop ~= nil then - minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=sounds.get_gain(player_name, "ambience")}) + minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=0.5*sounds.get_gain(player_name, "ambience")}) end minetest.sound_stop(list.handler[player_name]) list.handler[player_name] = nil @@ -611,7 +611,7 @@ local stop_sound = function(still_playing, player) local list = day if list.handler[player_name] ~= nil then if list.on_stop ~= nil then - minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=sounds.get_gain(player_name, "ambience")}) + minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=0.5*sounds.get_gain(player_name, "ambience")}) end minetest.sound_stop(list.handler[player_name]) list.handler[player_name] = nil @@ -621,7 +621,7 @@ local stop_sound = function(still_playing, player) local list = day_frequent if list.handler[player_name] ~= nil then if list.on_stop ~= nil then - minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=sounds.get_gain(player_name, "ambience")}) + minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=0.5*sounds.get_gain(player_name, "ambience")}) end minetest.sound_stop(list.handler[player_name]) list.handler[player_name] = nil @@ -631,7 +631,7 @@ local stop_sound = function(still_playing, player) local list = music if list.handler[player_name] ~= nil then if list.on_stop ~= nil then - minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=sounds.get_gain(player_name, "ambience")}) + minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=0.5*sounds.get_gain(player_name, "ambience")}) end minetest.sound_stop(list.handler[player_name]) list.handler[player_name] = nil @@ -641,7 +641,7 @@ local stop_sound = function(still_playing, player) local list = flowing_water if list.handler[player_name] ~= nil then if list.on_stop ~= nil then - minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=sounds.get_gain(player_name, "ambience")}) + minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=0.5*sounds.get_gain(player_name, "ambience")}) end minetest.sound_stop(list.handler[player_name]) list.handler[player_name] = nil @@ -651,7 +651,7 @@ local stop_sound = function(still_playing, player) local list = flowing_water2 if list.handler[player_name] ~= nil then if list.on_stop ~= nil then - minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=sounds.get_gain(player_name, "ambience")}) + minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=0.5*sounds.get_gain(player_name, "ambience")}) end minetest.sound_stop(list.handler[player_name]) list.handler[player_name] = nil @@ -661,7 +661,7 @@ local stop_sound = function(still_playing, player) local list = lava if list.handler[player_name] ~= nil then if list.on_stop ~= nil then - minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=sounds.get_gain(player_name, "ambience")}) + minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=0.5*sounds.get_gain(player_name, "ambience")}) end minetest.sound_stop(list.handler[player_name]) list.handler[player_name] = nil @@ -671,7 +671,7 @@ local stop_sound = function(still_playing, player) local list = lava2 if list.handler[player_name] ~= nil then if list.on_stop ~= nil then - minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=sounds.get_gain(player_name, "ambience")}) + minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=0.5*sounds.get_gain(player_name, "ambience")}) end minetest.sound_stop(list.handler[player_name]) list.handler[player_name] = nil @@ -681,7 +681,7 @@ local stop_sound = function(still_playing, player) local list = water if list.handler[player_name] ~= nil then if list.on_stop ~= nil then - minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=sounds.get_gain(player_name, "ambience")}) + minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=0.5*sounds.get_gain(player_name, "ambience")}) end minetest.sound_stop(list.handler[player_name]) list.handler[player_name] = nil @@ -691,7 +691,7 @@ local stop_sound = function(still_playing, player) local list = water_surface if list.handler[player_name] ~= nil then if list.on_stop ~= nil then - minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=sounds.get_gain(player_name, "ambience")}) + minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=0.5*sounds.get_gain(player_name, "ambience")}) played_on_start = false end minetest.sound_stop(list.handler[player_name]) @@ -702,7 +702,7 @@ local stop_sound = function(still_playing, player) local list = water_frequent if list.handler[player_name] ~= nil then if list.on_stop ~= nil then - minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=sounds.get_gain(player_name, "ambience")}) + minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=0.5*sounds.get_gain(player_name, "ambience")}) -- minetest.chat_send_all("list.on_stop " .. list.on_stop ) played_on_start = false end @@ -717,7 +717,7 @@ local stop_sound = function(still_playing, player) -- minetest.chat_send_all("handler flying " ) if list.on_stop ~= nil then -- minetest.chat_send_all("onstop flying" ) - minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=sounds.get_gain(player_name, "ambience")}) + minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=0.5*sounds.get_gain(player_name, "ambience")}) played_on_start = false end minetest.sound_stop(list.handler[player_name]) @@ -728,7 +728,7 @@ local stop_sound = function(still_playing, player) local list = splashing_water if list.handler[player_name] ~= nil then if list.on_stop ~= nil then - minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=sounds.get_gain(player_name, "ambience")}) + minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=0.5*sounds.get_gain(player_name, "ambience")}) end minetest.sound_stop(list.handler[player_name]) list.handler[player_name] = nil @@ -757,7 +757,7 @@ minetest.register_globalstep(function(dtime) -- end if ambience.on_start ~= nil and played_on_start == false then played_on_start = true - minetest.sound_play(ambience.on_start, {to_player=player:get_player_name(),gain=sounds.get_gain(player:get_player_name(), "ambience")}) + minetest.sound_play(ambience.on_start, {to_player=player:get_player_name(),gain=0.5*sounds.get_gain(player:get_player_name(), "ambience")}) end -- minetest.chat_send_all("ambience: " ..ambience ) -- if ambience.on_start ~= nil and played_on_start_flying == false then diff --git a/mods/soundset/init.lua b/mods/soundset/init.lua index af771cd8..4941b7a6 100644 --- a/mods/soundset/init.lua +++ b/mods/soundset/init.lua @@ -2,32 +2,32 @@ minetest.log("action","[mod soundset] Loading...") sounds = {} sounds.file = minetest.get_worldpath() .. "/sounds_config.txt" -sounds.gaindefault = { ["musique"] = 100, ["ambience"] = 100, ["mobs"] = 100, ["other"] = 100 } +sounds.gaindefault = { ["music"] = 50, ["ambience"] = 50, ["mobs"] = 50, ["other"] = 50 } sounds.gainplayers = {} sounds.set_sound = function(name, param) if param == "" then - minetest.chat_send_player(name, "/setsound ") + minetest.chat_send_player(name, "/setsound ") return end local param_name, param_value = param:match("^(%S+)%s(%S+)$") if param_name == nil or param_value == nil then - minetest.chat_send_player(name, "invalid param, /setsound ") - minetest.log("action", "invalid param, see /setsound ") + minetest.chat_send_player(name, "invalid param, /setsound ") + minetest.log("action", "invalid param, see /setsound ") return end - if param_name ~= "musique" and param_name ~= "ambience" and param_name ~= "mobs" and param_name ~= "other" then + if param_name ~= "music" and param_name ~= "ambience" and param_name ~= "mobs" and param_name ~= "other" then minetest.chat_send_player(name, "invalid param " .. param_name) minetest.log("action", "invalid param, /setsound " .. param_name) return - end + end local value = tonumber(param_value) if value == nil then minetest.log("action", "invalid value, " ..param_value .. " must be number") return - end + end if value < 0 then value = 0 @@ -44,39 +44,39 @@ sounds.set_sound = function(name, param) sounds.gainplayers[name][param_name] = value minetest.chat_send_player(name, "sound " .. param_name .. " set to " .. value) minetest.log("action", name ..", sound " .. param_name .. " set to " .. value) - local output = io.open(sounds.file, "w") - for i, v in pairs(sounds.gainplayers) do - output:write(v.musique .. " " .. v.ambience .. " " .. v.mobs .. " " .. v.other .. " " .. i .."\n") - end - io.close(output) + + local input = io.open(sounds.file, "w") + if input then + input:write(minetest.serialize(sounds.gainplayers)) + input:close() + else + minetest.log("action","echec d'ouverture (mode:w) de " .. sounds.file) + end end sounds.get_gain = function(name, sound_type) - return sounds.gainplayers[name][sound_type]/50 + if name == nil or name == "" then + return 1 + end + local gain = sounds.gainplayers[name][sound_type] + if gain == nil then + return 1 + end + return gain/50 end + local function load_sounds_config() - local input = io.open(sounds.file, "r") - if input then - repeat - local musique = input:read("*n") - if musique == nil then - break - end - local ambience = input:read("*n") - - local mobs = input:read("*n") - - local other = input:read("*n") - - local name = input:read("*l") - - sounds.gainplayers[name:sub(2)] = {musique = musique, ambience = ambience, mobs = mobs, other = other} - until input:read(0) == nil - io.close(input) + local file = io.open(sounds.file, "r") + if file then + sounds.gainplayers = minetest.deserialize(file:read("*all")) + file:close() + end + if sounds.gainplayers == nil then + sounds.gainplayers = {} end end @@ -84,24 +84,24 @@ end load_sounds_config() minetest.register_chatcommand("setsound", { - params = "", - description = "set volume sound ", - privs = {}, - func = sounds.set_sound, + params = " ", + description = "set volume sound ", + privs = {}, + func = sounds.set_sound, }) minetest.register_chatcommand("getsound", { - params = "", - description = "print volume sound ", - privs = {}, - func = function(name, param) - local conf = "" - for k, v in pairs(sounds.gainplayers[name]) do - conf = conf .. " " .. k .. ":" .. v - end + params = "", + description = "print volume sound ", + privs = {}, + func = function(name, param) + local conf = "" + for k, v in pairs(sounds.gainplayers[name]) do + conf = conf .. " " .. k .. ":" .. v + end minetest.chat_send_player(name, "sounds conf " .. conf) minetest.log("action","Player ".. name .. " sound conf " .. conf) - end + end }) minetest.register_on_joinplayer(function(player) diff --git a/mods/soundset/readme.txt b/mods/soundset/readme.txt index 83f8b6a3..2d37f72b 100644 --- a/mods/soundset/readme.txt +++ b/mods/soundset/readme.txt @@ -1,5 +1,5 @@ -= soundset-MOD for MINETEST =- -by Mg and crabman77 +by LeMagnesium and crabman77 YOUR mod can use THIS mod to have a volume that's adjustable by the player(s)