gd: added input addon

This commit is contained in:
2025-05-27 19:20:46 +02:00
parent d8a1604af9
commit c8d8c7ec25
683 changed files with 21608 additions and 2 deletions

View File

@ -0,0 +1,57 @@
@tool
class_name GUIDEInputMouseAxis1D
extends GUIDEInput
enum GUIDEInputMouseAxis {
X,
Y
}
@export var axis:GUIDEInputMouseAxis:
set(value):
if value == axis:
return
axis = value
emit_changed()
# we don't get mouse updates when the mouse is not moving, so this needs to be
# reset every frame
func _needs_reset() -> bool:
return true
func _begin_usage() -> void:
# subscribe to mouse movement events
_state.mouse_position_changed.connect(_refresh)
_refresh()
func _end_usage() -> void:
# unsubscribe from mouse movement events
_state.mouse_position_changed.disconnect(_refresh)
func _refresh() -> void:
var delta:Vector2 = _state.get_mouse_delta_since_last_frame()
match axis:
GUIDEInputMouseAxis.X:
_value.x = delta.x
GUIDEInputMouseAxis.Y:
_value.x = delta.y
func is_same_as(other:GUIDEInput):
return other is GUIDEInputMouseAxis1D and other.axis == axis
func _to_string():
return "(GUIDEInputMouseAxis1D: axis=" + str(axis) + ")"
func _editor_name() -> String:
return "Mouse Axis 1D"
func _editor_description() -> String:
return "Relative mouse movement on a single axis."
func _native_value_type() -> GUIDEAction.GUIDEActionValueType:
return GUIDEAction.GUIDEActionValueType.AXIS_1D