princess-synergy/www/js/plugins/JsScript17Set.js
2026-02-05 14:03:22 -06:00

234 lines
8 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.

// Copyright (c) 2017 Tsumio
// http://opensource.org/licenses/mit-license.php
// [Blog] : http://ntgame.wpblog.jp/
// [Twitter]: https://twitter.com/TsumioNtGame
/*:
* @plugindesc
* @author Tsumio
*
* @param ItemName
* @type string
* @desc It is a setting item name displayed on Options.
* @default Type of Key Operation
*
* @param SymbolName(DefaultType)
* @type string
* @desc It is a setting symbol name displayed on Options(Default setting use this key type).
* @default Default
*
* @param SymbolName(FPSType)
* @type string
* @desc It is a setting symbol name displayed on Options(FPS setting use this key type).
* @default FPS
*
* @help
*/
/*:ja
* @plugindesc
* @author ツミオ
*
* @param 項目名称
* @type string
* @desc オプション画面に表示される設定項目名称。
* @default キー操作タイプ
*
* @param 設定名称(通常キー)
* @type string
* @desc オプション画面に表示される設定名称(ツクールで通常使用されるキー設定)。
* @default 両手操作
*
* @param 設定名称FPSキー
* @type string
* @desc オプション画面に表示される設定名称FPS寄りのキー設定
* @default 片手操作
*
* @help
*/
(function() {
'use strict';
var pluginName = 'JsScript17Set';
var NTMO = NTMO || {};
var _Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand;
Game_Interpreter.prototype.pluginCommand = function (command, args) {
_Game_Interpreter_pluginCommand.call(this, command, args);
if (command === 'Change_Key_FPS') {
NTMO.COTS.setFPSKeyMapper();
}
else if(command === 'Change_Key_Default') {
NTMO.COTS.setDefaultKeyMapper();
}
};
var getParamString = 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 '';
};
var getParamNumber = function(paramNames, min, max) {
var value = getParamString(paramNames);
if (arguments.length < 2) min = -Infinity;
if (arguments.length < 3) max = Infinity;
return (parseInt(value) || 0).clamp(min, max);
};
var param = {};
param.itemName = getParamString(['ItemName', '項目名称']);
param.symbolDefault = getParamString(['SymbolName(DefaultType)', '設定名称(通常キー)']);
param.symbolFPS = getParamString(['SymbolName(FPSType)', '設定名称FPSキー']);
// yout to correct it. If possible, please notify me.)
ConfigManager.keyMapper = false;
var _ConfigManager_makeData = ConfigManager.makeData;
ConfigManager.makeData = function() {
var config = _ConfigManager_makeData.apply(this, arguments);
config.keyMapper = this.keyMapper;
return config;
};
var _ConfigManager_applyData = ConfigManager.applyData;
ConfigManager.applyData = function(config) {
_ConfigManager_applyData.apply(this, arguments);
this.keyMapper = this.readFlag(config, 'keyMapper');
if(this.keyMapper){
NTMO.COTS.setDefaultKeyMapper();
}else{
NTMO.COTS.setFPSKeyMapper();
}
};
NTMO.COTS = function(){
};
NTMO.COTS.getDefaultKeyMapper = function(){
return NTMO.COTS.defaultKeyMapper;
};
NTMO.COTS.getFPSKeyMapper = function(){
return NTMO.COTS.FPSKeyMapper;
};
NTMO.COTS.setDefaultKeyMapper = function(){
//Clear method is necessary to avoid input bug(ex. keep moving).
Input.clear();
Input.keyMapper = NTMO.COTS.getDefaultKeyMapper();
ConfigManager.keyMapper = true;
};
NTMO.COTS.setFPSKeyMapper = function(){
//Clear method is necessary to avoid input bug(ex. keep moving).
Input.clear();
Input.keyMapper = NTMO.COTS.getFPSKeyMapper();
ConfigManager.keyMapper = false;
};
var _Window_Options_makeCommandList = Window_Options.prototype.makeCommandList;
Window_Options.prototype.makeCommandList = function() {
_Window_Options_makeCommandList.call(this);
this.addKeyMapperOption();
};
Window_Options.prototype.addKeyMapperOption = function() {
//this.addCommand(param.itemName, 'keyMapper');
};
var _Window_Options_statusText = Window_Options.prototype.statusText;
Window_Options.prototype.statusText = function(index) {
var result = _Window_Options_statusText.apply(this, arguments);
var symbol = this.commandSymbol(index);
var value = this.getConfigValue(symbol);
if(this.isKeyMapperSymbol(symbol)){
result = this.keyMapperStatusText(value);
}
return result;
};
Window_Options.prototype.isKeyMapperSymbol = function(symbol) {
return symbol.contains('keyMapper');
};
Window_Options.prototype.keyMapperStatusText = function(value) {
return value ? param.symbolDefault : param.symbolFPS;
};
var _Window_Options_cursorRight = Window_Options.prototype.cursorRight;
Window_Options.prototype.cursorRight = function(wrap) {
_Window_Options_cursorRight.apply(this, arguments);
var index = this.index();
var symbol = this.commandSymbol(index);
var value = this.getConfigValue(symbol);
if(this.isKeyMapperSymbol(symbol)) {
NTMO.COTS.setDefaultKeyMapper();
}
};
var _Window_Options_cursorLeft = Window_Options.prototype.cursorLeft;
Window_Options.prototype.cursorLeft = function(wrap) {
_Window_Options_cursorLeft.apply(this, arguments);
var index = this.index();
var symbol = this.commandSymbol(index);
var value = this.getConfigValue(symbol);
if(this.isKeyMapperSymbol(symbol)) {
NTMO.COTS.setFPSKeyMapper();
}
};
NTMO.COTS.defaultKeyMapper = {
9: 'tab',
13: 'ok',
16: 'shift',
17: 'control',
18: 'control',
27: 'escape',
32: 'ok',
33: 'pageup',
34: 'pagedown',
37: 'left',
38: 'up',
39: 'right',
40: 'down',
45: 'escape',
81: 'pageup',
87: 'pagedown',
88: 'escape',
90: 'ok',
96: 'escape',
98: 'down',
100: 'left',
102: 'right',
104: 'up',
120: 'debug'
};
NTMO.COTS.FPSKeyMapper = {
9: 'tab',
13: 'ok',
16: 'shift',
17: 'control',
18: 'control',
27: 'escape',
33: 'pageup',
34: 'pagedown',
37: 'left',
38: 'up',
39: 'right',
40: 'down',
45: 'escape',
88: 'escape',
90: 'ok',
96: 'escape',
98: 'down',
100: 'left',
102: 'right',
104: 'up',
120: 'debug',
48: 'dbg_0',
49: 'dbg_1',
50: 'dbg_2',
51: 'dbg_3',
52: 'dbg_4',
53: 'dbg_5',
54: 'dbg_6',
55: 'dbg_7',
56: 'dbg_8',
57: 'dbg_9',
80: 'dbg_Ex',
76: 'dbg_BtlEff',
65: 'left',
68: 'right',
83: 'down',
87: 'up',
81: 'escape',
69: 'ok',
70: 'R2GamePad',
32: 'next',
67: 'c_key',
72: 'h_key',
86: 'escape'
};
//※ここで指定した値はInput.isPressed('next')でtrue/falseを指定できる。
})();