agent-sirius/www/js/plugins/FontLoad.js
2024-01-28 14:41:43 -06:00

185 lines
5.3 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//=============================================================================
// 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. exfonts/XXX.ttf
* @default
*
* @param FontName2
* @desc Font name
* @default
*
* @param FontUrl2
* @desc Font file path. exfonts/XXX.ttf
* @default
*
* @param FontName3
* @desc Font name
* @default
*
* @param FontUrl3
* @desc Font file path. exfonts/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)
)
);
};
})();