diary/user_interface/call_panel/interface.gd
2022-06-28 21:51:50 +02:00

80 lines
2.6 KiB
GDScript

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 + "..."