extends Camera2D class_name Camera const MOVE_LERP_WEIGHT = 0.9 const ZOOM_LERP_WEIGHT = 0.05 const ZOOM_STEP = 0.1 @export var following : Node2D @onready var settings = GameInfo.settings_data func _input(_e): if Input.is_action_just_pressed("zoom_in"): settings.zoom = settings.zoom + ZOOM_STEP GameInfo.save_settings() if Input.is_action_just_pressed("zoom_out"): settings.zoom = settings.zoom - ZOOM_STEP GameInfo.save_settings() func _ready(): if following: zoom = Vector2.ONE * settings.zoom global_position = following.global_position func _process(_delta): if following: global_position = following.global_position.lerp(global_position, MOVE_LERP_WEIGHT) zoom = zoom.lerp(Vector2.ONE * settings.zoom, MOVE_LERP_WEIGHT)