class_name PoolTableManager extends PoolTableManagerMultiplayer func _ready() -> void: setup_signals() setup_multiplayer() initial_white_ball_start() func setup_signals() -> void: Globals.game_state.white_ball_sunk.connect(_white_ball_sunk) Globals.game_state.white_ball_needs_hard_reset.connect(_white_ball_needs_hard_reset) func initial_white_ball_start() -> void: cue.reset_state() white_ball_sunk = false white_ball_hard_sunk = false balls.white_ball.global_position = balls.white_ball_marker.global_position cue.global_position = balls.white_ball.global_position func align_to_white_ball() -> void: cue.reset_state() cue.global_position = balls.white_ball.global_position func _white_ball_sunk() -> void: white_ball_sunk = true func _white_ball_needs_hard_reset() -> void: balls.white_ball.set_visible(false) balls.white_ball.global_position = balls.white_ball_marker.global_position balls.white_ball.linear_velocity = Vector3.ZERO white_ball_hard_sunk = true