## Camera control. We listen to GUIDE's actions to move and zoom the camera. Note how we can
## mix event-based and polling based input handling, depending on what works better for the 
## use case.
extends Camera2D


@export var camera_movement:GUIDEAction
@export var camera_zoom:GUIDEAction
@export var speed:float = 300


func _ready():
	camera_zoom.triggered.connect(_zoom_camera)

func _process(delta):
	position += camera_movement.value_axis_2d * speed * delta
	
func _zoom_camera():
	zoom = clamp( zoom + Vector2.ONE * camera_zoom.value_axis_1d, Vector2(0.1, 0.1), Vector2(3, 3))
