185 lines
5.3 KiB
JavaScript
185 lines
5.3 KiB
JavaScript
//=============================================================================
|
||
// FontLoad.js
|
||
// ----------------------------------------------------------------------------
|
||
// Copyright (c) 2015 Triacontane
|
||
// This software is released under the MIT License.
|
||
// http://opensource.org/licenses/mit-license.php
|
||
// ----------------------------------------------------------------------------
|
||
// Version
|
||
// 1.1.1 2019/09/15 パラメータの型指定機能に対応
|
||
// 1.1.0 2017/03/11 本体v1.3.5(コミュニティ版)で機能しなくなる問題を修正
|
||
// 1.0.0 2016/06/02 初版
|
||
// ----------------------------------------------------------------------------
|
||
// [Blog] : http://triacontane.blogspot.jp/
|
||
// [Twitter]: https://twitter.com/triacontane/
|
||
// [GitHub] : https://github.com/triacontane/
|
||
//=============================================================================
|
||
|
||
/*:
|
||
* @plugindesc Font Load
|
||
* @author triacontane
|
||
*
|
||
* @param FontName1
|
||
* @desc Font name
|
||
* @default
|
||
*
|
||
* @param FontUrl1
|
||
* @desc Font file path. ex:fonts/XXX.ttf
|
||
* @default
|
||
*
|
||
* @param FontName2
|
||
* @desc Font name
|
||
* @default
|
||
*
|
||
* @param FontUrl2
|
||
* @desc Font file path. ex:fonts/XXX.ttf
|
||
* @default
|
||
*
|
||
* @param FontName3
|
||
* @desc Font name
|
||
* @default
|
||
*
|
||
* @param FontUrl3
|
||
* @desc Font file path. ex:fonts/XXX.ttf
|
||
* @default
|
||
*
|
||
* @param WaitLoadComplete
|
||
* @desc Wait until load complete
|
||
* @default false
|
||
* @type boolean
|
||
*
|
||
* @help Loading font file at the start of the game.
|
||
*
|
||
* This plugin is released under the MIT License.
|
||
*/
|
||
/*:ja
|
||
* @plugindesc フォントロードプラグイン
|
||
* @author トリアコンタン
|
||
*
|
||
* @param フォント名1
|
||
* @desc 任意のフォント名
|
||
* @default
|
||
*
|
||
* @param フォントURL1
|
||
* @desc フォントファイルパスです。例:fonts/XXX.ttf
|
||
* @default
|
||
*
|
||
* @param フォント名2
|
||
* @desc 任意のフォント名
|
||
* @default
|
||
*
|
||
* @param フォントURL2
|
||
* @desc フォントファイルパスです。例:fonts/XXX.ttf
|
||
* @default
|
||
*
|
||
* @param フォント名3
|
||
* @desc 任意のフォント名
|
||
* @default
|
||
*
|
||
* @param フォントURL3
|
||
* @desc フォントファイルパスです。例:fonts/XXX.ttf
|
||
* @default
|
||
*
|
||
* @param ロード完了まで待機
|
||
* @desc フォントのロードが完了してからゲームを開始します。
|
||
* @default false
|
||
* @type boolean
|
||
*
|
||
* @help 指定したURLのフォントを指定した名前でロードします。
|
||
* ロードするだけなので、基本的には他のプラグインやスクリプトと
|
||
* 組み合わせて使用します。
|
||
*
|
||
* このプラグインにはプラグインコマンドはありません。
|
||
*
|
||
* 利用規約:
|
||
* 作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)
|
||
* についても制限はありません。
|
||
* このプラグインはもうあなたのものです。
|
||
*/
|
||
|
||
(function () {
|
||
"use strict";
|
||
var pluginName = "FontLoad";
|
||
|
||
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 getParamString = function (paramNames) {
|
||
var value = getParamOther(paramNames);
|
||
return value === null ? "" : value;
|
||
};
|
||
|
||
var getParamBoolean = function (paramNames) {
|
||
var value = (getParamOther(paramNames) || "").toUpperCase();
|
||
return value === "ON" || value === "TRUE";
|
||
};
|
||
|
||
//=============================================================================
|
||
// パラメータの取得と整形
|
||
//=============================================================================
|
||
var paramFonts = [],
|
||
idString;
|
||
for (var i = 1; i <= 3; i++) {
|
||
idString = String(i);
|
||
paramFonts[i] = {};
|
||
paramFonts[i].url = getParamString([
|
||
"FontUrl" + idString,
|
||
"フォントURL" + idString,
|
||
]);
|
||
paramFonts[i].name = getParamString([
|
||
"FontName" + idString,
|
||
"フォント名" + idString,
|
||
]);
|
||
}
|
||
var paramWaitLoadComplete = getParamBoolean([
|
||
"WaitLoadComplete",
|
||
"ロード完了まで待機",
|
||
]);
|
||
|
||
//=============================================================================
|
||
// Scene_Boot
|
||
// 必要なフォントをロードします。
|
||
//=============================================================================
|
||
var _Scene_Boot_isGameFontLoaded = Scene_Boot.prototype.isGameFontLoaded;
|
||
Scene_Boot.prototype.isGameFontLoaded = function () {
|
||
if (!_Scene_Boot_isGameFontLoaded.apply(this)) {
|
||
return false;
|
||
}
|
||
if (!this._customFontLoading) {
|
||
this.loadCustomFonts();
|
||
}
|
||
return this.isCustomFontLoaded();
|
||
};
|
||
|
||
Scene_Boot.prototype.loadCustomFonts = function () {
|
||
paramFonts.forEach(
|
||
function (fontInfo) {
|
||
if (fontInfo.name && fontInfo.url) {
|
||
Graphics.loadFont(fontInfo.name, fontInfo.url);
|
||
}
|
||
}.bind(this)
|
||
);
|
||
this._customFontLoading = true;
|
||
};
|
||
|
||
Scene_Boot.prototype.isCustomFontLoaded = function () {
|
||
return (
|
||
!paramWaitLoadComplete ||
|
||
paramFonts.every(
|
||
function (fontInfo) {
|
||
return (
|
||
!fontInfo.name ||
|
||
!fontInfo.url ||
|
||
Graphics.isFontLoaded(fontInfo.name)
|
||
);
|
||
}.bind(this)
|
||
)
|
||
);
|
||
};
|
||
})();
|