< Summary

Class:TaskbarHUDController
Assembly:TaskbarHUD
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/TaskbarHUD/TaskbarHUDController.cs
Covered lines:171
Uncovered lines:129
Coverable lines:300
Total lines:596
Line coverage:57% (171 of 300)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
CreateView()0%110100%
Initialize(...)0%66096.15%
View_OnQuestPanelToggled(...)0%2100%
ChatHeadsGroup_OnHeadClose(...)0%110100%
View_OnFriendsToggleOn()0%3.333066.67%
View_OnFriendsToggleOff()0%220100%
ToggleFriendsTrigger_OnTriggered(...)0%6200%
ToggleWorldChatTrigger_OnTriggered(...)0%2100%
OnToggleQuestsPanelTriggered(...)0%8.198085.71%
CloseWindowTrigger_OnTriggered(...)0%2100%
View_OnChatToggleOn()0%2.022083.33%
View_OnChatToggleOff()0%2.152066.67%
ChatHeadsGroup_OnHeadOpen(...)0%2.032080%
View_OnSettingsToggleOn()0%6200%
View_OnSettingsToggleOff()0%2100%
View_OnBuilderInWorldToggleOn()0%6200%
View_OnBuilderInWorldToggleOff()0%2100%
View_OnExploreToggleOn()0%6200%
View_OnExploreToggleOff()0%110100%
MouseCatcher_OnMouseUnlock()0%2100%
MouseCatcher_OnMouseLock()0%6200%
SetBuilderInWorldStatus(...)0%220100%
SetQuestsPanelStatus(...)0%2100%
AddWorldChatWindow(...)0%4.254075%
OpenFriendsWindow()0%2100%
OpenPrivateChatTo(...)0%2100%
AddPrivateChatWindow(...)0%4.434070%
AddFriendsWindow(...)0%4.324072.73%
AddSettingsWindow(...)0%2.062075%
AddExploreWindow(...)0%2.062075%
AddHelpAndSupportWindow(...)0%3.213071.43%
OnAddVoiceChat()0%2100%
AddControlsMoreOption()0%110100%
DisableFriendsWindow()0%2100%
OpenPrivateChatWindow(...)0%2.032080%
Dispose()0%880100%
SetVisibility(...)0%2100%
SetVisibility(...)0%110100%
OnWorldChatToggleInputPress()0%42600%
OnCloseWindowToggleInputPress()0%6200%
SetVoiceChatRecording(...)0%6200%
SetVoiceChatEnabledByScene(...)0%6200%
OnFriendsToggleInputPress()0%56700%
OnAddMessage(...)0%3.333066.67%
AnyWindowsDifferentThanChatIsOpen()0%440100%
MarkWorldChatAsReadIfOtherWindowIsOpen()0%2.152066.67%
ShowTutorialOption(...)0%12300%
SceneController_OnNewPortableExperienceSceneAdded(...)0%6200%
SceneController_OnNewPortableExperienceSceneRemoved(...)0%2100%
KillPortableExperience(...)0%2100%
OnBuilderProjectsPanelTriggered(...)0%12300%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/TaskbarHUD/TaskbarHUDController.cs

#LineLine coverage
 1using System;
 2using DCL;
 3using DCL.HelpAndSupportHUD;
 4using DCL.Helpers;
 5using DCL.Interface;
 6using DCL.SettingsPanelHUD;
 7using System.Linq;
 8using UnityEngine;
 9using UnityEngine.EventSystems;
 10using System.Collections.Generic;
 11using DCL.Controllers;
 12
 13public class TaskbarHUDController : IHUD
 14{
 15    [Serializable]
 16    public struct Configuration
 17    {
 18        public bool enableVoiceChat;
 19        public bool enableQuestPanel;
 20    }
 21
 22    public TaskbarHUDView view;
 23    public WorldChatWindowHUDController worldChatWindowHud;
 24    public PrivateChatWindowHUDController privateChatWindowHud;
 25    public FriendsHUDController friendsHud;
 26    public SettingsPanelHUDController settingsPanelHud;
 27    public ExploreHUDController exploreHud;
 28    public HelpAndSupportHUDController helpAndSupportHud;
 29
 30    IMouseCatcher mouseCatcher;
 31    protected IChatController chatController;
 32    protected IFriendsController friendsController;
 33
 34    private InputAction_Trigger toggleFriendsTrigger;
 35    private InputAction_Trigger closeWindowTrigger;
 36    private InputAction_Trigger toggleWorldChatTrigger;
 37    private ISceneController sceneController;
 38    private IWorldState worldState;
 39
 40    public event System.Action OnAnyTaskbarButtonClicked;
 41
 042    public RectTransform tutorialTooltipReference { get => view.moreTooltipReference; }
 43
 044    public RectTransform exploreTooltipReference { get => view.exploreTooltipReference; }
 45
 046    public RectTransform socialTooltipReference { get => view.socialTooltipReference; }
 47
 048    public TaskbarMoreMenu moreMenu { get => view.moreMenu; }
 49
 1150    protected internal virtual TaskbarHUDView CreateView() { return TaskbarHUDView.Create(this, chatController, friendsC
 51
 52    public void Initialize(
 53        IMouseCatcher mouseCatcher,
 54        IChatController chatController,
 55        IFriendsController friendsController,
 56        ISceneController sceneController,
 57        IWorldState worldState)
 58    {
 1159        this.friendsController = friendsController;
 1160        this.mouseCatcher = mouseCatcher;
 1161        this.chatController = chatController;
 62
 1163        view = CreateView();
 64
 1165        this.sceneController = sceneController;
 1166        this.worldState = worldState;
 67
 1168        if (mouseCatcher != null)
 69        {
 170            mouseCatcher.OnMouseLock -= MouseCatcher_OnMouseLock;
 171            mouseCatcher.OnMouseUnlock -= MouseCatcher_OnMouseUnlock;
 172            mouseCatcher.OnMouseLock += MouseCatcher_OnMouseLock;
 173            mouseCatcher.OnMouseUnlock += MouseCatcher_OnMouseUnlock;
 74        }
 75
 1176        view.chatHeadsGroup.OnHeadToggleOn += ChatHeadsGroup_OnHeadOpen;
 1177        view.chatHeadsGroup.OnHeadToggleOff += ChatHeadsGroup_OnHeadClose;
 78
 1179        view.leftWindowContainerLayout.enabled = false;
 80
 1181        view.OnChatToggleOff += View_OnChatToggleOff;
 1182        view.OnChatToggleOn += View_OnChatToggleOn;
 1183        view.OnFriendsToggleOff += View_OnFriendsToggleOff;
 1184        view.OnFriendsToggleOn += View_OnFriendsToggleOn;
 1185        view.OnSettingsToggleOff += View_OnSettingsToggleOff;
 1186        view.OnSettingsToggleOn += View_OnSettingsToggleOn;
 1187        view.OnBuilderInWorldToggleOff += View_OnBuilderInWorldToggleOff;
 1188        view.OnBuilderInWorldToggleOn += View_OnBuilderInWorldToggleOn;
 1189        view.OnExploreToggleOff += View_OnExploreToggleOff;
 1190        view.OnExploreToggleOn += View_OnExploreToggleOn;
 1191        view.OnQuestPanelToggled -= View_OnQuestPanelToggled;
 1192        view.OnQuestPanelToggled += View_OnQuestPanelToggled;
 93
 1194        toggleFriendsTrigger = Resources.Load<InputAction_Trigger>("ToggleFriends");
 1195        toggleFriendsTrigger.OnTriggered -= ToggleFriendsTrigger_OnTriggered;
 1196        toggleFriendsTrigger.OnTriggered += ToggleFriendsTrigger_OnTriggered;
 97
 1198        closeWindowTrigger = Resources.Load<InputAction_Trigger>("CloseWindow");
 1199        closeWindowTrigger.OnTriggered -= CloseWindowTrigger_OnTriggered;
 11100        closeWindowTrigger.OnTriggered += CloseWindowTrigger_OnTriggered;
 101
 11102        toggleWorldChatTrigger = Resources.Load<InputAction_Trigger>("ToggleWorldChat");
 11103        toggleWorldChatTrigger.OnTriggered -= ToggleWorldChatTrigger_OnTriggered;
 11104        toggleWorldChatTrigger.OnTriggered += ToggleWorldChatTrigger_OnTriggered;
 105
 11106        DataStore.i.HUDs.questsPanelVisible.OnChange -= OnToggleQuestsPanelTriggered;
 11107        DataStore.i.HUDs.questsPanelVisible.OnChange += OnToggleQuestsPanelTriggered;
 108
 11109        if (chatController != null)
 110        {
 11111            chatController.OnAddMessage -= OnAddMessage;
 11112            chatController.OnAddMessage += OnAddMessage;
 113        }
 114
 11115        if (this.sceneController != null && this.worldState != null)
 116        {
 1117            this.sceneController.OnNewPortableExperienceSceneAdded += SceneController_OnNewPortableExperienceSceneAdded;
 1118            this.sceneController.OnNewPortableExperienceSceneRemoved += SceneController_OnNewPortableExperienceSceneRemo
 119
 1120            List<GlobalScene> activePortableExperiences = WorldStateUtils.GetActivePortableExperienceScenes();
 2121            for (int i = 0; i < activePortableExperiences.Count; i++)
 122            {
 0123                SceneController_OnNewPortableExperienceSceneAdded(activePortableExperiences[i]);
 124            }
 125        }
 126
 11127        view.leftWindowContainerAnimator.Show();
 128
 11129        CommonScriptableObjects.isTaskbarHUDInitialized.Set(true);
 11130        DataStore.i.builderInWorld.showTaskBar.OnChange += SetVisibility;
 11131    }
 132
 133    private void View_OnQuestPanelToggled(bool value)
 134    {
 0135        QuestsUIAnalytics.SendQuestLogVisibiltyChanged(value, "taskbar");
 0136        DataStore.i.HUDs.questsPanelVisible.Set(value);
 0137    }
 138
 2139    private void ChatHeadsGroup_OnHeadClose(TaskbarButton obj) { privateChatWindowHud.SetVisibility(false); }
 140
 141    private void View_OnFriendsToggleOn()
 142    {
 2143        friendsHud?.SetVisibility(true);
 2144        OnAnyTaskbarButtonClicked?.Invoke();
 0145    }
 146
 4147    private void View_OnFriendsToggleOff() { friendsHud?.SetVisibility(false); }
 148
 149    private void ToggleFriendsTrigger_OnTriggered(DCLAction_Trigger action)
 150    {
 0151        if (!view.friendsButton.gameObject.activeSelf)
 0152            return;
 153
 0154        OnFriendsToggleInputPress();
 0155    }
 156
 0157    private void ToggleWorldChatTrigger_OnTriggered(DCLAction_Trigger action) { OnWorldChatToggleInputPress(); }
 158
 159    private void OnToggleQuestsPanelTriggered(bool current, bool previous)
 160    {
 1161        bool anyInputFieldIsSelected = EventSystem.current != null &&
 162                                       EventSystem.current.currentSelectedGameObject != null &&
 163                                       EventSystem.current.currentSelectedGameObject.GetComponent<TMPro.TMP_InputField>(
 164                                       (!worldChatWindowHud.view.chatHudView.inputField.isFocused || !worldChatWindowHud
 165
 1166        if (anyInputFieldIsSelected)
 0167            return;
 168
 1169        view.questPanelButton.SetToggleState(current, false);
 1170        if (current)
 1171            view.SelectButton(view.questPanelButton);
 1172    }
 173
 0174    private void CloseWindowTrigger_OnTriggered(DCLAction_Trigger action) { OnCloseWindowToggleInputPress(); }
 175
 176    private void View_OnChatToggleOn()
 177    {
 3178        worldChatWindowHud.SetVisibility(true);
 3179        worldChatWindowHud.MarkWorldChatMessagesAsRead();
 3180        worldChatWindowHud.view.DeactivatePreview();
 3181        worldChatWindowHud.OnPressReturn();
 3182        OnAnyTaskbarButtonClicked?.Invoke();
 0183    }
 184
 185    private void View_OnChatToggleOff()
 186    {
 2187        if (view.AllButtonsToggledOff())
 188        {
 2189            worldChatWindowHud.SetVisibility(true);
 2190            worldChatWindowHud.view.ActivatePreview();
 2191        }
 192        else
 193        {
 0194            worldChatWindowHud.SetVisibility(false);
 195        }
 0196    }
 197
 198    private void ChatHeadsGroup_OnHeadOpen(TaskbarButton taskbarBtn)
 199    {
 1200        ChatHeadButton head = taskbarBtn as ChatHeadButton;
 201
 1202        if (taskbarBtn == null)
 0203            return;
 204
 1205        OpenPrivateChatWindow(head.profile.userId);
 1206    }
 207
 208    private void View_OnSettingsToggleOn()
 209    {
 0210        settingsPanelHud.SetVisibility(true);
 0211        OnAnyTaskbarButtonClicked?.Invoke();
 0212    }
 213
 0214    private void View_OnSettingsToggleOff() { settingsPanelHud.SetVisibility(false); }
 215
 216    private void View_OnBuilderInWorldToggleOn()
 217    {
 0218        OnBuilderProjectsPanelTriggered(true, false);
 0219        OnAnyTaskbarButtonClicked?.Invoke();
 0220    }
 221
 0222    private void View_OnBuilderInWorldToggleOff() { OnBuilderProjectsPanelTriggered(false, true); }
 223
 224    private void View_OnExploreToggleOn()
 225    {
 0226        exploreHud.SetVisibility(true);
 0227        OnAnyTaskbarButtonClicked?.Invoke();
 0228    }
 229
 2230    private void View_OnExploreToggleOff() { exploreHud.SetVisibility(false); }
 231
 0232    private void MouseCatcher_OnMouseUnlock() { view.leftWindowContainerAnimator.Show(); }
 233
 234    private void MouseCatcher_OnMouseLock()
 235    {
 0236        view.leftWindowContainerAnimator.Hide();
 237
 0238        foreach (var btn in view.GetButtonList())
 239        {
 0240            btn.SetToggleState(false);
 241        }
 242
 0243        worldChatWindowHud.SetVisibility(true);
 0244        worldChatWindowHud.view.ActivatePreview();
 245
 0246        MarkWorldChatAsReadIfOtherWindowIsOpen();
 0247    }
 248
 249    public void SetBuilderInWorldStatus(bool isActive)
 250    {
 1251        view.SetBuilderInWorldStatus(isActive);
 1252        DataStore.i.HUDs.builderProjectsPanelVisible.OnChange -= OnBuilderProjectsPanelTriggered;
 253
 1254        if (isActive)
 1255            DataStore.i.HUDs.builderProjectsPanelVisible.OnChange += OnBuilderProjectsPanelTriggered;
 1256    }
 257
 0258    public void SetQuestsPanelStatus(bool isActive) { view.SetQuestsPanelStatus(isActive); }
 259
 260    public void AddWorldChatWindow(WorldChatWindowHUDController controller)
 261    {
 2262        if (controller == null || controller.view == null)
 263        {
 0264            Debug.LogWarning("AddChatWindow >>> World Chat Window doesn't exist yet!");
 0265            return;
 266        }
 267
 2268        if (controller.view.transform.parent == view.leftWindowContainer)
 0269            return;
 270
 2271        controller.view.transform.SetParent(view.leftWindowContainer, false);
 272
 2273        worldChatWindowHud = controller;
 274
 2275        view.OnAddChatWindow();
 2276        worldChatWindowHud.view.OnClose += () => { view.friendsButton.SetToggleState(false, false); };
 277
 2278        view.chatButton.SetToggleState(true);
 2279        view.chatButton.SetToggleState(false);
 2280    }
 281
 0282    public void OpenFriendsWindow() { view.friendsButton.SetToggleState(true); }
 283
 284    public void OpenPrivateChatTo(string userId)
 285    {
 0286        var button = view.chatHeadsGroup.AddChatHead(userId, (ulong) System.DateTimeOffset.UtcNow.ToUnixTimeMilliseconds
 0287        button.toggleButton.onClick.Invoke();
 0288    }
 289
 290    public void AddPrivateChatWindow(PrivateChatWindowHUDController controller)
 291    {
 2292        if (controller == null || controller.view == null)
 293        {
 0294            Debug.LogWarning("AddPrivateChatWindow >>> Private Chat Window doesn't exist yet!");
 0295            return;
 296        }
 297
 2298        if (controller.view.transform.parent == view.leftWindowContainer)
 0299            return;
 300
 2301        controller.view.transform.SetParent(view.leftWindowContainer, false);
 302
 2303        privateChatWindowHud = controller;
 304
 2305        privateChatWindowHud.view.OnMinimize += () =>
 306        {
 0307            ChatHeadButton btn = view.GetButtonList()
 308                                     .FirstOrDefault(
 0309                                         (x) => x is ChatHeadButton &&
 310                                                (x as ChatHeadButton).profile.userId == privateChatWindowHud.conversatio
 311                ChatHeadButton;
 312
 0313            if (btn != null)
 0314                btn.SetToggleState(false, false);
 315
 0316            MarkWorldChatAsReadIfOtherWindowIsOpen();
 0317        };
 318
 2319        privateChatWindowHud.view.OnClose += () =>
 320        {
 0321            ChatHeadButton btn = view.GetButtonList()
 322                                     .FirstOrDefault(
 0323                                         (x) => x is ChatHeadButton &&
 324                                                (x as ChatHeadButton).profile.userId == privateChatWindowHud.conversatio
 325                ChatHeadButton;
 326
 0327            if (btn != null)
 328            {
 0329                btn.SetToggleState(false, false);
 0330                view.chatHeadsGroup.RemoveChatHead(btn);
 331            }
 332
 0333            MarkWorldChatAsReadIfOtherWindowIsOpen();
 0334        };
 2335    }
 336
 337    public void AddFriendsWindow(FriendsHUDController controller)
 338    {
 3339        if (controller == null || controller.view == null)
 340        {
 0341            Debug.LogWarning("AddFriendsWindow >>> Friends window doesn't exist yet!");
 0342            return;
 343        }
 344
 3345        if (controller.view.transform.parent == view.leftWindowContainer)
 0346            return;
 347
 3348        controller.view.transform.SetParent(view.leftWindowContainer, false);
 349
 3350        friendsHud = controller;
 3351        view.OnAddFriendsWindow();
 3352        friendsHud.view.OnClose += () =>
 353        {
 0354            view.friendsButton.SetToggleState(false, false);
 0355            MarkWorldChatAsReadIfOtherWindowIsOpen();
 0356        };
 357
 3358        friendsHud.view.friendsList.OnDeleteConfirmation += (userIdToRemove) => { view.chatHeadsGroup.RemoveChatHead(use
 3359    }
 360
 361    public void AddSettingsWindow(SettingsPanelHUDController controller)
 362    {
 2363        if (controller == null)
 364        {
 0365            Debug.LogWarning("AddSettingsWindow >>> Settings window doesn't exist yet!");
 0366            return;
 367        }
 368
 2369        settingsPanelHud = controller;
 2370        view.OnAddSettingsWindow();
 2371        settingsPanelHud.OnOpen += () =>
 372        {
 0373            view.settingsButton.SetToggleState(true, false);
 0374            view.exploreButton.SetToggleState(false);
 0375        };
 2376        settingsPanelHud.OnClose += () =>
 377        {
 0378            view.settingsButton.SetToggleState(false, false);
 0379            MarkWorldChatAsReadIfOtherWindowIsOpen();
 0380        };
 2381    }
 382
 383    public void AddExploreWindow(ExploreHUDController controller)
 384    {
 2385        if (controller == null)
 386        {
 0387            Debug.LogWarning("AddExploreWindow >>> Explore window doesn't exist yet!");
 0388            return;
 389        }
 390
 2391        exploreHud = controller;
 2392        view.OnAddExploreWindow();
 2393        exploreHud.OnOpen += () =>
 394        {
 1395            view.exploreButton.SetToggleState(true, false);
 1396            view.settingsButton.SetToggleState(false);
 1397        };
 2398        exploreHud.OnClose += () =>
 399        {
 1400            view.exploreButton.SetToggleState(false, false);
 1401            MarkWorldChatAsReadIfOtherWindowIsOpen();
 1402        };
 2403    }
 404
 405    public void AddHelpAndSupportWindow(HelpAndSupportHUDController controller)
 406    {
 2407        if (controller == null || controller.view == null)
 408        {
 0409            Debug.LogWarning("AddHelpAndSupportWindow >>> Help and Support window doesn't exist yet!");
 0410            return;
 411        }
 412
 2413        helpAndSupportHud = controller;
 2414        view.OnAddHelpAndSupportWindow();
 2415        helpAndSupportHud.view.OnClose += () => { MarkWorldChatAsReadIfOtherWindowIsOpen(); };
 2416    }
 417
 0418    public void OnAddVoiceChat() { view.OnAddVoiceChat(); }
 419
 4420    public void AddControlsMoreOption() { view.OnAddControlsMoreOption(); }
 421
 422    public void DisableFriendsWindow()
 423    {
 0424        view.friendsButton.gameObject.SetActive(false);
 0425        view.chatHeadsGroup.ClearChatHeads();
 0426    }
 427
 428    private void OpenPrivateChatWindow(string userId)
 429    {
 1430        privateChatWindowHud.Configure(userId);
 1431        privateChatWindowHud.SetVisibility(true);
 1432        privateChatWindowHud.ForceFocus();
 1433        OnAnyTaskbarButtonClicked?.Invoke();
 0434    }
 435
 436    public void Dispose()
 437    {
 11438        if (view != null)
 439        {
 11440            view.chatHeadsGroup.OnHeadToggleOn -= ChatHeadsGroup_OnHeadOpen;
 11441            view.chatHeadsGroup.OnHeadToggleOff -= ChatHeadsGroup_OnHeadClose;
 442
 11443            view.OnChatToggleOff -= View_OnChatToggleOff;
 11444            view.OnChatToggleOn -= View_OnChatToggleOn;
 11445            view.OnFriendsToggleOff -= View_OnFriendsToggleOff;
 11446            view.OnFriendsToggleOn -= View_OnFriendsToggleOn;
 11447            view.OnSettingsToggleOff -= View_OnSettingsToggleOff;
 11448            view.OnSettingsToggleOn -= View_OnSettingsToggleOn;
 11449            view.OnBuilderInWorldToggleOff -= View_OnBuilderInWorldToggleOff;
 11450            view.OnBuilderInWorldToggleOn -= View_OnBuilderInWorldToggleOn;
 11451            view.OnExploreToggleOff -= View_OnExploreToggleOff;
 11452            view.OnExploreToggleOn -= View_OnExploreToggleOn;
 11453            view.OnQuestPanelToggled -= View_OnQuestPanelToggled;
 454
 11455            CoroutineStarter.Stop(view.moreMenu.moreMenuAnimationsCoroutine);
 11456            UnityEngine.Object.Destroy(view.gameObject);
 457        }
 458
 11459        if (mouseCatcher != null)
 460        {
 1461            mouseCatcher.OnMouseLock -= MouseCatcher_OnMouseLock;
 1462            mouseCatcher.OnMouseUnlock -= MouseCatcher_OnMouseUnlock;
 463        }
 464
 11465        if (toggleFriendsTrigger != null)
 11466            toggleFriendsTrigger.OnTriggered -= ToggleFriendsTrigger_OnTriggered;
 467
 11468        if (closeWindowTrigger != null)
 11469            closeWindowTrigger.OnTriggered -= CloseWindowTrigger_OnTriggered;
 470
 11471        if (toggleWorldChatTrigger != null)
 11472            toggleWorldChatTrigger.OnTriggered -= ToggleWorldChatTrigger_OnTriggered;
 473
 11474        if (chatController != null)
 11475            chatController.OnAddMessage -= OnAddMessage;
 476
 11477        if (sceneController != null)
 478        {
 1479            sceneController.OnNewPortableExperienceSceneAdded -= SceneController_OnNewPortableExperienceSceneAdded;
 1480            sceneController.OnNewPortableExperienceSceneRemoved -= SceneController_OnNewPortableExperienceSceneRemoved;
 481        }
 482
 11483        DataStore.i.HUDs.questsPanelVisible.OnChange -= OnToggleQuestsPanelTriggered;
 11484        DataStore.i.HUDs.builderProjectsPanelVisible.OnChange -= OnBuilderProjectsPanelTriggered;
 11485        DataStore.i.builderInWorld.showTaskBar.OnChange -= SetVisibility;
 11486    }
 487
 0488    public void SetVisibility(bool visible, bool previus) { SetVisibility(visible); }
 489
 2490    public void SetVisibility(bool visible) { view.SetVisibility(visible); }
 491
 492    public void OnWorldChatToggleInputPress()
 493    {
 0494        bool anyInputFieldIsSelected = EventSystem.current != null &&
 495                                       EventSystem.current.currentSelectedGameObject != null &&
 496                                       EventSystem.current.currentSelectedGameObject.GetComponent<TMPro.TMP_InputField>(
 497
 0498        if (anyInputFieldIsSelected)
 0499            return;
 500
 0501        worldChatWindowHud.OnPressReturn();
 502
 0503        if (AnyWindowsDifferentThanChatIsOpen())
 504        {
 0505            foreach (var btn in view.GetButtonList())
 506            {
 0507                btn.SetToggleState(btn == view.chatButton);
 508            }
 509        }
 0510    }
 511
 512    public void OnCloseWindowToggleInputPress()
 513    {
 0514        if (mouseCatcher.isLocked)
 0515            return;
 516
 0517        view.chatButton.SetToggleState(true);
 0518        view.chatButton.SetToggleState(false, false);
 0519        worldChatWindowHud.view.chatHudView.ResetInputField();
 0520        worldChatWindowHud.view.ActivatePreview();
 0521    }
 522
 0523    public void SetVoiceChatRecording(bool recording) { view?.voiceChatButton.SetOnRecording(recording); }
 524
 0525    public void SetVoiceChatEnabledByScene(bool enabled) { view?.voiceChatButton.SetEnabledByScene(enabled); }
 526
 527    private void OnFriendsToggleInputPress()
 528    {
 0529        bool anyInputFieldIsSelected = EventSystem.current != null &&
 530                                       EventSystem.current.currentSelectedGameObject != null &&
 531                                       EventSystem.current.currentSelectedGameObject.GetComponent<TMPro.TMP_InputField>(
 532                                       (!worldChatWindowHud.view.chatHudView.inputField.isFocused || !worldChatWindowHud
 533
 0534        if (anyInputFieldIsSelected)
 0535            return;
 536
 0537        Utils.UnlockCursor();
 0538        view.leftWindowContainerAnimator.Show();
 0539        view.friendsButton.SetToggleState(!view.friendsButton.toggledOn);
 0540    }
 541
 542    void OnAddMessage(ChatMessage message)
 543    {
 1544        if (!AnyWindowsDifferentThanChatIsOpen() && message.messageType == ChatMessage.Type.PUBLIC)
 0545            worldChatWindowHud.MarkWorldChatMessagesAsRead((long) message.timestamp);
 1546    }
 547
 548    private bool AnyWindowsDifferentThanChatIsOpen()
 549    {
 2550        return (friendsHud != null && friendsHud.view.gameObject.activeSelf) ||
 551               (privateChatWindowHud != null && privateChatWindowHud.view.gameObject.activeSelf);
 552    }
 553
 554    private void MarkWorldChatAsReadIfOtherWindowIsOpen()
 555    {
 1556        if (!AnyWindowsDifferentThanChatIsOpen())
 0557            worldChatWindowHud.MarkWorldChatMessagesAsRead();
 1558    }
 559
 560    public void ShowTutorialOption(bool isActive)
 561    {
 0562        if (view != null && view.moreMenu != null)
 0563            view.moreMenu.ShowTutorialButton(isActive);
 0564    }
 565
 566    private void SceneController_OnNewPortableExperienceSceneAdded(IParcelScene scene)
 567    {
 0568        GlobalScene newPortableExperienceScene = scene as GlobalScene;
 569
 0570        if ( newPortableExperienceScene == null )
 571        {
 0572            Debug.LogError("Portable experience must be of type GlobalScene!");
 0573            return;
 574        }
 575
 0576        view.AddPortableExperienceElement(
 577            scene.sceneData.id,
 578            newPortableExperienceScene.sceneName,
 579            newPortableExperienceScene.iconUrl);
 0580    }
 581
 0582    private void SceneController_OnNewPortableExperienceSceneRemoved(string portableExperienceSceneIdToRemove) { view.Re
 583
 0584    public void KillPortableExperience(string portableExperienceSceneIdToKill) { WebInterface.KillPortableExperience(por
 585
 586    private void OnBuilderProjectsPanelTriggered(bool isOn, bool prev)
 587    {
 0588        if (isOn)
 589        {
 0590            OnAnyTaskbarButtonClicked?.Invoke();
 591        }
 592
 0593        DataStore.i.HUDs.builderProjectsPanelVisible.Set(isOn);
 0594        view.builderInWorldButton.SetToggleState(isOn, false);
 0595    }
 596}

Methods/Properties

tutorialTooltipReference()
exploreTooltipReference()
socialTooltipReference()
moreMenu()
CreateView()
Initialize(DCL.IMouseCatcher, IChatController, IFriendsController, DCL.ISceneController, DCL.IWorldState)
View_OnQuestPanelToggled(System.Boolean)
ChatHeadsGroup_OnHeadClose(TaskbarButton)
View_OnFriendsToggleOn()
View_OnFriendsToggleOff()
ToggleFriendsTrigger_OnTriggered(DCLAction_Trigger)
ToggleWorldChatTrigger_OnTriggered(DCLAction_Trigger)
OnToggleQuestsPanelTriggered(System.Boolean, System.Boolean)
CloseWindowTrigger_OnTriggered(DCLAction_Trigger)
View_OnChatToggleOn()
View_OnChatToggleOff()
ChatHeadsGroup_OnHeadOpen(TaskbarButton)
View_OnSettingsToggleOn()
View_OnSettingsToggleOff()
View_OnBuilderInWorldToggleOn()
View_OnBuilderInWorldToggleOff()
View_OnExploreToggleOn()
View_OnExploreToggleOff()
MouseCatcher_OnMouseUnlock()
MouseCatcher_OnMouseLock()
SetBuilderInWorldStatus(System.Boolean)
SetQuestsPanelStatus(System.Boolean)
AddWorldChatWindow(WorldChatWindowHUDController)
OpenFriendsWindow()
OpenPrivateChatTo(System.String)
AddPrivateChatWindow(PrivateChatWindowHUDController)
AddFriendsWindow(FriendsHUDController)
AddSettingsWindow(DCL.SettingsPanelHUD.SettingsPanelHUDController)
AddExploreWindow(ExploreHUDController)
AddHelpAndSupportWindow(DCL.HelpAndSupportHUD.HelpAndSupportHUDController)
OnAddVoiceChat()
AddControlsMoreOption()
DisableFriendsWindow()
OpenPrivateChatWindow(System.String)
Dispose()
SetVisibility(System.Boolean, System.Boolean)
SetVisibility(System.Boolean)
OnWorldChatToggleInputPress()
OnCloseWindowToggleInputPress()
SetVoiceChatRecording(System.Boolean)
SetVoiceChatEnabledByScene(System.Boolean)
OnFriendsToggleInputPress()
OnAddMessage(DCL.Interface.ChatMessage)
AnyWindowsDifferentThanChatIsOpen()
MarkWorldChatAsReadIfOtherWindowIsOpen()
ShowTutorialOption(System.Boolean)
SceneController_OnNewPortableExperienceSceneAdded(DCL.Controllers.IParcelScene)
SceneController_OnNewPortableExperienceSceneRemoved(System.String)
KillPortableExperience(System.String)
OnBuilderProjectsPanelTriggered(System.Boolean, System.Boolean)