Files
MovementTests/addons/guide/inputs/guide_input_touch_position.gd
2025-05-27 19:20:46 +02:00

46 lines
1.1 KiB
GDScript

@tool
class_name GUIDEInputTouchPosition
extends GUIDEInputTouchBase
func _begin_usage():
# subscribe to touch events
_state.touch_state_changed.connect(_refresh)
_refresh()
func _end_usage():
# unsubscribe from touch events
_state.touch_state_changed.disconnect(_refresh)
func _refresh() -> void:
# update finger position
var position:Vector2 = _state.get_finger_position(finger_index, finger_count)
if not position.is_finite():
_value = Vector3.INF
return
_value = Vector3(position.x, position.y, 0)
func is_same_as(other:GUIDEInput):
return other is GUIDEInputTouchPosition and \
other.finger_count == finger_count and \
other.finger_index == finger_index
func _to_string():
return "(GUIDEInputTouchPosition finger_count=" + str(finger_count) + \
" finger_index=" + str(finger_index) +")"
func _editor_name() -> String:
return "Touch Position"
func _editor_description() -> String:
return "Position of a touching finger."
func _native_value_type() -> GUIDEAction.GUIDEActionValueType:
return GUIDEAction.GUIDEActionValueType.AXIS_2D