diff options
Diffstat (limited to 'client/player')
| -rw-r--r-- | client/player/follow_camera.gd | 23 | 
1 files changed, 15 insertions, 8 deletions
| diff --git a/client/player/follow_camera.gd b/client/player/follow_camera.gd index 41f99d97..516b1ba1 100644 --- a/client/player/follow_camera.gd +++ b/client/player/follow_camera.gd @@ -43,7 +43,11 @@ var angle_up: float = 1  var ground: Vector3  var camera_distance: float = 10.  var camera_distance_target: float = camera_distance -var disable_input := false + +var disable_input_menu := false +var disable_input_lobby := false + +var _disable_input := false  func _ready():  	if target == null: @@ -56,7 +60,7 @@ func _process(delta):  		follow(delta)  func _input(_event): -	if disable_input: return +	if _disable_input: return  	if Input.is_action_just_pressed("reset"):  		reset() @@ -66,12 +70,12 @@ func reset():  	camera_distance_target = 10  func follow(delta): -	if not disable_input: angle_target += Input.get_axis("rotate_left", "rotate_right") * ( +	if not _disable_input: angle_target += Input.get_axis("rotate_left", "rotate_right") * (  		ROTATE_SPEED * delta * (-1 if Global.get_setting("invert_camera") else 1)  	)  	angle = G.interpolate_angle(angle, angle_target, delta * ROTATE_WEIGHT) -	if not disable_input: angle_up_target += Input.get_axis("rotate_down", "rotate_up") * ( +	if not _disable_input: angle_up_target += Input.get_axis("rotate_down", "rotate_up") * (  		ROTATE_UP_SPEED * delta * (-1 if Global.get_setting("invert_camera") else 1)  	)  	angle_up_target = clamp(angle_up_target, ANGLE_UP_MIN, ANGLE_UP_MAX) @@ -95,7 +99,7 @@ func follow(delta):  	# add 0.5, this is the head height  	ground = G.interpolate(ground, target.position + Vector3(0., 0.5, 0.), delta * MOVE_WEIGHT) -	if not disable_input: +	if not _disable_input:  		var zoom_dist = Input.get_axis("zoom_in", "zoom_out") * delta  		zoom_dist += float(Input.is_action_just_pressed("zoom_out_discrete")) * DISCRETE_DURATION  		zoom_dist -= float(Input.is_action_just_pressed("zoom_in_discrete")) * DISCRETE_DURATION @@ -110,7 +114,10 @@ func set_ingame(state: bool, in_lobby: bool):  	# Disable input in lobby  	if state and in_lobby:  		reset() -		disable_input = true +		disable_input_lobby = true  	else: -		disable_input = false -	 +		disable_input_lobby = false +	update_disable_input() + +func update_disable_input(): +	_disable_input = disable_input_lobby or disable_input_menu | 
