// Copyright (c) 2015-2017 Triacontane // http://opensource.org/licenses/mit-license.php // 2.1.0 2017/03/11 本体v1.3.5(コミュニティ版)で機能しなくなる問題を修正 // [Blog] : https://triacontane.blogspot.jp/ // [Twitter]: https://twitter.com/triacontane/ // [GitHub] : https://github.com/triacontane/ /*: * @plugindesc * @author triacontane * * @param InvalidIfTest * @desc Not through if test play. * @default true * @type boolean * * @param InvalidIfWeb * @desc Not through if Web mode. * @default false * @type boolean * * @param ThroughType * @desc 無視する素材の種別です。 * @default 3 * @type select * @option Audio Only * @value 1 * @option Image Only * @value 2 * @option All * @value 3 * * @help */ /*:ja * @plugindesc * @author トリアコンタン * * @param テストプレー時無効 * @desc テストプレー時は本プラグインの機能が無効になります。 * @default true * @type boolean * * @param Web版で無効 * @desc Web版実行時は本プラグインの機能が無効になります。 * @default false * @type boolean * * @param 無視種別 * @desc 無視する素材の種別です。 * @default 3 * @type select * @option 音声のみ * @value 1 * @option 画像のみ * @value 2 * @option 全て * @value 3 * * @help */ (function() { 'use strict'; var pluginName = 'JsScript203Set'; var getParamOther = function(paramNames) { if (!Array.isArray(paramNames)) paramNames = [paramNames]; for (var i = 0; i < paramNames.length; i++) { var name = PluginManager.parameters(pluginName)[paramNames[i]]; if (name) return name; } return null; }; var getParamBoolean = function(paramNames) { var value = (getParamOther(paramNames) || '').toUpperCase(); return value === 'ON' || value === 'TRUE'; }; var getParamNumber = function(paramNames, min, max) { var value = getParamOther(paramNames); if (arguments.length < 2) min = -Infinity; if (arguments.length < 3) max = Infinity; return (parseInt(value) || 0).clamp(min, max); }; var paramInvalidIfTest = getParamBoolean(['InvalidIfTest', 'テストプレー時無効']); var paramInvalidIfWeb = getParamBoolean(['InvalidIfWeb', 'Web版で無効']); var paramThroughType = getParamNumber(['ThroughType', '無視種別'], 1, 3); if (paramInvalidIfTest && Utils.isOptionValid('test')) { return; } else if (paramInvalidIfWeb && !Utils.isNwjs()) { return; } if (paramThroughType !== 1) { var _Bitmap_isReady = Bitmap.prototype.isReady; Bitmap.prototype.isReady = function() { if (this.isError()) { this.eraseError(); } return _Bitmap_isReady.apply(this, arguments); }; var _Bitmap_decode = Bitmap.prototype.decode; Bitmap.prototype.decode = function(){ _Bitmap_decode.apply(this, arguments); if (this._loadingState === 'requesting') { this._image.addEventListener('error', this._onError.bind(this)); } }; Bitmap.prototype.eraseError = function() { this._hasError = false; this._isLoading = false; this._loadingState = 'loaded'; }; var _Graphics__playVideo = Graphics._playVideo; Graphics._playVideo = function(src) { _Graphics__playVideo.apply(this, arguments); this._video.onerror = this._videoLoader || this._onVideoError.bind(this); }; } if (paramThroughType !== 2) { AudioManager.checkErrors = function() {}; } if (typeof ResourceHandler !== 'undefined') { var _ResourceHandler_createLoader = ResourceHandler.createLoader; ResourceHandler.createLoader = function(url, retryMethod, resignMethod, retryInterval) { return this.isNeedLoader(url) ? _ResourceHandler_createLoader.apply(this, arguments) : null; }; ResourceHandler.isNeedLoader = function(url) { if (paramThroughType === 1 && !url.match(/^audio\//)) { return true; } else if (paramThroughType === 2 && (!url.match(/^img\//) && !url.match(/^movie\//))) { return true; } else { return false; } }; } })();