54 lines
1.2 KiB
GDScript
54 lines
1.2 KiB
GDScript
## Input from two joy axes.
|
|
class_name GUIDEInputJoyAxis2D
|
|
extends GUIDEInputJoyBase
|
|
|
|
## The joy axis to sample for x input.
|
|
@export var x:JoyAxis = JOY_AXIS_LEFT_X:
|
|
set(value):
|
|
if value == x:
|
|
return
|
|
x = value
|
|
emit_changed()
|
|
|
|
|
|
## The joy axis to sample for y input.
|
|
@export var y:JoyAxis = JOY_AXIS_LEFT_Y:
|
|
set(value):
|
|
if value == y:
|
|
return
|
|
y = value
|
|
emit_changed()
|
|
|
|
func _begin_usage() -> void:
|
|
_state.joy_axis_state_changed.connect(_refresh)
|
|
_refresh()
|
|
|
|
func _end_usage() -> void:
|
|
_state.joy_axis_state_changed.disconnect(_refresh)
|
|
|
|
|
|
func _refresh():
|
|
_value.x = _state.get_joy_axis_value(joy_index, x)
|
|
_value.y = _state.get_joy_axis_value(joy_index, y)
|
|
|
|
|
|
func is_same_as(other:GUIDEInput) -> bool:
|
|
return other is GUIDEInputJoyAxis2D and \
|
|
other.x == x and \
|
|
other.y == y and \
|
|
other.joy_index == joy_index
|
|
|
|
func _to_string():
|
|
return "(GUIDEInputJoyAxis2D: x=" + str(x) + ", y=" + str(y) + ", joy_index=" + str(joy_index) + ")"
|
|
|
|
|
|
func _editor_name() -> String:
|
|
return "Joy Axis 2D"
|
|
|
|
func _editor_description() -> String:
|
|
return "The input from two Joy axes. Usually from a stick."
|
|
|
|
|
|
func _native_value_type() -> GUIDEAction.GUIDEActionValueType:
|
|
return GUIDEAction.GUIDEActionValueType.AXIS_2D
|