206 lines
5.8 KiB
JavaScript
206 lines
5.8 KiB
JavaScript
//=============================================================================
|
||
// MPP_VersionSpecified.js
|
||
//=============================================================================
|
||
// Copyright (c) 2015 - 2021 Mokusei Penguin
|
||
// Released under the MIT license
|
||
// http://opensource.org/licenses/mit-license.php
|
||
//=============================================================================
|
||
|
||
/*:
|
||
* @target MV MZ
|
||
* @plugindesc Specify the version on the title screen.
|
||
* @author Mokusei Penguin
|
||
* @url
|
||
*
|
||
* @help [version 2.0.0]
|
||
* This plugin is for RPG Maker MV and MZ.
|
||
*
|
||
* - Since it only displays a character string, it can be used even
|
||
* if it is not a version.
|
||
*
|
||
* ================================
|
||
* Mail : wood_penguin@yahoo.co.jp (@ is half-width)
|
||
* Blog : http://woodpenguin.blog.fc2.com/
|
||
* License : MIT license
|
||
*
|
||
* @param Text
|
||
* @desc
|
||
* @default Version 1.0.0
|
||
*
|
||
* @param Font Size
|
||
* @desc
|
||
* @type number
|
||
* @min 4
|
||
* @max 99
|
||
* @default 20
|
||
*
|
||
* @param Font Color
|
||
* @desc RGB
|
||
* @default 255,255,255
|
||
*
|
||
* @param Window X
|
||
* @desc
|
||
* @type number
|
||
* @min 0
|
||
* @max 9999
|
||
* @default 540
|
||
*
|
||
* @param Window Y
|
||
* @desc
|
||
* @type number
|
||
* @min 0
|
||
* @max 9999
|
||
* @default 560
|
||
*
|
||
*/
|
||
|
||
/*:ja
|
||
* @target MV MZ
|
||
* @plugindesc タイトル画面にバージョンを明記します。
|
||
* @author 木星ペンギン
|
||
* @url
|
||
*
|
||
* @help [version 2.0.0]
|
||
* このプラグインはRPGツクールMVおよびMZ用です。
|
||
*
|
||
* - 文字列を表記するだけなので、バージョンでなくても使えます。
|
||
*
|
||
* ================================
|
||
* Mail : wood_penguin@yahoo.co.jp (@は半角)
|
||
* Blog : http://woodpenguin.blog.fc2.com/
|
||
* License : MIT license
|
||
*
|
||
* @param Text
|
||
* @text 文字列
|
||
* @desc
|
||
* @default Version 1.0.0
|
||
*
|
||
* @param Font Size
|
||
* @text 文字サイズ
|
||
* @desc
|
||
* @type number
|
||
* @min 4
|
||
* @max 99
|
||
* @default 20
|
||
*
|
||
* @param Font Color
|
||
* @text 文字色
|
||
* @desc RGB
|
||
* @default 255,255,255
|
||
*
|
||
* @param Window X
|
||
* @text 表示位置 X 座標
|
||
* @desc
|
||
* @type number
|
||
* @min 0
|
||
* @max 9999
|
||
* @default 540
|
||
*
|
||
* @param Window Y
|
||
* @text 表示位置 Y 座標
|
||
* @desc
|
||
* @type number
|
||
* @min 0
|
||
* @max 9999
|
||
* @default 560
|
||
*
|
||
*/
|
||
|
||
(() => {
|
||
'use strict';
|
||
|
||
const pluginName = 'MPP_VersionSpecified';
|
||
|
||
// Plugin Parameters
|
||
const parameters = PluginManager.parameters(pluginName);
|
||
const param_Text = parameters['Text'];
|
||
const param_FontSize = Number(parameters['Font Size'] || 4);
|
||
const param_FontColor = `rgb(${parameters['Font Color'] || '255,255,255'})`;
|
||
const param_WindowX = Number(parameters['Window X']);
|
||
const param_WindowY = Number(parameters['Window Y']);
|
||
|
||
//-----------------------------------------------------------------------------
|
||
// Window_Version
|
||
|
||
function Window_Version() {
|
||
this.initialize.apply(this, arguments);
|
||
}
|
||
|
||
Window_Version.prototype = Object.create(Window_Base.prototype);
|
||
Window_Version.prototype.constructor = Window_Version;
|
||
|
||
Window_Version.prototype.initialize = function() {
|
||
if (Utils.RPGMAKER_NAME === 'MV') {
|
||
Window_Base.prototype.initialize.call(this, 0, 0, 0, 0);
|
||
} else {
|
||
Window_Base.prototype.initialize.call(this, new Rectangle);
|
||
}
|
||
this.opacity = 0;
|
||
this.updatePlacement();
|
||
this.createContents();
|
||
this.refresh();
|
||
};
|
||
|
||
Window_Version.prototype.windowWidth = function() {
|
||
const padding = (this.padding + 36) * 2;
|
||
if (this.textSizeEx) {
|
||
return this.textSizeEx(param_Text).width + padding;
|
||
} else {
|
||
return this.drawTextEx(param_Text, 0, param_FontSize + 4) + padding;
|
||
}
|
||
};
|
||
|
||
Window_Version.prototype.windowHeight = function() {
|
||
return this.fittingHeight(1);
|
||
};
|
||
|
||
Window_Version.prototype.lineHeight = function() {
|
||
return param_FontSize + 4;
|
||
};
|
||
|
||
Window_Version.prototype.updatePlacement = function() {
|
||
this.x = param_WindowX;
|
||
this.y = param_WindowY;
|
||
this.width = this.windowWidth();
|
||
this.height = this.windowHeight();
|
||
};
|
||
|
||
Window_Version.prototype.resetFontSettings = function() {
|
||
Window_Base.prototype.resetFontSettings.call(this);
|
||
this.contents.fontSize = param_FontSize;
|
||
this.contents.textColor = param_FontColor;
|
||
};
|
||
|
||
Window_Version.prototype.refresh = function() {
|
||
this.contents.clear();
|
||
if (param_Text) {
|
||
const width = this.contentsWidth();
|
||
this.resetFontSettings();
|
||
this.drawBackground(0, 0, width, this.lineHeight());
|
||
this.drawText(param_Text, 0, 0, width, 'center');
|
||
}
|
||
};
|
||
|
||
Window_Version.prototype.drawBackground = function(x, y, width, height) {
|
||
const c1 = this.dimColor1 ? this.dimColor1() : ColorManager.dimColor1();
|
||
const c2 = this.dimColor2 ? this.dimColor2() : ColorManager.dimColor2();
|
||
const hw = width / 2;
|
||
this.contents.gradientFillRect(x, y, hw, height, c2, c1);
|
||
this.contents.gradientFillRect(x + hw, y, hw, height, c1, c2);
|
||
};
|
||
|
||
//-------------------------------------------------------------------------
|
||
// Scene_Title
|
||
|
||
const _Scene_Title_create = Scene_Title.prototype.create;
|
||
Scene_Title.prototype.create = function() {
|
||
_Scene_Title_create.apply(this, arguments);
|
||
this.createVersionWindow();
|
||
};
|
||
|
||
Scene_Title.prototype.createVersionWindow = function() {
|
||
this._versionWindow = new Window_Version();
|
||
this.addWindow(this._versionWindow);
|
||
};
|
||
|
||
})();
|