//=============================================================================
// MUR Move: Speed & Sound v1.2
// by MUR (https://github.com/murlab)
// BSD 3-Clause License
// Free for use with both free and commercial RPG Maker games.
//=============================================================================

/*~struct~cellStruct:
 * @param id
 * @text Номер ячейки
 * @desc В зависимости от режима, либо номер Terrain, либо Region
 * @type number
 *
 * @param speed
 * @text Скорость движения
 * @desc По умолчанию 4
 * @type number
 * @default 4
 * 
 * @param sound
 * @text Звук шагов
 * @type file
 * @dir audio/se/
 * @require 1
 *
 * @param volume
 * @text Громкость звука
 * @desc По умолчанию 100
 * @type number
 * @default 100
 *
 * @param pitch
 * @text Питч (pitch) звука
 * @desc По умолчанию 100
 * @type number
 * @default 100
 *
 */

/*:
 * @plugindesc v1.2 Движение: скорость и звуки
 * @author Mur
 * @help Данный плагин позволяет устанвить скорость перемещения персонажей,
 * а так же задать звуки при перемещении по поверхности.
 *
 * @param use terrain
 * @text Разметка terrain
 * @desc Использовать разметку terrain или region
 * @default true
 * @type boolean
 * @on Terrain
 * @off Region
 *
 * @param cell data
 * @text Параметры ячеек
 * @type struct<cellStruct>[]
 *
 */

 (function() {
	
	//------------------------------------------------------
	// Читаем в переменные настройки плагина
	//------------------------------------------------------
	var parameters = PluginManager.parameters('MUR_Move_Speed_Sound');
	var cData = [];
	var useTerrain = (parameters['use terrain'].toLowerCase() === 'true') ? true : false;
	var cd = JSON.parse(parameters['cell data']);

	for (var i=0; i<cd.length; i++) {
		var item = JSON.parse(cd[i]);
		var itemId = Number(item.id);
		cData[itemId] = {"speed": Number(item.speed), "sound": item.sound, "volume": item.volume, "pitch": item.pitch};
	}

	var a = 1 ;
	
	// //------------------------------------------------------
	// // Озвучка движения героя
	// //------------------------------------------------------
	var _Game_Player_moveStraight = Game_Player.prototype.moveStraight;
	Game_Player.prototype.moveStraight = function(d) {
		if (this.canPass(this.x, this.y, d)) {
			var id = 0;
			if (useTerrain) {
				id = $gameMap.terrainTag(this._x, this._y);
			} else {
				id = $gameMap.regionId(this._x, this._y);
			}
			if (cData[id] != undefined) {
				AudioManager.playSe({name: cData[id].sound, volume: cData[id].volume, pitch: cData[id].pitch, pan: 0, pos: 0});
				this._moveSpeed = cData[id].speed;
			}
		}
		_Game_Player_moveStraight.call(this,d);
	};
	 
})();
