45 lines
1.1 KiB
GDScript
45 lines
1.1 KiB
GDScript
extends Node3D
|
|
|
|
@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_pressed:GUIDEAction
|
|
@export var aim_released:GUIDEAction
|
|
@export var aim_canceled:GUIDEAction
|
|
|
|
signal input_move(value: Vector3)
|
|
signal input_rotate_y(value: float)
|
|
signal input_rotate_floorplane(value: float)
|
|
|
|
signal input_aim_pressed
|
|
signal input_aim_released
|
|
signal input_aim_canceled
|
|
|
|
func _ready() -> void:
|
|
GUIDE.enable_mapping_context(base_mode)
|
|
|
|
aim_pressed.triggered.connect(on_input_aim_pressed)
|
|
aim_released.triggered.connect(on_input_aim_released)
|
|
aim_canceled.triggered.connect(on_input_aim_canceled)
|
|
|
|
|
|
func on_input_aim_pressed():
|
|
input_aim_pressed.emit()
|
|
|
|
func on_input_aim_released():
|
|
input_aim_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)
|