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

302 lines
12 KiB
JavaScript
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Copyright (c) 2015-2016 Triacontane
// http://opensource.org/licenses/mit-license.php
// [Blog] : http://triacontane.blogspot.jp/
// [Twitter]: https://twitter.com/triacontane/
// [GitHub] : https://github.com/triacontane/
/*:
* @plugindesc
* @author triacontane
*
* @param MessageScroll
* @desc マウスホイールを手前に回転させてメッセージ送りをします。戻すことはできません。
* @default ON
*
* @param CursorMove
* @desc マウスホイールを動かしてウィンドウのカーソルを移動します。
* @default ON
*
* @param WheelOk
* @desc マウスホイールのクリックに決定ボタンと同等の機能を持たせます。
* @default ON
*
* @param WheelCancel
* @desc マウスホイールのクリックにキャンセルボタンと同等の機能を持たせます。
* @default OFF
*
* @param WheelSwitch
* @desc マウスホイールのクリックで任意のスイッチをONにします。マップ画面でのみ有効です。
* @default 0
*
* @param WheelToggle
* @desc マウスホイールのクリックで任意のスイッチをON/OFFを切り替えます。マップ画面でのみ有効です。
* @default 0
*
* @param ScrollDirection
* @desc マウスホイールのスクロールに十字キーと同等の機能を持たせます。
* @default OFF
*
* @param ScrollVariable
* @desc マウスホイールのスクロールで任意の変数に値を設定します。
* 下:2 左:4 右:6 上:8 マップ画面でのみ有効です。
* @default 0
*
* @param SensitivityY
* @desc マウスホイールの縦回転の感度です。通常はこのままでOKです。
* @default 20
*
* @param SensitivityX
* @desc マウスホイールの横回転の感度です。通常はこのままでOKです。
* @default 20
*
* @help
*/
/*:ja
* @plugindesc
* @author トリアコンタン
*
* @param メッセージ送り
* @desc マウスホイールを手前に回転させてメッセージ送りをします。戻すことはできません。
* @default ON
*
* @param カーソル移動
* @desc マウスホイールを動かしてウィンドウのカーソルを移動します。
* @default ON
*
* @param クリックで決定
* @desc マウスホイールのクリックに決定ボタンと同等の機能を持たせます。
* @default ON
*
* @param クリックでキャンセル
* @desc マウスホイールのクリックにキャンセルボタンと同等の機能を持たせます。
* @default OFF
*
* @param クリックでスイッチ
* @desc マウスホイールのクリックで任意のスイッチをONにします。マップ画面でのみ有効です。
* @default 0
*
* @param クリックでトグル
* @desc マウスホイールのクリックで任意のスイッチをON/OFFを切り替えます。マップ画面でのみ有効です。
* @default 0
*
* @param スクロールで十字キー
* @desc マウスホイールのスクロールに十字キーと同等の機能を持たせます。
* @default OFF
*
* @param スクロールで変数
* @desc マウスホイールのスクロールで任意の変数に値を設定します。
* 下:2 左:4 右:6 上:8 マップ画面でのみ有効です。
* @default 0
*
* @param 感度Y
* @desc マウスホイールの縦回転の感度です。通常はこのままでOKです。
* @default 20
*
* @param 感度X
* @desc マウスホイールの横回転の感度です。通常はこのままでOKです。
* @default 20
*
* @help
*/
(function() {
'use strict';
var pluginName = 'JsScript42Set';
var getParamBoolean = function(paramNames) {
var value = getParamOther(paramNames);
return (value || '').toUpperCase() === 'ON';
};
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, 10) || 0).clamp(min, max);
};
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 paramCursorMove = getParamBoolean(['CursorMove', 'カーソル移動']);
var paramMessageScroll = getParamBoolean(['MessageScroll', 'メッセージ送り']);
var paramWheelOk = getParamBoolean(['WheelOk', 'クリックで決定']);
var paramWheelCancel = getParamBoolean(['WheelCancel', 'クリックでキャンセル']);
var paramWheelSwitch = getParamNumber(['WheelSwitch', 'クリックでスイッチ'], 0);
var paramWheelToggle = getParamNumber(['WheelToggle', 'クリックでトグル'], 0);
var paramScrollDirection = getParamBoolean(['ScrollDirection', 'スクロールで十字キー']);
var paramScrollVariable = getParamNumber(['ScrollVariable', 'スクロールで変数'], 0);
var paramSensitivityY = getParamNumber(['SensitivityY', '感度Y'], 1);
var paramSensitivityX = getParamNumber(['SensitivityX', '感度X'], 1);
var _Game_Map_update = Game_Map.prototype.update;
Game_Map.prototype.update = function(sceneActive) {
_Game_Map_update.apply(this, arguments);
this.updateWheelTrigger();
};
Game_Map.prototype.updateWheelTrigger = function() {
if (TouchInput.isMiddleTriggered()) {
if (paramWheelSwitch) {
$gameSwitches.setValue(paramWheelSwitch, true);
}
if (paramWheelToggle) {
var prevValue = $gameSwitches.value(paramWheelToggle);
$gameSwitches.setValue(paramWheelToggle, !prevValue);
}
}
if (paramScrollVariable) {
var prevValue = $gameVariables.value(paramScrollVariable);
var value = 0;
if (TouchInput.wheelX >= paramSensitivityX) {
value = 4;
}
if (TouchInput.wheelX <= -paramSensitivityX) {
value = 6;
}
if (TouchInput.wheelY >= paramSensitivityY) {
value = 2;
}
if (TouchInput.wheelY <= -paramSensitivityY) {
value = 8;
}
if (prevValue !== value) {
$gameVariables.setValue(paramScrollVariable, value);
}
}
};
if (paramMessageScroll) {
var _Window_Message_isTriggered = Window_Message.prototype.isTriggered;
Window_Message.prototype.isTriggered = function() {
return _Window_Message_isTriggered.apply(this, arguments) || TouchInput.wheelY >= paramSensitivityY;
};
}
if (paramCursorMove) {
var _Window_Selectable_processCursorMove = Window_Selectable.prototype.processCursorMove;
Window_Selectable.prototype.processCursorMove = function() {
var lastIndex = this.index();
_Window_Selectable_processCursorMove.apply(this, arguments);
if (this.index() !== lastIndex) return;
if (this.isCursorMovable()) {
if (TouchInput.wheelY >= paramSensitivityY) {
this.cursorDown(false);
}
if (TouchInput.wheelY <= -paramSensitivityY) {
this.cursorUp(false);
}
if (TouchInput.wheelX >= paramSensitivityX) {
this.cursorLeft(false);
}
if (TouchInput.wheelX <= -paramSensitivityX) {
this.cursorRight(false);
}
if (this.index() !== lastIndex) {
SoundManager.playCursor();
}
}
};
}
var _TouchInput_update2 = TouchInput.update;
TouchInput.update = function() {
_TouchInput_update2.apply(this, arguments);
this._middleTriggered = this._events.middleTriggered;
this._events.middleTriggered = false;
};
var _TouchInput__onMiddleButtonDown = TouchInput._onMiddleButtonDown;
TouchInput._onMiddleButtonDown = function(event) {
_TouchInput__onMiddleButtonDown.apply(this, arguments);
if (paramWheelOk) {
Input.setCurrentStateForWheelExtendOk(true);
} else if (paramWheelCancel) {
Input.setCurrentStateForWheelExtendCancel(true);
}
this._events.middleTriggered = true;
};
var _TouchInput__onMouseUp = TouchInput._onMouseUp;
TouchInput._onMouseUp = function(event) {
_TouchInput__onMouseUp.apply(this, arguments);
if (event.button === 1) {
if (paramWheelOk) {
Input.setCurrentStateForWheelExtendOk(false);
} else if (paramWheelCancel) {
Input.setCurrentStateForWheelExtendCancel(false);
}
}
};
TouchInput.isMiddleTriggered = function() {
return this._middleTriggered;
};
if (paramScrollDirection) {
TouchInput._wheelValidFrame = 12;
var _TouchInput__onWheel = TouchInput._onWheel;
TouchInput._onWheel = function(event) {
_TouchInput__onWheel.apply(this, arguments);
if (event.deltaY <= -paramSensitivityY) {
this._wheelUp = TouchInput._wheelValidFrame;
Input.setCurrentStateForWheelExtendUp(true);
}
if (event.deltaY >= paramSensitivityY) {
this._wheelDown = TouchInput._wheelValidFrame;
Input.setCurrentStateForWheelExtendDown(true);
}
if (event.deltaX <= -paramSensitivityX) {
this._wheelRight = TouchInput._wheelValidFrame;
Input.setCurrentStateForWheelExtendRight(true);
}
if (event.deltaX >= paramSensitivityX) {
this._wheelLeft = TouchInput._wheelValidFrame;
Input.setCurrentStateForWheelExtendLeft(true);
}
};
var _TouchInput_update = TouchInput.update;
TouchInput.update = function() {
_TouchInput_update.apply(this, arguments);
this.updateWheelDirection();
};
TouchInput.updateWheelDirection = function() {
if (this._wheelUp > 0) {
this._wheelUp--;
if (this._wheelUp <= 0) {
Input.setCurrentStateForWheelExtendUp(false);
}
}
if (this._wheelDown > 0) {
this._wheelDown--;
if (this._wheelDown <= 0) {
Input.setCurrentStateForWheelExtendDown(false);
}
}
if (this._wheelRight > 0) {
this._wheelRight--;
if (this._wheelRight <= 0) {
Input.setCurrentStateForWheelExtendRight(false);
}
}
if (this._wheelLeft > 0) {
this._wheelLeft--;
if (this._wheelLeft <= 0) {
Input.setCurrentStateForWheelExtendLeft(false);
}
}
};
}
Input.setCurrentStateForWheelExtendOk = function(value) {
this.setCurrentStateForWheelExtend(13, value);
};
Input.setCurrentStateForWheelExtendCancel = function(value) {
this.setCurrentStateForWheelExtend(27, value);
};
Input.setCurrentStateForWheelExtendDown = function(value) {
this.setCurrentStateForWheelExtend(40, value);
};
Input.setCurrentStateForWheelExtendLeft = function(value) {
this.setCurrentStateForWheelExtend(37, value);
};
Input.setCurrentStateForWheelExtendRight = function(value) {
this.setCurrentStateForWheelExtend(39, value);
};
Input.setCurrentStateForWheelExtendUp = function(value) {
this.setCurrentStateForWheelExtend(38, value);
};
Input.setCurrentStateForWheelExtend = function(code, value) {
this._currentState[this.keyMapper[code]] = !!value;
};
})();