Files
MovementTests/systems/inputs/input_system.gd
2025-07-21 14:40:48 +02:00

81 lines
2.0 KiB
GDScript

extends Node3D
class_name InputController
@export_group("Mapping contexts")
@export var base_mode:GUIDEMappingContext
@export_group("Move actions")
@export var move:GUIDEAction
@export var rotate_y:GUIDEAction
@export var rotate_floorplane:GUIDEAction
@export_group("Trigger actions")
@export var aim_down:GUIDEAction
@export var aim_released:GUIDEAction
@export var empower_down:GUIDEAction
@export var empower_released:GUIDEAction
@export var aim_canceled:GUIDEAction
@export var jump:GUIDEAction
@export var hit:GUIDEAction
@export var dash:GUIDEAction
@export var throw:GUIDEAction
signal input_move(value: Vector3)
signal input_rotate_y(value: float)
signal input_rotate_floorplane(value: float)
signal input_aim_down
signal input_aim_released
signal input_empower_down
signal input_empower_released
signal input_aim_canceled
signal input_jump
signal input_hit
signal input_dash
signal input_throw
func _ready() -> void:
GUIDE.enable_mapping_context(base_mode)
aim_down.triggered.connect(on_input_aim_down)
aim_released.triggered.connect(on_input_aim_released)
empower_down.triggered.connect(on_input_empower_down)
empower_released.triggered.connect(on_input_empower_released)
aim_canceled.triggered.connect(on_input_aim_canceled)
jump.triggered.connect(on_input_jump)
hit.triggered.connect(on_input_hit)
dash.triggered.connect(on_input_dash)
throw.triggered.connect(on_input_throw)
func on_input_dash():
input_dash.emit()
func on_input_throw():
input_throw.emit()
func on_input_hit():
input_hit.emit()
func on_input_jump():
input_jump.emit()
func on_input_aim_down():
input_aim_down.emit()
func on_input_aim_released():
input_aim_released.emit()
func on_input_empower_down():
input_empower_down.emit()
func on_input_empower_released():
input_empower_released.emit()
func on_input_aim_canceled():
input_aim_canceled.emit()
func _process(_delta: float) -> void:
input_move.emit(move.value_axis_3d)
input_rotate_y.emit(rotate_y.value_axis_1d)
input_rotate_floorplane.emit(rotate_floorplane.value_axis_1d)