-
Notifications
You must be signed in to change notification settings - Fork 3
/
DP_DeviceSwitcher.js
133 lines (120 loc) · 4.43 KB
/
DP_DeviceSwitcher.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
//=============================================================================
// drowsepost Plugins - Device Switcher
// DP_DeviceSwitcher.js
// Version: 0.1
// canotun
//=============================================================================
var Imported = Imported || {};
Imported.DP_DeviceSwitcher = true;
//=============================================================================
/*:
* @plugindesc 入力デバイスを制限します ver0.1(201602012157)
* @author drowsepost
*
* @param MouseInput
* @desc マウス入力を有効にします
* Default: true
* @default true
*
* @param TouchInput
* @desc タッチ入力を有効にします
* Default: true
* @default true
*
* @param PadInput
* @desc ゲームパッド入力を有効にします
* Default: true
* @default true
*
* @param KeyboardInput
* @desc キーボード入力を有効にします
* Default: true
* @default true
*
* @param UseSwitch
* @desc プラグインの有効/無効をスイッチで制御します。
* 空もしくは0以下にすると常に有効になります。
* @default
*
* @help
* falseに設定した入力用デバイスが無効になります
*
* ===
* このプラグインは試作品です。
* いくつかのプライベートプロパティーを参照しているため、
* 今後の本体アップデートで動作しなくなる可能性があります。
* ご利用によって生じたいかなる問題の責任も負いかねます。
* ===
*
* ライセンス: MIT
*
*/
(function() {
"use strict";
var parameters = PluginManager.parameters('DP_DeviceSwitcher');
var user_use_mouse = Boolean(parameters['MouseInput'] === 'true' || false);
var user_use_touch = Boolean(parameters['TouchInput'] === 'true' || false);
var user_use_gamepad = Boolean(parameters['PadInput'] === 'true' || false);
var user_use_keyboard = Boolean(parameters['KeyboardInput'] === 'true' || false);
var user_switch = Number(parameters['UseSwitch'] || -1);
var isUsePlugin = (function(){
if(user_switch < 1) return true;
if(!$gameSwitches) return false;
if(!('value' in $gameSwitches)) return false;
return $gameSwitches.value(user_switch);
});
/*
rpg_core: Input
==========================================================================================
*/
var _Input_onKeyDown = Input._onKeyDown;
Input._onKeyDown = function(event) {
if (isUsePlugin() && !user_use_keyboard) {
this.clear();
event.preventDefault();
return;
}
_Input_onKeyDown.call(this, event);
};
var _Input_pollGamepads = Input._pollGamepads;
Input._pollGamepads = function() {
if (isUsePlugin() && !user_use_gamepad) {
return;
}
_Input_pollGamepads.call(this);
}
/*
rpg_core: TouchInput
==========================================================================================
*/
var mouseInputFactory = function(_function){
var __function = _function;
return function(_arg){
if (isUsePlugin() && !user_use_mouse) {
return;
}
__function.call(this, _arg);
};
};
var touchInputFactory = function(_function){
var __function = _function;
return function(_arg){
if (isUsePlugin() && !user_use_touch) {
return;
}
__function.call(this, _arg);
};
};
TouchInput._onMouseDown = mouseInputFactory(TouchInput._onMouseDown);
TouchInput._onLeftButtonDown = mouseInputFactory(TouchInput._onLeftButtonDown);
TouchInput._onMiddleButtonDown = mouseInputFactory(TouchInput._onMouseDown);
TouchInput._onRightButtonDown = mouseInputFactory(TouchInput._onRightButtonDown);
TouchInput._onMouseMove = mouseInputFactory(TouchInput._onMouseMove);
TouchInput._onMouseUp = mouseInputFactory(TouchInput._onMouseUp);
TouchInput._onWheel = mouseInputFactory(TouchInput._onWheel);
TouchInput._onTouchStart = touchInputFactory(TouchInput._onTouchStart);
TouchInput._onTouchMove = touchInputFactory(TouchInput._onTouchMove);
TouchInput._onTouchEnd = touchInputFactory(TouchInput._onTouchEnd);
TouchInput._onTouchCancel = touchInputFactory(TouchInput._onTouchCancel);
TouchInput._onPointerDown = touchInputFactory(TouchInput._onPointerDown);
}());