84 lines
2.3 KiB
GDScript
84 lines
2.3 KiB
GDScript
extends CenterContainer
|
|
|
|
const PROFILE_IMAGE_RECT_MASK = preload("res://user_interface/utility_controls/profile_image_rect/profile_image_rect_mask.png")
|
|
const PROFILE_IMAGE_RECT_MASK_WITH_MUTED_SLOT = preload("res://user_interface/call_panel/profile_image_rect_mask_with_muted_slot.png")
|
|
|
|
onready var mic_indicator = get_node("MicIndicator")
|
|
onready var profile_picture = get_node("ProfilePicture")
|
|
onready var muted_indicator = get_node("ProfilePicture/MutedIndicator")
|
|
|
|
var associated_user: User setget _set_associated_user
|
|
var picture_size: int setget _set_picture_size
|
|
var visibility: float setget _set_visibility
|
|
|
|
|
|
func _ready():
|
|
# warning-ignore:return_value_discarded
|
|
Call.connect("mute_toggled", self, "_on_mute_toggled")
|
|
# warning-ignore:return_value_discarded
|
|
Call.connect("accepted", self, "_check_if_muted")
|
|
# warning-ignore:return_value_discarded
|
|
Call.connect("closed", self, "_check_if_muted")
|
|
# warning-ignore:return_value_discarded
|
|
Call.connect(
|
|
"microphone_input_state_changed",
|
|
self,
|
|
"_on_microphone_input_state_changed"
|
|
)
|
|
|
|
|
|
func _check_if_muted():
|
|
if _is_valid():
|
|
if not Call.is_muted:
|
|
_change_mute_indication(false)
|
|
return
|
|
if name == "RightMember" and not Call.is_accepted:
|
|
_change_mute_indication(false)
|
|
return
|
|
_change_mute_indication(true)
|
|
|
|
|
|
func _check_if_microphone_input():
|
|
if _is_valid() and not Call.is_muted:
|
|
if not (Users.get_helper().is_current() and not Call.is_accepted):
|
|
mic_indicator.visible = Call.microphone_input_detected
|
|
return
|
|
mic_indicator.visible = false
|
|
|
|
|
|
func _change_mute_indication(muted):
|
|
if muted:
|
|
profile_picture.mask = PROFILE_IMAGE_RECT_MASK_WITH_MUTED_SLOT
|
|
muted_indicator.visible = true
|
|
else:
|
|
profile_picture.mask = PROFILE_IMAGE_RECT_MASK
|
|
muted_indicator.visible = false
|
|
|
|
|
|
func _on_mute_toggled(_value):
|
|
_check_if_microphone_input()
|
|
_check_if_muted()
|
|
|
|
|
|
func _on_microphone_input_state_changed():
|
|
_check_if_microphone_input()
|
|
|
|
|
|
func _is_valid():
|
|
return associated_user == Users.get_primary()
|
|
|
|
|
|
func _set_associated_user(user):
|
|
associated_user = user
|
|
profile_picture.texture = user.profile_image
|
|
_check_if_muted()
|
|
_check_if_microphone_input()
|
|
|
|
|
|
func _set_picture_size(value):
|
|
profile_picture.rect_min_size = Vector2(value, value)
|
|
|
|
|
|
func _set_visibility(value):
|
|
profile_picture.self_modulate.a = value
|