class_name CharacterMovement
extends Resource

@export var jump_height: float = 1.25
@export var walking_speed: float = 3.5
@export var air_walking_speed: float = 3.75
@export var running_speed: float = 5.5
@export var air_running_speed: float = 6.0

@export var max_turning_speed: float = 50.0
@export var max_air_turning_speed: float = 10.0

@export_exp_easing("inout") var max_acceleration: float = 30.0
@export_exp_easing("inout") var max_air_acceleration: float = 10.0
@export_exp_easing("attenuation") var max_friction: float = 20.0
@export_exp_easing("attenuation") var max_air_friction: float = 10.0

@export var use_default_physics_gravity: bool = true
@export var gravity: float = 9.8: get = get_gravity
@export_group("Gravity Multiplier")
@export var gravity_check_margin: float = 0.05
@export var rise_gravity_multiplier: float = 1.0
@export var peak_gravity_multiplier: float = 0.85
@export var fall_gravity_multiplier: float = 1.5


func get_gravity() -> float:
	if use_default_physics_gravity:
		return ProjectSettings.get_setting("physics/3d/default_gravity")
	else:
		return gravity
