Files
Billiards/scenes/individual_parts/table/pool_table_manager.gd

33 lines
1.0 KiB
GDScript

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