/*:
 * @target MZ
 * @plugindesc スイッチ34がONの間、プレイヤー移動とメニュー呼び出しを禁止 v1.1
 * @author You
 * @help
 * スイッチ34がONのとき：
 *  - 十字キー／アナログ／クリック等のプレイヤー移動を無効化
 *  - メニュー画面（Esc/X/右クリック等）を開けなくする
 * OFFで元に戻ります。イベントは通常どおり実行されます。
 */

(() => {
  "use strict";
  const BLOCK_SWITCH_ID = 34;

  // 移動入力の抑制
  const _Game_Player_moveByInput = Game_Player.prototype.moveByInput;
  Game_Player.prototype.moveByInput = function() {
    // イベント実行中でなく、ブロックスイッチがONなら移動入力を遮断
    if (!$gameMap.isEventRunning() && $gameSwitches.value(BLOCK_SWITCH_ID)) {
      return; // 何もしない（移動しない）
    }
    _Game_Player_moveByInput.call(this);
  };

  // メニュー呼び出しの抑制（どこからでも一貫して効くよう isMenuEnabled を拡張）
  const _Game_System_isMenuEnabled = Game_System.prototype.isMenuEnabled;
  Game_System.prototype.isMenuEnabled = function() {
    // スイッチ34がONの間は常にメニュー無効（他の無効化設定とも両立）
    if ($gameSwitches && $gameSwitches.value(BLOCK_SWITCH_ID)) return false;
    return _Game_System_isMenuEnabled.call(this);
  };

  // 念のためマップシーンのメニュー呼び出し判定もガード（二重の安全策）
  const _Scene_Map_isMenuCalled = Scene_Map.prototype.isMenuCalled;
  Scene_Map.prototype.isMenuCalled = function() {
    if ($gameSwitches.value(BLOCK_SWITCH_ID)) return false;
    return _Scene_Map_isMenuCalled.call(this);
  };
})();
