@tool class_name GUIDEInputJoyButton extends GUIDEInputJoyBase @export var button:JoyButton = JOY_BUTTON_A: set(value): if value == button: return button = value emit_changed() func _begin_usage() -> void: _state.joy_button_state_changed.connect(_refresh) _refresh() func _end_usage() -> void: _state.joy_button_state_changed.disconnect(_refresh) func _refresh(): _value.x = 1.0 if _state.is_joy_button_pressed(joy_index, button) else 0.0 func is_same_as(other:GUIDEInput) -> bool: return other is GUIDEInputJoyButton and \ other.button == button and \ other.joy_index == joy_index func _to_string(): return "(GUIDEInputJoyButton: button=" + str(button) + ", joy_index=" + str(joy_index) + ")" func _editor_name() -> String: return "Joy Button" func _editor_description() -> String: return "A button press from a joy button." func _native_value_type() -> GUIDEAction.GUIDEActionValueType: return GUIDEAction.GUIDEActionValueType.BOOL