extends PanelContainer const CALL_REQUESTED_SOUND = preload("res://sounds/call_requested.wav") const USER_JOINED_SOUND = preload("res://sounds/user_joined.wav") const CALL_LEFT_SOUND = preload("res://sounds/call_left.wav") const CONNECTION_DUMMY = preload("res://user_interface/call_panel/icons/connection_dummy.png") const BAD_CONNECTION_DUMMY = preload("res://user_interface/call_panel/icons/bad_connection_dummy.png") onready var label_members = get_node("VBoxContainer/LabelMembers") onready var left_member = get_node("VBoxContainer/CenterContainer/HBoxContainer/LeftMember") onready var right_member = get_node("VBoxContainer/CenterContainer/HBoxContainer/RightMember") onready var ping_effect = get_node("VBoxContainer/CenterContainer/HBoxContainer/RightMember/PingEffect") onready var connection_dummy = get_node("Dummies/ConnectionDummy") onready var audio_stream_player = get_node("AudioStreamPlayer") var until_accept_timer = 0.0 func _ready(): # warning-ignore:return_value_discarded Call.connect("requested", self, "_on_call_requested") # warning-ignore:return_value_discarded Call.connect("closed", self, "_on_call_closed") # warning-ignore:return_value_discarded Users.connect("switched", self, "_on_user_switched") func _process(delta): if until_accept_timer > 0.0: until_accept_timer -= delta if until_accept_timer <= 0.0: _accept_call() func _on_call_requested(): left_member.picture_size = 120 left_member.visibility = 1.0 right_member.picture_size = 112 right_member.visibility = 0.65 ping_effect.timer = 1.2 ping_effect.visible = true until_accept_timer = 0.8 + randf() * 3.0 audio_stream_player.stream = CALL_REQUESTED_SOUND audio_stream_player.play() func _on_call_closed(): left_member.picture_size = 112 left_member.visibility = 0.65 right_member.picture_size = 112 right_member.visibility = 0.65 ping_effect.visible = false until_accept_timer = 0.0 connection_dummy.texture = BAD_CONNECTION_DUMMY audio_stream_player.stream = CALL_LEFT_SOUND audio_stream_player.play() func _accept_call(): right_member.picture_size = 120 right_member.visibility = 1.0 ping_effect.visible = false audio_stream_player.stream = USER_JOINED_SOUND audio_stream_player.play() connection_dummy.texture = CONNECTION_DUMMY Call.is_accepted = true right_member._check_if_microphone_input() Call.emit_signal("accepted") func _on_user_switched(): self_modulate = Users.get_current().call_background_color left_member.associated_user = Users.get_current() right_member.associated_user = Users.get_inactive() label_members.text = Users.get_current().username + ", " label_members.text += Users.get_inactive().username + "..."