extends Control

    # 接続されているジョイパッドの配列
    var joypads				: Array
    # ジョイパッドの情報を格納する辞書型配列
    var joypad_info			: Dictionary
    # ボタンの登録を可能/不可能にするトグルボタン
    @onready var set_button = $SetButton
    
    func _ready():
        pass # Replace with function body.
    
    
    func _process(_delta):
        # ジョイパッドの接続をポーリングする
        # 接続されているジョイパッドを配列に格納する
        joypads = Input.get_connected_joypads()
    
    
    func _input(_event : InputEvent):
        # ジョイパッドが接続されていない場合は処理を抜ける
        if joypads.size() < 1: return
        
        # SetButtonが押された状態であるか?
        # (ジョイパッドのボタンののセッティングが可能な状態であるか?)
        if set_button.button_pressed:
            # 何かのボタンが押されたか?
            if Input.is_anything_pressed():
                # インプットマップの"Jump"に押されたボタンを割り当てる。
                InputMap.action_add_event("Jump", _event)
                var button_index = InputMap.action_get_events("Jump")
                if button_index.size() > 0:
                    print("Setted button from Jump = %d" %button_index[0].button_index)
        else:
            # "Jump"に割り当てたボタンが押されたか?
            if Input.is_action_just_pressed("Jump"):
                var button_index = InputMap.action_get_events("Jump")
                if button_index.size() > 0:
                    print("Pressed button from Jump = %d" %button_index[0].button_index)