Advertisement
Maliki79

MalMasterVolume

Mar 16th, 2017
4,932
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //=============================================================================
  2. // Maliki's Master Volume
  3. // MalMasterVolume.js
  4. // version 1.1a
  5. //=============================================================================
  6. /*:  
  7. * @plugindesc ver1.1a - Allows players to utilize a single slider for all 4 sound profiles
  8.  * @author Maliki79
  9.  *
  10.  * @param MasterMode
  11.  * @desc Enter 1 to remove all other default volume settings leaving only 1 main setting for all sounds/music
  12.  * Default: 1
  13.  * @default 1
  14.  * @help Version 1.1a
  15.  * There is currently a few script calls for this Plugin.
  16.  * The rest is Plug and Play.
  17.  * Use the call AudioManager.setMasterVolume(value); to set the volume.
  18.  * While it can be used to restore a muted game, it should typically only be used to mute.
  19.  * To toggle mute off and on use AudioManager.toggleMute();
  20.  * This will save the current volume, then set it to 0.
  21.  * If called again, it will restore the sound if it hasn't been changed by the player.
  22.  */
  23.  
  24.  Object.defineProperty(ConfigManager, 'masterVolume', {
  25.     get: function() {
  26.         return ConfigManager.commandMasterVolume;
  27.     },
  28.     set: function(value) {
  29.         ConfigManager.commandMasterVolume = value;
  30.         AudioManager.updateBgmParameters(AudioManager._currentBgm);
  31.         AudioManager.updateBgsParameters(AudioManager._currentBgs);
  32.         AudioManager.updateMeParameters(AudioManager._currentMe);
  33.     },
  34.     configurable: true
  35. });
  36.  
  37.  Object.defineProperty(AudioManager, 'masterVolume', {
  38.     get: function() {
  39.         return ConfigManager.commandMasterVolume;
  40.     },
  41.     set: function(value) {
  42.         AudioManager.masterVolume = value;
  43.     },
  44.     configurable: true
  45. });
  46.  
  47. var Mal_Config_MakeDataMV = ConfigManager.makeData;
  48. ConfigManager.makeData = function() {
  49.     var config = Mal_Config_MakeDataMV.call(this);
  50.     config.masterVolume = this.masterVolume;   
  51.     return config;
  52. };
  53.  
  54. var Mal_Config_applyDataMV = ConfigManager.applyData;
  55. ConfigManager.applyData = function(config) {
  56.     Mal_Config_applyDataMV.call(this, config);
  57.     this.masterVolume = this.readVolume(config, 'masterVolume');
  58. };
  59.  
  60.  Window_Options.prototype.addVolumeOptions = function() {
  61.     if(PluginManager.parameters('MalMasterVolume')['MasterMode'] == 1){
  62.         this.addCommand("Volume", 'masterVolume');
  63.     } else {
  64.     this.addCommand("Master Volume", 'masterVolume');
  65.     this.addCommand(TextManager.bgmVolume, 'bgmVolume');
  66.     this.addCommand(TextManager.bgsVolume, 'bgsVolume');
  67.     this.addCommand(TextManager.meVolume, 'meVolume');
  68.     this.addCommand(TextManager.seVolume, 'seVolume');
  69. }
  70. };
  71.  
  72. AudioManager.updateBgmParameters = function(bgm) {
  73.     this.updateBufferParameters(this._bgmBuffer, this._bgmVolume, bgm, this.masterVolume);
  74. };
  75. AudioManager.updateBgsParameters = function(bgs) {
  76.     this.updateBufferParameters(this._bgsBuffer, this._bgsVolume, bgs, this.masterVolume);
  77. };
  78. AudioManager.updateMeParameters = function(me) {
  79.     this.updateBufferParameters(this._meBuffer, this._meVolume, me, this.masterVolume);
  80. };
  81. AudioManager.updateSeParameters = function(buffer, se) {
  82.     this.updateBufferParameters(buffer, this._seVolume, se, this.masterVolume);
  83. };
  84.  
  85. AudioManager.updateBufferParameters = function(buffer, configVolume, audio, master) {
  86.     if (buffer && audio) {
  87.         configVolume *= master / 100;
  88.         buffer.volume = configVolume * (audio.volume || 0) / 10000;
  89.         buffer.pitch = (audio.pitch || 0) / 100;
  90.         buffer.pan = (audio.pan || 0) / 100;
  91.     }
  92. };
  93.  
  94. AudioManager.setMasterVolume = function(value) {
  95. var value2 = value;
  96. if (value2 > 100) value2 = 100;
  97. if (value2 < 0) value2 = 0;
  98.     ConfigManager.commandMasterVolume = value2;
  99.     AudioManager.updateBgmParameters(AudioManager._currentBgm);
  100.     AudioManager.updateBgsParameters(AudioManager._currentBgs);
  101.     AudioManager.updateMeParameters(AudioManager._currentMe);
  102. };
  103.  
  104. AudioManager.toggleMute = function() {
  105.     if (!AudioManager.mute) AudioManager.mute = false;
  106.     if (ConfigManager.commandMasterVolume > 0) AudioManager.mute = false;
  107.     if (AudioManager.mute == false) {
  108.     AudioManager.mute = ConfigManager.commandMasterVolume;
  109.     ConfigManager.commandMasterVolume = 0;
  110.     AudioManager.updateBgmParameters(AudioManager._currentBgm);
  111.     AudioManager.updateBgsParameters(AudioManager._currentBgs);
  112.     AudioManager.updateMeParameters(AudioManager._currentMe);
  113.     } else {
  114.     ConfigManager.commandMasterVolume = AudioManager.mute;
  115.     AudioManager.updateBgmParameters(AudioManager._currentBgm);
  116.     AudioManager.updateBgsParameters(AudioManager._currentBgs);
  117.     AudioManager.updateMeParameters(AudioManager._currentMe);
  118.     AudioManager.mute = false;
  119.     }
  120.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement